基本数据类型变量之间的自动类型提升、string引用类型和基本数据类型的使用
总结
- 整型数据,默认为int型
- 浮点型数据,默认为double
- 两个不同数据类型的数据相加,得到的数据的数据类型为大的那个
- char、short、byte数据相加,得到的数据的类型为int型(无论是不是不同的数据类型相加,都会得到一个int型数据)
例
-
float a = 12.5 ;
编译错误,因为12.5默认为double型,而a是float型 -
float a = float(12.5) ;
12.5默认为double型,可以通过强制类型转换,把double型转换为float型,这样就可以赋值 -
long b = 22222222222222 ;
编译错误,因为22222222222222默认是int型,而这个数据大于int型的大小,放不进去内存
可以理解为:编译过程不会执行long b = 22222222222222 把数据放到b中,而是先单独放到内存中,在编译为.class文件,并被执行后,才会从内存中把数据拿出来,放到变量b中;而这里是编译过程中放不进内存,导致编译失败 -
float c = a + 1 ;
编译失败,因为a + 1 后数据的数据类型为int型 -
string不是基本数据类型,而是引用数据类型
string只能和8中基本数据类型做连接作用,不能做其他算数运算,比如赋值运算:string a =22 ;
点击查看代码
char a = 'a' //97
int b = 3
string c = "string"
system.out.println(a+b+c); //100string