hiflo
하이플로
hiflo
전체 방문자
오늘
어제
  • 분류 전체보기 (33)
    • 이런 분과 함께하고 싶어요 🙋‍♂️ (0)
    • Study in SSAFY (28)
      • Java Programming (2)
      • 이것이 자바다 (7)
      • Algorithm (2)
      • 면접을 위한 CS 전공지식 노트 (10)
      • Computer Science (7)
    • 기록들 (4)
    • 잡담 (1)

블로그 메뉴

  • 📷 Instagram
  • 🔧 관리자

인기 글

태그

  • SSAFY 9기
  • MVVM패턴
  • 영문숫자코드
  • 디자인패턴
  • 2의보수
  • SSAFY
  • complements
  • 수치코드
  • 해시테이블
  • 백준
  • ssafy 면접
  • 팩토리패턴
  • 자료구조
  • mvp패턴
  • 프로그래밍패러다임
  • 비가중치코드
  • 노출모듈패턴
  • 삼성청년SW아카데미
  • 우선순위큐
  • 싸피
  • 프록시패턴
  • 선언형프로그래밍
  • 선형자료구조
  • 전략패턴
  • 절차형프로그래밍
  • 함수형프로그래밍
  • 비선형자료구조
  • 싱글톤패턴
  • 가중치코드
  • 이터레이터패턴

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
hiflo

하이플로

[이것이 자바다] 02. 변수와 타입
Study in SSAFY/이것이 자바다

[이것이 자바다] 02. 변수와 타입

2022. 7. 27. 23:18

 

본 포스팅은 [이것이 자바다]의 내용을 참고하여 작성하였습니다.


 
 

1. 변수 (Variable)

변수란?

  • 하나의 값을 저장할 수 있는 메모리 공간

 

변수의 선언

  • 타입 변수이름; 과 같은 방식으로 선언

ex)

int age;

double type;

…

 

⚠️ 주의 사항 : 예약어를 변수 이름으로 사용할 수 없다!!

ex) long, short, new, try, return, true, false

 

 

변수의 사용

변수 값 저장

  • int score = 90;

2️⃣ 정수 타입 변수 ‘score’에 저장! ← 1️⃣ 90이라는 값을,

 

정수 리터럴

  • 소수점이 없는 정수 리터럴은 10진수

0, 75 -100

 

  • 0으로 시작되는 리터럴은 8진수

02, 04

 

  • 0x 또는 0X으로 시작 or A,B,C,D,E,F 또는 a,b,c,d,e,f로 구성된 리터럴은 16진수

0x5, 0xA, 0XB3, 0xAC08

 

 

실수 리터럴

  • 소수점이 있는 리터럴은 10진수 실수

0.25, -3.14

 

  • E 또는 e가 있는 리터럴은 10진수 지수와 가수

5E7 //5 x 10^7

0.12E-5 //0.12 x 10^(-5)

 

 

문자 리터럴

  • 작은 따옴표(’)로 묶은 텍스트는 하나의 문자 리터럴

‘A’, ‘한’, ‘\t’, ‘\n’

 

 

문자열 리터럴

  • 큰따옴표(”)로 묶은 텍스트는 문자열 리터럴

“나는 Java 천재가 되고 말테야”

 

 

논리 리터럴

  • true, false는 논리 리터럴

true, false

 

⚠️ 주의 사항 : 소문자는 꼭 지켜주셔야 합니다!!

ex) True, FALSE 안됩니다 ❌

 

 

변수값 읽기

  • 변수는 초기화가 되어야 읽을 수 있다.
int value;                //변수 value 선언 (초기화 안 됨)
int result = value + 10;  //값이 초기화되지 않아 Error 발생!!

 

 

변수의 사용 범위

  • 변수는 선언된 블록 내에서만 사용이 가능하다.

ex)

for (int i = 0; i< N; i++) { 
	..          
	..           // 변수 i가 사용될 수 있는 범위
	..          
}

 


 

 

2. 데이터 타입

기본 타입 (원시 타입)

  • 정수, 실수, 문자, 논리 리터럴을 직접 저장하는 타입
값의 종류
기본 타입
메모리 사용 크기
정수
byte
1 byte
 
char
2 byte
 
short
2 byte
 
int 🌟
4 byte
 
long
8 byte
실수
float
4 byte
 
double 🌟
8 byte
논리
boolean
1 byte

 

⚠️ 주의 사항 : int로 표현 가능한 정수 범위 → 약 ±21억

(생각보다.. 엄청나게 크지는 않다?)

 

 

char 타입에 대해서 자세히 알아보자!

  • 자바는 모든 문자를 유니코드(Unicode)로 처리한다.
  • 하나의 문자에 하나의 코드값 부여! (ASCII 코드 표)
  • 즉, 아스키코드 값을 안다면 문자를 이용한 연산이 가능하다!

 

실수 타입을 저장하는 부동소수점 방식은 무엇일까?

  • 실수 타입(float와 double)은 메모리에 1️⃣부호, 2️⃣가수, 3️⃣지수 값을 저장한다.
  • float는 부호(1bit) + 지수(8bit) + 가수(23bit) = 32bit = 4byte
  • double은 부호(1bit) + 지수(11bit) + 가수(52bit) = 64bit = 8byte

즉, 가수를 표현하는 데 있어서 double이 두 배 이상의 메모리를 사용하므로 더 정밀하다.

(실제로 저장되는 가수는 이진수로 나타낼 수 있는 가장 가까운 수여서 오차가 존재한다!)



3. 타입 변환

특정 데이터 타입을 다른 데이터 타입으로 변환하는 것!

 

자동 타입 변환 (묵시적 형변환)

  • 프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것
  • 큰 크기 타입 = 작은 크기 타입 같은 상황에서 발생

◀️ 자동 타입 변환

  • byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)

(작은) 자동 타입 변환 ▶️ (큰)

 

연산식에서의 자동 타입 변환

int intValue = 10;
double doubleValue = 5.5;
double result = intValue + doubleValue;

위와 같은 경우, intValue의 값이 double 타입 값으로 변환되어 계산된다.

 

 

강제 타입 변환 (명시적 형변환)

  • 강제적으로 큰 크기 타입을 작은 크기 타입으로 쪼개서 저장하는 것
  • 작은 크기 타입 = (작은 크기 타입) 큰 크기 타입 과 같이 활용

◀️ 강제 타입 변환

  • 작은 크기 타입의 범위 밖인 값의 경우, 원래 값이 보존되지 않는다!

 

연산식에서의 강제 타입 변환

int intValue = 10;
double doubleValue = 5.5;
int result = intValue + (int)doubleValue;

위와 같은 경우, doubleValue의 값이 int 타입 값으로 변환되어 계산된다.

 

'Study in SSAFY > 이것이 자바다' 카테고리의 다른 글

[이것이 자바다] 12.6 멀티스레드 - 스레드 상태 제어  (0) 2022.09.12
[이것이 자바다] 12.5 멀티스레드 - 스레드 상태  (0) 2022.09.12
[이것이 자바다] 12.4 멀티스레드 - 동기화 메소드와 동기화 블록  (0) 2022.09.12
[이것이 자바다] 11. 기본 API 클래스(Math~Formatting)  (0) 2022.08.10
[이것이 자바다] 10. 예외 처리  (0) 2022.07.31
    'Study in SSAFY/이것이 자바다' 카테고리의 다른 글
    • [이것이 자바다] 12.5 멀티스레드 - 스레드 상태
    • [이것이 자바다] 12.4 멀티스레드 - 동기화 메소드와 동기화 블록
    • [이것이 자바다] 11. 기본 API 클래스(Math~Formatting)
    • [이것이 자바다] 10. 예외 처리
    hiflo
    hiflo
    자극을 엔진으로 삼는

    티스토리툴바