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 X
- 문자형 ( 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 )
소수점 에 대한 범위 및 사용법
** 추가적으로 기본기 다지기에서 따로 작성해야 할 내용
(진수 변환법, 아스키 코드, 유니코드 )
'개발일지(Language) > Java 일지' 카테고리의 다른 글
Intellij IDEA ( JAVA IDE ) Community 버전 (0) | 2019.12.10 |
---|---|
JAVA ? 프로그래밍 언어? JAVA 시작하기 (QA) (0) | 2019.11.20 |
낙서장 (0) | 2016.06.15 |