Java의 new 키워드 분석

1773 단어 javanew키워드
자바의 new 키워드는 실례화된 대상이라는 것을 모두가 알고 있을 것이다.맞아요. 새로운 대상에 메모리 공간을 할당하는 거예요.
예를 들어 new MyDate(22,71964)와 같은 사례에서 그의 완성은 네 가지가 필요하다.
하나.새 객체에 메모리 공간을 할당하고 MyDate를 더미에 저장합니다.
둘.디스플레이 초기화 수행
셋.실행 구조기.new 방법에서 괄호 파라미터를 구조기에 전달하고 이 대상의 수치를 출력합니다
사.이 변수는 메모리에 새 대상의 인용으로 지정됩니다
통속적으로 말하면, 당신의 new 작업은 실제로 메모리 더미에 new 대상을 새로 추가하고, 구조 방법을 통해 이 새로운 대상을 초기화하고, 창고에 이 대상의 인용을 저장합니다.
다음은 제가 알기 쉬운 사례가 하나 있습니다.

public class Pet {
protected bean be = this.b();
public bean b(){
return new bean();
}
} 
public void test(){
be.setName(" ");
}
public void test2(){
System.out.println(be.getName());
}
public static void main(String[] args) {
People pe = new People();
pe.test();
pe.test2();
}
하나의 부류, 하나의 하위 클래스,test를 통해name에 값을 부여합니다.test2 출력 값을 통해 출력의 올바른 test가name에 부여된 값을 발견할 수 있습니다.main 방법을 실행할 때 프로그램이 먼저 부류를 컴파일하고 be 대상을 실례화하기 때문에 하위 클래스의 인용은 모두 같은 대상이지만 다음 코드로 수정하면 다음과 같습니다.

public void test(){
bean be = new bean();
be.setName(" ");
}
public void test2(){
System.out.println(be.getName());
}
public static void main(String[] args) {
People pe = new People();
pe.test();
pe.test2();
}
테스트에서 저는 be 대상을 새로 만들었습니다. 이런 출력은null입니다. 메모리 창고에 저장된 인용이 다르기 때문입니다. 실제 인코딩을 하는 과정에서 인용이 많은 대상은 부류에 잘 쓰거나 자류가 계승되거나 자바의 단리 게으름뱅이 모드로 쓰는 것이 좋습니다.

public class DanLi1class {
//1. , ()
private DanLi1class(){
}
//2. 
private static DanLi1class dan1 = new DanLi1class();
//3. , 
public static DanLi1class danli1(){
return dan1;
}
}
이렇게 하면 메모리 점용을 절약하여 대상이 중복적으로 사용할 수 있게 할 수 있는데, 왜 기꺼이 하지 않겠는가.

좋은 웹페이지 즐겨찾기