Programming Language
-
자바 JVM(Java Virtual Machine) 메모리 구조Programming Language/- Java 2022. 6. 1. 20:12
JVM(Java Virtual Machine) 이란? JVM은 컴파일된 자바의 바이트코드(. class)들을 OS에서 실행하기 위한 표준 스펙이며 다양한 구현체가 존재한다. Java 언어 자체는 JVM에서 동작하기 때문에 OS 독립적이지만 JVM은 각 OS에 종속적(윈도우용 JVM, 리눅스용 JVM 등)이다. JVM은 크게 아래와 같이 분류할 수 있다. Class Loader JVM Memory(Run-time Data Areas) Execution Engine 오늘은 JVM의 메모리에 대해서 알아본다. JVM Memory (Run-time Data Areas) JVM의 메모리는 위 그림에서와 같이 Method Area Heap JVM Language Stacks PC Registers Native Me..
-
[자바] ThreadLocal 에 대하여Programming Language/- Java 2022. 6. 1. 19:43
TL;DR Java에서 스레드(Thread)마다 독립적으로 사용할 수 있는 변수를 말한다. ThreadLocal 이란? ThreadLocal 은 스레드(thread)마다 독립적으로 사용할 수 있는 변수를 말하며 해당 스레드에서 전역 변수처럼 사용할 수 있다. 다만 스레드 풀 환경인 경우 사용이 끝난 스레드의 ThreadLocal을 해제(remove) 하지 않고 반환하면 해당 스레드가 재사용될 때 이전 실행에서 사용된 변수 값이 다음 스레드 실행에 영향을 미칠 수 있다. ThradLocal 사용법 1. ThreadLocal 객체 생성 ThreadLocal threadLoal = new ThreadLocal(); 2. ThreadLocal.set() : 현재 스레드에 변수 값을 저장 threadlocal.s..
-
Java 1부터 Java 17 까지 히스토리 & 버전별 특징 정리Programming Language/- Java 2022. 1. 29. 12:31
TL;DL 최신 프로그래밍 언어들(Kotlin, Rust, Clojure 등)이 가지고 있는 개념들(변수 타입 추론, 함수형 프로그래밍, 자동 병렬 프로세싱을 지원 등)을 Java에서도 새롭게 개발, 적용하고 있다. Java 8의 지원 기간이 2030년 12월이므로 기업들의 다음 Java 버전은 Java 17 이상이 될 것이다. 현재 회사(솔루션 업체이지만 SM, SI 업체와 비슷하다)에서 주로 사용하는 Java 버전은 7과 8 이다. 대기업들의 SM과 SI를 진행하고 있기 때문에 매우 보수적인 Java 버전이 사용되고 있다. 새로 진행되는 SI들은 그래도 Java 8을 사용하고 있지만 기존에 개발된 프로젝트들은 6, 7 버전이 대부분이다. 이러한 업무 환경 때문에 최신 Java 버전을 사용할 기회가 별..