JAVA(1) JVM,데이터타입,연산자

2 분 소요

JAVA

  • 객체지향 프로그램으로 재사용성, 유지보수, 확장성이 좋다 + 코드관리에도 유리
  • 안정적이다
  • 풍부한 라이브러리가 제공되고 오픈소스와 연동된다.

JVM 이란

  • 자바 프로그램을 실행할 수 있는 가상 머신

JAVA Virtual Machine의 약자로 인터프리터나 jit컴파일 방식으로 바이트 코드를 실행 할 수 있는 주체

JVM은 플랫폼 독립적으로 JVM이 실행 가능한 환경이라면 어디서든 JAVA 프로그램이 실행될 수 있다

JVM 메모리 구조

  • 메소드 영역: 모든 클래스 정보와 static 변수가 저장됨
  • 힙영역: 객체가 저장됨
  • 스택 영역: per thread 자료구조. 메소드의 스택으로 사용됨
  • PC 레지스터스: per thred 자료구조. 각 스레드의 PC를 저장함

JDK와 JDE 차이

  • JRE: 라이브러리, JVM, 애플릿을 돌리기 위해 필요한 컴포턴트로 구성됨
  • JDK: JRE + 컴파일러, 디버거 등 개발에 필요한 도구가 추가됨

JAVA 데이터 타입

  타입 메모리 크기 기본값 범위
논리형 boolean 1byte false true, false
정수형 byte
short
int
long
1byte
2byte
4byte
8byte
0
0
0
0L
-128~127
-32,768~32,767
-2,147,483,648~2,147,483,647
-9,223,372,036,854,775,808~-9,223,372,036,854,775,807
실수형 float
double
4byte
8byte
0.0F
0.0
(3.4 X 10-38) ~ (3.4 X 1038)의 근삿값
(1.7 X 10-308) ~ (1.7 X 10308)의 근삿값
문자형 char 2byte ‘\u0000’ ㅅ0~65,535

상수 & 리터럴

상수(constant) 변하지 않는 수

int i = 10;
final float PI = 3.14f;
String str = "Hello World";

리터럴은 코드상에서 변수나 상수에 들어가는 값

위에선 10, 3.14f, Hello World 와 같은 값들을 리터럴이라고 함

형 변환

서로 다른 자료형의 값이 대입되는 경우 형 변환 발생

  • 묵시적 형 변환: 작은 수에서 큰 수로 덜 정밀한 수에서 더 정밀한 수로 대입되는 경우
  • 명시적 형 변환: 변환되는 자료형을 명시, 자료의 손실이 발생 할 수 있음

산술 연산자

int a = 3;
int b = 3;
a++ == 3; true
++b == 3; false

비트 연산자

연산자 설명
~ 비트의 반전(1의 보수) a = ~a:
& 비트 단위 AND 1 & 1 1반환 그 외는 0
| 비트 단위 OR 0|0 0반환 그 외는 1
^ 비트 단위 XOR 두 개의 비트가 서로 다른 경우에 1을 반환
« 왼쪽 shift a « 2 변수 a를 2비트 만큼 왼쪽으로 이동
» 오른쪽 shift a » 2 변수 a를 2비트 만큼 오른쪽으로 이동
»> 오른쪽 shift » zero fill right shift:
예제
int num1 = 0B00001010; // 10
int num2 = 0B00000101; // 5

System.out.println(num & num2);  // 0
System.out.println(num | num2);  // 15
System.out.println(num ^ num2);  // 15

System.out.println(num2 << 1);  // 10 : (num2 * 2^1)
System.out.println(num2 << 2);  // 20 : (num2* 2^2)
System.out.println(num2); // 5 : num2 값은 변한지 않음
// System.out.println(num2 <<= 2);  // num2 = 20이 됨

관계 연산자

== != > < >= <=

논리 연산자

  • && || !
  • and의 우선순위가 or보다 우선순위가 높음

연산자 우선순위

  1. 일차식 () [] . 괄호, 배열, 참조 연산자
  2. 단항 ! ++ -- + -
  3. 산술 % /, + -
  4. 비트 이동 << >>
  5. 관계 < > <= >=
  6. 관계 == !=
  7. 비트 곱 & 비트 차^ 비트 합 | 순서대로
  8. 논리 곱 && 논리 합|
  9. 조건(삼항 연산자) ? :
  10. 대입 = += -= *= %= /=

카테고리:

업데이트:

댓글남기기