분류 전체보기

    JVM 조사 : ClassLoader

    🤦‍♂️1. 클래스로더란?자바 클래스들은 시작시 한번에 로드되지 않고, 애플리케이션에서 필요할 때 로드된다.클래스로더 : JRE의 일부로써 런타임에 클래스를 동적으로 JVM에 로드하는 역할을 수행하는 모듈자바의 클래스들은 자바 프로세스가 새로 초기화되면 클래스로더가 차례로 로딩되며 작동2. 계층구조부트스트랩 클래스로더(Bootstrap classloader)최상위 우선순위를 갖는 클래스 로더jre/lib/rt.jar를 로드네이티브 코드로 구현되어있다확장 클래스 로더(Extension classloader)jre/lib/ext에 포함된 클래스 파일을 로드java.ext.dirs 환경 변수로 지정된 폴더에 있는 클래스 파일을 로딩Java로 구현되어 있으며, sun.misc.Launcher 클래스 안에 정적 ..

    인터페이스

    1. 인터페이스의 선언인터페이스 : 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할을 하는 일종의 추상 클래스어떤 객체가 특정 인터페이스를 사용한다면 그 객체는 반드시 인터페이스의 메소드들을 구현해야 한다.다음은 어떤 동물원의 사육사가 하는 일이다. 난 동물원(zoo)의 사육사(zookeeper)이다. 육식동물(predator)이 들어오면 난 먹이를 던져준다(feed). - 호랑이(tiger)가 오면 고기(meat)를 던져준다. - 사자(lion)가 오면 생선(fish)를 던져준다.package chapter08; import java.util.ArrayList; import java.util.List; public class Sample { public sta..

    상속

    1. 상속 개념설명내용상속 : 부모가 자식에게 필드나 메소드를 물려주는 것개발시간 단축, 클래스의 수정 최소화부모 클래스에서 private 접근 제한을 갖는 필드와 메소드는 상속 대상에서 제외단, 필드는 getter setter이 있다면 접근이 가능하다부모 클래스와 자식 클래스가 다른 패키지에 존재한다면 default 접근 제한을 갖는 필드와 메소드도 상속대상에서 제외2. 클래스 상속설명내용자식 클래스를 선언할 때 부모클래스를 결정, 선택된 부모 클래스는 extends 뒤에 기술자바는 다중상속을 지원하지 않는다class 자식클래스 extends 부모클래스 // 부모클래스 하나만 상속 가능{ // 필드 // 생성자 // 메소드 }3. 부모 생성자 호출설명내용자식 객체를 생성하면 부모 객체가 먼저 생성되고 ..

    클래스

    1. 객체지향언어객체 지향 프로그래밍(OOP : Object Oriented Programming)객체들을 먼저 만들고, 이것들을 하나씩 조립하여 완성된 프로그램을 개발하는 기법프로그램을 보다 유연하고 변경이 용이하게 만들고, 코드의 재사용을 통해 반복적인 코드를 최소화해 유지보수 하는데 유리하다.특징추상성 : 사물이나 표상을 어떤 성질, 공통성, 본질에 착안하여 그것을 추출하여 파악하는 것객체의 공통적인 속성과 기능을 추출하여 정의하는 것추상화를 구현하는 문법 요소 : 추상 클래스 / 인터페이스인터페이스 : 어떤 객체의 역할만을 정의하여 객체들 간의 관계를 유연하게 연결하는 역할어떤 객체가 수행해야 하는 핵심적인 역할만을 규정해두고, 실제적인 구현은 해당 인터페이스를 구현하는 각각의 객체들에서 하도록 ..

    참조자료형

    1. 데이터 타입 분류그림에서 기본타입 변수는 값 그대로 Stack 영역에 저장이 되고, 참조타입 변수는 메모리의 번지(주소)를 저장합니다. 결국 Heap 메모리 영역을 참조해서 값을 출력해주는 것이지요. 주소를 통해 ‘참조’ 한다는 자료형이라 하여, 참조 자료형이라 부릅니다. 코드에서 사용된 String(문자열) 변수 또한 참조 자료형 변수 라고 합니다. 2. 메모리 사용영역public class Main { public static int s = 10; public static void main(String[] args) { int a = 5; int b = 5; int result1 = a + b + Main.s; System.out.println(result1); // 20 Counter sub ..