○ 자료형 (Data Type)
- 기본자료형 : 정수형, 실수형, 문자형, 문자열형, 논리형
- 참조자료형(reference data type) : 기본자료형을 제외한 모든 타입 (클래스, 인터페이스, 배열 등)
○ 기본 자료형 (Primitive Data Type)
① 정수형
- 소수점이 없는 값
- byte < short < int < long
byte a=1; // 1바이트 할당
short b=3; // 2바이트 할당
int c=5; // 4바이트 할당 (기본)
long d=7; // 8바이트 할당
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
// int c=9; 에러, 변수명은 중복 선언할 수 없다
② 실수형
- 소수점이 있는 값
- float < double < int < long
float e=1.2f; // 4바이트 할당, 접미사 f 반드시 추가
double f=3.4d; // 8바이트 할당, 접미사 d는 생략가능 (기본)
System.out.println(e);
System.out.println(f);
System.out.println(3); // 정수형 int
System.out.println(3.0); // 실수형 double
③ 문자형
- 홑따옴표 ' 로 감싸고, 문자 1개만 저장할 수 있다
- char
char ch='R'; // 2바이트 할당
System.out.println(ch);
ch='가';
System.out.println(ch);
// ch='sky'; 에러, 문자 1개가 아님
④ 문자열형
- 겹따옴표 " 로 감싼다
- String : String은 정확히는 class이지만, 기본형처럼 쓰임
String str="KOREA";
System.out.println(str);
str = "A";
System.out.println(str);
str = ""; // 글자개수 0개
System.out.println("#" + str + "#");
str = " "; // 글자개수 1개
System.out.println("#" + str + "#");
⑤ 논리형
- 맞다(true), 틀리다(false)
- boolean
boolean flag=true;
System.out.println(flag);
flag=false;
System.out.println(flag);
System.out.println(true); // boolean
System.out.println("true"); // String
○ 자료형 변환 (Datatype Conversion)
① 자동 형 변환
- 바이트 수가 작은 자료형이 큰 자료형으로 들어갈 때 자동 형 변환
(정수형 : byte < short < int < long / 실수형 : float < double)
- 정수형과 실수형이 연산이 되면 자동으로 실수형화 된다
byte a=3;
int b=a; // 자동형변환
long c=b; // 자동형변환
// a=c; 에러
float d=3.4f;
double e=d; // 자동형변환
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
int kor=80, eng=75, mat=95;
System.out.println((kor+eng+mat)/3); // 83
System.out.println((kor+eng+mat)/3.0); // 83.33333333333333
System.out.println((kor+eng+mat)/3.); // 83.33333333333333
② 강제 형 변환
- 필요한 곳에서 일시적으로 변환
- 형식) (자료형)값
System.out.println((int)3.5); // 3
System.out.println((double)4); // 4.0
System.out.println((int)2.6+(int)5.7); // 7 (2+5)
System.out.println((int)(2.6+5.7)); // 8 ((8.3))
// int형과 char형의 형변환
System.out.println(65);
System.out.println((char)65); // 'A'
System.out.println((char)66); // 'B'
System.out.println((char)67); // 'C'
System.out.println(97);
System.out.println((char)97); // 'a'
System.out.println((char)98); // 'b'
System.out.println((char)99); // 'c'
System.out.println((int)'A'); // 65
System.out.println((int)'B'); // 66
System.out.println((int)'C'); // 67
System.out.println((int)'a'); // 97
System.out.println((int)'b'); // 98
System.out.println((int)'c'); // 99
○ ASCII (아스키)
- American Standard Code for Information Interchange
- 문자를 숫자로 기억하기 위한 총 128개의 부호
- 미국 ANSI에서 표준화한 정보교환용 7비트 부호체계
- 키보드의 모든 키는 아스키 코드를 가지고 있다
예) A ↔ 65 B ↔ 66 a ↔ 97 b ↔ 98 ESC ↔ 27
- 외워두면 좋은 아스키 코드 : 32(공백), 13(엔터), 65(A), 97(a)
System.out.println((int)'+'); // 43
System.out.println((int)'-'); // 45
System.out.println((int)'*'); // 42
System.out.println((int)'/'); // 47
System.out.println((char)43); // '+'
System.out.println((char)45); // '-'
System.out.println((char)42); // '*'
System.out.println((char)47); // '/'
System.out.println((int)' '); // 32 (공백)
System.out.println((int)'\r'); // 13 (엔터)
System.out.println("&"+(char)13+"&");
System.out.println("#"+(char)32+"#");
System.out.println('A'<'a'); // true (65<97)
// 오름차순 'A' → 'a'
System.out.println('A'+1); // 66
System.out.println((char)('A'+1)); // 'B'
System.out.println('a'-'A'); // 32 (97-65)
Q) 임의의 문자가 소문자인지 확인하시오 (소문자 'a' ~ 'z')
char ch='d';
String result = (ch>='a' && ch<='z') ? "소문자" : "기타";
System.out.println(ch+result);
○ Wrapper(포장) 클래스
- 기본자료형을 참조형화 해 놓은 클래스들
- 대부분 java.lang 패키지에 선언되어 있음
- 기본형처럼 사용가능 + .눌렀을 때 추가적인 기능 이용 가능
boolean boo1=true; //기본자료형
Boolean boo2=false; //wrapper클래스
System.out.println(boo2.toString()); //wrapper클래스 메소드 적용 가능
int in1=3; //기본자료형
Integer in2=5; //wrapper클래스
System.out.println(in2.toString()); //"5"
System.out.println(in2.doubleValue()); //5.0
System.out.println(Integer.toBinaryString(15)); //"1111" (2진법으로 변환)
System.out.println(Integer.toOctalString(15)); //"17" (8진법으로 변환)
System.out.println(Integer.toHexString(15)); //"f" (16진법으로 변환)
System.out.println(Integer.sum(2, 4)); //6
System.out.println(Integer.max(2, 4)); //4
System.out.println(Integer.min(2, 4)); //2
System.out.println(Integer.parseInt("123")); //"123" → 123 변환 (★★★ 자주쓰이는 메소드)
char ch1='R'; //기본자료형
Character ch2='m'; //wrapper클래스
Character ch3='a'; //wrapper클래스
System.out.println(Character.isWhitespace(' ')); //공백인지 확인
System.out.println(Character.toLowerCase('R'));
System.out.println(Character.toUpperCase('a'));
● Practice 연습문제
- Character클래스 활용 연습문제
Q1) 주민번호의 각 숫자의 합을 구하시오 (8+9+1+2+3+0+1+2+3+4+5+6+7)
String jumin="8912301234567";
int hap=0;
for(int i=0; i<jumin.length(); i++) {
hap=hap+Character.getNumericValue(jumin.charAt(i));
}
System.out.println(hap);
Q2) 대소문자를 서로 바꿔서 출력하시오 (gONE wITH tHE wIND)
String str="Gone With The Wind";
for(int i=0; i<str.length(); i++) {
char ch=str.charAt(i);
if(Character.isUpperCase(ch)) {
System.out.print(Character.toLowerCase(ch));
}else {
System.out.print(Character.toUpperCase(ch));
}
}
'Backend > JAVA_Basic' 카테고리의 다른 글
06. JAVA, Math 클래스 (난수, 올림, 버림, 반올림 등 ) (0) | 2022.05.28 |
---|---|
05. JAVA, 출력서식 (printf) (0) | 2022.05.28 |
03. JAVA 기본문법 (식별자, 콘솔창 출력, 연산자) (0) | 2022.05.27 |
02. Eclipse IDE for Enterprise Java and Web Developers 설치 (0) | 2022.05.26 |
01. JDK (JAVA11)설치 및 환경변수 설정 (0) | 2022.05.26 |
댓글