转载

java核心卷Ⅰ第十版笔记

最近正在复习java核心卷Ⅰ,于是乎写写一些我认为应该记住的知识点。随便写写。。

第三章

  1. 从 Java 7 开始, 加上前缀 0b 或 0B 就可以写二进制数。例如,Ob1001就是9。另外,同样是从 Java 7 开始,还可以为数字字面量加下划线,如用 1_000_000表示一百万。这些下划线只是为了让人更易读。Java 编译器会去除这些下划线。
  2. byte 和 short 类型主要用于特定的应用场合,例如,底层的文件处理或者需要控制占用存储空间量的大数组.
  3. 只有很少的情况适合使用 float 类型,例如,需要单精度数据的库, 或者需要存储大量数据。
  4. 正整数除以 0 的结果为正无穷大。计算 0/0 或者负数的平方根结果为 NaN。
  5. 不能这样检测一个特定值是否等于 Double.NaN: if (x = Double.NaN)// is never true 因为所有“ 非数值” 的值都认为是不相同的。然而,可以使用 Double.isNaN 方法: if (Double.isNaN(x)) // check whether x is "not a number
  6. 浮点数值不适用于无法接受舍入误差的金融计算中。 例如,命令 System.out.println( 2.0-1.1 ) 将打印出 0.8999999999999999, 而不是人们想象的 0.9。这种舍入误差的主要原因是浮点数值采用二进制系统表示, 而在二进制系统中无法精确地表示分数 1/10。这就好像十进制无法精确地表示分数 1/3—样。如果在数值计算中不允许有任何舍入误差,就应该使用 BigDecimal类
  7. 关键字 final 表示这个变量只能被赋值一次。一旦被赋值之后,就不能够再更改了。习惯上,常量名使用全大写
  8. 在Java中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为类常量。可以使用关键字 static final设置一个类常量。需要注意,类常量的定义位于 main 方法的外部。因此,在同一个类的其他方法中也可以使用这个常量。而且,如果一个常量被声明为 public,那么其他类的方法也可以使用这个常量
  9. 需要注意,整数被 0 除将会产生一个异常,而浮点数被 0 除将会得到无穷大或 NaN 结果
  10. 在 Math 类中,为了达到最快的性能,所有的方法都使用计算机浮点单元中的例程. 如果得到一个完全可预测的结果比运行速度更重要的话,那么就应该使用 StrictMath类, 它使用“自由发布的 Math 库”(fdlibm) 实现算法,以确保在所有平台上得到相同的结果
  11. java核心卷Ⅰ第十版笔记 在图中有 6 个实心箭头,表示无信息丢失的转换;有 3 个虚箭头, 表示可能有精度损失的转换。
  12. double x = 9.997;int nx = (int) Math.round(x); 现在,变量 nx 的值为 10。当调用 round 的时候,仍然需要使用强制类型转换(int) 其原因是 round 方法返回的结果为 long 类型,由于存在信息丢失的可能性,所以只有使用显式的强制类型转换才能够将 long 类型转换成 int 类型。如果试图将一个数值从一种类型强制转换为另一种类型,而又超出了目标类型的表示范围,结果就会截断成一个完全不同的值。例如,(byte) 300 的实际值为 44。
  13. 如果需要把多个字符串放在一起,用一个定界符分隔,可以使用静态 join 方法: String all = String.join(" / ", "S", "M","L", "XL");// all is the string "S / M / L / XL
  14. 每次连接字符串, 都会构建一个新的 String 对象,既耗时, 又浪费空间。使用 StringBuildel类就可以避免这个问题的发生。
  15. java核心卷Ⅰ第十版笔记
  16. 如果希望将一个数组的所有值拷贝到一个新的数组中去,就要使用 Arrays 类的 copyOf方法:int[] copiedLuckyNumbers = Arrays.copyOf(luckyNumbers , luckyNumbers .length);第 2 个参数是新数组的长度。这个方法通常用来增加数组的大小:
  17. 要想对数值型数组进行排序, 可以使用 Arrays 类中的 sort 方法,这个方法使用了优化的快速排序算法。快速排序算法对于大多数数据集合来说都是效率比较高的
  18. 要想快速地打印一个二维数组的数据元素列表,可以调用Arrays.deepToString(a);输出格式为:

[[16, B, 2, 13], [5, 10, 11, 8], [9, 6, 7, 12], [4, 15, 14, 1]]

原文  https://segmentfault.com/a/1190000020158029
正文到此结束
Loading...