NullNull

Java Data Type 본문

프로그래밍 언어/JAVA

Java Data Type

KYBee 2022. 7. 24. 16:53

Java Data Type

Java의 데이터 타입은 크게 2가지로 나뉜다.

  • Primitive Type
  • Reference Type

Primitive Type

Type Bit 구분 비고
Type Bit 구분 비고
boolean   논리형  
byte 8 정수형  
short 16 정수형  
int 32 정수형 Default
long 64 정수형  
float 32 실수형  
double 64 실수형 Default
char 16 문자형  

형 변환

  • 변수의 타입을 다른 타입으로 변환하는 것
  • Primitive 는 Primitive끼리, Reference는 Reference끼리 형 변환이 가능함
  • Boolean 은 다른 기본 타입과 호환되지 않음
  • Primitive 타입을 Reference 타입처럼 사용하려면 Wrapper 클래스를 이용함
묵시적 형 변환 명시적 형 변환
묵시적 형 변환 명시적 형 변환
표현 범위가 작은 데이터 타입을 큰 타입에 캐스팅 표현 범위가 큰 데이터 타입을 작은 타입에 캐스팅
값 손실 없음 값 손실 있음
JVM이 직접 수행 프로그래머가 수행

형변환의 실행 예시

  • 4byte 미만인 타입의 연산은 int로 묵시적 형 변환을 한 뒤 연산한다.
  • int와 long 타입의 연산에서는 결과가 long으로 나온다.
  • 기본적으로 표현 범위가 큰 타입으로 형변환되어 결과가 반환된다.

Group 8 (1)

배열 특징

  • Reference Type
  • 고정된 크기
  • 동형 타입 : 같은 타입만 적재 가능
  • 연속된 메모리 공간에서 관리
  • 요소에 접근하는 속도가 매우 빠름
  • 배열의 요소 값들은 배열이 생성될 때 기본 값으로 초기화
    • int 배열은 모든 배열 요소가 0으로 초기화
    • String 배열은 모든 배열 요소가 null으로 초기화
  • 배열의 생성 순서
    1. 선언 → 선언시 arr 이라는 참조 변수가 만들어짐. null값이 들어있음
    2. 생성 → new 키워드를 사용하여 int를 4개 담을 수 있는 배열을 생성함
    3. 초기화 → 생성된 배열에 초기 값을 넣음. 배열의 주소 값을 참조할 수 있도록 arr 변수에 연결한다.
    4. //1 int[] arr = {1, 2, 3, 4}; //2 int[] arr = new int[4] {1, 2, 3, 4}; //3 int[] arr; arr = new int[4] {1, 2, 3, 4} //4 int[] arr; arr = {1, 2, 3, 4}
    • 배열 선언 시, 4번 코드에서는 에러가 발생한다. 배열은 선언과 생성이 동시에 진행되는 경우에는 new int[] 키워드 없이 생성할 수 있다.
    • 하지만, 선언과 생성을 따로 처리하는 경우에는 항상 new 키워드를 사용해야 한다.
  • int[] arr = new int[4];

배열 메소드

  • arr.length
    • 인스턴스 메소드
    • 배열의 크기를 반환할 때 사용
  • Arrays.toString(배열)
    • 클래스 메소드
    • 배열의 내용을 출력하고 싶은 경우 사용
  • Arrays.deepToString(출력할 배열)
    • 클래스 메소드
    • 2차원 배열을 출력하고 싶은 경우 사용
  • Arrays.copyOf(원본 배열, 원본 배열에서 복사할 크기)
    • 클래스 메소드
    • return type은 배열
    • 원본 배열로부터 새로운 배열을 복사
  • System.arraycopy(sourceArr, sourcePos, destArr, destPos, length)
    • 클래스 메소드
    • sourceArr의 sourcePos 부터 length 까지의 요소들을 복사하여 destArr의 destPos부터 붙여넣음
    • 두 개의 배열이 존재하는 상태에서 하나의 배열에 다른 배열의 내용을 복사

'프로그래밍 언어 > JAVA' 카테고리의 다른 글

간단한 Unit Test 작성하기  (0) 2024.04.04
객체지향 언어의 특징과 설계 원칙  (0) 2022.09.29
예외 처리  (0) 2022.08.14
Abstract class vs Interface  (0) 2022.08.14
JAVA 노드 스트림 & 보조 스트림  (0) 2022.07.31
Comments