본문 바로가기
  • soobinhand의 기술 블로그
728x90

soobinhand119

[자바 프로그래밍 언어] 17장 가비지 컬렉션과 메모리 17.1 가비지 컬렉션 자바 가상 머신은 가비지 컬렉션을 통해 프로그램에서 더 이상 참조되지 않는 객체를 찾아서 메모리 공간에서 제거한다. 자바에는 객체를 생성하기 위한 new 연산은 있지만 생성된 객체를 메모리에서 제거하는 delete 연산은 없다. 그래서 객체의 사용이 끝났을 때, 우리가 할 수 있는 일은 사용이 끝난 객체의 참조를 끊는 것 뿐이다. 참조를 끊기 위해서는 사용하고 있던 참조를 다른 객체의 참조로 변경하거나 null을 설정 또는 메소드를 반환해서 이 메소드의 지역 변수가 더 이상 존재하지 않게 하여 메소드 내의 변수들이 어떤 것도 참조할 수 없게 해야 한다. 이렇게 참조가 끊긴 객체를 가비지라고 하며 이러한 가비지들을 찾아서 메모리에서 제거하는 것을 가비지 컬렉션이라고 한다. 자바 가상.. 2022. 1. 6.
[자바 프로그래밍 언어] 16장 리플렉션 16.1 Class 클래스 java.lang.reflect 패키지는 타입을 자세하게 검사할 수 있는 리플렉션 클래스를 포함하고 있다. 이 클래스를 사용하면 완벽한 타입 브라우저를 작성하거나 사용자가 작성한 코드를 번역하는 애플리케이션을 작성할 수 있다. 리플렉션을 위해서는 가장 먼저 Class 객체를 사용해야 한다. 클래스의 완전한 이름 ( 예를 들어, java.lang.String )이 주어지면 프로그램은 정적 메소드 Class.forName을 사용해 클래스의 Class 객체를 얻는다. Class 객체는 모든 타입, 즉 클래스, enum, 인터페이스, 어노테이션, 배열, 기본 타입을 나타낼 수 있다. Class 클래스는 리플렉션의 시작 시점으로써 지정된 문자열을 이름으로 가지는 타입의 객체를 생성하거나.. 2022. 1. 5.
[자바 프로그래밍 언어] 15장 어노테이션 15.1 간단한 어노테이션 예제 어노테이션 타입은 자동 처리를 위해 도구들이 지켜야 하는 표준화되고 구조화된 방법으로 정보를 표현한다. 원하는 정보를 모두 담을 수 있는 어노테이션 타입을 다음처럼 정의할 수 있다. @interface ClassInfo{ String created(); String createdBy(); String lastModified(); String lastModifiedBy(); int revision(); } 어노테이션 타입은 특수한 종류의 인터페이스로 @ 문자로 시작하고 그 뒤에 interface키워드가 따라 나온다. 어노테이션은 클래스나 필드 선언과 같은 프로그램 요소에 적용할 수 있다. 어노테이션은 수정자이며 수정자를 허용할 수 있는 곳이라면 어디에든 선언 가능. 어노테이.. 2022. 1. 4.
[Algorithms] 3장 - Searching SequentialSearchST - 순차 탐색 ( 비순차 연결 리스트 기반 ) https://github.com/Soobinhand/Algorithms/blob/master/src/Search/SequentialSearchST.java BinarySearchST - 이진 탐색 ( 순차 배열 기반 ) https://github.com/Soobinhand/Algorithms/blob/master/src/Search/SequentialSearchST.java BST - 이진 탐색 트리 기반 심볼 테이블 https://github.com/Soobinhand/Algorithms/blob/master/src/Search/BST.java RedBlackBST - 레드 블랙 BST SeparateChainingHas.. 2022. 1. 3.
728x90