자바 데이터 타입
- 기본형 (8개)
stack 영역에 실제값을 저장
문자형 (char) : 'A', '가' ...
논리형 (boolean) : true, false
정수형 (byte, short, int, long) : 1, 10, 200, 3000, 60000 ...
실수형 (float, double) : 1.2, 30.21 ...
- 참조형 (기본형을 제외한 나머지)
heap 영역에 메모리 주소를 저장
배열, 인터페이스 , 클래스(String 포함) 등등
- 타입 크기 (byte)
byte(1) == boolean(2) > short(2) == char(2) < int(4) == float(4) < long(8) == double(8)
리터럴
순수한 그 값 자체를 의미
int number = 2;
2가 리터럴이다.
변수 선언 및 초기화
- 변수 선언
데이터 공간 생성을 의미한다.
데이터 타입 변수명; (int number;)
- 변수 초기화
생성되어 있는 공간에 리터럴(값)을 넣는 행위를 의미한다.
변수명 = 리터럴; (number = 2;)
- 선언과 초기화를 동시에도 가능
데이터 타입 변수명 = 리터럴; (int number = 2;)
- 변수의 종류
클래스 영역에 선언되는 class 변수, instance 변수
공통적인 건 class 변수 (static), 개별적인 건 instance 변수로 선언
메소드 영역에 선언되는 local 변수
변수의 스코프와 라이프 타임
- 변수의 스코프
변수에 접근할 수 있는 유효 범위
{ 중괄호로 시작해서 }; 중괄호로 끝난다.
- 라이프 타임
class 변수는 클래스가 메모리에 올라갈 때 함께 가기 때문에 모든 영역에서 공유가 가능하고 프로그램이 종료될 때까지 유지된다.
instance 변수는 객체가 생성이 되면 메모리 stack 영역에 올라가고 기능을 다하고 gc에 의해 정리가 될 때 함께 종료된다.
local 변수는 메소드 실행이 될 때 생성이 되고 메소드가 종료가 되면 함께 종료된다.
타입 변환, 캐스팅 그리고 타입 프로모션
- 타입 변환
자바에서 타입 변환은 두가지로 나눌 수 있다
1. 묵시적 형변환 (Type promotion)
데이터 크기가 작은 걸 더 큰 데이터 타입에 대입을 하면 JAVA가 자동으로 큰 데이터 타입으로 형변환을 해준다.
2. 명시적 형변환 (Type casting)
개발자가 강제로 형변환을 시켜주는 것으로 데이터 손실이 있을 수 있다.
double d = 3.14;
int number = (int) d;
number == 3
1차 및 2차 배열 선언하기
- 배열이란
같은 타입의 여러 변수를 하나로 묶어 사용하는 것
# 선언
데이터타입[] 배열이름;
int[] numbers;
# 초기화
배열이름 = new 데이터타입[배열크기];
numbers = new int[5]; new를 통해 데이터 공간 생성 후 numbers에 그 주소 값 저장
# 선언과 동시에 초기화
int[] numbers = new int[5];
- 2차원 배열이란
1차원 배열들의 배열(묶음)
# 선언
int[][] numbers;
# 초기화
배열이름 = new int[][] {{123}, {456}};
배열이름 = {{123}, {456}};
#선언과 동시에 초기화
int[][] numbers = new int[][] {{123}, {456}};
int[][] numbers = {{123}, {456}};
타입 추론, var
타입을 일일히 적어주지 않더라도 컴파일러가 추론해서 알아낼 수 있는 걸 말한다.
이름인 var도 그렇고 자바스크립트에서 타입이 정해져 있지 않은 것과 비슷한 느낌을 받았다.
타입을 var로 적어주면 되는데 초기화 값이 있는 지역변수만 가능하다.
* 밑 블로그에서 참고해 공부했음
https://catch-me-java.tistory.com/19
'Java > 스터디' 카테고리의 다른 글
2주차 피드백 참고 (0) | 2021.08.15 |
---|---|
바이트코드 (0) | 2021.08.15 |
1주차 피드백 (0) | 2021.08.04 |
JDK vs JRE (1주차) (0) | 2021.08.01 |
JIT 컴파일 (1주차) (0) | 2021.08.01 |