String str = "a";
str = "b";
JDK源码中,存放String内容的实际上是char数组,这个数组是final类型的,一经初始化就不能改变。
/** The value is used for character storage. */
private final char value[];
但是,char数组是引用类型,final类型只能保证value的地址不可变,不能保证value数组的内容不能变化。即完全可以通过以下方式改变value的内容:
final char[] value = {'a','b','c'};
value[0] = 'd';
所以,重点是字符数组为private访问权限,所以只有SUN的工程师可以拿到这个字符数组。而SUN的工程师在所有方法中都没有改变该字符数组的值。另外,String被定义为Final类型,也防止了通过继承之后破坏不可变性。
int a = 1;
String b = "2";
String c = "3";
System.out.println(a + b + c);
float f1 = 9.9f;
float f2 = 0.1f;
System.out.println(f1 - f2);
0.125 ×2=0.25 .......................0
0.25×2=0.5.............................0
0.5×2=1.0................................1
即 0.125的二进制表示为小数部分为0.001
**记住,乘到小数为0。排序:正序。**
0.1×2=0.2 .....................0
0.2×2=0.4 ......................0
0.4×2=0.8 .....................0
0.8×2=1.6.......................1
0.6×2=1.2.......................1
0.2×2=0.4.......................0
.....
0.9×2=1.8.....................1
0.8×2=1.6.....................1
0.6×2=1.2.....................1
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/justleavel/article/details/121341236
内容来源于网络,如有侵权,请联系作者删除!