Day 17

·2023년 6월 29일
0

Global_2023_2

목록 보기
16/56
post-custom-banner

1. throws 에 대하여 설명하시오.

  • Checked Exception에 사용한다.
    • throws Exception 으로 던진다(넘긴다)
      (테스트 용으로 일단 에러를 없애버린다)

2.checked 와 unckecked Excetpion 을 설명하시오.

  • Checked는 예외처리를 해야하는 Exception
    • 시작 전에 실행 불가 (컴파일 에러) 빨간줄 그이는것
  • uncheked는 예외처리가 필요하지 않은 Exception
    • 시작 후 진행중에 실행 불가 (런타임 에러) 빨간줄 없는것

3. 아래가 컴파일 에러가 나는 이유에 대하여 설명하시오.

try {
int num = 6 / 0;
} catch (Exception e) {
e.printStackTrace();
} catch (InputMismatchException e) {
e.printStackTrace();
}

0으로 나누는것은 불가능 하기 때문에

4.아래의 의미는?

public static void main(String[] args) throws Exception {
}

Exception을 ポリモーフィズム 해서 컴파일 에러를 던지는 것

5. 아래를 프로그래밍 하시오.

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. 래퍼 클래스(Wrapper class)란 무엇인가?

  • 기본 자료형에 첫글자가 대문자인 형태

  • 자바 1.5버전부터 적용

  • 기본 8개 데이터 타입을 클래스화

    • integer는 int 값을 가진 클래스
  • 		Integer num1 = new Integer(10);
    		Integer iObj = 10;
     		int num1 = 10;

    3개는 동일 기능 : 오토 박싱 (대신 메모리를 사용)

  • 	Integer num1 = Integer.valueOf(10);
    	Integer num1 = new Integer(10);

    위 아래도 동일 기능

  • toBinaryString(12) 이진수로 변경

2.박싱 & 언박싱에 대하여 설명하시오.

  • 기본형 객체를 Wrapper로 변경 : 박싱 (객체에 다이렉트로 값을 넣는 것)
  • Wrapper를 기본형 객체로 변경 : 언박싱

3. auto unboxing 이란?

  • 자동으로 변환
    • Integer 클래스의 객체를 변수 int로 자동 변환하여 값을 반환

4.아래의 함수는?

  • 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));

어려웠던점 / 해결했던점

은 면접관이 공감하고 어필할수 있는 포인트🔰


Point

  • System.out.println으로 toString이 나오면 함수 오버라이딩이 되어있다

  • 예외처리

    • 예외(Exception)

      • 실행 중간에 발생하는 정상적이지 않은 상황(에러와 다름)
      • 발생시 JVM이 실행중단 시키고
        예외객체를 통해 예외문구를 보여줌
      • 에러 날만한 곳에 try 배치
      • ArithmeticException은 0으로 나눌때 예외
        • e는 JVM가 넣어준다
        • 두개 이상 사용시 |(or의 의미) e는 한개만
      • 최종 호출된 함수가 모든 에러를 잡아낸다
        (그전에 해도 상관은 없다)
      • ArrayindexOutOfBoundsException : 인덱스값 밖
      • ClaccCastException
      • NullPointerException (RuntimeException)
    • 사용하는 이유

      • 죽지 않게 하려고
      • 예외처리
    • e.printStackTrace(); : 찍어라 호출순서 함수(많이 사용)

    • catch는 많이 써도 사용없음 (아는만큼 적어라)

    • Exception 말고 다른걸 쓰는 이유는
      어떤 종류 에러를 나타내는지 표시

  • 함수 호출은 스택

    • 에러 스택에 가장 밑에 있는게 가장 먼저 호출된것
  • OutOfMemoryError 같은 에러는
    OS 메모리에서 에러나서 해결방법 없이 즉사

  • sc.NextLine(); : 스캐너 에러 해결(엔터 찌꺼기 삭제)

    • try 안에 스캐너 새로 생성하는게 편하다 (메모리는 약간 사용)
  • Long의 900경을 넘는 연산이 필요할땐 BigInteger의 "문자" 로
  • 현업에선 새로운걸 만드는것보단 있는걸 잘 가져다 쓰는게 좋다
    (새로 만들면 버그의 가능성이 있고, 기존것은 검증 되었기 때문)

  • 실무에선 오차를 줄이기 위해 특정 단위부터 반올림(둘째자리등)

  • 앞으로
    제너릭 -> Collection framework -> 쓰레드 -> 개인 프로젝트 -> DB -> javascript -> 웹프로그래밍 -> jsp/servet -> 프로젝트 -> spring -> 마지막 프로젝트

post-custom-banner

0개의 댓글