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

자바39

[자바 프로그래밍 언어] 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.
[자바 프로그래밍 언어] 14장 스레드 14.1 스레드 생성 컴퓨터에서 한 번에 하나씩 순서대로 실행되는 것을 스레드라고 한다. 단일 스레드 프로그래밍 모델은 대부분의 프로그래머들이 사용하는 방식이다. 은행 직원이라고 볼 수 있는 스레드는 다른 스레드와는 독립적으로 업무를 수행할 수 있다. 그리고 두 명의 은행 직원이 같은 서류 캐비닛을 사용할 수 있는 것처럼 스레드도 객체를 서로 공유할 수 있다. 이를 멀티 스레드라고 한다. 스레드를 생성하기 위해서는 가장 먼저 Thread 객체를 생성해야 한다. Thread worker = new Thread(); start 메소드는 Thread 객체의 데이터를 기반으로 새로운 스레드를 만든 후, 이를 반환한다. 그러면 가상 머신은 스레드의 run 메소드를 호출하여 스레드를 동작시킨다. start 메소드는.. 2022. 1. 3.
728x90