JAVA编程思想(二)操作符

来源:互联网 发布:淘宝客服主管工作职责 编辑:程序博客网 时间:2024/05/16 15:27
JAVA通过操作符来操作数据,JAVA操作符是抄袭C、C++并简化改进而来的
定义:操作符接受一个(操作数)或多个参数,生成一个新值(或改变操作数自身的值)
使用范围:只能操作基本类型,例外:=、==、!=、(String类:)+、+=

1、 赋值“=”:
①基本数据类型:(存储实际数值,故)赋值则直接复制内容
②对象:复制对象的引用的值(即对象在堆中的地址),如:t1=t2;
    把t2所指向(标识)的对象的地址赋给t1,t1与t2指向同一对象,并且t1原本指向的对象会被gc清理;此时通过t1操作对象会使得t2指向的对象也改变——>别名现象(避免:t1.level = t2.level)(类似:方法的形参如果是对象的画,同样也是传的对象的引用,即方法执行过程中会改变对象)

2、 算数操作符:
    +=、-=:同时进行运算与赋值操作,如:x+=4;

3、随机数Random类:
①实例化Random:Random r = new Random(47);
        无参数——以当前时间为随机数种子;
        有参数——以参数为随机数种子
②生成随机数:r.nextInt(100);     r.nextFloat();     r.nextLong();    r.nextDouble();
        参数——决定生成数的上限,下限默认为0
*:Math库的static方法random()——>产生0和1之间(包括0但不包括1)的一个double值

4、一元加、减:改变符号

5、递增/递减
        前缀式:先运算,再生成值
        后缀式:先生成值,再运算(验证后缀式是否改变原值)

6、关系操作符:
        返回比较结果——>布尔值
        ==、!=:适用于所有基本类型、对象(比较对象的引用,若要比较非自定义类的对象的实际内容使用equals()方法,自定义类还是会默认比较对象的引用)
        >=、<=、<、>:适用于除boolean的基本类型

7、逻辑操作符:
        根据参数(必须为布尔型)的逻辑关系生成一个布尔值
        短路现象:一旦明确无误地确定整个表达式的值,则不再计算表达式的余下部分

8、直接常量(p47)、e表示指数计数:即10的多少次方

9、按位与或非、移位操作符

10、三元操作符:boolean-exp ? val0 : val1

11、字符串操作符:+、+=
        以字符串起头,后续操作数必须是字符串型(会自动将双引号内的自负序列、其他类型如int转换为字符串String类型)

12、类型转换操作符
        ①将希望得到的数据类型置于圆括号内,放在要进行类型转换的值(变量)的左边,如:long lng = (long) i;
        ②Java允许把任何数据类型转换成别的数据类型,除布尔型、类
        ③执行窄化转换(丢失精度)操作时,必须显示声明
        ④截尾与舍入:
            float、double转换为int:截尾(小数点),要得到四舍五入的整数使用round:Math.round(floatValue);
        ⑤提升:对两种数据类型执行算术运算或按位运算,会自动将数据类型小的转换成数据类型大的,结果为大的数据类型





0 0