프로그래밍 언어
기계(컴퓨터)에게 명령이나 연산을 시킬 목적으로 설계되어 기계와 의사소통 할 수 있게 해주는 언어로 사람이 원하는 작업을 컴퓨터가 실행할 수 있도록 한다. 이 언으들은 사람이 이해하기 쉽게 만든 언어이며 실행될때 컴파일러로 컴파일 되고 컴퓨터는 이 컴파일된 일련의 명령들을 수행한다
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
HelloWorld 클래스를 실행했을 때 클래스 로드 과정최상위 클래스로드인 부트스트랩 클래스로더가 생성된 후에 JVM을 구동시키기 위한 필수 라이브러리의 클래스를 JVM 메모리에 적재,
모든 클래스가 상속받고 있는 Object 클래스를 읽어온다.
이후,어플리케이션 클래스로더는 명령행에서 지정한 HelloWorld 클래스를 로딩하기 위해, HelloWorld.class 파일을 읽는다. ⇒ HelloWorld 클래스를 로딩하는 과정에서 필요한 클래스가 존재 java.lang.String
, java.lang.System
등
이 클래스들은 HelloWorld 클래스를 읽어오는 과정에서, 즉 로드타임에 로딩된다.
최종적으로 HelloWolrd 클래스 로딩
Object 클래스를 읽어온다 → HelloWorld클래스를 로딩하기 위해 HelloWorld.class 파일을 읽는다 → 로딩과정에서
java.lang.String
,java.lang.System
이 필요하다 → 클래스를 읽어오는 과정에서 로드타임에 로딩
static
예약어 X)static
이라는 예약어가 있는 변수타입 | 형 | 저장공간 | 범위 | 비고 |
---|---|---|---|---|
int | 정수 | 4 Byte | -2,147,483,648 ~ 2,147,483,647 (약 20억) | |
long | 정수 | 8 Byte | -9,223,372,036,854,775,808 | |
~ 9,223,372,036,854,775,807 | 접미어 L 사용 | |||
300_000_000_000_000L | ||||
short | 정수 | 2 Byte | -32,768 ~32,767 | |
byte | 정수 | 1 Byte | -128 ~ 127 | |
float | 부동 소수점 | 4 Byte | 약 +-3.40282347E+38F (자릿수 6~7) | 접미어 F 사용 |
3.39F | ||||
double | 부동 소수점 | 8 Byte | 약 +-1.79769313486231579E+308 (자릿수 15) | |
char | char | 2 Byte | 문자 1글자 | UTF-16 문자 인코딩 |
boolean | boolean | 1 Byte | true, false만 가능 | 논리 값, 참 거짓만 판단 |
종류 | 연산자 | 우선순위 |
---|---|---|
증감 연산자 | ++, -- | 1순위 |
산술 연산자 | +, -, *, /, % | 2순위 |
시프트 연산자 | >>, <<, >>> | 3순위 |
비교 연산자 | >, <. >=, <=, ==, != | 4순위 |
비트 연산자 | &, | , ^, ~ |
논리 연산자 | &&, | |
조건(삼항) 연산자 | (condition) ? value1 : value2 | 7순위 |
대입 연산자 | =, *=, /=, %=, +=, -= | 8순위 |