[Java] 변수와 데이터타입과 범위

2023. 12. 5. 00:34·Java

[ 변수  ]

1. 변수(Varable)

-변하는 수

-값을 저장할 수 있는 메모리 공간(프로그래밍언어 관점)

 

2. 변수 선언

변수타입 변수이름;

ex)int age;  →  age 라는 저장공간 생김

이유: 값(date) 저장할 공간 마련 위해

 

3-1. 변수 값 저장

int age;  //정수타입변수 age (선언)
age = 25;  //변수age에 25 대입,저장 (초기화)
→int age = 25; //선언 초기화 한번에

 

 

3-2. 변수 초기화

: 변수에 처음 값 저장

int a=1;
int x=0, y=5;

 

*지역변수(자동 초기화x)는 읽기 전 초기화 필수 나중 자세히

 

4.변수 값 읽어오기

-필요한 곳에 변수이름 적음

int a=0, b=2; //초기화
a = b + 2;
→ a= 4;

 

5.변수 명명규칙

-대소문자 구분o 길이제한x
-예약어x
-숫자로 시작x
-특문 '_'와 '$'만 허용

true, True 다른것으로 간주
true(예약어)

 

 

[ 상수 와 리터럴  ]

변수 : 값을 저장할 수 있는 메모리 공간

상수 : 변하지 않는 값 

리터럴 : 변수에 대입하는 상수,  값 그자체

 

int score = 100;

final int MAX = 200;

MAX = 100;  //에러

 

[ 데이터 타입  ]

:저장할 값의 타입에 의해 결정

 

자료형(Data Type)

 

▸기본형 변수(Primitive Type)  : 실제 값 저장 (8개)

  1byte 2byte 4byte 8byte
논리형 boolean      
문자형   char    
정수형 byte short int long
실수형     float double
•논리형
   -boolean : true, false 둘중 하나

•문자형
   -char : 문자 한글자
      ⌙char ch = 'a';

•정수형
   -byte(-128 ~ 127)
   -short(-32768 ~ 32767)
   -int(-20억 ~ 20억)
   -long(-800경 ~ 800경)
      ⌙int 와 구별하기 위해 숫자 뒤에 영문자 L 작성
      ⌙long num = 10L;

•실수형 (소수점o)
   -float(정밀도 소숫점 7자리)
      ⌙double과 구별하기 위해 숫자 뒤에 F(f)를 작성
      ⌙float f = 3.2F;
   -double(정밀도 소숫점 15자리)

 

▸참조형 변수(Reference Type)  : 주소를 값으로 저장 (4byte  or  8byte)

-기본형 제외 나머지 전부 (String, System.. 등)
-클래스이름 변수이름;(클래스가 데이터타입)
-사용자 정의 데이터 타입

 

 

[ 기본형 표현범위  ]

1bit : -0 or 1 (2개)

2bit : (2²개)

0 1
→n bit로 표현 값의 개수 : 2ⁿ
→n bit로 표현 부호없는 정수 범위 : 0~(2ⁿ-1) //0포함해야해서 1뺌
→n bit로 표현 부호있는 정수 범위 : -2ⁿ-¹  ~  (2ⁿ-¹ -1)

 

▸1byte = 8bit

S 0 0 0 0 1 0 1

→ -2⁷ ~ (2⁷ -1)
→ -128 ~ 129

* 맨왼쪽 1bit은 부호비트(Sign bit)로  0: 양수  1:음수  값의 부호 나타냄

 

▸short = 2byte

→-2¹⁵ ~ (2¹⁵ -1)
→-32768 ~ 32767

 

▸char = 2byte  (부호x)

→0   ~  (2¹⁶ -1)

→0 ~ 65535

 

▸int = 4byte

→-2³¹   ~  (2³¹ -1)

→-20억 ~ 20억  이건 그냥 외워두자

 

▸long = 8byte

→-2⁶³   ~  (2⁶³ -1)

→-800경 ~ 800경

 

*진짜 만약 800경 넘는 수 다뤄야 한다면 Big Integer

'Java' 카테고리의 다른 글

[Java] Scanner, Math.round(), Math.random()  (0) 2023.12.08
[Java] printf()의 지시자  (0) 2023.12.08
[Java] 문자,문자열 결합과 두 변수 바꾸기  (0) 2023.12.08
[Java] 타입불일치와 형변환  (0) 2023.12.05
[Java] JAVA 개요  (0) 2023.12.04
'Java' 카테고리의 다른 글
  • [Java] printf()의 지시자
  • [Java] 문자,문자열 결합과 두 변수 바꾸기
  • [Java] 타입불일치와 형변환
  • [Java] JAVA 개요
Naah
Naah
  • Naah
    blueprint
    Naah
  • 전체
    오늘
    어제
    • 분류 전체보기 (106)
      • Java (28)
      • Kotlin (0)
      • TypeScript (7)
      • React (22)
      • Next.js (1)
      • Spring (22)
      • JPA (12)
      • Spring Data JPA (6)
      • Querydsl (1)
      • Error (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • manage
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Naah
[Java] 변수와 데이터타입과 범위
상단으로

티스토리툴바