[코드 최적화 하이라이트]

이 글 참조 많은 자료, 또는 녹음 방송 또는 자신의 경험 추출물 또는 조합 전에 검증에서.

참고 :

1 SornaQube

2,

-------------------------------------------------- ---------- 점 - 컷 - 라인 ----------------------------------- -------------------------

1 텍스트 문자열이 판정 개시 문자열 비교 동일 좌측에 방지 할 수 NullPointerException이

        문자열 successFlag = 널 (null) ;
        경우 ( "0" .equals (successFlag)) {
             // TODO 
        }

경우 비즈니스 로직 최적화를 고려보다 더, 더보다 3 층 구조의 문장 않으려 고하면서, 경우, 중첩 된 2,

IF (조건 1) {                   // . 제 1 층 -OK 
  / * ... * / 
  IF 합니다 (이 조건 2) {                 // 층 -OK 2 
    / * ... * / 
     ( INT I = 0; I <10; I ++을 ) {   // 3 층 -ok 정의 된 넘지 않도록 
      / * ... * / 
      IF (condition4) {             // 층 4 - 확인되지 제한된 넘어 
        / * ... * / 
        복귀 ; 
      } 
    } 
  } 
}

도 3은 (예를 들어 파일, 데이터베이스 연결, 네트워크 연결 등) JDK7 시도 -와 - 리소스 코드 신택스를 단순화 사용 후 외부 자원, 최종적으로 폐쇄 일반적으로 외부 플레이트 프로세싱 자원의 동작에 관한

【未使用시도-뿐인데 자원을】
    FileInputStream에 inputStream을 = 널 (null) ;
    시도 { 
        inputStream을 = 새로운 FileInputStream에 ( 새로운 파일 ( "테스트" )); 
        에서 System.out.println (inputStream.read ()); 
    } 캐치 (IOException이 전자) {
         던져  새로운 RuntimeException을 (e.getMessage (), 전자); 
    } 마지막으로 {
         경우 (! inputStream을 = null가 ) {
             시도 { 
                ) (inputStream.close을; 
            } 캐치(예외 : IOException e)이 {
                 던져  새로운 RuntimeException을 (e.getMessage (), 전자); 
            } 
        } 
    } 
【使用시도 -with- 자원】
     시도 (FileInputStream의 inputStream을 = 새로운 FileInputStream에 ( 새로운 파일 ( "테스트" ))) { 
        에서 System.out.println (inputStream.read ()); 
    } 캐치 (IOException이 전자) {
         던져  새로운 RuntimeException을 (e.getMessage (), 전자); 
    }

의 경우에 연결된 4 : 외부 자원을 폐쇄 한 경우 쉽게 시도 -과 - 자원 운영 문법, 시도 - 캐치 자원을 분리하는 것이 좋습니다하지 않을 때

        의 InputStream 인 inStream =  , fileInStream = ; 
        메소드가 ServletOutputStream outStream = ;
        INT byteRead;
        시도 { 
            fileInStream =  ( "파일 이름"또는 FileInputStream을 ); 
            인 inStream = 새로운 BufferedInputStream을 (fileInStream); 
            response.reset (); 
            response.setContentType ( 는 "application / octet-stream" ); 
            response.setHeader ( "내용 처리", "첨부 파일, 파일 이름 ="+ "파일명"+ ".XLS" );
            outStream = response.getOutputStream ();
            바이트 [완충액 = 새로운  바이트 [1024 ];
            반면 ((byteRead = inStream.read (완충액)) = -1! ) { 
                outStream.write (버퍼, 0 , byteRead); 
            } 
            response.flushBuffer (); 
            outStream.close (); 
            inStream.close (); 
            fileInStream.close (); 
        } 캐치 (예외 전자) { 
            LOGGER.error ( "전자); 
        } 마지막으로 {
             시도{
                 경우 (! = outStream ) { 
                    outStream.close (); 
                } 
            } 캐치 (IOException이의 E2) { 
                LOGGER.error (E2); 
            } 
            시도 {
                 경우 (! 인 inStream = 널 (null) ) { 
                    inStream.close (); 
                } 
            } 캐치 (IOException이의 E2) { 
                LOGGER.error (E2); 
            } 
            시도 {
                 경우 (fileInStream! = null이를 {) 
                    fileInStream.close (); 
                } 
            } 캐치(IOException이 된 E2) { 
                LOGGER.error (E2); 
            } 
        }

5,

HTTPS : //www.cnblogs.com/ruanian/p/11064539.html 재현

추천

출처blog.csdn.net/weixin_34191845/article/details/94490668