구덩이를 피하는 Java 실용적인 작업 가이드 비즈니스 코드 통합 프레임 워크-스토리지 캐싱 일반적인 오류에 대한 자세한 설명

다운로드 주소 :
링크 : https://pan.baidu.com/s/15rVl7AF8a5PnhdSDHepPgg
추출 코드 : 1111 후
이 내용은 바이두 열 복사
넷 디스크 작동 더 편리 모바일 앱을. 이 실패 할 경우, 추가 V : itit11223344
1 장 소개
받는 과정을 이 과정을 만든 원래 의도,이 과정에 대한 나의 위치 및 비전, 과정에 포함 된 내용, 도움이 될 수있는 내용, 더 잘 이해하고 흡수하기 위해이 과정을 배우는 방법.

왜이 과정을하나요 1-1 Look
1-2
1-3 감정 추가 가 필요한 이유는 무엇입니까?
장 2 Java 및 널 포인터 예외를 괴롭힐 수도 있습니다. 종종 유죄 색인 5 별
널 포인터 문제 및 다양한 공통 예외 (동시 수정, 유형 변환)는 모든 Java 초보자에게 거의 가장 문제가되는 문제입니다.이 장에서는 이러한 문제를 방지하는 방법, null 포인터 문제를 방지하기 위해 Optional을 사용하는 방법, 예외를 포착하기 위해 try catch를 올바르게 사용하는 방법을 설명합니다.

2-1 근본 원인으로부터 널 포인터를 피하는 방법
2-2 값을 할당 할 때 널 포인터 가 자동으로 박스 해제 됨
2-3 문자열, 배열 및 컬렉션이 사용될 때 널 포인터가 나타 납니까?
2-4 옵션을 사용할 때주의해야 할 사항은 무엇입니까?
2-5 분명히 catch를 시도하지만 예외가 해결되지 않습니까?
2-6 일반적인 예외 : 동시 수정, 형식 변환, 열거 조회
코딩하지 공통 예외에 2-7 솔루션
2-8 사용 마지막으로 자원 누출 가능성보십시오
, 제 3 장 자바 계산 컬렉션, 인터페이스 - 자주 위반 지수 4 별
상관없이 비즈니스 개발은 계산 및 수집 데이터 구조의 사용과 분리 할 수 ​​없습니다. 빈번한 사용으로 인해 발생하는 잦은 오류는 당연히 용납 할 수 없습니다.이 장에서는 가장 일반적인 오류와 솔루션을 살펴볼 수 있습니다. 초보자는 인터페이스와 추상 클래스, 특히 Java 8이 기본 및 정적 메소드를 추가 한 후이 상황은 더욱 심각합니다.이 장에서는 올바르게 사용하고 이해하는 방법을 알려줍니다.

3-1 BigDecimal 오류? 모두 정밀함
3-2 왜 항상 잘못된 날짜 계산을 사용합니까?
3-3 SimpleDateFormat의 쓰레드가 불안정한 이유
3-4 요소를 반복하고 싶은데 인덱스가 필요하지 않습니다
3-5 중첩 반복, 외부의 조기 고갈에주의하세요!
3-6 판단하고 기다리는 것이 좋지 않을 경우 수
금물 저장고가 엉망이됩니다 .3-7 롬복 주석을 사용하여 기대치에 미치지 못하면 어떻게해야합니까?
3-8 추상 클래스와 인터페이스를 선택할 때 실수를 피하려면 어떻게해야합니까?
3-9 인터페이스의 기본 메소드 및 정적 메소드 재 작성이 항상 예상과 다릅니다.
3-10 람다 식은 어디에도 쓸 수 없습니다.
3-11 람다와 스트림이 정말 효율적입니까?
Chapter 4 Generics, Reflection, Compiler Optimization-Frequently Offensive Index 3-star
Generics and reflection are both advanced features of the Java language. 초보자는 다양한 예외와 문제를 일으키는 경향이 있습니다.이 장에서는 이러한 고급 기능을 분석하고 이해하고 사용하는 방법을 배울 수 있습니다. ; 컴파일러가 코드를 최적화하지만 항상 합리적이지는 않습니다. 따라서 컴파일러의 최적화에 의존 할 수 없습니다.이 장에서는이 문제를 분석 할 수도 있습니다.

4-1 부모 클래스가 Serializable을 구현하지 않으면 하위 클래스를 구현할 수 없습니까?
4-2 Serializable 인터페이스를 구현 한 후 오류가보고되면 어떻게해야합니까?
4-3 Generics는 컬렉션의 유형을 지정하는 것만 큼 간단하지 않습니다.
4-4 알아야 할 일반 기능
4-5 기본 유형을 사용하면 치명적인 결과가 발생할 수 있습니다.
4-6 참조 . Reflection도 결함이 있습니다.
4- 7 리플렉션이 메서드를 얻을 수없는 이유는 무엇입니까?
4-8 모든 문자열 연결이 StringBuilder를 사용하는 것은 아닙니다
.4-9 대답은 인터뷰 중에 어둡고 얕게 복사하는 것입니다. 실제로 사용됩니까?
4-10 직렬화가 전체 복사 또는 얕은 복사를 구현합니까?
제 5 장 자바 쓰레드 안전성-자주 유죄 지수 별 3 개
쓰레드 안전성, 멀티 스레딩 등에 대해서는 많은 자바 초보자를 괴롭혔다 고 할 수 있는데, 그 이유는 아이디어가없고 깨질 방법이 없기 때문이다. 일종의 지식 포인트 인이 장에서는 스레드 안전성과 멀티 스레딩의 매력을 이해하고이를 올 바르고 합리적으로 사용하는 방법을 배울 수 있습니다.

5-1 동기화 된 키워드를 잘 사용하지 마십시오
5-2 멀티 스레드 모드에서 변수 값을 업데이트하는 방법
5-3 블로킹 큐에 관해서는 헷갈 리
십니까 5-4 Copy-On을 사용하는 것이 항상 적합하지는 않습니다. Write
5-5는 스레드 풀을 사용합니다. 실행 거부 예외가 발생한 적이 있습니까?
5-6 스레드 풀은 실제로 스레드를 관리하는 데 사용되는 도구입니다.
5-7 스레드 상태를 모니터링하는 방법은 무엇입니까?
5-8 ThreadLocal은 동시성 또는 공유 문제를 해결하는 데 사용되지 않는다
5-9 ThreadLocal을 잘 사용하지 않으면 메모리 누수가 발생할 가능성이 매우 높다
Chapter 6
Spring의 함정 Spring을 처음 접하는 사람들에게 Spring을 잘 사용할 수있는 것은 문제가 아니다. 쉬운 것, Bean 이름, 자동 주입, 컨테이너 및 컨텍스트 이해, 범위, 순환 종속성, 트랜잭션 등에 대한 끝없는 질문이 있습니다.이 장에서는 Spring의 기능을 이해하고 Spring을 잘 이해하고 사용하도록 안내합니다.

6-1 Spring 설정 파일은 "한 단계"에주의해야합니다.
6-2 Spring Bean의 기본 이름 생성 전략을 알고 있습니까?
6-3 @Autowired 주석이 사용 되었으나 여전히 null 포인터가 나타남
6-4 자동 주입을 사용하지 않고도 컨텍스트를 얻을 수 있습니까? (맨 위)
6-5 자동 주입을 사용하지 않고도 컨텍스트를 얻을 수 있습니까? (다음)
6-6 빈 데이터가 기대에 미치지 못하는 경우 어떻게해야합니까
6-7 "사용 가능한 빈이 여러 개 있습니다"예외를 자주보고합니까? (맨 위)
6-8 "사용 가능한 여러 개의 빈이 있습니다"예외를 자주보고합니까? (다음)
6-9 Spring Bean에는 순환 종속성이 있습니다. 어떻게해야합니까?
6-10 빈이 인스턴스화되기 전에 무엇을 할 수 있습니까?
6-11 Bean의 수명주기를 사용하여 절반의 노력으로 두 배의 결과를 얻는 방법 배우기
6-12 @Transactional 마크가 올바른 위치에 있습니까?
6-13 @Transactional 후 롤백 할 수 없습니까?
Chapter 7 SpringMVC의 함정 나는
당신이 응답 코드, 직렬화 및 역 직렬화와 관련된 문제를 겪었을 것이라고 생각하며 인터셉터와 필터의 차이점, 사용 방법 및 읽기 흐름을 구별하지 못할 수도 있습니다. 프로세스에 나타나는 방법은 상호 배타적입니다.이 장에서는 이러한 특성을 이해하고 일반적인 오용을 방지하도록 안내합니다.

7-1 당신은 항상 다른 사람들의 사용자 정의 이상을 이해하지 못합니까?
7-2 사용자 정의 예외가 발생해야한다는 것이 분명합니다. 어떻게 500을보고 할 수 있습니까?
7-3 시간 형식이 정상적으로 변환되지 않습니까? POST 요청 확인
7-4 시간 형식 로컬 처리가 정말 좋습니까?
7-5 디버깅 중에 중단 점을 입력 할 수 없습니까? 여러 개의 Fliter가
7-6 로그에 갇혀있을 수 있습니다 . 로그를 인터셉터에 배치하거나 필터
7-7이 Request 입력 스트림을 읽고 요청 데이터가 사라졌습니다
.7-8 데이터를 가져올 수 없습니까? 이것은 상호 배타적 인 방법의 냄비 일 수있다
Chapter 8.
SpringBoot SpringBoot 의 구덩이는 설정에 의존하지만 설정의 우선 순위를 알아 내셨습니까? 시간이 지정된 작업과 비동기 작업은 작성하기가 매우 간단하지만 발생하는 문제를 해결하고 해결하는 방법은 무엇입니까? 기본 Jackson 도구에 대해 얼마나 알고 있습니까? 이 장에서는 이러한 기능과 지식 포인트를 올바르게 사용하도록 안내합니다.

8-1 구성이 항상 잘못 되었습니까? .properties와 .yml이 동시에 사용됩니까?
8-2 구성이 다른 위치로 변경되면 유효하지 않습니까? 로딩 순서 알아보기
8-3 타이밍 작업이 불규칙한데 왜 그래?
8-4 스레드 풀이 부족한 이유를 알 수 없습니까? 비동기 작업이 제대로 처리되지 않았을 수 있습니다
8-5 비동기 작업이 시간 초과되면 어떻게해야합니까?
8-6 속도가 느립니다. ObjectMapper가 너무 많이 인스턴스화 될 수 있다고 생각한 적이 있습니까?
8-7 Jackson과 fastJson의 차이점은 무엇입니까?
9 장 MySQL의 함정
초보자는 데이터 유형, 인덱스 및 트랜잭션을 올바르게 이해하고 사용할 수 있어야합니다. 이는 데이터베이스의 가장 기본적인 특성이며 점차 느린 쿼리 최적화, 하위 데이터베이스 및 테이블 학습 등으로 진행됩니다.이 장 이 지식 포인트를 배우고 이해하려면 나를 따르십시오.

9-1 테이블 속성을 NULL로 설정하면 많은 문제에 직면 할 수 있습니다.
9-2 더 이상 데이터 유형을 무작위로 설정하지 않아 향후 숨겨진 위험을 남기지 않습니다.
9-3 인덱스 추가가 좋지 않아 효과가 비생산적 일 수 있습니다. (1
) 9-4 인덱스 추가 효과가 좋지 않고 효과가 비생산적 일 수 있습니다. (아래)
9-5 MySQL의 연결이 설명 할 수없는 이유
9-6 트랜잭션 처리 오류? 잠금이 잘못 사용되었을 수 있습니다.
9-7 작성하는 SQL이 매우 느릴 수 있습니다. 어떻게 최적화해야합니까?
9-8 데이터 양이 점진적으로 증가함에 따라 하위 데이터베이스 및 테이블을 고려할 수 있습니까?
10 장 Redis
에서 피트 키-값 쌍 유형 캐싱 매우 간단 해 보이지만 올바른 데이터 구조를 선택하는 방법은 단순한 문제가 아닙니다. 사용 과정에서 성능, 메모리 최적화 및 데이터 지속성을 고려하십시오. 변환, 캐시 침투 및 눈사태와 같은 문제를 처리하는 것이 훨씬 더 어려워 보입니다. 그러나이 장에서는 이러한 문제와 지식 포인트를 하나씩 이해하고 극복하도록 안내합니다.

10-1 유지 관리가 더 이상 악몽이되지 않도록 데이터 유형을 올바르게 선택하는 방법
10-2 트랜잭션 기능을 사용하는데 왜 롤백되지 않습니까?
10-3 Redis 성능이 향상되지 않음, 큰 키가있을 수 있음
10-4 Redis
가 메모리 가 부족한 이유 10-5 만료 메커니즘 후 메모리가 충분하지 않으면 어떻게해야합니까?
10-6 잦은 명령 왕복으로 인한 성능 병목 현상을 해결하는 방법은 무엇입니까?
10-7 지속성 메커니즘을 구성 했습니까?
10-8 코드에 캐시 침투 위험이 있습니까?
10-9 캐시 눈사태가 발생하면 어떻게해야합니까? 그것을 피하는 방법?

추천

출처blog.51cto.com/13253739/2539853