概述
一字节8电位
Java byte 最左边一位表示正负,0是正,1是负.
(option / alt) + / 代码提示
Refactor 重构 Rename 重命名 (windows 重命名是选中需要重命名的文件点击快捷键 F2)
byte 1字节 (Java 的 byte 类型 最左边一位电位表示符号 0正, 1 负)
short 2字节
int 4字节
long 8字节
float 4 字节
double 8字节
char 2字节 (unicode 编码表中的字符) 0~65535
boolean 1字节 ( 一个字节八个电位 00000001 表示真(true), 00000000表示假(flase))
// 基本类型的字面值的规则(5条)
1: 整数字面值, 是 int 类型
右侧是int
int a = 4355;
int a = 99999999999999; 错误的 没表明字面值后缀,默认int 但是超出int 范围
2: byte,short , char 比int 小的整数可以用范围内的值直接赋值
byte a = 127;
3: 浮点数字面值是 double类型
double a = 3.14;
float a = 3.14; 错误没表明字面值后缀,默认double 但是超出 float 范围,不能赋值a
4: 字面值后缀(大小写都可以)
L - long
long a = 9999999999L;
F - float
float a = 3.14f;
D - double
double a = 3.0d;
5: 进制前缀
二进制 4 位(最大1111 是16), 所以二进制可以足够表示所有 16以下 数字,
一个16 进制的字符,可以表示二进制的4位,两个16进制的字符,可以表示8位,及一个字节值.
0x - 16 进制 (表示二进制4位)
0xff 既 255
0 - 8进制 (表示二进制3位)
0377 既255
u - char 类型 16 进制
必须完整表示 char 类型的两个字节值
'a' 97 'u0061'
0000 0000 0110 0001
// 基本类型的运算规则(5条)
1.计算结果的数据类型, 与最大的类型一致
3/2 = 1; (int / int) = int;
3d/2 = 1.5; (double / int) = double
2: byte, short , char 比int小的整数,运算时会先变成 int 在 运算
byte a = 3;
byte b = 4;
byte c = a + b; (错误), 运算时是 int ,用 byte接收格式不对
3: 整数运算溢出
Integer.MAX_VALUE+1 得负数最小值
就像时钟转圈一样,转到最大,再加回到最小.
300000000*60*60*24*365 (溢出的错误结果, 乘第一次时超出int 范围,后面再乘都是错
300000000L*60*60*24*365(对的)
4: 浮点数运算不精确
2-1.9 = 0.10000000000009
Java 提供了做精确运算的方法,
5: 浮点数的特殊值
Infinity (无穷大)
3.14/0 或者 Double.MAX_VALUE*2; 带负号就是无穷小
NaN (不是数)
负数开方得到, 数学上是虚数, java 不表示虚数
Math.sqrt(-2); 负数开方
// 基本类型的数据转换
从小到大的转换是自动转换,转成浮点数可能会不精确
byte a = 1; 既 00000001 转成 int 类型 为 00000000 00000000 00000000 00000001
byte b = -1, 既 11111111 转成 int 类型 为 11111111 11111111 11111111 11111111
从大的类型转小的类型
int 转 byte 4个字节转成一个字节, 切掉前面的三个字节, 必须强制转型
int a = 356;
byte b = (byte)a;
从大转到小的类型可能引起数据损失, 必须强制转型
浮点数转整数小数会被直接舍弃,
char (unicode 编码表中的字符)
转载于:https://www.cnblogs.com/dingzhijie/p/10634351.html
最后
以上就是背后香水为你收集整理的Java - day001 - 8种基本数据类型的全部内容,希望文章能够帮你解决Java - day001 - 8种基本数据类型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复