8월, 2012의 게시물 표시

원시 자료형

논리형 boolean
형변환 불가.

정수형 byte
1 바이트

short
2 바이트

int
4 바이트

long
8 바이트

문자형 char
2바이트

실수형 float
4 바이트

double
8 바이트

예약어

abstract    continue    for    new    switch    assert    default    if    package    synchronized    boolean    do    goto    private    this    break    double    implements    protected    throw    byte    else    import    public    throws    case    enum    instanceof    return    transient    catch    extends    int    short    try    char    final    interface    static    void    class    finally    long    strictfp    volatile    const    float    native    super    while

연산자

자바의 연산자(operator)는 다음과 같다.
=       >    <    !       ~       ?       :        ==      <=   >=   !=      &&      ||      ++      --        +       -       *       /       &   |       ^       %       <<        >>        >>>        +=      -=      *=      /=      &=  |=      ^=      %=      <<=       >>=       >>>=

구분자

자바의 구분자(separator)는 다음과 같다.
(       )       {       }       [       ]       ;       ,       .

값의 표현

리터럴(literal)은 원시자료(primitive type)형, 문자열(String)형, 널(null)형을 소스 코드 내에서 표현하는 방법이다.

정수형 정수는 10진수, 16진수, 8진수로 표현할 수 있다.
16진수로 표현하려면 0x로 시작한다.
8진수로 표현하려면 0으로 시작한다.
마지막에 L 또는 l을 붙이면 long형이다. 1과 혼동되지 않도록 가급적이면 L을 사용하는 것이 좋다.
L을 붙이지 않으면 int형이다.


0     2    0372    0xDadaCafe    1996    0x00FF00FF 0l    0777L    0x100000000L    2147483648L    0xC0B0L

부동소수형 부동소수값은 IEEE 754에 따라 저장된다.
마지막에 F 또는 f를 붙이면 float형이다.
F을 붙이지 않거나, D를 붙이면 double형이다.


1e1f    2.f     .3f    0f    3.14f    6.022137e+23f 1e1    2.    .3    0.0    3.14    1e-9d    1e137

불린형 참과 거짓 두가지 값을 가질 수 있다.


true    false


문자형 문자는 UTF-16으로 표현되는 단 하나의 문자이며, 작은 따옴표(' ')로 묶어서 표현한다.


'a'    '%'    '\t'    '\\'    '\''    '\u03a9'    '\uFFFF'    '\177'    ''    ''

문자열형 문자열은 0개 이상의 문자로 이루어지며, 큰 따옴표(" ")로 묶어서 표현한다.


""// the empty string"\""// a string containing " alone"This is a string"// a string co…

컬렉션

Set 정렬 X, 중복객체 허용 X

Map 정렬 X, 중복객체 허용 O

List 정렬 O, 중복객체 허용 O

내부 클래스

Inner Class 클래스의 내부에 또 다른 클래스를 가진 클래스. (static 멤버는 포함 할 수 없다.)
1 class Outer { 2 class Inner { 3 ... 4 } 5 }
Outer.class, Outer$Inner.class

Outer.Inner oi = new Outer().new Inner();

Static Inner Class 내부 클래스의 안에 static 멤버를 포함할 수 있다. (외부 클래스의 비 static 멤버는 포함 할 수 없다.)
1 class Outer { 2 static class Inner { 3 ... 4 } 5 }
Outer.class, Outer$Inner.class

Outer.Inner oi =new Outer.Inner();


Local Inner Class 메서드 실행시에 사용되는 클래스를 정의하는 형식으로 접근자나 지정어를 가질 수 없다.
1 class Outer { 2 method() { 3 class Inner { 4 ... 5 } 6 } 7 }
Outer.class, Outer$숫자Inner.class

객체 생성은 외부에서 할 수 없다.


Anonymous Inner Class 기존 클래스의 특정 메서드를 오버라이딩하여 원하는 형태로 재정의하여 사용하는 방식. 외부 멤버중 final만 포함할 수 있다.
1 class Inner { ... } 2 3 class Outer { 4 method() { 5 newInner() { 6 ... 7 } 8 } 9 }
Outer.class, Outer$숫자.class

new Inner() 자체가 객체 생성이다.