목록언어/Java (12)
Monday
레코드(Record) 타입레코드는 불변 데이터 객체를 간단하게 생성할 수 있는 특별한 클래스 유형입니다. 주요 특징은 다음과 같습니다:// 레코드 정의 예시public record Person(String name, int age) { // 컴팩트 생성자 public Person { // 유효성 검사 로직 추가 가능 if (age = 18; }}// 사용 예시Person john = new Person("John Doe", 30);System.out.println(john.name()); // 자동 생성된 접근자 메서드System.out.println(john.isAdult()); // 커스텀 메서드패턴 매칭 for switch 문패턴 매칭은 switch 문을 더..
예외 처리 (Exception Handling)예외 처리의 기본 개념Java의 예외 처리는 프로그램 실행 중 발생할 수 있는 오류 상황을 우아하게 관리하는 메커니즘입니다. 주요 목적은 프로그램의 비정상적인 종료를 방지하고 오류를 체계적으로 처리하는 것입니다.예외의 종류Java에서 예외는 크게 두 가지로 분류됩니다:Checked 예외: 컴파일 시점에 반드시 처리해야 하는 예외Unchecked 예외: 런타임 시 발생하는 예외 (RuntimeException의 하위 클래스)예외 처리 기본 구문try { // 예외가 발생할 수 있는 코드} catch (SpecificException e) { // 특정 예외 처리 로직} finally { // 항상 실행되는 코드}사용자 정의 예외 생성public..
Java 람다식과 스트림 API: 현대적인 함수형 프로그래밍 기법람다식이란 무엇인가?람다식은 익명 함수를 간결하게 표현하는 방법입니다. 기존의 복잡한 메서드 정의 대신 더 간단하고 직관적인 방식으로 함수를 표현할 수 있게 해줍니다.람다식의 기본 문법(매개변수) -> { 실행 코드 }주요 특징:이름 없는 메서드코드를 간결하게 만들어줌함수를 변수처럼 다룰 수 있음람다식 예제// 기존 방식Runnable runnable = new Runnable() { @Override public void run() { System.out.println("Hello World"); }};// 람다식으로 변환Runnable lambdaRunnable = () -> System.out.println..
제네릭(Generics) 깊이 있게 파헤치기제네릭을 왜 배워야 할까?타입 안전성 보장코드 재사용성 증가컴파일 시점 오류 검출명시적 타입 캐스팅 불필요제네릭의 본질: 타입의 유연성과 안전성제네릭이란 무엇인가?제네릭은 "타입을 파라미터화하여 컴파일 시점에 타입 안전성을 보장하는 Java의 강력한 기능"입니다.제네릭 탄생 배경Java 5 이전:// 제네릭 이전 코드List list = new ArrayList();list.add("문자열");list.add(123); // 어떤 타입이든 추가 가능// 사용 시 강제 형변환 필요String str = (String) list.get(0); // 런타임 시 오류 위험제네릭 도입 후:// 제네릭 적용List list = new ArrayList();list.ad..
왜 객체지향 프로그래밍을 배워야 할까?모듈성: 복잡한 시스템을 작은 부분으로 나누어 관리재사용성: 코드 중복을 줄이고 효율적인 개발 가능유지보수성: 변경에 유연하고 확장 가능한 소프트웨어 설계추상화: 복잡한 시스템을 간단한 모델로 표현클래스와 객체: 현실을 코드로 모델링하기public class Car { // 캡슐화된 private 멤버 변수 private String model; private String color; private int speed; // 생성자 오버로딩 public Car() { this("미정", "white"); } public Car(String model, String color) { this.model =..
기본 타입 vs 참조 타입기본 타입은 실제 데이터 값을 저장하지만, 참조 타입은 메모리 주소를 저장합니다.// 기본 타입 예시int number = 100; // 실제 값 저장// 참조 타입 예시String name = "홍길동"; // 메모리 주소 참조참조 변수 연산참조 변수 비교 예제:public class ReferenceCompareExample { public static void main(String[] args) { String str1 = new String("Hello"); String str2 = new String("Hello"); String str3 = str1; // 객체 주소 비교 System.out.pri..
기본 데이터 타입Java는 8가지 기본 데이터 타입을 제공합니다:데이터 타입크기범위용도byte8비트-128 ~ 127작은 정수 저장, 메모리 절약short16비트-32,768 ~ 32,767작은 정수 처리int32비트-2^31 ~ (2^31 - 1)일반적인 정수 연산long64비트-2^63 ~ (2^63 - 1)큰 정수 값 저장float32비트부동소수점실수 저장 (단정밀도)double64비트부동소수점실수 저장 (배정밀도)boolean1비트true/false논리값 저장char16비트0 ~ 65,535단일 문자 저장변수와 연산자변수는 데이터를 저장하고 연산자를 통해 변수를 조작합니다.변수 선언 예시:String name = "홍길동";int age = 25;double height = 175.5;주요 연산자..
명명 규칙 (Naming Conventions)기본 명명 규칙클래스, 메서드, 변수의 이름은 그 용도를 명확히 표현해야 합니다.클래스와 인터페이스명사로 시작하며 각 단어의 첫 글자는 대문자로 작성합니다public class StudentManagerpublic interface PaymentProcessor메서드동사로 시작하며 camelCase를 사용합니다public void executeTask()public void processPayment()상수모두 대문자로 작성하며 단어 사이는 언더스코어로 구분합니다public static final int MAX_COUNT = 100;public static final String DEFAULT_PATTERN = "yyyy-MM-dd";코드 구조화메서드 설계하..