/*Java 시작*/int와 Integer의 차이점

7611 단어 Java초학자
int와 Integer의 차이점
간단히 말하면:
  • int는 원시형(primitive type), Integer는 참조형(reference type)
  • Integer는 int의 포장 클래스(wrapper class)
  • 이른바 원시형
    Java에는 8개의 내장형(built-in data types)이 있으며 원시형(primitive type)이라고 불린다.
    또한 모든 원시 유형에 대응하는 포장류가 있다
    타입
    설명
    구역
    예제
    래치 레벨
    boolean
    진가
    true/false
    true
    java.lang.Boolean
    byte
    8비트 정수 값
    -128 ~ 127
    123
    java.lang.Byte
    short
    16비트 정수
    -32768 ~ 32767
    123
    java.lang.Short
    int
    32비트 정수 값
    -2147483648 ~ 2147483647
    123
    java.lang.Integer
    long
    64비트 정수
    $-2^{63}\sim 2^{63}-1 $
    123L
    java.lang.Long
    float
    32비트 부동 소수점 수치
    절대치 범위 $2^{-149}\sim(2-2^{23})*2^{127}달러
    123.45f
    java.lang.Float
    double
    64비트 부동 소수점 값
    절대치 범위 $2^{-1025}\sim(2-2^{-52})*2^{1023}달러
    123.45
    java.lang.Double
    char
    16비트 유니코드 값
    \u0000 ~\uffff $\Leftrightarrow$ 0 ~ 65535
    'a'
    java.lang.Character
  • 원시 형식은 메모리의 값일 뿐입니다.
  • 모든 Java 객체는 원래 유형의 복합체입니다.
  • 참조 유형
    참조 유형은 참조 개체(클래스 인스턴스)의 데이터 유형입니다.
    인용(reference)은 대상이 있는 위치의 메모리 주소를 저장해서 지정한 대상을 가리킨다.
    인용 형식에 공백을 지정할 수 있지만 원시 형식은 지정할 수 없습니다.
    Test.java
    public class Test {
        public static void main(String[] args) {
            String str = null; // str does not currently refer to an object
            int num = null; // DOES NOT COMPILE
        }
    }
    
    result
     % javac Test.java
    Test.java:4: エラー: 不適合な型: <null>をintに変換できません:
            int num = null;
                      ^
    エラー1個
    
    Integer 사용
    Integer는 int에 해당하는 객체 유형이므로 null 또는 호출 방법을 지정할 수 있습니다.
    Oracle 공식 문서: Intelger 일본어, Intelger 영어
    Test.java
    import java.lang.Integer;
    
    public class Test {
        public static void main(String[] args) {
    
            // フィールド
            System.out.println("Integerはプリミティブ型" + Integer.TYPE + "のラッパークラスです");
            System.out.println("Integer値を表すビット数は:" + Integer.SIZE);
            System.out.println("Integer値を表すバイト数は:" + Integer.BYTES);
            System.out.println("Integer値に設定可能な最大値は:" + Integer.MAX_VALUE);
            System.out.println("Integer値に設定可能な最小値は:" + Integer.MIN_VALUE);
    
            // int, Integer, Stringの間の変換
            // int -> Integer
            // Integer notGood = new Integer(123); // NOT RECOMMENDED
            Integer num0 = Integer.valueOf(123);
            Integer num1 = 123; // autoboxing
    
            // String -> Integer
            Integer num2 = Integer.valueOf("123");
            // Integer bad0 = Integer.valueOf("12.3"); // throws NumberFormatException
    
            // Integer -> int
            int num3 = num0.intValue();
    
            // String -> int
            int num4 = Integer.parseInt("123"); 
            // int bad1 = Integer.parseInt("12.3"); // throws NumberFormatException
    
            // int -> String
            String numStr0 = Integer.toString(123);
    
            // Integer -> String
            String numStr1 = num0.toString();
        }
    }
    
    result
    % javac Test.java
    % java Test      
    Integerはプリミティブ型intのラッパークラスです
    Integer値を表すビット数は:32
    Integer値を表すバイト数は:4
    Integer値に設定可能な最大値は:2147483647
    Integer値に設定可能な最小値は:-2147483648
    

    좋은 웹페이지 즐겨찾기