Java教程

Java常用类之包装类

本文主要是介绍Java常用类之包装类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 


包装类

Java中一切皆对象???数据类型的划分为基本数据类型和引用数据类型,但基本数据类型怎么成为对象呢?为解决这个问题,包装类就起了作用

 

基本内容

基本数据类型所对应的引用数据类型。

 

基本数据类型 包装类
int Integer
char Character
short Short
long Long
float Float
double Double
boolean Boolean
byte Byte
  1. Integer、Byte、Float、Double、Short、Long都属于Number类的子类,Numbe类本身提供了一系列的返回以上6中基本数据类型的操作。

  2. Character和Boolean属于Object的直接子类。

 

装箱与拆箱

装箱:将一个基本数据类型变为包装类的,这样的过程成为装箱操作。

拆箱:将一个包装类变为基本数据类型的过程称为拆箱操作。

 

int x = 30;//基本数据类型
Integer num = new Integer(x);//装箱
Integer num2 = Integer.valueOf(x);//装箱
int temp = num.intValue();//拆箱
//JDK1.5之后自动装箱和拆箱
int a = 15;
Integer b = a;//自动装箱
int c=b;//自动拆箱

 

自动装箱和拆箱实质:编译器编译时调用包装类的相应方法。

 

 

基本类型和字符串的相互转换

//基本类型转为字符串
        int n1 = 255;
        //第一种,使用+号
        String s1 = n1+"";
        //第二种,使用Integer中的toString()方法
        String s2 = Integer.toString(n1);

        //把n1转换为16进制(修改radix的值来改变进制数)
        String s3 = Integer.toString(n1, 16);

//字符串转为基本类型
        String str = "150";
        //使用Integer.parseXXX()
        int i = Integer.parseInt(str);

//boolean字符串形式转成基本类型时,"tree"----> tree,非"tree"---->false
        String str2 = "true";
        String str3 = "treo";
        boolean b = Boolean.parseBoolean(str2);
        boolean c = Boolean.parseBoolean(str3);
        System.out.println(b);
        System.out.println(c);

 

 

 

 

注意:需保证类型兼容,否则抛出NumberFormatException异常

 

 

 

 

 

整数缓存区

  • Java预先创建了256个常用的整数包装类型对象

  • 在实际开发中,对已创建的对象进行复用

 

package lesson2;

public class Demo02 {
    public static void main(String[] args) {
        Integer integer1 = new Integer(100);
        Integer integer2 = new Integer(100);
        System.out.println(integer1 == integer2);
        //打印出来的是false,引用对象类型比较的是地址,是不一样的

        Integer integer3 = 100;
        Integer integer4 = 100;
        //自动装箱实际上是调用的是 Integer.valueOf()方法,并不是new出来的
        //Integer integer3 = Integer.valueOf(100);
        //100在-128到127之间,所以地址一样
        System.out.println(integer3 == integer4);

        Integer integer5 = 200;
        Integer integer6 = 200;
        System.out.println(integer5 == integer6);
        //200不在-128到127之间,会重新new,所以是false
    }
}

 

可以参考此博客

https://blog.csdn.net/m0_46802583/article/details/119102345

 

这篇关于Java常用类之包装类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!