자바 인터뷰 질문 (지속적으로 업데이트)

1 "=="과 방법의 차이는 무엇입니다 같다?

== 연산자 두 비교하기위한 변수 (메모리 값)의 값을 데이터의 두 가지 기본 유형, 2 참조를 비교하는 메모리에 저장된 값에 대응하는 변수를 비교하기 위해, 즉 동일한 같다 변수는 == 연산자와 동일하다.

데이터 오브젝트 타입 가변 점 경우,이 시간은 오브젝트 자체 메모리 (힙 메모리), 메모리 점유 변수, 예컨대 오브제 OBJ = 새로운 객체 ()가 차지하는 두 개의 메모리를 포함한다; obj가 가변적 메모리는 새로운 오브젝트 ()는,이 시점에서, 메모리 변수 OBJ에 대응하는 저장된 값 보조 메모리 인 객체가 메모리의 선두 어드레스를 차지하고있다. 두 변수를 비교할 경우 가변형 포인팅 대상의 경우, 동일한 오브젝트를 참조하고, 즉, 그 값이 메모리에 대응하는 2 개 개의 변수에 따라,이 시간 필요가 == 연산자와 비교 같다.

 

방법 일치 한 개의 독립적 비교하기 위해 사용되는 콘텐츠 객체를 두 사람의 모습과 비교하기 위해 동일한 비율 같이 동일하고, 두 개의 개체는 무관 비교한다.

우리는 일반적으로 모든 개체 재 작성 () 메소드가오고, (Object 클래스가 동일 내부) 자체가 "=="주소 비교를 참조 사용하는 것입니다 동일했다 () 메소드를 등호를 사용합니다 :

 

예를 들어, 코드를 다음 :

문자열 A = 새 문자열 ( "foo는");

문자열 B = 새 문자열 ( "foo는");

두 문장 두 새로운 객체 후, B는 두 개의 변수, 그들은 저장 a와 b의 값, 즉, 첫 번째 주소는 다른 두 개의 서로 다른 객체를 하나 개 객체를 가리이다를 만들 동일하지 않다, 따라서 == B가 거짓 반환 발현이 두 객체의 내용은 동일하므로, 식 a.equals (b)에 true를 반환한다. 문자열의 방법이 다시 작성되었습니다 동일하기 때문에 그러나 가장 큰 이유입니다.

이제 다음 코드를 살펴 보자 :

 

2, 정적 변수 및 인스턴스 변수의 차이?

구문 정의의 차이 : 이전의 정적 변수는 추가 정적 키워드를하지만 인스턴스 변수를 추가하기 전에.

이 프로그램은 차이를 실행합니다 :

에 속하는 인스턴스 변수 객체의 속성 , 당신은 인스턴스 변수는 인스턴스 변수를 사용하기 위해 공간을 할당하는 오브젝트의 인스턴스를 작성해야합니다.

정적 변수는 또한으로 알려져 있습니다, 개체의 인스턴스에 속해 있지만, 클래스에 속하지 않는 클래스 변수 , 한 프로그램이, 바이트 코드의 클래스를로드로 객체의 인스턴스를 생성하지 않고, 정적 변수가 할당됩니다 공간 , 정적 변수가 될 수 있습니다 사용합니다.

객체를 생성해야 인스턴스 변수이 객체에 의해 사용할 수 있습니다 후 즉, 당신은 정적 변수가 직접 사용할 수있는 기준에 클래스 이름을 .

3, 과부하의 차이를 무시하고

(과부하)이 과부하 같은 동일한 클래스, 메소드 명 메소드 복수 나타내고, 이러한 방법 파라미터리스트가 다른 (인수의 수, 유형 또는 순차적으로).
(재정의) 재 작성, 서브 클래스는 같은 방법 이름, 매개 변수를 포함하여, 부모 클래스 메소드를 다시 작성 및 유형을 반환합니다.
부모 클래스와 동일한 범위보다 하위 클래스 액세스 수정 범위는 부모보다 덜 발생 예외를 서브.
선언 마지막 방법은 재정의 할 수 없습니다. 정적 메서드는 다시 쓸 수는 없지만, 다시 선언 할 수있는 선언.
개인 서브 클래스에 추가하여 같은 패키지의 하위 클래스와 슈퍼 클래스는, 모든 최종 메소드를 오버라이드 (override) 할 수 있습니다. 서브 클래스와 부모는 같은 패키지에있는 유일한 방법은 공공 및 보호 오버라이드에게 부모 클래스 선언을 하위 클래스 없습니다.

 



추천

출처www.cnblogs.com/reaper-kd/p/11236504.html