1. 包是一组类的集合,每一个类都要放在包中
  2. 在Java中,所有的一切都必须在类中声明,因此,不像其他语言(如C/C++),Java没有全局变量和函数。
  3. Java包含四种整型,两种浮点,一种字符和一种布尔型。共计八种基本类型。
  4. 在Java中,整型的范围不依赖于程序所运行的机器。
  5. float浮点小数精度只有7位,需要更多的精度使用double。float浮点数使用F后缀,没有F后缀的默认为double类型。也可以使用D作为double浮点数的显式后缀。
  6. 浮点数不能作为金融计算,舍入误差是不能接受的。必须使用BigDecimal类。
  7. 布尔值只有true和false两种。布尔类型不是整型,true和false和整数1,0也没关系。
  8. Java变量名可以使用$开头,但是,$一般用于自动生成的代码,你不应该使用它。
  9. 允许在任何地方声明变量,只要你在使用前声明了就没问题。
  10. final表示该变量一旦赋值就不能改变;延迟final变量的初始化时允许的。在其他语言中,一般称为常量。
  11. 要格外当心/(除)操作符,如果两个操作数是整数,他是整除运算。整数除以0会产生异常,浮点数除以0会产生无限值或者NaN。
  12. %(取余)操作,当操作数为负时,结果不是预期的。使用Math.floorMod方法比较方便。
  13. 给方法加上strictfp修饰符后,所有的浮点运算都是严格可移植的。不会存在浮点优化导致的平台差异。
  14. cast转换会悄悄丢失数字的重要部分,用Math.toIntExtract方法代替。当它无法将long转换为int时,会产生异常。
  15. 按位左移右移操作符,>>以0替换前面的位;>>>将符号位扩展为前面的位。
  16. BigInteger实现了任意精度的整数计算。BigInteger.valueOf(long)将long整型转换为BigInteger;也可以使用字符串来初始化 new BigInteger(‘111222333444’)。
  17. +号作为字符串连接和加混合使用时,要小心结合顺序。
  18. 使用join连接大量的字符串时会有性能问题,这时使用StringBuilder代替。
  19. 不要使用==比较字符串,使用String.equals。
  20. 比较文字串和字符串变量时,将文字串放在前面是好主意,可以避免出现null异常。
  21. 不考虑大小写的字符串比较实用equalsIgnoreCase。
  22. 在Java中,String类是不可改变的。就是说,任何String方法都不能修改原有字符串。
  23. 泛型类有个限制,不能使用基本数据类型作为参数类型,解决办法是使用包装类。
  24. 复制数组,使用Array.copyOf。(复制数组列表)可以从以存在的数组列表中构造新的数组列表。通过Array.aList,可以将数组复制到数组列表。数组列表的toArray方法可以将数组列表复制到数组。基本数据类型的数组转换到包装类的数组列表,不是简单的事情,需要循环元素复制。
  25. 对数组(数组列表不适用),除sort外,还可以使用parallelsort方法排序,如果数组较大,则该方法将工作分布到多个处理器上运行。
  26. Java没有多维数组,多维数组实质上是数组的数组思想来实现的。
  27. deppToString可以按预期输出二维数组。