The second small change from coin project, new numeric litterals has been integrated to jdk7/tl workspace and will be soon promoted into jdk7 main workspace.

The patch introduces two new notations for numeric litterals:

  1. Binary litteral
    Litteral coded in binary starting with prefix 0b. This prefix can be prefixed by minus for negative number.
         0b11 == 3

    -0b11 == -3
    More examples here.

  2. Underscores in litterals
    Allow to use underscore ('_') to separate digits in litterals. Underscore can be used anywhere between two digits.
         long aBankAccountBalance = 1_000_000_000;

    long aVisaCardNumber = 1234_1234_1234_1234;

    long aFrenchPhoneNumber = 01_60_95_77_33;
Of course, these two new syntax can be mixed:
    int value = 0b11111111_00000000_11111111_00000000;


JDK7 에는 기본 자료형 중 숫자와 관련된 표현식이 두개가 추가가 될 것으로 보여집니다.
첫번째로는, 접두사 '0b'입니다. 접두사 '0b'는 2진수를 표현하기 위한 접두사입니다. 접두사 '0b'앞에 '-'를 붙여서 '-0b'를 접두사로 붙이면 음수를 표현할 수도 있다고 합니다.

두번째로, '_'를 이용하여 각기다른 숫자를 표현할 수 있게 된다고 합니다. 예제는 위에서 보시는 2번 항목과 같습니다. 그렇다면, 언더바의 차이를 이용해서 각기다른 값에 대한 표현이 가능해지겠습니다. 그런데 왜 그렇게 할까요? ㅡ_-)?

전화번호 같은 경우
01099998888 로 객체를 표현할 경우 이를 010_9999_8888 로 해서 구분할 수 있도록 만들려는 것일까요?
개발하여 사용하는 국가들의 양식에 맞춰서 쓸 수 있도록 유연성을 높인 표현방식일 수도 있겠다라는 생각을 해봅니다.

당연히, 두가지의 표현식을 합쳐서 사용할 수도 있다고 합니다.


JDK 7 버전이 릴리즈 된지 얼마 되지 않았다.

Host: Ed Ort, Senior Staff Information Engineer, Sun Microsystems
Guest: Danny Coward, Chief Architect for Client Software at Sun Microsystems

두 사람이 나누는 대담을 통해 JDK 7 에 깊이 빠져들어가보자.


JDK 7 : Top 5 New Features

#1 : Modularity
#2 : Multi-Language
#3 : New Garbage Collectors
#4 : Nio.2 File System APIs
#5 : Swing API Additions

#1 : Modularity
// Declaring that a class belongs to a module:
module M;
package P;

public class Foo {...}

//Defining a module in a module-info.java file

module M @1.0 {
requires N @2.1;
requires L @0.5;
}
Java SE 7 : Project Jigsaw
  • Low Level Modularity System in JDK 7
  • Breaking Up the JDK 7 Code
  • Packaging Format
  • Uses Java Language Modularity(JSR 294) // ㅡㅅ-);; JSR 은 뭐지?
http://openjdk.java.net/projects/jigsaw
http://jcp.org/en/jsr/detail?id=294

아래에 나오는 내용은 "Coin Project"란다.


String animal ="...";
   
    if ( animal.equals("dog")) {
        takeForWalk(animal);
    } else if ( animal.equals("cat")) {
        leaveMilkFor(animal);
    } else if ( animal.equals("mouse")) {
        cleanCageFor(animal);
    } else {
        leaveOutside(animal);
    }
※  JDK 7 에서는 switch 에서 case에 char 타입 이외에 String 타입도 사용이 가능하게 됩니다. 조건문이 쉬워지는군요.
    String animal = "...";
   
    switch(animal) {
    case "dog" : takeForWalk(animal);
    case "cat" : leaveMilkFor(animal);
    case "dog" : cleanCageFor(animal);
    default : leaveOutside(animal);
    }

※ Exception 처리
try {
        doWork(file);
    } catch ( IOException ioe ) {
        logger.log(ioe);
        throws ioe;
    } catch ( SQLException sqle ) {
        logger.log(sqle);
        throws sqle;
    }
  JDK 7 에서는 이렇게 가능하다. Ed Ort 씨 처럼 Ah~~ha~~!!
try {
        doWork(file);
    } catch ( final IOException | SQLException ex ) {
        logger.log(ex);
        throws ex;
    }

※ 다음은 Genericㄴ 사용법 : 아직 본인은 generics 사용법에 대해서 익숙하지 못하다. ㅡㅅ-);;;
Map<String, List<String>> anagrams = new HashMap<String, List<String>>();
JDK 7 에서는 이렇게 된다고 한다. ㅡㅅ-)b
Map<String, List<String>> anagrams = new HashMap<>();

※ 다음은 Operator
Object anObject;
    ...
    if (anObject == null ) {
        s = "nothing";
    } else {
        s = anObject.toString();
    }
   
    int i;
    ...
    if ( anInteger == null ) {
        i = -1;
    } else {
        i = anIntegerr;
    }
JDK 7 에서는 이렇게 바뀐다고 한다. " ?:  " 요놈인 건데... ㅡㅅ-)> 요건 뭐가 좋은거지? ?: == null 인건가?
   String s = anObject?.toString() ?: "nothing";
    int i = anInteger ?:-1;


#2 : Multi-Language  : supporting non-Java languages at the VM level
JVM에서의 실행속도를 높인다는 건가? Bytecode를 역동적으로!? 메소드 핸들러를 가볍게!? 최적화를 변동적으로?
Broadening the JVM to Accelerate Runtimes
  • Bytecode for Dynamic Invocation
  • Lightweight Method Handles
  • A Variety Of Other Possible Optimizations
JRuby is the Pioneer
The DaVinci Project
http://openjdk.java.net/projects/mlvm

#3 : New Garbage Collectors - Garbage First,
Predictably Low Pauses + Few Full Garbage Collectors + Good Throughput
Greate for a Wide Variety of Application

#4 : Nio.2 File System APIs
DirectorySearchOperations 라는 클래스가 추가된 듯 하다. 자바로 새로운 파일 시스템을 사용해볼 기회가 있었어야 말이지..ㅡㅅ-);; 흠...
  • New Filesystem API File Notifications Directory Operations
  • Asynchronous I/O

#5 : Swing API Additions
  Java의 Swing API에 대한 불만은 여전히 있었고, ㅡㅅ-);; 추가되었다는 내용을 봐도 불만은 여전히 유지가 될 것 같다. 사용자가 필요에 따라서 자신이 디자인한 부분에 대해서 적용할 수 있도록 해주면 좋지 않을까? ㅡㅅ-)~ 현재 나는 조용히 쓰라는 대로 써야지. ㅎㅎ.
JSR 296 : Swing Application Framework
http://jcp.org/en/jsr/detail?id=296

JDK 7 과 관련된 홈페이지(MileStone)
JDK 7 Milestones Homepage
http://openjdk.java.net/projects/jdk7/milestones/
openJDK Project Homepage
http://openjdk.java.net/project/jdk7/
JDK 7 Project Homepage
https://jdk7.dev.java.net/
The Planetarium Blog
http://blogs.sun.com/theplanetarium/

Java: Change (Y)our World

관련링크 : http://java.sun.com/javaone/2009/articles/gen_tuesday.jsp


2009년 6월 2일. JavaOne 컨퍼런스가 샌프란시스코에서 열렸습니다. 오는 6월 5일까지 진행될 예정입니다.
ㅡㅅ-)> 오프닝 장면 동영상이 올라와 있어서 이렇게 올려봅니다. 여전히 영어의 쥐약!!



 

General Session Details

In daily general sessions, you'll hear from visionaries and technical leaders from the industry and Sun on current and future advancements in Java technology. In these "don't-miss" sessions you'll learn about trends, challenges, and opportunities, see new applications and cool demos, and get to participate in the always inspirational and innovative "Toy Show" with James Gosling.

Back to top
General Sessions Host:
Chris Melissinos Chris Melissinos
Chief Evangelist and Chief Gaming Officer
Sun Microsystems, Inc.

얼마나 새로운 기술들이 나올지 기대가 됩니다. JavaFX 1.2 SDK도 발표를 했다고 하는군요.
● 관련글 : http://javafx.com/docs/articles/javafx1-2.jsp
ㅜㅅ-) 아직 JavaFX 1.1 버전도 제대로 못만져봤는데...

JAVA JDK7 버전도 곧 나올 듯한 분위기 이군요.
●관련글 : https://jdk7.dev.java.net/

Java Store 도 나올 듯 합니다.
● 관련글 : http://www.java.com/en/store/index.jsp

+ Recent posts