数据类型
数据类型:分为基本数据类型和引用数据类型
基本数据类型包括
数值型:byte(占一字节) short(占两字节) int(占四字节) long(占八字节)float(占四字节)double(占八字节);
字符型:char(占一字节);
布尔型:Boolean(返回值:true或false)。
引用数据类型:类、接口、数组
基本数据类型的转换:
类型转换的原理:
自动类型转换(也叫隐式类型转换);
基本数据类型的自动类型转换只有7种数据类型,除了boolean
原则:低级别可以直接转高级别(byte->short->int->long->float->double)
表达式的数据类型自动提升
1.所有的byte型、short型和char的值将被提升到int型(只要参与就会自动提升)
2.如果一个操作数是long型,计算结果就是long型
3.如果一个操作数是float型,计算结果就是float型
4.如果一个操作数是double型,计算结果就是double型
5.如果一个操作数是String型,计算结果就是String型
强制类型转换(也叫显式类型转换)是指基本数据类型之间的转换
1.高级别转低级别时,必须要进行强转,例如将int类型转化为short类型:
int a=330;
short b=(short)a;
2.是否强制转换取决于数据类型级别的高低,不取决于数据的实际;
3.强制类型转换在某种情况下会丢失精度;例如:float类型转化为int类型就会丢失小数部分。
基本数据类型、包装类、String之间的转换可以用下图来表示
基本数据类型和包装类之间的转换
基本数据类型:byte short int long float double char boolean
对应的包装类:Byte Short Integer Long Float Double Character Boolean
基本数据类型和包装类之间的转换也可以看做拆箱和装箱。
装箱:把基本类型转换成包装类,使其具有对象的性质,分为手动装箱和自动装箱
int number = 1;//定义一个int类型的变量number
Integer num1 = new Integer(number);//手动装箱
Integer num2 = number;//自动装箱
拆箱:把包装类对象转换成基本类型的值,分为手动拆箱和自动拆箱
int number = 1;
Integer num = new Integer(number);//手动装箱
int num1 = num.intValue();//手动拆箱
int num2 = num;//自动拆箱
后面文本均以int 和double数据类型为例。
public class Test {
public static void main(String[] args)
{
//基本类型与封装类型之间的转换
// 基本数据类型转化为封装类型
int I1=20;
double db2=15;
Integer In1=new Integer(I1);
Double dou=new Double(db2);
System.out.println(In1);
System.out.println(dou);
// 封装类转换为基本数据类型
I1=In1.intValue();
db2=dou.doubleValue();
System.out.println(I1);
System.out.println(db2);
}
}
基本数据类型和String类型之间的转换
基本类型转换为String类型 使用String的valueof()方法或者使用 +"" 这里就需要说数据类型的自动提升。
String类型转换为基本类型使用 封装类;
public class Test2 {
public static void main(String[] args)
{
// 基本类型转换为String类型 使用String的valueof()方法
int I=100;
long L=50;
String str=String.valueOf(I);
System.out.println(I);
String str2=String.valueOf(L);
System.out.println(str2);
double db=20.55;
String str1=String.valueOf(db);
System.out.println(str1);
// String类型转换为基本类型使用 封装类;
db=Double.parseDouble(str1);
System.out.println(db);
I=Integer.parseInt(str);
System.out.println(I);
}
}
封装类和String类型之间的转换
String类型转化为封装类型需要用封装类型的valueOf()方法;
封装类转化为String类型需要用toString()方法。
public class Test3 {
public static void main(String[] args)
{
// 封装类型与String类型之间的转换
String str3="60";
Integer In2=Integer.valueOf(str3);
System.out.println(In2);
// 封装类转化为String类型
str3=In2.toString();
System.out.println(str3);
}
}