기술 스텍

Java를 동작시키는데 필요한 JVM에 대해 알아보겠습니다. JVM은 다른 프로그램을 실행시키는 데 목적이 있습니다. 기능으로는 자바 프로그램이 어떤 기기나 OS에서도 실행될 수 있도록 하는데 있습니다. 또한 프로그램 메모리를 관리하고 최적화 하는데 있습니다. 간단한 요약 Java는 OS에 독립적인 특성을 가집니다. JVM을 통해 구현되기 때문입니다. JVM의 동작원리는 다음과 같습니다. 동작순서를 개발자 입장에서 생각해보겠습니다. 1. 개발자가 자바 소스코드를 작성하고 실행해보겠습니다. 2. 자바 컴파일러가 Java Source파일을 컴파일합니다. (이때, 자바 컴파일러는 자바를 설치하면 /bin 폴더에 있는 javac.exe라는 실행 파일 형태로 설치됩니다.) Content {file name}.ja..
String 과 다른 클래스 비교 String, String Builder, String Buffer 모두 String을 사용하기 위해 사용되는 문자열 클래스들입니다. 이렇게 클래스를 분리해서 사용하는 이유에 대해 알아보겠습니다. 우선 문자열을 할당하고, 해당 문자열을 변경해보겠습니다. String str = "Hello"; System.out.println("str : "+System.identityHashCode(str)); StringBuilder sb = new StringBuilder("Hello"); System.out.println("sb : "+System.identityHashCode(sb)); StringBuffer sf = new StringBuffer("Hello"); System...
트랜잭션은 ACID를 통해 설계됩니다. 원자성(Atomicity), 일관성(Consistency), 격리(Isolation) 그리고 영속성(Durability) 그리고 멀티 스레드를 적용할 때 스레드 간 공유자원을 가지고 동작합니다. 이 과정에서 공유자원을 동시에 사용하는 과정에서 문제가 발생하곤 합니다. 이를 동시성 문제라고 합니다. 동시성 문제를 해결하기 위한 해결방법이 락(Lock)입니다. JavaCode를 통한 Lock 락에 대해 천천히 고도화 시켜보겠습니다. public class Product() { private Long productId; private String name; private Long count; // 물건 개수 private Long price; public void buy..
개요가비지 컬렉션(Garbage Collection)은 프로그래밍에서 메모리 관리를 위한 개념입니다. 이는 JVM에서 사용되는 JRE 중에 하나입니다. 프로그램 실행 과정에서 사용하는 메모리 영역 중에서더 이상 사용되지 않는 메모리를 자동으로 찾아내고 해제하는 프로세스를 의미합니다. C언어를 사용하면 malloc() 으로 메모리를 할당하고  free() 함수를 통해 해제하지만Java나 Kotlin의 경우 개발자가 메모리를 직접 해제해주는 일이 없습니다.그 이유는 가비지 컬렉터가 불필요한 메모리를 알아서 정리해주기 때문입니다. 이를 GC(Garbage Collection)라고 부릅니다. Person person = new Person();person.setName("Me");person = null;// ..
시이지
'기술 스텍' 카테고리의 글 목록 (5 Page)
상단으로