개발 언어/자바(Java)

Java의 정석 기본 상식

라이언 IT 2021. 9. 17. 06:52

그동안 개발자로 일하면서 세세한 부분까지 기억하지 않았던 부분을 정리해보려 합니다.

대표적인 Java의 정석(남궁성 지음) 서적을 통해 계속 업로드 하겠습니다. (2021.09.17~)

 

[자바언어 특징]

 1) 운영체제에 독립적

   - 자바가상머신(JVM)이 응용프로그램에서 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달함

   - 자바로 작성된 프로그램은 운영체제에 독립적, JVM은 운영체제에 종속적으로 '썬'에서는 여러 운영체제에서 설치할 수 있는 서로 다른 버전의 JVM을 제공

 2) OOP(Object-oriented programming language)

   - 객체 지향 프로그래밍 (역할/책임/협력)

 3) 자동 메모리 관리(Garbage Collection)

 4) 네트워크/분산처리 Lib 지원

 5) 멀티쓰레드 지원

 6) 동적 로딩(Dynamic Loading) 지원

   - 필요한 시점에 클래스를 로딩하여 사용할 수 있음


객체란

모든 객체는 상태와 동작을 가집니다.

예를 들어 자동차를 구매한다고 가정해봅시다.

- 색상(Color), 가격(Price), 모델명(ModelName) 등은 상태라고 볼 수 있음

- 이동하기(Move), 멈추기(Stop), 전원on(startOn) 등은 동작이라고 볼 수 있음

 

객체 클래스
- Car.class
상태 멤버변수
- color
- price
- mondelName
동작 메소드
- move()
- stop()
- startOn()

[중요] 자바 소스코드 변환 과정

자바소스 코드 -> [컴파일러] -> 바이트 코드(JVM이 이해할 수 있는 기계어) 변환 -> [JVM] -> 해당 OS의 기계어로 변환

 

C언어 같은 프로그래밍 언어는 문자형의 경우 1byte(ASCII코드) 크기를 갖지만, Java에서는 유니코드(Unicode)문자 체계를 사용하기 때문에 크기가 2byte이다.

 

JVM의 피연산자 스택이 피연산자를 4byte단위로 저장하기 때문에 크기가 4byte보다 작은 자료형(byte, short)의 값을 계산할 때는 4byte로 변환하여 연산이 수행한다.

 

long타입의 리터럴에는 접미사 'L'을 꼭 붙이자. (안 붙이면 int타입으로 간주)

float타입 접미사 'f', double타입은 접미사 'd' 또는 'E' (실수형 기본 자료형)

 

16진수는 리터럴 앞에 접두사 '0x', '0X' 를 붙이며, 8진수는 '0' 을 붙인다.

 - 0x10(16진수), 010(8진수), 10(10진수)

 

char와 short 형은 둘 다 2byte 크기로 같지만,

char 범위는 0~2 16승-1(0~65535) 이고 short의 범위는 -2 15승~2 15승 -1(-32768~32768) 로 서로 범위가 다르다.