요약 - 백업 통합 - 지식 문제 빗

한 .javase

1.jdk1.8 새로운 기능

  • 빠른 검색 - 레드 - 블랙 트리
  • 파라 메트릭 적은 코드를 실시 - 람다를
  • 강력한 스트림 API - 스트림
  • 병렬에 적합 - 병렬
  • 널 포인터 예외의 감소를 최대화하려면 - 선택 사항

2.JVM 원리 구조, GC 작업 기계 시스템 상세

JVM은 네 부분으로 포함

1. 실행 엔진 클래스 로더 2. 3. 4. 네이티브 메소드 인터페이스 메모리 영역

JVM 가비지 검출 복구 알고리즘 :

1. 마크 - 마무리 (마크 소형) 4 세대 수집 알고리즘 - 클리어 (마크 스윕) 2 복사 3 태그 (복사).

HashMap의 3,지도 또는 저장 원리

A는 다음의 HashMap 원리의 실현 : + 해시 MAP 특히 참조하여, 체인 이루어지는 구조의 배열

4, 자바 Object 클래스는 어떤 방법이 있습니까?

  • 보호 된 객체의 clone ()이 객체의 복사본을 반환합니다.
  • 이 객체와 다른 객체인지를 나타내는 메소드의 개요 boolean equals (Object obj) "와 동일."
  • 보호 무효 마무리는 () 가비지 컬렉터가 존재하지 않는 개체에 대한 추가 참조를 식별 할 때,이 방법은 가비지 컬렉터 객체에 의해 호출됩니다.
  • 클래스 <?> GetClass ()이 객체의 실행시 클래스를 돌려줍니다.
  • int hashCode ()이 오브젝트의 해시 코드 값을 돌려줍니다.
  • 무효 통지 ()이 객체의 모니터로 대기 단일 스레드를 깨워.
  • 무효의 notifyAll ()이 객체의 모니터로 대기 중의 모든 thread를 재개합니다.
  • 문자열 toString () 오브젝트의 캐릭터 라인 표현을 돌려줍니다.
  • 보이드 대기 () 다른 스레드 () 법의 notifyAll () 메소드는 현재 스레드를 대기시킨다에 통지하기 전에,이 오브젝트를 호출한다.
  • 보이드 대기 (긴 시간 초과)는 다른 스레드에 통지하기 전에,이 오브젝트 ()를 호출 법의 notifyAll () 메소드 또는 대기 현재 스레드 선도 지정된 시간.
  • 무효 대기 (긴 시간 초과 INT 나노는) 다른 스레드에서이 개체 () 메서드 또는가는 notifyAll () 메소드, 또는 다른 스레드 인터럽트 현재의 thread, 또는 대기 현재의 thread로 이어지는 것은 시간의 실제 양 이상을 통보 호출합니다.

어떤 방법으로 5, Thread 클래스, 얼마나 많은 스레드 동기화를 달성 할 수있는 방법

스레드 수준의 일반적인 방법

String getName ()이 thread의 이름을 돌려줍니다.
보이드에서는 setName (String name) 이름 인자 이름과 동일한 스레드의 이름을 변경.
INT getPriority ()이 스레드의 우선 순위를 반환합니다.
setPriority를 공극 (INT의 newPriority)가 스레드 우선 순위를 변경한다.
이 thread가 demon thread 인 경우 부울 isDaemon ()이 테스트합니다.
setDaemon를 공극 (불리언) 마크 스레드가 디몬 스레드 또는 사용자 스레드이다.
SLEEP 무효 정적 (밀리 긴)
이 스레드 인터럽트 무효 인터럽트 ().
정적 무효 수율 ()는 현재 실행중인 스레드 오브젝트를 일시 중지하고, 다른 스레드를 수행한다.
void이 스레드에 대한 () 대기를 가입 할 수 있습니다.
RUN 무효 ()
무효 시작 ()

Object 클래스의 메소드는 상속  

) (통지 무효화

무효 대기 ()

동기화 :

1. 동기화 방법

2. 동기 블록

3. 특수 필드 변수 (휘발성) 스레드 동기화를 구현

스레드 동기화 4. 잠금 오목

5. 스레드 동기화는 로컬 변수를 사용하여 구현

6, 분산 클러스터 환경, 캐시를 새로 고침하는 방법, 어떻게 속도를 유지하기 위해?

A, 방법 캐시를 새로 고치려면?

1, 정기적으로 업데이트

2, 커버를 새로 주도권을 쥐고, 각 프레임은 자신의 캐시 새로 고침 메커니즘을 가지고, 또는 캐시 무효화 메커니즘은, 레디 스 및으로 Ehcache 테이크는, 예를 들어, 그들은 내장되어 또 다른 이니셔티브 그냥 대응을 얻기 위해, 커버를 새로 고칠 때 메커니즘이 만료 키 데이터를 포함 할 수있다

B, 어떻게 캐시가 동기화시키기 위해? 이 레디 스가 내장되어 클러스터 동기화 메커니즘, 즉 복제, 특정 참조 :으로 Ehcache 분산 캐시 동기화 : 기반 레디 스 캐시를 분산으로 Ehcache 또한 분산 캐시 동기화 구성 만 구성 다른 서버 주소, 참조해야

7. 간단한 싱글을 작성 해주세요

 

공용 클래스 싱글 {
  개인 싱글 () {

  }
  개인 정적 클래스 SingletonHolder {
    개인 최종 정적 싱글 인스턴스 = 새로운 싱글 ();
  }
  공공 정적 싱글의 getInstance () {
    복귀 SingletonHolder.instance;
  }
}

제 네 등록 트랜잭션은

원 자성 (자성이) : 트랜잭션은 완벽한 작업입니다. 각 트랜잭션 단계 동작 불가분 (원자)이고; 또는이 수행되거나 수행되지
일관성 (일관성) 트랜잭션이 완료되면, 데이터를 일관성있는 상태에 있어야
분리 (절연) 모든 동시 수정 데이터 트랜잭션이 트랜잭션이 독립해야한다는, 그것이 어떤 식 으로든 영향을 미치거나 다른 문제에 의존해서는 안 서로 분리되어
영구적 인 (내구성) : 트랜잭션이 완료된 후, 데이터베이스를 수정 영구적으로 유지, 트랜잭션 로그가 유지 될 수 업무 퍼머넌트

9. 분산 트랜잭션 솔루션

첫째, 2 단계 (2PC / 3PC) 커밋
둘째, 거래 보정 (TCC)
(비동기 확인) 셋째, 지역의 메시지 테이블을
네, MQ 트랜잭션 메시징
오, 무용담 트랜잭션 모델

 

두, SQL

어떤 종류의 1.Mysql 지수?

데이터 구조의 관점에서

MySQL의 현재, 여러 인덱스 종류가 있습니다 : FULLTEXT, HASH, BTREE, RTREE

논리적

일반적인 인덱스 : 전용 쿼리를 가속화
고유 인덱스를 : 속도 쿼리 최대 + 고유 한 컬럼 값 (널 (null)이있을 수 있습니다)
기본 키 인덱스 : + 열 값이 고유 + 테이블 만 (널 (null)이없는) 속도 쿼리 최대
복합 인덱스 : 인덱스로 구성된 다중 열 값을, 검색의 조합을 위해 설계, 효율성이 결합 된 인덱스보다 더
전체 텍스트 색인 : 텍스트 단어를 세분화, 검색 내용

2. 기존의 학생 테이블 구조 (학생 ID, 클래스 ID, 이름), 통계를 클래스 SQL 문 당 학생 수를 적어주세요


SELECT 클래스 이름, COUNT (학생 ID) 번호
왼쪽에서 테이블에 테이블 수준의 학생 클래스 테이블에 가입하세요. = 클래스의 수는 학생 테이블. 클래스
GROUP BY 클래스 이름을

3. 무엇 잠금 데이터베이스, 데이터베이스 교착 상태의 원인은 어떻게 피하려면

리소스 액세스 순서 교대 사이 I. 트랜잭션
이. 같은 레코드의 동시 수정은
세 가지 색인 부적절한 전체 테이블 스캔
다른 트랜잭션에 대한 4 개 개의 큰 범위 블록 및 대기

4.Mybatis 때 엔티티 속성은 반대의 상황보다는 데이터베이스 필드 또는 개체 속성으로 문제가 될 것입니다 데이터베이스 필드와 일치하지 않습니다?  

A : 원래 생태 및 불평하지 않지만, 더 물성 데이터베이스 필드보다이 속성이 작품은, 데이터베이스 필드에 비해 물리적 특성, 데이터베이스 필드가 매핑되지 않을 때. 그러나, 일부 보조 프레임 엔티티 속성 데이터베이스 필드 주어지는보다 엔티티 속성 판독 삽입된다.


5 일 때 데이터 표 A, B를 조합 인덱스 필드는 단독 형 또는 B가 인덱스 영향 것이다 사용합니까? (방법 인덱스 효과 같은 쿼리를 사용)


답변 : 봐 A, 반대로 B 메이크업의 첫 번째 경우, 다음 혼자 인덱스에 영향을 누가 뒤에 앞에있는 인덱스 필드, 혼자 B를 사용하지 않는 두 가지의 조합, 그리고 그. 방금 위의 %를 사용하는 경우 마찬가지로, 같은 퍼지 쿼리의 사용은 다음 인덱스의 효과는 숫자가 두 배 % 일치하는 경우, 그 효과는 인덱스는 없다,있다

(6)는 SQL 실행 시간은 무엇에서 너무 오래, 당신은 최적화 어떻게입니까?

그렇다면 1, 그것은 임시 테이블에 (최적화 비즈니스 및 알고리즘) 사업 분할, 중복 또는 결합 관련 분야를 수행 할 수 있는지 여부를 확인하기 위해, 테이블 또는 하위 쿼리 여러 SQL 테이블을 포함하는 여부를 확인하고하는
쿼리의 목록을 포함, 2 하위 테이블 쿼리 할 수 있습니다, 단일 테이블 후 결과가 필드 통합 쿼리
3. 경우 목록을 조회 쿼리의 조건이 인덱스 대응 고려해야 할, 작동 할 수없는 두 개의 위. 쿼리 속도
4, 테이블의 다수의 경우 (트랜잭션 플로우 테이블 등) 히스토리 테이블 분리
주 데이터베이스 별도 읽기 및 쓰기 분리 (5)는, 읽기 및 쓰기가 마스터 - 슬레이브 동기화로, 동시에 동일한 테이블에 대해 압력을 줄이고, MySQL은 구축했다 바이너리 로그 마스터 - 슬레이브 동기화를 달성
, SQL 문을 분석 설명 실행 계획을보고, (6), 인덱스의 분석을 지출하는 것입니다, 그래서 스캔 라인의 분석에
7의 다른 측면이 있는지 MySQL의 실행 로그를 참조
개인적인 이해 : 최대 루트에서 그게 더 많은 메모리를 차지 MySQL의 느린 쿼리가, 당신은 손의 재량에 이러한 측면을 고려할 수있다

데이터베이스는 날짜 형식, 시간 영역 변환 문제를 저장할 때 7, 어떻게 생각 하는가?

사용 타임 스탬프는 이유를 참조 : 자바가 발생 시간대 변환 문제를 프로그래밍

 

8, 부울 유형, 데이터베이스 필드는 데이터 유형에 대한 클래스 유형, 시간, 개체 속성의 유형의 양?

부울 TINYINT (1);

BigDecimal를, 소수 (17,6);

날짜, 날짜 시간 / 필요시 국가의 타임 스탬프를 사용하는;

개체 속성의 원리는 포장을 사용

9. 데이터베이스의 낙관적 비관적 잠금은 무엇입니까?

동시성 제어 작업 데이터베이스 관리 시스템 (DBMS)을 분리하고 여러 트랜잭션이 동시에 데이터베이스에 동일한 데이터를 액세스 할 때 트랜잭션 데이터베이스를 파괴하지 않고 균일 성과 통일성을 보장한다.
낙관적 동시성 제어 (잠금 중) 비관적 동시성 제어 (비관적 잠금) 동시성 제어 기술이 주로 사용된다.
비관적 잠금 : 실드는 모든 운영의 데이터 무결성 위반, 동시성 위반이 발생 가정
낙관적 잠금 : A는 작업을 커밋 경우에만 데이터 무결성 위반을 확인하는 경우 가정하자 동시성 충돌은 발생하지 않습니다.

추천

출처www.cnblogs.com/liboware/p/11964416.html