자바의 자료구조는 다음과같다
그림참조
jdk의 자바 컴파일러가 자바파일을 클래스파일로 변환후
메소드영역과 스태틱영역에 클래스파일의 정보를 넣는다
스택영역인 쓰레드에서 객체(클래스의 실체)를 불러 올려면 방법이 두가지이다
첫번째로 클래스멤버(필드 + 메서드)가 static인경우
이경우 처음에 스태틱영역에 클래스멤버의 정보가 저장되고 이경우 스택영역에서 바로 클래스멤버를 호출할수있다
두번째는 정공법인 쓰레드에서 메소드(스태틱)영역에있는것을 힙영역으로 불러와 힙영역의 주소를 얻어와서 객체를 호출하는 방법이다
사용법은
타입 변수 = new 클래스(); 이다
즉 클래스메소드영역에서 힙영역으로 불러오고 힙영역의 주소를 쓰레드(스택)영역에서 가진다 이 주소에서 정보를 얻어서 처리
클래스멤버 = 필드 + 메서드
필드 = 변수
클래스는 static일 수 없음. 이클립스에서 class에 static 붙여보길 바람. = 이유 staic은 class영역(메서드영역)의 부분집합이기 때문
여태껏 공부하면서 몇 가지 했던 메모를 옮겨 적을려한다.
틀린 내용이 있다면 언제든지 댓글에 수정 부탁드립니다.
제가 공부하면서 적은 내용이기에 틀린 부분이 있을 수 있습니다 감안해서 봐주세요.
728x90
댓글