?欢迎大家收看,请多多支持?
?关注小哇,和我一起成长?个人主页?
Java的数据类型
可以分为两类,基本数据类型和引用数据类型
基本数据类型有4类8种,4类分别是整型 浮点型 字符型 布尔型,
8种是byte、short、int、long、double、char、boolean
字节型 | byte | 内存占用1字节 |
短整型 | short | 2字节 |
整型 | int | 4字节 |
长整型 | long | 8字节 |
单精度浮点型 | float | 4字节 |
双精度浮点型 | double | 8字节 |
字符型 | char | 2字节 |
布尔型 | boolean | 无明确规定 |
在Java中数据类型大小固定,这与c中不同
整型
整型默认为int,int 的包装类型是Integer,int类型所能表示的数据范围:
//打印最大值和最小值
System.Out.println(Integer.MAX_VALUE);
System.Out.println(Integer.MIN_VALUE);
short、byte、long的包装类型都是将首字母大写,最大值都是 包装类型.MAX_VALUE,最小值都是 包装类型.MIN_VALUE。
long类型的数字后要加L或l,一般写大写L(与1区分)。
浮点型
浮点数的存储方式与在C语言中的存储方式相同。浮点型默认为double,单精度浮点数在后面加f或F。
字符型
char占两个字节,包装类型为Character。
与C语言中用ASCII码值来表示字符不同,Java中用Unicode表示字符。计算机中的字符本质仍是数字。
布尔型
只有两种取值,false表示假和true表示真,与C语言中不同的是,Java中不能用0表示假,非0表示真。包装类型为Boolean。
类型转换
分为自动类型转换(隐式)和强制类型转换(显式)。
自动类型转换的特点是:数据范围小的转为数据范围大的时会自动进行
int a = 10;long b = 5L;a=b;//编译报错,long的范围比int大,会丢失数据b=a;//将int的a转换为long类型
强制类型转换特点:将范围大的类型赋给范围小的,可能有精度丢失
类型提升
类型不同的数据间进行运算时,类型小的数据会提升为类型大的数据
int和long之间:
int a = 3;
long b = 4;
int c = a + b;//编译报错,a+b时a提升为long类型,结果也为long类型,赋给int可能会丢失数据
long d = a + b;//编译成功
对于short, byte 这种比4个字节小的类型, 会先提升成4个字节的int , 再运算 :
byte a = 3;
byte b = 2;
byte c = a+b;//报错,int类型范围比byte大
字符串类型
java中用String类来定义字符串 ,可以用+来拼接两个字符串
String a = "Hello,";String b = "welcome to my blog.";System.out.println(a);System.out.println(b);System.out.println(a+b);
打印结果:
int类型转换成String类型:
int a = 6;//法一String s1 = a+"";//法二String s2 = String.valueOf(s1);
这两种方法也适用于其它基本数据类型和它们的包装类型转换成String类型。
String类型转换成int:
String str = "100";int b = Integer.parseInt(str);System.out.println(b);//打印100String str2 = "A";int c = Integer.parseInt(str2,16);//第二个参数用于解析字符串的进制System.out.println(c);//打印10