Java笔记整理:操作符

原创 2016年08月31日 11:36:09

Java笔记整理:操作符

JAVA操作符

除“=”,“==”和“!=”外,所有操作符只能操作基本数据类型
String类支持“+”和“+=”

优先级

在连加的表达式中,String类型的元素后面的所有元素,都会自动转换成String类型

赋值

常量不能作为左值
基本数据变量存储的是实际的数值,赋值时会复制实际的内容
对象赋值时实际上是复制引用,而不是对象本身

算术操作符

整数除法会直接去掉小数位,而不是四舍五入
一元加操作符,像“+4”,会将较小类型的操作数提升为int

递增递减操作符

递增递减操作符是唯一具有“副作用”的操作符,即改变操作数

关系操作符

关系操作符会生成一个boolean结果
boolean类型不支持除“==”和“!=”外的比较符

对象间进行比较时,实际上比较的是两个引用
JAVA内置的一些类的equals方法其实是重载了Object类的equals方法,equals方法默认比较引用

逻辑操作符

逻辑操作符会生成一个boolean结果
逻辑操作符的操作数只能是boolean类型,JAVA不允许将非布尔值当作布尔值使用
JAVA存在短路特性

直接常量

前缀

  1. 十六进制:0x 或 0X
  2. 八进制:0
  3. 没有二进制(可以使用Integer.toBinaryString()方法获得)

后缀

  1. long:l 或 L
  2. double:d 或 D
  3. float:f 或 F

试图将变量初始化成超出自身范围的值,会得到一条错误信息
如果没有后缀,会默认转换成int值

指数计数法

编译器会将指数作为double类型处理

位操作符

~是一元操作符,因此没有~=
boolean类型可以应用于位操作符,但不能使用 ~ 操作符
位操作符表达式不会中途短路

移位操作符

左移低位补零
右移高位正数补零,负数补一(>>>则全部补零)

char,byte和short在移位前会先转换成int,移位后截断转换为原来的类型
int和long移位后的位数不会超过自身的最大位数

字符串操作符

JAVA不能重载操作符
如果表达式以一个字符串开头,后续所有操作数都会被转换成字符串类型

JAVA可以通过编译时检查防止while(x=y)这种错误的发生,因为int类型不能转换为boolean类型,除非像true=false,则不会得到错误。同样的,也可以防止逻辑操作符和位操作符的混淆

类型转换

窄化转换可能会导致信息丢失
扩展转换不必显示进行,会自动发生

将float和double转换成int类型时,会进行截尾而不是舍入
对char,byte或short的数据进行算术运算或位运算时,运算之前会自动转换成int

表达式中出现的最大数据类型决定了最终结果的数据类型


JAVA没有sizeof,因为在所有机器上的数据类型大小都是没有区别的

版权声明:本文为博主原创文章,未经博主允许不得转载。

excel笔记整理

1、excel:由微软公司生产的办公软件之一,电子制表软件,工作簿,可以用来做表格、进行数据处理等 2、打开方式: 方式一: 开始->所有程序->Microsoft office->Mi...
  • yangzai521
  • yangzai521
  • 2016年12月07日 20:51
  • 420

【好程序员笔记分享】——java中关于异常的知识点

android培训------我的java笔记,期待与您交流! 关于java中异常的知识点也学习了好久了,今天依旧把前段时间学习的异常的知识点整理一下. 好了,开始上笔记: 一:java中异常是...
  • u012960536
  • u012960536
  • 2015年05月11日 22:44
  • 410

[读书笔记—效率]《超级整理术》- [日]泉正人

作者简介:泉正人,麻省理工学院斯隆商学院行政管理硕士学位,设立了最大的独立金融教育机关 -日本金融学习株式会社。笔者的话:不同于以往的整理方面的书籍,本书作者介绍了多方面的整理术:公司内办公文件的整理...
  • apple890111
  • apple890111
  • 2015年08月09日 22:57
  • 1678

史上最全小程序笔记整理

1、小程序目录结构 https://mp.weixin.qq.com/s?__biz=MzU5MzM4MjgzNw==&mid=2247483654&idx=1&sn=5f61592998fd2574...
  • sinat_35615296
  • sinat_35615296
  • 2018年01月05日 20:27
  • 112

JS笔记整理(三)

1.css里的word-break:break-all表示当一行比较长的文字到达div或者其他容器的右边时自动切换到下一行,也可以配合overflow:auto来使用 2.list-style 3...
  • fb408487792
  • fb408487792
  • 2015年03月04日 11:03
  • 563

整理vue学习笔记

1.vue简介,vue是一个构建用户界面的框架。是一个轻量级mvv框架,和angular一样是所谓的双向数据绑定,数据驱动和组件化的前端开发,通过简单的api 实现响应式的数据绑定和组合试图组件,容易...
  • qq_26562641
  • qq_26562641
  • 2017年09月04日 09:20
  • 638

C++学习笔记问题大全【整理】

C++学习笔记
  • u013174689
  • u013174689
  • 2014年06月06日 21:17
  • 1146

Java改错学习法 笔记

1、在Java中,过程和函数统称为方法,方法分为类方法和实例方法,变量也分为类变量和实例变量。所谓类变量和类方法都是 对整个类而言的。类方法只能访问类变量,换句话说,类方法不能访问实例变量。实例方法可...
  • ralbatr
  • ralbatr
  • 2014年01月02日 16:27
  • 602

Linux整理笔记(5)

一、线性表的顺序存储结构及其属性 用一段地址连续的存储单元,一次存储线性表的数据元素。顺序存储结构需要三个属性。存储空间的起始位置:数据data,它的存储位置就是存储空间的存储位置;线性表的最大存储...
  • Lpc19950530
  • Lpc19950530
  • 2018年02月01日 19:29
  • 15

计算机网络笔记整理(二):物理层

计算机网络:物理层
  • Jingle_cjy
  • Jingle_cjy
  • 2017年08月31日 23:14
  • 297
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java笔记整理:操作符
举报原因:
原因补充:

(最多只允许输入30个字)