변수란?
(기억하기 쉽게)저장고에 이름을 붙인것
변수는 { } 마지막 } 를 만나는경우 자동으로 소멸한다.(GC를 사용하기 때문이다.)
자바의 자료형
기본 자료형 8가지
참조 자료형(클래스, 배열, 인터페이스)
논리형
int => 4바이트
String => 2바이트
Wrapper Class 라기 보다는
Boxed primitives 라고 하는게 올바른 표현이다.
primitive type(기본형)
boolean 1비트지만 최소 메모리 어드레싱이 1바이트라서 할당크기는 1바이트 취급 당함 true,false
char 2byte 0 ~ 2^16-1
byte 1바이트 -128 ~ 127 0이 포함되서 양수 쪽은 127이다.
short 2바이트 16비트 최상위 비트는 부호비트 15비트로 표현 -2^15 ~ 2^15-1
int 4byte 32비트 최상위 비트는 부호비트 31비트로 표현 -2^31 ~ 2^31-1(21억)
long 8byte 64비트 , 최상위 비트는 부호비트 63비트로 표현 -2^63 ~ 2^63-1(900경)
double 8byte
float 4byte
( int 만든다음 부족한거 같아서 2배키운 long만듬, 뭔가 반으로 쪼개서 만들고 싶어서 short도 만듬 )
reference type(참조형)
class
array
interface
C언어에서 전부 reference type로 만들었더니 너무 낭비가 심해서
자바에서는 primitive type도 만듬
메모리 addressing 은 바이트 타입이다.
참조 자료형 : heap 에 저장된 주소 번지를 참조 해서 가져 오는 것이기 때문에 참조형이다.
자료형 예시
int i = 2147483647 + 1;
System.out.println(i);
-2147483648 으로 출력됨
long l1 = 2147483648;
The literal 2147483648 of type int is out of range 에러난다.
2147483647 자체가 int 타입으로 인식해서(정수같은 경우는 int를 가장 많이 사용하기 때문에 자동으로 int타입으로 인식 하는 것이다.)
Long형 자료형인걸 알려주기 위해 끝에 L 을 붙여줘야한다.
long l1 = 2147483648L;
float f = 3.1415926535;
Type mismatch: cannot convert from double to float 마찬가지로 실수도 기본형이 double로 잡혀 있기 때문에
float Type으로 사용하고 싶으면 F 를 끝에 붙여줘야 한다.
float f = 3.1415926535F;
진수 계산
10진수 : 10이될때 자리올림이 발생하는 수
2진수 : 2가 될때 자리 올림이 발생하는 수
-1, -2, -3
10진수 2진수
0 0000 0000
1 0000 0001
127 0111 1111
-1 1111 1111
-128 1000 0000
오직 일반적인 디지털에서는 더하기 하나만 하는거다.
7 - 4 => 7 + (-4)
내부적 연산 0000 0111 1111 1100
0000 0111
+ 1111 1100
-------------------------
1 0000 0011
byte 단위(8비트)라서 맨앞자리는 떼는거임 (부호비트 때문에 떼는거 아니지?) 값은 => 3
'Java' 카테고리의 다른 글
[Java]제어문/달력/메모리 구조 (0) | 2022.09.26 |
---|---|
[Java] eclipse단축키 모음 (0) | 2022.09.25 |
[Java] 설치 및 환경 구축_lombok(2) (0) | 2022.09.25 |
[Java] Java 관련 지식 (0) | 2022.09.22 |
[Java]입출력/IO(1)__개발공부 27일차 (0) | 2022.03.30 |