9. 자바 면접 문제 4

1271 단어 Java 면접 문제
1,try {}에 리턴 문장이 있는데 이try 뒤에 있는finally {}에 있는 코드가 실행될지 안 될지 언제 실행되는지,return 앞에서나 뒤에서?
class Demo
{
	public static void main(String[] args) {
		System.out.println(new Test().test());;
	}

	static int test()
	{
		int x = 1;
		try
		{
			System.out.println("try");
			return x;
		}
		finally
		{
			System.out.println("finally");
			++x;
		}
	}
}
  • 운행 결과는 1입니다. 왜요?
  • 주함수가 서브함수를 호출하여 결과를 얻는 과정은 주함수가 빈 깡통을 준비하고 서브함수가 결과를 되돌려 주려고 할 때 먼저 결과를 깡통에 넣은 다음에 프로그램 논리를 주함수로 되돌려 주는 것과 같다.
  • 이른바 반환이란 서브함수이다. 나는 운행하지 않겠다. 너의 주함수는 계속 운행해라. 이것은 아무런 결과도 없다. 결과는 이 말을 하기 전에 항아리에 넣은 것이다.

  • 2. 운행 시 이상과 일반 이상은 어떤 차이가 있습니까?
     
  • 이상은 프로그램 운행 과정에서 나타날 수 있는 비정상적인 상태를 나타낸다
  • 실행 시 이상은 가상 기기의 일반적인 조작 중 발생할 수 있는 이상을 나타내며 흔히 볼 수 있는 운행 오류이다.
  • java컴파일러는 발생할 수 있는 비운행시 이상을 표시해야 하지만 포획되지 않은 운행시 이상을 표시해야 한다고 요구하지 않습니다.
  • 운행 시 이상과 일반 이상은trycatch에 포획될 수 있음
  • 3. error와 exception은 어떤 차이가 있습니까?
     
  • error는 회복이 불가능하지 않지만 어려운 상황에서 심각한 문제가 아니라는 것을 나타낸다.예를 들어 메모리가 넘치고 라인이 잠긴다.프로그램이 이런 상황을 처리할 것이라고 기대할 수는 없다.
  • exception은 디자인 또는 실현 문제를 나타낸다.프로그램이 정상적으로 작동하면 일어나지 않을 것이라는 뜻이다.
  • 좋은 웹페이지 즐겨찾기