我想学习Java,特别是对于Android开发,因为我正在获得一个新的平板电脑,但也有许多Java可以做的事情(Struts,网络开发,JWebSockets等)。我是一个经验丰富的PHP,Javascript和.NET开发人员(我会说我是关于中间编码器的)。
我的问题是我更喜欢从书本中学习,因为我觉得他们提供了更全面的学习体验,而不是试图拼凑一大堆教程。我也很喜欢阅读技术书籍!但是,我在附近的一家名为“Learning Java,3rd Ed”的折扣书店找到了一本看起来不错的书。作者:Niemeyer和Knudsen。它看起来就像我正在寻找的,因为它似乎不是一本花费500多页解释OO,变量和方法的初学者书。但它适用于Java SE 5!
所以现在有一个Java SE 6版本,SE 7,我认为甚至还有SE 8的测试版。它会让我学习Java类的Java类库(以及通常如何编程Java)还有多远SE 5?
我发现了这个问题:How difficult is it to learn Java SE 6 from J2SE 5.0?但它似乎只是指Java SE 5和SE 6.但现在很快就会有2个版本。我还查看了新版本的功能列表,但是在不了解语言的情况下,我无法确定新版本的重要性,或者它们是否主要是语法糖。在最好的情况下,我是否只需要阅读一些升级开发人员的教程,或者最坏的情况是,我的SE 5代码是否会在SE 6,7或8中断?任何和所有的帮助表示赞赏!
答案 0 :(得分:3)
对于它的价值,Java 7仅为recently released,我不希望Java 8很快发布。
从Java版本的角度来看,从Java 1.4到Java 5的发布是我认为最大的变化 - 足以让Sun开始将Java 1.5称为“Java 5”。这是引入Generics,Annotations等新核心功能的版本。相比之下,与早期版本相比,从Java 5开始的跳转不会有太大的变化。主要是Java 6& 7添加到标准库,以及一些新的语法糖,如try-with-resources。
无论哪种方式,我都会说去读这本书。 Java 5是一个良好的开端,一旦您理解了该语言,您就可以继续使用Java 6和Java 6的新功能。 7提供,如java.util.concurrency,nio,blah,blah,blah ......答案 1 :(得分:2)
Java 6在Java 5上有一些重要的库改进,但在注释方式的改进之外几乎没有对语法进行任何更改,因此逐步提取6并不难。
Java 7和(可能)8是更大的变化,但您可能正在与其他Java社区同时学习它们。 Java 7仍处于采用周期的早期阶段。
答案 2 :(得分:1)
我不认为Oracle会在Java的更高版本中做任何破坏Java 5代码的事情,前提是你没有使用任何专有或弃用的API。
对于Android,它有自己的一组库,这些库与Oracle提供的任何特定Java版本都不完全相同。 学习Java 5,然后浏览Android教程,最后在需要时查找API应该足够Android。
答案 3 :(得分:1)
Java5和Java6 / 7语言之间的差异很小。在Java7中有一些新的语法糖(让我们看一下:Diamond运算符,字符串切换,......不能想到其他任何东西),但这就是它。
Java5在很长一段时间内已经包含了Java最重要的变化:泛型和枚举。
使用Java6 / 7(特别是6)真正改进的唯一内容是库支持:JDK中有很多类,你在Java5中找不到,但在学习时不应该太担心语言。