봉봉의 개인 블로그
java data type 조사 (primitype(기본) 과 reference type(참조) 본문
1. 기본 데이터 타입
JAVA에는 8개의 기본 데이터 타입 (Primitive data types)이 있다.
정수타입 : byte , short , int , long
부동 소수점 타입 : float , double
부울 데이터 타입 : boolean
문자 데이터 타입 : char
(1) 정수와 부동 소수점
byte 는 8비트로 , 0과 1을 표현하는 1비트의 8자리이다.
byte - 8비트 , short - 16비트 , int - 32비트
long - 64비트 , float - 32비트 , double - 64비트
(2) 명시적 데이터 값 (literal)
java 에서의 정수 리터럴을 int 타입이다.
long 타입을 표현하기 위해서는 숫자 끝에 L이나 I을 붙여준다.
(3) 문자
char 리터럴은 단일 인용 부호로 표현된다.
string 리터럴은 이중 인용 부호로 구분된다.
string 타입은 java의 기본 데이터 타입이 아니며, 한 클래스의 이름이다.
(4) 부울(boolean)
불리안은 두 가지 유효 값을 가진다. ture , false
다른 데이터 타입으로 변환될 수 없고, 다른 데이터 타입도 불리안 값으로 변환될 수 없다.
2. 데이터 변환
확정변환과 축소 변환으로 구분된다.
1)확장 변환
정보가 손실되지 않기 때문에 안전하다.
한 데이터 타입보다 더 큰 타입으로 변환되기 때문에 확장 변환이다.
byte에서 short 변환은 안전하다. 따라서 어떠한 정보 손실도 일어나지 않는다.
정수 -> 정수 , 부동 소수점 -> 부동 소수점 의 확장 변환은 그 값을 보존한다.
하지만 int 나 long을 float , long, double로 변환시킬 때, 유효 숫자 중에서 몇 개가 손실될 수 있다.
2) 축소변환
정보가 손실될 가능성이 많다. 더 작은 공간을 사용하는 다른 타입으로 변환하면서 정보의 일부가 손실됨.
3) 데이터 변환 방법
배정변환은 한 타입의 값이 다른 타입의 변수에 배정될 때 일어나며, 그 과정에서 값이 새로운 타입으로 변환되는 과정에서 일어난다.
캐스팅은 자바에서 가장 일반적인 형변환 형태이다.
자바에서 지원하는 type은 두 가지로 나뉜다.
primitiver type 과 reference type이다.
primitiver type은 Java VM에서 지원을 비객체형 타입이라고 하는데, 비객체라는 건 자바에서 사용되는 객체형 타입은 아니지만 예외적으로 지원을 해야하는 기본형 타입을 말하는 것 같다.
byte, int, short, long, integer, float, double, 부동 소수점 개열과 boolean 등을 예를 들 수 있다.
하지만 위 8가지 기본형 타입은 사용은 가능하지만 자바에서 사용하는 메소드로 통해서 사용이 불가능하다. 그 이유는 primitiver라는 뜻은 원시, 가공되지 않는 것이다.
다만 자바에서 기본형만 사용을 하지만 자바에서 사용되는 객체로는 가공을 할 수 없다는 것이다.
자바에서 사용을 할 수 있도록 자바식 객체를 사용을 하기 위해서 만든 것이 랩퍼(Wrapper) 클래스다.
primitiver type은 stack영역에 생성과 종료가 된다.
reference type은 Java에서의 최상인 java, lang, object 클래스를 상속하는 모든 클래스들을 말한다. 물론 new로 인하여 생성하는 것들을 메모리영역인 heap 영역에 생성을 하게 되고, Garbage collection이라는 곳에 등록을 하게 되서 버려진다.
하지만 이 두가지를 검색하면 String이 꼭 따라다닌다. 그래서 좀 더 특별하게 관리를 하고 예외적으로 처리를 하는 것이다.
'관련 지식' 카테고리의 다른 글
java Object data type조사 (0) | 2017.04.19 |
---|---|
오버로딩 (0) | 2017.04.16 |
JSP) 한글 깨짐 현상 처리 방법( GET방식,POST방식) (0) | 2017.04.07 |
get 과 post 의 차이점 (0) | 2017.04.06 |
절대 경로와 상대경로의 차이점 (0) | 2017.04.04 |