java 数据类型
java是一个静态类型的语言,所有的数据类型都是有类型的(强类型的语言),当一个变量名指定类型后不可再改变变量类型
数据类型包括基本数据类型和引用数据类型(除基本数据类型外的其他类型都是引用数据类型)
基本数据类型不是面向对象的,但是提供了对基本数据类型的包装类,提供面向对象接口
基本数据类型包括整型,浮点型,布尔型和字符型
整型包括byte,short,int,long
byte类型:
1个字节(8个byte),取值范围,
在网络,文件IO流中常使用byte类型,
当byte类型的值进行算术运算时,会自动提升到int类型,和浮点类型进行算术运算时也会提升
short类型:
2个字节(16个byte)取值范围
当byte类型的值进行算术运算时,会自动提升到int类型,和浮点类型进行算术运算时也会提升
int:
4个字节(32个byte),取值范围
long:
8个字节(64个byte),取值范围
浮点型
float:单精度浮点类型,后面加L或l,默认可以不加
double:双精度浮点类型,后面加F或者f
如果不加默认为float
布尔型
true,false
字符型
char,单个字符,当进行算术运算时会使用对应的ASCII的值进行运算
'a' 对应ASCII值97
'A' 对应ASCII值65
自动类型转换
从小到大可以完成自动类型转换,不会丢失精度,转换顺序byte < short = char < int < long < float < double
byte b = 100;
int n = b; //自动完成类型转换
强制类型转换
从大到小使用强制类型转换,强制类型转换会丢失精度,应为需要适应目标的数据类型范围
int n = 100;
byte b = (byte)n; //把int类型变量强制转换到byte类型
类型之间转换(包装类)
字符串转Integer对象(其他整型类似)
String s = "100";
Integer i = Integer.valueOf(s); //返回Integer对象,自动装箱拆箱完成和int类型的转换
int i = Integer.parseInt(s); //返回int数据类型
int类型转字符类型(其他类型类似)
int n = 97;
String s = String.valueOf(n);
字符串类型转字符类型
String s1 = "abcdefg";
for(int i=0; i<s1.toCharArray().length; i++){
char a = s1.toCharArray()[i];
System.out.println(a);
}
char c = s1.charAt(0); //字符串是引用类型,可以通过方法获取
字符类型转字符串类型
char c = 'a';
String s = String.valueOf(n);
int类型转字符类型
int a = 97;
char c = (char)a;
字符类型转int类型
char c = 'A';
int i = (int)c;