JAVA 기본

JAVA학습 2주차 (2021.01.21)

홍박스 2021. 1. 22. 00:19
728x90

학습할 것

  • 프리미티브 타입 종류와 값의 범위 그리고 기본 값
  • 프리미티브 타입과 레퍼런스 타입
  • 리터럴
  • 변수 선언 및 초기화하는 방법
  • 변수의 스코프와 라이프타임
  • 타입 변환, 캐스팅 그리고 타입 프로모션
  • 1차 및 2차 배열 선언하기
  • 타입 추론, var

 

 

프리미티브 타입 종류와 값의 범위 그리고 기본 값

 

일단 프리미티브가 무엇인가?

바로 해석될 수 있는 자료형 이다.

ㄴ 결론 자바의 자료형 종류

 

종류 값의 범위 기본값 메모리 크기
boolean 1 or 2 false 1
char \u0000 to \uFFFF \u0000 //null이 포함된유니코드 2
byte –128 to 127 0 1
short -2^15 ~ (2^15 - 1) 0 2
int -2^31 ~ (2^31 - 1) 0 4
long -2^63 ~ (2^63 - 1) 0L 8
float (3.4 X 10^-38) ~ (3.4 X 10^38) 0.0f 4
double (1.7 X 10^-308) ~ (1.7 X 10^308) 0.0d 8

 

 

자료형 타입과 참조타입

 

자료형 타입은 위와같이 있고

 

참조형 타입은

클래스타입

인터페이스 타입

배열 타입

열거 타입 이있다.

실제값이 아닌 해당값을 접근하여 주소값이 메모리상에 저장된다는 차이점이있다,

 

++정수값

10진수 : 26 16진수 : 0x1a
8진수 : 032 2진수 : 0b11010
자바에서는 정수는 4byte로 표현함 그이상을 표현하고 싶으면 26L == 8byte로 표현한다는 뜻

리터럴

 

 소스 코드의 고정된 값을 대표하는 용어

 

변수 리터럴 상수
변하는 값 변수 데이터가 저장된 메모리 공간을 가리키는 이름을 가지고 있지 않습니다. 저장된 데이터를 변경할 수 없다
  자바에서 리터럴은 타입에 따라구분됨 상수는 선언과 동시에 반드시 초기화해야 합니다
 

 

자바에서는 final 키워드를 사용
 

int var = 30;         // 30이 바로 리터럴임.

final int AGES = 100; // 100이 바로 리터럴임.

 

final int AGES = 30;

++BigDecimal

  • 소수점을 저장할 수 있는 가장 크기가 큰 타입인 double은 소수점의 정밀도에 있어 한계가 있어 값이 유실될 수 있다.
  • double은 2진수로 저장후 10진수로바꾸고
  • Big은 10진수여서 더블은 실제값과 다를 수 있음
  • jsonobject.tistory.com/466

변수 선언 및 초기화

 

타입 변수명

ex)

int a;    // 선언

a = 20; // 초기화

or 

int a = 20;

 

변수의 스코프scope와 라이프타임

 

변수의 영역scope이란

ㄴ변수가 접근하거나 접근할 수 있는 유효 범위/영역

== { }

라이프 타임

변수가 메모리에 살아있는 기간

 

 

타입 변환, 캐스팅 그리고 타입 프로모션

 

타입 변환

ㄴ하나의 타입에서 다른 타입으로 변환하는 것

bool을 제외한 나머지에서 가능

 

1. 묵시적 타입 변환

자동으로 데이터가 손실되지 않는 방향으로 큰거에서 작은 것으로 자료형 변환

ex)double num1 = 10; -> int num1 = 10;

 

2. 명시적 타입 변환

ㄴ사용자가 강제적으로 형을 변환 시키는것

문법

ㄴ(변환할타입) 변환할데이터

ex)

int num1 = 1, num2 = 4;

 

① double result1 = num1 / num2;

② double result2 = (double) num1 / num2;

 

result 

0.0

0.25

 

1번은 연산을 수행하고 얻은 값의 타입이 int 이다.

결과값 == 피연산자

2번은 형을 변화해 double로 값을 구함

 

 

1차 및 2차 배열 선언하기

 

배열

ㄴ같은 타입의 수를 연속적으로 선언하는것

 

문법

타입[] 배열이름 = new 타입[배열길이];

 

 

타입 추론, var

 

개발자가 변수의 자료형을 적지 않아도 컴파일러가 알아서 이 변수의 타입을 대입된 값으로 추론하는것

 

++

casting

변수의 타입를 명시적으로 바꿔주는것

int a = 1.1 // 오류

int a = (int) 1.1 // 1

String f = Integer.toString(1) // 1이라는 정수를 문자열로 변경하는것

 

728x90