폰트 중 ligature가 있는 폰트가 있는데, 이런 폰트는 연산자를 입력할 경우 합쳐서 표시가 된다. 예를 들어 >=의 경우 위아래로 결합된 형태로 표시된다. 이런 폰트를 사용할 경우 ligature를 지원하는 IDE를 사용해야 한다.
JRE System Library 안의 ~.jar파일은 자바에서 사용하는 Zip파일.(자바 아카이브) Package Explorer에서 ~.jar파일 옆의 경로로 이동하여 그 파일을 압축풀기하면 자바코드가 번역된 확장자가 class인 실제 소스파일들이 나온다.
결과적으로 JRE System Library 안의 ~.jar파일들은 우리가 자주 사용하는 파일들을 정리하여 넣어놓은거라고 생각하면 된다. ~.class파일로 배포하면 양이 너무 많고 용량도 크기 때문에 압축하여 jar로 배포한다.
소스파일을 관리하는 폴더. src 안에 생성하는 Package는 자바 파일을 담기 위한 폴더라고 생각하면 된다.
원시형(Primitive Type), 값형(Value Type) vs 참조형(Reference Type)
자바에는 어떤 자료형이 있냐고 물어보면 값형과 참조형으로 나눌 수 있다고 하면 된다.
10진수 : DEC, 8진수 : OCT, 2진수 : BIN, 16진수 : HEX
float는 단정도, double은 배정도. 정도란 정밀도. 유효범위를 넘는 숫자를 그보다 작은 자료형에 넣으면 일부숫자는 0으로 표현이 된다. 즉, 컴퓨터에서 실수를 다루면 손실분이 생긴다. double은 float에 비해 유효숫자를 저장할 수 있는 가수부가 더 길어서 정밀도가 더 높은 자료형이다.
문자와 숫자를 연결시켜놓은 규칙을 작성한 표. 256개의 문자(알파벳, 숫자, 특수문자, 제어문자).
현재는 유니코드를 이용. 문자 1개를 저장하는데 2byte를 사용한다. 자바는 유니코드를 지원하기 때문에 char형은 2byte를 차지한다.
참, 거짓은 1, 0으로 표현하기 때문에 1bit만으로도 표현이 가능하지만, 자바에서 불러올 수 있는 최소한의 단위가 1byte(=8bit)이기 때문에 boolean은 1bit를 사용하고, 나머지 7bit는 낭비된다.
byte num1=10;
short num2=10;
int num3=10;
long num4=10;
이 때, 10의 자료형을 물어보면 byte라고 해야 하나? short라고 해야 하나?
System.out.println(10);
이 때는?
결과적으로 int라고 해야 한다. 소스 상의 모든 정수형 상수는 자료형이 int이기 때문.(메모리상에 4byte 차지)
오른쪽에 상수가 오면 자바는 4byte를 확보해서 상수를 저장하고, 변수명으로 따로 공간을 만들어서 거기에 상수값을 복사해 넣는다. 이때, 저장된 상수값은 접근할 수 있는 변수명이 없이 주소값만 갖기 때문에 접근할 수 없다.
long num5=20000000000; // 2백억
위 연산을 처리하려고 할 때, 자바는 상수를 메모리에 저장하기 위해 4byte의 공간을 만들어야 하는데, 2백억이 그 공간에 들어갈 수 없는 숫자이기 때문에 에러가 난다.
이 경우, 자바에게 상수를 메모리에 저장하기 위해 8byte의 공간을 만들도록 아래와 같이 코드를 작성하면 된다.
long num5=20000000000L; // L은 알아보기 쉽게 대문자로 쓸 것
이와 같은 상황은 실수의 경우에도 적용된다. 모든 실수형 상수는 double로 취급한다.(메모리상에 8byte 차지)
단정도형
float f1=1.2345678901234567890123456789F;
// 출력값 : 1.2345679 -> 소수점 아래 7번째까지 유효
배정도형
double d1=1.2345678901234567890123456789D;
// 출력값 : 1.2345678901234567 -> 소수점 아래 16번째까지 유효