//java在初始化变量的时候要赋值 //整数类型 byte 的范围是-128到+127之间,占用内存1个字节. byte b = 126; short 表示的范围是-2^15到2^(15-1)之间,占用两个字节. short s = 1; int 占用4个字节. int i = 1; long 占用8个字节. long l = 3l;//long类型变量赋值时,在值的后面跟l //浮点类型 //单精度 float 占用4个字节,精度是7位有效数字 float f = 1.22f //双精度 double 占用8个字节,精度是16位有效数字 double d = 1.22 //字符类型 char 占用2个字节 char c = 'a'; //布尔类型 boolean b1 = true; boolean b2 = false; //引用类型 //引用类型可以在初始化的时候赋值为null String str = "hello"; //引用类型与基本类型的区别 int i0 = 1; int i1 = 1; //在内存中会存储2个1的值 String s0 = "hello"; String s1 = "hello"; //不会在内存中存在两个"hello",s0和s1都引用了"hello"的地址 //字符串的拼接 String s3 = "he"+"ll"+"o";
//类型转换 //自动类型转换 //容量小的类型会自动转换为容量大的数据类型 byte a = 1; int m = a; System.out.println(m);// 1 int a = 1; byte m = a; //报错 byte short char 之间不会相互转换,他们三者之间计算时首先转换为int类型
//类型转换 //自动类型转换 //容量小的类型会自动转换为容量大的数据类型 byte a = 1; int m = a; System.out.println(m); //多种类型的数据进行混合运算时,系统会将所有的数据转换成容量最大的那个类型 int i = 1; short s = 2; byte b = 3; int result = i + s + b;//s和b会转换为int类型 //为什么char也能参与计算 char c = 'a'; byte b0 = 2; int k = c + b0; System.out.println(k);//99 char使用到数学计算时用了ASCAII码值 //字符串与任意的类型数据相加之后还会是字符串 String str = "abc"; int q = 1; System.out.println(str+q);// “abc1” //强制类型转换 int e = 1; byte o = (byte)e;//自动转换的逆过程,可以将大的数据类型转换为小的数据类型。 //字符串不能直接转换为基本类型 String str2 = "43"; int j = Integer.parseInt(str2); System.out.println(str2); //booleanl类型不能强制转换