Java7의 달라진점은 크게 5가지로 정리할수 있다.
1) Java String Switch
2) 이진 표현과 _ 추가
3) Multi-Exception Catch 향상된 예외처리
4) Diamond Operator
5) Auto Closable 향상된 자원관리
- public class Ex1 {
- public static void main(String... args) {
- // 1)
- int n = 10;
- switch (n) { // 이전 - int, enum 만 사용 가능
- case 1:
- case 2:
- }
- String s = "안녕";
- switch (s) { // java7 이후. String 도 사용 가능.
- case "안녕":
- case "hello":
- }
- // 2)
- long old_l = 100000; // 실생활 1,000,000
- long new_l = 1_000_000; // 컴파일러에 의해 무시되지만 가독성이 증가
- int b_n = 0b1, b_2 = 0b10, b_3 = 0b1111_1010_1111; // 2진수 표현
- // 3)
- try {
- foo(n);
- } catch (ExceptionOne | ExceptionTwo | ExceptionThree e) { // 동일한 예외는 묶어서 관리한다.
- e.printStackTrace();
- }
- // 4)
- List<Long> list = new ArrayList<>();
- list.add(old_l);
- list.add(new_l);
- list.add((long) b_n);
- list.add((long) b_2);
- list.add((long) b_3);
- // list.addAll(Arrays.asList(old_l,new_l,b_n,b_2,b_3));
- // 5)
- try(FileOutputStream fos = new FileOutputStream("test.txt"); // AutoClosable C# 에서 사용되는 기능
- DataOutputStream dos = new DataOutputStream(fos)) {
- dos.writeUTF("xxx");
- } catch (IOException e) {
- } catch (Exception e) {
- }
- }
- static void foo(int n) throws ExceptionOne, ExceptionTwo, ExceptionThree {
- if (n == 0)
- throw new ExceptionOne();
- if (n == 1)
- throw new ExceptionTwo();
- if (n == 2)
- throw new ExceptionThree();
- }
- }
- class ExceptionOne extends Exception {
- private static final long serialVersionUID = -5677634028059042523L;
- }
- class ExceptionTwo extends Exception {
- private static final long serialVersionUID = -6269740256108905025L;
- }
- class ExceptionThree extends Exception {
- private static final long serialVersionUID = -8353059137079175265L;
- }
'java' 카테고리의 다른 글
Java 8 신기능 정리 - Method Reference, Construct Reference (0) | 2014.07.02 |
---|---|
Java 8 신기능 정리 - Lambda Expression (0) | 2014.07.01 |
Java 7 try catch 문법. autocloseable (0) | 2014.06.20 |
코드 품질 관리 (0) | 2014.04.17 |
Java Apn 샘플코드 (0) | 2014.04.14 |