TIL - 20251229

juni·2025년 12월 28일

TIL

목록 보기
222/316

1229 Java 기초 복습 (1/4): 변수, 타입, 연산자, 제어문


✅ 1. Java의 기본 구조와 특징

  • Java는 객체 지향 프로그래밍(OOP) 언어로, "한 번 작성하면, 어디서든 실행된다(Write Once, Run Anywhere)"는 슬로건으로 유명합니다.

  • JVM (Java Virtual Machine): Java 코드는 컴파일되면 특정 운영체제(OS)에 종속적인 기계어가 아닌, 바이트코드(.class 파일)로 변환됩니다. 이 바이트코드를 각 OS에 설치된 JVM이 해석하여 실행하므로, OS에 독립적인 실행이 가능합니다.

  • 기본 구조: 모든 Java 코드는 클래스(Class) 내부에 작성되어야 하며, 프로그램의 시작점은 public static void main(String[] args) 메서드입니다.

    public class HelloWorld { // 클래스 선언
        // main 메서드: 프로그램의 시작점
        public static void main(String[] args) {
            System.out.println("Hello, Java!"); // 표준 출력
        }
    }

✅ 2. 변수(Variable)와 데이터 타입(Data Type)

  • 변수: 데이터를 저장하기 위해 할당된 메모리 공간에 붙인 이름입니다.
  • 데이터 타입: 변수가 저장할 수 있는 데이터의 종류와 크기를 지정합니다. Java는 변수 선언 시 타입을 명시해야 하는 정적 타입(Static Type) 언어입니다.

➕ 기본 타입 (Primitive Types)

  • 데이터의 실제 값을 변수에 직접 저장하는 8가지 기본 타입입니다.
구분타입크기설명
정수형byte1 byte-128 ~ 127
short2 bytes-32,768 ~ 32,767
int4 bytes약 -21억 ~ 21억 (정수의 기본 타입)
long8 bytes매우 큰 정수 (값 뒤에 L 붙임)
실수형float4 bytes소수점 이하 6~7자리 (값 뒤에 f 붙임)
double8 bytes소수점 이하 15~16자리 (실수의 기본 타입)
문자형char2 bytes하나의 문자 (작은따옴표 '' 사용, 유니코드)
논리형boolean1 bytetrue 또는 false

➕ 참조 타입 (Reference Types)

  • 객체의 실제 데이터가 저장된 메모리 주소(참조)를 변수에 저장합니다.

  • 기본 타입을 제외한 모든 타입이 참조 타입입니다.

  • 예시: String, Array, List, 그리고 우리가 직접 만든 모든 클래스(객체).

    int age = 30; // 기본 타입: age 변수에 30이라는 값이 직접 저장됨
    String name = "Java"; // 참조 타입: name 변수에는 "Java" 문자열이 있는 메모리 주소가 저장됨

✅ 3. 연산자 (Operators)

  • 프로그램에서 데이터를 처리하여 결과를 산출하는 기호입니다.

  • 산술 연산자: +, -, *, /, % (나머지)

  • 대입 연산자: =, +=, -=, *=, /=, %=

  • 증감 연산자: ++ (1 증가), -- (1 감소)

    • ++i (전위): 먼저 증가시킨 후, 다른 연산 수행.
    • i++ (후위): 다른 연산을 먼저 수행한 후, 증가시킴.
  • 비교 연산자: ==, !=, >, <, >=, <= (결과는 boolean)

  • 논리 연산자: && (AND), || (OR), ! (NOT)

  • 삼항 연산자: (조건) ? 값1 : 값2 (조건이 참이면 값1, 거짓이면 값2 반환)


✅ 4. 제어문 (Control Flow Statements)

  • 프로그램의 실행 흐름을 조건이나 반복에 따라 제어하는 구문입니다.

➕ 조건문

  1. if-else if-else: 조건식의 결과가 true일 때 해당하는 코드 블록을 실행합니다.

    int score = 85;
    if (score >= 90) {
        System.out.println("A");
    } else if (score >= 80) {
        System.out.println("B"); // 실행됨
    } else {
        System.out.println("C");
    }
  2. switch: 변수의 값에 따라 실행할 코드 블록을 결정합니다. if문에 비해 코드가 간결해질 수 있습니다.

    int month = 10;
    switch (month) {
        case 1:
        case 3:
        case 5:
            System.out.println("31일");
            break; // switch 문을 빠져나감
        case 4:
        case 6:
            System.out.println("30일");
            break;
        default: // 일치하는 case가 없을 때 실행
            System.out.println("해당 월 없음");
            break;
    }

➕ 반복문

  1. for: 정해진 횟수만큼 코드를 반복 실행할 때 주로 사용됩니다.

    // 0부터 4까지 5번 반복
    for (int i = 0; i < 5; i++) {
        System.out.println(i);
    }
  2. 향상된 for 문 (Enhanced for loop): 배열이나 컬렉션의 모든 요소를 순차적으로 접근할 때 사용합니다.

    int[] numbers = {1, 2, 3, 4, 5};
    for (int number : numbers) {
        System.out.println(number);
    }
  3. while: 조건식이 true인 동안 코드를 계속해서 반복 실행합니다.

    int i = 0;
    while (i < 5) {
        System.out.println(i);
        i++;
    }

📌 요약

  • Java는 JVM 위에서 동작하여 OS에 독립적이며, 모든 코드는 클래스 안에 작성됩니다.
  • 데이터를 저장하기 위해 변수를 사용하며, Java는 정적 타입 언어이므로 변수 선언 시 반드시 데이터 타입을 명시해야 합니다.
  • 데이터 타입은 실제 값을 저장하는 기본 타입(8개)과, 객체의 주소를 저장하는 참조 타입으로 나뉩니다.
  • 연산자를 사용하여 데이터를 가공하고, 제어문(if, switch, for, while)을 사용하여 프로그램의 실행 흐름을 제어합니다.

0개의 댓글