본문 바로가기

반응형

Java

(8)
파이썬 가상환경 만드는 법 원하는 파이썬 버전 설치하기https://www.python.org/downloads/ 여러 파이썬 버전 리스트업py --list -V:3.13 * Python 3.13 (64-bit) -V:3.11 Python 3.11 (64-bit) -V:3.6 Python 3.6 (64-bit)가상환경 생성py -3.11 -m venv env311가상환경 활성화./env311/Scripts/activate가상환경 비활성화deactivate
Java 면접 예상 질문 - 이것이 자바다 Part 02 객체지향 1. java의 데이터 타입에는 기본 타입(primitive type)과 참조 타입(reference type)이 있는데, 각각의 종류를 나열하고 둘은 어떻게 다른지 설명해보세요. - 5.1 데이터 타입 분류 참고 - 기본 타입에는 byte, char, short, int, long, float, double, boolean이 있습니다. 참조 타입에는 배열 타입, 열거 타입, 클래스, 인터페이스가 있습니다. - 기본 타입은 스택 메모리에 실제 값을 저장하고, 참조 타입은 객체가 저장된 힙 메모리의 번지를 스택 메모리에 저장합니다. 2. JVM은 운영체제에서 할당 받은 메모리 영역을 무엇이라고 하나요? 이 영역은 메소드 영역, 힙 영역, JVM 스택(Stack) 영역으로 구분됩니다. 각 영역에 대해서 ..
Java 면접 예상 질문 - 이것이 자바다 Part 01 자바 기초 1. Java SE와 Java EE에 대해서 설명해보세요. - 1.2.2 자바의 특징 참고 - Java SE는 Java Standard Edition의 약자로 JVM과 자바 프로그램 개발에 필수적인 도구와 라이브러리 API를 정의한다. - 자바 프로그램을 개발하기 위해서는 반드시 Java SE의 구현체인 JDK를 설치해야 한다. - Java EE는 Java Enterprise Edition의 약자로 네트워크, 인터넷에서 서버용 애플리케이션을 개발하기 위한 도구 및 라이브러리 API를 정의한다. 2. *.java 파일을 작성한 후 Java 프로그램이 실행되는 과정을 설명해보세요. - 1.4.1 소스 작성에서부터 실행까지 참고 - javac.exe 컴파일러가 *.java 파일을 컴파일하여 *.class 파일..
클래스로더 메모리 누수 원인과 해결법 (ThreadLocal 사용시 주의점) 두 줄 요약원인은 ThreadLocal을 사용 후 명시적으로 remove 하지 않았기 때문이라고 할 수 있다. 따라서 해결법은 ThreadLocal을 사용 후에는 반드시 `remove()`를 호출해야 한다.  ThreadLocal의 작동 방식 ThreadLocal은 쓰레드마다 각기 다른 값을 저장하는 기능을 제공한다. `ThreadLocal.set(value)` 를 호출하면 현재 쓰레드의 ThreadLocalMap에 value가 저장된다. 이 값은 앱이 종료되거나 ThreadLocal.remove()를 호출하지 않는 한 유지된다.  ThreadLocal이 상당한 메모리를 물귀신 하는 과정ThreadLocal 변수로 저장된 것이 만약 어떤 클래스의 인스턴스라고 해보자. 이 인스턴스는 자신의 블루프린트인 클..
Java 클래스 로딩 과정 1. 클래스 파일 파싱(Class Format Check)먼저 클래스 포맷이 올바른지 확인합니다. 잘못된 경우에는 `ClassFormatError`가 발생합니다.  2. 클래스 생성 (Creation of Class)다음으로는 클래스의 런타임 representation을 JVM 메모리 영역에 생성합니다. 이 메모리 영역은 Method Area의 `runtime constant pool`으로, `Meta Space` 또는 `Permanent Generation`이라고도 합니다.  3. 링킹 (Linking) 자바 바이트 코드 유효성 검사 (Java bytecode verification) 후, Java bytecode에 있는 상징적인 레퍼런스들의 Resolution (Resolution of symboli..
Method Area 정의와 구성 Method Area란?Method Area는 모든 스레드들이 공유하는 메모리 영역으로 JVM이 기동될 때 JVM 당 하나씩 생성된다. Garbage Collection(이하 GC)의 대상이 되는 영역으로, 클래스로더가 로드한 클래스 파일로부터 추출된 다음 9가지 정보들이 저장되어 있다. 다음 9가지 정보들은 말하자면 클래스(혹은 인터페이스)의 메타데이터들이다. 그리고 Method Area는 HotspotJVM에서 한 때는 "Permenant Generation"으로 불렸던 영역이다. Type InformationRun-Time Constant PoolField InformationMethod InformationClass VariablesReference to ClassLoader ?Reference ..
JVM Stack 메모리의 정의와 구성 JVM Stack 메모리란스레드의 수행 정보를 기록하는 Stack Frame들을 저장하는 메모리 영역. 스레드마다 하나씩 존재하고, 스레드가 시작할 때 생성된다. 스레드가 자바 메소드를 수행할 때 JVM은 Stack Frame을 하나 생성해서 JVM Stacks에 푸시한다. Stack Frame 중 현재 수행하고 있는 메소드의 정보를 저장하는 것을 Current Frame이라고 한다. 직전에 Push된 Stack Frame이 Current Frame이 되며, 수행을 마친 메소드는 Pop된다. 만약 메소드가 비정상 종료를 하게 되면 Exception을 처리 후 Pop된다. 여기서 설명되는 JVM Stacks는 JVM 명세(Specification)의 내용에 지나지 않으며, JVM Stacks의 실제 구현은..
JVM이란? - JDK vs. JRE vs. JVM JVM 정의Java 프로그램을 실행시켜주는 가상 머신이다. 각 운영체제별로 만들어져서 운영체제와 애플리케이션 사이에 위치하면서 애플리케이션이 플랫폼에 상관 없이 독립적으로 실행될 수 있도록(Write One Run Everywhere) 만들어준다. JVM의 주요 임무는 클래스를 로딩하고 클래스의 바이트 코드를 실행하는 것이다. 실제로 JVM은 Specification에 지나지 않는다. 각 JVM 벤더들은 표준에 맞추어 JVM을 구현할 수 있고, OpenJDK가 사용하는 JVM의 이름은 HotspotJVM이다.  JVM의 주요 역할개발자가 작성한 Java 프로그램과 WAS를 실행시킨다. 실행시킨다는 것은 Class 파일을 JVM으로 로딩하고 인터프리팅하는 것과, 메모리 등의 리소스를 할당하고 관리하는 작업..

반응형