자바 인턴 면접 질문

王林
풀어 주다: 2020-10-23 15:35:22
앞으로
17308명이 탐색했습니다.

자바 인턴 면접 질문

다음은 몇 가지 기본적인 Java 인턴 면접 질문입니다.

(추가로 권장되는 면접 질문: java 면접 질문 및 답변)

1. Java란 무엇인가요?
Java는 1995년 SUN(Stanford University Network)에서 시작하여 2010년 ORACLE에 인수된 객체지향 프로그래밍 언어입니다.

2. Java가 인기를 끄는 특징은 무엇인가요?
Java는 크로스 플랫폼 언어입니다(한 번 컴파일하면 어디서나 실행 가능).
예: Java는 Windows 플랫폼에서 hello.java 파일을 작성하고 -> hello.class 파일로 컴파일합니다. 다른 운영 체제에 해당 Java 가상 머신을 설치합니다(모든 시스템 플랫폼에는 Java 컴파일된 파일을 실행하려면 JVM이 있어야 함). 직접 실행할 수 있습니다.

3. Java의 세 가지 기술 아키텍처
Java의 세 가지 기본 기술 아키텍처는 JavaSE, JavaEE, JavaME
JavaSE: JavaEE 및 JavaME의 기반이며 매우 평면적입니다.
JavaEE: 주로 개발자에게 적합한 플랫폼 WEB 응용 시스템 개발을 위해
JavaME: 휴대폰의 APP, 기계(엘리베이터, 청소 로봇)의 언어와 같은 소형 전자 소비자 제품 개발

4 Java 프로그램 작성 시 참고사항
(1) Java 대소문자를 구분하며 해당 Hello와 hello는 다릅니다
(2) Java의 모든 클래스는 클래스 이름에 여러 단어가 있는 경우 각 단어의 첫 글자를 대문자로 사용해야 합니다. . 예: MyFirstJava
(3) 모든 Java 메소드 이름의 첫 글자는 소문자여야 합니다. 여러 단어로 구성되는 경우 다음 단어의 첫 글자는 대문자여야 합니다. 예: findByName
(4), 소스 파일은 클래스 이름

5과 일치해야 합니다. Java에는 어떤 기본 데이터 유형이 있습니까?
Java에는 byte, short, int, long, float의 8가지 기본 데이터 유형이 있습니다. double, char, boolean(6가지 디지털 유형: 4가지 정수 유형(byte, short, int, long), 2가지 부동 소수점 유형(float, double))
byte: 데이터 유형은 8비트, 부호 있음, An 포함 2의 보수 표기법으로 표현되는 정수. 큰 배열에서 공간을 절약하는 데 사용됩니다. 바이트 변수가 차지하는 공간은 int 유형의 1/4에 불과합니다. 해당 패키징 클래스: Byte, value (27- 27-1)
short: 데이터 유형은 2의 보수로 표현되는 16비트 정수입니다. 짧은 데이터 유형은 바이트와 같은 공간을 절약할 수도 있습니다. 짧은 변수는 int 변수 크기의 절반입니다. 해당 포장 등급: Short. 값(215-215-1)
int: 데이터 유형은 2의 보수로 표현되는 32비트 부호 있는 정수입니다. 일반 정수 변수는 기본적으로 int 유형을 갖습니다. 값(231-231-1)
long: 데이터 유형은 2의 보수로 표현되는 64비트 부호 있는 정수입니다. 이 데이터 유형은 큰 정수를 비교해야 하는 시스템에서 주로 사용됩니다. 값(263-263-1)
float: 데이터 유형은 단정밀도 32비트 부동 소수점 숫자입니다. float는 큰 부동 소수점 배열을 저장할 때 메모리 공간을 절약할 수 있습니다. 기본값은 0.0f입니다. 부동 소수점 숫자는 통화와 같은 정확한 값을 나타내는 데 사용할 수 없습니다.
double: 데이터 유형은 배정밀도 64비트 부동 소수점 숫자입니다. 부동 소수점 숫자의 기본 유형은 double입니다. double 유형은 통화와 같은 정확한 값을 나타낼 수도 없습니다. 기본값은 0.0d입니다.
char: 유형은 단일 16비트 유니코드 문자입니다. char 데이터 유형은 모든 문자를 저장할 수 있습니다. 하지만 한 문자만 저장할 수 있습니다.
boolean: 데이터 유형은 한 자리 정보를 나타내며 true와 false의 두 가지 값만 갖습니다. 이 유형은 true 및 false 상황을 기록하는 플래그로만 사용되며 기본값은 false입니다.

6. 접근 권한 수정자는 무엇인가요?
액세스 권한 수정자에는 public, protected, default(기본적으로 작성되지 않음), private
public: 최대 액세스 권한, 외부 인터페이스에 사용됨
protected: 하위 클래스에 전달된 상속된 항목을 보호하는 데 사용됨
default: 액세스용으로 설계됨 이 패키지
비공개: 접근 권한은 클래스 내부로 제한되어 있으며 외부 클래스에서는 접근할 수 없습니다
자바 인턴 면접 질문
7. 프로그램을 어떻게 실행하나요?
모든 Java 프로그램은 공개 정적 viod main(String []args){} 메서드에 의해 실행됩니다.

8. 자바에서 자주 언급되는 객체는 무엇인가요?
객체는 상태와 동작을 포함하는 클래스의 인스턴스입니다.
예를 들어 개는 개체이며 상태에는 색깔, 이름, 품종이 포함됩니다. 꼬리 흔들기, 짖기, 먹기 등.
소프트웨어 개체에도 상태와 동작이 있습니다. 소프트웨어의 객체는 속성이고 동작은 메소드를 통해 반영됩니다

9. 클래스란 무엇인가요?
클래스는 객체 유형의 동작과 상태를 설명하는 템플릿입니다. 클래스는 여러 메서드를 가질 수 있습니다.

10 클래스에서 메서드를 구성하는 방법은 무엇입니까?
객체를 생성할 때 생성자를 하나 이상 호출해야 합니다. 생성자의 이름은 클래스와 동일해야 합니다. 클래스는 여러 생성자를 가질 수 있습니다.

11. 개체를 만드는 방법은 무엇입니까?
객체는 클래스를 기반으로 생성됩니다. Java에서는 new 키워드를 사용하여 새 개체를 만듭니다. 객체를 생성하려면 다음 세 단계가 필요합니다.
선언: 객체 이름과 객체 유형을 포함하여 객체를 선언합니다.
인스턴스화: new 키워드를 사용하여 객체를 생성합니다.
초기화: new를 사용하여 객체를 생성할 때 생성자 메서드가 호출되어 객체를 초기화합니다.
자바 인턴 면접 질문

12 소스 파일 선언에 대한 선언 규칙이 있나요?
(1) 소스 파일에는 하나의 공개 클래스만 있을 수 있습니다.
(2) 여러 개의 비공개 클래스가 있을 수 있습니다.
(3) 소스 파일의 이름은 클래스와 동일해야 합니다.
(4) 경우 소스 파일이 패키지에 정의된 경우 가져오기 패키지는 소스 파일의 첫 번째 줄에 있어야 합니다.
(5) 소스 파일에 import 문이 포함되어 있으면 package 문과 클래스 사이에 정의됩니다. package 문이 없으면 import 문은 소스 파일 앞에 있어야 합니다.
(6) import 문은 문과 패키지 문이 소스 파일에 있습니다. 정의된 모든 클래스가 유효합니다. 동일한 소스 파일에서 다른 클래스에 대해 다른 패키지 선언을 정의할 수 없습니다.

13.
변수는 값을 저장하기 위해 메모리에 적용됩니다. 즉, 변수를 생성할 때 메모리 공간을 신청해야 합니다. 메모리 관리 시스템은 변수의 유형에 따라 공간을 할당하며, 할당된 공간은 해당 유형의 데이터를 저장하는 데에만 사용할 수 있습니다.

14. 변수 정의 기능은 무엇인가요?
다양한 유형을 정의하면 다양한 유형의 숫자(예: 정수, 소수, 문자)를 저장할 수 있습니다.

15. 다양한 유형을 변환할 수 있나요?
낮은 것부터 높은 것까지:
byte, short, char——>int——>long——>float——>double
은 자동으로 변환될 수 있습니다.
(1) 부울 유형에서는 유형 변환을 수행할 수 없습니다.
(2) 객체 유형을 관련 없는 클래스의 객체로 변환할 수 없습니다.
(3) 대용량 유형을 소용량 유형으로 변환할 때 강제 유형 변환이 수행됩니다. 필수( type) 값 유형입니다. 변환 과정에서 오버플로나 정확도 손실이 발생할 수 있습니다
(4) 자동 유형 변환은 변환 전 데이터의 자릿수가 변환 후의 데이터 유형의 자릿수보다 작다는 것을 만족해야 합니다.
(5) 부동 소수점에서 정수로의 변환은 반올림 대신 소수 부분을 버려서 직접 얻습니다.
예: (int)23.7 == 23, (int)-23.7 == -23

16. Java 연산자는 무엇입니까?
(·1) 산술 연산자: 수학의 연산자와 유사, 주로 + - * % ++ -- (++a는 원래 기저에 먼저 1을 더한 후 연산을 수행하고, a– 먼저 연산한 후 1을 뺍니다)
(2) 논리 연산자: 주로 && ||!
(3) 할당 연산자: 주로 할당의 역할을 합니다. 일반적으로 사용되는 연산자는 = += -=
(4) 조건 연산자: 삼항 연산자라고도 합니다. 이 연산자에는 3개의 피연산자가 있으며 부울 표현식의 값을 평가해야 합니다. 이 연산자의 주요 목적은 변수에 할당해야 하는 값을 결정하는 것입니다
예: int a = (20==40)? 30:50;

17. Java의 세 가지 주요 루프 구조는 무엇입니까?
Java에는 세 가지 주요 루프 구조가 있습니다: while 루프, do...while 루프, for 루프
(1) while은 가장 기본적인 루프이며 구조는 다음과 같습니다.
while(부울 표현식) {
// 루프 내용
}
부울 표현식이 true인 한 루프는 계속됩니다.
(2) do...while 루프는 while 루프와 유사하지만 차이점은 do...while 루프가 한 번 이상 실행된다는 것입니다.
do{
//루프 내용
}while (부울 표현식)
(3) for 루프가 실행되는 횟수는 실행 전에 결정됩니다
for (초기화; 불리언 표현식; 업데이트){
// 코드 문장
}

18. 루프 구조에 대한 키워드가 있나요?
주로 포함: break 및 continue;
break: 전체 문 블록에서 벗어나기 위해 루프 문이나 스위치 문에서 주로 사용됩니다. break는 현재 루프에서 벗어나 루프 아래의 문을 계속 실행합니다.
계속: 모든 루프 제어 구조에 적용 가능하며 그 기능은 프로그램이 루프의 다음 반복으로 즉시 점프할 수 있도록 하는 것입니다. for 루프에서 continue 문은 프로그램이 업데이트 문으로 즉시 점프하도록 합니다.
while 및 do...while 루프에서 프로그램은 즉시 부울 표현식의 판단문으로 점프합니다.

19. 숫자 수업이란 무엇인가요?
내장 데이터 유형이 객체로 사용되면 컴파일러는 내장 유형을 래퍼 클래스로 묶습니다. Number 클래스는 java.lang 패키지에 속합니다. 모든 래퍼 클래스(Integer, Long, Byte, Double, Float, Short)는 추상 클래스 Number의 하위 클래스입니다.

20. 자바에서 수학 수업이란 무엇인가요?
기본 지수, 객체, 제곱근, 삼각 함수 등 기본적인 수학 연산을 수행하기 위한 속성과 메서드가 포함되어 있습니다. 수학 메서드는 모두 정적 형식으로 정의됩니다. Math 클래스를 통해 main 함수에서 직접 호출할 수 있습니다.

21. 수학에서 바닥, 원형, 천장의 차이점은 무엇인가요?
ceil: 안내 매개변수보다 크거나 같은 가장 작은 정수를 반환합니다(예: 반올림 대신 Math.ceil(23.2) ==24)
Floor: 안내 매개변수보다 작거나 같은 가장 큰 정수를 반환합니다(예: Math.ceil(23.2) ==24) 예: 반올림 대신 Math.ceil(23.7) ==23)
round: 반올림을 의미하며, 알고리즘은 Math.round(x+0.5), 즉 원래 숫자에 0.5를 더한 후 내림합니다. 따라서 Math.round(11.4)는 11과 같고 Math.round(11.5)는 12와 같고 Math.round(-11.5)는 -11과 같습니다.

22. Character 클래스는 무엇이고 이 클래스에는 어떤 메소드가 있나요?
문자: 내장된 기본 데이터 유형 char에 대해 Java 언어에서 제공하는 래퍼 클래스입니다.
Character의 주요 메서드는 다음과 같습니다. isLetter() - 문자인지 여부, toString - 문자열 길이가 1인지 여부, isUpperCase() - 대문자인지 여부 소문자입니다.

23. 백슬래시() 앞에 오는 문자로 표시되는 이스케이프 문자는 무엇입니까?
일반적으로 사용되는 이스케이프 문자는 다음과 같습니다. t(텍스트의 이 지점에 탭 키 삽입)
d(텍스트의 이 지점에 뒤로 키 삽입)
n(텍스트의 이 지점에 줄바꿈 삽입)
r (본문에 이 부분에 개행을 삽입하세요.) Enter)

24. Java의 String 클래스에 대한 주의사항은 무엇인가요?
문자열은 Java의 객체이며 Java는 문자열을 생성하고 조작할 수 있는 String 클래스를 제공합니다. String 클래스는 변경할 수 없습니다. String 개체가 생성되면 해당 값을 변경할 수 없습니다. 문자열을 수정해야 하는 경우 StringBuffer 또는 StringBuilder 클래스를 사용해야 합니다.

25. length() 메소드, 길이 속성 및 size() 메소드의 차이점은 무엇입니까?
length() 메서드는 문자열용입니다. 문자열 길이를 요구하려면 해당 length() 메서드를 사용해야 합니다.
length() 속성은 Java에서 배열용입니다. 길이 속성을 사용하세요.
Java의 size()는 일반 컬렉션용입니다. 이 일반 항목에 포함된 요소 수를 확인하려면 이 메서드를 호출하세요.

26. 문자열을 연결하는 방법은 무엇입니까?
두 가지 유형이 있습니다:
(1), String 1.concat (String 2)
(2), 더 일반적으로 사용되는 것은 "Hello" + "Word와 같이 '+' 작업을 사용하여 문자열을 연결하는 것입니다. " + "!";

27. Java에서 StringBuffer 클래스와 StringBuilder 클래스의 차이점은 무엇입니까?
StringBuilder 클래스는 Java 5에서 제안되었습니다. 이 클래스와 StringBuffer의 가장 큰 차이점은 StringBuilder의 메서드가 스레드로부터 안전하지 않다는 것입니다(동기적으로 액세스할 수 없음). StringBuilder는 StringBuffer에 비해 속도 이점이 있으므로 대부분의 경우 StringBuilder가 사용됩니다. 그러나 애플리케이션에 선형 안전성이 필요한 경우에는 StringBuffer 클래스를 사용해야 합니다.

28. StringBuffer는 객체 수정을 어떻게 구현하나요?
문자열 버퍼에는 주로 연결을 완료하기 위한 add() 메소드, 추가를 완료하기 위한 insert() 메소드, 반전을 완료하기 위한 reverse() 메소드가 있습니다.
예: buf.append("hi");
buf.insert(0,"Hello"); //첫 번째 콘텐츠 앞에
를 추가합니다. buf.insert(buf.length,'Hello') //In Insert data at the end
String str = buf.reverse().toString(); //내용을 뒤집어 문자열로 변환
buf.replace(6,11,"yes") //단어 내용 바꾸기

29. 배열을 메서드에 매개변수로 전달할 수 있나요?

자바 인턴 면접 질문
30. 현재 시간을 가져오고 시간을 맞춤설정하는 방법은 무엇인가요?
현재 시간 인쇄: Data data = new Date() 데이터는 현재 시간입니다!
자바 인턴 면접 질문
날짜 및 시간 형식 설정, SimpleDateFormat
SimpleDateFormat sc = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
System.out.printf(sc.format(변환할 시간))

31. 자바는 어떻게 잠을 자나요?
Sleep()은 현재 스레드를 정체 상태(현재 프로세스 차단)로 설정하고 CPU 사용을 포기합니다. 그 목적은 현재 스레드가 스레드만으로 얻은 CPU 리소스를 점유하는 것을 방지하는 것입니다. 다른 스레드가 실행될 수 있도록 일정 시간을 남겨 두십시오. 몇 밀리초 동안 프로그램을 절전 모드로 전환할 수 있습니다. Tread.sleep(1000*3) //3초 동안 잠자기
자바 인턴 면접 질문
32. 연도, 월, 일, 일, 분, 초 등 날짜 형식의 특정 부분을 설정하는 방법은 무엇입니까?
캘린더 클래스를 사용하고 있습니다. Calender 클래스는 실제 사용 시 특정 하위 클래스의 객체를 구현하는 추상 클래스입니다. 객체 생성 과정은 프로그래머에게 투명하며 getInstance 메서드를 사용하여 생성하기만 하면 됩니다.
자바 인턴 면접 질문

33. 사용할 수 있는 클래스나 메소드가 있나요?
java.util.regex 패키지에는 주로 다음 세 가지 클래스가 포함됩니다.
패턴 클래스: Pattern 객체는 정규식의 컴파일된 표현입니다. Pattern 클래스에는 공용 생성자가 없습니다. Pattern 개체를 만들려면 먼저 Pattern 개체를 반환하는 공용 정적 컴파일 메서드를 호출해야 합니다.
Matcher 클래스: Matcher 객체는 입력 문자열을 컴파일하고 일치시키는 엔진입니다.
PatternSyntaxExeption: PatternSyntaxExeption은 정규식 패턴의 구문 오류를 나타내는 필수가 아닌 예외 클래스입니다.
자바 인턴 면접 질문

34. 생성자와 메소드 사이의 연결은 무엇입니까?
생성자 메서드의 개념: 객체가 생성되면 시스템이 자동으로 생성자 메서드를 호출합니다. 사용자 정의 생성자가 없으면 시스템은 기본 생성자를 호출합니다. 생성자는 오버로드될 수 있지만 다시 작성할 수는 없습니다. 생성자는 동일하지만 매개변수 목록이 다릅니다. 매개변수 목록은 사람의 이름과 유사하지만 ID 카드가 다를 수 있는 기반 및 기준입니다.
생성자를 사용자 정의할 때 시스템은 전달된 매개변수의 유형과 수량에 따라 자동으로 생성자를 일치시켜 객체를 초기화합니다.

35.스캐너 클래스란 무엇인가요? Scanner 객체를 생성하는 방법
java.util.Scanner는 java5의 새로운 기능입니다. 우리는 사용자로부터 입력을 받을 수 있습니다.
Scanner sc = new Scanner();

36. 입력 문자열을 얻기 위한 Scanner 클래스의 next() 메서드와 nextLine() 메서드의 차이점은 무엇입니까?
next():
(1), 입력을 종료하기 전에 유효한 문자를 읽어야 합니다.
(2), 입력에 유효한 문자 사이에 공백이 있으면 자동으로 제거됩니다.
(3), 입력만 하면 됩니다. 유효한 문자는 나중에 구분 기호 또는 종결자로 사용될 수 있습니다.
(4), next()는 공백이 있는 문자열을 얻을 수 없습니다.
nextLine():
(1), Enter를 종결자로 사용합니다. 캐리지 리턴 앞의 모든 문자
(2), 공백을 얻을 수 있습니다.

37. Java의 세 가지 유형의 예외는 무엇입니까?
Checked Exceptions: 가장 일반적인 유형의 확인된 예외는 프로그래머가 예측할 수 없는 사용자 오류나 문제로 인해 발생하는 예외입니다. 예를 들어, 존재하지 않는 파일을 열려고 하면 예외가 발생합니다. 이러한 예외는 컴파일 타임에 단순히 무시할 수 없습니다.
런타임 예외: 런타임 예외는 프로그래머가 피할 수 있는 예외입니다. 확인된 예외와 달리 런타임 예외는 컴파일 타임에 무시될 수 있습니다.
Error: 오류는 예외가 아니지만 프로그래머가 통제할 수 없는 문제는 코드에서 무시되는 경우가 많습니다. 예를 들어 스택이 오버플로되면 컴파일 중에 확인할 수 없는 오류가 발생합니다.

Java의 모든 예외 유형은 내장 클래스 java.lang.Throwable 클래스의 하위 클래스입니다. 즉, Throwable은 예외 클래스 계층 구조의 최상위 수준에 있습니다. 그림에 표시된 것처럼 Throwable 클래스 아래에는 Exception과 Error라는 두 가지 예외 분기가 있습니다.
자바 인턴 면접 질문

38. 예외와 오류의 차이점은 무엇인가요?
모든 예외는 Throwable 클래스를 상속합니다. 즉, 모든 예외는 객체입니다.
일반적으로 예외는 두 부분으로 나눌 수 있습니다.
(1) 오류: 프로그램에서 처리할 수 없는 오류를 말하며, 응용 프로그램 실행 중에 발생하는 중대한 오류를 나타냅니다. 예를 들어 jvm이 실행 중이고 소켓을 프로그래밍할 때 포트가 점유되어 있을 때 발생하는 OutOfMemoryError와 프로그램에서 처리할 수 없는 기타 오류
(2) 예외: 예외는 런타임 예외와 컴파일 예외로 나눌 수 있습니다. 클래스에는 IOException 클래스와 RuntimeException 클래스라는 두 가지 주요 하위 클래스가 있습니다

39.
예외를 포착하려면 try 및 catch 키워드를 사용하고, 예외가 발생할 수 있는 위치에는 try/catch 코드 블록을 배치하세요. try/catch 블록 내의 코드는 보호된 코드가 됩니다.

40. 던지기와 던지기 키워드의 차이점은 무엇인가요?
메서드가 확인된 예외를 포착하지 못하는 경우 throws 키워드를 사용하여 메서드를 선언해야 합니다. throws 키워드는 메서드 서명 끝에 배치됩니다. 최신 인스턴스화이든 방금 발생한 예외이든 throw를 사용하여 예외를 던질 수도 있습니다.
여러 예외를 발생시키는 메소드를 쉼표로 구분하여 선언할 수 있습니다.

41. Java에서 예외를 사용자 정의하는 방법은 무엇입니까?
자신만의 예외 클래스를 작성할 수 있습니다.
(1), 모든 예외는 Throwable 클래스의 하위 클래스여야 합니다.
(2), 검사 시간 예외를 작성하려면 Exception을 상속해야 합니다. ), 필요한 경우 런타임 예외를 작성하려면 RuntimeException() 예외를 상속해야 합니다

42. 상속의 특징은 무엇입니까? 상속이란 하위 클래스가 상위 클래스의 특성과 동작을 상속하여 하위 클래스 객체(인스턴스)가 상위 클래스의 인스턴스 필드와 메서드를 가지거나, 하위 클래스가 상위 클래스의 메서드를 상속하여 하위 클래스가 상위 클래스가 되도록 하는 것입니다. 상위 클래스와 동일한 동작을 갖습니다.
기능:
(1) 하위 클래스에는 상위 클래스의 비공개 속성과 메서드가 있습니다.
(2) 하위 클래스는 자체 속성과 메서드를 가질 수 있습니다. 3) 하위 클래스는 상위 클래스의 메서드를 구현하는 고유한 방법을 가질 수 있습니다.
(4) Java 상속은 단일 상속만 가능하지만 다중 상속은 하위 클래스가 하나의 상위 클래스만 상속할 수 있음을 의미합니다. 다중 상속은 A 상속 B, B 상속 C이므로 관계에 따르면 클래스 C는 클래스 B의 상위 클래스이고 B는 A의 상위 클래스입니다. 이는 Java 상속과 C++의 차이점에 대한 특징입니다. .

43. 상속의 키워드는 무엇인가요?

상속은 확장과 구현 두 키워드를 사용하여 구현할 수 있습니다. 또한 모든 클래스는 java.lang.Object에서 상속됩니다. 클래스에 상속된 키워드가 없으면 기본적으로 Object 클래스를 상속합니다(이 클래스는 java.lang 패키지에 있으므로 패키지 가져오기가 필요하지 않습니다).
super 키워드
: super 키워드는 상위 클래스 멤버에 액세스하는 데 사용할 수 있으며 현재 개체가 상속하는 상위 클래스를 참조하는 데 사용됩니다.
자바 인턴 면접 질문

이 키워드

: 자신에 대한 언급. final 키워드
: 클래스를 선언하면 클래스를 상속할 수 없는 클래스, 즉 최종 클래스로 정의하거나 하위 클래스로 재정의할 수 없는 메서드를 수정하는 데 사용할 수 있습니다. 부모 클래스 생성자의 특성은 무엇입니까? 하위 클래스는 상위 클래스의 생성자(생성자 및 생성자(매개변수 포함))를 상속할 수 없습니다. 그러나 상위 클래스의 생성자에 매개변수가 있는 경우 상위 클래스를 호출하여 저녁 키를 명시적으로 전달해야 합니다. class는 적절한 매개변수 목록이 있는 생성자입니다.


부모 클래스에 인수가 없는 생성자가 있는 경우 super 키워드가 있는 경우 부모 클래스를 호출하기 위해 자식 클래스의 생성자에서 supper를 사용할 필요가 없습니다. 사용되지 않으면 시스템은 자동으로 상위 클래스의 매개변수 없는 생성자를 호출합니다.
자바 인턴 면접 질문
45. 오버라이드란 무엇이며, 오버로드란 무엇이며, 이들의 차이점은 무엇인가요? 자바 인턴 면접 질문

Rewriting

: 하위 클래스는 상위 클래스의 allowed access 메서드 구현 프로세스를 다시 작성하고 반환 값과 매개변수를 변경할 수 없습니다. 즉, 셸을 변경할 수 없고 코어를 변경할 수 없습니다. 재정의의 장점은 하위 클래스가 필요에 따라 자체 동작을 사용자 정의할 수 있다는 것입니다. 즉, 하위 클래스는 필요에 따라 상위 클래스의 메서드를 구현할 수 있습니다. 재정의 메서드는 확인된 예외나 재정의 메서드 선언보다 더 넓은 예외를 발생시킬 수 없습니다.
Overloading: 오버로딩은 클래스에 있고 메서드 이름은 동일하지만 매개변수가 다르며 반환 유형이 동일하거나 다를 수 있습니다. 오버로드된 각 메서드(또는 생성자)에는 고유한 매개 변수 유형 목록이 있어야 합니다. 가장 일반적인 것은 생성자 오버로딩입니다. 차이
: 메소드 재작성과 오버로딩은 Java에서 다형성의 다른 표현입니다. 재작성은 상위 클래스와 하위 클래스 간의 다형성의 표현으로 이해될 수 있습니다. (1) 메소드 오버로딩은 하나의 클래스에 같은 이름의 메소드가 여러 개 정의되어 있고 매개변수가 다르거나 개수는 같지만 유형이 다르고 순서가 다른 경우 메소드의 오버로딩이 됩니다. (2) 메소드 오버라이딩(Method Overriding)은 하위 클래스의 상위 클래스 메소드와 이름이 같고, 매개변수의 개수도 타입과 같고, 반환값도 같은 메소드를 오버라이딩이라고 합니다
( 3) 메소드 오버로딩 클래스의 다형성 표현이고, 두 번째 메소드의 오버라이딩은 하위 클래스와 상위 클래스의 다형성 표현이다.

46. 추상 클래스란 무엇인가요? 추상 클래스와 메서드를 정의하는 방법은 무엇인가요?
추상 클래스: 추상 클래스가 객체를 인스턴스화할 수 없다는 점을 제외하면 클래스의 다른 함수는 여전히 존재합니다. 멤버 변수, 멤버 메서드 및 생성자의 액세스 방법은 일반 클래스와 다릅니다. 추상 클래스는 객체를 인스턴스화할 수 없으므로 추상 클래스를 사용하기 전에 상속해야 합니다.
자바 인턴 면접 질문

상위 클래스에는 하위 클래스 컬렉션에 대한 공통 메서드가 포함되어 있지만 상위 클래스 자체가 추상이므로 이러한 메서드를 사용할 수 없습니다. Java에서 추상 클래스는 상속 관계를 나타냅니다. 클래스는 하나의 추상 클래스만 상속할 수 있지만 클래스는 여러 인터페이스를 구현할 수 있습니다.
추상 클래스 정의: 추상 클래스를 사용하여 Java 언어로 추상 클래스를 정의합니다.
추상 메서드 정의: 특수 멤버 메서드가 포함된 클래스를 디자인하고 메서드의 특정 구현이 해당 하위 클래스에 의해 결정되는 경우 부모 클래스에서 메서드를 선언할 수 있습니다. Abstract 키워드는 추상 메서드를 선언하는 데에도 사용됩니다. 추상 메서드에는 메서드 이름만 포함되고 메서드 본문은 포함되지 않습니다(추상 메서드는 정의되지 않으며 메서드 이름 바로 뒤에 중괄호 대신 세미콜론이 옵니다). 클래스에 추상 메서드가 있는 경우 추상 클래스여야 합니다
자바 인턴 면접 질문

47.
(1) 클래스에 추상 메서드가 포함된 경우 클래스는 추상 클래스여야 합니다.
(2) 모든 하위 클래스는 상위 클래스의 추상 메서드를 재정의하거나 자신을 추상 클래스로 선언해야 합니다.

(추천 튜토리얼: java 강좌)

48. 캡슐화란 무엇이며 장점은 무엇인가요? Java는 어떻게 캡슐화됩니까?
Encapsulation: 추상 기능 인터페이스의 구현 세부 사항을 패키징하고 숨기는 방법을 말합니다. 캡슐화는 클래스의 코드와 데이터가 외부 클래스에 의해 정의된 코드에 의해 무작위로 액세스되는 것을 방지하는 보호 장벽으로 생각할 수 있습니다.
장점:
(1) 좋은 캡슐화는 결합을 줄일 수 있습니다.
(2) 클래스 내부 구조를 자유롭게 수정할 수 있습니다.
(3) 멤버 변수를 더 정확하게 제어할 수 있습니다. 정보 및 구현 세부 사항

캡슐화 : (1) 속성에 대한 액세스를 제한하도록 속성의 가시성을 수정합니다(일반적으로 비공개로 제한됨).
(2) 각 값 속성 공용 메서드 액세스에 대한 외부 인터페이스를 제공합니다. 즉, 사유 재산에 대한 액세스입니다. (일반적으로 이러한 메서드를 개발 중인 엔터티 클래스와 같이 getter 및 setter 메서드라고 합니다.)

49. 인터페이스와 클래스의 유사점과 차이점은 무엇인가요? 동일:
(1) 인터페이스는 여러 메서드를 가질 수 있습니다.
(2) 인터페이스 파일은 .java로 끝나는 파일에 저장됩니다.
(3) 인터페이스의 바이트코드 파일은 파일 끝으로 저장됩니다. .class에서는
파일이 다릅니다.
(1) 인터페이스는 객체를 인스턴스화할 수 없습니다(추상 클래스와 동일).
(2) 인터페이스에는 생성자 메서드가 없습니다.
(3) 인터페이스의 모든 메서드는 추상 메서드여야 합니다. ), 인터페이스는 멤버 변수를 포함할 수 없습니다.
(5), 인터페이스는 클래스에 의해 상속될 수 없습니다.
(6), 인터페이스는 다중 상속을 지원합니다. 추상 클래스와 인터페이스?

(1) 추상 클래스의 메서드는 메서드 본문을 가질 수 있습니다. 즉, 메서드의 특정 기능을 구현할 수 있지만 인터페이스의 메서드는 구현할 수 없습니다.

(2) 추상 클래스의 멤버 변수는 다양한 유형일 수 있지만 인터페이스의 멤버 변수는 공개 정적 최종 유형만 될 수 있습니다.

(3) 인터페이스는 정적 코드 블록 및 정적 메서드를 포함할 수 없습니다(정적으로 수정된 메서드 사용). 추상 클래스는 정적 코드 블록과 정적 메서드를 가질 수 있습니다 (4) 클래스는 하나의 추상 클래스만 상속할 수 있으며 클래스는 여러 인터페이스를 구현할 수 있습니다. 인터페이스는 은둔 추상입니다. 인터페이스를 선언할 때 abstract 키워드를 사용할 필요는 없습니다. 인터페이스의 모든 메서드도 암시적으로 추상이므로 선언할 때 추상을 추가할 필요가 없습니다. 인터페이스의 메소드 인터페이스의 메소드를 구현하기 위해 인터페이스를 구현하는 클래스가 인터페이스에 있습니다.




신입 Java 학생으로서 Java의 기본 사항이 중요하므로 반드시 질문을 받게 됩니다. 이러한 기본 사항을 잘 익힐 수 있다면 면접에 합격할 가능성은 매우 희박할 것입니다. Java의 기본을 함께 복습해 봅시다!

1、Java到底是什么东西?
Java是一款面向对象的编程语言,是SUN(斯坦福大学网络公司)1995年推出的,在2010年被ORACLE收购

2、Java这么热门它有什么特点呢?
Java是跨平台性的语言(一处编译,到处执行)。
例如:Java在Windows平台中编写hello.java文件—>编译成hello.class文件;在不同的操作系统中安装对应的Java虚拟机(所有的系统平台必须有JVM才可以运行Java编译的文件),就可以直接运行

3、Java的三种技术架构
Java三种基本技术架构分别是:JavaSE、JavaEE、JavaME
JavaSE:是JavaEE与JavaME的基础,是非常平面话的
JavaEE:适合开发者的平台主要针对WEB应用系统的开发
JavaME:开发小型的电子消费品;比如:手机上的APP;机器上的语言(电梯、扫地机器人)

4、在编写Java程序时的注意点
(1)、Java是大小写敏感的,对应的Hello和hello是不同的
(2)、Java对于所有的类来说,类的首字母应该大写、若类名有多个单词组成,则每个单词首字母都应该大写。如:MyFirstJava
(3)、Java所有的方法名首字母都应该小写,如有多个单词组成,则后面的单词首字母要大写。如:findByName
(4)、源文件必须与类名一致

5、Java有那几个基本数据类型
Java有八种基本数据类型:byte、short、int、long、float、double、char、boolean(六种数字类型:四个整型(byte、short、int、long),两个浮点型(float、double))
byte:数据类型是8位、有符号的,以二进制补码表示的整数。用于大型数组中节约空间,用为byte变量占用的空间只有int类型的四分之一。对应的包装类:Byte,取值(27- 27-1)
short:数据类型是16位、以二进制补码表示的整数。short数据类型也可以像byte那样节约空间。一个short变量是int型变量的二分之一。对应的包装类:Short。取值(215- 215-1)
int:数据类型是32位、有符号的,以二进制补码表示的整数。一般的整型变量默认为int类型。取值(231- 231-1)
long:数据类型是64位,有符号的,以二进制补码表示的整数。这种数据类型主要使用在需要比较大整数的系统上。取值(263- 263-1)
float:数据类型是单精度、32位的浮点数。float在存储大型浮点数组的时候可以节约内存空间。默认值是0.0f。浮点数不能用来表示精确的值,如货币。
double:数据类型是双精度、64位的浮点数。浮点数的默认类型位double类型。double类型同样不能表示精确的值,如货币。默认值是0.0d。
char:类型是一个单一的16位Unicode字符。char数据类型可以存储任何字符。但只能存储一个字符
boolean:数据类型表示一位数字信息,只有两个取值:true和false。这种类型只作为一种标志来记录true\false情况,默认值是false。

6、访问权限修饰符分别是什么?
访问权限修饰符有:public、protected、default(默认不写)、private
public:最大访问权,用于对外的接口
protected:用于保护子类传递给子类一种继承的东西
default:是针对与本包的访问而设计的
private:访问权限仅限于类的内部,不能被外层的类访问
자바 인턴 면접 질문
7、怎样才能运行一个程序?
所有的Java程序都是由public static viod main(String []args){}方法开始执行。

8. 자바에서 자주 언급되는 객체는 무엇인가요?
객체는 상태와 동작을 포함하는 클래스의 인스턴스입니다.
예를 들어 개는 개체이며 상태에는 색깔, 이름, 품종이 포함됩니다. 꼬리 흔들기, 짖기, 먹기 등.
소프트웨어 개체에도 상태와 동작이 있습니다. 소프트웨어의 객체는 속성이고 동작은 메소드를 통해 반영됩니다

9. 클래스란 무엇인가요?
클래스는 객체 유형의 동작과 상태를 설명하는 템플릿입니다. 클래스는 여러 메서드를 가질 수 있습니다.

10 클래스에서 메서드를 구성하는 방법은 무엇입니까?
객체를 생성할 때 생성자를 하나 이상 호출해야 합니다. 생성자의 이름은 클래스와 동일해야 합니다. 클래스는 여러 생성자를 가질 수 있습니다.

11. 개체를 만드는 방법은 무엇입니까?
객체는 클래스를 기반으로 생성됩니다. Java에서는 new 키워드를 사용하여 새 개체를 만듭니다. 객체를 생성하려면 다음 세 단계가 필요합니다.
선언: 객체 이름과 객체 유형을 포함하여 객체를 선언합니다.
인스턴스화: new 키워드를 사용하여 객체를 생성합니다.
초기화: new를 사용하여 객체를 생성할 때 생성자 메서드가 호출되어 객체를 초기화합니다.
자바 인턴 면접 질문

12 소스 파일 선언에 대한 선언 규칙이 있나요?
(1) 소스 파일에는 하나의 공개 클래스만 있을 수 있습니다.
(2) 여러 개의 비공개 클래스가 있을 수 있습니다.
(3) 소스 파일의 이름은 클래스와 동일해야 합니다.
(4) 경우 소스 파일이 패키지에 정의된 경우 가져오기 패키지는 소스 파일의 첫 번째 줄에 있어야 합니다.
(5) 소스 파일에 import 문이 포함되어 있으면 package 문과 클래스 사이에 정의됩니다. package 문이 없으면 import 문은 소스 파일 앞에 있어야 합니다.
(6) import 문은 문과 패키지 문이 소스 파일에 있습니다. 정의된 모든 클래스가 유효합니다. 동일한 소스 파일에서 다른 클래스에 대해 다른 패키지 선언을 정의할 수 없습니다.

13.
변수는 값을 저장하기 위해 메모리에 적용됩니다. 즉, 변수를 생성할 때 메모리 공간을 신청해야 합니다. 메모리 관리 시스템은 변수의 유형에 따라 공간을 할당하며, 할당된 공간은 해당 유형의 데이터를 저장하는 데에만 사용할 수 있습니다.

14. 변수 정의 기능은 무엇인가요?
다양한 유형을 정의하면 다양한 유형의 숫자(예: 정수, 소수, 문자)를 저장할 수 있습니다.

15. 다양한 유형을 변환할 수 있나요?
낮은 것부터 높은 것까지:
byte, short, char——>int——>long——>float——>double
은 자동으로 변환될 수 있습니다.
(1) 부울 유형에서는 유형 변환을 수행할 수 없습니다.
(2) 객체 유형을 관련 없는 클래스의 객체로 변환할 수 없습니다.
(3) 대용량 유형을 소용량 유형으로 변환할 때 강제 유형 변환이 수행됩니다. 필수( type) 값 유형입니다. 변환 과정에서 오버플로나 정확도 손실이 발생할 수 있습니다
(4) 자동 유형 변환은 변환 전 데이터의 자릿수가 변환 후의 데이터 유형의 자릿수보다 작다는 것을 만족해야 합니다.
(5) 부동 소수점에서 정수로의 변환은 반올림 대신 소수 부분을 버려서 직접 얻습니다.
예: (int)23.7 == 23, (int)-23.7 == -23

16. Java 연산자는 무엇입니까?
(·1) 산술 연산자: 수학의 연산자와 유사, 주로 + - * % ++ -- (++a는 원래 기저에 먼저 1을 더한 후 연산을 수행하고, a– 먼저 연산한 후 1을 뺍니다)
(2) 논리 연산자: 주로 && ||!
(3) 할당 연산자: 주로 할당의 역할을 합니다. 일반적으로 사용되는 연산자는 = += -=
(4) 조건 연산자: 삼항 연산자라고도 합니다. 이 연산자에는 3개의 피연산자가 있으며 부울 표현식의 값을 평가해야 합니다. 이 연산자의 주요 목적은 변수에 할당해야 하는 값을 결정하는 것입니다
예: int a = (20==40)? 30:50;

17. Java의 세 가지 주요 루프 구조는 무엇입니까?
Java에는 세 가지 주요 루프 구조가 있습니다: while 루프, do...while 루프, for 루프
(1) while은 가장 기본적인 루프이며 구조는 다음과 같습니다.
while(부울 표현식) {
// 루프 내용
}
부울 표현식이 true인 한 루프는 계속됩니다.
(2) do...while 루프는 while 루프와 유사하지만 차이점은 do...while 루프가 한 번 이상 실행된다는 것입니다.
do{
//루프 내용
}while (부울 표현식)
(3) for 루프가 실행되는 횟수는 실행 전에 결정됩니다
for (초기화; 불리언 표현식; 업데이트){
// 코드 문장
}

18. 루프 구조에 대한 키워드가 있나요?
주로 포함: break 및 continue;
break: 전체 문 블록에서 벗어나기 위해 루프 문이나 스위치 문에서 주로 사용됩니다. break는 현재 루프에서 벗어나 루프 아래의 문을 계속 실행합니다.
계속: 모든 루프 제어 구조에 적용 가능하며 그 기능은 프로그램이 루프의 다음 반복으로 즉시 점프할 수 있도록 하는 것입니다. for 루프에서 continue 문은 프로그램이 업데이트 문으로 즉시 점프하도록 합니다.
while 및 do...while 루프에서 프로그램은 즉시 부울 표현식의 판단문으로 점프합니다.

19. 숫자 수업이란 무엇인가요?
내장 데이터 유형이 객체로 사용되면 컴파일러는 내장 유형을 래퍼 클래스로 묶습니다. Number 클래스는 java.lang 패키지에 속합니다. 모든 래퍼 클래스(Integer, Long, Byte, Double, Float, Short)는 추상 클래스 Number의 하위 클래스입니다.

20. 자바에서 수학 수업이란 무엇인가요?
기본 지수, 객체, 제곱근, 삼각 함수 등 기본적인 수학 연산을 수행하기 위한 속성과 메서드가 포함되어 있습니다. 수학 메서드는 모두 정적 형식으로 정의됩니다. Math 클래스를 통해 main 함수에서 직접 호출할 수 있습니다.

21. 수학에서 바닥, 원형, 천장의 차이점은 무엇인가요?
ceil: 안내 매개변수보다 크거나 같은 가장 작은 정수를 반환합니다(예: 반올림 대신 Math.ceil(23.2) ==24)
Floor: 안내 매개변수보다 작거나 같은 가장 큰 정수를 반환합니다(예: Math.ceil(23.2) ==24) 예: 반올림 대신 Math.ceil(23.7) ==23)
round: 반올림을 의미하며, 알고리즘은 Math.round(x+0.5), 즉 원래 숫자에 0.5를 더한 후 내림합니다. 따라서 Math.round(11.4)는 11과 같고 Math.round(11.5)는 12와 같고 Math.round(-11.5)는 -11과 같습니다.

22. Character 클래스는 무엇이고 이 클래스에는 어떤 메소드가 있나요?
문자: 내장된 기본 데이터 유형 char에 대해 Java 언어에서 제공하는 래퍼 클래스입니다.
Character의 주요 메서드는 다음과 같습니다. isLetter() - 문자인지 여부, toString - 문자열 길이가 1인지 여부, isUpperCase() - 대문자인지 여부 소문자입니다.

23. 백슬래시() 앞에 오는 문자로 표시되는 이스케이프 문자는 무엇입니까?
일반적으로 사용되는 이스케이프 문자는 다음과 같습니다. t(텍스트의 이 지점에 탭 키 삽입)
d(텍스트의 이 지점에 뒤로 키 삽입)
n(텍스트의 이 지점에 줄바꿈 삽입)
r (본문에 이 부분에 개행을 삽입하세요.) Enter)

24. Java의 String 클래스에 대한 주의사항은 무엇인가요?
문자열은 Java의 객체이며 Java는 문자열을 생성하고 조작할 수 있는 String 클래스를 제공합니다. String 클래스는 변경할 수 없습니다. String 개체가 생성되면 해당 값을 변경할 수 없습니다. 문자열을 수정해야 하는 경우 StringBuffer 또는 StringBuilder 클래스를 사용해야 합니다.

25. length() 메소드, 길이 속성 및 size() 메소드의 차이점은 무엇입니까?
length() 메서드는 문자열용입니다. 문자열 길이를 요구하려면 해당 length() 메서드를 사용해야 합니다.
length() 속성은 Java에서 배열용입니다. 길이 속성을 사용하세요.
Java의 size()는 일반 컬렉션용입니다. 이 일반 항목에 포함된 요소 수를 확인하려면 이 메서드를 호출하세요.

26. 문자열을 연결하는 방법은 무엇입니까?
두 가지 유형이 있습니다:
(1), String 1.concat (String 2)
(2), 더 일반적으로 사용되는 것은 "Hello" + "Word와 같이 '+' 작업을 사용하여 문자열을 연결하는 것입니다. " + "!";

27. Java에서 StringBuffer 클래스와 StringBuilder 클래스의 차이점은 무엇입니까?
StringBuilder 클래스는 Java 5에서 제안되었습니다. 이 클래스와 StringBuffer의 가장 큰 차이점은 StringBuilder의 메서드가 스레드로부터 안전하지 않다는 것입니다(동기적으로 액세스할 수 없음). StringBuilder는 StringBuffer에 비해 속도 이점이 있으므로 대부분의 경우 StringBuilder가 사용됩니다. 그러나 애플리케이션에 선형 안전성이 필요한 경우에는 StringBuffer 클래스를 사용해야 합니다.

28. StringBuffer는 객체 수정을 어떻게 구현하나요?
문자열 버퍼에는 주로 연결을 완료하기 위한 add() 메소드, 추가를 완료하기 위한 insert() 메소드, 반전을 완료하기 위한 reverse() 메소드가 있습니다.
예: buf.append("hi");
buf.insert(0,"Hello"); //첫 번째 콘텐츠 앞에
를 추가합니다. buf.insert(buf.length,'Hello') //In Insert data at the end
String str = buf.reverse().toString(); //내용을 뒤집어 문자열로 변환
buf.replace(6,11,"yes") //단어 내용 바꾸기

29. 배열을 메서드에 매개변수로 전달할 수 있나요?

자바 인턴 면접 질문
30. 현재 시간을 가져오고 시간을 맞춤설정하는 방법은 무엇인가요?
현재 시간 인쇄: Data data = new Date() 데이터는 현재 시간입니다!
자바 인턴 면접 질문
날짜 및 시간 형식 설정, SimpleDateFormat
SimpleDateFormat sc = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
System.out.printf(sc.format(변환할 시간))

31. 자바는 어떻게 잠을 자나요?
Sleep()은 현재 스레드를 정체 상태(현재 프로세스 차단)로 설정하고 CPU 사용을 포기합니다. 그 목적은 현재 스레드가 스레드만으로 얻은 CPU 리소스를 점유하는 것을 방지하는 것입니다. 다른 스레드가 실행될 수 있도록 일정 시간을 남겨 두십시오. 몇 밀리초 동안 프로그램을 절전 모드로 전환할 수 있습니다. Tread.sleep(1000*3) //3초 동안 잠자기
자바 인턴 면접 질문
32. 연도, 월, 일, 일, 분, 초 등 날짜 형식의 특정 부분을 설정하는 방법은 무엇입니까?
캘린더 클래스를 사용하고 있습니다. Calender 클래스는 실제 사용 시 특정 하위 클래스의 객체를 구현하는 추상 클래스입니다. 객체 생성 과정은 프로그래머에게 투명하며 getInstance 메서드를 사용하여 생성하기만 하면 됩니다.
자바 인턴 면접 질문

33. 사용할 수 있는 클래스나 메소드가 있나요?
java.util.regex 패키지에는 주로 다음 세 가지 클래스가 포함됩니다.
패턴 클래스: Pattern 객체는 정규식의 컴파일된 표현입니다. Pattern 클래스에는 공용 생성자가 없습니다. Pattern 개체를 만들려면 먼저 Pattern 개체를 반환하는 공용 정적 컴파일 메서드를 호출해야 합니다.
Matcher 클래스: Matcher 객체는 입력 문자열을 컴파일하고 일치시키는 엔진입니다.
PatternSyntaxExeption: PatternSyntaxExeption은 정규식 패턴의 구문 오류를 나타내는 필수가 아닌 예외 클래스입니다.
자바 인턴 면접 질문

34. 생성자와 메소드 사이의 연결은 무엇입니까?
생성자 메서드의 개념: 객체가 생성되면 시스템이 자동으로 생성자 메서드를 호출합니다. 사용자 정의 생성자가 없으면 시스템은 기본 생성자를 호출합니다. 생성자는 오버로드될 수 있지만 다시 작성할 수는 없습니다. 생성자는 동일하지만 매개변수 목록이 다릅니다. 매개변수 목록은 사람의 이름과 유사하지만 ID 카드가 다를 수 있는 기반 및 기준입니다.
생성자를 사용자 정의할 때 시스템은 전달된 매개변수의 유형과 수량에 따라 자동으로 생성자를 일치시켜 객체를 초기화합니다.

35.스캐너 클래스란 무엇인가요? Scanner 객체를 생성하는 방법
java.util.Scanner는 java5의 새로운 기능입니다. 우리는 사용자로부터 입력을 받을 수 있습니다.
Scanner sc = new Scanner();

36. 입력 문자열을 얻기 위한 Scanner 클래스의 next() 메서드와 nextLine() 메서드의 차이점은 무엇입니까?
next():
(1), 입력을 종료하기 전에 유효한 문자를 읽어야 합니다.
(2), 입력에 유효한 문자 사이에 공백이 있으면 자동으로 제거됩니다.
(3), 입력만 하면 됩니다. 유효한 문자는 나중에 구분 기호 또는 종결자로 사용될 수 있습니다.
(4), next()는 공백이 있는 문자열을 얻을 수 없습니다.
nextLine():
(1), Enter를 종결자로 사용합니다. 캐리지 리턴 앞의 모든 문자
(2), 공백을 얻을 수 있습니다.

37. Java의 세 가지 유형의 예외는 무엇입니까?
Checked Exceptions: 가장 일반적인 유형의 확인된 예외는 프로그래머가 예측할 수 없는 사용자 오류나 문제로 인해 발생하는 예외입니다. 예를 들어, 존재하지 않는 파일을 열려고 하면 예외가 발생합니다. 이러한 예외는 컴파일 타임에 단순히 무시할 수 없습니다.
런타임 예외: 런타임 예외는 프로그래머가 피할 수 있는 예외입니다. 확인된 예외와 달리 런타임 예외는 컴파일 타임에 무시될 수 있습니다.
Error: 오류는 예외가 아니지만 프로그래머가 통제할 수 없는 문제는 코드에서 무시되는 경우가 많습니다. 예를 들어 스택이 오버플로되면 컴파일 중에 확인할 수 없는 오류가 발생합니다.

Java의 모든 예외 유형은 내장 클래스 java.lang.Throwable 클래스의 하위 클래스입니다. 즉, Throwable은 예외 클래스 계층 구조의 최상위 수준에 있습니다. 그림에 표시된 것처럼 Throwable 클래스 아래에는 Exception과 Error라는 두 가지 예외 분기가 있습니다.
자바 인턴 면접 질문

38. 예외와 오류의 차이점은 무엇인가요?
모든 예외는 Throwable 클래스를 상속합니다. 즉, 모든 예외는 객체입니다.
일반적으로 예외는 두 부분으로 나눌 수 있습니다.
(1) 오류: 프로그램에서 처리할 수 없는 오류를 말하며, 응용 프로그램 실행 중에 발생하는 중대한 오류를 나타냅니다. 예를 들어 jvm이 실행 중이고 소켓을 프로그래밍할 때 포트가 점유되어 있을 때 발생하는 OutOfMemoryError와 프로그램에서 처리할 수 없는 기타 오류
(2) 예외: 예외는 런타임 예외와 컴파일 예외로 나눌 수 있습니다. 클래스에는 IOException 클래스와 RuntimeException 클래스라는 두 가지 주요 하위 클래스가 있습니다

39.
예외를 포착하려면 try 및 catch 키워드를 사용하고, 예외가 발생할 수 있는 위치에는 try/catch 코드 블록을 배치하세요. try/catch 블록 내의 코드는 보호된 코드가 됩니다.

40. 던지기와 던지기 키워드의 차이점은 무엇인가요?
메서드가 확인된 예외를 포착하지 못하는 경우 throws 키워드를 사용하여 메서드를 선언해야 합니다. throws 키워드는 메서드 서명 끝에 배치됩니다. 최신 인스턴스화이든 방금 발생한 예외이든 throw를 사용하여 예외를 던질 수도 있습니다.
여러 예외를 발생시키는 메소드를 쉼표로 구분하여 선언할 수 있습니다.

41. Java에서 예외를 사용자 정의하는 방법은 무엇입니까?
자신만의 예외 클래스를 작성할 수 있습니다.
(1), 모든 예외는 Throwable 클래스의 하위 클래스여야 합니다.
(2), 검사 시간 예외를 작성하려면 Exception을 상속해야 합니다. ), 필요한 경우 런타임 예외를 작성하려면 RuntimeException() 예외를 상속해야 합니다

42. 상속의 특징은 무엇입니까? 상속이란 하위 클래스가 상위 클래스의 특성과 동작을 상속하여 하위 클래스 객체(인스턴스)가 상위 클래스의 인스턴스 필드와 메서드를 가지거나, 하위 클래스가 상위 클래스의 메서드를 상속하여 하위 클래스가 상위 클래스가 되도록 하는 것입니다. 상위 클래스와 동일한 동작을 갖습니다.
기능:
(1) 하위 클래스에는 상위 클래스의 비공개 속성과 메서드가 있습니다.
(2) 하위 클래스는 자체 속성과 메서드를 가질 수 있습니다. 3) 하위 클래스는 상위 클래스의 메서드를 구현하는 고유한 방법을 가질 수 있습니다.
(4) Java 상속은 단일 상속만 가능하지만 다중 상속은 하위 클래스가 하나의 상위 클래스만 상속할 수 있음을 의미합니다. 다중 상속은 A 상속 B, B 상속 C이므로 관계에 따르면 클래스 C는 클래스 B의 상위 클래스이고 B는 A의 상위 클래스입니다. 이는 Java 상속과 C++의 차이점에 대한 특징입니다. .

43. 상속의 키워드는 무엇인가요?

상속은 확장과 구현 두 키워드를 사용하여 구현할 수 있습니다. 또한 모든 클래스는 java.lang.Object에서 상속됩니다. 클래스에 상속된 키워드가 없으면 기본적으로 Object 클래스를 상속합니다(이 클래스는 java.lang 패키지에 있으므로 패키지 가져오기가 필요하지 않습니다).
super 키워드
: super 키워드는 상위 클래스 멤버에 액세스하는 데 사용할 수 있으며 현재 개체가 상속하는 상위 클래스를 참조하는 데 사용됩니다.
자바 인턴 면접 질문

이 키워드

: 자신에 대한 언급. final 키워드
: 클래스를 선언하면 클래스를 상속할 수 없는 클래스, 즉 최종 클래스로 정의하거나 하위 클래스로 재정의할 수 없는 메서드를 수정하는 데 사용할 수 있습니다. 부모 클래스 생성자의 특성은 무엇입니까? 하위 클래스는 상위 클래스의 생성자(생성자 및 생성자(매개변수 포함))를 상속할 수 없습니다. 그러나 상위 클래스의 생성자에 매개변수가 있는 경우 상위 클래스를 호출하여 저녁 키를 명시적으로 전달해야 합니다. class는 적절한 매개변수 목록이 있는 생성자입니다.


부모 클래스에 인수가 없는 생성자가 있는 경우 super 키워드가 있는 경우 부모 클래스를 호출하기 위해 자식 클래스의 생성자에서 supper를 사용할 필요가 없습니다. 사용되지 않으면 시스템은 자동으로 상위 클래스의 매개변수 없는 생성자를 호출합니다.
자바 인턴 면접 질문
45. 오버라이드란 무엇이며, 오버로드란 무엇이며, 이들의 차이점은 무엇인가요? 자바 인턴 면접 질문

Rewriting

: 하위 클래스는 상위 클래스의 allowed access 메서드 구현 프로세스를 다시 작성하고 반환 값과 매개변수를 변경할 수 없습니다. 즉, 셸을 변경할 수 없고 코어를 변경할 수 없습니다. 재정의의 장점은 하위 클래스가 필요에 따라 자체 동작을 사용자 정의할 수 있다는 것입니다. 즉, 하위 클래스는 필요에 따라 상위 클래스의 메서드를 구현할 수 있습니다. 재정의 메서드는 확인된 예외나 재정의 메서드 선언보다 더 넓은 예외를 발생시킬 수 없습니다.
Overloading: 오버로딩은 클래스에 있고 메서드 이름은 동일하지만 매개변수가 다르며 반환 유형이 동일하거나 다를 수 있습니다. 오버로드된 각 메서드(또는 생성자)에는 고유한 매개 변수 유형 목록이 있어야 합니다. 가장 일반적인 것은 생성자 오버로딩입니다. 차이
: 메소드 재작성과 오버로딩은 Java에서 다형성의 다른 표현입니다. 재작성은 상위 클래스와 하위 클래스 간의 다형성의 표현으로 이해될 수 있습니다. (1) 메소드 오버로딩은 하나의 클래스에 같은 이름의 메소드가 여러 개 정의되어 있고 매개변수가 다르거나 개수는 같지만 유형이 다르고 순서가 다른 경우 메소드의 오버로딩이 됩니다. (2) 메소드 오버라이딩(Method Overriding)은 하위 클래스의 상위 클래스 메소드와 이름이 같고, 매개변수의 개수도 타입과 같고, 반환값도 같은 메소드를 오버라이딩이라고 합니다
( 3) 메소드 오버로딩 클래스의 다형성 표현이고, 두 번째 메소드의 오버라이딩은 하위 클래스와 상위 클래스의 다형성 표현이다.

46、什么是抽象类,如何定义抽象类与方法?
抽象类:抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量,成员方法和构造方法的访问方式和普通类不一样。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用:
자바 인턴 면접 질문

상위 클래스에는 하위 클래스 컬렉션에 대한 공통 메서드가 포함되어 있지만 상위 클래스 자체가 추상이므로 이러한 메서드를 사용할 수 없습니다. Java에서 추상 클래스는 상속 관계를 나타냅니다. 클래스는 하나의 추상 클래스만 상속할 수 있지만 클래스는 여러 인터페이스를 구현할 수 있습니다.
추상 클래스 정의: 추상 클래스를 사용하여 Java 언어로 추상 클래스를 정의합니다.
추상 메서드 정의: 특수 멤버 메서드가 포함된 클래스를 디자인하고 메서드의 특정 구현이 해당 하위 클래스에 의해 결정되는 경우 부모 클래스에서 메서드를 선언할 수 있습니다. Abstract 키워드는 추상 메서드를 선언하는 데에도 사용됩니다. 추상 메서드에는 메서드 이름만 포함되고 메서드 본문은 포함되지 않습니다(추상 메서드는 정의되지 않으며 메서드 이름 바로 뒤에 중괄호 대신 세미콜론이 옵니다). 클래스에 추상 메서드가 있는 경우 추상 클래스여야 합니다
자바 인턴 면접 질문

47.
(1) 클래스에 추상 메서드가 포함된 경우 클래스는 추상 클래스여야 합니다.
(2) 모든 하위 클래스는 상위 클래스의 추상 메서드를 재정의하거나 자신을 추상 클래스로 선언해야 합니다.

48. 포장이란 무엇이며 장점은 무엇인가요? Java는 어떻게 캡슐화됩니까?
Encapsulation: 추상 기능 인터페이스의 구현 세부 사항을 패키징하고 숨기는 방법을 말합니다. 캡슐화는 클래스의 코드와 데이터가 외부 클래스에 의해 정의된 코드에 의해 무작위로 액세스되는 것을 방지하는 보호 장벽으로 생각할 수 있습니다.
장점:
(1) 좋은 캡슐화는 결합을 줄일 수 있습니다.
(2) 클래스 내부 구조를 자유롭게 수정할 수 있습니다.
(3) 멤버 변수를 더 정확하게 제어할 수 있습니다. 정보 및 구현 세부 사항

캡슐화 : (1) 속성에 대한 액세스를 제한하도록 속성의 가시성을 수정합니다(일반적으로 비공개로 제한됨).
(2) 각 값 속성 공용 메서드 액세스에 대한 외부 인터페이스를 제공합니다. 즉, 사유 재산에 대한 액세스입니다. (일반적으로 이러한 메서드를 개발 중인 엔터티 클래스와 같이 getter 및 setter 메서드라고 합니다.)

49. 인터페이스와 클래스의 유사점과 차이점은 무엇인가요? 동일:
(1) 인터페이스는 여러 메서드를 가질 수 있습니다.
(2) 인터페이스 파일은 .java로 끝나는 파일에 저장됩니다.
(3) 인터페이스의 바이트코드 파일은 파일 끝으로 저장됩니다. .class에서는
파일이 다릅니다.
(1) 인터페이스는 객체를 인스턴스화할 수 없습니다(추상 클래스와 동일).
(2) 인터페이스에는 생성자 메서드가 없습니다.
(3) 인터페이스의 모든 메서드는 추상 메서드여야 합니다. ), 인터페이스는 멤버 변수를 포함할 수 없습니다.
(5), 인터페이스는 클래스에 의해 상속될 수 없습니다.
(6), 인터페이스는 다중 상속을 지원합니다. 추상 클래스와 인터페이스?

(1) 추상 클래스의 메서드는 메서드 본문을 가질 수 있습니다. 즉, 메서드의 특정 기능을 구현할 수 있지만 인터페이스의 메서드는 구현할 수 없습니다.

(2) 추상 클래스의 멤버 변수는 다양한 유형일 수 있지만 인터페이스의 멤버 변수는 공개 정적 최종 유형만 될 수 있습니다.

(3) 인터페이스는 정적 코드 블록 및 정적 메서드를 포함할 수 없습니다(정적으로 수정된 메서드 사용). 추상 클래스는 정적 코드 블록과 정적 메서드를 가질 수 있습니다 (4) 클래스는 하나의 추상 클래스만 상속할 수 있으며 클래스는 여러 인터페이스를 구현할 수 있습니다. 인터페이스는 은둔 추상입니다. 인터페이스를 선언할 때 abstract 키워드를 사용할 필요는 없습니다. 인터페이스의 모든 메서드도 암시적으로 추상이므로 선언할 때 추상을 추가할 필요가 없습니다. 인터페이스의 메소드 인터페이스의 메소드를 구현하기 위해 인터페이스를 구현하는 클래스가 인터페이스에 있습니다.

관련 권장 사항:
Java 시작하기

위 내용은 자바 인턴 면접 질문의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!