目录
目录
前言
Hi~ 你好!
欢迎点击我的博客 : )
这是我的学习总结,希望也能帮助到你
我的博客地址:hi~,我在这里~,欢迎关注哦,
三连不迷路,优质内容持续更新!
一.八种基本数据类型
1.int 整型
int占4个字节,
无论是18位还是32位系统中,int都占4个字节,long都占8个字节
好的,此时我们提出了字节的概念
那么一个字节的大小是多少呢?
8 bit = 1 byte 1024 byte = 1kb
1024 kb = 1mb 1024 mb = 1gb
在java中 没有所谓的无符号和有符号的概念, int有4个字节,占32位(1个符号位+31个数值位)
因此,int整型所能表达的范围为:-2^32-----2^31-1
例如:
int maxValue = Integer.MAX_VALUE;
int minValue = Integer.MIN_VALUE;
System.out.println(minValue);
System.out.println(maxValue);
结果如下:
-2147483648
2147483647
我们可以通过int的包装类Integer来进行验证,那么
什么是包装类呢?
相当于基本数据类型的加强版,是基本数据类型对应的类类型
可以实现成为引用数据类型,方便进行对象和方法的操作.
包装类除了Interger Character 其余首字母大写
同时,在Java中,直接赋值不能超过这个数据类型的最大范围,否则会进行报错或者溢出
例如: int a = 2147483647+1; int b = 2147483647; int c = 2147483648; (报错) System.out.println(a); System.out.println(b); 结果如下: -2147483648 2147483647
2.long长整型
上文提到,long为8个字节 ,占64位(1个符号位+63个数值位)
可推出范围为:-2^63----2^63-1;
长整型变量的初值后需要加L/l, 后缀不影响程序的输出
long a = 2147483647; 在int的范围内,没后缀不报错
long b = 2147483648L; 在int的范围外,必须加后缀L/l
long c = -2147483648;
long d = -2147483649L;
同时,通过包装类验证long的范围:
long maxValue = Long.MAX_VALUE;
long minValue = Long.MIN_VALUE;
结果如下:
-9223372036854775808
9223372036854775807
3.short短整型
2个字节 16个bit 范围:-2^15 ---2^15-1 包装类Short
如果给定的值超过了能表达的最大值,会直接报错
short maxValue = Short.MAX_VALUE;
short minValue = Short.MIN_VALUE;
32767
-32768
4.byte字节类型
在任何系统下都占1个字节
一个字节 8个bit 范围:-2^7 ---2^7-1 ( -128--128 ) 包装类 Byte
byte maxValue = Byte.MAX_VALUE;
byte minValue = Byte.MIN_VALUE;
127
-128
5. double双精度浮点类型
8 个字节
浮点数和整数在内存中的存储方式是不一样的 包装类Double
浮点数是一个近似值,并不是精确值 小数其实没有精确的,只能精确到某一位
6. float 单精度浮点类型
4个字节 float f = 12.5f 赋值后面要加 f 后缀
7.char字符类型
ch = 'a'; a =97
2个字节 16个比特位 不能赋值负数 包装类Character
8.boolean 布尔类型
boolean数据类型只有 true和false
JVM没有明确它的大小 boolean flg = true;
在Java中真只有true 假只有 false 包装类:Boolean
二.类型转换
1.强制类型转换 (显式)
有风险
int a = 1;
float b = 1.5f;
int c = a+(int)b;
System.out.println(c);
结果:2
Int 和float float表示的数据 宽度更大
2.自动类型转换 (隐式)
数据类型小的转为大的
int a = 1
float b = 1.5f;
System.out.println(a+b);
2.5
1.不同数据类型的变量进行赋值,范围小的自转成范围大的
2.范围大的->范围小的,需要强转,但是有可能精度丢失
3.将一个字面值常量进行赋值时,Java会自动针对数字范围进行检查,在范围内就不会报错
4.强转不一定成功,不相干的类型不能转换
三.类型提升
小类型-->大类型 不足4个字节的,先转换成4个字节再运算
int a = 1; long b = 2L; long c = a + b; int提升为8个字节,然后和b参与运算 System.out.println(c) 结果:3
Byte a+byteb 小于4个字节的在运算的时候,会提升为4个字节
四. String字符串类型
String 属于引用数据类型
int a = 4; //str 和a都叫做局部变量,此时依然存放在栈上 String str= "123"; //System.out.println(str); System.out.println(str+str);//两个字符串相加,为拼接字符串 System.out.println(str+a);// 字符串加整数,还是字符串 结果: 123 123123 1234
int转换String
int a =123;
String str = String.valueOf(a);
System.out.println(str);
System.out.println(str+4);
结果: 123
1234
String转int
String str = "12345";
Integer a = Integer.valueOf(str);
System.out.println(a);
System.out.println(a+1);
结果: 12345
12346
后记
看到这里,希望能帮到你~
您的点赞 ,收藏 ,关注 是我创作的最大动力!
同时也欢迎在评论区进行交流,共同进步~