자바 공부기록 06 - 변수의 데이터타입, 선언, 대입
ⓜ정수형 : byte(1), short(2), int(4 - 기본형), -21억 ~ 21억, long(8)
ⓜ실수형 : float(4), double(8 - 기본형)
(기본형이란 별도의 표시없이 쓰여지는 정수나 실수가 int와 double로 인식되어 사용된다는 뜻)
ex) 100(int형), 100L(Long형), 123.12(double형) 123.12F(float형)
byte a = 300; //에러(byte가 담을 수 있는 크기는 더 작음
float a = 123.12; //에러(뒤에 F를 붙여줘야함)
1byte=8bit(00000000 ~ 11111111)
00000000 - A 00000001 - B ..... 256개의 문자 중 하나를 저장가능 7bit : 128개
15 bit = 32768개 16bit = 65536개
ⓜ문자형: char(2 - 유니코드 지원)
ⓜ진위형: boolean(1-true/false의 값만 저장할 수 있음)
ⓜ문자형: String(클래스, 정해진 크기가 없음)
ⓜ변수의 다양한 선언(생성) 방법
1. 변수 선언(생성)후 값을 대입
1
2
3
4
5
6
7
8
9
|
package days05;
import java.util.Scanner;
public class Variable06 {
public static void main(String[] args) {
int n1; n1 = 10;}}
|
cs |
2. 변수의 선언과 값의 대입을 동시에 처리
1
2
3
4
5
6
7
8
9
|
package days05;
import java.util.Scanner;
public class Variable06 {
public static void main(String[] args) {
int n2 = 20;}}
|
cs |
3. 다수개의 변수를 한번에 선언하는 방법(동일한 자료형만 가능)
1
2
3
4
5
6
7
8
9
|
package days05;
import java.util.Scanner;
public class Variable06 {
public static void main(String[] args) {
int n3,n4,n5;}}
|
cs |
4. 다수개의 변수를 값을 대입하면서 생성하는 방법
1
2
3
4
5
6
7
8
9
|
package days05;
import java.util.Scanner;
public class Variable06 {
public static void main(String[] args) {
int n6 = 60, n7 = 70;}}
|
cs |
5. 처음부터 모든 변수에 값을 대입할 필요는 없음
1
2
3
4
5
6
7
8
9
|
package days05;
import java.util.Scanner;
public class Variable06 {
public static void main(String[] args) {
int n8, n9 = 90, n10;}}
|
cs |
-변수는 선언 이후라도, 값이 대입되지 않으면 사용이 불가
-변수의 값은 여러번 대입할 수 있으며, 저장되는 값은 가장 최근, 마지막에 저장한 값이 저장되어 사용
-그 이전에 저장되는 값은 소멸 - 한번에 하나씩만 저장할 수 있는 단점
ⓜchar형 데이터는 컴퓨터 저장장치에 저장될때, 이진수 코드로 저장됩니다
문자를 저장하기 위한 코드체계에 의해 조합된 코드(ASCII 코드)입니다.
이를 십진수로 변환하면 정수로도 변환이 가능합니다.
위의 내용을 기초로 한 결과 정수와 문자간 호환성이 발생됩니다.
1
2
3
4
5
6
7
8
9
10
11
|
public class Variable06 {
public static void main(String[] args) {
char ch = 'A';
int intchar = ch;
System.out.printf("ch -> 정수형 변수에 저장 %d\n", intchar);
System.out.printf("ch -> %c\n", ch);
System.out.printf("ch -> 정수형 변수값으로 임시변환 %d\n", (int)ch);}}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
|
public class Variable06 {
public static void main(String[] args) {
ch = 'B';
System.out.printf("'B' -> 정수값으로 캐스팅 %d\n", (int)ch);
System.out.printf("'B' -> 정수값으로 캐스팅 %d\n", (int)'B');
System.out.printf("'C' -> 정수값으로 캐스팅 %d\n", (int)'C');
System.out.printf("'Z' -> 정수값으로 캐스팅 %d\n", (int)'Z');
System.out.printf("'a' -> 정수값으로 캐스팅 %d\n", (int)'a');
System.out.printf("'z' -> 정수값으로 캐스팅 %d\n", (int)'z');
System.out.printf("'0' -> %d, '9' -> %d\n", (int)'0', (int)'9');}}
|
cs |

-대문자 B 값에 32를 더하여 소문자 b 로 변경할 수 있다.
1
2
3
4
5
|
public class Variable06 {
public static void main(String[] args) {
System.out.printf("%c + 32 -> %c\n", ch, ch + 32);
|
cs |
-아라비아 기호 '8' 에서 아라비아 기호 '0' 을 빼면, 정수 8이 결과로 나온다
1
2
3
4
5
|
public class Variable06 {
public static void main(String[] args) {
System.out.printf(" '8'-'0' -> %d\n", '8' - '0' );
|
cs |
ⓜ실수형 변수의 초기화
-자바에서 모든 실수들은 별도의 표기가 없으면, 기본적으로 double 타입으로 인식합니다
-float 타입으로 값을 저장하기 위해서는 float 형 변수를 선언하고 float 형 데이터를 저장합니다.
-float 변수에 double 형 데이터 입력 -> 에러
-float f1 = 1.123; // 에러
-float 변수에 float 형 데이터 입력 -> 정상실행
1
2
3
4
5
|
public class Variable06 {
public static void main(String[] args) {
double f3 = 1.123;
float f4 = (float)f3;
|
cs |
-float 변수에 캐스팅 연산을 적용한 double 형 데이터 입력 -> 정상실행
1
2
3
4
5
|
public class Variable06 {
public static void main(String[] args) {
double f3 = 1.123;
float f4 = (float)f3;
|
cs |
-용량이 큰 자료형(double)에 작은 자료형(float) 데이터 대입 -> 정상실행
1
2
3
4
5
|
public class Variable06 {
public static void main(String[] args) {
float f5 = 123.123F;
double f6 = f5; // 캐스팅 연산이 필요 없습니다
|
cs |
ⓜ정수들의 값의 대입
1
2
3
4
5
|
public class Variable06 {
public static void main(String[] args) {
int a = 100;
byte b1 = (byte)a;
|
cs |
-위처럼 int변수값(큰값)을 byte형식의 변수 b1(작은값)에 대입하려면 캐스팅이 필요하다
1
2
3
4
|
public class Variable06 {
public static void main(String[] args) {
byte b2 = 123;
|
cs |
-하지만 일반값에 의한 대입은 캐스팅이 필요가 없다(정수데이터에 한해서만 허용)
-용량이 큰 변수값을 용량이 작은 변수값으로 넣으려고 하면 캐스팅 연산 필요
-반대의 경우는 문제없이 모든 실행이 가능