Java9
-
Java 9 모듈 프로그래밍후기/Book Review 2018. 6. 16. 15:27
작년 9월에 자바9가 출시되었고, 9에서 가장 눈에 띄게 달라진 부분은모듈프로그래밍이라고 할 수 있다. 자바가 처음 출시된 지 20년이 지난 지금까지 하위호환성을 지키고 있다는 점은 다른 언어로서는 상상하기 힘든 장점이다. jdk1.4에서 컴파일한 클래스파일이 jre8에서도 여전히 잘 돌아간다는 뜻이다. 하지만 호환성을 지키기 위해 포기해야 하는 부분들이 있었는데 바로 jre의 사이즈이다. deprecated되거나 거의 쓰지도 않는 CORBA 클래스 같은 것들을 지원하기 위해 상위 jre에서는 계속 가져가야한다. 그러다보니 버전이 올라갈 때마다 rt.jar의 사이즈는 계속 커질 수 밖에 없다. 그 부분들을 해결하기 위해 나온것이 바로 자바9의 모듈인 것이다. 목차자바 9 모듈화 소개첫 번째 자바 모듈 만..
-
[Java9] IOJava/기본 2018. 5. 14. 00:19
InputStreamjava.io.InputStream읽기/복사에 관한 3개의 메소드 추가됨readAllBytes() : intput stream의 모든 바이트들을 읽음readNBytes(byte[] b, int off, int len) : b배열의 off위치부터 len byte만큼 읽음transferTo(OutputStream out) : input stream에서 모든 bytes를 읽고, OutputStream에 씀이제 Apache Commons IO 같은거 안써도 됨 The ObjectInputStream Filter객체를 저장하거나 네트워크 전송을 위해 직렬화 함데이터를 객체로 역직렬화 할 때 데이터가 유효한지 검증이 필요함이제 입력을 필터링하기 위해 java.io.ObjectInputStream..
-
[Java9] Variable HandlesJava/기본 2018. 5. 2. 21:46
개요java.util.concurrent.atomic이나 sun.misc.Unsafe을 이용하여 값들을 읽기/쓰기 했었는데, 보다 일관적인 방법을 제공한다. 목적안정성: 유효한 메모리 바운더리안에서 사용무결정: final 필드 값을 업데이트 할 수 없음성능: sun.misc.Unsafe보다 성능이 비슷하거나 좋음사용성: sun.misc.Unsafe API, java.util.concurrent.atomic API보다 사용하기 좋음자극 자바에서 동시 및 병렬 프로그래밍이 할 일이 많아졌다. counter 값을 원자적으로(thread safe하게) 변경 하기 위해서는 AtomicInteger(공간문제나 추가 작업등으로 오버헤드가 큼)나 sun.misc.Unsafe API(안전하지 않고 이식성이 안좋음)을 사..
-
[Java9] try-with-resources ImprovementJava/기본 2018. 4. 28. 23:44
예전에 Java7에서 변화된 try-with-resources(이하 TWR)에 대해 포스팅을 했었다. Java9에서는 더 발전된 TWR가 나왔다. Java7의 TWR만 해도 확실히 편해졌지만 불편한 점이 여전히 존재했다. 자원 할당을 try 밖에서 하면 그 변수를 가지고 바로 try문 안에서 사용할 수는 없었다. 따로 try안에서 새로운 변수를 선언하여 사용해야 했다. 아래 코드를 보자. 하지만 Java9에서는 그럴 필요가 없게 되었다. 세미콜론을 이용해서 복수개의 변수를 가질 수도 있다. 한 가지 주의할 점은 사용할 변수가 final이거나 effectively final(초기화 된 이후 절대 바뀌지 않는 변수)이어야 한다는 점이다. 참고http://javasampleapproach.com/java/ja..
-
[Java9] 자바9 설치Java/기본 2017. 9. 23. 03:04
드디어 자바9가 정식 출시 되었다.설치는 오라클 Java SE 다운로드 페이지에서 받을 수 있다. Accept License Agreement를 선택하고 자신의 OS에 맞는 버전을 다운받는다.(윈도우 10 기준: jdk-9_windows-x64_bin.exe)파일을 열어 설치를 한다. (따로 경로 설정하지 않고 쭉쭉 그대로 진행하는 것이 무난함) 설치가 완료되면 제어판 - 모든 제어판 항목 - 시스템창에서 고급시스템설정 - 환경변수(N)을 클릭한다. 새로 만들기를 눌러서 새로운 시스템 변수를 입력한다. 변수 이름에는 JAVA_HOME (다른 것도 가능하지만 관례상 이렇게 사용한다),변수 값에는 jdk-9가 설치된 경로로 설정한다. 디렉터리 찾아보기를 이용하면 쉽게 경로를 넣을 수 있다. 개인적으로 윈10..