전쟁 준비 안 드 로 이 드 실습 (자바 기초 지식 편)

최근 에 아 리 는 2016 봄 인턴 을 모집 하기 시 작 했 습 니 다. 안 드 로 이 드 개발 인턴 을 시험 해 보 려 고 합 니 다. 이에 시작 하여 제 가 요 며칠 동안 복습 생활 을 기록 하 는 것 은 기본 적 인 기초 지식 입 니 다.도움 이 됐 으 면 좋 겠 습 니 다.
시험 문제 출처:http://www.nowcoder.com/discuss/3043
J2SE 기초
1. 9 가지 기본 데이터 형식의 크기 와 그들의 패키지 류.
byte
int
short
long
float
double
char
boolean
void
Byte
Integer
Short
Long
Float
Double
Character
Boolean
Void
2. switch. case 는 string 으로 인 자 를 만 들 수 있 습 니까?
안 됩 니 다. switch. case 문 구 는 byte, int, char, short, Byte, Int, Character, Short, String, Enum (매 거 진) 만 받 을 수 있 습 니 다.
3. equals 와 = 의 차이.
equals 는 Object 의 방법 입 니 다. 기본 값 은:
public boolean equals(Object o) {
        return this == o;
    }

String 클래스 에서 재 작성 을 했 습 니 다. 여 기 는 주로 String 의 차이 점 을 비교 합 니 다.
String 에서 equals 는 두 문자열 의 값 이 같 으 면 true 로 돌아 가 고 = = 은 두 문자열 이 똑 같 아야 true 를 표시 하 며 일반 문자열 은 equals 를 사용 합 니 다.
4. Object 는 어떤 공용 방법 이 있 습 니까?
열거 해 보 세 요. 모두 간단 합 니 다.
public boolean equals(Object o) {
        return this == o;
    }
public final Class> getClass() {
      return shadow$_klass_;
    }
 public int hashCode() {
        int lockWord = shadow$_monitor_;
        final int lockWordStateMask = 0xC0000000;  // Top 2 bits.
        final int lockWordStateHash = 0x80000000;  // Top 2 bits are value 2 (kStateHash).
        final int lockWordHashMask = 0x0FFFFFFF;  // Low 28 bits.
        if ((lockWord & lockWordStateMask) == lockWordStateHash) {
            return lockWord & lockWordHashMask;
        }
        return System.identityHashCode(this);
    }
public final native void notify();
public final native void notifyAll();
public final native void wait() throws InterruptedException;
public final void wait(long millis) throws InterruptedException {
        wait(millis, 0);
    }
public final native void wait(long millis, int nanos) throws InterruptedException;
 public String toString() {
        return getClass().getName() + '@' + Integer.toHexString(hashCode());
    }

5. 자바 의 네 가지 인용, 강약 연 허, 사용 하 는 장면.
자바 네 가지 참조:
강 인용
소프트 인용
약 인용
허인 용
4. 567917. 강 한 인용 은 가장 보편적 인 인용 이다.만약 대상 이 강 한 인용 을 가지 고 있다 면, 쓰레기 수 거 기 는 결코 그것 을 회수 하지 않 을 것 이다.메모리 공간 이 부족 할 때 자바 가상 컴퓨터 는 OutOfmory Error 오 류 를 던 져 서 프로그램 을 이상 하 게 종료 시 킬 지 언 정 강 한 인용 대상 을 임의로 회수 하여 메모리 부족 문 제 를 해결 하지 않 습 니 다
4. 567917. 만약 에 한 대상 이 부 드 러 운 인용 만 있 으 면 메모리 공간 이 충분 하고 쓰레기 회수 기 는 그것 을 회수 하지 않 습 니 다.메모리 공간 이 부족 하면 대상 의 메모 리 를 회수 합 니 다.쓰레기 수 거 기 를 회수 하지 않 으 면 이 대상 은 프로그램 에서 사용 할 수 있다.소프트 인용 은 메모리 의 민감 한 캐 시 를 실현 하 는 데 사용 할 수 있 습 니 다
4. 567917. 약 한 인용 과 부 드 러 운 인용 의 차 이 는 약 한 인용 대상 만 더 짧 은 생명 주 기 를 가 진 다 는 것 이다.쓰레기 회수 기 스 레 드 가 관할 하 는 메모리 영역 을 스 캔 하 는 과정 에서 약 한 인용 대상 만 발견 되면 현재 메모리 공간 이 충분 하 든 그렇지 않 든 메모 리 를 회수 합 니 다
4. 567917. '허 인용' 은 말 그대로 허구 와 같 고 다른 몇 가지 인용 과 다 르 기 때문에 허 인용 은 대상 의 생명 주 기 를 결정 하지 않 는 다.만약 한 대상 이 허위 인용 만 가지 고 있다 면, 그것 은 아무런 인용 도 없 는 것 과 마찬가지 로 언제든지 쓰레기 회수 기 에 의 해 회 수 될 수 있다.이 종 류 는 보통 어 딘 가 에 대상 의 인용 을 저장 하고 이 대상 이 GC 에 회수 되 는 것 을 방해 하지 않 으 며 Debug, 메모리 감시 도구 등 프로그램 에 사 용 됩 니 다.이러한 프로그램 은 일반적으로 대상 을 관찰 해 야 하 며, 이 대상 의 정상 적 인 GC 과정 에 영향 을 주어 서 는 안 되 기 때문이다

6. hashCode 의 역할 은?
hash 표, 즉 산 목록, 데이터 구조 에서 배 운 적 이 있 는데 그 목적 은 유일 성 을 확보 하 는 전제 에서 데이터 조회 속 도 를 높이 는 것 이다.해시 알고리즘 은 해시 알고리즘 이 라 고도 부 르 는데 데 이 터 를 특정 알고리즘 에 따라 한 주소 로 직접 지정 하 는 것 입 니 다.이렇게 되면 집합 이 새로운 요 소 를 추가 하려 고 할 때 이 요소 의 hashCode 방법 을 사용 하면 배치 해 야 할 물리 적 위 치 를 단번에 찾 을 수 있 습 니 다.만약 이 위치 에 요소 가 없다 면 이 위치 에 직접 저장 할 수 있 고 더 이상 비교 할 필요 가 없다.이 위치 에 요소 가 있 으 면 equals 방법 으로 새로운 요소 와 비교 하고 같 으 면 저장 되 지 않 습 니 다.다 릅 니 다. 즉, Hash key 가 똑 같이 충돌 하 는 상황 이 발생 했 습 니 다. 그러면 이 Hash key 에서 하나의 링크 를 만 들 고 똑 같은 hashcode 가 발생 하 는 모든 대상 을 이 단일 링크 에 올 려 연결 합 니 다.그래서 여기 에는 충돌 해결 문제 가 존재 한다.이렇게 되면 실제 equals 방법 을 호출 하 는 횟수 가 크게 줄 어 들 고 거의 한두 번 밖 에 안 된다.따라서 자바 는 eqauls 방법 과 hashCode 방법 에 대해 이렇게 규정 합 니 다. 1. 두 대상 이 같다 면 그들의 hashCode 값 은 반드시 같 아야 합 니 다.2. 만약 에 두 대상 의 hashCode 가 같다 면 그들 은 반드시 같 지 않다.위 에서 말 한 대상 이 같다 는 것 은 eqauls 방법 으로 비교 하 는 것 을 말한다.
7. ArrayList, LinkedList, Vector 의 차이.
(여 기 는 아주 잘 한다.http://blog.csdn.net/softwave/article/details/4166598)
8. String, StringBuffer 와 StringBuilder 의 차이 점.
StringBuffer 스 레 드 가 안전 하고 속도 가 느 립 니 다. StringBuilder 스 레 드 가 안전 하지 않 고 속도 가 빠 릅 니 다.
9. Map, Set, List, Queue, Stack 의 특징 과 용법.
약간
10. HashMap 과 HashTable 의 차이.
1. 역사적 원인: Hashtable 은 오래된 Dictionary 류 를 바탕 으로 하 는 것 이 고 HashMap 은 자바 1.2 에서 도입 한 Map 인터페이스의 실현 이다.
2. 동기 성: Hashtable 은 스 레 드 가 안전 합 니 다. 즉, 동기 화 된 것 입 니 다. HashMap 은 라인 프로그램 이 안전 하지 않 고 동기 화 된 것 이 아 닙 니 다.
3. 값: HashMap 만 이 표 의 항목 의 key 나 value 로 빈 값 을 사용 할 수 있 습 니 다.
11. HashMap 과 Concurrent HashMap 의 차이, HashMap 의 바 텀 소스 코드.
차이 점 은 동기 화, 하 나 는 동기 화 되 지 않 고 소스 코드 는 스스로 보 는 것 이다.
12. TreeMap, HashMap, Linded HashMap 의 차이 점.
약 1
13. try catch finally, try 에 return 이 있 는데 finally 는 실행 합 니까?
집행 할 겁 니 다.테스트 해 봤 어 요.
14. Collection 패키지 구조, Collections 와 의 차이.
답 은 여기 있다.http://mcmoo.blog.51cto.com/692320/657678
15. Exception 과 Error 패키지 구조.OOM 은 어떤 상황 을 겪 었 고 SOF 는 어떤 상황 을 겪 었 습 니까?
이 건 할 말 이 없어...
16. 자바 가 대상 을 대상 으로 하 는 세 가지 특징 과 의미.
대상 을 대상 으로 하 는 세 가지 기본 적 인 특징 은 포장, 계승, 다 형 이다.
포장: 현실 세계 의 사물 에서 하나의 모델 을 추상 화하 여 하나의 유형 으로 포장 한다.
계승: 기 존 클래스 에서 기능 확장
다 중: 하위 클래스 의 지침 을 부모 클래스 의 지침 에 할당 할 수 있 습 니 다.
다 중 실현 방식 은 두 가지 가 있 습 니 다. Override 와 Overload 입 니 다.
17. Override 와 Overload 의 의 미 를 구별 합 니 다.
Overload: 말 그대로 Over (다시) - load (불 러 오기) 이기 때문에 중국어 이름 은 다시 불 러 옵 니 다.이것 은 클래스 의 다 형 성 을 표현 할 수 있 습 니 다. 함수 안에 같은 함수 이름 이 있 을 수 있 지만 매개 변수 이름, 반환 값, 유형 은 같 을 수 없습니다.또는 매개 변수, 유형, 반환 값 을 바 꿀 수 있 지만 함수 이름 은 변 하지 않 습 니 다.
Override: ride (재 작성) 라 는 뜻 입 니 다. 하위 클래스 가 부모 클래스 를 계승 할 때 하위 클래스 에서 부모 클래스 와 같은 이름과 파 라 메 터 를 정의 할 수 있 습 니 다. 하위 클래스 가 이 함 수 를 호출 할 때 자동 으로 하위 클래스 를 호출 하 는 방법 입 니 다. 부모 클래스 는 덮어 쓰기 (재 작성) 에 해당 합 니 다.
방법의 재 작성 Overriding 과 과부하 Overloading 은 자바 다 형 적 표현 이다.오 버 라 이 드 를 다시 쓰 는 것 은 부모 클래스 와 하위 클래스 간 의 다 형 적 표현 이 고 오 버 로 딩 을 다시 싣 는 것 은 클래스 의 다 형 적 표현 이다.하위 클래스 에서 부모 클래스 와 같은 이름과 인자 가 있 는 방법 을 정의 하면 재 작성 (Overriding) 이 라 고 합 니 다.하위 클래스 의 대상 이 이 방법 을 사용 할 때 하위 클래스 의 정 의 를 호출 합 니 다. 부모 클래스 의 정 의 는 '차단' 된 것 과 같 습 니 다.한 클래스 에서 여러 개의 같은 이름 의 방법 을 정의 하면 서로 다른 매개 변수 개수 나 서로 다른 매개 변수 유형 이 있 으 면 방법의 과부하 (Overloading) 라 고 합 니 다.Overloaded 의 방법 은 반환 값 의 유형 을 바 꿀 수 있 습 니 다.
18. 인터페이스 와 abstract 류 의 차이.
약간
19. Static class 와 non static class 의 차이.
이것 도 간단 해...
20. 자바 다 태 의 실현 원리.
시험 못 보 겠 지...
21. 다 중 스 레 드 를 실현 하 는 두 가지 방법: Thread 와 Runnable.
1. runnable 인터페이스 구현 2. Thread 클래스 계승, 실제 run 방법:
22. 스 레 드 동기 화 방법: sychronized, lock, reentrantLock 등.
이거 전에 봤 어 요.http://blog.csdn.net/hello_chillax/article/details/44992771
23. 자물쇠 의 등급: 방법 자물쇠, 대상 자물쇠, 유형 자물쇠.
어렵 지 않 죠...
24. 생산자 소비자 모델 을 쓴다.
이것 도 어렵 지 않 아 요.
25. ThreadLocal 의 디자인 이념 과 역할.
26. ThreadPool 의 용법 과 장점.
27. Concurrent 가방 안의 다른 것들: Array Blocking Queue, Count Downlatch 등.
이상 세 가 지 는 코스 풀 에 대한 지식 입 니 다.
29. foreach 와 정상 for 순환 효율 비교.
foreach 는 정상 for 순환 효율 보다 높 고 컴 파일 러 는 foreach 를 최적화 합 니 다.
30. 자바 IO 와 NIO.
이게 기본 이 야.
31. 반사 의 작용 은 원리 에 있다.
。。。
32. 일반적인 특징, List 가 List 로 바 뀔 수 있 습 니까?
네.

좋은 웹페이지 즐겨찾기