Java (변수 · 자료형 · 연산자)

최병현·2025년 12월 22일

java

목록 보기
11/38
post-thumbnail

오늘 학원 수업은 Java 기초 파트였다. 이미 알고 있는 내용이었기 때문에, 개념 설명보다는 전체 흐름을 다시 정리하는 데 초점을 맞췄다.

변수, 자료형, 연산자처럼 자주 사용하는 요소들은 정확한 동작 방식이 기준이 되기 때문에, 한 번쯤은 구조적으로 정리해 두는 게 필요하다고 생각했다.


1. Java 개요

Java는 객체 지향 프로그래밍(OOP) 언어이며, “Write Once, Run Anywhere” 철학을 기반으로 설계되었다.

Java 코드는 컴파일되면 바이트코드로 변환되고, 이 바이트코드는 JVM(Java Virtual Machine) 위에서 실행된다. 이 구조 덕분에 운영체제나 하드웨어 환경에 대한 의존성이 낮다.

시험이나 이론에서 자주 언급되는 “플랫폼 독립성”이라는 표현도 결국 JVM 실행 구조를 전제로 한 개념이다.


2. Java의 주요 특징

  • 객체 지향 프로그래밍(OOP)
    프로그램을 객체 단위로 구성한다. 객체는 상태(state)와 동작(behavior)을 가지며, 코드 재사용성과 유지보수 측면에서 유리하다.
  • 플랫폼 독립성
    JVM 위에서 실행되므로 OS에 대한 의존도가 낮다.
  • 자동 메모리 관리
    Garbage Collection을 통해 사용되지 않는 객체를 JVM이 자동으로 정리한다.
  • 멀티 스레딩
    동시에 여러 작업을 처리할 수 있어 서버나 네트워크 애플리케이션에 적합하다.

3. 주석(Comment)

주석은 컴파일 과정에서 무시되며, 코드 실행에는 영향을 주지 않는다. 코드의 의도나 맥락을 남기기 위한 용도로 사용된다.

/*
  주석(comment)
  - 컴파일 시 무시됨
  - 코드 설명 및 기록 용도

  1) 한 줄 주석 : //
  2) 다중 주석 : /* */
  3) Ctrl + /
*/

4. 출력과 하드코딩

System.out.println("안녕하세요");
System.out.println(1);
System.out.println('1');
System.out.println("1");

값을 직접 출력문에 넣는 방식은 하드코딩에 해당한다. 간단한 테스트에는 사용할 수 있지만, 코드가 길어질수록 관리하기 어려워진다.

일반적으로는 값을 변수에 담고, 변수를 통해 출력하는 방식이 적합하다.


5. 변수(Variable)

변수는 데이터를 저장하기 위한 공간이다. 선언, 초기화, 재대입의 개념이 구분된다.

int scoreEnglish = 100; // 선언 + 초기화
System.out.println(scoreEnglish);

int scoreKorean;       // 선언
scoreKorean = 99;      // 초기화
System.out.println(scoreKorean);

scoreEnglish = 50;     // 재대입

재대입 시에는 자료형을 다시 명시하지 않는다.


6. 변수 명명 규칙

  • camelCase 사용
  • 첫 글자는 소문자
  • 특수문자 지양
int result;
int myTestResult;

Python의 snake_case와 대비되는 부분이다.


7. char와 String

char는 단일 문자, String은 문자열을 의미한다. 출력이나 연산 시 동작 방식에 차이가 있다.

char name1 = '최';
char name2 = '병';
char name3 = '현';

System.out.println(name1 + name2 + name3);
System.out.println("" + name1 + name2 + name3);

출력문 내부에서 가장 먼저 등장한 자료형을 기준으로 연산 방식이 결정된다.


8. 정수형과 문자열 연산

int width1 = 100;
int width2 = 200;
System.out.println(width1 + width2); // 300

String width3 = "100";
String width4 = "200";
System.out.println(width3 + width4); // 100200

문자열에서의 + 연산은 수학적 연산이 아니라 문자열 결합이다.


9. 대입 연산자와 산술 연산자

int a = 5;
int b = 2;

System.out.println(a / b);          // 2
double result = (double) a / b;
System.out.println(result);         // 2.5

자료형에 따라 연산 결과가 달라지므로, 의도에 맞게 형변환을 명시해야 한다.


10. 복합 대입 연산자

int num1 = 1;
num1 += 2;
num1 -= 1;
num1 *= 10;
num1 /= 5;

가독성과 코드 간결성을 위해 자주 사용된다.


11. 증감 연산자

int j = 10;

System.out.println(j++);
System.out.println(++j);
int age = 20;
System.out.println("내년에는 " + age + 1 + "살이 됩니다.");
System.out.println("내년에는 " + (age + 1) + "살이 됩니다.");

문자열과 숫자가 함께 사용될 경우, 연산 우선순위를 명확히 해야 한다.


12. 논리 연산자 (AND / OR / NOT)

논리 연산자는 조건문에서 가장 자주 사용되는 연산자다. true / false 값을 기준으로 동작하며,
boolean 자료형과 함께 사용된다.

내부적으로는 true를 1, false를 0처럼 처리한다고 이해하면 흐름이 명확하다.

/*
  논리 연산자
  true(1) / false(0)
  boolean : true / false를 표현하는 자료형

  AND(&&) : T x T = T / T x F = F / F x F = F
             하나라도 false면 false
  OR(||)  : T + T = T / T + F = T / F + F = F
             하나라도 true면 true
  NOT(!)  : true ↔ false 반전
*/
public class Operator02 {
    public static void main(String[] args) {

        boolean flag1 = true;
        boolean flag2 = false;

        System.out.println("----- && 연산자 -----");
        boolean result1 = flag1 && flag1;
        System.out.println("T x T = " + result1);

        boolean result2 = flag1 && flag2;
        System.out.println("T x F = " + result2);

        boolean result3 = flag2 && flag2;
        System.out.println("F x F = " + result3);

        System.out.println("----- || 연산자 -----");
        boolean result4 = flag1 || flag1;
        System.out.println("T + T = " + result4);

        boolean result5 = flag1 || flag2;
        System.out.println("T + F = " + result5);

        boolean result6 = flag2 || flag2;
        System.out.println("F + F = " + result6);

조건문에서 자주 사용되는 연산자들이다.


13. Scanner 입력

Scanner scanner = new Scanner(System.in);

System.out.print("이름을 입력하세요: ");
String name = scanner.nextLine();

System.out.println(name);

입력 → 변수 저장 → 출력 흐름을 확인했다. Scanner는 객체 생성과 메서드 호출 개념과 연결된다.


14. 정리

이번 내용은 Java 전반에서 계속 사용되는 기본 요소들이기 때문에, 형식적으로라도 한 번 정리해 두는 게 필요하다고 판단했다.

다음 단계에서는 입력과 조건문을 함께 사용하는 흐름에서 자료형과 연산자 처리에 집중할 예정이다.

profile
Develop

0개의 댓글