数值类型
整数类型
byte占1个字节范围. |
short 站2个字节范围. |
int占4个字节范围. |
long 占8个字节范围. |
浮点类型
float占4个字节范围 |
double占8个字节范围 |
字符类型
char占2两个字节 |
布尔类型
占1位其值只有false和true。 |
八大基本数据类型
②引用类型 (reference)
引用类型包括:
1.类。
2.接口。
3.数组。
数据类型扩展
=======
1.整数扩展:进制
二进制0b,八进制0,十进制,十六进制0x。
2.浮点数扩展
注:float是离散,有限,舍入误差,大约,接近不等于。
例:
我们可以看到的是0.1不等于0.1,c=c+1。
这个就和float有关了,即在上面强调float的特点。最后也总结出来一个道理:
最好完全避免使用浮点数进行比较!!!
3.字符拓展
所有的字符本质都是数字!!!
我们可以举例看一下:
把字符a强制转换为整数型,对应的数字是 97。这个是为什么呢?
答:在底层有一个Unicode编码:表(a:97,b:98…)每一个字符都对应有相应的数字!!!
4.转义字符
| 样式 | 含义 |
| — | — |
| \123 | 1~3位八进制数据所表示的字符,如\256 |
| \uF890 | 4位十六进制数据所表示的字符,如\u0014 |
| ’ | 单引号字符 |
| \ | 反斜杠字符 |
| \t | 水平制表符 |
| \v | 垂直制表符 |
| \r | 回车 |
| \n | 换行符 |
| \b | 退格 |
| \f | 换页 |
| \a | 响铃 |
类型转换
====
低————————————————————————————>高
byte,short,char ——>int ——>long——>float——>double
注:小数的优先级大于整数!!!
例:
int i = 128;
byte b = (byte)i;
//这个转换时有溢出
输出为-127(因为有溢出)
强制转换格式:(类型)变量名
强制转换是由高到低,自动转换是由低到高。
注意一些转换的情况!!!
不能对布尔值进行转换。 |
不能把类型转化为不相干的类型。 |
在把高容量转换到低容量的时候,强制转换。 |
转换的时候可能存在内存溢出或者精度问题。 |
JDK新特性
这个是我们补充的一个地方,下面的例子是可以用到的。
首先先介绍一下JDK的新特性:数字之间是可以用下划线分隔的,这样可以更清楚的分别位数!!!
int money = 1000000000;
int money1 = 10_0000_0000;
//两者是输出相同的
解决一些溢出问题
首先我们来看下面这段代码:
int money1 = 10_0000_0000;
int years = 20;
int total = money1 *years;
System.out.println(total);
我们来猜一下这个结果是200000000000还是什么呢?
读者福利
分享一份自己整理好的Java面试手册,还有一些面试题pdf
不要停下自己学习的脚步
码:
int money1 = 10_0000_0000;
int years = 20;
int total = money1 *years;
System.out.println(total);
我们来猜一下这个结果是200000000000还是什么呢?
读者福利
分享一份自己整理好的Java面试手册,还有一些面试题pdf
不要停下自己学习的脚步
[外链图片转存中…(img-AeRIgoii-1714708946932)]
[外链图片转存中…(img-fIcykUCd-1714708946932)]