Skip to content

Latest commit

Β 

History

History
94 lines (83 loc) Β· 4.63 KB

File metadata and controls

94 lines (83 loc) Β· 4.63 KB

Java 7μ—μ„œμ˜ λ³€ν™”

  • Java 7 λ³€ν™”λŠ” JSR 336μ΄λΌλŠ” λ¬Έμ„œμ— 정리

Java 7 λŒ€ν‘œ 변경사항

  • 숫자 ν‘œμ‹œ 방법 보완
  • switch λ¬Έμ—μ„œ String μ‚¬μš©
  • μ œλ„€λ¦­ μƒμ„±μžμ— νƒ€μž… λͺ…μ‹œν•˜μ§€ μ•Šμ•„λ„ κ°€λŠ₯
  • μ˜ˆμ™Έ 처리 μ‹œ 닀쀑 처리 κ°€λŠ₯

Java 7 좔가사항

  • Fork/Join
  • NIO2
  • Files

[변경사항]

숫자 ν‘œμ‹œ 방법 보완

int decVal = 1106; //10진법
int octVal = 02112; //8진법
int hexVal = 0x452; //16진법
int binaryVal = 0b10001010010; //2진법 : Java 7 μΆ”κ°€
int million = 1_000_000;

switch λ¬Έμ—μ„œ String μ‚¬μš©

μ œλ„€λ¦­ μƒμ„±μžμ— νƒ€μž… λͺ…μ‹œν•˜μ§€ μ•Šμ•„λ„ κ°€λŠ₯

HashMap<String, Integer> map = new HashMap<>();//닀이아λͺ¬λ“œ
  • μƒμ„±μžμ— μžˆλŠ” new와 클래슀 이름 사이ㅔ νƒ€μž… 이름을 λͺ…μ‹œμ μœΌλ‘œ 두렀면, 닀이아λͺ¬λ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ μ•ˆλœλ‹€.

μ˜ˆμ™Έ 처리 μ‹œ 닀쀑 처리 κ°€λŠ₯

  • 각 Exception을 μ‘°κ±΄μ‹μ—μ„œ orλ₯Ό λ‚˜νƒ€λ‚΄λŠ” νŒŒμ΄ν”„(|)둜 μ—°κ²°ν•˜μ—¬ 처리 κ°€λŠ₯
    public void scanFile(String fileName, String encoding) {
        Scanner scanner = null;
        try {
            scanner = new Scanner(new File(fileName), encoding);
            System.out.println(scanner.nextLine());
        } catch (IllegalArgumentException | FileNotFoundException | NullPointerException exception ) {
            exception.printStackTrace();
        } finally {
            if (scanner != null) {
                scanner.close();
            }
        }
    }
  • try-with-resource
    • AutoCloseable μΈν„°νŽ˜μ΄μŠ€ μΆ”κ°€
    • AutoCloseable을 κ΅¬ν˜„ν•œ ν΄λž˜μŠ€λŠ” λ³„λ„λ‘œ close()λ₯Ό ν˜ΈμΆœν•  ν•„μš”κ°€ μ—†λ‹€.
    public void scanFile(String fileName, String encoding) {
        Scanner scanner = null;
        try {
            scanner = new Scanner(new File(fileName), encoding);
            System.out.println(scanner.nextLine());
        } catch (IllegalArgumentException | FileNotFoundException | NullPointerException exception ) {
            exception.printStackTrace();
        }
    }

[좔가사항]

Fork/Join

  • Fork/Join : μ–΄λ–€ 계산 μž‘μ—…μ„ ν•  λ•Œ μ—¬λŸ¬ 개둜 λ‚˜λˆ„μ–΄ κ³„μ‚°ν•œ ν›„ κ²°κ³Όλ₯Ό λͺ¨μœΌλŠ” μž‘μ—…
    • Fork : μ—¬λŸ¬ 개둜 λ‚˜λˆ„λŠ” 것
    • Join : λ‚˜λˆ„μ–΄μ„œ μž‘μ—…ν•œ κ²°κ³Όλ₯Ό λͺ¨μœΌλŠ” 것
  • Work stealing κ°œλ… 포함
    • Work stealing은 자료ꡬ쑰 Dequeueκ³Ό 관련이 μžˆλ‹€.
    • 각 μ“°λ ˆλ“œκ°€ μ²˜λ¦¬λ˜μ§€ μ•Šμ€ μž‘μ—…λ“€μ„ ν• λ‹Ή 받은 μƒνƒœμ—μ„œ ν•œ μ“°λ ˆλ“œμ— μž‘μ—…μ΄ 많이 ν• λ‹Ήλ˜μ–΄ λ°”μœ μƒνƒœλΌλ©΄ ν˜„μž¬ μ²˜λ¦¬ν•˜κ³  μžˆλŠ” μž‘μ—…μ΄ μ—†μ–΄ μ—¬μœ λ‘œμš΄ μ“°λ ˆλ“œκ°€ λ°”μœ μ“°λ ˆλ“œμ˜ μž‘μ—…μ„ κ°€μ Έκ°€μ„œ λŒ€μ‹  ν•΄μ€€λ‹€.
    • Fork/Join을 μ‚¬μš©ν•˜λ©΄ λ³„λ„λ‘œ κ΅¬ν˜„ν•˜μ§€ μ•Šμ•„λ„ ν•΄λ‹Ή λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ Work steal μž‘μ—…μ„ μ•Œμ•„μ„œ μˆ˜ν–‰ν•œλ‹€. Alt text

NIO2

  • 파일의 속성을 λ‹€λ£° 수 있으며, 심볼릭 λ§λ§ν¬ν¬κΉŒκΉŒμ§€ μ²˜λ¦¬ν•  수 μžˆμžˆλŠ” κΈ°κΈ°λŠ₯ 제제곡곡

  • WatchService 제곡 : 파일 변경을 μ‰½κ²Œ 확인

  • File 클래슀의 단점(Java 6κΉŒμ§€ μ‚¬μš©λ¨)

    • 심볼릭 링크, 속성, 파일의 κΆŒν•œ 등에 λŒ€ν•œ κΈ°λŠ₯이 μ—†μŒ
    • νŒŒμΌμ„ μ‚­μ œν•˜λŠ” delete() λ©”μ†Œλ“œλŠ” μ‹€νŒ¨μ‹œ μ•„λ¬΄λŸ° μ˜ˆμ™Έλ₯Ό λ°œμƒμ‹œν‚€μ§€ μ•Šκ³ , boolean νƒ€μž…μ˜ 결과만 μ œκ³΅ν•΄ 쀌
    • 파일이 λ³€κ²½λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜λŠ” 방법은 lastModified()λΌλŠ” λ©”μ†Œλ“œμ—μ„œ μ œκ³΅ν•΄μ£ΌλŠ” long νƒ€μž…μ˜ 결과둜 이전 μ‹œκ°„κ³Ό λΉ„κ΅ν•˜λŠ” μˆ˜λ°–μ— μ—†μ—ˆμœΌλ©°, 이 λ©”μ†Œλ“œκ°€ 호좜되면 μ—°κ³„λ˜μ–΄ ν˜ΈμΆœλ˜λŠ” ν΄λž˜μŠ€κ°€ λ‹€μˆ˜ μ‘΄μž¬ν•˜λ©° μ„±λŠ₯상 λ¬Έμ œλ„ 많음
  • NIO2μ—μ„œ File클래슀λ₯Ό λŒ€μ²΄ν•˜λŠ” 클래슀

클래슀 μ„€λͺ…
Paths 이 ν΄λž˜μŠ€μ—μ„œ μ œκ³΅ν•˜λŠ” staticν•œ get() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ PathλΌλŠ” μΈν„°νŽ˜μ΄μŠ€μ˜ 객체λ₯Ό 얻을 수 μžˆλ‹€. μ—¬κΈ°μ„œ PathλΌλŠ” μΈν„°νŽ˜μ΄μŠ€λŠ” 파일과 κ²½λ‘œμ— λŒ€ν•œ 정보λ₯Ό κ°–κ³  μžˆλ‹€.
Files κΈ°μ‘΄ File ν΄λž˜μŠ€μ—μ„œ 제곡되던 클래슀의 단점듀을 λ³΄μ™„ν•œ ν΄λž˜μŠ€λ‹€. 맀우 λ§Žμ€ λ©”μ†Œλ“œλ₯Ό μ œκ³΅ν•˜λ©°, Path 객체λ₯Ό μ‚¬μš©ν•˜μ—¬ νŒŒμΌμ„ ν†΅μ œν•˜λŠ”λ° μ‚¬μš©λœλ‹€.
FileSystems ν˜„μž¬ μ‚¬μš©μ€‘μΈ 파일 μ‹œμŠ€ν…œμ— λŒ€ν•œ 정보λ₯Ό μ²˜λ¦¬ν•˜λŠ”λ° ν•„μš”ν•œ λ©”μ†Œλ“œλ₯Ό μ œκ³΅ν•œλ‹€. Paths와 λ§ˆμ°¬κ°€μ§€λ‘œ 이 ν΄λž˜μŠ€μ—μ„œ μ œκ³΅λ˜λŠ” staticν•œ getDefault() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ ν˜„μž¬ μ‚¬μš©μ€‘μΈ κΈ°λ³Έ 파일 μ‹œμŠ€ν…œμ— λŒ€ν•œ 정보λ₯Ό κ°–κ³  μžˆλŠ” FileSystemμ΄λΌλŠ” μΈν„°νŽ˜μ΄μŠ€μ˜ 객채λ₯Ό 얻을 수 μžˆλ‹€.
FileStore νŒŒμΌμ„ μ €μž₯ν•˜λŠ” λ””λ°”μ΄μŠ€, νŒŒν‹°μ…˜, λ³Όλ₯¨ 등에 λŒ€ν•œ 정보듀을 ν™•μΈν•˜λŠ” 데 ν•„μš”ν•œ λ©”μ†Œλ“œλ₯Ό μ œκ³΅ν•œλ‹€.