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

도서37

[자바 프로그래밍 언어] 18장 패키지 18.1 패키지 명명 패키지는 독립적으로 배포되거나 애플리케이션 제작을 위해 다른 패키지와 조합될 수 있는 소프트웨어 단위를 정의한다. 패키지는 클래스와 인터페이스, 하위 패키지와 관련된 멤버를 가질 수 있으며 추가적으로 패키지 내의 클래스가 사용하는 자원 파일들도 포함될 수 있다. 패키지는 서로 관련된 인터페이스와 클래스를 그룹화할 수 있다. 패키지는 타입들 간에 이름 충돌이 발생하는 것을 피하기 위해 네임 스페이스를 생성한다. 패키지는 애플리케이션 프레임워크 개발을 위해 보호 도메인을 제공한다. 패키지 내의 코드들은 식별자를 통해 서로 호출할 수 있다. 하지만 이 식별자는 외부에서 사용 불가. 패키지 선언은 클래스나 인터페이스 선언에 앞서서 소스 파일의 가장 앞부분에 작성되어야 한다. 시스템은 적어도.. 2022. 1. 7.
[자바 프로그래밍 언어] 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.
728x90