JAVA重点类 包装类 编码和解码

    科技2026-03-04  4

    一、包装类(Wrapper)

        由于基本数据类型性能不够,没有方法。因此可以把他们封装到相应的类里面,基本数据类型作为这个类的一个xxxValue属性。

         针对八种基本数据类型定义相应的引用类型—包装类(封装类)

         有了类的特点,就可以调用类中的方法,Java才是真正的面向对象。

    说明:基本数据类型可以做运算,但没有方法。 对象方法多,但不能做运算,所以需要相互转换。

    二、包装类的使用

        Java提供了8种基本数据类型对应的包装类,使得基本数据类型的变量具有了类的特征

    重点:基本数据类型、包装类、String三者之间的相互转换

    2.1 基本数据类型 ——> 包装类   (有自动装箱了,了解就好)

    语法: 包装类 对象名 = new 包装类(基本数据类型变量);

    exp: int num1 =10;

          Integer in1 = new Integer(num1);

    2.2 包装类 ——>基本数据类型   (有自动拆箱了,了解就好)

          基本数据都存放在包装后对象的xxxValue属性里面,因此调用包装类的xxxValue属性,就可还原基本数据类型。  xxx指具体的某个包装类

    语法: 基本数据类型 变量名 = 包装类对象.xxxValue;

    exp: int num1 = in1.intValue;

    2.3 福利:JDK5 以后,自动装箱与自动拆箱

    自动装箱语法:(有点像c++在包装类中重载了 = 运算符)

    包装类 对象名 = 对应基本数据类型变量;

    自动拆箱语法:

    基本数据类型 变量名 = 包装类对象;

    exp:

    int num2 = 10;

    Integer in1 = num2 ; //自动装箱,直接将num2 赋值给了in1 的 intValue属性

    int num3 = in1; //自动拆箱,num3=10

    2.4 基本数据类型,包装类——>String

    方法一:连接运算符“+”

    语法:String str变量 = 基本数据类型变量 + "";

    方法二: 调用String的valueOf(各种基本数据类型变量)方法。

    语法:String str变量 = String.valueOf(基本数据类型变量名);

    说明:由于有自动装箱和自动拆箱,所以无所谓形参是对象 或者 基本数据类型。

    exp: float f1= 12.3f;

        String str2 = String.valueOf(f1);

    2.5 String——>包装类,基本数据类型

    方法:调用包装类的 Xxx.ParseXxx()方法。

    语法: 基本数据类型 基本变量 = Xxx.ParseXxx(str);

    exp: 

    String str1 = "123";

    int num2 = Integer.parseInt(str1);

    总结:

    3、String 与数组 相互转换

    3.1 String转char[ ]

    语法: char [ ] 变量 = 字符串对象.toCharArray();

    exp :   String str1 = "abc123";

              char[ ] charArray=str1.toCharArray() ;  //将字符串"abc123" 转换成char字符 给cahrArray数组 即 'a','b','c','1','2','3'

    3.2  char[ ] 转 String

    语法: string 变量 = new String(char数组名); //直接用构造器实现转换

    char [ ] arr = new char []{'h','e','l','l','o'};

    String str2 = new String(arr);  //此时 str2为  "hello"

    编码和解码

    3.3 String 转 byte[]  //这里byte是字符对应的编码

    编码:看得懂的图像,字符串——>字节(看得懂的——>看不懂的二进制数据)

    解码:编码的逆过程,字节(看得懂的——>看不懂的二进制数据)——>看得懂的东西(比如字符串,图像)

    编码:String——>byte[ ]:调用String的getBytes()

     

    语法: byte[ ] 变量名 = string对象.getBytes(【编码集】);//使用指定默认字符集【指定编码集】,进行转换

     exp:String str1 = "abc123中国";

             byte[ ] bytes = str1.getBytes("gbk");//使用gbk字符集进行转换

    3.4 byte[ ] 转String

    解码:byte[]——>String  看不懂的数据流 转成 看得懂的字符串

    语法:String 变量名 = new String(byte数组名【,指定字符集】);//使用默认【指定】字符集进行解码

    exp:

    String str1 = "abc123中国";

     byte[ ] bytes = str1.getBytes(); //使用默认utf-8进行编码,结果是一堆数字

    String str2 = new String(bytes);

    注意:如果编码和解码用的字符集不同,就会出现乱码

    Processed: 0.014, SQL: 10