《java编程思想》---运算符

赋值:
基本类型赋值和对象赋值有很大区别。
基本类型赋值:  赋值赋予的只是其内存的引用。a=b      b的内存中存的值复制一份给a。   a修改这一份复制的内容不会影响到b
对象赋值:实际上操作的是他的引用,a和b此时同时指向堆中的一份数据,a或者b修改都会影响他们的值。

别名现象:
如果用对象的引用赋值,会把两个对象绑定到同一个对象上去。如果不想要绑定到同一个对象上,可以:
T1.variable = T2.variable
这样就区别了两个对象的同名variable
方法调用中也可以使用这种别名方法来区别。

Random:
把当前时间作为随机数seed,生成随机数
方法调用nexInt和nextFloat等生成不同类型的随机数。 参数nextInt(max)
随机数取自0和设置的max值之间的均匀分布

自增自减:
对于前缀形式,我们将在执行递增/减操作后获取值;使用后缀形式,我们将在执行递增/减操作之前获取值。它们是唯一具有“副作用”的运算符(除那些涉及赋值的以外) —— 它们修改了操作数的值。


Equals:
比较的是对象的引用,而不是内容本身。
除非通过覆写(大部分java类库的做法)

短路:
在明确结果的情况下省去不必要的计算。

字符串运算符:
String+
如果+运算中有字符串,就将其他数据类型转换成字符串类型。
这样可以隐式地将其转换为字符串,以代替繁琐的显式调用方法(如这里可以使用 **Integer.toString()**)。

强制转换:
大数据--->小数据可能会丢失
小数据--->大数据不会丢失

 

posted @ 2020-11-09 21:45  NobodyHero  阅读(81)  评论(0)    收藏  举报