반응형
범위 계산
2^10 = 1024 ~= 10^3 → 2^31 = 2^10 * 2^10 * 2^10 * 2 = 1024 * 1024 * 1024 * 2 ~= 2 * 10 ^9
- 기본형(primitive type) → 계산을 위한 실제 값을 저장한다. 8개
종류/크기 | 1 byte | 2 byte | 4 byte | 8 byte |
논리형 | boolean | |||
문자형 | char | |||
정수형 | byte | short | int | long |
실수형 | float | double |
특징은 다음과 같다.
- 산술 연산이 가능함.
- null로 초기화 할 수 없음.
- 참조형(reference type) → 객체 주소를 저장한다. 8개의 기본형을 제외한 나머지 타입
ex> Integet, Boolean, String....
특징은 다음과 같다.
- 산술 연산 불가
- null로 초기화 할 수 있음.
- DB와 연동시 DTO 객체에 null이 필요한 경우 사용 할 수 있음
primitive type(기본형) VS reference type(참조형) 차이점
기본형은 저장할 값(data)의 종류에 따라 구분된다.
참조형은 항상 “객체의 주소 (4 byte 정수)를 저장” 따라서 값(data)이 아닌 객체의 종류에 의해 구분된다.
기본형 변수는 stack에 실제 값을 저장하여 사용한다.
참조형 변수는 data 영역에 실제 값을 저장하고 stack에는 data 영역의 실제 값을 가지고 있는 주소가 저장된다.
따라서 해당 값들을 매개변수로 이용할 때
- 기본형 매개변수는 변수의 실제 값만 가져오는 것이기에 읽기만 가능한다.
- 참조형 매개변수는 변수의 값을 읽고 변경할 수 있다.
대문자 → reference type , 소문자 → primitive type
Long vs long
- Long은 Wrapper Class이다. 크기는 8byte
- long은 기본형으로 크기는 8byte
- 예를들어 클라로부터 a라는 인자를 받을 때도 있고, 받지 않을 때도 있다. 이 때 a의 값이 없을 때는 null이 대입되므로 Wrapper Class를 사용해야한다.
사용자정의 타입
프로그래머가 서로 관련된 변수들을 묶어서 하나의 타입으로 새로 추가하는 것을 ‘사용자정의 타입(user → defined type)’이라고 한다.
- 다른 프로그래밍언어에서도 사용자정의 타입을 정의할 수 있는 방법을 제공한다.
- 객체지향언어에서는 클래스가 곧 사용자 정의 타입이다.
- 기본형의 개수는 8개로 정해저 있지만 참조형의 개수는 정해두지 않은 이유
사용자 정의 타입으로 class를 만들었을 때 객체지향언어의 장점은
public class Time {
private int hour;
private int minute;
private int second;
public void setHour(int h){
if(h < 0 || h > 23) return;//유효하지 않으면 메서드 종료(return)
this.hour = h;
}
...
}
시,분,초를 한번에 묶을 수 있는것 뿐만아니라 제어자와 메서드를 이용해서 추가적인 제약조건을 반영할 수 있다.
반응형
'책 > Java의 정석' 카테고리의 다른 글
[java] 상속 (extends) (0) | 2023.02.04 |
---|---|
[java] 생성자(constructor)와 this, this() (2) | 2023.02.03 |
[java] static (0) | 2023.02.03 |
[java] 변수의 초기화 (0) | 2023.02.03 |
[java] 선언위치에 따른 변수의 종류 (0) | 2023.02.03 |