JAVA27 Static Static 개념 static 키워드 변수와 메서드 앞에 붙여 정적 필드, 정적 메서드로 사용 가능 정적 필드, 정적 메서드를 합쳐서 클래스 멤버라 부른다. 특징 클래스 로더가 메서드 영역에 클래스를 로드할 때 클래스별로 관리 클래스 로딩이 끝나면 즉시 사용 가능 static 메서드의 경우 객체 선언하지 않아도 사용 가능 정적 멤버들은 static 영역에 할당되기 때문에 GC가 활동하는 heap 영역이므로 프로그램 종료 시까지 메모리에 잔존 static을 남발하면 시스템에 악영향을 줄 수 있다. Reference https://coding-factory.tistory.com/524 2023. 3. 22. First Class Collection First Class Collection 개념 일급 컬렉션 collection을 wrapping하고 해당 collection 이외의 다른 멤버 변수가 없는 상태 사용 목적 비지니스에 종속적인 자료구조 일급 컬렉션 내에 비즈니스 로직을 구현하여 중복 코드를 줄일 수 있다. 컬렉션을 사용하는 클래스가 로직을 여러 번 구현하지 않도록 컬렉션 내에 비즈니스 로직 구현 불변성 보장 final 키워드는 재할당이 불가능하지만 수정이 가능 일급 컬렉션을 사용하고 setter를 구현하지 않으면 수정이 불가능한 불변성 보장 가능 상태와 행위를 한 곳에서 처리 일급 컬렉션으로 상태와 행위를 캡슐화하여 클래스의 책임을 덜고 중복 코드를 줄일 수 있다. 이름 있는 컬렉션 일급 컬렉션을 사용하면 변수명을 지정하는 방식보다 검색이.. 2023. 3. 21. Collection Collection 개념 Collection 자바에서 자료구조를 기반으로 한 데이터의 모음 또는 집합 JCF(Java Collection Framework) 자바의 컬렉션을 정의하고 이를 구현하는 인터페이스 제공 종류 Collection List와 Set으로 구성 List ArrayList 단방향 포인터 구조로 데이터에 대한 인덱스를 가지고 있어 조회 성능이 뛰어남 동적 배열 제공 Vector ArrayList에서 동기화 처리가 발생하여 속도가 ArrayList에 비해 느리다. 멀티 스레드 환경에서 사용 LinkedList 양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우 효율적 queue를 구현할 때 사용 Stack 스택 자료구조를 구현 후입선출을 기본으로 한다. Set HashSet 순서가 보.. 2023. 3. 20. JVM JVM 개념 JVM(Java Virtual Machine) 자바 소스 코드로부터 컴파일된 바이트 코드를 실행하는 역할 JRE(Java Runtime Environment) JVM을 포함하고 JVM이 바이트 코드를 실행하기 위한 라이브러리 파일 및 기타 파일을 가지고 실행 환경을 구성 JDK(Java Development Kit) JRE를 포함하고 개발을 위해 필요한 도구들을 제공 JVM 구성 Class loader 런타임 시 클래스 파일들을 JVM 내부로 로딩하고 파일을 분석하여 Runtime data area에 배치 자바는 동적으로 클래스를 읽어오기 때문에 런타임 시점에 모든 코드가 JVM에 올라온다. Runtime Data Areas class loader로부터 분석된 클래스 파일들과 실행 도중 필요.. 2023. 3. 15. 이전 1 2 3 4 5 6 7 다음