Java

자바의 자료형

Jane_with_Kocoon 2022. 12. 27. 01:17

학습 목표

  • 프리미티브 타입 종류와 값의 범위 그리고 기본 값
  • 레퍼런스 타입
  • 리터럴
  • 변수 선언 및 초기화하는 방법
  • 변수의 스코프와 라이프타임
  • 타입 변환, 캐스팅 그리고 타입 프로모션
  • 1차 및 2차 배열 선언하기
  • 타입 추론, var

 

 

Primitive type

기본 타입. _실제 값_을 저장한다. 데이터의 사이즈와 가능한 값이 구체적으로 정해져있고, 메서드가 없는 데이터 타입이다.

<정수형>

- byte : 1 byte. -128 ~ 127 의 범위를 갖는다.

- short : 2 bytes. -32,768 ~ 32,767 의 범위를 갖는다.

- int : 4 bytes. -2,147,483,648 ~ 2,147,483,647 의 범위를 갖는다. 정수형의 default

      디폴트값인 이유가 있다. 일반적으로 CPU가 처리하는 단위(word)와 같다. 따라서 연산에 유리하다.

- long : 8 bytes.

<실수형>

실수는 같은 공간에 더 많은 숫자정보를 저장하기 위해서 정수형과는 다른 구조로 저장한다.

±M x 2^E

- float : 4 bytes. 7자리까지는 정확하게 저장할 수 있다. (부호 1비트 + 지수 Exponent 8비트 + 가수 Mantissa 23비트)

- double : 8 bytes. 15자리까지는 정확하게 저장할 수 있다. 실수형의 default

<논리형>

- boolean : 1 byte(자바에서 데이터를 다루는 최소단위). 참/거짓 둘 중의 하나의 값을 갖는다.

<문자형>

- char : 2 bytes. 유니코드(UTF-16 인코딩)에 따라 문자 1개만 저장할 수 있다.

 

 

Reference type

참조 타입. 값이 저장되어 있는 _메모리 주소_를 저장한다. 실제 연산에 사용될 수는 없다.

Array, String, 사용자가 만든 Class 등이 있다.

 

 

Literal

값 그 자체.

long타입은 숫자에 접미사 ' L'을 붙여서 나타낼 수 있고, float타입은 'f'를 붙여서 나타낼 수 있다. 접미사가 없으면 기본형을 따른다.

진수법도 리터럴로 나타낼 수 있다. 16진수는 '0x', 8진수는 '0', 2진수는 '0b'.

문자형은 ''로, 문자열은 ""로 표현한다.

 

 

Variable

자바 변수의 명명규칙

1. 대소문자 구분, 길이는 제한이 없다.

2. 예약어는 쓰면 안된다.

3. 숫자로 시작되도 안된다.

4. 특수문자 '_', '$'만 허용되고 이 특수문자로 시작할 수도 있다.

+. 클래스 이름의 첫 글자는 항상 대문자 & 상수의 이름은 모두 대문자로 하고 단어 사이는 '_'로 구분한다.

 

 

Type casting

다른 타입으로 변환하는 것. 대입할 값 앞에 (변환할 데이터 타입)로 적어준다.

실수형 -> 정수형 변환시 소수점 이하는 버림 처리된다.

실수형 간의 변환시에는 나머지를 버리면서 반올림이 될 수도 있다.

큰 자료형에서 작은 자료형으로 변환시 || 값이 범위가 다를 때에는 자동 형변환이 되지 않으므로 명시해줘야 한다.

 

 

Array

배열은 같은 타입의 여러 변수들을 연속적으로 메모리 공간을 차지하여 저장하는 방식이다.

/* 1차원 배열 */
int[] arr = new int[5];
String[] str = new String[7];
String str2 = "awesome!";

/* 2차원 배열 */
int[][] arr2d = new int[2][5];
int[][] arr2dInit = { 
            		{1,2,3,4,5},
                        {6,7,8,9,10} 
                     };

배열끼리 값을 비교하기 위해서는 equals() 메서드를 이용한다.

 

 

var, Type inference(타입 추론)

자바 10 이상부터 지역변수에서만 사용할 수 있는 var 타입 추론이 가능하다.

 

 

참고한 링크들

http://java.meritcampus.com/core-java-topics/java-data-types

 

Java data types - data types in Java

Java Data Types | Java Literals: Data type is a special type of keyword which is useful for allocating sufficient memory for that data. In other words, Java Data Types are the classification, to identifying one of various types of data such as real number,

java.meritcampus.com

 

+ 추가로 생각할 문제..

  1. var 타입을 lambda에서도 사용가능한가?

'Java' 카테고리의 다른 글

자바 시작하기  (1) 2022.12.25