2. 변수와 타입
2.1 변수선언
//변수를 연산에 사용하기 위해서는 초기화가 필요하다.
int value; //변수선언
int result = value + 10; //연산결과를 result의 초기값으로 대입
System.out.println(result);
//변수 result 값을 읽고 콘솔에 출력 인데 초기화 안한거에 값을 더해서 오류남int hour = 3;
int minute = 5;
System.out.println(hour + "시간" + minute + "분");
int totalMinute = (hour*60) + minute;
System.out.println("총" + totalMinute + "분");//두 변수 값을 교환하는 방법
//x값을 temp에 대입 y값을 x에 대입 temp값을 y에 대입 순환과정을 거침.
int x = 3; int y = 5; System.out.println("x:"+x + ", y:" + y);
int temp = x; x = y; y = temp; System.out.println("x:" + x + ", y:" + y);2.2 정수 타입
byte char short int long
정수타입 메모리 사용크기순 byte 8 short 16 int 32 long 64
정수는 2진수 8진수 10진수 16진수로 작성할 수 있음.
int var1 = 0b1011; //2진수
int var2 = 0206; //8진수
int var3 = 365; //10진수
int var4 = 0xB3; //16진수
System.out.println("val1: "+ var1);
System.out.println("val2: "+ var2);
System.out.println("val3: "+ var3);
System.out.println("val4: "+ var4);//허용 범위를 초과한 값을 대입하면 컴파일 오류가 발생한다.
byte bar1 = -128;
byte bar2 = 128; //Type mismatch: cannot convert from int to byte
System.out.println(bar1);
//long타입은 수치가 큰 데이터 은행, 과학분야에서 사용되는 프로그램
//int값을 벗어나는 -2147483648 ~ 2147483647을 초과하면 소문자l이나 대문자L을 붙여 표기
long var1 = 10;
long var2 = 20L;
long var3 = 10000000000000; //컴파일러는 int로 간주하는데 int크기 초과해서 에러발생
long var4 = 10000000000000L;
System.out.println(var1);
System.out.println(var2);
System.out.println(var4);2.3 문자 타입
''안에 넣는 것을 문자 리터럴이라고 하는데 문자 리터럴은 유니코드로 변환하여 저장
유니코드란 세계 각국의 문자를 0~65535 숫자로 매핑한 국제 표준규약임.
//char 타입을 이용하여 저장하기.
char c1 = 'A'; //'A'문자와 매핑되는 숫자: 65로 대입
char c2 = 65;
char c3 = '가'; //'가'문자와 매핑되는 숫자 : 44032로 대입
char c4 = 44032;
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);char c = '';//컴파일에러
char c = ' ';//공백 하나를 포함해서 초기화 유니코드322.4 실수타입
float와 double이 있음.
float 4byte 소수점 7자리 double 8byte 소수점 15자리
double x1 = 0.25;
double y1 = -3.14;
double x2 = 5e2; // 5.0 x 10^2 = 500.0
double y2 = 0.12e-2; // 0.12 x 10^-2 = 0.0012//실수 리터럴을 기본 double로 읽어서 float타입으로 하고싶으면 소문자 f나 대문자 F를 붙이기
double var1 = 3.14;
double var2 = 314e-2;
float var3 = 3.14f;
flaot var4 = 3E6F;정밀도 확인
float var1 = 0.1234567890123456789f;
double var2 = 0.1234567890123456789;
System.out.println("var1: " + var1);
System.out.println("var2: " + var2);//10의 거듭제곱 리터럴
double var3 = 3e6;
float var4 = 3e6F;
double var5 = 2e-3;
System.out.println("var3: " + var3);
System.out.println("var4: " + var4);
System.out.println("var5: " + var5); 
2.5 논리타입
논리 리터럴은 boolean 타입 변수에 넣는다.
boolean stop = true;
boolean stop2 = false;
int x =10;
boolean result1 = (x == 20); //변수값이 20인가?
boolean result2 = (x != 20); //x가 20이 아닌가?
boolean result3 = (x > 20); // x의 값이 20보다 큰가?
boolean result4 = (0 < x && x < 20); //x의 값이 0보다크고 20보다 작은가?
boolean result5 = (x <0 || x > 200); // x값이 0보다 작거나 200보다 큰가? boolean stop = true;
if(stop) {
System.out.println("중지합니다.");
}
else {
System.out.println("시작합니다.");
}
int x = 10;
boolean result1 = (x ==20);
boolean result2 = (x != 20);
System.out.println("result1:" + result1);
System.out.println("result2:" + result2);2.6 문자열타입
''로 감싼 한개의 문자는 char 타입 ""로 감싼 여러개의 문자들은 유니코드로 변환되지 않는다.
//에러
char var1 = "A";
char var2 = "홍길동";
//정상 String타입은 자바기본타입 x 참조타입 나중에 나옴.
String var3 = "A";
String var4 = "홍길동";
// \역슬래쉬는 이스케이프 문자로 특정 문자를 포함 혹은 출력에 영향String name = "홍길동";
String job = "프로그래머";
System.out.println(name);
System.out.println(job);
String str = "나는 \"자바\"를 배웁니다.";
System.out.println(str);
str = "번호\t이름\t직업"; // \t탭만큼띄우기
System.out.println(str);
System.out.println("나는\n"); // \n 줄바꿈
System.out.println("자바를\n");
System.out.println("배웁니다.");Stirng str = """문자열 안에 있는 ㅡ그대로 저장됨."""
String str1 = "" + "{\n" + "\t\"id\":\"winter\",\n" + "\t\"name\":\"눈송이\"\n" + "}";
String str2 = """ {"id":"winter","name":"눈송이"} """;
System.out.println(str1);
System.out.println("--------------------------");
System.out.println(str2);
System.out.println("--------------------------");
String str = """
나는 자바를 \
학습합니다.
나는 자바 고수가 될 겁니다.
""";
System.out.println(str);2.7 자동타입변환
큰허용범위타입 = 작은 허용범위타입 자동으로 타입 변환됨
byte < short, char< int < long < float < double
byte byteValue = 10;
int intValue = byteValue; //자동변환됨
long longValue = 5000000000L;
float floatValue = longValue; //5.0E9F로 저장
double doubleValue = longValue; // 5.0E9로 저장
//char타입의 경우 int로 자동변환되면 유니코드 값이 int타입에 저장
char charValue = 'A';
int intvalue2 = charValue; //65가 저장됨
//byte타입은 음수포함이라 char로 변경 불가
byte byteValue2 = 65;
char charValue2 = byteValue; // 컴파일에러byte byteValue = 10;
int intValue = byteValue;
System.out.println("intValue: " + intValue);
char charValue = '가';
intValue = charValue;
System.out.println("가의 유니코드: " + intValue);
intValue = 50;
long longValue = intValue;;
System.out.println("longValue: " + longValue);
longValue = 100;
float floatValue = longValue;
System.out.println("floatValue: " + floatValue);
floatValue = 100.5F;
double doubleValue = floatValue;
System.out.println("doubleValue: " + doubleValue);
'기초단계 > JAVA' 카테고리의 다른 글
| 2022.11.15-3 JAVA 반복문 (0) | 2022.11.15 |
|---|---|
| 2022.11.15-2 JAVA 조건문 (0) | 2022.11.15 |
| 2022.11.15-1 JAVA 연산자 (0) | 2022.11.15 |
| 2022.11.14-3 JAVA 변수와 타입 2 (0) | 2022.11.14 |
| 2022.11.14-1 JAVA 시작 (0) | 2022.11.14 |