본문 바로가기
Book

자바의 정석 - 자바 기본기 정리하기 (1)변수

by devLog by Ronnie's 2021. 11. 5.

들어가며


문제 구현에 있어서 자바에 대한 기본기의 부족함을 느껴서 오랜만에 자바의 기본 저서인 자바의 정석을 다시 피게 됐다. 그러면서 정말 신기한 경험을 하게 되었는데 바로 예전에 잘 이해가 안가서 읽고 넘어갔던 내용들이 이제는 내 머릿속에서 자연스럽게 그려지는 경험을 하게 되었다. 그동안에 시간들이 헛되지는 않았나보다.

 

어느 곳에서나 기본기는 중요하듯이 이번 기회를 통해 자바 기본기를 더 단단히 다지고자 챕터별로 글로 정리하면서 다시 한번 암기를 하고 좀 더 디테일하게 알아야 되는 곳은 챕터를 나눠서 자바의정석에 나온 내용 + 보강된 내용을 더해서 정리를 하고자 한다. 

 

정리


화면출력
print() 줄바꿈 x , println() 줄바꿈 o 
printf() 포맷터 -> %d 정수 %x16진수 %f float %c 문자 %s 문자열

변수
값을 저장할 수 있는 저장공간 / int x = 5; -> 타입을 지정해준다.

변수 타입
int - 정수 / long(20억이 넘을땐 long) / float / double / char 문자 / String 문자열

상수
변수와 마찬가지로 '값을 저장할 수 있는 공간'이지만, 변수와 달리 한번 값을 저장하면 다른 값으로 변경할 수 없다. final만 붙여주면 됨
final int MAX_SPEED = 10;

리터럴
원래 12, 3.14, 'A' 같은 값들이 '상수'인데 프로그래밍에서는 상수를 값을 한번 저장하면 변경할 수 없는 저장공간으로 정의하였으므로 이와 구분하기위해 상수 대신 리터럴이라는 용어를 쓴다. 리터럴은 단지 우리가 기존에 알고 있던 '상수'의 다른 이름일 뿐이다.

리터럴 타입과 접미사
변수에 타입이 있는 것처럼 리터럴에도 타입이 있다.
long 타입일때 리터럴에 l 또는 L을 붙이고 없으면 int 타입의 리터럴이다.
8진수 일때는 접두사 0 -> 010 -> 8진수 10 -> 10진수 8
16진수 일때는 접두사 0x -> 0x10 -> 16진수 10 -> 10진수 16
float -> float pi = 3.14f (f or F 사용가능, 생략 불가)
double rate = 1.16d; (d or D 사용가능, 생략 가능)

 


문자 리터럴과 문자열 리터럴
char ch = 'A'; 문자는 작은따옴표 'Java' 불가능 -> 빈문자 '' 불가능 에러남 -> 반드시 하나의 문자가 필요 -> ' ' 공백은 가능하다.공백 문자로 변수 초기화됨
String -> 문자열은 쌍따옴표 -> "" 빈문자 가능

문자열 결합
+ 연산자를 통해서 문자열 덧셈 가능 -> 피연산자 중 어느 한쪽이 String 이면 나머지 한쪽을 먼저 String으로 변환한 다음 두 String을 결합
-> 어떤 타입의 변수도 문자열과 덧셈연산을 하면 그 결과는 문자열이 됨

두 변수 값 바꾸기
임시로 값을 저장할 tmp 변수 생성 후 아래 단계 진행
int tmp;
tmp = x;
x = y;
y = tmp;

기본형과 참조형
기본형 변수는 실제 값을 저장하는 반면, 참조형 변수는 어떤 값이 저장되어 있는 주소를 값으로 갖는다.



타입 간의 변환방법
숫자 -> 문자 == 숫자에 '0'을 더함
문자 -> 숫자 == 문자에서 '0'을 뺌
숫자 -> 문자열 == 숫자에 빈 문자열을 더한다
문자열 -> 숫자 == Integer.parseInt("문자열")
문자열 -> 문자 == "3".charAt(0) -> '3'
문자 -> 문자열 == 문자에 빈 문자열을 더한다.

 

댓글