티스토리 뷰
프리미티브 타입과 레퍼런스 타입
프리미티브 타입 :
스택 메모리에 바로 실제 값을 저장
null 이 존재하지 않음
레퍼런스 타입 :
힙 메모리에 값이 저장된 곳의 주소 값을 저장, 객체의 주소를 저장
null 이 존재함
8개의 기본형을 제외한 나머지 타입
클래스 이름 = 참조 변수의 타입
프리미티브 타입 종류와 값의 범위 그리고 기본 값
프리미티브 타입 종류
범위 | 기본값 | |||
boolean | 1byte | 논리형 | true, false | false |
char | 2byte | 문자형 | '\u0000' ~ '\uffff' | '\u0000' |
byte | 1byte | 정수형 | -128 ~ 127 | 0 |
short | 2byte | 정수형 | -32768 ~ 32767 | 0 |
int | 4byte | 정수형 | -2147483648 ~ 2147483647 | 0 |
long | 8byte | 정수형 | -9223372036854775808 ~ 9223372036854775807 | 0 |
float | 4byte | 실수형 | 1.4E-45 ~ 3.4E38 | 0.0d |
double | 8byte | 실수형 | 4.9E-324 ~ 1.8E308 | 0.0d |
리터럴
상수는 리터럴에 '의미 있는 이름'을 붙여서 코드의 이해와 수정을 쉽게함
종류 | 리터럴 | 접미사 |
논리형 | false, true | 없음 |
정수형 | 123 | L |
실수형 | 3.14, 1.4f | f,d |
문자형 | 'A','1' | 없음 |
문자열 | 'ABC','123' | 없음 |
실수형에서는 double이 기본 자료형이라서 접미사 d 생략 가능
final int WIDTH = 20;
final int HEIGHT = 10;
int rectangleArea = WIDTH * HEIGHT;
변수 선언 및 초기화하는 방법
int age;
int age = 25;
변수의 스코프와 라이프타임
변수의 스코프 : 변수에 대한 접근과 변수가 존재 할 수 있는 경역, {} 중괄호 영역
라이프 타임
인스턴스 변수 : 클래스 내부에서 선언, 클래스의 객체가 메모리에 존재할 때까지
클래스 변수 : 클래스 내부에서 static으로 선언, 프로그램이 끝날 때까지
지역 변수 : 인스턴스 변수, 클래스 변수가 아닌 선언된 블록 내 변수, 변수가 선언된 블록을 벗어 날 때까지
타입 변환, 캐스팅 그리고 타입 프로모션
자동 타입 변환 :
byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)
작은 범위 타입의 변수가 큰 범위 타입의 변수에 저장 될 때 발생
강제 타입 변환 :
큰범위 타입은 자동변환 되지 않으므로 강제로 캐스팅함, 작은 범위 안에도 있을 수 있는 변수라면 값 보존 가능
1차 및 2차 배열 선언하기
int[] score;
4행 3열의 2차원 배열
int[][] score = new int[4][3];
타입 추론, var
var 타입, 타입을 명시하지 않아도 컴파일러가 변수의 타입을 자동으로 유추함
선언과 동시에 초기화를 필수로 해줄 것!
출처 :
https://league-cat.tistory.com/407
https://math-coding.tistory.com/156
'개발 > Java Study' 카테고리의 다른 글
6주차 : 상속 (0) | 2021.02.13 |
---|---|
5주차 : 클래스 (0) | 2021.02.12 |
4주차 : 제어문 (0) | 2021.02.09 |
3주차 : 연산자 (0) | 2021.02.03 |
1주차 : Java application의 실행 과정 (0) | 2021.01.27 |