- 변수 : 기억장소에 이름을 부여하고 어떤 데이터를 저장할지 데이터 형태 지정, 초기값을 저장
- 변수 선언(기억장소 크기 지정, 이름부여)
- 초기값 할당(기억장소 값을 저장)
int : 데이터 형태 - 정수형, 기억장소 4바이트 크기 지정
컴퓨터 저장 0,1 저장 → bit 1비트에 0,1 저장 가능
1byte → 8bit
4byte → 32bit
10진수 10 → 2진수 8x1+ 4x0 + 2x1 + 1x0 = 1010(2)
** 범위
byte(1byte) : -2의 7승 ~ 2의 7승-1 (-128 ~ 127)
short(2byte) : -2의 15승 ~ 2의 15승-1 (-32768 ~ 32767)
int(4byte) : -2의 31승 ~ 2의 31승-1(-2147483648 ~ 2147483647)
long(8byte) : -2의 63승 ~ 2의 63승-1
byte b=10;
b=128 -> 범위 초과. error
기본적으로 숫자값을 int 인식
long 쓰려면
숫자에 long형을 표시하는 L,l 표시.
ex) long num2= 12345678900L;
컴퓨터는 문자를 0,1로 조합해서 나타냄
* A -> 0,1 조합 65로 전환
char a = 'A' -> 문자는 작은 따옴표로 묶는다. 큰 따옴표는 error
System.out.println(a); // 'A' 문자 출력
System.out.println((int)a); // 'A' 정해진 코드값 변환된 내용 출력 -> int 형으로 변환
char ch3 = 66;
System.out.println(ch3); // char형 B로 출력됨
int ch4=67;
System.out.println(ch4);
System.out.println((char)ch4); // C로 출력됨 -> char 형으로 변환
***
'A' → 65 인코딩
65 → 'A' 디코딩
🤷 char 값은 음수가 없다.
cf) String ch="ABC"; // 여러개 문자를 저장 -> 문자열 -> 기본 자료형 X 참조형 O
char ch9 = '한';
System.out.println(ch9); // 한으로 출력
// 유니코드 16진수
char ch10 = '\uD55C';
System.out.println(ch10); // 한으로 출력
유니코드 사이트 : https://home.unicode.org/
UTF-8, UTF-16 인코딩
- UTF-16 2바이트 표현 → 자바에서 사용. 영문은 1byte로 표현할 수 있는데, 기억장소 낭비
- UTF-8 1~4바이트 표현 → 기억장소 낭비가 적고 속도가 빠름. 인터넷에서 많이 사용 함
double dnum = 3.14;
float fnum = 3.14; -> error 발생
float fnum = 3.14F; -> 숫자 뒤에 F 또는 f 표시해줘야 됨
참, 거짓 값을 나타내는데 사용
boolean(1byte)
남여, 결혼여부,...
boolean b = true;
boolean c = false;
기억장소(변수) -> 기억장소 크기, 자료형 지정
자바 10버전부터는 컴파일러가 자료형 추측해서 인식
var 사용 가능
var num = 10; // int
var dNum=10.0; // double
var str="hello"; // String
변하지 않는 수, 상수 이름은 대문자로 지정
원면적 : 반지름 x 반지름 x 3.14 → 3.14는 상수
int r = 10; //반지름
// final → 값을 변경 못하게 막아줌
final double PI = 3.14;// 원주율 3.14
PI = 4.15 ; 값 변경 → 에러 발생
System.out.println("원의 면적 : " + (r*r*PI)); → 출력 : 원의 면적 : 314.0
final int NUM;
NUM = 0; // 초기값
NUM = 10; → 에러 발생
프로그램에서 사용하는 숫자, 문자, 논리값
ex) 10, 3.4, 'A', true
리터럴은 프로그램이 시작할 때 시스템에 같이 로딩되어 특정 메모리 공간인 상수풀에 놓임.
예를 들어 int num = 3; 문장에서 값 3이 메모리 공간 어딘가에 존재해야 num 변수에 그 값을 복사 할수 있음. 즉 숫자가 변수에 대입되는 과정은 일단 숫자 값이 어딘가 메모리에 쓰여 있고, 이 값이 다시 변수 메모리에 복사되는 것.
참조형 자료형
"" 큰따옴표 표현, 0개 이상 문자
String 타입 → 참조 데이터 타입, 기본 데이터 타입 아님
"Hello, World" 출력
System.out.println("Hello World");
// 변수에 저장 => 출력
String str="홍길동";
System.out.println(str);
"안녕하세요
자바 프로그래밍" 출력
// 이스케이프 문자 줄바꿈(\n), 탭(\t)
// 다음줄 이동 \n
System.out.println("안녕하세요\n자바\t프로그래밍");