일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- JSON.parse
- context switch
- 객체
- JavaScript
- AGGREGATE
- 로그스태시
- 참조에 의한 객체 복사
- 카카오로그인
- DB
- nest
- 카카오 소셜로그인
- 이메일 전송
- react-slick
- Mongoose
- logstash
- 중첩 구조 분해
- 자바스크립트
- MongoDB
- 캐러셀
- nestjs
- javacript
- nextjs
- 위크맵
- Map
- TypeScript
- 구조 분해 할당
- JSON.stringify
- 위크셋
- nodemailer
- 화살표 함수
- Today
- Total
뚜sh뚜sh
[자바의 정석 - 기초편] Chapter 2. 변수(Variable) 본문
변수(variable)란?
- 하나의 값을 저장할 수 있는 메모리 공간
변수의 선언
1. 변수의 선언 이유
- 값(data)을 저장할 공간을 마련하기 위해서
2. 변수의 선언 방법
- 변수타입 변수이름;
변수에 값 저장하기
1. 변수에 값 저장하기('='는 등호가 아니라 대입)
int age; // 정수(int)타입의 변수 age를 선언
age = 25; // 변수 age에 25를 저장
2. 변수의 초기화
- 변수에 처음으로 값을 저장하는 것
int x = 0; // 변수 x를 선언 후, 0으로 초기화
int y = 5; // 변수 y를 선언 후, 5로 초기화
int x = 0, y = 5; // 두 줄을 한 줄로
※ 지역 변수는 읽기 전에 꼭 초기화해야 함
변수의 값 읽어오기
1. 변수의 값이 필요한 곳에 변수의 이름을 적는다
int year = 0, age = 14;
year = age + 2000;
변수의 타입
1. 변수의 타입은 저장할 값의 타입에 의해 결정된다
2. 저장할 값의 타입과 일치하는 타입으로 변수를 선언
변수, 상수, 리터럴
- 변수(variable) : 하나의 값을 저장하기 위한 공간
- 상수(constant) : 한 번만 값을 저장 가능한 변수
- 리터럴(literal) : 그 자체로 값을 의미하는 것
리터럴의 접두사와 접미사
- byte, short 타입은 접미사가 없으며 int 타입으로 표현함
- float 타입은 접미사 f 생략불가
- double 타입은 접미사 d 생략가능
- 접두사 0b : 이진수
- 접두사 0 : 8진수
- 접두사 0x : 16진수
ex1) 10. => 10.0 (double)
ex2) .10 => 0.10 (double)
ex3) 10f => 10.0f (float)
ex4) 1e3 => 1000.0 (double)
변수와 리터럴의 타입 불일치
- 범위가 '변수 > 리터럴'인 경우, OK
- 범위가 '변수 < 리터럴'인 경우, ERROR
- byte, short 변수에 int 리터럴 저장 가능
※ byte 범위 : -128 ~ 127
※ int 범위 : ±20억
문자와 문자열
- String 타입의 변수에는 빈 문자열(""), 문자("a"), 문자열("abc") 다 사용 가능
- char 타입의 변수는 문자만 사용 가능(빈 문자열(''), 문자열('abc') 사용 불가)
값의 타입(기본형)
- 문자 : char
- 숫자(정수) : byte, short, int, long
- 숫자(실수) : float, double
- 논리 : boolean
기본형과 참조형
- 기본형(Primitive type)
- 오직 8개(char, byte, short, int, long, float, double, boolean)
- 실제 값을 저장
- 참조형(Reference type)
- 기본형을 제외한 나머지(String, System 등)
- 메모리 주소를 저장(4 byte 또는 8 byte)
기본형(Primitive type)의 종류와 크기
- 논리형 : true와 false 중 하나를 값으로 가지며, 조건식과 논리적 계산에 사용됨
- 문자형 : 문자를 저장하는 데 사용되며, 변수 당 하나의 문자만을 저장할 수 있음
- 정수형 : 정수 값을 저장하는 데 사용됨, 주로 사용하는 것은 int와 long이며, byte는 이진 데이터를 다루는 데 사용되며, short는 c언어와의 호환을 위해 추가되었지만 잘 안 쓰임
- 실수형 : 실수 값을 저장하는 데 사용됨, float와 double이 있음
기본형의 표현범위
- n비트로 표현할 수 있는 값의 개수 : 2^n개
- n비트로 표현할 수 있는 부호 없는 정수의 범위 : 0 ~ 2^n -1
- n비트로 표현할 수 있는 부호 있는 정수의 범위 : -2^(n-1) ~ 2^(n-1) - 1
- byte : -2^7 ~ 2^7 - 1 => -128 ~ 127
- short : -2^15 ~ 2^15 => -32768 ~ 32767
- char : 0 ~ 2^16 - 1 => 0 ~ 65535
- int : -2^31 ~ 2^31 - 1 => -20억 ~ 20억
- long : -2^63 ~ 2^63 - 1 => -800경 ~ 800경
형식화된 출력 - printf()
- println()의 단점 : 출력형식 지정불가
- 실수의 자릿수 조절 불가
- 10진수로만 출력된다
printf()의 지시자
※ \n, %n 둘 다 개행문자로 사용할 수 있지만 %n은 os에 관계없이 어디에서나 사용할 수 있음
- 정수를 10진수, 8진수, 16진수로 출력
System.out.printf("%d", 15); // 15 (10진수)
System.out.printf("%o", 15); // 17 (8진수)
System.out.printf("%x", 15); // f (16진수)
System.out.printf("%s", Integer.toBinaryString(15)); // 1111 (2진수)
- 8진수와 16진수에 접두사 붙이기
System.out.printf("%#o", 15); // 017
System.out.printf("%#x", 15); // 0xf
System.out.printf("%#X", 15); // 0XF
- 실수 출력을 위한 지시자 %f(지수형식 - %e, 간략한 형식 - %g)
float f = 123.4567890f;
System.out.printf("%f", f); // 123.456787 (소수점아래 6자리)
System.out.printf("%e", f); // 1.234568e+02 (지수형식)
System.out.printf("[%5d]%n", 10); // [ 10]
System.out.printf("[%-5d]%n", 10); // [10 ] (왼쪽정렬)
System.out.printf("[%05d]%n", 10); // [00010]
String url = www.codechobo.com;
System.out.printf("[%s]%n", url); // [www.codechobo.com]
System.out.printf("[%20s]%n", url); // [ www.codechobo.com]
System.out.printf("[%-20s]%n", url); // [www.codechobo.com ]
System.out.printf("[%.8s]%n", url); // [www.code] (부분출력)
화면에서 입력받기(Scanner)
Scanner란?
- 화면으로부터 데이터를 입력받는 기능을 제공하는 클래스
Scanner를 사용하려면?
1. import문 추가
import java.util.*;
2. Scanner 객체의 생성
Scanner scanner = new Scanner(System.in);
3. Scanner 객체를 사용
int num = scanner.nextInt(); // 화면에서 입력받은 정수를 num에 저장
정수형의 오버플로우
오버플로우 : 표현가능한 범위를 넘는 것
- 최댓값 + 1 => 최솟값
- 최솟값 + 1 => 최댓값
타입간의 변환방법
1. 문자와 숫자간의 변환
- 숫자 + '0' => 문자
- 문자 - '0' => 숫자
2. 문자열로의 변환
- 3 + "" => "3"
- '3' + "" => "3"
3. 문자열을 숫자로 변환
- Integer.parseInt("3") => 3
- Double.parseDouble("3.4") => 3.4
4. 문자열을 문자로 변환
- "3".charAt(0) => '3'
'Language > Java' 카테고리의 다른 글
PriorityQueue에서의 Comparator 사용법 (0) | 2023.10.06 |
---|---|
[자바의 정석 - 기초편] Chapter 5. 배열 (0) | 2023.08.04 |
GUI, AWT와 스윙(swing) (0) | 2023.07.06 |
컬렉션 클래스 (0) | 2023.07.06 |
유용한 클래스들 (0) | 2023.07.05 |