본문 바로가기

Java3

JVM 구성요소 - 클래스로더 # JVM 구성요소 - 클래스로더 클래스로더란?JVM의 구성요소 중 하나로 클래스 파일을 로딩하여 메모리에 올리는 역할을 한다. 클래스로더의 종류부트스트랩 클래스로더, 플랫폼 클래스로더, 어플리케이션 클래스로더 총 3가지로 구성되어 있다.( * 추가적인 커스텀 클래스로더도 구성이 가능하다. ) 클래스로더의 동작방식클래스로더는 아래와 같은 순서로 클래스파일을 메모리에 올리는 과정을 거친다.로딩 -> 검증 -> 준비 -> 해석 -> 초기화 -> 사용 -> 언로딩이 중에 (검증 -> 준비 -> 해석) 단계를 "링킹"이라고도 부른다.로딩 -> 링킹 -> 초기화 -> 사용 -> 언로딩이제 각각의 동작들이 어떠한 작업을 하는지 알아보자. 1. 로딩-> 클래스 파일을 바이너리 바이트 스트림으로 읽어온다, 바이트 스.. 2025. 6. 1.
자바의정석 - 제네릭 제네릭 (Generics) - 컴파일시 타입을 체크해 주는 기능 - 객체의 타입 안정성을 높이고, 형변환의 번거로움을 줄여준다. ArrayList tvList = new ArrayList(); tvList.add(new Tv()); // OK tvList.add(new Audio()); // 컴파일 에러. Tv외에 다른 타입은 저장 불가 - 실행시에 발생하는 런타임 에러를 컴파일 타임의 컴파일에러로 바꿀 수 있다 - 여러 데이터 타입을 저장하려면 Object를 적어주면 된다. - 대신 형변환을 해야한다. 타입 변수 - 클래스를 작성할 때, Object타입 대신 타입 변수(E)를 선언해서 사용 private transient E[] elementData; public boolean add(E o) {} p.. 2021. 12. 29.
자바의 정석 - 배열(Array) 배열(Array) 배열이란? - 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 배열을 왜 사용할까? - 만약 1만개의 숫자를 저장하기 위해서 1만개의 int형 배열을 선언한다고 생각하면 머리가 아플것이다. 이런 경우에 배열을 사용하면 많은 양의 데이터를 손쉽게 다룰 수 있다. 더보기 Q: 배열은 같은 타입의 데이터만 묶을 수 있다, 그렇다면 다른 타입의 변수들을 묶으려면 어떻게 해야할까? -> 클래스를 사용한다. 배열 예제 한 한급의 시험점수를 저장하려고 한다. 학생 5명의 점수를 저장하기 위해서는 아래와 같이 5개의 변수를 선언해야 한다. int score1, score2, score3, score4, score5; 변수 5번 선언하는 대신 배열을 이용하면 다음과 같이 간단히 처리할 수 있다. 변.. 2021. 12. 14.