[Language] Java 6

[Language/Java] 봉인된 클래스 (Sealed Class)

# 봉인된 클래스 (Sealed Class) Java 15 부터 도입된 '봉인된 클래스(sealed class)' 는 상속 계층을 더 세밀하게 통제 할 수 있게 해준다. 이를 통해 무분별한 상속을 방지 하고, 코드의 안정성 을 높일 수 있다. 구체적인 사용 방법은 아래에서 예시코드와 함께 다루겠다. #.1 봉인된 클래스 (Sealed Class) 선언 방법 /* 봉인된 클래스 Test 선언 */ // 상속 허용 클래스 Department, Member 클래스 지정 public sealed class Test permits Department, Member { ... } 봉인된 클래스(sealed class) 는 'sealed키워드'를 사용하여 선언할 수 있으며, 'permits키워드' 뒤에 상속 가능한 ..

[Language] Java 2024.01.10

[Language/Java] final클래스와 final메소드

#.포스트 소개 (Post Introduction) 오늘은 final 클래스와 final 메소드에 대해 다뤄보려고 한다. 자바에서 필드 선언 시 final 예약어를 붙이면 초기값 설정 후 값을 변경할 수 없는 필드가 된다. 그런데 이 final 예약어는 필드 뿐만이 아니라 class와 메서드 선언시에도 붙여서 사용할 수 있다. 필자는 이 사실을 알게된지 얼마되지 않았다!... 그래서 오늘은 클래스와 메소드 선언시 각각 final을 붙여서 선언하면 어떤 효과가 있는지 알아보려고한다. #.final 클래스 클래스를 선언할 때 final 키워드를 class 앞에 붙이면 최종적인 클래스이므로 더 이상 상속할 수 없는 클래스가 된다. 즉, final 클래스로 선언된 클래스는 부모 클래스가 될 수 없게되는 셈이다...

[Language] Java 2024.01.06

[Language/Java] 싱글톤(Singleton) 패턴 - #2 싱글톤 패턴의 종류와 장단점

추가 포스팅 사유 [Language/Java] 싱글톤(Singleton) 패턴 - #1 저번 시간에 싱글톤 패턴에 대한 대략적인 내용과 싱글톤 패턴을 이용하여 객체를 생성하는 예시 코드를 포스팅 했었는데 어떤분께서 댓글로 싱글톤 패턴에는 객체 선언방법이 여러 가지가 있다고 알려주셔서 이와 관련된 부분을 추가로 공부하여 포스팅을 하고자 한다. 또한 싱글톤 패턴의 단점 또한 포스팅을 요청하셨기 때문에 이번 포스팅에서 같이 다뤄볼 예정이다. 싱글톤(Singleton) 패턴을 이용한 객체 선언방법 1. 즉시 초기화 (Eager Initialization) public class Singleton { private static final Singleton instance = new Singleton(); priv..

[Language] Java 2024.01.02

[Language/Java] 싱글톤(Singleton) 패턴 - #1

싱글톤(Singleton) 패턴이란? Application 전체에서 오직 단, 한 개의 객체만 생성해서 사용하고 싶을 때 사용하는 것이 바로 싱글톤(Singleton) 패턴이다. 즉, 클래스의 객체를 단, 한 번만 생성하고 싶을 경우에 적용하는 디자인 패턴이다. 싱글톤 패턴을 적용할 클래스의 생성자를 private 접근제한자로 선언하여 외부에서 해당 클래스의 객체를 생성하지 못하게 하는것이 포인트이다. 단, 외부에서 객체를 생성하지는 못하게 하더라도 반환받아 사용할 수는 있게 해줘야하기 때문에 싱글톤 패턴을 사용하여 선언한 클래스에서 객체를 반환해주는 정적(static) 메서드를 제공하는 것이 일반적이다. 싱글톤(Singleton) 패턴적용한 클래스 선언 예시 public class SingletonEx..

[Language] Java 2023.12.30

[Language/Java] 자바(Java)의 메모리 구조

자바(Java) Application 실행과정 자바의 메모리 구조를 자세하게 알아보기에 앞서 먼저 자바 어플리케이션의 전체적인 실행과정을 알아보자. 1) 소스 코드 작성 및 컴파일 자바 프로그래밍 언어로 소스 코드를 작성한다. 작성된 소스 코드는 자바 컴파일러(javac)를 통해 바이트 코드 (.class 파일) 로 컴파일된다. 2) 바이트 코드 실행 생성된 바이트코드(.class 파일)는 JVM(Java Virtual Machine)에 의해 실행된다. 자바 응용 프로그램이 시작되면, 해당 클래스의 'main' 메소드가 실행된다. 3) JVM의 시작과 메모리 할당 JVM은 운영제제(OS)에 의해 메모리를 할당 받으며, 이 때 JVM이 실행된다. JVM은 OS으로 부터 할당받은 메모리를 Method Are..

[Language] Java 2023.11.29

[Language/Java] SDK, JDK, JRE, JVM, JIT 란?

SDK(Software Development Kit) 란? SDK는 말 그대로 소프트웨어 개발을 위한 키트(도구 모음)을 의미한다. SDK는 개발자가 필요로 하는 다양한 도구, 라이브러리, 문서 등을 제공한다. JDK는 SDK의 일종으로 자바로 개발을 하기 위한 SDK를 의미한다. JDK(Java Development Kit) 란? JDK는 자바로 소프트웨어를 개발하기 위한 도구 모음을 의미한다. JDK에는 JRE를 비롯한 자바 컴파일러('javac'), 디버깅 도구, 빌드 도구 등이 포함되어 있어 자바 소스 코드를 작성하고 컴파일하며 실행할 수 있는 환경을 제공한다. * 자바 컴파일러('javac') Java 소스코드 -> 바이트 코드 Java 소스코드를 바이트 코드로 변환하는 Java 컴파일러이다. ..

[Language] Java 2023.11.28