携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第32天,点击查看活动详情 >>
📖个人介绍
大家好我是:Zinksl
认真分享技术,记录学习点滴 如果分享对你有用请支持我哦🍺
点赞:👍 留言:✍收藏:⭐️ 个人格言: 想法落实的最佳时机就是现在!🏄
::: 💡 根据 遗忘曲线:如果没有记录和回顾,6天后便会忘记75%的内容 读书笔记正是帮助你记录和回顾的工具,不必拘泥于形式,其核心是:记录、翻看、思考 :::
注意点
1 自增、自减只针对变量,(常量不可用)
a++、++a或者a- -、- -a在运算中等同于: a = a+1;或者 a= a-1; 如果此处是常量如: 3 = 3+1,常量是不允许赋值的。所以自增、自减只针对变量
2 自增or自减符号在变量前(- -a或++a)
符号在前,先变值再赋值
3 自增or自减符号在变量后(a- -或a++)
符号在后,先赋值再变值
隐式转换和强制转换
数值范围从小到大排序:byte--->short--->int--->long--->float--->double
1 隐式转换(小范围类型数据--->大范围类型数据)
- 运算过程中的隐式转换(java中数据类型不统一,不能直接做运算,需要先统一)
public void operation(){
int nub1 = 10;
double nub2 = 11.0;
//此处以下为代码分析
int nub3 =nub1+nub2; //错误示例
double nub3 =nub1+nub2; //正确示例
/*
在计算前会统一数据类型,进行隐式转换由小类型转为大类型数据
*/
}
- byte,short、char参与运算,都会直接提升为int
public void operation(){
short nub1 = 10;
byte nub2 = 6;
//此处以下为代码分析
short nub3 =nub1+nub2; //错误示例
int nub3 =nub1+nub2; //正确示例
/*
byte,short、char参与运算,都会直接提升为int
*/
}
2 强制转换(大类型数据--->小类型数据)
格式:小数据类型 变量 = (小数据类型)大类型变量 如: float a =(float) 15.3
- 强制转换存在问题,可能会损失精度
IDEA代码修正键:Alt+Enter
3 常量优化机制
在操作数为常数的情况下需要注意的点;解析如下:
byte b = 3+4; 问题:在代码编译过程中会不报错? 答案:这个代码不会。
原因分析:因为两个操作数都是常数,在编译的时候(javac)常数之间会直接先运算,再将结果(此处结果值在byte范围内)赋值给变量b在字节码文件(.class)中byte b = 7;,所以不会报错。
注意: 如果计算结果超出byte范围也会报错