基本数据类型、包装类(封装类)、String之间的转换

数据类型

数据类型:分为基本数据类型引用数据类型

基本数据类型包括

     数值型: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);
		
	}

}

猜你喜欢

转载自blog.csdn.net/HY845638534/article/details/84669490