java编程思想学习笔记:操作符

赋值操作符 “=”

a=b;

若a、b为基本数据类型:将表达式右侧的值直接复制给左侧,修改a不会对b的值产生影响;
若a、b为对象的引用:将引用从一个地方复制到另一个地方,即a也是b关联对象的引用,修改a的同时也会改变b。
别名现象:

创建两个类的实例a、b,分别关联对象A、B。将b赋值给a,a、b皆指向b关联的对象B。
而对于a原本关联的对象A,其引用丢失,从而被垃圾回收器自动清理。

注意:
方法的参数列表为对象,在实参传递给形参时,传递的实际上也是引用。
将一个对象的引用x传递给方法f(Letter y)的时,若f函数内部对y产生修改,此修改的实质是对x关联的对象。
类似于c++中的传址操作。

关系操作符 “==”、"!="与equals()方法

  1. 关系操作符 “==”、"!="适用于基本数据类型,也适用于所有对象
    作用于基本数据类型时,比较的是数据的值;
    作用于对象时,比较的不只是对象的内容,还比较地址。
    (通过new方法创建的两个对象的引用,即使内容一致,地址定是不一样的。)

  2. equals()方法只适用于对象
    对于Interger、Long类,equals()方法比较的只是对象的内容
    但是,equals()方法的默认行为是比较引用,即不仅比较内容,还比较地址。
    因此,在自定义的新类中,需要重写equals()来覆盖默认的equals()方法。

逻辑操作符"&&"、“∥”、"!"

短路现象:

"&&"一假则假、"∥"一真即真
一旦能明确确定整个表达式的值,就不再计算表达式余下的部分。
因此,表达式靠后的部分有可能不会被计算。

字符串操作符"+"、"+="

“+” : 一侧是字符串,另一侧是其他类型的变量,其他类型的变量会自动转换成字符串形式
“+=”:将后面字符串追加至操作符左侧的字符串后面,形成新的字符串

类型转换

扩展转换:低精度转换成高精度,是隐式转换
窄化转换:高精度转换成低精度,具有信息丢失的可能,需要强制转换。
进行窄化转换时,默认方式为对数字执行截尾。若需要舍入,需要通过round()函数来进行对数据的四舍五入。

java中没有sizeof函数

猜你喜欢

转载自blog.csdn.net/karin_0/article/details/82972354