신입개발자

자료형 본문

프로그래밍 언어/자바

자료형

dks_a 2022. 1. 3. 15:04

- 8대 기본 자료형과 바이트수 꼭 외우기! (*가 기본값)
  - boolean 1 / byte 1 < short/char 2 < *int 4 < long 8 < float 4 < *double 8
- 자바 정수는 unsigned 추가형이 없음
- (주소)참조 자료형 : 배열, 열거, 클래스, 인터페이스 등 직접 정의가능, 첫대문자로 시작 예)String 

 

- 자바의 메모리 영역은 크게 3가지 분류
  1. 클래스영역(메소드 영역, static영역, final영역)
   JVM이 바이트코드인 *.class를 여기로 로딩 > 그중 main() 메소드를 시작점으로 실행
  2. 스택 stack 영역 : 동전케이스구조, 기본자료형의 값과 참조자료형의 주소가 저장되는 영역
  3. 힙 heap 영역 : 바이너리 트리구조, 참조자료형의 값이 저장되는 영역, 직접 접근 불가

public class 자료형 {
	public static void main(String[] args) {
		
		//boolean : C언어에 비해 불린형이 존재
		boolean bl = true; //또는 소문자 false
		System.out.println("bl = " + bl);   
        // 불린형은 자료형 최소단위인 1바이트 중에서 단 1비트만 사용하고 상위 7비트는 사용하지 않는다
		System.out.println("!bl = " + !bl); // NOT 연산자
		System.out.println();
		
		//byte : C언어처럼 오버/언더플로우 여전히 발생
		byte b = 127;
		System.out.println("b = " + b);
		b += 1;
		System.out.println("b = " + b); // -128
		System.out.println();
		
		// char : 문자(정수)형, 0이상의 유니코드값 2bytes 값(ASCII값과 호환)
		// A) '한문자'값 대입 
		char c = 'A';
		System.out.println("c = "+ c);
		c = '\u0041'; // \ u : 16진수 유니코드 제어문자, 한문자 취급하므로 작은따옴표 필수
		System.out.println("c = "+ c); // A (유니코드 65)
		
		// B) 정수값 대입
		c = 65; // 10진수
		System.out.println("c = "+ c);  // A
		c = 0B1000001; // 2진수 0b ~ 
		System.out.println("c = "+ c); // A
		c = 0101; // 8진수 0~
		System.out.println("c = "+ c); // A
		c = 0x41; // 16진수 0x~
		System.out.println("c = "+ c); // A
		
		//float 형이 대략 소수점이하 7자리 정도
		float f = 1.0000001f; // 마지막 f/F는 필수
		System.out.println("f = "+ f); // 1.0000001
		f = 1.00000001f; 
		System.out.println("f = "+ f); // 1.0, 오차발생
		
		//double 형 : 대략 15자리 정도 정밀성
		double d = 1.000000000000001;
		System.out.println("double = "+ d); //1.000000000000001
		d = 1.0000000000000001;
		System.out.println("double = "+ d); // 1.0, 오차발생
		
		
	}

}

 

'프로그래밍 언어 > 자바' 카테고리의 다른 글

연산에서의 타입 변환  (0) 2022.01.07
타입변환  (0) 2022.01.03
변수의 유효범위  (0) 2021.12.31
명명규칙  (0) 2021.12.30
콘솔출력문  (0) 2021.12.28
Comments