目录
1.标识符
2.八大基本类型
3.引用类型数据
4.基本数据类型拓展
5.类型转换
1.标识符
概念:Java所有组成部分都需要名字, 关键字、类名、变量名、以及方法名等都被称为标识符。
标识符大小写敏感,
Java标识符,只能以字母、美元符$、下划线_ 三者之一开始,后续可以是字母、美元符、下划线、数字任意组合。
2.八大基本类型
整数有4个:分别为 byte short int long
浮点数有2个:float double
字符有1个: char
boolean有2个: true, false;
这里尤其注意,浮点数就是小数的意思,字符串 String不是基本数据类型,是一个类。
3.引用类型数据
类、接口、数组
4.基本数据类型拓展
得出结论:最好完全避免使用浮点数进行比较。
图片中代码输出的原因在于:基本数据类型float和double的区别 - 天天xiangshang - 博客园 (cnblogs.com)
那么,银行业务如何进行表示钱的数目? 一般使用 BigDecimal这个类进行处理!
所有的字符本质是数字,计算机的底层实现全是01,通过编码来实现字符和01之间的对照关系。
为什么会出现这种输出?
在java中==和equals()的区别_CoderLC的博客-CSDN博客_java中==和equals
new string()和直接赋值的关系和异同_Nicolas Lee的博客-CSDN博客
Java中String直接赋值与使用构造方法new String()赋值的区别_任性的萝卜的博客-CSDN博客
总结:简单理解就是 == 比较的是两个变量是不是同一个内存地址(比较的是地址),而 equals 比较的是两个地址里面的内容是否一样(比较的是内容)。
5.类型转换
运算中,不同类型的数据先转换成同一类型,再运算!
注意:char也在里面,因为字符的底层是数字。且float32位,long64位,为什么float排在后面,这和两者的表示范围有关系。
强制 / 自动 类型转换:
出现这种问题的原因是内存溢出,byte的表示范围是 -128 ~ 127
强制类型转换语法是: 高---> 低(类型)变量名
自动类型转换语法,低---> 高 直接写即可!
注意:转换的时候可能存在内存溢出或者精度问题
a * b计算结果超出了 int型数据表示范围,所以会溢出。
long total2 = a * b; 在这个表达式中,乘积结果是先计算出来并存储在int型中(默认是int),再转换成long型。在转换之前,问题已经存在了。
long total3 = a * (long)b; 在计算之前,会先将两个数据转化为同一类型long,所以乘积结果保存在long型中,故能计算出正确的结果。



