Java

자바 기초 정리 1

흑우흐규 2023. 3. 23. 13:18

변수

 

데이터가 저장되는 공간

대표적인 3가지 자료형
int: 정수형 데이터
double: 실수형
String: 문자열 //참조형 데이터, heap에 저장이 되고 그 주소값을 참조함

1. 1개의 변수 => 1개의 값만 할당 가능
2. 변수의 저장된 값 => 재할당을 통해 변경 가능
3. 값의 형태에 맞는 자료형을 사용해야 한다.
4. 변수명은 소문자로 시작
5. 변수의 가장 앞에는 숫자를 넣지 않는다.
6. 대소문자는 구분이 된다. //공백은 포함이 되지 않는다.
7. 단어 둘을 합칠때 사이에 대문자로 시작한다.
8. 자바 예약어 사용 불가.

 

데이터 타입

기본형 타입

정수형
1. byte(1 byte = 8 bit) => 2^8만큼 다룸(-128 ~ 127)
2. short(2 byte)
3. int(4 byte)
4. long(8 byte)

만약 해당 범위보다 큰 값이 들어가면 실행이 불가능하다.

실수형
1. double(8 byte) - 15자리 근사치, 보통 이거 씀
2. float(4 byte) - 7자리 float num= 9.50f와 같이 대입을 해줘야 한다.

문자형(문자열과 다름)
1. char(2 byte): 작은 따옴표로 감싸주어야 함
2. char char2 = 97처럼 해주면 아스키 코드로 사용할 수 있음
3. 아스키 뿐 아니라 유니코드로 사용할 수 있음 16진수로 사용하기 때문에 0x~로 사용함

논리형
1. boolean(1 byte)
2. boolean bool_1 = true 이런 식
3. boolean bool_2 = (100<0) 이런 거도 가능
4. 여기서는 1과 0을 대입할 수 없음

참조형 타입

메모리에 데이터가 쓰이는 방법이 기본형과 다름

참조형 데이터의 값 => 힙 메모리 영역
변수에 대입되는 값 => 힙 메모리 영역의 주소값

String a = new String(original: "Hello!");
String b = "Hello!";
String c = "Hello!";

a와 b 둘은 다르다.
b와 c는 같다.

b의 경우가 리터럴 방식인데 이 방식의 경우 생성을 하게 되면 힙 메모리에 같은 값이 있는지를 먼저 확인하게 된다.
a는 new이기 때문에 새로 생성을 하게되는 것이다.

 

상수(constants, final variables)

한 번 값이 할당 => 재할당이 안됨
전체를 대문자, 단어간 구분은 _로 한다.

final로 선언하면 바꿀 수 없음
final int three = 3; //이런 식으로 함

 


형 변환

같은 값이면 자동으로 형태를 변환하는 경우가 있음
byte < short < int < long <<< float < double

int a = 128;
short b = a; // 이건 성립할 수 없다.

int의 범위가 더 크기 때문에 암묵적 형변환은 발생하지 않는다.

int a = 128;
short b = (short)a; // 이건 성립한다.명시적 형 변환을 할 수 있다. 원래128은 short에 들어갈 수 있다.
만약 short에 들어갈 수 없는 값을 넣게 된다면 overflow가 발생하게 된다.


이를 통해서 작은 거에서 큰 단위로는 자동으로 형 변환이 되는 것을 확인할 수 있다.

short a = 10;
int b = a; // 이건 성립할 수 있음

int -> double이렇게 가면 자동으로 형 변환이 된다.
형 변환을 할 때 왜곡되는 값이 있는지 살펴보아야 한다.

연산이 일어날 때는 큰 범위로 이동한다.

print

System.out.print로 실행함

print //개행 안함
println//개행 함
printf // c같이 출력함

intellij에서는 sout으로 할 수 있음

 

 

 


#Java

'Java' 카테고리의 다른 글

객체지향 프로그래밍  (0) 2023.04.04
자바 기초 회원가입 실습  (0) 2023.04.04
배열  (0) 2023.04.04
자바 기초 정리 -콘솔 입출력  (0) 2023.03.23
자바 기초 정리 -String  (0) 2023.03.23