try {
int num = 6 / 0;
} catch (Exception e) {
e.printStackTrace();
} catch (InputMismatchException e) {
e.printStackTrace();
}
0으로 나누는것은 불가능 하기 때문에
public static void main(String[] args) throws Exception {
}
Exception을 ポリモーフィズム 해서 컴파일 에러를 던지는 것
1~100 사이에 숫자를 맞춰보세요 :
50
Down
1~100 사이에 숫자를 맞춰보세요 :
25
UP
1~100 사이에 숫자를 맞춰보세요 :
43
Down
1~100 사이에 숫자를 맞춰보세요 :
30
UP
1~100 사이에 숫자를 맞춰보세요 :
35
정답입니다.5회 만에 맞췄어요.
Scanner sc = null;
int answer = (int)(Math.random()*100+1);
int num=0;
int count = 1;
while(true) {
System.out.println("1~100 사이에 숫자를 맞춰보세요 :");
try {
sc = new Scanner(System.in);
num = sc.nextInt();
} catch (Exception e) {
System.out.println("잘못된 입력입니다. 다시 입력해주세요");
continue;
}
sc = new Scanner(System.in);
num = sc.nextInt();
if(num > answer) {
System.out.println("down");
}
else if(num < answer) {
System.out.println("UP");
}
else if(num == answer) {
System.out.println("정답입니다." + count + "회만에 맞췄어요.");
break;
}
count++;
}
기본 자료형에 첫글자가 대문자인 형태
자바 1.5버전부터 적용
기본 8개 데이터 타입을 클래스화
Integer num1 = new Integer(10);
Integer iObj = 10;
int num1 = 10;
3개는 동일 기능 : 오토 박싱 (대신 메모리를 사용)
Integer num1 = Integer.valueOf(10);
Integer num1 = new Integer(10);
위 아래도 동일 기능
toBinaryString(12) 이진수로 변경
10진수를 2진수를 바꿔 출력하는 함수
10진수를 8진수를 바꿔 출력하는 함수
10진수를 16진수를 바꿔 출력하는 함수
System.out.println("12의 2진 표현" + Integer.toBinaryString(12));
System.out.println("12의 8진 표현" + Integer.toOctalString(12));
System.out.println("12의 16진 표현"+ Integer.toHexString(12));
은 면접관이 공감하고 어필할수 있는 포인트🔰
System.out.println으로 toString이 나오면 함수 오버라이딩이 되어있다
예외처리
예외(Exception)
사용하는 이유
e.printStackTrace(); : 찍어라 호출순서 함수(많이 사용)
catch는 많이 써도 사용없음 (아는만큼 적어라)
Exception 말고 다른걸 쓰는 이유는
어떤 종류 에러를 나타내는지 표시
함수 호출은 스택
OutOfMemoryError 같은 에러는
OS 메모리에서 에러나서 해결방법 없이 즉사
sc.NextLine(); : 스캐너 에러 해결(엔터 찌꺼기 삭제)
현업에선 새로운걸 만드는것보단 있는걸 잘 가져다 쓰는게 좋다
(새로 만들면 버그의 가능성이 있고, 기존것은 검증 되었기 때문)
실무에선 오차를 줄이기 위해 특정 단위부터 반올림(둘째자리등)
앞으로
제너릭 -> Collection framework -> 쓰레드 -> 개인 프로젝트 -> DB -> javascript -> 웹프로그래밍 -> jsp/servet -> 프로젝트 -> spring -> 마지막 프로젝트