1. 程式人生 > 其它 >基本資料型別 和 包裝類 的相互轉換

基本資料型別 和 包裝類 的相互轉換

基本資料型別 和 包裝類 的相互轉換

基本資料型別 和 包裝類 的相互轉換

Java中, 一切皆物件

Linux中, 一切皆檔案

要體會, 這種思想, 有時候, 真的是需要體會

1, java提供了8種基本資料型別 對應的 包裝類, 使得 基本資料型別的變數 具有 類的特徵

2, 掌握 基本資料型別, 包裝類, String三者之間的相互轉換

基本資料型別 包裝類
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character

1. 基本資料型別 --> 包裝類

https://www.bilibili.com/video/BV1Kb411W75N?p=304

https://www.bilibili.com/video/BV1Kb411W75N?p=305

package com.beyondx.java;
import org.junit.Test;

public class WrapperTest {
    @Test
    public void test1() {
        int num1 = 10;
        Integer in1 = new Integer(num1);
        System.out.println(in1.toString()); // 10
        
        Integer in2 = new Integer("123");
        System.out.println(in2.toString()); // 123
    }
}

java.lang.Integer部分原始碼

public final class Integer extends Number implements Comparable<Integer> {
    // 內部類
    private static class IntegerCache {
    }
    
    // 2個構造器, 安排
    public Integer(int value) {
    }
    public Integer(String s) throws NumberFormatException {
    }
}

java.lang.Float部分原始碼

public final class Float extends Number implements Comparable<Float> {
    // 3個構造器, 安排
    public Float(float value) {
    }
    public Float(double value) {
    }
    public Float(String s) {
    }
}

java.lang.Boolean部分原始碼

public final class Boolean implements java.io.Serializable, Comparable<Boolean> {
    // 2個構造器, 安排
    public Boolean(boolean value) {
    }
    public Boolean(String s) {
    }
}

2. 包裝類 --> 基本資料型別

https://www.bilibili.com/video/BV1Kb411W75N?p=306

包裝類 轉化為 基本資料型別: 呼叫包裝類 的 xxxValue()

package com.beyondx.java;
import org.junit.test;

public class WrapperTest {
    @Test
    public void test2() {
        Integer in1 = new Integer(12);
        
        int i1 = in1.intValue();
        System.out.println(i1 + 1);
        
        Float f1 = new Float(12.3);
        float f2 = f1.floatValue();
        System.out.println(f2 + 1);
    }
}

java.lang.Integer部分原始碼

public final class Integer extends Number implements Comparable<Integer> {
    // 內部類
    private static class IntegerCache {
    }
    
    // 2個構造器
    public Integer(int value) {
    }
    public Integer(String s) throws NumberFormatException {
    }
    
    // 幾個方法
    public byte byteValue() {
    }
    public int intValue() {
    }
    public long longValue() {
    }
    public float floatValue() {
    }
    public double doubleValue() {
    }
}

參考連結

https://blog.csdn.net/weixin_38361153/article/details/88218744