Java

[Java] 03. 기본 데이터 (Primitive Data Type)

Joo.v7 2024. 8. 22. 20:35

Chapter 1: 값 타입과 참조 타입

  • 값 타입과 참조 타입
  • Java 기본 데이터 타입

Chapter 2: 변수 이름 붙이기

  • 변수 명명 규칙
  • 권장되는 변수 이름 짓기

Chapter 3: 기본 데이터 타입 사용

  • 지역 변수 선언과 값 할당
  • 연산자
  • 연산자 우선 순위

Chapter 4: 데이터 타입 변환

  • 기본 데이터 타입 변환 규칙
  • 암시적 형 변환 (Implicit data type conversion)
  • 명시적 형 변환 (Explicit data type conversion)
  • 연산 시 타입 변환

Chapter 1: 값 타입과 참조 타입

값 타입과 참조 타입

  • 값 타입 (Value Type): 값 타입 변수는 스택(Stack) 영역에 저장되며, 해당 데이터가 직접 포함된다(데이터가 copy된다).
  • 참조 타입 (Reference Type): 참조 타입 변수는 힙(Heap) 영역에 저장되며, 데이터가 저장되어 있는 주소를 가리킨다.

(좌) Value Type, (우) Reference Type

 

Java 데이터 타입

  • 고정 소수점(소수점 위치가 고정적): byte, char, short, int, long
  • 부동 소수점(소수점 위치가 가변적): float, double

 

 

 


 

 

Chapter 2: 변수 이름 붙이기

변수 명명 규칙

  • 하나 이상의 글자로 구성되어야 함.
  • 첫 번째 글자는 문자, _(Underscore), '$' 이어야 한다.
  • 예약된 키워드는 사용할 수 없다. ex) int, float, do, final, if 등등

 

권장되는 변수 이름 짓기

  • CamelCasing 명명 규칙: 첫 문자는 소문자로 시작하고, 두 번째 단어부터는 첫 글자가 대문자로 시작하는 방법으로 메소드, 지역 변수, 필드와 파라미터, 상수 등에 사용한다.
int productCount;
void openDocument() { }

 

  • PascalCasing 명명 규칙: 모든 단어의 첫 단어를 대문자로 지정하는 방법으로 클래스, 인터페이스, 열거형 등에 사용한다.
class ProductFactory { }

 


 

Chapter 3: 기본 데이터 타입 사용

지역 변수 선언과 값 할당

  • 일반적으로 변수는 아래와 같이 선언하고 값을 할당한다.
int customerCount;
customerCount = 0;

int customerCount = 0;

int customerCount = 1, productNumber = 2;

 

  • char type은 ' ' 기호를 사용하여 값을 할당한다.
char initial = 'k';

 

  • Java에서는 초기화되지 않은 지역 변수는 사용할 수 없다.
int customerCount;

System.out.println(customerCount);
HelloWorld.java:6: error: variable customerCount might not have been initialized
        System.out.println(customerCount);

 

 

연산자

프로그램 언어에서 제공하는 일반적인 연산자

 

연산자 우선순위

  • Java의 연산자에서 할당 연산자(=, +=. -= 등)는 우선 순위가 가장 낮아 항상 식의 마지막에 실행된다
  • 할당 연산자를 제외한 나머지 연산자들은 왼쪽에서 오른쪽으로 수행된다.
    ex)  x = y = z  ->  x = (y = z) ,    x + y + z  ->  (x + y) + z 

 


 

Chapter 4: 데이터 타입 변환

Primitive Data Type(기본 데이터 타입) 변환 규칙

  • 각 Data type의 값의 표현 범위를 기준으로 한다.
  • 각 Data type의 메모리 공간 크기를 기준으로 하지 않는다. 

 

 

암시적 타입 변환 (Implicit type casting)

  • 작은 범위의 data type -> 큰 범위의 data type으로 변환할 때 자동으로 Type이 변환되는 것.

 

명시적 타입 변환 (Explicit type casting)

  • 큰 범위의 data type -> 작은 범위의 data type으로 변환할 때 타입 변환식(cast expression)을 사용하여 변환하는 것.
public class Typecasting {
    public static void main(String[] args){
        int i = 0;
        long l = i; // int -> long 변환 O (암시적 타입 변환)
        int j = (int)l; // long -> int 변환 X, 따라서 type casting 연산자 사용 (명시적 타입 변환)

        /* 암시적 형변환 */
        int intValue = 123; // 1.0D -> double, 1.0F -> float, 12L -> long
        long longValue = intValue;
        System.out.printf("(long)%d = %d", intValue, longValue);

        System.out.println("");

        /* 명시적 형변환 */
        long longValue2 = 100L;
        int intValue2 = (int)longValue2;
        System.out.printf("(long) %d = %d", longValue2, intValue2);
    }
}

 

 

연산 시 타입 변환

  • 정수형 간의 산술 연산: int로 암시적 타입 변환
  • 정수실수의 산술 연산: float과의 연산이면 float / double과의 연산이면 double로 암시적 타입 변환
/* 정수형 간의 산술 연산 */
byte byteValue = 6;
short shortValue = 7;
short result = byteValue + shortValue;		        // 오류
int result = byteValue + shortValue;			    // 동작함
short result = (short)(byteValue + shortValue);   	// short으로 할당할 경우 명시적 타입 변환

/* 정수와 실수의 산술 연산 */
float floatValue = 12.5F;
int intValue = 5;
float result = floatValue + intValue; 	// float으로 암시적 타입 변환

double doubleValue = 12.5;
int intValue = 5;
double result = doubleValue + intValue;	// double로 암시적 타입 변환

 

 


 

출처: https://github.com/gikpreet/class-programming_with_java

 

GitHub - gikpreet/class-programming_with_java

Contribute to gikpreet/class-programming_with_java development by creating an account on GitHub.

github.com