공부/Java

[공부/Java] 자바의 데이터 타입, 리터럴, var, 상수, 타입 변환, 수식연산자, 조건문, 반복문

yulee_to 2022. 7. 4. 00:57

Java


기본 타입

  • 실제 데이터 값을 저장하는 타입
기본 타입 메모리 사용 크기 값의 범위
boolean 1byte true / false
char 2bytes '\u0000' ~ 'uFFFF'
byte 1byte -128 ~ 127
short 2bytes -32,768 ~ 32,767
int 4bytes -2,147,483,648 ~ 2,147,483,647
long 8bytes -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
float 4bytes 1.4E-45 ~ 3.4028235E38
double 8bytes 4.9E-324 ~ 1.7976931348623157E308
  • boolean
    • 자바가 데이터를 다루는 최소 단위가 1byte라서 낭비여도 그냥 1byte 사용
    • 0과 1을 참, 거짓으로 사용 불가
  • char
    • 자바에서 유일하게 제공되는 unsigned 형태
    • 문자를 유니코드 정수형태로 저장해서 문자 간의 비교 연산자 사용이 가능
    • ex ) a = 'A'; b = 'B'; if( a > b )
  • int
    • 정수 기본형 데이터 타입
    • JDK8부터 양수(0~2^32-1)로도 사용 가능
  • long
    • JDK8부터 양수(0~2^64-1)로도 사용 가능
    • 기본형 데이터 타입이 int라 long형을 사용하고자 하는 경우 정수 데이터 맨뒤쪽에 접미사 l이나 L을 붙여줘야 함
  • float
    • 기본형 데이터 타입이 double이라 float형을 사용하고자 하는 경우에 데이터 맨 뒤쪽에 접미사 fF를 붙여줘야 함
  • double
    • 실수 기본형 데이터 타입
    • double임을 명시해주기 위해 접미사 dD를 사용하기도 함
    • 데이터의 e뒤에 붙은 숫자(n)이 10^n을 나타냄
    • ex) 1e3 == 10^3

참조 타입(Reference type)

  • 기본 타입을 제외한 타입들로 객체의 주소를 저장하는 타입
  • 자바에서 실제 객체는 heap 영역에 저장되며, 참조 타입 변수는 스택 영역에 실제 객체들의 주소를 저장해 객체를 사용할 때마다 참조 변수에 저장된 객체의 주소를 불러와 사용
  • ex) 문자열, 배열, 열거, 클래스, 인터페이스

기본 타입과 참조 타입의 차이

 

  • 기본 타입은 null을 담을 수 없지만 참조 타입은 가능
  • 기본 타입은 제네릭 타입에서 사용할 수 없지만, 참조 타입은 가능
  • 기본 타입이 참조 타입에 비해 접근 속도가 훨씬 빠르고 메모리 양도 훨씬 적게 사용함

리터럴

  • 프로그램에서 직접 표현한 값
  • ex) int n = 1;
  • JDK7부터 숫자 리터럴에 _이 허용되어 가독성을 높임
    • 허용되지 않는 경우
      • 리터럴 끝에 사용 불가
      • 소수점(.) 앞 뒤 사용 불가
      • L, F 등 접미사 앞에 사용 불가
      • 0x 중간이나 끝에 사용 불가

var 키워드

  • Java10부터 var 키워드를 사용하여 변수 타입 생략 가능
  • 자동으로 변수 타입을 추론해주는 키워드로 반드시 초기값을 지정해줘야 함
  • 지역변수 선언에만 사용

상수

  • 실행 중 값이 변경되면 안되는 데이터로 상수로 선언시 값 변경 불가
  • final 키워드를 사용하여 선언
  • 선언시 초기값을 지정해줘야 함

자동 타입 변환

  • 치환문(=)이나 수식 내에서 타입이 일치하지 않을 때 컴파일러에 의해 자동으로 작은 타입이 큰 타입으로 변환
  • ex) double d = 3.14 * 10
  • 실수 연산을 위해 10이 10.0으로 자동 변환

강제 타입 변환

  • 필요에 의해 강제로 타입을 변환
  • () 안에 변환할 타입을 지정
  • 큰 타입에서 작은 타입으로 변환시 값의 손실이 생길 수 있음

수식연산자

  • C/C++과 동일
    연산 종류 연산자
    증감 ++ --
    산술 + - * / %
    시프트 >> << >>>
    비교 > < >= <= == !=
    비트 & | ^ ~
    논리 && || ! ^
    삼항연산자 ? :

조건문

  • if문
if (조건1){
	실행문장1;
} else if (조건2){
	실행문장2;
} else {
	실행문장3;
}
  • switch문
switch(식) {
case 값1:
	실행문장 1;
	break;
case 값2:
	실행문장 2;
	break;
...
default;
	실행문장 n;
}

반복문

  • for문
for(초기문; 조건식; 반복 후 작업) { 
​	..작업문..
}
  • while문
while(조건식) {
	..작업문..
}
  • do-while문
do {
	..작업문..
} while(조건식);
  • continue
    • 반복문을 빠져나가지 않으면서 다음 반복으로 넘어감
  • break
    • 반복문을 빠져나감
    • 중첩된 반복문일 경우 하나만 빠져나감
728x90