본문 바로가기

CS 지식/Java

(3)
싱글톤 패턴 (singleton pattern) 앞선 게시물에서 static에 대해 알아보았다. 그 결과로서 싱글톤 패턴에 대해 이해를 진행할 수 있게 되었다. 싱글톤은 하나의 객체만을 생성하도록 강제하는 패턴이다. 다음의 예를 보게되면, 컴파일 에러가 발생한다. class Singleton { private Singleton() { } } public class SingletonTest { public static void main(String[] args) { Singleton singleton = new Singleton(); } } 왜냐하면 Singleton 클래스의 생성자에 private 키워드로 외부 클래스에서 Singleton 클래스의 생성자로의 접근을 막았기 때문이다. 이렇게 생성자를 private 으로 만들면 외부 클래스에서 Singl..
Static이란? 1) static static은 프로그램이 시작되고 종료될 때까지 살아있으며, 한 번만 생성이 되어 메모리에 미리 그 값을 고정한다. 초기화 필요없이 곧장 접근이 가능하다. 그렇다고, 불변인가?라고 물었을 때는 불변은 아니다. 해당 객체를 메모리에 올려놓는 역할로 해당 class의 해당 static변수, 메소드는 다른 어떤 class에서 참조했을 때, 똑같은 객체를 참조하고 있다. 다음은 간단한 예제이다. 위에서 말하고 싶은 것은 1. static 변수는 같은 객체를 공유한다. 따라서, new를 통해 새로 생성했다하더라도 static이기 때문에 처음 sysout인 test1~3 모두 같은 값 5가 도출되며, 두 번째 sysout인 test1~3은 test.value로 인해 변경된 1로 도출이 된다. 2...
JVM (Java Virtual Machine) ( & JRE, JDK) JRE vs JDK vs JVM 1. JDK (Java Development Kit) JDK = JRE + Java Compiler 자바의 '개발'을 원한다면 JDK를 설치해야 한다. *Java Compiler : Java file을 컴퓨터가 이해할 수 있게 바꿔줌. .java 파일을 빌드한다면 .class 라는 파일이 자동으로 생성된다.* 2. JRE (Java Runtime Environment) JRE = JVM + Class Library + Class Loader Java 프로그램의 '실행'을 원한다면 JRE만 설치해도 된다. Class Library & Class Loader를 통해 Java File을 Library와 결합한 후 JVM에 넘겨줌. 3. JVM 아래에서 설명 예정 자바프로그램 실..