System.out.println("1+2"); - 1+2
System.out.println(1+2); - 3
"" 안에 작성된 코드는 단순 문자열로 인식
"" 안에 작성되지 않은 코드는 숫자, 변수로 인식
System.out.println("14 * 19 =" +266); ------------ 14 x 19 = 266 으로 뜸 (문자 그대로)
System.out.println("14 * 19 =" + 14 x 19); ------- 14 x 19 = 266 으로 뜸 (뒤가 계산)
System.out.println("90 + 70 + 65 = " + 90 + 70 + 65); ---- 907065로 이어쓰기 됨
System.out.println("90 + 70 + 65 = " + (90 + 70 + 65)); -- 뒤가 계산 됨
자바는 사칙연산의 우선 순위를 그대로 따른다
-> 우선 계산을 원하면 () 소괄호 사용
숫자 + 숫자 = 덧셈 연산 결과
문자열 + 숫자 or
문자열 + 문자열 --> 이어쓰기
System.out.println("A" + "B"); - AB
CPU (중앙처리장치)
-> 뇌 (연산, 처리) - 출력
-> 기억 X
램 (주기억장치) - 변수
x=123524234324 기억
HDD / SSD (보조기억장치) - 램으로 올라감
double pi = 3.141592653589793;
int r = 5;
int h = 20;
메모리 공간에 데이터를 저장할 수 있는 공간을 할당하는 것
변수 선언 : 메모리(RAM)에 값을 저장할 공간을 할당하는 것
변수 값 대입 : 변수에 값을 집어 넣는 것.
초기화 : 처음 변수에 값을 대입
리터럴 : 변수에 대입되거나 작성되어지는 값 자체
| 값 | 의미 |
|---|---|
| int | 자료형 |
| intNumber | 변수명 |
| = | 대입연산자 |
| 2147483647 | 리터럴 |
| ; | 마침 |
char 자료형에 숫자가 대입될 수 있는 이유?
대소문자 구분, 길이제한 X
int abcdefg123456789; => G가 달라도 엄연히 다른 코드
int abcdefG123456789;
예약어 사용 X
double final; - XXX
숫자 시작 X
char 1abc; X
char a3bc; O
특수문자 $, _ 만 사용 가능, but 쓰지는 않음
int $intNumber; - 문제는 없음
int int_Number;
자바는 카멜표기법 사용
언더바 작성 표기법은 DB, 자바의 상수에서 사용
ex) MEMBER_NAME
카멜표기법 - 맨처음 소문자 시작, 후속 단어 첫글자 대문자)
ex) char helloWorldAppleBananaTomato
변수명은 언어를 가리지 않는다 (but 쓰지는 않음)
int 정수1번;
double 실수2번 = 3.14;
하면 한글로도 출력이 됨
final double PI VALUE = 3.14;
값이 자료형을 변환하는 것 (단, boolean 제외)
자동으로 값의 범위가 작은 자료형을 값의 범위가 큰 자료형으로 변환
byte - short - int - long - float - double
char /
[int -> double 형변환]
int num1 = 10;
double num2 = 3.5;
=> 둘이 더하면 13.5가 됨
int형이 double형보다 값의 크기가 작음 -> 10에서 10.0으로 자동 형변환
원래 에러가 발생해야 하지만 "자동 형변환" 덕분에 발생하지 않는다.
[int -> long 형변환]
int i2 = 2_1000_000_000;
long l2 = 10_000_000_000L;
둘이 더하면 int가 long으로 자동 형변환 되고 값은 12_000_000_000;이 됨
[char -> int 형변환]
char 자료형은 문자형이지만 실제 저장하는 값은
0부터 6만5천번 사이에 있는 정수형 숫자임
기존 자료형을 원하는 자료형으로 강제 변환 시키는 것
1) 값의 범위가 큰 자료형을 값의 범위가 작은 자료형으로 변환할 때
2) 출력되는 데이터의 표기법을 변환 시키고 싶을 때
자료형을 변환시키고 싶은 값 또는 변수 앞에 (자료형)을 작성
[double -> int 강제 형변환]
double temp = 3.14;
-> int num = (int)temp;
-> double > int 이기 때문에 괄호로 실수 3.14를 정수 3으로 만듦 (데이터 손실)
[int -> byte 강제 형변환]
int iNum = 290;
byte bNum = (byte)iNum;
290 -> 34
-> 같은 정수형 끼리의 변환 시에도 값의 범위 차이 때문에 데이터 손실이 발생
[char -> int 강제 형변환]
char ch = 'A';
System.out.println((int)ch); => 65
[int -> char 강제 형변환]
44085를 보려면
int i3 = 44085;
System.out.println((char)i3); => 갵 이라는 단어 나옴