Computer Science/Java

[JAVA] 자바 예외 처리 완전 정리

자바 예외 처리 완전 정리자바를 공부하다 보면 문법보다 더 먼저 부딪히는 것이 있다.바로 에러다.분명 문법은 맞는 것 같은데 실행이 안 되거나,실행은 되는데 중간에 갑자기 프로그램이 멈추는 경우가 있다.이럴 때 자주 등장하는 개념이 바로 예외 처리(Exception Handling)다.예외 처리는 단순히 에러를 피하는 기술이 아니다.프로그램이 예상하지 못한 상황을 만났을 때어떻게 반응할지를 미리 정해 두는 방식이다.즉, 정상 흐름만 생각하는 것이 아니라실패할 수 있는 상황까지 고려해서 코드를 짜는 태도와 연결된다.그래서 자바에서 예외 처리는 문법 파트이면서도,동시에 프로그램의 안정성을 만드는 핵심 요소라고 볼 수 있다.1. 예외란 무엇인가예외는 프로그램 실행 중 발생하는 문제 상황이다.예를 들어 0으로 ..

[Java] 자바 컬렉션 프레임워크 완전 정리

자바 컬렉션 프레임워크 완전 정리자바를 공부하다 보면 배열만으로는 부족하다는 순간이 꼭 온다.처음에는 숫자 몇 개, 문자열 몇 개 저장하는 정도라서 배열로도 충분해 보이지만,실제로 프로그램을 만들기 시작하면 데이터의 개수가 계속 바뀌고,중복을 막아야 하거나, 빠르게 찾거나, 순서를 유지해야 하는 상황이 자주 생긴다.이럴 때 사용하는 것이 바로 컬렉션 프레임워크(Collection Framework)다.컬렉션은 쉽게 말하면 여러 데이터를 다루기 쉽게 만들어 놓은 도구 모음이다.자바에서는 단순히 "값을 담는 통" 정도가 아니라,데이터를 어떤 방식으로 저장하고,어떤 속도로 추가하고,어떤 방식으로 검색하고,중복을 허용할지 말지까지 구조적으로 나누어 제공한다.그래서 컬렉션을 제대로 이해하면단순 문법을 아는 수준을..

[JAVA] 다형성

[JAVA] 다형성자바를 공부하다 보면 상속을 배우고 나서 꼭 등장하는 개념이 바로 다형성입니다.처음에는 용어부터 어렵게 느껴졌고,저도 솔직히 "이걸 왜 쓰는지" 잘 이해가 안 됐습니다.하지만 직접 예제를 만들어보고 출력 결과를 확인하면서조금씩 감이 잡히기 시작했습니다.이 글은 다형성을 처음 접하는 입장에서,코드 + 실행 결과(Output) 중심으로 정리한 글입니다.1. 다형성이란?다형성(Polymorphism)은하나의 타입으로 여러 객체를 다룰 수 있는 성질을 말합니다.자바에서는 보통 부모 클래스 타입으로 자식 객체를 참조하는 형태로 사용됩니다.말로 보면 어려운데,정리하면 아래 한 문장으로 이해할 수 있습니다.부모 타입으로 참조해도, 실제 동작은 자식 객체 기준으로 실행된다.2. 기본 예제로 이해하기먼..

[JAVA] 10 컬렉션(List / Set / Map)과 제네릭

[JAVA] 10 컬렉션(List / Set / Map)과 제네릭컬렉션(Collection)은 여러 데이터를 효율적으로 관리하기 위한 자료구조다.배열의 한계를 보완하며, 자바에서는 List, Set, Map 인터페이스를 중심으로 사용한다.1. 컬렉션이 필요한 이유배열은 생성 시 크기가 고정되고, 중간 삽입/삭제가 불편하다.컬렉션은 이러한 문제를 해결하기 위해 등장했다.크기 자동 조절다양한 자료구조 제공공통 인터페이스 기반 (일관된 사용법)또한 컬렉션은 실무에서 데이터 처리, 필터링, 정렬, 중복 제거 등에 매우 자주 사용된다.2. 컬렉션 프레임워크 구조자바 컬렉션은 인터페이스를 중심으로 구성된다.List : 순서 O, 중복 OSet : 순서 X(일반적으로), 중복 XMap : key-value 구조 (k..

[JAVA] 08 객체지향(OOP) 4대 특징

[JAVA] 08 객체지향(OOP) 4대 특징자바는 객체지향 프로그래밍(Object-Oriented Programming) 언어다.객체지향은 프로그램을 객체 단위로 설계하는 방식이며,유지보수와 확장에 유리한 구조를 만드는 것을 목표로 한다.1. 객체지향이란객체지향은 데이터를 중심으로 기능을 묶어현실 세계의 개념을 코드로 표현하는 방식이다.자바에서는 클래스와 객체를 통해 객체지향을 구현한다.객체는 상태(필드)와 동작(메서드)을 함께 가진다.2. 객체지향 4대 특징캡슐화 (Encapsulation)상속 (Inheritance)다형성 (Polymorphism)추상화 (Abstraction)3. 캡슐화 (Encapsulation)캡슐화는 데이터를 외부로부터 보호하고,메서드를 통해서만 접근하도록 하는 개념이다.c..

[JAVA] 07 클래스와 객체

[JAVA] 07 클래스와 객체클래스와 객체는 자바의 핵심 개념이다.앞에서 배운 변수와 메서드는 클래스 안에서 의미를 가지며,객체를 통해 실제로 사용된다.1. 클래스란클래스(Class)는 객체를 만들기 위한 설계도다.변수(필드)와 메서드를 하나의 단위로 묶는다.class Person { String name; int age;}클래스 자체는 실제 데이터가 아니다.객체를 생성하기 위한 틀이다.2. 객체란객체(Object)는 클래스를 기반으로 생성된 실체다.Heap 메모리에 실제로 생성된다.Person p = new Person();Person : 클래스 타입p : 참조 변수 (Stack 영역)new : Heap에 객체 생성참조 변수에는 객체의 주소값이 저장된다.3. 필드(Field)class Pe..

[JAVA] 06 메서드(Method)

[JAVA] 06 메서드(Method)메서드는 특정 기능을 수행하는 코드의 묶음이다.중복되는 코드를 줄이고, 프로그램의 구조를 명확하게 만들기 위해 사용한다.1. 메서드란메서드(Method)는 하나의 기능을 수행하도록 정의된 코드 블록이다.필요할 때 호출하여 실행할 수 있다.프로그램은 메서드 호출을 통해 위에서 아래로 실행 흐름을 이동한다.2. 메서드 기본 구조접근제어자 반환타입 메서드명(매개변수) { // 실행 코드 return 반환값;}반환값이 없는 경우 반환타입으로 void를 사용한다.3. 메서드 선언과 호출메서드 선언static void printHello() { System.out.println("Hello");}메서드 호출printHello();OUTPUTHello메서드는 호출..

[JAVA] 05 배열(Array)

[JAVA] 05 배열(Array)배열은 같은 타입의 값을 여러 개 저장할 수 있는 자료구조다.반복문과 함께 자주 사용되며, 여러 데이터를 효율적으로 관리하기 위한 기본 개념이다.1. 배열이란배열(Array)은 같은 자료형의 데이터를 연속된 메모리 공간에 저장하는 구조다.각 데이터는 인덱스(index)를 통해 접근한다.배열의 인덱스는 0부터 시작한다.배열의 크기는 생성 시 고정된다.배열은 참조형이다.2. 배열 선언int[] arr;배열 변수는 참조형이며,이 시점에는 아직 실제 배열 객체가 생성되지 않았다.3. 배열 생성int[] arr = new int[5];크기가 5인 int 배열이 Heap 영역에 생성된다.각 요소는 기본값으로 초기화된다.int → 0double → 0.0boolean → false참..