본문 바로가기
Java

[JAVA] 타입

by Bhinney 2022. 7. 22.

1. 타입(Type)

  • 어떤 값의 유형 및 종류
  • 값이 차지하는 메모리 공간의 크기, 저장되는 방식 결정
  • 기본 타입 (primitive type)
    • 데이터의 실제 값 저장
    • 정수 타입(byte, short, int, long), 실수 타입(float, double), 논리 타입(boolean)
  • 참조 타입 (reference type)
    • 데이터가 저장된 곳의 주소값 저장
    • 8개의 기본 타입을 제회한 나머지
public class TypeExample {
    public static void main(String[] args){
        int i = 1;
        char a = 'A';

        Object i1 = new Object();
        Object a1 = new Object();

        System.out.println(i);
        System.out.println(i1);

        System.out.println(a);
        System.out.println(a1);


    }
}

/* 출력
1 >> 기본 타입
java.lang.Object@372f7a8d >> 객체의 주소 : 참조 타입
A >> 기본 타입
java.lang.Object@2f92e0f4 >> 참조 타입
*/

2. 숫자 타입

 
  • 정수 타입
    • byte, short, int, long
    • long은 리터럴 뒤에 L이나 l을 붙여야 하는데, 1과의 혼동을 방지하기 위해 L을 씀
  • 정수형 오버플로우
    • 자료형이 표현할 수 있는 범위 중 최대값 이상의 갑을 표현한 경우 발생
    • 최대값을 넘어가면 해당 데이터 타입 값의 최소값으로 순환
  • 정수형 언더 플로우
    • 자료형이 표현할 수 있는 범위 중 최소값 이하의 값을 표현한 경우 발생
    • 최소값을 넘어가면 해당 데이터 타입 값의 최대값으로 순환

  • 실수 타입
    • float, double
    • float은 리터럴 뒤에 f를 붙여줘야 함.
  • 실수형 오버 플로우
    • 값이 음의 최소 범위 혹은 양의 최대 범위를 넘어 갔을 때 발생
    • 값은 무한대
  • 실수형 언더 플로우
    • 값이 음의 최대 범위 혹은 양의 최소 범위를 넘어 갔을 때 발생
    • 값은 0


3. 논리타입과 문자타입

  • 논리 타입
    • boolean
    • 참/ 거짓을 저장할 수 있는 타입 --> 값은 true/ false만 가짐
    • 1bit만 있으면 되지만, JVM가 다룰 수 있는 최소값이 1byte --> 크기 : 1 byte(8bit)
  • 문자 타입
    • char
    • 크기  : 2 byte
    • 작은 따옴표로 작성
    • 해당 변수에 오직 한의 문자형 리터럴 저장 가능(예 : char letter = 'a';)

     ※ 리터럴(literal) : 문자가 가리키는 값


4.  문자열 타입 변수

  • String
  • 큰 따옴표 사용
  • 변수 선언 
    • String 변수이름; 
  • 변수 할당
    • 변수이름 = "문자열";
    • 변수이름 = new String("문자열";) --> 위의 두 타입의 공통점 : 문자열을 값으로 지닌 것이 아닌, 문자열이 저장된 주소값을 저장하고 있음
  • charAt(index)
    • 해당 인덱스의 문자열의 문자를 반환
    • 인덱스에 문자열보다 크거나 음수를 입력하면 에러 발생
  • compareTo()
    • 해당 문자열을 인수로 전달된 문자열과 사전 편찬 순으로 비교
    • 문자열의 대소문자를 구분하여 비교 --> compareToIgnoreCase() 사용시 대소문자 구분 없이 비교 가능
    • 두 문자열이 같다면 0을 반환
    • 문자열이 인수로 전달된 문자열보다 작으면 음수
    • 문자열이 인수로 전달된 문자열보다 크면 양수
  • concat()
    • 해당 문자열의 뒤에 인수로 전달된 문자열을 추가한 새로운 문자열을 반환
    • 전달된 문자열의 길이가 0이면 해당 문자열을 그대로 반환
  • indexOf()
    • 해당 문자열에서 특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스를 반환
    • 만약 해당 문자열에 전달된 문자나 문자열이 포함되어 있지 않으면 -1을 반환
  • trim()
    • 해당 문자열의 맨 앞과 맨 뒤에 포함된 모든 공백 문자를 제거
  • toLowerCase()
    • 해당 문자열의 모든 문자를 소문자로 변환
  • toUpperCase()
    • 해당 문자열의 모든 문자를 대문자로 변환

4.  타입 변환

  • 자동 변환 타입
    • 바이트 크기가 작은 타입에서 큰 타입으로 변환할 때
    • 덜 정밀한 타입에서 더 정밀한 타입으로 변환할 때
  • 수동 변환 타입
    • 더 큰 타입에서 작은 타입으로 변환 시킬 때
    • () 사용 --> 캐스팅

댓글