一、java基本数据类型
1、java基本数据类型可分四类八中
第一类:整形:byte、short、int、long
第二类:浮点型:float(单精度) 、double(双精度)
第三类:逻辑类型:boolean(只包含:True或False)
第四类:字符型:char
所占字节:
boolean(布尔型) :1/8
byte(字节类型):1
char(字符型):2 一个字符能存储一个中文汉字
short(短整型):2
long(长整型):8
int(整形):4
float(单精度):浮点类型 4
double(双精度类型):8
【java中默认中的整形类型是Int类型,如果需要定义为float类型,则要在数值后面加上"l"或"L";默认的浮点型也是双精度浮点,如果需要定义为Float型,则需要在数值后加上“f”或“F”】
基础知识:
一个字节等位8位,一个字长等于256个数,就是-128至127一共256,kB就是kBytes(kBytes就是字节意思),1Byte(字节) = 8bit(比特)
一个汉字就是两个字节,占用两个字节,
一个字母或者一个阿拉伯数字就是一个字节,占用一个字节
一般讲大小写是用Byte,大写的“B”,讲网络的速率使用bit,小写“b”
二、基本数据之间转换
1、基本数据类型自动转换
当容量小的数据类型于容量大的数据类型运算时,容量小的数据类型会自动转换至容量大的数据类型:
char,byte,short ==>int ===>long ==>float ==double
char,byte,short之间不会相互转换,他们三者在计算时首先转换至int类型
当把任何基本数据类型的值和字符串进行连接运算时(+),基本类型的值将自动回转换至字符串类型
【容量小的可转容量大的,容量大的转容量小的会失去精度】
//java数据之间转换分为基本数据转换和强制转换 //基本数据之间的转换 public class App { public static void main( String[] args ) { //自动转换类型:当容量小的数据类型于容量大的数据类型运算时,容量小的数据类型会自动转换至 // 容量大的数据类型:char,byte,short ==>int ===>long ==>float ==double int i1 = 11; //整形 short s1 = 12; int i2 = i1+s1; float f1 = 13.3F; float f2 = s1+ i2; // System.out.println( s3 ); long l = 12L; float f3 =l; System.out.println( i2);//输出:23 int System.out.println( f2);//输出:35.0浮点型 char c1 ='a';//97 c1 = 'A'; //65 aissl码对应数字为65 int i3 = c1+1; System.out.println(i3); //输出:66 //注意:当charyteshort之间做运算时,默认的结果显示为int类型 short ss1 = 12; byte bb1 = 1; char cc1 = 'a'; // short ss2 = ss1+bb1; //报错,不能转换至short类型 int ii1 = ss1 +bb1; // short ss2 = ss1+bb1;//报错,不能转换至short类型 System.out.println(ii1);//输出:13 int ii2 =cc1 + bb1; short ss2 = 11; // short ss3 = ss1 + bb1; //强制转换:将容量大的转换为容量小的 //问题:会导致精度的损失 long q1 = 1234L; //添加强制转换符号()并在括号中添加转换的类型 int m1 = (int)q1;//将长整型转换至整形 System.out.println(m1); //字符串:String String k1 = "lcj"; System.out.println(k1); //输出lcj //字符串和基本数据类型之间的运算:只能用到“+”进行连接,运算结果任然是一个字符串形式 String str = "xiaoluo"; int k3 = 123; String str01 = str + k3; System.out.println(str01); //输出:xiaoluo123 } }