//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类型不能强制转换