본문 바로가기

Java12

[Java] 인터페이스 (Interface) 인터페이스 (Interface) 클래스가 반드시 구현해야 하는 메서드의 규칙을 정의한 추상적 타입인터페이스를 직접 객체로 만들 수는 없고, 반드시 클래스가 implements로 구현해야 한다."어떻게 동작해야 한다"가 아니라 "어떤 동작을 제공해야 한다"라는 규칙만 정해준다.다형성을 통해 유연한 설계를 가능하게 한다. 인터페이스의 특징 1. 다형성 지원여러 클래스가 같은 인터페이스를 구현하면 공통된 타입으로 다룰 수 있다.List list = new ArrayList();List list2 = new LinkedList(); ArrayList와 LinkedList는 둘 다 List 인터페이스를 구현했기 때문에 같은 List 타입으로 다룰 수 있다. 2. 다중 구현 가능자바 클래스는 단일 상속만 가능하.. 2025. 9. 10.
[Java] JVM (Java Virtual Machine) JVM (Java Virtual Machine) 자바 프로그램이 OS에 독립적으로 실행될 수 있도록 만들어주는 가상 머신자바 소스코드 (.java) → 컴파일러 (javac) → 바이트코드 (.class)로 변환되고, JVM은 이 바이트 코드를 실제로 실행하는 역할을 한다. JVM의 역할 - 코드 실행 : 바이트 코드를 기계어로 번역해서 실행한다.- 메모리 관리 : 힙 메모리, 스택 메모리 관리- Garbage Collector로 불필요한 객체를 제거한다.- OS 추상화 : OS나 하드웨어에 직접 의존하지 않고, 같은 바이트코드가 Windows, macOS, Linux 어디서든 실행 가능하다.- 보안 : 클래스 로더를 통해 안전한 코드 실행 환경을 제공한다. JVM의 구조 JVM의 내부는 클래스 로.. 2025. 9. 9.
Java Java객체 지향 프로그래밍(OOP)을 기반으로 한 고급 프로그래밍 언어 Java의 특징1. Java 프로그램은 바이트코드로 컴파일되며, JVM을 통해 실행된다.Java로 작성된 프로그램은 특정 운영체제에 구애받지 않고, Java Virtual Machine(JVM)만 있으면 어디서든 실행 가능하다. 2. 객체 지향 언어 (Object-Oriented Programming)Java는 객체 지향 언어로, 모든 것이 객체로 구성된다. 객체 지향적 특징에는 상속, 다형성, 캡슐화, 추상화가 포함된다. 이를 통해 코드 재사용과 유지보수를 용이하게 만든다. 3. 자동 메모리 관리 (Garbage Collection)Java는 메모리 관리와 관련해 Garbage Collector 를 내장하고 있다. 이를 통해 더.. 2025. 8. 28.
[Java] Lombok Lombok 어노테이션을 기반으로 코드를 자동완성 해주는 라이브러리Lombok의 Getter, Setter, ToString 등 다양한 어노테이션을 사용하여 코드를 자동완성 할 수 있다. 장점1. 어노테이션으로 코드를 자동완성하여 생산성, 편의성 향상.2. 코드의 길이가 줄고 단순화 할 수 있어 가독성, 유지보수성 향상.3. builder 패턴, log 생성 등 다양한 활용 가능. lombok annotation@Gettercode 컴파일 시 getter 메서드 생성@Settercode 컴파일 시 setter 메서드 생성@ToStringtoString() 메서드 생성@Data@Getter(모든 속성), @Setter(final X), @ToString,@EqualsAndHashCode, @Require.. 2024. 10. 28.