重修Java——运算符
来源:互联网 发布:mac finder 打开路径 编辑:程序博客网 时间:2024/04/28 20:46
Java运算符
在Java中有以下几类运算符:
1. 算术运算符
2. 关系运算符
3. 逻辑运算符
4. 按位运算符
5. 移位运算符
算数运算符
符号有(+、-、*、/、%、=),几乎所有的运算符都只能作用于主类型(基本数据类型),但是“=”、“==”和“!=”,它们能操作所有的对象。除此之外,String类支持“+”和“+=”,我想大概是因为String使用的频率太多的原因,所以才有了“+”运算符的重载。
那优先级呢,先乘除后加减,有括号先括号。所以在实际操作的时候,与其怕写错顺序小心的计算顺序,不如对先运算的部分都写上括号。
赋值操作(=),将右边的值复制到左边。其中右边的值可以是任意的常数、变量或者表达式,只要产生一个值就行。但是左边必需是一个明确的已命名的变量,这个因为他需要一个空间来存储这个值。但是对对象进行赋值的时候,操作的是它的句柄/引用,比如:“C=D”那么C、D都会指向同一个对象。
一元运算符
其实就是+1、-1,减号会取运算对象的相反值。“+”实际不做任何事情。
自增和自减(++、–)运算符
i++就相当于i=i+1;i–相当于i=i-1。唯一需要注意的地方就是——i++和++i之间的区别(面试可能问)。i++先生成值,再执行运算,++i先运算再生成值。
public class Jia { public static void main(String[] args) { int i = 1; System.out.println("i="+i); System.out.println("++i="+ ++i); System.out.println("i++="+ i++); }}
结果:
i=1
++i=2
i++=2
关系运算符
符号有<、>、<=、>=、==和!=。其中只有“==”和“!=”适用于所有的类型,其他运算符不适用于布尔类型。关系运算的结果是一个“布尔”(Boolean)结果,用于表示关系对象之间的关系。如果是真实的返回“true”,否则返回“false”。
“==”和“!=”
总的来说是来比较值是否相等的。但具体来说又分为两种情况——基本数据类型和引用数据类型。用于比较基本数据类型时,它们的值就是存在栈中,比较的就是这个值。如果比较的对象是对象,String举例,用new的方式创建两个“abc”字符串。在堆中会开辟两个空间,然后将空间的地址赋给栈区对象的引用,比较的就是这两个引用的地址是否指向同一个空间。所以当要比较对象的内容相等的时候一般使用equals方法(默认的equals方法和“==”相同,比较句柄,所以自定义的类需要重写这个方法)。
逻辑运算符
逻辑运算符AND(&&)、OR(||)、以及(!)——以自变量的逻辑关系为基础。&&、||、!只能运用于布尔值。和String一起使用,布尔值会自动转换成String类型的。
持短路运算
比如A&&B,如果A已经是false了,那么后面的部分不会执行。
按位运算符
允许我们操作一个整数主数据类型的单个“比特”,即二进制。按位运算符会对两个自变量中对应的位执行布尔代数,最终生成一个结果。
移位运算符
运算的对象也是二进制的位。用于处理整数类型。左移(<<):运算对象左移指定的位数,低位补零。”有符号“右移使用符号扩展:值为正,则在高位补零;值为负则在高位补1。Java添加了一种”无符号”右移运算符(>>>),无论正负都会在高位插入零。因为short、byte会先转换int类型的,所以右移可能会报错,零扩展不会发生那些情况。
- 重修Java——运算符
- 重修Java—初始化
- 重修Java——面向对象
- 重修Java—流程控制语句
- java重修之路(三)算数运算符,转义字符,逻辑运算符,位运算符
- 【重修Java】《Java编程思想》读书笔记——final关键字
- 【重修Java】《Java编程思想》读书笔记——多态
- 重修Jaava—访问控制
- 重修Android之新知识——layout_weight
- 重修 java 多线程
- java重修 SpringMVC入门
- 重修Java--数据类型
- 重修Android之利其器——代码规范
- 重修Android之利其器——版本控制
- 重修大学JAVA课:File.io(一)
- 重修大学JAVA课:File.io(二)
- java基础—运算符
- java回忆录—运算符
- hduoj 1284详细解题,推荐
- 如何查看JSTL中自带的TLD文件
- 【VSCode】Windows下VSCode编译调试c/c++
- 《恋狱》
- 实现文件的读写操作举例
- 重修Java——运算符
- 5秒让你的View变3D,ThreeDLayout使用和实现
- 英文名字的昵称(亲切的叫法)
- 杭电oj编码2013
- 堆和栈的区别和联系
- MyBatis SQL在xml中,处理大于小于号的方法
- 天线的基本原理和概念
- php实现等比例生成图片缩略图不失真
- iOS网页-JavaScriptCore