2025.02.27
변하지 않는 데이터 그 자체
-> 상수와 혼동할 수 있지만 상수는 데이터가 저장되는 메모리상의 공간, 리터럴은 고정된 값 자체를 의미
숫자 리터럴은 모든 사칙 연산 사용 가능
문자는 내부적으로 숫자로 바꿔서 인식
문자끼리의 연산, 문자와 정수,실수도 사칙연산, mod 연산까지 가능하다. -> 숫자로 변경되어 출력된다.
사칙 연산 중 '+' 연산만 가능 - 연산 결과는 문자열 이어 붙이기
System.out.println(9 + 9 + "9"); //189
'+'의 연산 방향은 왼쪽에서 오른쪽이다 (숫자부터 합쳐짐)
문자열과 숫자 연산을 같이 사용하여 출력할 경우 ()을 잘 사용하여 출력해야한다.
논리 값은 연산 불가능
단, 문자열과의 '+' 연산은 가능
데이터를 저장하기 위한 할당 받은 메모리 공간
변수를 선언 하고 값을 대입하여 사용 -> 선언한 변수에 최초 값을 대입하는 것 = 초기화
자료형 변수명;
형태별로 어느 정도의 크기를 할당할지 미리 Compiler와 약속한 키워드
byte, short, int(대표), long
특수한 경우가 아닌 이상 byte, short는 잘 사용하지 않음
정수형은 비트의 맨 앞 자리에 부호 비트를 둔다.
int 미만의 연산의 처리 결과는 int형 이다.
float, double(대표)
4byte인 자료형 float 보다 8byte 자료형 double이 더 정확한 실수를 표현할 수 있다.
float는 원주율 같이 특수한 목적이 있는 경우에 사용
정수형은 비트의 맨 앞 자리에 부호 비트를 둔다.
숫자로 된 형태의 값을 그대로 사용하는 자료형은 byte, short, int, double
long -> 숫자+L , float -> 숫자+f/F
char
short자료형과 2byte의 할당 크기를 가지지만 부호비트가 없기 때문에 데이터 표현 범위가 더 크다.
short < char
System.out.println('a');
System.out.println('');
문자 형태의 값은 홑따옴표(single-quotation)으로 감싸주어야 한다.
아무 문자도 기록되지 않는 경우도 에러가 발생한다.
boolean
실제 사용하는 8bit 중 가장 오른쪽 1bit만 이용, 할당되는 크기는 1byte
String
기본 자료형에 해당하지 않는 참조자료형
System.out.println("");
System.out.println("a");
아무 값도 없는 빈 쌍따옴표도 문자열로 취급한다.
한 개의 문자도 쌍따옴표로 감싸면 문자열이다. (문자 a와는 다르다)
컴파일러 에러 규칙
개발자들 암묵적인 규칙
변수와 동일하게 데이터를 저장하는 공간
단, 한 번 메모리에 저장된 데이터를 변경할 수 없다.
변수가 담을 수 있는 범위를 벗어나는 데이터를 담았을 때 발생하는 현상
변수, 리터럴을 다른 타입을 형변환
프로그램에서 변수에 값을 넣거나 연산을 수행할 때는 같은 타입만 가능하기 때문이다.
비트의 앞 부분이 손실된다.

연산자(operator)
기호/부호
연산(operation) = 연산자(operator) + 피연산자(operand)
연산자의 흐름은 왼쪽 -> 오른쪽으로 흐른다.
대입 연산자는 왼쪽 <- 오른쪽
+, -, *, /, %
사칙연산과 관련된 연산자
= += -= *= /= %=
변수에 값을 대입할 때 사용하는 이항 연산자
++ --
피연산자를 1증가/감소 시킬 때 사용하는 연산자
피연산자가 하나 (단항연산자)
숫자+단항연산자
다른 연산을 먼저 처리 하고 난 뒤 마지막에 증가 처리가 됨.
== != > >= < <=
상대적인 크기를 판단하여 참/거짓을 반환하는 연산자
&& || !
true/false 를 취급하는 연산자
논리식 && 논리식 : 앞의 결과가 false이면 뒤를 실행 안함
논리식 || 논리식 : 앞의 결과가 true이면 뒤를 실행 안함
(조건식) ? 참일 때 사용할 값 : 거짓일 때 사용할 값
(조건식) ? 참값 : (조건식) ? 참값 : 거짓값
피연산자 항목이 3개인 연산자
조건식은 반드시 결과가 true/false가 나오게 끔 작성