< link rel="shortcut icon" href="https://xn--oy2bi4yvoj.net/favicon.ico"> [기초] Java Class & Method - Stack > 프로그래밍 - 프로그래밍 강좌 | 프리존 - 게임정보 커뮤니티 
  • 북마크

프로그래밍 - 프로그래밍 강좌




[JAVA[자바]] [기초] Java Class & Method - Stack

Get41123
2020.09.01 17:52 568 4

본문

안녕하세요. 요즘 너무 바빠가.... 강의를 올리지 못하고 있었습니다....


오늘은 Java Class와 method를 활용 하여 간단한 메커니즘을 파악 할 겁니다.


공부 하기전 간단하게 Java가 메모리 관리를 어떻게 하는지 알 필요가 있습니다.


이번 시간엔 Stack을 공부 할 겁니다.


Java 에는 Stack 과 Heap 이라는 영역이 존재 합니다.


우선 Stack과 Heap을 사용 하는 Thread(스레드) 를 알아야 합니다.


우리는 Java 라는 언어로 코드를 작성하여 프로그램을 만든다고 한다면.


이 프로그램이 실행 될때 OS에서는 이 프로그램에 Thread를 할당 할테고 이 Thread의 자원 을 Java프로그램 에서 사용 할겁니다.


그리고 이 Thread를 가진 Java 프로그램은 OS가 관리하는 하나의 프로세스 로 PID를 가지게 되며 OS 시스템이 가지고 있는 RAM(휘발성 메모리) 에 적재되어 프로그램을 유지 하고 동작 시킵니다.


즉 프로그램에 하나의 "움직일수 있는 동력"  을 준다고 생각 하면 됩니다.


이 Thread 를 가진 프로그램은 우리가 작성한 Java코드를 행동으로 화면에 보여줍니다.


" 그래서 Stack와 Heap이 Thread랑 무슨 상관관계가 있나요? "

네 이 Thread마다 우리가 작성한 프로그램에서 사용할 재료들을 담아놓을 바구니를 개별적으로 가집니다.


즉, 프로그램에서 여러 Thread를 생성하여 프로그램을 병렬 처리 한다면 그 Thread만큼 Stack이 생성되고 각 Thread마다 소유하게 됩니다.


다음시간에 배우게 될 Heap은 Thread가 100개던 1000개던 하나의 영역만이 존재 합니다.


그럼 이번시간에 공부할 Stack 같이 그림으로 표현 해봐요.


83a71f15c53f6a26ab3e7a2e3671417f_1598949018_6224.png

위 처럼 인자로 전달된 int형 변수의 값을 제곱 하는 프로그램을 작성 합니다.


위 코드를 블럭으로 바꿔보자면 아래 처럼 볼 수 있습니다.


0d42767a15c3904f48c326454ba2502b_1598951325_5263.png


c5b583256e897304c6871b0c9c82431b_1598951325_7291.png


3e546ecb7b094ac9a8347a0013f1b031_1598951325_9127.png


56d722eaea27487e8e7aeeb1d4542af0_1598951326_1197.png
이렇게 Stack은 사용 됩니다.


어느정도 개념만 이해 하시면 됩니다. 성능이 좋은 프로그램을 작성 하기 위해 어느정도 이해는 하고 넘어가야 하는 부분 입니다. 


다음 시간엔 Heap 도 같이 공부 해봐요.



댓글목록 4

아핳님의 댓글

아핳 2020.11.14 11:31

역시 프로그래밍은 어려웡

우울왕님의 댓글

우울왕 2021.05.18 00:54

좋은교육자료 감사합니다.

eksl님의 댓글

eksl 2021.06.19 09:08

워터마크 때문에 보기 힘들지만 좋은자료네

ultima7님의 댓글

ultima7 2021.08.27 10:14

좋은 강의 감사합니다.^^