[목차]
01. 변수와 타입
1) 변수 선언
💡
변수란 하나의 값을 저장할 수 있는 메모리 번지에 붙여진 이름입니다.
- 변수 변수를 사용하려면 변수 선언이 필요하고,
어떤 타입의 데이터와 변수 이름을 저장할 것인지 결정
- 변수에 최초로 값이 대입될 때 메모리에 할당 되고, 해당 메모리에 값이 저장된다.
![](https://blog.kakaocdn.net/dn/dptqod/btsd0t2DoBB/GZFeJ5yu09PfN7EyPtZVwk/img.png)
2) 정수 타입
💡
byte, short, char, int, long 타입
- 타입에 따라 저장할 수 있는 값의 종류와 허용 범위가 달라짐
- 정수 타입은 5개로 메모리 할당 크기와 저장되는 값의 범위가 다름 (char 타입도 정수 타입에 속함)
![](https://blog.kakaocdn.net/dn/uM3Si/btsd1iNgVHG/PhGk7rJk3FwxcDqkApCI10/img.png)
3) 문자 타입
💡
문자 리터럴과 char 타입
- 문자 리터럴 : 하나의 문자를 작은 따옴표로 감싼 것
- 문자 리터럴을 유니코드로 저장할 수 있도록 char 타입 제공
![](https://blog.kakaocdn.net/dn/yfMw3/btsdZqZ5A6n/yurL9jaDXkoEGzf2dDZEJK/img.png)
4) 실수 타입
💡
float과 double 타입
- double 타입이 float 타입보다 큰 실수를 저장할 수 있고 정밀도도 높다.
![](https://blog.kakaocdn.net/dn/bKGk7C/btsd0RI71QE/K1K2gKot7YLGC4FVk0v5E0/img.png)
5) 논리 타입
💡
boolean 타입 변수에 대입되는 논리 타입
- 참과 거짓을 의미하는 true와 false로 구성된다.
![](https://blog.kakaocdn.net/dn/bDOddV/btsdZO7iHrm/D4SOt7Zg3cDFTu4LeWa51k/img.png)
6) 문자열 타입
💡
문자열과 String 타입
- 문자열 : 큰따옴표로 감싼 문자들 (String var1 = “ABC”;)
- 이스케이프 문자 : 문자열 내부에 역슬래쉬(\)가 붙은 문자
![](https://blog.kakaocdn.net/dn/k1Xyx/btsd0nBwYEp/hGQKHrH8OjC8q9jipRZNWK/img.png)
7) 자동 타입 변환
💡
데이터 타입을 다른 타입으로 변환하는 것입니다.
- 값의 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 대입될 때 발생
- 정수 타입이 실수 타입으로 대입되면 무조건 자동 타입 변환이 된다.
- 예외 : char 타입보다 허용 범위가 작은 byte 타입은 char 타입으로 자동 변환될 수 없음.
![](https://blog.kakaocdn.net/dn/ejzoco/btsdZH1CZXi/EsujIASxA2KWJYhrnEUjo0/img.png)
8) 강제 타입 변환
💡
캐스팅 연산자로 강제 타입 변환
- 큰 허용 범위 타입을 작은 허용 범위 타입으로 쪼개어서 저장하는 것
- 캐스팅 연산자로 괄호를 사용하며 괄호 안에 들어가는 타입은 쪼개는 단
![](https://blog.kakaocdn.net/dn/bu9rP8/btsdZrkmozA/awSRelKk9zToKjLnOP694K/img.png)
![](https://blog.kakaocdn.net/dn/WrH8P/btsd14BgNt2/qv5KlQkfQeKt9UvWFg7oF1/img.png)
9) 연산식에서 자동 타입 변환
💡
int 타입의 자동 변환
- 정수 타입 변수가 산술 연산식에서 피연산자로 사용되면
int 타입보다 작은 byte, short 타입 변수는 int 타입으로 자동 변환되어 연산 수행
![](https://blog.kakaocdn.net/dn/yn2Wt/btsd6ulQL6V/XZ8pNRVpQyAeRFoF32WKak/img.png)
10) 문자열을 기본 타입으로 변환
💡
String 타입 변환
- 기본 타입의 값을 문자열로 변경할 때는 String.valueOf() 메소드 이용
![](https://blog.kakaocdn.net/dn/cnD3le/btsd1jMamPC/icZPKdFqUDQc52oKwwmbmK/img.png)
11) 변수 사용 범위
💡
변수 범위를 나타내는 중괄호 { } 블록
- 조건문과 반복문의 중괄호 { } 블록 내에 선언된 변수는 해당 중괄호 { } 블록 내에서만 사용 가능하다.
![](https://blog.kakaocdn.net/dn/bkbzLb/btsdZhhQEr9/xRJHPvKKpnbtCio7YFmlT1/img.png)
12) 콘솔로 변수값 출력
💡
println() 메소드로 변수값 출력
- printf()의 형식 문자열에서는 %와 변환 문자를 필수로 작성하고 나머지는 생략 가능 ➡️ printf(”가격 : %d원”, money)
![](https://blog.kakaocdn.net/dn/RckFu/btsd00lAt8y/duqI4KD7VVkeukt8u3tWNK/img.png)
13) 키보드 입력 데이터를 변수에 저장
💡
Scanner 타입 변수 활용
- 변수에 키보드 입력 값을 저장하려면 Scanner 클래스를 사용하여 입력 받은 값을 변수에 대입할 수 있다.
- Scanner 클래스를 사용하기 위해서는 import java.util.Scanner; 문을 추가해야 한다.
- Scanner 클래스의 인스턴스를 생성한 후, nextLine(), nextInt() 등의 메소드를 사용하여 값을 입력받을 수 있다.
![](https://blog.kakaocdn.net/dn/xc6Iv/btsd1izJgCh/GyRZz0XGLdW3Rr25rNmJv0/img.png)
02. 연산자
1) 부호/증감 연산자
👉🏻
부호 연산자 : 변수의 부호를 유지하거나 변경
증감 연산자 : 변수의 값을 1증가시키거나 1감소시킴
![](https://blog.kakaocdn.net/dn/kX40b/btsd4ecxJYT/6ZupxTyCVL0S9ff8LI9mY1/img.png)
![](https://blog.kakaocdn.net/dn/JLznC/btsd3eX8oSg/fq0hjMMw42kkgfskkYkJZK/img.png)
2) 산술 연산자
![](https://blog.kakaocdn.net/dn/Rjar9/btsdYZ2MleI/0KUraM4MEQr7ES8kXyNyRK/img.png)
3) 오버플로우와 언더플로우
👉🏻
오버플로우 : 타입이 허용하는 최대값을 벗어나는 것
언더플로우 : 타입이 허용하는 최소값을 벗어나는 것
4) 정확한 계산은 정수 연산으로
👉🏻
산술 연산을 정확하게 계산하려면 실수 타입을 사용하지 않는 것이 좋다.
5) 나눗셈 연산 후 NaN과 Infinity 처리
![](https://blog.kakaocdn.net/dn/qzwK1/btsd3fJwt3s/SvRuqBkksnL3FxdB1RFb31/img.png)
6) 비교 연산자
👉🏻
비교 연산자는 동등(==, !=) 또는 크기(<,≤,>,≥)를 평가해서 boolean타입인 true/false를 산출
![](https://blog.kakaocdn.net/dn/bHrs0e/btsd0nIg9SA/YVUGPUCRBYXaKgk8FoDSB0/img.png)
7) 논리 연산자
👉🏻
논리곱(&&), 논리합(||), 배타적 논리합(^), 논리부정(!) 연산 수행
![](https://blog.kakaocdn.net/dn/LqTOi/btsdZYWg7i4/r7IGvZZL3rUtF4UCIjfQg0/img.png)
8) 비트 논리 연산자
👉🏻
bit 단위로 논리 연산을 수행. 0과 1이 피연산자가 됨
float, double은 피연산자가 될 수 없다.
![](https://blog.kakaocdn.net/dn/ZdRgD/btsdZPkNSfY/ZjPV47aefzFwgrk9Z1M3uK/img.png)
9) 비트 이동 연산자
👉🏻
비트를 좌측 또는 우측으로 밀어서 이동시키는 연산을 수행
![](https://blog.kakaocdn.net/dn/dpKOqG/btsdZr5KiNh/026l5XNoPK2qkS6F0bE3f0/img.png)
10) 대입 연산자
👉🏻
단순히 값을 대입하는 단순 대입 연산자와 정해진 연산을 수행한 후 결과를 대입하는 복합 대입 연산자가 있음
![](https://blog.kakaocdn.net/dn/cRMlCs/btsd0SutCRo/XbHdukFkbVHzixeQOhukR1/img.png)
11) 삼항(조건) 연산자
👉🏻
총 3개의 피연산자를 가짐
? 앞의 피연산자는 boolean 변수 또는 조건식
이 값이 true이면 콜론 앞의 피연산자가 선택되고,
false이면 콜론 뒤의 피연산자가 선택된다.
![](https://blog.kakaocdn.net/dn/Z0yo0/btsdZAhbCPs/P955AvAl4kngNrXQEnHtWK/img.png)
12) 연산의 방향과 우선순위
👉🏻
연산이 수행되는 순서
![](https://blog.kakaocdn.net/dn/cz3c9U/btsdZi18nsm/RD2qPQDZJjdiVDsCoGs4fK/img.png)
tag : #java #자바 # 변수 #타입 #연산자
Uploaded by N2T