본문 바로가기

카테고리 없음

자바 공부

-new 연산자는 힙 영역게 객체를 생성하고 객체의 주소를 리턴하게 되어 있다.

 

-클래스 변수는 참조 타입

 

- 클래스 변수 = new 클래스();

 

-클래스 변수는 변수이므로 스택영역에 존재

 

-필드는 객체의 고유한 데이터 를 저장하는 곳이다 필드와 변수를 따로 나누어 설명하는데

변수는 생성자와 메소드 내에서만 사용되고 그들이 실행 종료되면 자동 소멸 되지만

필드는 생성자와 메소드 전체에서 사용되며 객체가 소멸되지 않는  한 객체와 함께 존재한다.

 

-생성자 : 객체 생성 시 초기화 역할 담당

 

 

-생성자 오버로딩이란 매개 변수를 달리하는 생성자를 여러개 선언하는 것

 

-this()는 자신의 다른 생성자를 호출하는 코드로 반드시 생성자의 첫줄에서만 허용된다

 

-  메소드에서 매개변수 수를 모를 경우 

 int sum(int ... values){}

int result = sum(1,2,3,4,5);

 

-클래스 내에서 같은 이름의 메소드를 여러 개 선언하는 것을 메소드 오버로딩

 

- 인스턴스 필드 값은 객체 마다 따로 존재하지만 인스턴스 메소드는 객체마다 존재하는게 아니고 메소드 영역에 저장된다

 

-  static 필드와 메소드는 클래스에 고정된 멤버이므로 클래스 로더가  로딩해서 메소드 메모리 영역에 적재 할 때 클래스 별로 관리된다. 따라서 클래스 의 로딩이  끝나면 바로 사용 할 수 있다.

 

-  정적 메소드와 정적 블록 선언할 때 인스턴스 필드나 인스턴스 메소드 , this를 그냥 사용 할 수 는 없다.

 

- 싱글톤 : 전체 프로그램에서 하나의 객체만 만들게 보장

외부에서 new 연산자를 통해 생성자를  못 만들게 private 선언을 한다.

 

-final 선언을 하면 프로그램 실행 도중에는 바뀌지 않는다. 초기화 하는 방법은 필드에서 초기화 하거나 생성자에서 초기화 하는 방법 필드에서 초기화하는 건 여러 객체가 동일한 속성을 가질 때 ( 예를 들어 한국인 인스턴스 만들면 국적)

생성자에서 초기화 하는건 주민번호 같은 경우이다.

 

- 상수는 final로만은 안된다. static이면서 final 이어야 한다. 객체마다 저장되지 않고 클래스에만 포함 된다.