예전에 신입개발자로써 취직을 준비하면서 네이티브 메서드라는게 있다는 걸 외웠던게 기억나는데이를 좀더 깊게 고민해본 글이다.자바 가상머신 스택에 대하여일단, 책을보다 이게 있는지 처음 알았다. 예전에 공부했을때는 적당히 네이터브 메서드에 영역에 퉁쳐서C처럼 생긴 메모리구조에다가 우겨넣었는데, 깊이 있게 이해 해 보니말도 안되는 걸 왜 그때는 이해하지 못하였는지 생각이 들었다. 자바라는게 결국 C에서 하던 메모리 관리를 직접하지 않고 코드에 더 집중하게해 생산성을 높이는 언어인 것을 알고 있었으면서 C 메모리체로 설명하는 자바 메모리를 의심하지 않고 공부했던 내 자신이 조금은 부끄러웠다. 일단 자바 가상머신스택은 스레드 프라이빗 영역인데쉽게 말해 스레드가 어떤 동작을 하기위해 스택 프레임을 만들게 되는데 지..
프로그램 카운터 레지스터란자바에서 사용하는 가상 메모리의 개념 중 하나이다.프로그램 , 카운터 - 카운팅기능 , 레지스터 - 등록체 이렇게 이해할 수 있는데, 프로그램 카운터란 결국스레드가 실행하면서 가지게 되는 바이트코드의 줄 을 세서, 유지하고 관리하는 개념이다. 이를 통해 흐름제어 , 순환 , 점프 ,예외처리 , 스레드 부팅(재시작)을 하게 되는데 자바 개발자라면 다들 알고 있다시피 , 자바는 여러개의 CPU를 동시에 사용해스레드를 병렬처리하게 되는데 이때 우선순위가 주어지게 되고, 어떤 특정시점에서 우선해서 다른 스레드를 동작시켰다면, 멈춘 위치를 기억해야하는데그런 역할을 프로그램 카운터가 하게된다는 것이다. 그리고 이러한 영역을 프라이빗한 스레드 영역이라고 하게된다.그래서 해당 영역에서 문제가 ..
들어가며이번 포스트에서는 스레드에 대한 포스트 입니다.사실 한번쯤은 모두 공부해본 내용이지만 , 정리도하고 java에서는 어떻게 활용할 수 있는지에 대한 이야기도 함께 하겠습니다.스레드?프로세스 내에서 실행되는 독립적인 작업 단위이며 여러 스레드가 하나의 프로세스에서 동작할 수 있습니다.그리고 스레드는 자체적인 흐름제어,스택,레지스터를 가지고 있습니다.사용하는 가장 큰 이유는 여러 작업을 동시에 수행하여 효율성을 높이기 위해 사용합니다.자바에서 스레드 쓰기Thread 클래스 상속: Thread 클래스를 상속받고 run() 메서드를 오버라이딩하여 스레드의 실행 코드를 구현합니다.Runnable 인터페이스 구현: Runnable 인터페이스를 구현하고 run() 메서드를 오버라이딩하여 스레드의 실행 코드를 구..
들어가며이번 포스트에서는 Java가 메모리를 어떤식으로 활용하는지에 대한 이야기를 정리해보려고 합니다.자세하게 생각하면 끝도 없는 영역이기 때문에 아 이런식으로 동작하는 구나 정도의 수준의 정리 내용입니다.언어들은 메모리를 어떻게 쓸가?Java와 같이 컴파일러를 통해 기계어를 만들어 사용하는 언어들은 아래 그림처럼코드를 실행하는 영역과 데이터를 저장하는 영역으로 나누어 메모리를 할당해 사용합니다.자바의 경우에 데이터를 저장하는 방법은 크게 3가지로 나누어 이야기할 수 있습니다.Java가 최초 저장할때는 해당영역을 사용합니다.더 정확히 구분하면Method Area 와 Static Area로 나눌 수 있습니다.Method Area vs Static Area?메서드 영역(Method Area):모든 스레드가 ..
들어가며JAVA에 대해 공부하며 배운 것들을 정리하고 생각한 것들을 정리하는 포스트 입니다.개발자들이 많이 사용하는 언어가 궁금해 찾아보다 해당 사이트를 확인했습니다. https://www.tiobe.com/tiobe-index/ TIOBE Index - TIOBEHome » TIOBE Index TIOBE Index for May 2024 May Headline: Fortran in the top 10, what is going on? I have received a lot of questions why Fortran entered the top 10 again after more than 20 years. The TIOBE index just publishes what has been measure..