JAVA는 정말 맨땅에 헤딩 한다는 생각으로 책을 정독 하려고합니다.

 

 

변수 타입

1. primitive type (기본형 )

     논리형(boolean) , 문자형(char) , 정수형 (byte,short,int,long) 실수형 (float,double)

 

2. reference type ( 참조형 )

     1번에 primitive type이 아닌 모든 것들  ex:) String 

 

자료형의 범위는 byte,short,int,long 의 경우만  -2 n-1 ~ 2 n-1 -1 (n은 bit의 수) 

                       (1    2    4    8) byte

                       (1    8    32   64)  bit  -> n 에 대입하여 범위 추측 가능 

** n 비트로 표현할수 있는 정수의 개수 2n 개 ( 2 n-1승 + 2 n-1승 )

** n 비트로 표현할수 있는 부호있는 정수 범위 -2 n-1 승 + 2 n-1승 -1 

(-1의 이유는 0이 포함되기 때문 )

8비트일 경우 -2(7승) ~ 2(7승)-1 -> -128 ~ 127 

short나 byte의 경우 내부적으로 계산시 4byte로 변환하여 연산이 수행되기 때문에  숫자는 그냥  int를 사용하는게 낫다 ( int = 4byte 라 변환되는 연산이 수행되지않습니다. )

 

 

 

javac 로 .java 파일 빌드시 오류 

error: unmappable character (0xEB) for encoding x-windows-949

에러 내용을 보면 for encoding ~ 뒷 부분을 확인하실수 있는 경우가 있습니다.

에디터로 작성된 encoding이 x-windows-949 로 되어있어서 

해당 에러가 발생할 수 있습니다.

실행 뒤에 -encoding "UTF-8" 을 붙여서 실행 해서 해결 할수 있습니다~

JDK 1.6 에서 변화점

final int STATUS = 1; 

// 상수의 경우 선언과 함꼐 초기화가 되어야 하지만 

JDK 1.6 이후로는 필수는 X

 

2진수 변경 하는 메소드

Integer.toBinaryString(10진수 값)

 

- 논리형 ( boolean ) 

true와 false 중 하나이며 기본은 "false"   True X False

- 문자형 ( char )

char ch = "A" 는 ch 에 A가 저장되는것이 아닌 65(유니코드) 가 저장됨 

그렇기 때문에 char ch = 65; 로 선언해서 사용가능 

** 유니코드를 알기 위해서는

 char ch = 'A';
 int unicode = (int)ch; // (int)'A' 로 하여도 괜찮습니다.

System.out.println("유니코드 값 " + unicode);

// 결과  :  유니코드 값 65 

특수 문자 입력은 javaScript 와 똑같은 것으로 보입니다.

\r = carriage return

\n = new line

\f = form feed

\t = tab

\' = 싱글쿼터

\" = 더블쿼트

 

char의 경우 0 ~ 65536

short 의 경우 ( 음의 정수 까지 표현하기 때문에 ) -32768 ~ 32767

 

 

encoding and decoding

위에 문자가 유니코드로 변환이 되는 경우에 'A'  -> 65로 변환되는 과정을 인코딩이라고 합니다.

반대로 변환이 된 65를 다시 'A'의 문자로 변화되는 것을 디코딩 

알기 쉽게 되어있는 'A'를 보기 힘든 유니코드로 변경되는 과정을 인코딩이라고 했으니 암호화하다라는 뜻과도 일맥상통 한다고 볼수 있습니다.

 

- 정수형 ( byte, short, int, long )

소수점 에 대한 범위 및 사용법

 

- 실수형 ( float, double )

소수점 에 대한 범위 및 사용법 

 

 

 

** 추가적으로 기본기 다지기에서 따로 작성해야 할 내용

(진수 변환법, 아스키 코드, 유니코드 ) 

+ Recent posts