각각 OS에서 제공하는 함수가 다르기에 소스코드가 각 OS에 따라 달라진다.
👉 각각의 OS마다 컴파일을 달리해줘야 한다.
자바는 플랫폼 독립성이다. 종속성이 아니다!
👉 OS단 위에 JVM(각 OS에 맞게 개발된) 을 얹어 플랫폼 독립성을 구현 하였다.
👉 우리는 고슬링 아저씨가 만든 JVM 만 OS에 맞게 설치만 한다면 Write Once!! Run Anywhere!!
👉 단점으론 당연히 속도저하
👉 설치방법
cmd에 아래 입력
javac
java -version
javac 컴파일러가 내가 작성한 .java 소스 코드를 JVM이 알아먹을 수 있는 0101덩어리로 번역하여 .class 파일을 만들어 주었다.
해당 타입 만큼 메모리에 공간을 잡아라
메모리 할당 명령
선언과 초기화는 동시에 이루어질 수 있다
int num;
num = 256;
메모리를 할당하라는 명령이기에
메모리엔 주소가 있다.
메모리를 관리하는 주체는 OS 이다.
int appleNum = 10;
대소문자는 구분되며 길이 제한은 없다.
자바 예약어는 사용할 수 없다. (ex. class, boolean, try, catch ···)
camelCase가 관례로 사용된다.
특수문자는 _
$
만 사용 가능하고 첫번째 글자에 숫자는 올 수 없다.
int num1; //변수 선언
num1 = 10; //변수 초기화
int num2 = 10; //변수 선언과 초기화를 동시에
int num3 = num1 + num2; //변수를 사용한 연산
System.out.println(num1 + " + " + num2 + " = " + num3); //결과 출력
기본 타입 | 메모리 크기 | 저장 범위 |
---|---|---|
byte | 1 btye | -128~127 |
char | 1 btye | 0~65535 |
short | 2 btye | -32768 ~ 32767 |
int | 4 btye | -21억 ~ 21억 |
long | 8 btye | |
float | 4 btye | |
double | 8 btye | |
boolean | 1 btye | true, false |
double num = 0.1;
for(int i = 0; i < 1000; i++) {
num += 0.1;
}
System.out.println(num);
// 결과
// 100.09999999999859
char ch1 = '헐';
char ch2 = '확';
char ch3 = 54736; // 문자 '헐'의 유니코드 값
char ch4 = 54869; // 문자 '확'의 유니코드 값
char ch5 = 0xD5D0;
char ch6 = 0xD655;
System.out.println(ch2 + " " + ch2);
System.out.println(ch3 + " " + ch4);
System.out.println(ch5 + " " + ch6);
int num1 = 10;
int num2 = 20;
System.out.println(num1 < num2);
true
가 반환