Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 안드로이드
- Java
- ElasticSearch 토큰필터
- ElasticSearch EdgeNGram
- 토큰필터
- 인텔리제이
- ElasticSearch Shingle
- Spring Servlet이란
- ElasticSearch 동의어 파일
- Servlet과 Thread
- Servlet 멀티 스레딩
- Spring Container란
- Bean Factory란
- elasticSearch
- Servlet Life Cycle
- 동의어 파일
- Dispathcher Servlet이란
- H2
- layout
- 안드로이드스튜디오
- ApplicationContext란
- 계산기
- Servlet Container란
- 자바
- ElasticSearch NGram
- Spring Handler
- H2 DB
- spring 장점
- ElasticSearch 동의어 사전
- ContextLoaderListener란
Archives
- Today
- Total
결국 무엇이든 해내는 사람
Java - heap 에 대한 간단한 정리 본문
반응형
//프로그램을 실행을시켜서 메모리에 올라가면
//크게 두가지 영역으로 나누어져서 들어가는데
//하나는 코드영역(메소드영역이라고도함) 하나는 데이터 영역(상수영역 혹은 static 영역이라고도함)
//코드영역에는 우리가만든 메서드 들이 들어간다
//근데 잘 생각해보면 , 인스턴스와 인스턴스( 같은 종류라면) 기능이 동일하다.
//그러나 각 인스턴스의 변수는 다르겠지
//그래서 각 인스턴스의 기능은 코드영역에 잡히고 그 메소드의 이름은 주소로 바뀐다.
//(함수의 이름은 일종의 주소로 볼 수 있다) -> 그다음에 파라미터에 따라 살짝살짝 구분할수있게끔 내부적으로 되어있음
//결론적으로 클래스의 변수가 갖는 영역과 메소드가 갖는 영역은 다르다는 얘기이다.
//프로그램이 로드가 되면 메서드영역에 명령어 set이 위치한다
//해당 메서드가 호출이 되면 명령어 set이 있는 주소를 찾아가 명령어가 실행이 된다
//이때 메서드에서 사용하는 변수들은 스택메모리에 위치하게 된다.
//따라서 인스턴스가 생성이 되면 변수는 힙메모리에 따로 생성이 되지만 메서드의 명령어 seㅅ은 처음 한번만 로드된다는 사
//인스턴스인 경우는 heap에 잡힌다.
//지역변수는 stack에 잡힌다
//가상메서드란 무엇인가? 자바는 모든 메서드가 가상 메소드이다.
//프로그램에는 가상메서드 테이블이 존재하고 , 그 테이블에 해당 메서드에 대한 address를 가지고 있다.
//재정의 된 경우에는 재정의 된 메서드의 주소를 가르킨다.
반응형
'두서없는 공부 노트 > JAVA' 카테고리의 다른 글
Java - jar 파일이란? (0) | 2021.03.02 |
---|---|
Java - OOP(객체지향프로그래밍)의 간단한 정리 (0) | 2021.03.01 |
Java - queue 구현하기 (0) | 2021.03.01 |
Java - stack 구현하고 테스트하기 (0) | 2021.03.01 |
Day 15 - frame응용, 방향키로 공 움직이기 (0) | 2020.09.03 |
Comments