자바 메모리 구조자바 메모리 구조는 3개로 나뉜다.메소드 영역 : 클래스 정보를 보관하는 영역스택 영역 : 실제 프로그램이 실행되는 영역으로 메소드를 실행할 때마다 하나씩 쌓인다.힙 영역 : 객체가 생성되는 영역으로 new 명령어 사용 시 힙 영역이 사용된다. 메소드 영역프로그램을 실행하는데 필요한 공통 데이터를 관리하며 프로그램의 모든 영역에서 공유한다.클래스의 메소드는 코드가 동일하고 필드와 같이 따로 관리할 필요가 없기에 메소드 영역에서 공통으로 관리되고 실행된다.클래스 정보 - 클래스의 실행 코드(바이트 코드), 필드, 메소드와 생성자 코드등 모든 실행 코드가 존재한다.static 영역 - static 변수들을 보관한다.런타임 상수 풀 - 프로그램을 실행하는데 필요한 공통 리터럴 상수를 보관한다...
접근 제어자접근 제어자의 핵심은 멤버 변수(속성)와 메소드(기능)을 외부로부터 숨기는 것이다.접근 제어자는 멤버 변수, 메소드, 생성자에 사용된다.일부 클래스 레벨에서도 사용할 수 있다.지역 변수에는 사용할 수 없다. 접근 제어자 종류private : 모든 외부 호출을 막는다.해당 클래스 내에서만 호출할 수 있다.default (package-private) : 같은 패키지 안에서 호출은 허용한다.접근 제어자를 명시하지 않는 경우 적용된다.protected : 같은 패키지와 상속 관계의 호출은 허용한다.public : 모든 외부 호출을 허용한다.private -> default -> protected -> public 순으로 허용 범위가 크다. class Student { private String na..
패키지패키지란?클래스들을 구분 짓는 폴더와 유사한 개념직접 만든 패키지와 이미 만들어져 있는 내장 패키지가 존재한다.개발 시 클래스들을 분류함으로 이름 중복, 클래스 역할 혼동 방지ex) javac c/javapackage/Package.javajava c/javapackage/Package=> / 로 각 패키지를 구분한 후 자바 소스 이름을 지정하여 컴파일이 가능하고 컴파일된 클래스를 실행할 수 있다.자바는 해당 패키지의 가장 상위 디렉토리(root 디렉토리)에서 실행을 해야만 하는 약속이 있다.윈도우에서는 / 말고 \로도 컴파일 및 실행이 가능하다.상위 패키지와 하위 패키지의 상관관계는 전혀 없다.패키지 선언패키지 선언 제약사항소스의 가장 첫 줄에 있어야 한다. (주석이나 공백은 상관 없음)패키지 선..