[JAVA] Java Programming

의혁·2024년 7월 16일
0

[JAVA] Java

목록 보기
1/2
post-thumbnail

💡 JAVA 를 학습하면서 헷갈렸던 내용 재정리


1. 리터럴(literal)

💡 리터럴 vs 상수 vs 변수 에 대한 정리

1) 리터럴 vs 상수 vs 변수 정의 비교

             개념                                                         정의                                                    선언 방식    
리터럴변하지 않는 데이터 값 그 자체       int a = 10(리터럴)      
상수변하지 않는 데이터가 저장되는 공간     int final a(상수) = 10       
변수변하는 데이터가 저장되는 공간    int a(변수) = 10      

2) 리터럴 종류

종류        예시접두사, 접미사리터럴 타입
논리형false, true
boolean( 1Byte)                                    
정수형100, 0b0011, 077, 0xFF, 12LL (long타입) - ex. 12L
0 (8진수) - ex. 0132
0x, OX (16진수) - 0x123
byte( 1Byte )
short( 2Byte )
int( 4Byte ) - 정수형 default
long( 8Byte )
실수형3.14, 12.0e8, 7.7f
f, F (float) - ex. 0.12f(F)
d (double) - ex.012d(D)                                            
float( 4Byte)
double( 8Byte ) - 실수형 default
문자형‘O’, ‘1’, ‘\n’char( 2Byte )
문자열“OHGIRAFFERS”, “100”, “Hello”String( 4Byte )

3) 리터럴끼리의 연산

-- 1) 문자형 리터럴 연산

# 문자형 + 정수형 연산 가능
System.out.println('a' + 12)

# 문자형 + 문자형 연산 가능
  System.out.println('a' + 'b');

-> 'a'(아스키코드: 97) + 12 = 109
-> 'a'(아스키코드: 97) + 'b'(아스키코드: 98) = 195
  • JAVA 의 경우에는 문자형과 정수형의 연산이 가능하지만, 문자형(char)아스키코드로 변환하여 정수형과 연산이 되어진다.

-- 2) 실수와 실수의 연산

💡 부동소수점 이란?
: 실수를 근사적으로 표현하는 방식

# 실수형 + 실수형 연산 가능
System.out.println(1.23 % 1.0);
 
 -> 0.22999999999999998 (근사치)
  • JAVA에서 실수간의 연산부동소수점에 의해서 근사치를 도출하기 때문에 실제 값이랑 좀 다를 수 있다.

4) 오버플로우(overflow) & 언더플로우(underflow)

💡 오버플로우(overflow)와 언더플로우(underflow)
: 데이터가 저장될 수 있는 최대 크기를 초과 (overflow)
: 데이터가 저장될 수 있는 최소 크기를 초과(underflow)

-- 1) 오버플로우(overflow)

# 오버플로우 발생
byte num1 = 127;
System.out.println("num1 : " + num1);						      //127 : byte의 최대 저장 범위

num1++;														                    //1 증가
System.out.println("num1 overflow : " + num1);				//-128 : byte의 최소 저장 범위

-> num1 : 127
-> num1 : -128
  • 정수 자료형 중 하나인 byte의 크기는 1byte이므로, 저장 가능한 크기의 범위는 -128 ~ 127 이므로, 최대 크기인 127에서 +1이 되면 오버플로우(overflow) 가 발생하여 -128이 된다.

-- 2) 언더플로우(underflow)

# 언더플로우 발생
byte num2 = -128;
System.out.println("num2 : " + num2);						      //-128 : byte의 최소 저장 범위

num2--;														                    //1 감소
System.out.println("num2 underflow : " + num2);				//127 : byte의 최대 저장 범위

-> num2 : -128
-> num2 : 127
  • 정수 자료형 중 하나인 byte의 크기는 1byte이므로, 저장 가능한 크기의 범위는 -128 ~ 127 이므로, 최저 크기인 -128에서 -1이 되면 언더플로우(underflow) 가 발생하여 127이 된다.


2. 연산자

💡 연산자(Operator)우선순위 가 존재 ( => 단산시교비논삼대)

profile
매일매일 차근차근 나아가보는 개발일기

0개의 댓글

관련 채용 정보