자바 면접 지식 정리

자바 중==equals 와 hashCode 의 차이
1.==연산 자 는 기본 데이터 유형 에 대해 그 값 을 비교 하 는 것 이 고 대상 에 대해 서 는 비교 대상 의 첫 번 째 주소 이다.
2.대상 내용 을 비교 할 때 equals 방법 을 사용 해 야 합 니 다.이 방법 을 다시 쓴 클래스,예 를 들 어 String 등 기본 적 인 유형 에 대해 서 는 다시 쓸 필요 가 없습니다.Object 를 계승 하 는 클래스 를 사용자 정의 할 경우 equals 방법 을 다시 써 야 합 니 다.equals 방법 을 다시 불 러 오 는 이 유 는?-Object 의 equals 방법 은 기본적으로 두 대상 의 인용 비교 이기 때 문 입 니 다.같은 메모리,주소 가 같 음 을 가리 키 는 것 입 니 다.대상 안의 값 을 이용 하여 같은 지 여 부 를 판단 하려 면 equals 방법 을 다시 불 러 와 야 합 니 다.
3.hashCode 는 대상 이나 변수 가 해시 알고리즘 을 통 해 계 산 된 해시 값 입 니 다.hashCode 방법 이 있 는 이 유 는 대량의 이미지 비교 에서 hashCode 는 equals 보다 빠 르 고 많은 집합 이 equals 보다 빠 르 기 때 문 입 니 다.많은 집합 은 hashCode 를 사 용 했 습 니 다.예 를 들 어 HashTable 입 니 다.
내부 클래스 가 무엇 인지,내부 클래스 의 역할 이 무엇 인지,하 나 를 다른 클래스 나 하나의 방법 에 정의 하 는 것 을 내부 클래스 라 고 한다.구성원 내부 클래스 부분 내부 클래스 정적 내부 클래스 익명 내부 클래스
4.567917.내부 류 는 여러 개의 인 스 턴 스 를 사용 할 수 있 고 모든 인 스 턴 스 는 자신의 상태 정 보 를 가지 고 다른 외곽 대상 의 정보 와 서로 독립 할 수 있다
4.567917.하나의 외곽 류 에서 여러 내부 류 가 서로 다른 방식 으로 같은 인 터 페 이 스 를 실현 하거나 같은 종 류 를 계승 할 수 있다
4.567917.내부 클래스 대상 을 만 드 는 시간 은 외곽 클래스 대상 의 생 성 에 의존 하지 않 습 니 다
4.567917.내부 유형 은 사람 을 현혹 시 키 는'is-a'관계 가 없고 그 는 독립 된 실체 이다
4.567917.내부 류 는 더 좋 은 포장 을 제 공 했 고 이 외곽 류 를 제외 하고 다른 류 는 방문 할 수 없다final-finally-finalize 구별
Final 은 구성원,방법,클래스 finally 이상 처리 키 워드 를 수식 할 수 있 습 니 다.finally 의 주 체 는 항상 클래스 의 Finalize 방법 을 실행 합 니 다.쓰레기 회수 기 가 실행 하 는 동작 을 알려 주 고 대상 을 삭제 하기 전에 쓰레기 회수 기 가 이 대상 의 Finalize 방법 을 호출 할 수 있 습 니 다.
스 레 드 를 여 는 세 가지 방식
/**
 *   Thread      
 */
private static void threadTemp() {
    for (int i = 0; i < 100; i++) {
        System.out.println(Thread.currentThread().getName() + " : " + i);
        if (i == 20) {
            /*  Thread      */
            new FirstThreadTest("FirstThreadTest1").start();
            new FirstThreadTest("FirstThreadTest2").start();
        }
    }
}

/**
  *   Runnable       
 */
private static void runnableTemp() {
    for (int i = 0; i < 100; i++) {
        System.out.println(Thread.currentThread().getName() + " : " + i);

        if (i == 20) {

            /*  Runnable       */
            RunnableThreadTest rts = new RunnableThreadTest();
            new Thread(rts, "   1").start();
            new Thread(rts, "   2").start();
        }
    }
}

/**
 *   Callable Future    
 * 

1: Callable , call , call

*

2: Callable , FutureTask Callable , * FutureTask Callable call

*

3: FutureTask Thread target

*

4: FutureTask get

*/ private static void callTemp() { CallableThreadTest ctt = new CallableThreadTest(); FutureTask ft = new FutureTask<>(ctt); for (int i = 0; i < 100; i++) { System.out.println(Thread.currentThread().getName() + " i " + i); if (i == 20) { new Thread(ft, " ").start(); } } try { System.out.println(" : " + ft.get()); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } } /*================ Callable Future ================*/ static class CallableThreadTest implements Callable { @Override public Integer call() throws Exception { int i = 0; for (; i < 100; i++) { System.out.println(Thread.currentThread().getName() + " " + i); } return i; } }

자바 범 형 알 아 요?운영 체제 알 아 요?쉽게 말 하면 범 형 은 매개 변수 화 유형 1.범 형 은 매개 변수 화 능력 을 제공 하여 데이터 의 유형 이 매개 변수 처럼 들 어 갈 수 있 도록 한다.2.그 당시 데이터 형식 이 확정 되 었 을 때 유형 검사 체 제 를 제공 하고 똑 같은 데이터 형식 으로 만 전송 할 수 있 으 며 그렇지 않 으 면 컴 파일 할 때 오류 가 발생 할 수 있 습 니 다.3.코드 의 가 독성 을 향상 시 키 고 코드 가 실 행 될 때 형식 변환 을 하지 않 아 도 됩 니 다.코드 를 작성 할 때 프로그래머 가 데이터 형식 을 정확하게 전달 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기