본문 바로가기
반응형

분류 전체보기121

[Java] 클래스 로더(Class Loader) 자바로 프로그램 작성(***.java) ▶ 컴파일/빌드하면 class파일이 (***.class) 생성된다. ▶ 클래스 로더가 컴파일된 class 파일을 메모리에 로드하고 ▶ 메모리와 jvm 링크 ▶ 링크가 될 때 JVM스펙에 맞는지, Java 버전확인 등의 loading 단계 ▶ 클래스의 static 변수와 기본값에 필요한 메모리 공간을 준비하는 prepare 단계 ▶ jvm 위로 올려(load) 실행될 수 있게 한다. 2022. 9. 3.
[Java] 패키지와 static 1. 패키지 Java 프로그램은 많은 클래스로 구성되고, 이러한 클래스를 폴더 형식으로 관리하는 것을 패키지라고 한다. 패키지명을 정할 때는 - 패키지에 속해있는 클래스가 다른 클래스와 중복되는 것을 방지하도록 정한다. - 일반적으로 도메인을 거꾸로 이용한다. (패키지를 다른 프로젝트에 그대로 이식해서 사용할 때 도메인은 유니크하기 때문에) - 개발 중 패키지의 이름과 구조는 변경할 수 있다. - 패키지명만 보고도 어떤 속성과 기능을 가지고 있는지 알 수 있어야 한다. 2. import 다른 패키지에 있는 클래스를 사용하기 위해서는 import 키워드를 이용한다. package com.java.employee; import com.java.dailyJournal.DailyJournal; //import .. 2022. 9. 2.
[Java] 생성자와 소멸자 그리고 this 1. 디폴트 생성자 객체가 생성될 때 가장 먼저 호출되는 생성자로, 만약 개발자가 명시하지 않아도 컴파일 시점에 자동 생성된다. 2. 사용자 정의 생성자 디폴트 생성자 외에 특정 목적에 의해서 개발자가 만든 생성자로, 매개변수에 차이가 있다. 3. 소멸자 객체가 GC에 의해서 메모리에서 제거될 때 finalize() 메서드가 호출된다. System.gc() 를 사용한다고 해서 GC가 바로 실행되는 것이 아니라 가급적 빨리 실행되도록 요청하는것. 근데 java 는 개발자가 직접 메모리관리를 하지 않으니 System.gc() 사용도 드물다. 4. this 키워드 현재 객체를 가리킬 때 this를 사용한다. //main ints[] = {10, 20, 30}; ObjectEx obj = new ObjectEx.. 2022. 9. 2.
[Java] 객체와 메모리 1. 메모리에서 객체 생성(동적 생성) 객체는 메모리에서 동적으로 생성되며, 객체가 더 이상 필요 없게 되면 GC(Gabage Collector)에 의해 제거된다. 가운데 영역을 메모리라고 하면 class를 정의하고 new 라는 키워드로 객체들을 생성하면 메모리에 객체가 생성이되고, ChildClass child = new ChildClass(); 여기서 new 로 ChildClass 객체를 생성하면 메모리상 obj. 에 생성이 되고 child 라는 변수에는 obj.의 주소가 저장된다(레퍼런스) 더이상 사용하지 않으면 레퍼런스 관계(이미지에서 빨간 화살표)가 사라지고 GC가 obj를 제거함 그럼 메모리의 해당 공간을 다른 용도로 사용할 수 있게된다. 2. 레퍼런스(가리킨다) 생성한 객체의 주소를 변수에 .. 2022. 9. 2.
728x90
반응형