java 5.0 new feature #1

java core 2007. 9. 18. 23:04

J2SE new feature

http://java.sun.com/j2se/1.5.0/docs/relnotes/features.html

Performance Enhancements

  1. Garbage collection ergonomics
  2. StringBuilder class
    StringBuffer와의 차이점 : 메소드가 Syncronized로 되어 있다. 따라서, 동기화를 목적으로 하지 않는 프로그램에 쓰이는데 용이하지만, 멀티 쓰레드상태에서는 써서는 안된다. 그 때는 StringBuffer를 사용해야 한다.
  3. Java 2DTM technology
  4. Image I/O

JavaTM Language Features

static import 소스

import static A.Manual.*;

public class Test {
	public static void main(String[] args) {
		int sum = sum(5);
	}

	public static int sum(int... intList) {
		int sum = 0;
		return sum;
	}
}

디컴팔된 소스

public class Test
{

    public Test()
    {
    }

    public static void main(String args[])
    {
        int sum = sum(new int[] {
            5
        });
    }

    public static transient int sum(int intList[])
    {
        int sum = 0;
        return sum;
    }
}

vararg 소스

import static A.Manual.*;

public class Test {
	public static void main(String[] args) {
		int sum = sum(5);
	}

	public static int sum(int... intList) {
		int sum = 0;
		return sum;
	}
}

디컴팔된 소스

public class Test
{

    public Test()
    {
    }

    public static void main(String args[])
    {
        int sum = sum(new int[] {
            5
        });
    }

    public static transient int sum(int intList[])
    {
        int sum = 0;
        return sum;
    }
}

enum

public class Test {
	enum STATE {INIT, PAUSED, STARTED, ENDED};
}

디컴팔된 소스

public class Test
{
    static final class STATE extends Enum
    {

        public static STATE[] values()
        {
            STATE astate[];
            int i;
            STATE astate1[];
            System.arraycopy(astate = ENUM$VALUES, 0, astate1 = new STATE[i = astate.length], 0, i);
            return astate1;
        }

        public static STATE valueOf(String s)
        {
            return (STATE)Enum.valueOf(Test$STATE, s);
        }

        public static final STATE INIT;
        public static final STATE PAUSED;
        public static final STATE STARTED;
        public static final STATE ENDED;
        private static final STATE ENUM$VALUES[];

        static 
        {
            INIT = new STATE("INIT", 0);
            PAUSED = new STATE("PAUSED", 1);
            STARTED = new STATE("STARTED", 2);
            ENDED = new STATE("ENDED", 3);
            ENUM$VALUES = (new STATE[] {
                INIT, PAUSED, STARTED, ENDED
            });
        }

        private STATE(String s, int i)
        {
            super(s, i);
        }
    }


    public Test()
    {
    }
}

autoboxing/unboxing

import java.util.ArrayList;
import java.util.List;

public class Test {
	public static void main(String[] args) {
		List<Integer> list = new ArrayList<Integer>();
		list.add(1);
	}
}

디컴팔된 소스

import java.util.ArrayList;
import java.util.List;

public class Test
{

    public Test()
    {
    }

    public static void main(String args[])
    {
        List list = new ArrayList();
        list.add(Integer.valueOf(1));
    }
}

Generic

import java.util.ArrayList;
import java.util.List;

import A.Manual;

public class Test {
	public static void main(String[] args) {
		List<Manual> list = new ArrayList<Manual>();
		list.add(new Manual());
	}
}
package A;

public class Manual {
	private int operation;

	//setter, getter
}

디컴팔된 소스

import A.Manual;
import java.util.ArrayList;
import java.util.List;

public class Test
{

    public Test()
    {
    }

    public static void main(String args[])
    {
        List list = new ArrayList();
        list.add(new Manual());
    }
}

'java core' 카테고리의 다른 글

jconsole 사용하기  (0) 2007.10.01
jconsole  (0) 2007.09.28
ZipInputStream으로 압축시 한글 디렉토리가 안에 있을때..  (0) 2007.09.04
[윈도우즈 용] 스레드 덤프 채취하는 툴  (0) 2007.08.21
메모리 덤프  (0) 2007.08.21
Posted by '김용환'
,