我不会在学习语言的同时尝试学习IDE。一个简单的过渡是坚持使用shell和惯用的文本编辑器,并使用以下shell友好的工具:
- ant,用于组织项目,运行自动化测试套件,增量编译
- BeanShell用于交互式测试,可以快速尝试
- 一个快速的技巧:
javap
从命令行将为标准库中的任何类提供方法签名。与php -r
Java 相似,但提供了更多信息。
Java的在线文档是精确,专业的,并且在色调和格式上保持一致。与PHP中的所有功能都位于一个统一的命名空间中不同,Java中的标准库是类层次结构。您必须了解围绕该标准库的方式,这意味着了解
层次结构和职责
:例如,您必须了解这
java.util.List是
java.util.Collection带有附加条目概念的子接口。有了这些信息,谷歌搜索java.util.List会将您带到该类的Javadoc,并且Javadoc将告诉您确切的方法签名并将您链接到一些具体的实现。
一些其他区别:
- 字符串是 字符 序列,而不是字节序列。绝对正确的方法。
- 系统产生并使用(字节或字符的) 流 ,而不是字节缓冲区。例如,如果要过滤PHP中的输出,则标准做法是向ob_get_contents请求字节缓冲区,然后转换整个缓冲区。在Java中,您向Servlet添加了一个过滤器,该过滤器一次将输出转换为一个字节或一个字符。最初使用它有点麻烦,但是当您习惯它时它会变得更简单,更像Lego-流处理器不必知道事物的来源和去向。
- 几乎所有有用的东西都是一个接口,并且创建接口的实例可能很棘手,不规范,而且记录不完备。在PHP中,您可以使用来启动并运行XML
new DOMdocument()
。在Java中,它org.w3c.dom.document
是一个接口,因此new()不起作用。Javadoc对于接口实例一旦存在就如何行为是非常精确的,但是当您试图找出对象的实际出生方式时,它可能会显得有些y和谨慎。很多时候,您将不得不寻找教程和代码示例,并复制粘贴一个样板,为您提供DOMdocumentjava.sql.Connection
或其他实例。像Spring这样的框架之所以受欢迎,原因之一是它们将丑陋的对象创建代码分离开来,并为您提供了一个神奇的接口实现世界。
我实际上是朝相反的方向切换。我发现Java在一家大型公司中运作良好,您可能正在处理单个组件,然后将其交给其他人,后者将该组件集成到更大的系统中,然后将其打包并交给一个单独的运营团队-
所有这些间接性和可配置性(
FactoryBuilderFactory类型抽象,web.xml文件等)都很有意义,并且可以做一些有用的事情。在一家小公司的程序员
_都_操作人员,Java还有很多工作要做。使用Java,您将必须习惯一些概念,例如启动Java进程,监视Java进程以确保其正常运行,监视Java进程以确保它不会处于存活状态,而不会引起昏迷。在更新代码等时,不进行响应,关闭和重新启动Java进程,而将中断降到最低。如果您有单独的运维人员,那很好,这是他们的工作,他们非常擅长。如果您是一名程序员,那么照顾Java流程可能会分散注意力,并且很难做好。



