-
자바 100제 Part.1 / 12 ~ 19개발자 수업/인터넷 강의 2021. 9. 13. 18:20
1. 자바의 데이터 타입(자료형)에 대해서 각 타입의 사이즈와 함께 설명
(1) 크게 봤을 때는 기본형 타입, 참조형 타입
(2) 기본형 타입 Primitive Data Type 8개
정수형 -> byte(1byte), short(2), int(4), long(8)
실수형 -> float(4), double(8)
문자형 -> char(2) -> 문자 한 개 -> 문자열을 다루는 타입은 없음
부울형(논리형 : 참/거짓) -> boolean(1) -> true, false
(3) 참조형 타입 Reference Data Type (기본형에 속하지 않는 데이터형)
대표적인 것 -> 클래스(class), 배열(Array), 인터페이스(interface), 문자열(String/immutable)
참조형 변수의 특징 -> 데이터가 저장된 메모리의 주소 값을 저장하는 변수
2. 자바의 Primitive Data Type의 바이트 크기와 비트 크기를 출력하는 코드를 구현
정수형 타입과 문자형 타입에 대해서만, 최댓값과 최솟값도 같이 구하여 출력
public class Java100_variable_003{
public static void main(String[] args){
System.out.println(Byte.BYTES + ", " + Byte.SIZE + ", " + Byte.MIN_VALUE + "~" + Byte.MAX_VALUE);
System.out.println(Short.BYTES + ", " + Short.SIZE + ", " + Short.MIN_VALUE + "~" + Short.MAX_VALUE);
System.out.println(Integer.BYTES + ", " + Integer.SIZE + ", " + Integer.MIN_VALUE + "~" + Integer.MAX_VALUE);
System.out.println(Long.BYTES + ", " + Long.SIZE + ", " + Long.MIN_VALUE + "~" + Long.MAX_VALUE);
System.out.println(Character.BYTES + ", " + Character.SIZE + ", " + (int)Character.MIN_VALUE + "~" + (int)Character.MAX_VALUE);
}
}3. 정수, 실수, 문자형 타입의 변수 사용에서 틀린 곳을 찾아서 모두 수정
public class Java100_variable_DataType1{
public static void main(String[] args) {
int a;
int b; int c = 90; -> b의 값이 없음 -> b = 20;으로 b의 값을 추가
double d;
char e;
a = 10;d = 10; -> d는 실수형이라서 10.0으로 출력 됨
e = "A"; -> 문자 하나는 ''를 사용해야 함 -> e = 'A';
System.out.println( a );
System.out.println( b );
System.out.println( c );
System.out.println( d );
System.out.println( e );
}
}*여러 개 변수 선언 및 초기화 -> 선언 후 값을 세팅
int x, y, z = 900; ---> z만 초기화가 되고 x, y는 초기화가 안 됨
*같은 값으로 초기화
String str1, str2, str3;
str1 = str2 = str3 = "Korea";
4. 기본형 타입의 값을 초기화한 아래 코드에서 틀린 곳을 찾아 수정
byte b = 100;
short s = 30000;
int i = 2100000000;
long l = 700000000; -> 뒤에 접미사 붙여줘야 함 -> long l = 7000000000L;
flaot f = 9.8; -> 뒤에 접미사 붙여줘야 함 -> flaot f = 9.8F;
double d = 3.14;
char c = 'A';
boolean bl = false;
5. 정수형 변수를 문자형으로 형(Type) 변환시켜서 출력하면 어떤 결과가 나오는지
short a = 'A';
System.out.println(a); -> 65가 출력됨 (A의 아스키 타입)
short b = 90;
System.out.println( (char)b); -> Z가 출력됨 (90에 해당되는 문자)
char c = 'a';
System.out.println( (short)c); -> 97이 출력됨 (a의 아스키 타입)
*아스키타입 A는 65, a는 97 / 알파벳 갯수는 26개
6. System.out.print(), println(), printf() 등에 대해 예제를 통해 설명
10진수 10에 대해서 8진수, 16진수로 각각 출력
System.out.printf()는 지시자를 사용한다 / int b = 21;
%d(정수) -> System.out.printf("나는 %d살의 대학생입니다.",b); -> 나는 21살의 대학생입니다.
%f(소수점 형식) -> %. 1f라고 쓰면 소수점 첫째 자리까지 출력됨
%c(문자), %s(문자열), %b(부울), %e(지수), %o(8진수), %x(16진수)
%n(줄바꿈)은 값을 매칭 할 필요 없음 단독 사용 가능
*지시자와 데이터 형식을 매치해서 사용해야 오류가 나지 않음
int b = 10;
System.out.printf("10진수 10은 8진수로 %o이고, 16진수로 %x이다.", b, b);
-> 10진수 10은 8진수로는 12이고, 16진수로는 a이다.
7. 정수형(int)을 문자열(String)로 변환하여 정수의 자릿수를 구하는 코드를 구현
*바꾸는 이유
정수형끼리의 연산이 아닌 경우 더하기 연산 등을 수행했을 때 문자가 합쳐지는 결과가 나올 수 있기 때문에
연산 외에도 메서드 호출 시 인자 값을 정수로 보내서 문자열로 처리하는 또는 반환하는 경우에도 필요
변환하는 방법은 여러 가지가 있음
(1) 정수 선언
int a = 12345;
String str = "12345";
System.out.println(str.length()); -> 5
(2) 정수 -> 문자열로 변환 -> 자릿수 구하기
String stra = String.valueOf(a);
System.out.printls(stra.length()); -> 5
(3) 문자열 + 정수형
System.out.println(12345+1); -> 12346
System.out.println(str+1); -> 123451
(4) 문자열 -> 정수로 변환
int b = Integer.valueOf(str);
System.out.println(b+1); -> 12346
8. 수치 연산자에 대해 설명
수치 연산자 -> +, -, *, /(몫), %(나머지 연산자)
9. 축약된 형태의 연산자를 사용하여 변수 a의 값을 증가
int a = 0, b = 100;
a = a+1;
System.out.println(a);
a += 1; <-- 같은 의미 --> a = a+1;
a -= 1;
b++; --> 101
b--; --> 100
10. 수치 연산자를 사용한 연산에서 소수점 결과가 예상과 다르게 나오는 것에 대해서 설명
(1) 연산의 결과 -> 정수끼리라도 나누기의 경우 소수점 형태가 나올 수 있음
int a=60, b=8;
int rst1; double rst2, rst3, rst4;
rst1 = a / b;
System.out.println(rst1); -> 7이 출력됨 -> 타입이 정수형이므로 실수형으로 변환
System.out.printlnn((double)rst1); -> 7.0이 출력됨 -> 리턴 받는 변수를 실수형으로 하더라도 원하는 결과를 얻지 못함
rst2 = a / (double)b; -> 어느 한쪽의 값을 double 타입으로 변환
System.out.println(rst2); -> 7.5
'개발자 수업 > 인터넷 강의' 카테고리의 다른 글
자바 100제 Part.2 / 1 ~ 5 (0) 2021.09.15 자바 100제 Part.1 / 20 ~ 26 (0) 2021.09.14 자바 100제 Part.1 / 10 ~ 11 (0) 2021.09.13 자바 100제 Part.1 / 6 ~ 9 (0) 2021.09.12 자바 100제 Part.1 / 1 ~ 5 (0) 2021.09.09