Java 21

[이것이 자바다].ch10.예외처리

[이것이 자바다] 10. 예외처리안녕하세요. 이번에는 자바의 예외처리에 대해 정리한 내용입니다.매번 중요하다 말은 하지만 이번엔 진짜 중요합니다. 솔직히 혼자 개발하거나 공부할때 이걸 많이 쓸 필요는 없습니다. 간단한 문제 과정에서는 예외도 우리가 예상할수 있는정도에서 발생하고 왠만하면 통제할수있기 마련입니다. 하지만 프로그램이 커지고 조금더 실무에 가까워지면 예외 처리는 필수적이고 반드시 사용되기때문에 그냥 습관처럼 익혀두는것이 좋습니다.1. 예외(Exception)프로그램 실행 중에 발생하는 예상치 못한 문제 상황입니다.컴파일 에러(Compile Error)와 차이가 있습니다.예외는 일단 프로그램이 정상적으로 실행되다가 문제가 발생하여 프로그램의 흐름을 방해합니다.예시NullPointerExcepti..

Language/JAVA 2025.12.28

[이것이 자바다].ch9.라이브러리

[이것이 자바다] 09. 라이브러리안녕하세요. 이번에는 자바의 라이브러리와 모듈에 대해 정리한 내용입니다.이 부분도 매우 중요합니다. 사실 개발은 자기가 전부 만드는것보다는 남이 만든것을 가져다가 사용하는것이 대부분이죠. 그리고 그렇게 도움받고 도움주면서 코딩 생태계가 이렇게 커졌다고 생각합니다. 1. 라이브러리(Library)프로그램 개발에 바로 가져다 쓸 수 있는 클래스와 인터페이스들의 묶음입니다.이미 만들어진 라이브러리를 활용 복잡한 기능을 쉽고 빠르게 구현 가능합니다.JAR (Java ARchieve) 파일라이브러리는 보통 .jar라는 압축 파일 형태로 제공됩니다.파일 안에는 클래스와 인터페이스의 바이트코드(.class 파일)들이 압축되어 있습니다.Classpath (클래스패스)JAR 파일의 위치..

Language/JAVA 2025.12.28

[이것이 자바다].ch8.중첩선언과 익명객체

[이것이 자바다] 08. 중첩선언과 익명객체안녕하세요. 이번에는 자바의 중첩선언과 익명객체에 대해 정리한 내용입니다. 전 챕터가 자바의 객체의 기초라면 여긴 살짝 더 발전해서 응용하는 부분이라고 할수있습니다. 생각보다 어렵고 없어도 그만이지 싶을수는 있지만 실제로는 있으면 매우 편리한 개념들입니다.1. 중첩(Nested) 멤버클래스 내부에 선언된 또 다른 클래스/인터페이스입니다.두 멤버가 매우 긴밀하게 관련되어 있을 때, 외부 클래스와의 관계를 맺지 않고 오직 특정 클래스에서만 사용될 경우 사용합니다.코드의 구조 단순화, 캡슐화 강화됩니다.사용 이유캡슐화 (Encapsulation)두 클래스의 멤버들을 서로 쉽게 접근, 외부에 불필요한 클래스 노출 감소합니다.논리적 그룹화: 특정 클래스에서만 사용되는 멤..

Language/JAVA 2025.12.27

[이것이 자바다].ch7.인터페이스

[이것이 자바다] 07. 인터페이스이번에는 자바의 Interface에 대해 정리한 내용입니다.인터페이스도 객체지향에서 핵심적인 요소라고 생각됩니다. 클래스-상속-인터페이스로 이어지는 이 부분이 객체지향의 기초 시직이라고 생각해요. 1. 인터페이스(Interface)객체가 가져야 할 메소드의 명세(Specification) 또는 규약(Contract)을 정의한 타입입니다.2. 인터페이스 vs 추상 클래스구분인터페이스 (Interface)추상 클래스 (Abstract Class)목적객체 사용 방법(규격) 정의공통된 부분 추출, 미완성 부분은 오버라이딩키워드interface, implementsabstract class, extends다중 상속가능 (다중 구현)불가능 (단일 상속)멤버public static ..

Language/JAVA 2025.12.27

[이것이 자바다].ch6.상속

[이것이 자바다] 06. 상속안녕하세요. 이번에는 자바의 상속에 대해 정리한 내용입니다. 상속도 객체 지향의 중요한 요소지요. 객체지향의 장점을 정말 부각시켜주는 좋은 요소라고 생각합니다.1. 상속의 필요성 (코드 재사용과 확장)상속(Inheritance)만들어진 클래스(부모)의 코드 상속 >> 새로운 클래스(자식)에서 코드 재사용 + 새로운 기능 추가 확장합니다.부모 클래스 (Superclass)물려주는 클래스입니다.자식 클래스 (Subclass)물려받는 클래스입니다.2. 상속 구현extends 키워드 >> 상속관계 명시합니다.// 부모 클래스public class SUP { public String str1; public String str1; public void method1() ..

Language/JAVA 2025.12.26

[이것이 자바다].ch5.클래스

[이것이 자바다] 05. 클래스안녕하세요. 이번에는 자바의 핵심이라고도 할수있는 클래스에 대해 정리한 내용입니다. 객체지향 언어를 배울때 이런 객체의 개념을 아는것이 정말 중요한데, 확실히 자바로 개념을 익히니까 다른 언어에서 이런 클래스가 나와도 사용하기가 더 쉬워지는것 같습니다.1. 클래스 사용 이유서로 연관된 데이터를 따로 관리하는건 매우 비효율적이며, 오류를 유발할 수 있습니다.객체 지향 프로그래밍(OOP)각 대상을 하나의 객체(Object)로 선언, 객체의 설계도 == 클래스(Class)입니다.클래스 == 속성(필드) + 행동(메서드)로 이루어져 있습니다.2. 클래스와 객체클래스(Class)객체 설계도데이터와 기닝을 정의합니다.객체(Object)클래스를 바탕으로 만들어진 실체(Instance)입..

Language/JAVA 2025.12.26

[이것이 자바다].ch4.참조타입

[이것이 자바다] 04. 참조타입안녕하세요. 이번에는 자바의 참조타입에 대해 정리한 내용입니다.1. 데이터 타입기본 타입변수 공간(스택)에 실제 값 직접 저장합니다.참조 타입실제 데이터 힙(Heap) 영역에 생성, 변수 공간(스택)에 힙의 메모리 주소 저장합니다.2. 메모리 사용 방식: == / .equals()== (등가 비교 연산자): 두 변수의 값 비교합니다.기본 타입변수 안의 실제 값 비교참조 타입변수 안의 주소값 비교두 변수가 가리키는 객체 확인.equals() (메서드): 참조 변수의 객체 내부 내용 비교합니다.3. String 타입String (참조 타입)기본 타입처럼 사용되는 특별한 취급을 받습니다.문자열 리터럴 / new 연산자문자열 리터럴 (String str = "문자열";)힙 영역 ..

Language/JAVA 2025.12.25

[이것이 자바다].ch3.조건문과 반복문

[이것이 자바다] 03. 조건문과 반복문안녕하세요. 이번에는 자바의 조건문과 반복문에 대해 정리한 내용입니다.1. 코드의 흐름 제어제어문코드의 정해진 흐름을 인위적으로 제어하는 문법입니다.2. 조건문if문만약 ~ 아니면 ~ 조건문입니다.if(조건식1) { 실행문1;}else if(조건식2){ 실행문2;}else{ 실행문3;}if : 조건식이 true >> if 코드 실행합니다.if-else: if 조건식이 false >> else 코드 실행합니다.if-else if-else: 가장 먼저 조건식 true >> 블록 실행 / 없으면 else 코드 실행합니다.switch문변수의 값에 따른 조건문입니다.switch (변수) { case 값1: 실행문1; break;..

Language/JAVA 2025.12.25

[이것이 자바다].ch2.연산자

[이것이 자바다] 02. 연산자이번에는 자바의 연산자에 대해 정리한 내용입니다.1. 종류와 우선순위연산 방향 대부분의 왼쪽 >> 오른쪽 진행 부호, 대입, 증감 연산자 : 왼쪽 최우선 연산자 . (접근), [] (배열), () (메서드 호출 및 우선순위 지정)핵심 우선순위 산술 > 비교 > 논리 > 대입 괄호 () 우선순위 명확히 지정 가능합니다.2. 단항 연산자피연산자가 하나인 연산자입니다. 부호(+, -), 증감(++, --), 논리 부정(!)증감 연산자 (++, --)전위 연산 (++a, --a): 1 증가/감소 >> 다른 연산 수행후위 연산 (a++, a--): 다른 연산 수행 >> 값 1 증가/감소순서에 따른 명확한 결과 차이가 있습니다.*3. 산술 연산자사칙연산(+, -, *, /)..

Language/JAVA 2025.09.28

[이것이 자바다].ch1.변수와 타입

[Java] 01. 변수와 타입첫 단원으로는 프로그래밍 언어를 처음 배울때 배우는 변수와 타입에 대해 정리해 봤습니다.1. 변수값을 저장할 수 있는 메모리 상의 공간의 이름입니다.타입 변수이름; 변수 선언 특정 타입의 데이터 저장 공간을 확보합니다.변수이름 = 값; 값 대입 (초기화) 선언된 변수에 값을 대입합니다. = 기호(대입 연산자)를 사용합니다.타입 이름 = 값; 선언과 동시 초기화입니다.2. 데이터 타입기본 타입 (Primitive Type)종류: byte, char, short, int, long, float, double, boolean 변수 공간에 실제 값 자체를 저장합니다.참조 타입 (Reference Type)종류: 기본 타입 제외 타입 변수 공간에 값이 저장된 다른 메모..

Language/JAVA 2025.09.28