数据类型

数据类型

八大基本数据类型有对应的基本数据类型包装类(八大基本数据类型的包装类都是final修饰,不可更改)

 

这有个问题:int与Integer,是不是同一种数据类型?
答案:不是的,int为基本数据类型,Integer为包装类型(为类)

 

了解一点背景:

基本数据类型转化为其对应的数据类型的包装类,其实是装箱和拆箱的操作

装箱:把一个基本数据类型的值转换为对应的包装类的对象

拆箱:把一个包装类对象转换对应的基本类型

从java5开始 提供自动装箱和拆箱。自动装箱:可以直接把一个基本数据类型的值赋给包装类。自动拆箱:同理
事实上,自动装箱和拆箱是一个“语法糖”,只是编译器级别的新特性,其底层依然使用的是手动装箱和拆箱

 

//装箱
int abc = 17;
Integer num1 = Integer.valueOf(abc);
//拆箱
int num2 = num.intValue();

 同时,我们可以自己设计包装类

//设计包装类
class IntWapper{
    private int value;//被包装的int值
    
    //设定的最大值 最小值
    public static final int MAX_VALUE = 34445556;
    public static final int MIN_VALUE = -34445556;
    
    //构造器
    public IntWapper(int value) {
        this.value = value;
    }
    
    public String toBinaryString(int value) {
        //计算(省略)
        return "010101";
    }
}

 

 数据类型的转化(这里介绍String类型的相关转化)

        //1.String类型转化为包装类型的两种方法 例如:
        String str1 = "12233";
        Double i1 = new Double(str1);
        Double i2 = Double.valueOf(str1);
        
        System.out.println("--------------------------------");
        
        //2.包装类转化成String类型
        Long num2 = 123L;
        String str2 = num2.toString();//或者String str2 = String.valueOf(num2);
        System.out.println(str2);
        System.out.println(str2.length());//此处能够得到字符串的长度,证明已经转化为字符串了
        
        System.out.println("--------------------------------");
        
        //3.基本数据类型转化为String类型,(1)利用二目运算符"+"隐式转化,任何基本类型与字符串相加都变成字符串。 
//(2)利用显示的方法是n.toString()或String.valueof(n)
String str3 = 17 + ""; System.out.println(str.length()); int num1 = 0; String str4 = String.valueOf(num1); System.out.println(str3); System.out.println(str4); System.out.println("--------------------------------"); //4.String类型转换为基本数据类型 /* * 注意: * String类型转换成int double等数据类型,其数据必须由数字构成 * 若有字母或者其他符号,则程序会报错 */ String str5 = "1234"; int num3 = Integer.parseInt(str5); System.out.println(num3);
//非常少见的
        //String类型转化成boolean类型
        String str6 = "false";
        boolean nn = Boolean.parseBoolean(str6);
        System.out.println(nn);
                
        System.out.println("-------------------------");
                
        
        //String类型转化为char类型
        //需要用char类型的数组进行接收
String str7 = "cc";
        char[] oo = str7.toCharArray();
        for(int j = 0 ; j < oo.length ; j++) {
            System.out.println(oo[j]);
        }

 

        String c = "12345";
        String d = "10";
        String e = c + d;
        System.out.println(e);//输出:1234510
        
        System.out.println("--------------------------------");
        
        int f = 10;
        String g = f + c;
        System.out.println(g);//输出:1012345
        
        int ii = Integer.parseInt(c);
        int top = 10 + ii;
        System.out.println(top);//输出:12355

 

posted @ 2019-08-02 21:20  雾也暮城  阅读(121)  评论(0编辑  收藏  举报