Java_06 Java 2011. 10. 31. 22:50

                                        >> 자바 테스트 <<

※ 주의 : 프로그램 실행 결과가 오류가 발생할 경우 컴파일 오류인지, 런 타임 오류인지를 기술할 것

이름 :

1. 자바의 기본 자료 형(primitive Type) 8가지와 각 자료형의 byte 수를 쓰시오.

  boolean(1byte) : true값과 false값만 출력
  byte(1byte) 
  char(2byte) : 유니코드 문자 한글자당 2byte
  short(2byte)
  int(4byte) : 정수형
  long(8byte) : 정수형
  float(4byte) : 실수형
  double(8byte) : 실수형

2. 다음중 식별자(Identifier)로 사용 할 수 있는 것을 모두 고르시오.
   name, #name, _tel, 주소, float, $age, ~age

name : O 첫글자 유니코드자바레터(알파벳,_,$)
#name : X 특수문자 불가능
_tel : O 언더바 가능
주소 : O 각국 언어 가능
float : O 실수형태의 기본자료형
$age : O 첫글자 유니코드자바레터(알파벳,_,$)
~age : X 특수문자 불가능

3. 다음 프로그램은 하나의 문자를 입력 받아 ASCII 코드를 출력 하는 프로그램이다.
잘못된 부분을 수정하시오.
public class Test {
 public static void main(String[] args) throws java.io.IOException {
  char ch;

  System.out.print("한문자 ? ");
  ch = System.in.read();

  System.out.println("%c : %d\n", ch, ch);
 }
}

public class Test {
 public static void main(String[] args) throws java.io.IOException {
  int ch; // 정수형태로 입력받으므로 int형 변수 선언

  System.out.print("한문자 ? ");
  ch = System.in.read(); // 한문자를 입력받아 아스키코드(정수)로 입력받으므로..

  System.out.printf("%c : %d\n", ch, ch);
  // %c, %d 같은 서식문자를 출력하기 위해 printf로 변경
 }
}

4. 다음 프로그램의 실행 결과는 ?
public class Test {
 public static void main(String[] args) {
     byte a=10, b=5, c;

     c=a+b;
     System.out.println(c);
 }
}

byte형으로 정수 선언시 overflow(값이 넘침)를 미리 감지하여
컴파일 error

아래와 같이 int형으로 변수 선언시 정상 출력되어 값은 15 가 출력됨

public class Test {
 public static void main(String[] args) {
     int a=10, b=5, c;

     c=a+b;
     System.out.println(c);
 }
}

5. 다음 코드의 출력 결과는 ?
 int []x= {1, 2, 3, 4, 5};
 int y[] =x;
 System.out.println(y[2]);

결과는 3이다.
배열은 첫번째 인자가 0부터 시작되므로 y[2]는 3번째 값을 가르킨다.

6.  다음 실행 결과는 ?
String str="420";
str+=42;
System.out.println(str);

"420"은 Stirng으로 문자열으로 입력되었고
str+=42는 str에 저장된 값에 정수 42를 더한 것이므로 둘은 그냥 이어져 붙을 뿐
연산이 이루어 지지 않는다. 결과는 42042 이다.

7. 다음 실행 결과는 ?
public class Test {
   public static void main(String[] args) {
     for (int i=0; i<=10; i++){
        if( i>6) break;
     }
     System.out.println(i);
   }
}
컴파일 에러 : for문 안에서 선언된 변수는 외부에서 사용 불가하다.
i값이 6보다 클 때 for문을 빠져나와 i값은 사용할 수 없는 변수가 된다.

8. 다음 실행 결과는 ?
int a=0, s=0;
while(a++ <= 9) {
    s+=a;
}
System.out.println("a:"+a+", s:"+s);

결과는 a:11, s:55 이다.
a++ <= 9 일때 관계연산자보다 증감연산자가 우선순위가 높아
a가 반복문에 의해 1씩 증가되어 돌아올 때 a가 9일때 비교하고 참이므로
10이 되어 내려가서 그 값을 s에 누적하고 다시 올라와서 증가되어 11이 되고
비교하면 거짓이므로 while반복문을 빠져나와 a는 11을 출력하게 되고
b는 1부터 a가 10일 때까지의 값을 합하여 누적하고 a가 11일 땐 이미 a가
반복문을 빠져나간 뒤 이므로 55가 된다.

9. 다음의 실행 결과는 ?
System.out.printf("%.2f\n", 123.236);

답은 : 123.24
%.2f 실수형태의 서식문자 이며 소수점 둘째짜리까지만 표시하고 그 뒷자리는
반올림

10. 다음은 이름, 국어, 영어 점수를 입력 받아 총점을 구하는 프로그램입니다.
[   ]를 채우세요.
import java.io.*;

public class BufferedReaderTest {
    public static void main(String[] args) throws IOException {
        String name;
        int kor, eng, tot;

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("이름 ? ");
        name = br.readLine(); // 엔터치기 전까지 한줄 입력받기

        System.out.print("국어 ? ");
        kor = Integer.parseInt(br.readLine()); // parseInt:문자열을 정수형태로 변환
        System.out.print("영어 ? ");
        eng = Integer.parseInt(br.readLine());
        tot = kor + eng;

        System.out.printf("이름: %s, 총점: %d\n", name, tot);
    }
}

11. 다음의 실행 결과는 ?
int a = 12 & 6;
System.out.println(a);

12는 2진수로 1100 이고 6은 0110 이다.
논리곱은 값이 서로 참(1)일 때만 참..
1100
0110    → 0100 으로 결과는 4


12. 다음의 실행 결과는 ?
int a = 12 ^ 6;
System.out.println(a);

XOR : ^ 는 각 항의 값이 0과 1일 때 (즉 서로 다른 값일 때 참)
1100
0110    → 1010 으로 결과는 10

13. 다음의 실행 결과는 ?
int a = 32 >> 3;
System.out.println(a);

>> 는 오른쪽으로 이동하고 남은 자리는 부호로 채우므로
32 = 2진수로 100000 이고 오른쪽으로 3칸 이동하고 양수 이므로
부호는 0이고 000100 이 된다. 이것을 10진수로 바꾸면 4 다. 

14. 1~100까지의 3의 배수의 합를 구하는 프로그램입니다. [   ]를 채우세요.
int s=0, n=0; // 변수 선언 및 초기화
for(n=0; n<100; n+=3) { // 1~100까지 n은 3씩 증가하고
   s+=n;  // 그 증가값을 s에 누적
}
System.out.println("결과 : " + s);

15. 1~100까지의 홀수의 합를 구하는 프로그램을 작성 하시오.

 public class Test {
  public static void main(String[] args) {
   
 int s=0, n=0;
 for(n=1; n<100; n+=2) { // 1에서 2씩 증가하므로 1,3,5,7...
    s+=n;  // 그 증가값을 s에 누적
 }
 System.out.println("결과 : " + s);
  }
 }

16. 다음 실행 결과는 ?
int x =5;
boolean b1 = true;
boolean b2 = false;

if((x==4) && !b2) // false의 값이므로
  System.out.print("1 "); //1은 출력하지 않고 if문을 빠져나와
System.out.print("2 "); // 2를 출력하고
if ((b2 = true) && b1) // b2값을 무조건 참이 되도록 만들고 b1값도 참이므로
  System.out.print("3 "); // 3을 출력한다.

답은 2 3

17. 다음 실행 결과는 ?
int x = 0;
int y = 10;
do {  // 무조건 한번은 반복하므로
   y--;  // y값은 9가 되고 (후위 감소)
   ++x;  // x값은 1이 되고 (전위 증가)
}while(x < 5); // x가 5보다 작을 때까지 반복이니 총 4회 반복하고 5회때 반복문을 빠져나온다. 
System.out.print(x + "," + y); // y값은 4회 반복으로 5가 되고 x값은 전위 증가로 5가 되고
// 5가 된 값이 5보다 작다는 말은 거짓이므로 반복문을 빠져나와
x=5, y=5 가 되어 결과는 5,5

18. 다음 실행 결과는 ?
int x=12;
while (x < 10) { // 조건이 false 이므로 반복문을 빠져나와
    x--;
}
System.out.print(x); // 초기값인 12를 출력한다.
답은 12

19. 다음의 출력 결과를 출력 하는 프로그램을 작성하시오.
       *
     ***
   *****
 *******
public class Test{
public static void main(String[] args){
int i,j;
for(i=1; i<=4; i++){ // 4행 출력
    for(j=1; j<=4-i; j++){ // 공백 출력 3,2,1,0
        System.out.print(" "); // 공백 한칸 
    }
    for(j=1; j<=i*2-1; j++){ // j<=i 일때 오른쪽이 직선, *이 삼각형 모양으로 되기 위해
        // 1, 3, 5, 7, 9.. 식으로 가려면 i값은 1,2,3,4,5.. 식이므로 1,3,5,7,9..가 되기 위한
        // 조건식을 찾으라는 말, 1*2-1=1, 2*2-1=3....
       System.out.print("*");
    }
    System.out.println();
}
}
}

20. 콘솔창에서 Test.java 파일을 컴파일하고 실행하는 방법은 ?
컴파일 : cmd> javac Test.java
실행 : cmd> java Test

설명은 아마도, 필요 없을듯?! 

------------------------------------------------------------------------------

* 객체 지향이란??

현실 세계는 객체(존재하는 모든 것)들의 집합이며 그 모든 것은 상태와 행동의
객체로 표현된다.

그 객체들을 인간이 이해하는 방식으로 프로그래밍화 시켜 시스템에 적용시키고자
하는 것을 객체 지향이라 한다.

객체(object)/클래스(class)/메시지(message)를 기본모형으로 하며
하나의 대상에 대해 일반적인 구성, 상태, 동작 등에 대해 기술하는 작업을 추상화
하는 그 대상을 객체라고 하고 객체라는 개념은 그 객체의 성질이나 특징을 나타내는
데이터로 이루어진 부분과 동작, 행동을 나타내는 부분으로 기술되어 진 것이다.

클래스란??
객체라는 개념을 일반화 시킨 것.
비슷한 부류의 객체를 분류한 것
그런 객체 부류의 추상화된 관념

클래스를 왜 쓰나?
재사용성이 가장 큰 이유?

클래스는 어떻게 작성하는가?
1. 추상화
   상태
   행동
2. 클래스 작성
3. 객체 생성 및 호출

......도통 무슨 말인지 이해가 가지 않지만 일단 정리해두고 추후 수정..;;

'Java' 카테고리의 다른 글

Java_08  (0) 2011.11.02
Java_07  (0) 2011.11.01
Java_06  (0) 2011.10.31
Java_05  (0) 2011.10.29
Java_04  (0) 2011.10.27
Java_03  (0) 2011.10.26
Java_02 Java 2011. 10. 25. 19:15

1. 프로그램 구성 요소

  • 키워드(keyword) : 예약어라고도 한다. Java자체에 미리 정의된 단어들. 다른목적으로 사용 불가
  • 식별자 : 변수명, 메소드, 클래스명. 사용자에 의해 정의된다. 언더바는 영어로 구분되고 대문자와
    소문자는 다른 변수로 구분되고 첫 글자로는 유니코드자바레터(알파벳,_,$)와 각국언어로 가능하나
    영어로 시작함이 일반적이다. 시작 글자로 괄호나 하이폰(-)은 금지.
  • 리터럴 : 고정되어 있는 값. 쉽게 말해 상수
  • 외에 연산자, 주석, 컴마, 괄호, dot, 배열, 세미콜론(문장과 문장사이 구분, 스페이스/탭) 등이 있다.


2. 자바의 기본 자료형

  • 논리형
    • boolean : C언어를 예로 참과 거짓을 1과 0으로 표현하지 않고 true 와 false의 값만 갖는다
      (1Byte)


  • 정수형
    • byte : 1Byte=8bit, 2진수로 보면 7칸의 숫자와 1칸의 부호를 의미하는 값을 가지고 있다.
      부호를 의미하는 첫번째 숫자를 부호와 절대치 라고 한다는 것 같다.

      ■ □ □ □ □ □ □ □ → ■ 이 양수의 값을 취할때 0 / 음수의 값을 취할때 1
      7  6  5  4  3  2  1  0 → 2의 제곱 표시 : 최대값은 27-1 이므로 0 1 1 1 1 1 1 1 = 127 이며
      음의 최대값은 1 0 0 0 0 0 0 0 = -128 으로
      표현범위는 -128 ~ 127 이 된다. 나머지도 이런식
    • char : C언어를 또 예로 들자면 char형은 1byte이다. 하지만 Java에서는 유니코드로
      char형의 값을 표현하기에 유니코드 문자 한글자당 2byte로 char형 또한 2byte가 된다
      부호없는 정수, 0부터 표현 하는 값 대입
    • short : 2byte, 범위는 -32,768 ~ 32,767
    • int : 4byte, 범위는 -2,147,483,648 ~ 2,147,483,647 (대략 21억정도)
    • long : 8byte, -263 ~ -263-1 엄청 큼......;;

 

3. 기본 입출력 스트림

  • 스트림
    • 먼저 입력된 data가 먼저 출력되는 자료구조
    • 뜻은 흐르는 물이라는 뜻, 단방향으로 수도파이프 구조, FIFO구조라고도 함
    • 지연될 수 있음


  • 바이트 스트림
    • InputStream, OutputStream 클래스와 하위 클래스로 구현
    • 8비트 크기를 갖는 바이트들의 스트림


  • 문자 스트림 
    • 입력되는 모든 data는 문자 이며 숫자로 식별되는 것도 변환시킬뿐 사실은 문자
    • Reader, Writer 클래스와 하위 클래스로 구현
    • 16비트 유니코드 문자들의 스트림


  • System.out : 표준 출력 스트림
  • System.in : 표준 입력 스트림
  • System.out.println() : 출력 후 새로운 라인 생성(엔터)
  • System.out.print() : 괄호안의 해당값 출력
  • System.out.printf() : 서식문자와 전달인자가 포함되어 괄호안의 따옴표내에 서식문자의 값이 출력



문제1) 가로와 세로를 입력 받아 사각형 넓이와 둘레 구하기


문제2) 반지름을 입력 받아 원의 넓이와 둘레 구하기. 단, 반지름은 정수로 입력받고 넓이와 둘레는 실수

 





 

금일 실습 예제





  1. public class Test1{ 
  2.     public static void main(String[] args){
  3.        
  4.         int a,b,c; // 정수형 변수를 선언
  5.         // int a;      int b;  int c; // 따로따로 변수 선언
  6.         // int a=20, b=10, c; // 변수선언과 동시에 초기화
  7.  
  8.         a=10;
  9.         b=20;
  10.         c=a+b;
  11.  
  12.         // System.out : 표준 출력(모니터)
  13.  
  14.         System.out.print("결과 : ");
  15.         System.out.print(c);
  16.         System.out.print(" ");
  17.        
  18.         // System.out.println("결과 : " + c);
  19.         // println : 한줄 출력후 엔터
  20.  
  21.         // 한줄 주석
  22.         /*
  23.            여러줄 주석
  24.            여러줄 주석
  25.            여러줄 주석
  26.         */
  27.     }
  28. }




  1. public class Test2 {
  2.     public static void main(String[] args){
  3.         /*
  4.         byte a=10, b=5, c;
  5.         // byte d=128; // error : overflow(값이 넘침)
  6.         // c=a+b; // error : overflow 미리 감지...?
  7.         c=(byte)(a+b); // (byte) : 형변환, 연산결과를 byte형으로 변환한다.
  8.         // byte형은 산술형(연산)의 용도라기 보다 이럴때 뭐하고 저럴때 뭐하고...
  9.         // 비교하는..blah blah
  10.  
  11.         System.out.println("결과 : "+ c);
  12.         */
  13.        
  14.         /*
  15.         int a=017, b=010; // 0이 붙으면 8진수로 인식 : a=15, b=8
  16.         int c=a+b;
  17.         System.out.println("a : "+a);
  18.         System.out.println("b : "+b);
  19.         System.out.println("결과 : "+c);
  20.         */
  21.  
  22.         /*
  23.         int a=0x17, b=0xa10; // 16진수 : x는 소문자이건 대문자이건 관계 없다
  24.         int c=a+b;       // 초기화 시킬때 많이 쓴다. 0x
  25.         System.out.println("a : "+a);
  26.         System.out.println("b: "+b);
  27.         System.out.println("결과 : "+c);
  28.         */
  29.  
  30.        
  31.         long a=10000000000L, b=10// 100억, 정수의 형태인 21억이상이 되어 L붙여줌
  32.                                     // 소/대문자 관계없다
  33.         long c=a+b;   
  34.         System.out.println("a : "+a);
  35.         System.out.println("b: "+b);
  36.         System.out.println("결과 : "+c);
  37.        
  38.     }
  39.  
  40. }





  1. public class Test3{
  2.     public static void main(String[] args){
  3. /*  float a=0;
  4.     double b=0;
  5.  
  6.     for(int i=1; i<=100000; i++){
  7.         a+=100000;
  8.         b+=100000;
  9.     }
  10.     a=a/100000;
  11.     b=b/100000;
  12.     System.out.println("a: "+a);
  13.     System.out.println("b: "+b);  */
  14.  
  15.     /*// ▽ 반지름이 10인 원의 둘레와 넓이
  16.     int a=10;
  17.     float b,c;
  18.     b=a*a*3.14f; // 3.14는 아무것도 안붙이면 배정도형실수 
  19.     c=a*2*3.14f; // float형 b,c 변수 선언으로 3.14도 단정도형으로 변환위해 f를 붙여줌
  20.     System.out.println("넓이 : "+b);
  21.     System.out.println("둘레 : "+c); */
  22.  
  23.     // 정수 연산자 정수 → 정수
  24.     // 정수 연산자 실수 → 실수
  25.     // 실수 연산자 실수 → 실수
  26.    
  27.     double a=1/2+1/2;
  28.     double b=1./2+1/2; // 1. 은 1.0 실수
  29.     double c=2/3*5+1./2; // 연산우선순위 파악 ①:/* ②:/ ③:①+②
  30.     System.out.println("a: "+a);
  31.     System.out.println("b: "+b);
  32.     System.out.println("c: "+c);
  33.    
  34.  
  35.     }
  36. }





  1. public class Test4{
  2.     public static void main(String[] args){
  3.         char a='a', b='z';
  4.         char c='A', d='Z';
  5.        
  6.         // 아스키코드 (기본암기)
  7.         // a~z: 97 ~ 122
  8.         // A~Z: 65 ~ 90
  9.         // Enter: 13(10), Esc: 27
  10.         // Alt+13(오른쪽키패드)=엔터, Alt+65=A
  11.         // 0: 48
  12.        
  13. /*
  14.         System.out.println(
  15.             a+":"+b+":"+c+":"+d);
  16.  
  17.         a=(char)(a+3); // 형변환(캐스팅)
  18.         System.out.println("a:"+a);
  19.  
  20.         System.out.println((int)a); // 코드값 출력을 위해
  21.         System.out.println((int)b); // int형으로 형변환
  22.         System.out.println((int)c);
  23.         System.out.println((int)d); */
  24. /*
  25.         System.out.print("java");
  26.         System.out.print(" "); // newline, Enter
  27.             // System.out.println("java"); // 위와 같다.
  28.         System.out.print("java "); // 위 두줄과 같다.
  29.  
  30.         System.out.print("java Framework Servlet"); // 는 Tab
  31.         System.out.println(" abcdefgxyz"); // 는 backspace */
  32.  
  33.         // 사용기피 클래스..
  34.         String s1="seoul";
  35.         String s2="korea";
  36.         String s3=s1+s2; // + : 문자열결합
  37.         // 문자열 + 정수 → 문자열
  38.         String s4=s3+40;
  39.         System.out.println(s1+" "+s2+" "+s3+" "+s4);
  40.     }
  41. }





  1. public class Test5
  2. {   public static void main(String[] args){
  3.         /*
  4.         int a=10, b=200;
  5.  
  6.         System.out.println("012345678901234567890123456789");
  7.  
  8.         // System.out.print("서식" + 값);
  9.         System.out.printf("a=%d b=%d%n",a,b); // %n은 printf에서만 사용하며 과 같다
  10.         // System.out.printf("a=%d b=%d ",a,b);
  11.         System.out.printf("%10d%10d%n",a,b); // 자리수 맞출때 쓴다. 일단위 기준
  12.         */
  13.  
  14.  
  15.         // 5page PrintStream클래스의 printf메소드 사용예
  16.         System.out.printf("%d %% %d = %d%n", 10,4,10%4);
  17.         System.out.printf("%10d%n", 123);
  18.         System.out.printf("%010d%n", 123);
  19.        
  20.         System.out.printf("%2$s %1$s %2$s ", "seoul","korea");
  21.         // 1$는 첫번째 값, 2$는 두번째 값
  22.  
  23.         System.out.printf("%1$tF %1$tT %1$tA ", java.util.Calendar.getInstance());
  24.         // 오늘 날짜 시간
  25. }
  26. }





  1. import java.io.IOException; // 예외
  2. public class Test6
  3. {   public static void main(String[] args) throws
  4.     IOException {
  5.         int ch;
  6.         System.out.print("한문자? ");
  7.  
  8.         ch=System.in.read(); // read(): 한문자를 입력받아 ASCII 코드를 반환
  9.  
  10.         System.out.println("ch : "+ch);
  11.         System.out.println("ch : "+(char)ch);
  12. }
  13. }





  1. import java.io.*; // 실무에선 * 절대 안쓴다고 함.. io 안에 있는 클래스 다 가져오란 소리
  2. // 무조건 외우장... 다
  3. public class Test7{
  4.     public static void main(String[] args)throws
  5.     IOException {
  6.         // new : 메모리 할당
  7.  
  8.         String name;
  9.         int kor, eng, tot, ave;
  10.  
  11.         System.out.print("이름?");
  12.         name=br.readLine(); // 엔터치기 전까지 한줄 입력 받는다.
  13.         System.out.print("국어?");
  14.         kor=Integer.parseInt(br.readLine()); // parseInt : 문자열을 숫자로 변환
  15.         System.out.print("영어?");
  16.         eng=Integer.parseInt(br.readLine());
  17.  
  18.         tot=kor+eng;
  19.         ave=tot/2;
  20.         System.out.printf("이름 : %s, 총점 : %d, 평균 : %d", name, tot, ave);
  21.     }
  22.  
  23. }


 




  1. // 문제 - 사칙연산 : +,-,*,/
  2. // 두 수를 입력받아 사칙연산을 하세요.
  3. // 실행 예)
  4. // 첫번째 수? 10
  5. // 두번째 수? 5
  6. // 10+5=15      10-5=5
  7. // 10*5=50      10/5=2
  8.  
  9. /*
  10. import java.io.*;
  11. public class Test8{
  12.     public static void main(String[] args)throws
  13.     IOException {
  14.         BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  15.  
  16.        
  17.         int num1, num2, add, mi, gop;
  18.         double na;
  19.  
  20.         System.out.print("첫번째 수? ");
  21.         num1=Integer.parseInt(br.readLine());
  22.         System.out.print("두번째 수? ");
  23.         num2=Integer.parseInt(br.readLine());
  24.        
  25.  
  26.         add=num1+num2;
  27.         mi=num1-num2;
  28.         gop=num1*num2;
  29.         na=(double)num1/(double)num2; // 실수로 형변환
  30.        
  31.  
  32.         System.out.printf("%d + %d = %d ", num1, num2, add);
  33.         System.out.printf("%d - %d = %d ", num1, num2, mi);
  34.         System.out.printf("%d * %d = %d ", num1, num2, gop);
  35.         System.out.printf("%d / %d = %.1f ", num1, num2, na); // 값이 실수이므로 %f
  36.     }
  37. } */
  38.  
  39. import java.io.*;
  40. public class Test8
  41. {   public static void main(String[] args)throws
  42.     IOException {
  43.  
  44.         int a, b;
  45.  
  46.         System.out.print("첫번째수? ");
  47.         a=Integer.parseInt(br.readLine()); // 여기서 멈추는이유는 br.readLine()
  48.         System.out.print("두번째수? ");
  49.         b=Integer.parseInt(br.readLine());
  50.  
  51.         System.out.printf("%d+%d=%d ", a,b,(a+b));
  52.         System.out.printf("%d-%d=%d ", a,b,(a-b));
  53.         System.out.printf("%d*%d=%d ", a,b,(a*b));
  54.         System.out.printf("%d/%d=%d ", a,b,(a/b));
  55.         // System.out.printf("%d/%d=%f ", a,b,(double)a/b);
  56.         // 값이 실수로 나오게 하고 싶다면 △
  57.     }
  58. }




※ 종일 궁금했던 parseInt에 관한 확실한 정의(? 구글링)




....해보라고-_-

외워야 할 것들 ↗

'Java' 카테고리의 다른 글

Java_06  (0) 2011.10.31
Java_05  (0) 2011.10.29
Java_04  (0) 2011.10.27
Java_03  (0) 2011.10.26
Java_02  (0) 2011.10.25
Java_01  (0) 2011.10.24