Published 2022. 9. 25. 14:48
변수란?

 

(기억하기 쉽게)저장고에 이름을 붙인것

 

변수는 {   }    마지막 } 를 만나는경우 자동으로 소멸한다.(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
복사했습니다!