Java编程思想(三)--操作符

来源:互联网 发布:linux 字符编码 编辑:程序博客网 时间:2024/06/05 17:12

操作符的优先顺序:一般用括号来确定优先顺序,不需要记住优先顺序。

 

赋值:=

Java赋值是通过值传值的形式来进行的。即,把一个变量的值复制到另外一个变量中,变成两个单独的变量。但是对于对象,因为我们是通过操作引用来操作对象,所以虽然引用不同,但最终操作的对象还是相同的。

出于这种情况,我们可以直接传递对象的值,例如  a1.a = a2.a;这样两个对象的a就是不同的变量,但是这样直接操作对象中的字段会导致混乱,而且违背了面对对象的原则。

 

算数操作符:+、-、*、/(整数除法会直接去掉小数)、%(求余)

 

自动递增和递减:++、--

++a:如果操作符在前面,则是先加,后赋值

a++:如果是变量在前面,则是先赋值,后加

 

关系操作符:<, >, <=, >=, ==, !=

boolean 类型只能用于==和 !=

==和 !=也可用于对象,但一般是比较引用。如要比较两个对象是否相等而不是两个对象的引用是否相等,应该使用对象的equals方法,并且要重写equals方法,因为equals()方法默认比较的是引用。

 

逻辑操作符: &&、||、!

当我们在使用逻辑操作符的时候,一旦能够确定表达式的最终结果,便不再计算剩下的部分。

 

常量表示:

Long类型:后缀为大写或小写的L

float类型:后缀为大写或小写的F

double类型:后缀为大写或小写的D

十六进制:前缀为0x

八进制:前缀为0

二进制:没有直接的表示,可以使用Integer和Long类的toBinaryString()方法。

指数:1.39e-43f= 1.39*10-43

 

按位操作符:与&、或|、非~、异或^

Boolean操作符不能使用非~,防止与逻辑操作符!混淆

 

移位操作符:<<、>>、>>>

左移位操作符(<<):低位补0

右移位操作符(>>):正数高位补0,负数高位补1,只有右操作数的低五位才有用,例a<<b,b为右操作数。

无符号右移操作符(>>>):无论正负,都在高位补0

如果对char、byte、short类型的数值进行移位处理,那么在移位之前,他们会转化为int类型,最后也会得到int类型。如果要把结果赋给原来的类型,则int值会被截断,可能会产生-1的结果

 

三元操作符: boolean-exp ? value0 : value1

如果为true,则执行value0,如果为false,则执行value1。

 

字符串操作符:+和+=

只要表达式中有字符串,则整个表达式都会转化为字符串格式,如(1 + “”)就会变成 (“1”)。

 

类型转换操作符:

基本类型除了Boolean都可以互相转化。只需要在要转化类型前加上(数据类型),如int i =(int)j;

类型转换分为两种:

窄化转换:将大数据转化为小数据,因为是直接截尾,可能会导致数据丢失。必须要有显式的类型转换。

当float或double类型转化为整数时,总是对数字进行截尾,即,直接丢掉小数。

扩展转换:安全,不需要显式的类型转换。

char,byte,short类型在运算时会自动转化为int类型。

当两个不一样的数据类型进行运算时,会自动把小的数据类型转化为大的数据类型。

0 0
原创粉丝点击