`
itwangxinli
  • 浏览: 143526 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JAVA操作符

阅读更多

JAVA操作符

几乎所有运算符都只能操作主类型Primitives)。例外是“=”“= =”“! =”,它们能操作所有对象。除此以外,String类支持“+”“+=”

 (1)赋值

主类型使用“A=B”,那么B处的内容就复制到A。若修改A,那么B根本不会受修改的影响。

对象赋值的时候情况发生了变化。对一个对象进行操作时,我们真正操作的是它的句柄。所以倘若从一个对象到另一个对象赋值,实际就是将句柄从一个地方复制到另一个地方。这意味着假若为对象使用“C=D”,那么CD最终都会指向最初只有D才指向的那个对象。

short s1 = 1; s1 = s1 + 1; s1+1运算结果是int型,需要强制转换类型)

short s1 = 1; s1 += 1;(可以正确编译) +=运算符无类型转换问题

2)算术运算符

Java的算术运算符:加号(+)、减号(-)、除号(/)、乘号(*)以及模数(%,从整数除法中获得余数)。整数除法会直接砍掉小数,而不是进位。

3)自动递增、递减

对于前递增和前递减(如++A--A),会先执行运算,再生成值。

对于后递增和后递减(如A++A--),会先生成值,再执行运算。

4)关系运算符

关系运算符包括<><=>== =!=

等于和不等于适用于所有内建的数据类型,但其他比较不适用于boolean类型。

想对比两个对象的实际内容是否相同,必须使用所有对象都适用的特殊方法equals()

equals()方法不适用于主类型,那些类型直接使用= =!=即可。

equals()的默认是比较句柄。所以除非在自己的新类中改变了equals(),否则不可能表现出我们希望的行为

大多数Java类库都实现了equals(),所以它实际比较的是对象的内容,而非它们的句柄

= =! =比较的是对象句柄,而不是对象的实际内容

5)逻辑运算符

逻辑运算符&&||!能生成一个布尔值

&&&都可作为逻辑运算符“与”使用,但是&&是“短路与”,运算时先判断符号前面的表达式的值,如果能够确定整个表达式的值,则不进行符号后面的表达式的运算。

另外,&可作为位运算符使用

6)按位运算符

按位AND运算符(&

按位OR运算符(|

按位XOR^,异或)

按位NOT~,也叫作运算符)属于一元运算符,生成与输入位的相反的值

7)移位运算符

              左移位运算符(<<)能将运算对象向左移动运算符右侧指定的位数(在低位补0)。

有符号右移位运算符(>>)将运算对象向右移动运算符右侧指定的位数。有符号右移位运算符使用了符号扩展:若值为正,则在高位插入0;若值为负,则在高位插入1

无符号右移位运算符(>>>),它使用了零扩展:无论正负,都在高位插入0

8)三元IF-ELSE运算符

              布尔表达式 ? 0:1   布尔表达式的结果为true,就计算0”,否则计算“值1

9)字符串运算符+

int x = 0, y = 1, z = 2;
System.out.println(“out:” + x + y + z);
在这里,Java编译程序会将xyz转换成它们的字串形式,而不是先把它们加到一起

              运用“String +”时,若表达式以一个String起头,那么后续所有运算对象都会转换到字串。

想通过加号连接字串(使用Java的早期版本),请务必保证第一个元素是字串

10)造型(Cast)运算符

对于缩小转换Narrowing Conversion)的操作(能容纳更多信息的数据类型,将其转换成容量较小的类型,例如intshort),此时就可能面临信息丢失的危险。此时,编译器会强迫我们进行明确造型

对于放大转换Widening conversion),则不必进行明确造型,因为新类型肯定能容纳原来类型的信息,不会造成任何信息的丢失

布尔值(bollean)根本不允许进行任何造型处理,其它任何主类型可互相造型

floatdouble值造型成整数值后,总是将小数部分砍掉,不作任何进位处理

Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math.round(11.5)==12      Math.round(-11.5)==-11

round方法返回与参数最接近的长整数,参数加1/2后求其floor.

       11)优先级

运算符(优先级从低到高)

+ - ++ – [[ rest...]]

* / % + - << >>

> < >= <= == !=

&& || & | ^

A > B ? X : Y

= (and compound assignment like *=)

分享到:
评论
4 楼 jerrycong 2010-06-09  
[/u][u][/u][u][/u][u]
引用

    [*]
引用
引用
引用

    [*]

    [*]
引用
[/q
uote]
引用
引用
引用
3 楼 hunnuxiaobo 2010-06-07  
为什么System.out.println(null+"efg");的输出结果是nullefg?
2 楼 Oac 2009-07-21  
转载,感谢博主。
1 楼 布道人车 2009-07-17  
不错 整理挺详细!收藏了

相关推荐

    Java操作符的优先级和结合性

    Java操作符的优先级和结合性,对java的操作符的优先级和结合性做了详细的说明

    Java操作符总结-动力节点共20页.pdf.zip

    Java操作符总结__动力节点共20页.pdf.zip

    java操作符

    表达式中有一个操作元是long型,则结果是long型的问题总结; 应该调用String的equals()方法,而不用“==”操作符的注意; java虚拟机对变量初始化为默认值。

    浅谈Java操作符与其优先级

    主要介绍了浅谈Java操作符与其优先级,具有一定借鉴价值,需要的朋友可以了解下。

    Thinking in java4(中文高清版)-java的'圣经'

    2.8.2 语法 2.8.3 嵌入式HTML 2.8.4 一些标签示例 2.8.5 文档示例 2.9 编码风格 2.10 总结 2.11 练习 第3章 操作符 3.1 更简单的打印语句 3.2 使用Java操作符 3.3 优先级 3.4 赋值 3.4.1 方法调用中的别名问题 3.5 ...

    java 移位操作符的使用

    Java中的移位操作符用于对二进制数进行左移()、右移(&gt;&gt;)和无符号右移(&gt;&gt;&gt;)操作。 左移()操作符:将一个数的所有位向左移动指定的位数,右侧空出的位用0填充。 右移(&gt;&gt;)操作符:将一个数的所有位向右移动...

    Java基础知识之数据类型和操作符

    Java支持多种类型的操作符,包括算术操作符(如+、-、*、/)、比较操作符(如==、!=、&gt;、&lt;)、逻辑操作符(如&&、||、!)和赋值操作符(如=)。此外,Java还提供了一些特殊的操作符,如三元操作符(? :)和位操作符...

    java 按位操作符的使用

    在Java中,按位操作符用于对整数进行位级别的操作 按位与(&)操作符 按位或(|)操作符 按位异或(^)操作符 按位取反(~)操作符 左移()操作符 右移(&gt;&gt;)操作符

    java 三元操作符的使用

    在Java中,三元操作符是一种简洁的条件表达式,用于在两个值之间进行选择。

    Java操作符及执行流程控制

     主要操作符:+、-、*、/、=、++、–、+=、-=、==、!=、&&、||、!、&、^、~、&gt;=、&lt;=、&gt;、&lt; …..  几乎所有的操作符只能够操作”基本数据类型”,=、==、!=可以操作所有的数据类型及对象  String类型...

    java 关系操作符的使用

    在 Java 中,关系操作符用于判断两个值之间的关系,并返回一个布尔值(true 或 false)。

    java 逻辑操作符的使用

    在Java中,有三种逻辑操作符用于处理布尔值(boolean):与(&&)、或(||)和非(!)。

    java的应用领域 操作符

    java技术究竟应用于那些领域呢?让我们通过这些知识来了解一下

    Java语言中的操作符及操作符的优先级[借鉴].pdf

    Java语言中的操作符及操作符的优先级[借鉴].pdf

    编程思想下篇

    3.2 使用Java操作符 3.3 优先级 3.4 赋值 3.4.1 方法调用中的别名问题 3.5 算术操作符 3.5.1 一元加、减操作符 3.6 自动递增和递减 3.7 关系操作符 3.7.1 测试对象的等价性 3.8 逻辑操作符 3.8.1 短路 3.9 直接常量 ...

    Java数据结构与算法中的源代码和applet - 站长下载

    书名:数据结构Java版 图书编号:2086963 出版社:清华大学 定价:118.0 ISBN:730213544 作者:(美)福特(Ford,W.H.),(美)托普(Topp,W.R.) 著,梁志敏 译...附录DJava操作符的优先顺序 附录EEZJava集成开发环境

    Java关系操作符简写介绍

    下面小编就为大家带来一篇Java关系操作符简写介绍。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Java基础之运算符.docx

    组成表达式的Java操作符有很多种。运算符按照其要求的操作数数目来分,可以有单目运算符、双目运算符和三目运算符,它们分别对应于1个、2个、3个操作数。运算符按其功能来分,有算术运算符、赋值运算符、关系运算符...

Global site tag (gtag.js) - Google Analytics