Computer Science/Java

[JAVA] 04 반복문 for / while

[JAVA] 04 반복문 for / while반복문은 같은 코드를 여러 번 실행해야 할 때 사용하는 문법이다.조건문과 함께 사용되며, 프로그램의 흐름을 구성하는 기본 요소 중 하나다.1. 반복문이란반복문은 특정 조건이 만족되는 동안 코드를 반복 실행하기 위해 사용한다.조건이 false가 되는 순간 반복은 종료된다.2. for 문for (초기식; 조건식; 증감식) { // 반복 실행할 코드}for 문 기본 예제for (int i = 0; i OUTPUT01234초기식은 한 번만 실행되고,조건식이 false가 되면 반복이 종료된다.3. for 문 동작 순서초기식 실행조건식 검사블록 실행증감식 실행조건식 재검사조건식은 매 반복마다 검사된다.이 때문에 조건식이 복잡하면 성능에 영향을 줄 수 있다.4. wh..

[JAVA] 03 조건문 if / switch

[JAVA] 03 조건문 if / switch조건문은 프로그램의 흐름을 제어하는 핵심 문법이다. 특정 조건에 따라 서로 다른 로직을 실행해야 할 때 사용하며, 실무 코드에서는 거의 모든 로직에 조건문이 포함된다.1. 조건문이란조건문은 조건식의 결과(true / false)에 따라 실행할 코드를 분기하는 문법이다. 조건식은 반드시 boolean 타입이어야 한다.if (조건식) { // 조건이 true일 때 실행}2. if 문 기본 구조int point = 80;if (point >= 60) { System.out.println("통과");}OUTPUT통과조건이 true일 때만 블록 내부 코드가 실행된다. false이면 아무 것도 실행되지 않는다.3. if - else 구조int point = 5..

[JAVA] DI(의존성 주입)란 무엇인가?

[JAVA] DI(의존성 주입)란 무엇인가? (초보자 기준)인터페이스와 다형성을 공부하다 보면어디선가 꼭 등장하는 말이 있습니다.바로 DI(Dependency Injection), 의존성 주입입니다.처음 이 용어를 봤을 때 저는"이건 스프링에서나 쓰는 거 아니야?"라는 생각을 했습니다.하지만 공부해보니,DI는 스프링 이전에 자바 개념으로 먼저 이해해야 할 개념이었습니다.이번 글에서는 스프링 없이,순수 자바 코드로 DI를 정리해보겠습니다.1. 의존성이란?DI를 이해하려면 먼저 의존성이라는 말부터 이해해야 합니다.아래 코드를 보겠습니다.class Engine { void start() { System.out.println("엔진이 동작합니다."); }}class Car { pri..

[JAVA]추상 클래스와 인터페이스 차이

[JAVA] 추상 클래스와 인터페이스 차이자바에서 다형성을 공부하다 보면 다음으로 꼭 등장하는 개념이 추상 클래스와 인터페이스입니다.저는 처음에 이 둘을 보고 "둘 다 상속 비슷한데 뭐가 다른 거지?" 라는 생각이 들었습니다그래서 이번 글에서는 문법 비교보다는 실제 코드와 출력 결과를 통해 차이를 정리해보려고 합니다.1. 추상 클래스란?추상 클래스는 일부는 구현되어 있고, 일부는 미완성인 클래스입니다.공통 기능은 미리 만들어두고, 상속받는 클래스가 꼭 구현해야 할 메서드는 추상 메서드로 남겨둡니다.abstract class Animal { void breathe() { System.out.println("숨을 쉽니다."); } abstract void sound();}이제 이..

[JAVA] 업캐스팅과 다운캐스팅

[JAVA] 업캐스팅과 다운캐스팅이전 글에서 다형성에 대해 정리하면서부모 타입으로 자식 객체를 참조하는 예제를 많이 사용했습니다.그때 자연스럽게 등장하는 개념이 바로 업캐스팅과 다운캐스팅입니다.처음 이 용어를 봤을 때 저도"형변환이랑 뭐가 다른 거지?"라는 생각이 들었고,실제로 코드에서 많이 헷갈렸습니다.그래서 이번 글에서는 개념 설명보다 코드와 출력 결과 위주로 정리해보려고 합니다.1. 업캐스팅이란?업캐스팅(Upcasting)은자식 객체를 부모 타입으로 참조하는 것을 말합니다.사실 다형성을 사용하고 있었다면,이미 업캐스팅은 계속 사용하고 있었던 셈입니다.class Animal { void sound() { System.out.println("동물이 소리를 냅니다."); }}cla..

[JAVA] 예외가 터지면 코드 흐름은 어떻게 될까

[JAVA] 예외가 터지면 코드 흐름은 어떻게 될까자바에서 예외(Exception)를 처음 배울 때 문법 자체보다 더 헷갈렸던 건 “예외가 발생하면 코드가 어디까지 실행되는가”였다. 이 글은 예외가 발생했을 때 프로그램의 흐름이 어떻게 바뀌는지를 정리한 내용이다.1. 예외가 발생하면 어떻게 될까System.out.println("A");int x = 10 / 0;System.out.println("B");위 코드에서 10 / 0 부분에서 예외가 발생한다. 출력 결과는 A까지만 출력되고, 그 아래 코드는 실행되지 않는다.예외가 발생한 순간, 현재 실행 흐름은 즉시 중단된다.2. try-catch가 없는 경우예외를 처리하지 않으면 JVM은 예외 정보를 출력하고 프로그램을 종료시킨다.int n = Intege..

[JAVA] 12 IO / 파일 처리 / 문자열 처리

[JAVA] 12 IO / 파일 처리 / 문자열 처리입출력(IO)은 프로그램과 외부 세계가 데이터를 주고받는 방식이다. 자바에서는 콘솔, 파일, 문자열 처리까지 IO 개념을 통해 다룬다. 이번 글에서는 기본적인 IO 구조와 문자열 처리 방법을 정리한다.1. IO란IO(Input / Output)는 데이터의 입력과 출력을 의미한다. 입력은 프로그램 안으로 들어오는 데이터, 출력은 프로그램 밖으로 나가는 데이터다.입력(Input) : 키보드, 파일, 네트워크출력(Output) : 콘솔, 파일, 네트워크2. 콘솔 입력 (Scanner)import java.util.Scanner;Scanner sc = new Scanner(System.in);int num = sc.nextInt();String text = s..

[JAVA] 11 예외 처리(Exception)

[JAVA] 11 예외 처리(Exception)예외(Exception)는 프로그램 실행 중 발생할 수 있는 오류 상황을 의미한다. 자바는 예외를 객체로 처리하며, 비정상 종료를 막고 흐름을 제어하기 위해 예외 처리 문법을 제공한다.1. 예외란예외는 컴파일은 정상적으로 되지만, 실행 중 예상치 못한 상황이 발생했을 때 나타난다.int a = 10 / 0; // ArithmeticException예외를 처리하지 않으면 프로그램은 즉시 종료된다.2. 예외와 오류(Error) 차이Exception : 프로그램에서 처리 가능한 문제Error : 시스템 레벨 문제, 일반적으로 처리 불가OutOfMemoryErrorError는 예외 처리 대상이 아니다.3. 예외 처리 기본 구조try { // 예외 발생 가능 코..