2022년 상위 130개 이상의 Java 인터뷰 질문 및 답변
게시 됨: 2021-01-01자바 인터뷰 질문 및 답변
이 기사에서는 가장 자주 묻는 Java 인터뷰 질문을 정리했습니다. 이 질문은 면접관이 Java 프로그래밍에 대한 인터뷰 중에 질문할 수 있는 유형의 질문에 대한 지식을 제공합니다.
신입생으로서 귀하는 방금 인터뷰에 참석했거나 곧 참석할 계획입니다. 소프트웨어 프로그래밍 분야에서 경력을 쌓고자 하는 초급 구직자는 다가오는 인터뷰에 대해 긴장할 수 있습니다 . 우리 모두는 공황 상태에서 멍해지며 실이 무엇인지 잊어버릴 수도 있습니다. 우리는 당신을 위해 그것을 단순화할 것입니다. 당신이 그것을 하는 데 필요한 모든 것은 심호흡을 하고 가장 많이 물어볼 질문을 확인하는 것입니다.
패닉을 피할 수는 없지만 면접실에 들어갈 때 확실히 대비할 수 있습니다. 당신은 자신감이 있고 면접관이 당신에게 던질 수 있는 모든 것을 처리할 수 있다는 것을 알고 있습니다.
세계 최고의 대학에서 온라인으로 소프트웨어 엔지니어링 프로그램 을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
다음은 이러한 자신감을 얻고 인터뷰를 통과할 수 있도록 도와줄 종합적인 24가지 Java 인터뷰 질문과 답변(최신 2022년) 목록입니다.
1. JVM은 무엇으로 구성되어 있습니까?
JVM(Java Virtual Machine의 약자)은 Java 프로그램을 실행하는 모든 시스템에 필요합니다. 아키텍처는 기본적으로 다음으로 구성됩니다.
● Classloader: JVM의 서브시스템으로 Java 프로그램이 실행될 때마다 클래스 파일을 로드하는 것이 주 기능이다.
● 힙: 개체를 할당하는 데 사용되는 런타임 데이터입니다.
● 클래스 영역: 정적 변수, 메타데이터, 상수 실행 풀 등 각 클래스 파일의 클래스 레벨을 담는 영역이다.
● 스택: 임시 변수를 저장하는 데 사용됩니다.
● 레지스터: 레지스터에는 현재 실행 중인 JVM 명령어의 주소가 포함됩니다.
● 실행 엔진: EE는 가상 프로세서, 바이트코드를 읽어 명령어를 실행하는 인터프리터, 실행 속도가 느릴 때 성능을 향상시키는 JIT 컴파일러로 구성된다.
● Java Native Interface: C, C++ 등으로 개발된 다른 응용 프로그램과 상호 작용하기 위한 통신 매체 역할을 합니다.

2. 객체 지향 프로그래밍이란 무엇입니까? 자바는 객체지향 언어인가?
기본적으로 객체 지향 프로그래밍은 객체의 개념에서 작동하는 프로그래밍 패러다임입니다. 간단히 말해서 개체는 컨테이너입니다. 여기에는 필드 형식의 데이터와 프로시저 형식의 코드가 포함됩니다. 그 논리에 따르면 객체 지향 언어는 객체와 프로시저에서 작동하는 언어입니다.
Java는 객체가 아닌 boolean, byte, char, int, float, long, short, double의 8가지 기본 데이터 유형을 사용하기 때문에 Java는 100% 객체 지향 언어로 간주될 수 없습니다.
3. Java 컨텍스트에서 Aggregation으로 무엇을 이해합니까?
집계는 각 개체에 고유한 수명 주기가 할당되는 연결 형식입니다. 그러나 여기에는 소유권이 있으며 자식 개체는 어떤 식으로든 다른 부모 개체에 속할 수 없습니다.
4. Java에서 수퍼클래스의 이름을 지정합니다.
자바.lang. 모든 다른 비원시가 이 클래스에서 직접 또는 간접적으로 상속됩니다.
5. 자바에서 'finally'와 'finalize'의 차이점을 설명하시오.
try-catch 블록과 함께 사용되는 'finally' 블록은 try-catch 블록에서 실행이 발생하더라도 특정 코드가 항상 실행되도록 하는 데 사용됩니다.
대조적으로, finalize()는 객체 클래스의 특별한 메소드입니다. 일반적으로 개체에서 가비지 값을 수집할 때 시스템 리소스를 해제하도록 재정의됩니다.
6. 익명의 내부 클래스란 무엇입니까? 내부 클래스와 어떻게 다른가요?
이름이 없는 모든 로컬 내부 클래스를 익명 내부 클래스라고 합니다. 이름이 없기 때문에 생성자를 생성하는 것은 불가능합니다. 항상 클래스를 확장하거나 인터페이스를 구현하며 단일 문으로 정의 및 인스턴스화됩니다.
정적이 아닌 중첩 클래스를 내부 클래스라고 합니다. 내부 클래스는 클래스의 개체와 연결되어 있으며 외부 클래스의 모든 메서드와 변수에 액세스할 수 있습니다.
7. 시스템 클래스란 무엇입니까?
Java의 핵심 클래스입니다. 클래스는 final이므로 상속을 통해 해당 동작을 재정의할 수 없습니다. 공용 생성자를 제공하지 않기 때문에 이 클래스를 인스턴스화할 수도 없습니다. 따라서 모든 메서드는 정적입니다.
8. Java에서 데몬 스레드를 만드는 방법은 무엇입니까?
이 스레드를 생성하기 위해 setDaemon(true) 클래스를 사용합니다. start() 메서드보다 먼저 이 메서드를 호출합니다. 그렇지 않으면 IllegalThreadStateException이 발생합니다.
9. Java는 전역 변수를 지원합니까? 왜 안돼?
아니요, Java는 전역 변수를 지원하지 않습니다. 이는 주로 다음 두 가지 이유 때문입니다.
● 네임스페이스에서 충돌을 생성합니다.
● 참조 투명성을 깨뜨립니다.
10. RMI 객체는 어떻게 개발됩니까?
RMI 개체를 개발하기 위해 다음 단계를 수행할 수 있습니다.
● 인터페이스 정의
● 인터페이스 구현
● Java 컴파일러로 인터페이스 및 구현을 컴파일합니다.
● RMI 컴파일러로 서버 구현 컴파일
● RMI 레지스트리 실행
● 애플리케이션 실행
11. 타임 슬라이싱과 선점형 스케줄링의 차이점을 설명하십시오.
시간 분할의 경우 작업은 슬라이스라고도 하는 지정된 시간 프레임 동안 실행됩니다. 그런 다음 '준비' 작업 풀인 준비 대기열에 들어갑니다. 그런 다음 스케줄러는 우선 순위 및 기타 요소를 기반으로 실행할 다음 작업을 선택합니다.
반면에 선점형 스케줄링에서는 우선 순위가 가장 높은 작업이 중단 또는 경고 상태가 될 때까지 또는 우선 순위가 더 높은 다른 작업이 올 때까지 실행됩니다.
12. 가비지 컬렉터 쓰레드는 어떤 쓰레드인가요?
데몬 스레드입니다.
13. Java에서 스레드의 수명 주기는 무엇입니까?
Java의 모든 스레드는 수명 주기에서 다음 단계를 거칩니다.
● 신규
● 실행 가능
● 달리기
● 실행 불가(차단됨)
● 종료
14. 역직렬화 및 직렬화 과정에서 사용된 방법을 기술합니다.
ObjectInputStream.readObject
파일을 읽고 개체를 역직렬화합니다.
ObjectOutputStream.writeObject
개체를 직렬화하고 직렬화된 개체를 파일에 씁니다.
15. 휘발성 변수는 무엇이며 그 목적은 무엇입니까?
휘발성 변수는 스레드의 캐시 메모리가 아닌 항상 주 메모리에서 읽는 변수입니다. 일반적으로 동기화 중에 사용됩니다.
16. Java에서 래퍼 클래스란 무엇입니까?
Java의 모든 기본 데이터 유형에는 래퍼 클래스라고 하는 연관된 클래스가 있습니다. 그것들은 기본 데이터 유형을 클래스의 객체로 '래핑'하기 때문에 래퍼 클래스로 알려져 있습니다. 간단히 말해서 Java 기본 요소를 객체로 변환합니다.
17. 싱글톤 클래스는 어떻게 만들 수 있나요?
생성자를 비공개로 만듭니다.
18. Java에서 Exception Class의 중요한 메소드는 무엇입니까?
● 문자열 getMessage()
● 문자열 toString()
● 무효 printStackTrace()
● 동기화된 Throwable getCause()
● 공개 StackTraceElement[] getStackTrace()
19. Java에서 스레드를 어떻게 만들 수 있습니까?
Java에서 스레드를 만드는 두 가지 방법 중 하나를 따를 수 있습니다.
● Thread Class 확장으로
이 방법의 단점은 스레드 클래스가 이미 확장되었기 때문에 다른 클래스를 확장할 수 없다는 것입니다.
● Runnable 인터페이스를 구현하여
20. get()과 load() 메소드의 차이점을 설명하십시오.
get() 및 load() 메서드에는 다음과 같은 차이점이 있습니다.
● get()은 개체를 찾을 수 없는 경우 null을 반환하는 반면 load()는 ObjectNotFound 예외를 throw합니다.
● get()은 항상 실제 객체를 반환하는 반면 load()는 프록시 객체를 반환합니다.
● get() 메서드는 항상 데이터베이스에 도달하지만 load()는 그렇지 않습니다.
● get()은 인스턴스의 존재에 대해 확신이 없으면 사용해야 하고 load()는 인스턴스가 존재한다고 확신하는 경우 사용해야 합니다.
21. 지역 변수의 기본값은 무엇입니까?
기본값으로 초기화되지 않습니다. 프리미티브나 객체 참조도 아닙니다.
22. 자바에서 싱글톤이란?
전체 Java 애플리케이션에 하나의 인스턴스가 있는 클래스입니다. 예를 들어 java.lang.Runtime은 싱글톤 클래스입니다. Singleton의 주요 목적은 private 생성자를 유지하여 개체 생성을 제어하는 것입니다.
23. 정적 방법이란 무엇입니까?
클래스의 인스턴스를 만들 필요 없이 정적 메서드를 호출할 수 있습니다. 정적 메서드는 클래스의 개체가 아니라 클래스에 속합니다. 정적 메서드는 정적 데이터 멤버에 액세스할 수 있으며 해당 값을 변경할 수 있습니다.
24. 예외는 무엇입니까?
예외 프로그램 중 비정상적인 조건. 이는 잘못된 사용자 입력이나 프로그래머가 작성한 잘못된 논리 때문일 수 있습니다.
25. 자바를 간단히 정의하자면?
Java는 높은 수준의 플랫폼 독립적인 개체 지향 포털이며 정교한 프로그램, 응용 프로그램 및 웹 사이트 구축을 위한 고성능 지원을 제공합니다. Java는 개발자가 WORA(Write Once Run Anywhere) 환경을 사용하여 풍부한 기능의 응용 프로그램을 빌드할 수 있도록 하는 범용 프로그래밍 언어입니다. 1991년 캐나다의 컴퓨터 과학자 James Arthur Gosling이 개발한 Java는 'Dr Java'로 널리 알려져 있습니다. 오늘날 Java는 현대 IT 산업의 필수 기반이 되었습니다.
26 . 자바 스트링 풀이란?
Java의 문자열 풀은 Java 힙 메모리를 통해 저장된 문자열 풀이 있는 별개의 장소입니다. 여기서 String은 Java의 특수 클래스를 나타내며 새 연산자를 사용하거나 큰따옴표로 묶인 값을 사용하여 문자열 개체를 만들 수 있습니다.
String은 Java에서 변경할 수 없으므로 String 풀의 실행 가능성을 만든 다음 String 내부 개념을 통한 추가 구현이 가능합니다.
27. Java에서 컬렉션 클래스란 무엇입니까? 메소드와 인터페이스를 나열하시겠습니까?
Java 컬렉션 클래스는 반환 컬렉션에서 특별히 작동하는 정적 메서드와 함께 독점적으로 사용되는 특수 클래스입니다. Java Collection은 기본적으로 클래스를 상속하며 다음과 같은 두 가지 필수 기능을 가지고 있습니다.
- 모든 특정 컬렉션에 대해 새 컬렉션을 반환하는 다형성 알고리즘을 지원하고 작동합니다.
- Java Collection의 메소드는 클래스 개체 또는 컬렉션에 Null 값이 있는 경우 NullPointerException을 throw합니다.
이것들은 Java.util.Collectionclass로 표현되고 선언됩니다.
Java Collection 클래스에는 60개 이상의 메소드, 수정자 및 유형이 있습니다. 다음은 Java 컬렉션 클래스에서 가장 중요한 메서드 목록입니다.
S. 아니. | 수정자, 방법 및 유형 | 설명 |
1. | 정적 <T> 부울 addAll() | 이 방법을 사용하면 특정 컬렉션에 특정 요소를 추가할 수 있습니다. |
2. | 정적 <T> 대기열 <T> asLifoQueue() | 이 방법을 사용하면 컬렉션을 LIFO(후입선출)로 표시할 수 있습니다. |
삼. | 정적 <T> int 바이너리 검색() | 이 방법을 사용하면 특정 개체를 검색한 다음 정렬된 목록으로 반환합니다. |
4. | 정적 <E> 컬렉션<E> | 이 메서드는 특정 컬렉션에서 동적 뷰를 반환합니다. |
5. | 정적 <E> 목록 <E> | 이 메서드는 특정 목록에서 동적 형식 안전 보기를 반환합니다. |
다음은 Java 컬렉션에 대한 몇 가지 예입니다.
자바 컬렉션 min() 예:
1 2 삼 4 5 6 7 8 9 10 11 12 | 가져오기 java.util.* ; 공개 클래스 CollectionsExample { 공개 정적 무효 메인 ( 문자열 a []){ 목록 < 정수 > 목록 = 새 ArrayList < 정수 >(); 목록 . 추가 ( 90 ); 목록 . 추가 ( 80 ); 목록 . 추가 ( 76 ); 목록 . 추가 ( 58 ); 목록 . 추가 ( 12 ); 시스템 . 밖으로 . println ( "컬렉션의 최소 값 요소: " + Collections . min ( list )); } } |
출력은 다음과 같습니다.
컬렉션의 최소값 요소: 12 |
자바 컬렉션 max() 예:
1 2 삼 4 5 6 7 8 9 10 11 12 | 가져오기 java.util.* ; 공개 클래스 CollectionsExample { 공개 정적 무효 메인 ( 문자열 a []){ 목록 < 정수 > 목록 = 새 ArrayList < 정수 >(); 목록 . 추가 ( 90 ); 목록 . 추가 ( 80 ); 목록 . 추가 ( 76 ); 목록 . 추가 ( 58 ); 목록 . 추가 ( 12 ); 시스템 . 밖으로 . println ( "컬렉션의 최대 값 요소: " + Collections . max ( list )); } } |
출력은 다음과 같습니다.
컬렉션의 최대값 요소: 90 |
28 . 서블릿이란 무엇입니까?
서블릿은 기술, API, 인터페이스, 클래스 또는 웹 배포를 통해 Java 서버에 더 많은 기능을 추가하는 Java 소프트웨어 구성 요소입니다. 서블릿은 특히 Java 기반 웹 애플리케이션 서버에서 실행되며 웹 서버의 복잡한 요청을 처리할 수 있습니다. 서블릿은 더 높은 성능, 견고성, 확장성, 이식성의 이점을 추가하고 Java 애플리케이션의 안전성을 보장합니다.
서블릿 프로세스 또는 실행:
- 이것은 사용자가 웹 브라우저에서 요청을 보낼 때 시작됩니다.
- 웹 서버는 이 요청을 수신한 다음 특정 서블릿에 전달합니다.
- 그런 다음 서블릿은 이 요청을 처리하여 출력과 함께 특정 응답을 얻습니다.
- 그런 다음 서블릿은 이 응답을 웹 서버로 다시 보냅니다.
- 그런 다음 웹 서버는 브라우저가 화면에 표시하는 정보를 가져옵니다.
Java Servlet은 GenericServlet, ServletRequest, Servlet API, HttpServlet, ServeResponse 등과 같은 여러 클래스 및 인터페이스와 함께 제공됩니다.
29. 요청 디스패처란 무엇입니까?
서블릿에서 RequestDispatcher는 한 쪽에서 클라이언트로부터 요청을 수신한 다음 다른 쪽에서 특정 리소스(서블릿, HTML, JSP일 수 있음)로 전달하도록 객체를 정의하는 인터페이스 역할을 합니다. 이 RequestDispatcher에는 일반적으로 두 가지 방법이 있습니다.
void forward(ServletRequest 요청, ServletResponse 응답) | 이는 서블릿, HTML 파일 또는 JSP 파일의 형태로 모든 서블릿에서 서버 리소스로 요청을 허용하고 전달합니다. |
void include(ServletRequest 요청, ServletResponse 응답) | HTML 파일, JSP 페이지 또는 서블릿과 같은 응답 형식의 특정 리소스에 대한 콘텐츠가 있습니다. |
30. 서블릿의 수명 주기는 무엇입니까?
서블릿은 먼저 요청을 받은 다음 요청을 처리하고 HTML 페이지에서 사용자에게 응답을 제공하는 주요 기능이 있는 Java 소프트웨어 구성 요소입니다. 여기서 서블릿 컨테이너는 서블릿의 수명 주기를 관리합니다. 주요 단계는 다음과 같습니다.
- 서블릿을 로드 중입니다.
- 그런 다음 서블릿을 초기화합니다.
- 요청 처리(서비스 메서드 호출).
- 그런 다음 서블릿을 파괴합니다.
다음은 Java 서블릿의 수명 주기를 보여주는 빠른 다이어그램입니다.
원천
- 서블릿 로드 중
Servlet의 수명 주기는 Servlet 컨테이너의 로딩 단계에서 시작됩니다. 서블릿은 다음 두 가지 방법 중 하나로 로드됩니다.
- 서블릿을 양수 또는 0 정수 값으로 설정합니다.
- 둘째, 컨테이너가 요청을 처리할 올바른 서블릿을 선택하기 때문에 이 프로세스가 지연될 수 있습니다.
이제 컨테이너는 먼저 Servlet 클래스를 로드한 다음 인수가 없는 생성자를 통해 인스턴스를 빌드합니다.
- 서블릿 초기화
다음 단계는 Servlet.init(ServletConfig) 메소드를 사용하여 Servlet for instance JDBC 데이터 소스를 초기화하는 것입니다.
- 요청 처리(서비스 메서드 호출)
여기서 서블릿은 클라이언트 요청을 받고 service() 메서드를 사용하여 필요한 작업을 수행합니다.
- 서블릿 파괴
이제 서블릿 컨테이너는 특정 작업을 수행 및 완료하고 인스턴스에서 destroy() 메소드를 호출하여 서블릿을 파괴합니다.
31. 서블릿에서 세션 관리의 다른 방법은 무엇입니까?
세션은 사이트에 로그인한 후 사용자의 활동을 추적합니다. 세션 관리는 모든 독립 사용자에 대한 정보를 확보하는 메커니즘을 제공합니다. 다음은 서블릿에서 세션 관리를 위한 네 가지 다른 방법입니다.
- Http세션
- 쿠키
- URL 재작성
- HTML 숨겨진 필드
32. JDBC 드라이버란 무엇입니까?
여기서 JDBC(Java Database Connectivity)는 Java 응용 프로그램이 데이터베이스와 통신할 수 있도록 하는 소프트웨어 구성 요소 역할을 합니다.
JDBC 드라이버는 환경에 다음 네 가지 유형이 있습니다.
- JDBC-ODBC 브리지 드라이버
- 네트워크 프로토콜 드라이버(미들웨어 드라이버)
- 데이터베이스 프로토콜 드라이버(완전한 Java 드라이버)
- 네이티브 API 드라이버
33. JDBC 연결 인터페이스란 무엇입니까?
연결은 데이터베이스와 Java 응용 프로그램 간의 세션을 정의합니다. JDBC 연결 인터페이스는 java.sql 패키지의 일부이며 특정 데이터베이스에 대한 세션 정보를 제공합니다. 이들은 단일 연결 인터페이스의 컨텍스트에서 실행 및 결과를 위한 여러 SQL 문을 나타냅니다. 다음은 Connections 인터페이스의 주요 방법입니다.
- createStatement() : 특정 데이터베이스에 SQL문을 추가하기 위한 특정 명령문 객체를 생성합니다.
- setAutoCommit(boolean status) : false 또는 true 지시문에 대한 커밋 모드의 연결을 정의합니다.
- commit() : 마지막 커밋에서 모든 수정을 수행하고 특정 Connection 객체가 현재 보유하고 있는 모든 데이터베이스를 추가로 해제합니다.
- rollback() : 과거 또는 현재 트랜잭션에서 수행된 모든 변경 사항을 실행 취소하거나 롤백하고 연결 개체에 현재 보유된 데이터베이스도 해제합니다.
- close() : 현재 연결을 종료하거나 닫고 JDBC 리소스를 즉시 해제하거나 지웁니다.
34. Spring 프레임워크의 다른 모듈의 이름을 지정합니까?
Spring 프레임워크에는 여러 모듈이 있습니다.
- 웹 모듈
- 스트럿츠 모듈
- 서블릿 모듈
- 코어 컨테이너 모듈
- 측면 지향 프로그래밍(AOP)
- 애플리케이션 컨텍스트 모듈
- MVC 프레임워크 모듈
- JDBC 추상화 및 DAO 모듈
- OXM 모듈
- 표현 언어 모듈
- 거래 모듈
- JMS(Java 메시징 서비스) 모듈
- ORM 통합 모듈
이러한 모듈은 그룹으로 존재합니다.
원천
35. Spring에서 Bean을 설명하고 Spring Bean의 다양한 범위를 나열하십시오.
Bean은 구조를 효율적으로 관리하는 Spring 프레임워크의 기본 개념 중 하나입니다. 간단한 정의에서 Spring Bean은 애플리케이션의 백본을 형성하는 객체를 관리하는 IoC 컨테이너를 나타냅니다.
스프링 빈의 범위:
범위는 애플리케이션에서 Spring 빈을 효과적으로 사용하는 데 중요한 역할을 합니다. Scope는 Spring Bean의 라이프사이클을 이해하는 데 도움이 되며 다음과 같은 유형이 있습니다 .
S. 아니. | 범위 및 설명 |
1. | 싱글톤 – 기본적으로 Spring 빈 범위에는 Spring IOC 컨테이너에 대해 하나의 인스턴스만 나타내는 싱글톤 범위가 있습니다. 이 동일한 객체는 각 요청에 대해 공유됩니다. |
2. | 프로토타입 – 여기에서 특정 빈에 대한 요청이 있을 때마다 모든 단일 빈 정의에 대해 새 인스턴스가 호출되고 생성됩니다. |
삼. | 요청 – 이 범위에서 특정 빈에 대한 모든 HTTP 요청에 대해 단일 빈이 호출되고 생성됩니다. |
4. | 세션 – 이 범위는 특정 전역 HTTP 세션에서 수명 주기에 대한 단일 빈 사용을 정의합니다. |
5. | 전역 세션 – 이 범위는 전역 HTTP 세션에서 구현하기 위해 특정 수명 주기에 대한 단일 빈을 허용합니다. |
참고: 마지막 세 범위는 웹 인식 Spring ApplicationContext에만 적용할 수 있습니다.
필독: Java가 개발자들에게 인기 있는 이유
36. DispatcherServlet과 ContextLoaderListener의 역할을 설명하라.
web.xml 파일에 XML 기반의 Spring MVC 설정을 하는 동안, 두 개의 DispatcherServlet과 ContextLoaderListener 선언은 프레임워크의 목적을 보완하는데 필수적인 역할을 한다.
- 디스패처 서블릿 –
DispatcherServlet은 구성된 특정 URI 패턴에 대한 수신 웹 요청을 관리하는 주요 목적을 가지고 있습니다. DispatcherServlet은 Spring MVC 애플리케이션의 핵심에 대한 전면 컨트롤러 역할을 하며 특히 구성 파일을 로드한 다음 해당 파일에 있는 올바른 빈을 초기화합니다. 그리고 주석이 활성화되면 @Repository, @Component, @Service 또는 @Controller로 주석이 달린 모든 구성과 패키지를 검사하고 스캔할 수도 있습니다.
- ContextLoaderListener –
여기서 ContextLoaderListener는 루트 WebApplicationContext를 시작하고 종료하기 위한 요청 수신기 역할을 합니다. 그래서 DispatcherServlet 컨텍스트에 의해 루트 애플리케이션 컨텍스트를 생성하고 자식 컨텍스트와 공유합니다. 애플리케이션은 web.xml의 ContextLoaderListener에 대해 하나의 항목만 사용할 수 있습니다.
37. 하이버네이트 아키텍처를 설명하라.
Hibernate는 사용자가 기본 API를 몰라도 작동하고 수행할 수 있도록 하는 계층화된 아키텍처를 정의합니다.
Hibernate 아키텍처에는 다음과 같은 주요 4개의 계층이 있습니다.
- 자바 애플리케이션 레이어
- 데이터베이스 계층
- 백엔드 API 레이어
- 최대 절전 모드 프레임워크 계층
하이버네이트 아키텍처의 요소들
Hibernate 아키텍처에는 여러 측면과 범위가 있습니다. 그들에 대해 더 배우려면 Hibernate 아키텍처의 요소에 대해 알아야 합니다.
- SessionFactory: Sessionfactory는 org.hiberate 패키지에만 있는 세션 객체를 생성하는 메소드를 제공합니다. 본질적으로 스레드로부터 안전하고 변경할 수 없으며 데이터의 두 번째 수준 캐시를 보유 및 보존합니다.
- 세션: 세션 개체는 최대 절전 모드 프레임워크를 통해 연결 및 데이터베이스 소프트웨어에 대한 인터페이스를 제공합니다.
- 트랜잭션: 트랜잭션 관리를 지원하고 데이터베이스의 변경을 허용하는 인터페이스입니다.
- ConnectiveProvider: JDBC 연결의 일부로 기본 응용 프로그램을 DataSource 또는 DriverManager와 분리합니다.
- TransactionFactory: 트랜잭션 의 팩토리를 나타냅니다.
38. Java에서 예외 계층이란 무엇입니까?
예외는 프로그램을 실행하거나 실행하는 동안 발생하는 원치 않는 이벤트를 정의합니다. 예외는 프로그램의 일반적인 흐름을 방해합니다.
예외 계층은 java.lang.Exception 클래스의 일부이며 기본 Throwable 클래스에만 해당됩니다. 또 다른 하위 클래스 ' Error '도 Java의 Throwable 클래스를 나타냅니다. 오류는 오류가 발생한 경우 비정상적인 조건이지만 여전히 Java 프로그램으로 처리되거나 지워지지 않습니다.
Java에는 RuntimeException 클래스와 IOCException 클래스가 있는 예외적 계층 구조를 위한 두 가지 기본 하위 클래스가 있습니다.
39. 동기화란 무엇입니까?
Java의 동기화는 특정 리소스에 대한 여러 스레드의 액세스를 관리하고 제어하는 기능을 정의합니다. 따라서 현재 하나의 스레드가 특정 리소스에 액세스할 수 있습니다. 여기에서 Java는 스레드를 개발한 다음 동기화 블록을 통해 작업을 동기화할 수 있도록 합니다.
이러한 동기화된 블록은 특정 시간 동안 하나의 스레드 실행만 허용하고 현재 스레드가 블록에서 종료될 때까지 다른 스레드를 차단합니다. 여기서 모니터 개념은 Java에서 동기화를 구현하는 데 중요합니다. 스레드가 잠금 단계에 들어가면 이를 모니터에 들어간다고 합니다. 따라서 첫 번째 스레드가 모니터를 종료하지 않는 한 다른 모든 스레드를 잠급니다.
40. Java를 최고의 프로그래밍 언어 중 하나로 만드는 기능은 무엇입니까?
프로그래밍 세계에서 학습 곡선을 시작하기 위해 Java를 만드는 주요 기능은 다음과 같습니다.
- 단순성: Java는 배우고 쓰기가 매우 간단합니다. Java 구문은 개발자가 프로그램을 원활하게 작성할 수 있도록 하는 C++에 있습니다.
- OOPS: Java는 객체 지향 프로그래밍 시스템(OOPS)을 기반으로 하므로 데이터와 동작이 서로 다른 여러 유형의 객체에서 코드를 작성할 수 있습니다.
- 동적: Java는 필요할 때마다 동적 클래스 로드를 지원하는 완전한 동적 언어입니다. 또한 C, C++ 등과 같은 네이티브 코드 언어를 포괄적으로 지원합니다.
- 플랫폼 독립적: Java는 독점적이고 플랫폼 독립적인 프로그래밍 언어도 지원하므로 개발자가 자신의 플랫폼에서만 프로그램을 실행할 수 있습니다.
- 이식성: Java는 코드가 모든 플랫폼에서 실행될 수 있도록 하는 한 번 쓰기 어디에서나 사용할 수 있는 접근 방식을 제공합니다.
- 보안: ByteCode, 예외 처리 및 명시적 포인터 사용의 개념을 따르면 Java는 매우 안전한 환경입니다.
Java는 또한 어떤 아키텍처에도 의존하지 않는 아키텍트 중립적입니다. 강력한 메모리 관리 및 자동화된 가비지 수집은 환경에 더 강력함을 추가합니다.
41. Java가 고성능을 가능하게 하는 이유는 무엇입니까?
아키텍처에서 JIT(Just in Time) 컴파일러를 사용하면 명령을 바이트 코드로 변환하기 때문에 Java를 고성능 프로그래밍 언어 중 하나로 만듭니다.
42. 가장 인기 있는 Java IDE의 이름을 지정하십시오.
업계에서 Java용으로 사용할 수 있는 IDE가 많이 있습니다. 다음은 오늘 이 프로그래밍 언어를 배우기 시작하는 데 사용할 수 있는 상위 5개 Java IDE입니다.
- 식
- 넷빈
- 인텔리제이
- 제이디벨로퍼
- 마이 이클립스
43. Java와 다른 플랫폼 간의 주요 차이점을 정의합니까?
Java를 다른 플랫폼과 차별화하는 두 가지 주요 차이점은 다음과 같습니다.
- Java는 기본적으로 소프트웨어 기반 플랫폼이며 다른 플랫폼은 소프트웨어 또는 하드웨어 기반 플랫폼일 수 있습니다.
- Java는 모든 하드웨어 플랫폼에서 실행되거나 실행되지만 다른 플랫폼은 특정 하드웨어 요구 사항이 필요합니다.
44. Java의 'WORA' 특성이 '한 번만 작성되면 어디에서나 실행'되는 이유는 무엇입니까?
글쎄요, 한 단어로 된 대답은 바이트코드입니다. Java 컴파일러는 모든 Java 프로그램을 기계 코드와 소스 코드 사이의 중재자 언어로 작동하는 특정 바이트 코드로 변환합니다. ByteCode는 모든 컴퓨터에서 실행할 수 있으며 플랫폼 종속성이 없습니다.
45. Java에서 사용되는 다양한 유형의 액세스 지정자를 설명합니다.
Java 프로그래밍 언어에서 액세스 지정자는 클래스, 변수 또는 메서드의 정확한 범위를 나타냅니다. 네 가지 주요 액세스 지정자가 있습니다.
- 공용 으로 정의된 변수, 메서드 또는 클래스는 모든 메서드 또는 클래스에서 액세스할 수 있습니다.
- 보호된 액세스 지정자는 클래스, 메서드 및 변수의 범위를 동일한 패키지, 동일한 클래스 내 또는 클래스의 특정 하위 클래스로 정의합니다.
- 기본 범위는 패키지에만 액세스할 수 있는 모든 현재 클래스, 변수 및 메서드에 대해 있습니다 .
- Private 범위 는 특정 클래스에 대해서만 클래스, 변수 및 메서드에 대한 액세스를 유지합니다.
읽기: 자바 스윙 프로젝트
46. Java에서 패키지의 의미와 장점을 설명하십시오.
패키지는 자산 보호 및 포괄적인 이름 관리를 보장하는 유사한 유형(인터페이스, 클래스, 주석 및 열거)에 대한 그룹화 메커니즘입니다.
Java 패키지의 장점은 다음과 같습니다.
- 패키지는 같은 이름의 클래스가 두 개의 다른 패키지에 존재할 때 이름 충돌을 방지하는 데 도움이 됩니다.
- 패키지는 액세스 제어를 체계적으로 수행하는 데 도움이 됩니다.
- 패키지에서 사용할 히든 클래스를 빌드합니다.
- 패키지에 대한 관련 클래스를 찾는 데 도움이 됩니다.
47. Java에서 Constructor를 어떻게 정의하시겠습니까?
생성자는 생성 시 객체를 초기화하는 특수 코드 블록입니다. 인스턴스 메소드와 유사하지만 생성자는 명시적 리턴 유형이 없기 때문에 메소드가 아닙니다. 따라서 시스템에서 객체가 생성될 때마다 실행을 위해 호출되는 생성자가 하나 있습니다. 정의된 생성자가 없으면 컴파일러는 기본 생성자를 사용합니다.
다음은 Java의 생성자에 대한 간단한 프레젠테이션입니다.
1 2 삼 4 5 6 | 공개 클래스 MyClass { // 이것은 생성자입니다. 마이클래스 (){ } .. } |
48. Java에서 사용되는 다양한 유형의 생성자는 무엇입니까?
Java에는 세 가지 유형의 생성자가 사용됩니다.
- 기본 생성자: 개발자가 생성자를 사용하지 않는 경우 Java 컴파일러는 .class 파일에 존재하는 보다 구체적인 기본 생성자를 추가합니다.
- 인수가 없는 생성자: 이 경우 인스턴스 변수 메서드가 특정 고정 값으로 초기화되므로 생성자에 인수가 없고 컴파일러에서 매개변수를 허용하지 않습니다.
- 매개변수화된 생성자: 이 경우 기본 요소의 괄호 안에 작성된 생성자에만 하나 이상의 매개변수가 있습니다.
49. 생성자와 메소드의 차이점은 무엇입니까?
생성자와 메서드의 주요 차이점은 다음과 같습니다.
- 목적: 생성자의 목표는 클래스의 개체를 초기화하는 반면 메서드는 코드 실행에 대한 특정 작업을 수행합니다.
- 메서드에는 반환 유형이 있지만 생성자는 그렇지 않습니다.
- 메소드에는 추상, 정적, 최종 및 동기화가 있지만 생성자에서는 특정 절차를 만들 수 없습니다.
50. 지역변수와 인스턴스변수의 의미를 설명하시오.
- 지역 변수는 메소드에 존재하며 범위는 메소드 내에서만 존재합니다.
- 인스턴스 변수는 클래스 전체에 걸쳐 있는 범위에서만 클래스에 존재하고 정의됩니다.
51. Java에서 클래스의 의미를 설명하십시오.
Java에서는 모든 코드, 변수 및 메서드가 클래스에 정의됩니다.
- 변수 는 특정 클래스의 상태를 정의하는 속성을 나타냅니다.
- 메소드 는 비즈니스 로직이 적용되는 위치를 나타냅니다. 방법에는 요구 사항과 일치하는 일련의 설명과 지침이 포함됩니다.
다음은 Java의 클래스에 대한 간단한 예입니다 .
1 2 삼 4 5 6 7 | public class Addition { //클래스 이름 선언 정수 x = 10 ; //변수 선언 정수 y = 10 ; public void add (){ //메소드 선언 정수 z = a + b ; } } |
52. Java에서 Object의 의미를 설명하십시오.
객체는 특정 상태와 동작만 있는 클래스의 인스턴스로 정의됩니다. 예를 들어, 이름, 품종 및 색상의 특정 상태를 가진 개는 짖거나 꼬리를 흔드는 행동을 포함합니다. 따라서 JVM이 new() 키워드를 읽을 때마다 해당 인스턴스가 생성됩니다. 개체를 먼저 선언한 다음 인스턴스화하고 마지막으로 추가 수행을 위해 초기화해야 합니다.
53. 바이트 데이터 유형의 기본값을 Java 언어로 정의합니다.
Byte 데이터 유형의 경우 기본값은 0입니다.
54. Java에서 바이트 데이터 유형이 더 유리한 이유는 무엇입니까?
바이트 데이터 유형은 정수보다 거의 4배 작기 때문에 큰 배열에 더 많은 공간을 저장할 수 있습니다.
55. Java의 OOP 개념을 설명합니다.
OOP는 Java 프로그래밍 언어의 기본 개념입니다. 여기에는 추상화, 다형성, 상속 및 캡슐화가 포함됩니다. Java OOP 개념은 개발자가 보안을 유지하면서 사용자 정의된 방식으로 재사용할 수 있도록 하는 변수, 메서드 및 구성 요소를 생성할 수 있도록 합니다.
56. 상속의 의미를 설명하십시오.
Java에서 상속은 한 클래스가 다른 클래스의 속성(필드 및 메서드 포함)을 획득할 수 있도록 하는 특정 메커니즘입니다. 상속은 Java OOP의 기본 개념 중 하나입니다.
상속을 통해 새 클래스를 만들고 기존 클래스에 더 많은 필드와 메서드를 추가하여 어떤 식으로든 재사용할 수 있습니다.
- 하위 클래스는 다른 클래스의 속성을 상속하는 클래스입니다.
- 슈퍼클래스는 속성이 상속되는 클래스입니다.
57. Java에서 캡슐화의 개념을 설명합니까?
Java OOP의 기본 개념 중 하나인 Encapsulation은 단일 단위 내에서만 데이터와 코드의 래핑을 가능하게 합니다. 캡슐화는 다른 모든 클래스에서 숨겨지고 기존 클래스의 메서드로만 액세스할 수 있는 특정 클래스의 변수를 사용하여 데이터 은닉이라고도 합니다.
Java에서 캡슐화를 달성하기 위한 두 가지 필수 사항은 다음과 같습니다.
- 특정 클래스의 변수를 private로 선언합니다.
- 변수 값을 변경하고 보기 위해 공개 setter 및 getter 메서드를 활용합니다.
58. 다형성의 개념을 설명하십시오.
Java의 다형성을 사용하면 개발자가 단일 작업을 여러 방식으로 수행할 수 있습니다. 런타임 및 컴파일 시간이 있는 Java에는 두 가지 유형의 다형성이 있습니다. 재정의 및 오버로딩 메서드를 사용하여 Java에서 다형성을 작동할 수 있습니다.
59. 인터페이스의 의미를 설명하십시오.
Java에서는 다중 상속을 달성할 수 없습니다. 여기서 인터페이스는 추상화를 달성하고 다중 상속을 지원하며 느슨한 결합을 지원하기 위해 이러한 문제를 극복하는 데 중요한 역할을 합니다. 이제 최신 Java 업데이트와 인터페이스하는 기본, 정적 및 개인 메서드가 있습니다.
60. 추상 클래스는 무엇을 의미합니까?
추상 클래스는 Java에서 특정 추상 키워드로 빌드됩니다. 추상 및 비추상 메서드를 모두 나타냅니다.
61. 자바의 추상화 클래스를 설명하라?
추상화는 구현 정보를 사용자에게 숨기고 사용자 기능만 나타내기 위한 필수 속성 중 하나입니다. For instance, when you send an SMS from one person to another person. The user gets to know only the message and number while the backend process remains hidden.
You can achieve abstraction in Java using the following two ways:
- Abstract Class (0 to 100%)
- Interface (100%)
62. Explain the difference between Abstraction and Encapsulation in Java.
Here are the main differences:
추출 | 캡슐화 |
Abstraction aims to gain information. | Encapsulation's main aim is to contain or procure information. |
In the abstraction process, issues or problems are handled at the interface/ design level. | In Encapsulation, problems are handled at a specific implementation level. |
Abstraction aids in hiding unwanted information. | Encapsulation method applies hiding data within a single unit. |
Implemented with interfaces and abstract classes. | Implemented with a particular access modifier (public, private, and protected). |
Use abstract classes and interfaces to hide complexities. | Use getters and setters to hide data. |
Objects that extend to abstraction must be encapsulated. | An object for encapsulation must not be abstracted. |
63. Explain the differences between Abstract class and interface.
Abstract Class | 상호 작용 |
Abstract Class comes with a default constructor. | The interface doesn't have a constructor. So, no further process. |
Uses both Abstract and Non-Abstract methods. | Only use Abstract methods. |
Classes that must extend for Abstract class need only abstract methods throughout their sub-class. | Classes that extend to interface must provide implementation across all the methods. |
These include instance variables. | The interface presents constants only. |
64. Explain the main differences between Array and Array List.
정렬 | Array List |
The size needs to be defined for the declaring array. String[] name = new String[5] | No size requirements; and modifies dynamically.![]() ArrayList name = new ArrayList |
You must specify an index for putting an object inside the array. name[1] = “dog” | There are no index requirements.
name.add(“dog”) |
Arrays are not parameterised. | From Java 5.0 onwards, ArrayLists have a specific parameterised type. |
65. Explain the difference between static method and instance method.
Static or Class Method | Instance Method |
You must declare a method static for a static method. | All methods with declaration as static come under Instance method only. |
No requirements for creating objects in the Static method. | The object is a must for calling the instance method. |
You cannot access Instance or Non-static methods in the static context. | You can access both static and non-static in the instance method. |
66. How to make Constructors static?
Constructors invoked with the object, and static context is part of the class, not the object. Hence, constructors cannot be static and show compiler error if run or executed.
67. Explain the use of 'this' keyword in Java?
In Java, 'this' keyword represents a specific reference on the current object. There are multiple uses for this keyword for referring to the current class properties from a variable, constructors, methods, and more. You can also pass this as an argument within constructors or methods. You can also fetch this as a return value from the current class instance. You can also refer to this as a static context.
또한 읽기: Java 프로젝트를 코딩, 컴파일 및 실행하는 방법
68. What is a classloader in Java? What are the different types of ClassLoaders in Java?
Java Classloader's main function is to dynamically load all classes into the Java Virtual Machine (JVM). ClassLoaders are part of the JRE only. So every time we run a Java program, classloader loads the classes to execute this program. A single ClassLoader loads only a specific class on requirements and uses getClassLoader() method to specify the class. These classes are loaded by calling their names, and in case these are not found then it retrieves or throws a ClassNotFoundException or NoClassDefFoundError.
Java ClassLoader uses three principles in performing tasks with delegation, uniqueness, and visibility.
There are three different types of Java ClassLoader:
- BootStrap ClassLoader:
BootStrap ClassLoader represents the parent or superclass for extension classloader and all other classloaders. It has machine code that loads the pure first Java ClassLoader and takes classes from the rt.jar and also known as Primordial ClassLoader.
- Extension ClassLoader:
Extension ClassLoader represents the child classloader for the superclass or BootStrap ClassLoader. It loads core java classes from jre/lib/ext , ie, JDK extension library.
- System ClassLoader:
Application or System ClassLoader are further child classes of Extension ClassLoader. It takes and loads a file from the current directory for the program that you can customise with the 'classpath' switch.
69. Explain the meaning of Java Applet.
Java Applet is a program that executes or runs in the web browser only. Applets are specifically designed to function and embed with HTML web pages. Applets have the capability to function full Java applications with the entire use of Java API. JVM is a must requirement to view an applet on the browser. Applet extends with the use of java.applet.Applet class.
70. What are the types of Applets?
Based on location, there are two types of Java applets as Local Applets that are stored on the same computer or system. The Remote Applets that have files on remote systems.
71 What are immutable objects in Java?
Java에서 불변 객체는 생성된 후에도 상태가 변경되지 않는 객체입니다. 불변 개체는 동기화를 피하면서 스레드를 공유할 수 있는 다중 스레드 응용 프로그램에 이상적입니다. 불변 객체는 효과적인 전략과 일치하는 간단하고 건전하며 안정적인 코드를 작성하는 데 선호됩니다.
72. JRE(Java Runtime Environment)란 무엇을 의미합니까?
Java Runtime Environment는 시스템에서 Java 프로그램을 실행하기 위한 최소 요구 사항을 지원하는 소프트웨어 계층입니다. JDK 및 JRE와 함께 이 세 가지는 특정 시스템에서 Java 프로그램을 실행하고 개발하기 위한 기본 요소를 구성합니다.
73. JDK의 일부는 무엇입니까?
JDK(Java Development Kit)는 Java 프로그램을 실행하는 데 필수적인 기본 기술 패키지 중 하나입니다. Windows, Linux 또는 macOS에서 애플리케이션을 빌드하기 위해 Oracle에서 개발한 Java 플랫폼, Standard Edition, Micro 또는 Enterprise Edition 중 하나에서 구현될 수 있습니다.
74. 자바 가상 머신(JVM)이란 무엇입니까?
JVM(Java Virtual Machine)은 JDK 및 JRE와 함께 Java 프로그램을 실행하고 실행하기 위한 세 가지 기본 요구 사항 중 하나입니다. JVM에는 두 가지 기본 기능이 있습니다. 첫째, Java 프로그램이 모든 시스템이나 시스템에서 원활하게 실행되도록 하고 둘째로 성능을 제공하기 위해 메모리를 최적화합니다.
75.JDK, JRE, JVM의 차이점은 무엇인가요?
JVM | JRE | JDK |
자바 가상 머신 | 자바 런타임 환경 | 자바 개발 키트 |
여러 소프트웨어 및 하드웨어 옵션을 사용할 수 있는 플랫폼에 따라 다릅니다. | 시스템에서 Java 프로그램을 실행하기 위한 최소 요구 사항을 지원하는 소프트웨어 계층입니다. | 스탠다드 에디션 기업용 에디션 마이크로 에디션 |
다음과 같은 세 가지 개념:
| 런타임에 JVM에 권한을 부여하는 라이브러리 + 파일 세트. | JRE + 개발 도구 |
실행을 위한 런타임 환경을 제공합니다. | JRE는 JVM의 구현을 나타냅니다. | 소프트웨어 개발 환경. |
76. JVM에는 몇 가지 유형의 메모리 영역이 있습니까?
JVM에는 여러 유형의 메모리 영역이 있습니다.
- 클래스 영역: 이 메모리는 필드, 풀, 메소드 데이터 및 코드가 있는 사전 클래스 구조를 저장합니다.
- 힙은 개체에 특별히 할당된 런타임 메모리를 나타냅니다.
- 스택은 로컬 변수, 부분 결과, 스레드 및 각 메서드에 대한 프레임을 사용하여 프레임의 메모리를 나타냅니다.
- 프로그램 카운터 레지스터는 자바 가상 머신 실행과 함께 현재 명령어에 대한 정보를 저장합니다.
- 네이티브 메서드 스택은 현재 애플리케이션에서 사용 중인 모든 현재 네이티브 메서드를 저장합니다.
77. 자바에서 데이터 바인딩이란?
데이터 바인딩은 클래스와 메서드, 필드, 변수, 생성자 또는 메서드 본문 간의 연결을 나타냅니다. Java는 정적으로 및 동적으로 데이터 바인딩을 처리할 수 있습니다.
78. Java에서 데이터 바인딩의 다른 유형은 무엇입니까?
Java에는 두 가지 중요한 유형의 데이터 바인딩이 있습니다.
- 정적 바인딩은 정적, 최종 및 개인 메서드를 사용하여 컴파일 시간에 발생합니다. 초기 바인딩이라고도 합니다.
- 동적 바인딩은 컴파일 시간 동안 올바른 방법에 대해 알려진 정확한 정보 없이 런타임에 표시됩니다.
79. 자바 소켓이란 무엇입니까?
소켓은 TCP를 통해 두 컴퓨터에서 통신 메커니즘을 구축하는 데 도움이 됩니다. 소켓은 이상적으로는 통신에 더 충분하고 유연합니다.
80. 경로와 클래스 경로의 차이점을 설명하십시오.
경로와 클래스 경로는 모두 로컬 환경 변수를 나타냅니다. 경로는 실행 파일을 찾는 소프트웨어를 제공하는 반면 ClassPath는 시스템에서 .class 파일의 위치를 지정합니다.
81. 추상 클래스를 사용하지 않는 추상 메서드가 있습니까?
아니요, 추상 메서드가 클래스에 존재하려면 추상 클래스여야 합니다.
82. Java에서 읽기 전용 클래스를 만드는 과정은 무엇입니까?
Java에서는 모든 필드를 비공개로 유지하여 읽기 전용 클래스를 만들 수 있습니다. 이 특정 읽기 전용 클래스에는 개인 속성을 반환하는 getter 메서드만 있습니다. setter 메서드를 사용할 수 없으므로 이 속성을 수정하거나 변경할 수 없습니다.
1 2 삼 4 5 6 7 8 9 | //Java의 읽기 전용 클래스 공개 수업 학생 { //개인 데이터 멤버 개인 문자열 연구소 = "MKG" ; // 연구소를 위한 getter 메소드 공개 문자열 getInstitute (){ 반환 기관 ; } } |
83. Java에서 쓰기 전용 클래스를 만드는 과정은 무엇입니까?
Java에서는 setter 메서드만 구현하여 모든 필드를 비공개로 유지하여 쓰기 전용 클래스를 만들 수도 있습니다.
1 2 삼 4 5 6 7 8 9 | // 자바의 쓰기 전용 클래스 공개 수업 학생 { //개인 데이터 멤버 사설 스트링 연구소 ; //연구소를 위한 setter 메소드 공개 무효 setInstitute ( 문자열 연구소 ){ 이 . 연구소 = 연구소 ; } } |
84. Java에서 다른 클래스의 클래스에 접근하는 방법을 설명하십시오.
Java에서는 다음과 같이 다른 클래스의 클래스에 액세스하는 두 가지 방법이 있습니다.
- 특정 이름 사용: 정규화된 이름을 사용하여 다른 패키지의 특정 클래스에 액세스하거나 특정 클래스가 포함된 패키지를 가져올 수 있습니다.
- 상대 경로 사용: 마찬가지로 특정 클래스와 함께 해당 패키지의 상대 경로를 사용할 수도 있습니다.
85. 예외 처리란 무엇입니까?
예외 처리는 응용 프로그램의 정상적인 흐름을 유지하기 위해 런타임 오류 동안 예외 또는 비정상 조건을 처리하는 메커니즘을 나타냅니다. Checked Exception, Unchecked Exception 및 Error가 있는 세 가지 유형의 Java 예외가 있습니다.
86. 확인된 예외와 확인되지 않은 예외의 차이점을 설명하십시오.
- Checked Exceptions는 SQLException, IOException 등과 같은 RuntimeException을 제외하고 throw 가능한 클래스를 추가로 확장하는 클래스입니다. Checked Exceptions는 컴파일 시간 동안에만 처리됩니다.
- Unchecked Exceptions는 NullPointerException, ArithmeticException 등과 같은 RuntimeException을 확장하는 클래스로 컴파일 시간 동안 처리되지 않습니다.
87. 예외 및 오류의 기본 클래스는 무엇입니까?
여기서 Throwable 클래스는 예외 및 오류에 대한 기본 클래스를 나타냅니다.
88. Java에서 예외 처리 키워드를 언급하십시오.
Java에서 예외를 처리하기 위한 5가지 키워드 는 다음과 같습니다.
예어 | 설명 |
노력하다 | 이 try 블록은 실행 코드를 배치하기 위한 블록을 정의합니다. 이 try 블록 뒤에는 일반적으로 catch 또는 finally가 사용됩니다. 따라서 단독으로 사용할 수 없습니다. |
잡다 | Catch 블록의 주요 목표는 예외를 처리하는 것입니다. 이것을 try 블록과 함께 사용하고 마지막으로 나중 단계에서 사용해야 합니다. |
마지막으로 | 마지막으로 블록은 실행 여부를 확인하는 프로그램의 중요한 코드를 확인합니다. |
던지다 | throw 키워드의 주요 목적은 프로그램에서 예외를 throw하는 것입니다. |
던지다 | throws 키워드는 주로 예외를 선언하는 데 사용되며 예외를 throw하는 데 사용되지 않습니다. 예외 발생에 대한 정보를 제공하며 메서드 시그니처와 함께 적용됩니다. |
89. finally 블록의 중요성을 설명하십시오.
여기에서 finally 블록은 프로그램의 원활한 실행에 결정적으로 중요합니다. 예외 처리 여부에 관계없이 항상 실행됩니다. 마지막으로 블록은 try 또는 catch 블록 뒤에 옵니다. JVM에서 시스템은 파일을 종료하거나 닫기 전에 항상 finally 블록을 실행합니다. 각 try 블록에 대해 catch 블록은 0개 또는 여러 개일 수 있지만 여전히 finally 블록은 하나만 있을 수 있습니다.
90. catch 블록 없이 finally 블록을 실행할 수 있습니까?
예, finally 블록은 각각 try 또는 catch 블록이 뒤따르는 실행될 수 있습니다.
91. finally 블록이 존재하지 않는 경우가 있나요?
프로그램이 이미 존재하거나 프로세스 중단에 대한 치명적인 오류가 발생한 경우에는 마지막으로 블록이 실행되거나 실행되지 않습니다.
92. 던지기와 던지기의 주요 차이점을 설명하십시오.
던져 키워드 | 던진 키워드 |
예외가 발생합니다. | 예외를 선언합니다. |
확인된 예외는 throw로만 전파할 수 없습니다. | 확인된 예외는 throw와 함께 전파될 수 있습니다. |
그 뒤에 인스턴스가 있습니다. | 수업이 이어집니다. |
메서드에서만 사용됩니다. | 특정 메서드 서명과 함께 사용됩니다. |
여러 예외에 대한 가능성은 없습니다. | 반면 이 절차에서는 여러 예외를 선언할 수 있습니다. |
93. 예외가 다시 발생할 가능성이 있습니까?
예, 예외가 있으면 다시 throw될 수 있습니다.
94. 예외 전파에 대해 설명하십시오.
처리 절차 내의 예외 프로세스를 예외 전파라고 합니다. 예를 들어 예외는 스택의 맨 위에서 먼저 처리된 다음 catch되지 않으면 예외가 이전 메서드로 떨어지고 그렇지 않은 경우 예외가 catch되거나 맨 아래에 도달할 때까지 더 아래로 내려갑니다. 스택의. 기본적으로 확인된 예외는 전파되지 않습니다.
95. 자바에서 쓰레드의 의미를 설명하라.
Java에서 실행 방식 또는 흐름을 스레드라고 합니다. 따라서 모든 프로그램에는 JVM이 생성한 주 스레드라고 하는 하나의 스레드가 포함됩니다. 개발자는 인터페이스를 사용하여 Thread 클래스를 추가 및 확장하여 사용자 정의 스레드를 정의할 수 있습니다.
96. 쓰레드 풀의 의미를 설명하라.
Java 스레드 풀은 할당된 작업을 지속적으로 기다리는 여러 스레드의 그룹입니다. 여기에서 스레드 풀은 이 풀에서 스레드를 가져온 다음 특정 작업에 대한 작업을 할당하는 서비스 공급자 아래에서 작동합니다. 스레드 풀은 시스템에 더 많은 성능과 안정성을 추가합니다.
97. String과 StringBuffer의 차이점을 설명하십시오.
끈 | 문자열 버퍼 |
String 클래스는 본질적으로 변경할 수 없습니다. | 반면 StringBuffer 클래스는 변경 가능합니다. |
문자열이 느립니다. | 그렇지 않으면 StringBuffer가 상당히 빠릅니다. |
새 인스턴스를 만드는 데 더 많은 메모리를 소비합니다. | 이것들은 연결 문자열로 더 적은 메모리를 소비합니다. |
문자열을 사용하면 Object 클래스의 equals() 메서드를 재정의하므로 내용을 비교할 수 있습니다. | 반면 StringBuffer 클래스는 Object 클래스의 equals() 메서드를 재정의할 수 없습니다. |
98. StringBuffer와 StringBuilder의 차이점을 설명하십시오.
문자열 버퍼 | 스트링 빌더 |
스레드에 대한 안전성과 동기화됩니다. | 스레드에 대한 안전성이 없는 동기화되지 않습니다. |
여기서 두 개의 스레드는 호출 방식이 없습니다. | 이 경우 두 스레드가 원활하게 호출 메서드를 가질 수 있습니다. |
StringBuilder보다 낮거나 덜 효율적입니다. | StringBuffer보다 효율적입니다. |
99. Java에서 불변 클래스를 만드는 방법은 무엇입니까?
Java에서는 모든 멤버가 있는 final 클래스를 final로 선언하여 변경할 수 없는 클래스를 만들 수 있습니다. 이를 이해하기 위해 예를 들어 보겠습니다.
1 2 삼 4 5 6 7 8 9 10 11 12 | 공개 최종 클래스 직원 { 최종 문자열 securityNumber ; 공개 직원 ( 문자열 보안 번호 ){ 이 . 보안번호 = 보안번호 ; } 공개 문자열 getSecurityNumber (){ 반환 securityNumber ; } } |
99. 내부 클래스란 무엇입니까?
Java 내부 클래스는 인터페이스 또는 클래스 내에서 정의 및 선언됩니다. 내부 클래스를 사용하면 시스템에서 클래스와 인터페이스를 논리적으로 그룹화하여 더 읽기 쉽고 유지 관리하기 쉽게 만들 수 있습니다. 또한 이러한 클래스는 메서드를 사용하여 외부 클래스의 모든 멤버와 개인 데이터 멤버에 액세스할 수 있습니다.
100. Java Inner 클래스를 사용할 때의 주요 장점과 단점은 무엇입니까?
Java 내부 클래스의 주요 이점은 다음과 같습니다.
- 외부 클래스의 모든 구성원에 대한 액세스 가능성.
- 작성할 코드가 적습니다.
- 더 많은 유지 관리 및 읽기 가능한 코드.
Java 내부 클래스의 주요 단점은 다음과 같습니다.
- IDE의 지원이 적습니다.
- 총 수업 수가 많습니다.
101. Java 프로그래밍 언어에서 내부 클래스의 유형을 정의합니까?
내부 클래스에는 세 가지 주요 유형이 있습니다.
- 외부 메서드를 사용하여 클래스 내에서 클래스를 지정하는 내부 클래스입니다.
- 클래스를 확장하거나 인터페이스 구현을 지정하기 위한 익명 내부 클래스.
- 메서드 내에서 클래스를 생성하는 로컬 내부 클래스.
102. 중첩 클래스를 정의하십시오.
중첩 클래스는 클래스 또는 인터페이스 내에서만 정의되거나 선언됩니다. 중첩 클래스는 메서드 및 개인 데이터 멤버를 사용하여 외부 클래스의 모든 멤버에 특히 액세스할 수 있습니다. 다음은 중첩 클래스의 간단한 구문입니다.
1 2 삼 4 5 6 | 클래스 Java_Outer_class { //암호 클래스 Java_Nested_class { //암호 } } |
103. 내부 클래스와 중첩 클래스의 차이점을 설명할 수 있습니까?
모든 내부 클래스는 비정적 중첩 클래스로 정의됩니다. 따라서 내부 클래스는 중첩 클래스의 일부일 뿐입니다.
104. Java에서 Collections의 의미를 어떻게 정의하시겠습니까?
Java의 컬렉션은 하나의 단위로 표시되는 여러 개체의 그룹입니다. 주로 개체의 컬렉션으로 알려져 있습니다. 객체를 위한 저장 공간을 제공하고 변경 사항에 대한 디자인을 추가로 조작하는 컬렉션 프레임워크 또는 아키텍처라고도 합니다.
다음은 Java 컬렉션에서 수행하는 주요 기능입니다.
- 정렬
- 수색
- 삽입
- 시장 조작
- 삭제
컬렉션의 일부인 많은 인터페이스와 클래스가 있습니다.
105. 컬렉션에서 사용할 수 있는 인터페이스와 클래스는 무엇입니까?
다음은 Java의 컬렉션과 함께 사용할 수 있는 인터페이스 및 클래스 목록입니다.
- 인터페이스: 컬렉션, 대기열, 정렬된 집합, 정렬된 맵, 목록, 집합, 맵
- 클래스: 목록, 벡터, 배열 목록, 연결 목록
- 세트: 해시 세트, 트리 세트, 연결된 해시 세트
- 맵: 해시 맵, 해시 테이블, TreeMap, 연결된 해시 맵
- 대기열: 우선 순위 대기열
106. Java에서 컬렉션과 관련하여 정렬 및 정렬을 설명합니까?
- 정렬됨: 정렬을 통해 개체 그룹이 내부 또는 외부적으로 적용하여 다른 속성을 기반으로 특정 컬렉션에서 개체를 정렬할 수 있습니다.
- Ordered: 컬렉션에 추가된 값을 기준으로 정렬된 값을 정의하고 특정 순서로 반복합니다.
107. 컬렉션에서 사용할 수 있는 다른 목록은 무엇입니까?
중복이 허용되는 인덱스 위치를 기반으로 상점 값을 나열합니다. 목록의 주요 유형은 다음과 같습니다.
Array Lists: Random Access Interface를 사용하고, 정렬되지 않은 인덱스로 주문 수집을 제공하고, 빠른 반복을 제공합니다. 이를 이해하기 위한 예는 다음과 같습니다.
1 2 삼 4 5 6 7 8 9 10 11 12 13 | 공개 수업 과일 { 공개 정적 무효 메인 ( 문자열 [ ] 인수 ){ ArrayList < 문자열 > 이름 = 새로운 ArrayList < 문자열 >(); 이름 . 추가 ( " 사과 " ); 이름 . 추가 ( " 아보카도 " ); 이름 . 추가 ( " 체리 " ); 이름 . 추가 ( " 키위 " ); 이름 . 추가 ( " 오렌지 " ); 이름 . 추가 ( " 바나나 " ); 이름 . 추가 ( " 키위 " ); 시스템 . 밖으로 . println ( 이름 ); } } |
출력은 다음과 같습니다.
[사과, 아보카도, 체리, 키위, 오렌지, 바나나, 키위] |
출력을 통해 Array List가 원래 삽입 순서를 유지하고 복제도 허용하는지 확인할 수 있습니다. 정렬되지는 않았지만.
벡터: 또한 랜덤 액세스 방법을 사용하고 동기화되며 스레드 안전을 지원합니다.
예를 들어 이것을 이해합시다.
1 2 삼 4 5 6 7 8 9 10 11 12 13 | 공개 수업 과일 { 공개 정적 무효 메인 ( 문자열 [ ] 인수 ){ ArrayList < 문자열 > 이름 = 새 벡터 < 문자열 >(); 이름 . 추가 ( " 키위 " ); 이름 . 추가 ( " 오렌지 " ); 이름 . 추가 ( " 바나나 " ); 이름 . 추가 ( " 사과 " ); 이름 . 추가 ( " 아보카도 " ); 이름 . 추가 ( " 체리 " ); 이름 . 추가 ( " 키위 " ); 시스템 . 밖으로 . println ( 이름 ); } } |
출력은 다음과 같습니다.
[키위, 오렌지, 바나나, 사과, 아보카도, 체리, 키위] |
벡터 목록은 원래 삽입 순서를 따르며 중복도 지원합니다.
연결 목록: 삭제 및 삽입에도 이상적인 선택이며 요소가 이중 연결되지만 성능이 느립니다.
연결 목록의 예:
1 2 삼 4 5 6 7 8 9 10 11 12 13 | 공개 수업 과일 { 공개 정적 무효 메인 ( 문자열 [ ] 인수 ){ ArrayList < 문자열 > 이름 = 새 벡터 < 문자열 >(); 이름 . 추가 ( " 키위 " ); 이름 . 추가 ( " 오렌지 " ); 이름 . 추가 ( " 바나나 " ); 이름 . 추가 ( " 사과 " ); 이름 . 추가 ( " 아보카도 " ); 이름 . 추가 ( " 체리 " ); 이름 . 추가 ( " 키위 " ); 시스템 . 밖으로 . println ( 이름 ); } } |
출력은 다음과 같습니다.
[사과, 아보카도, 체리, 키위, 오렌지, 바나나, 키위] |
또한 원래 게재 신청서를 따르고 중복을 허용합니다.
108. Java에서 컬렉션과 컬렉션의 주요 차이점은 무엇입니까?
주요 차이점은 다음과 같습니다.
- 컬렉션은 인터페이스를 나타내는 반면 컬렉션은 특히 클래스 전용입니다.
- Collection 인터페이스는 데이터를 List, Set, Queue로 구성하기 위한 다양한 기능을 제공합니다. Collection 클래스의 주요 목표는 컬렉션의 요소를 정렬하고 동기화하는 것으로 제한됩니다.
109. 우선순위 큐를 설명하십시오.
Priority Queue는 Priority-in 및 Priority-out을 목적으로 연결 목록을 처리하기 위한 대기열 인터페이스를 정의합니다. 대기열은 일반적으로 FIFO(선입 선출) 알고리즘을 따르지만 여전히 특정 요구 사항에 따라 요소를 대기열에 넣을 수 있으며 그런 다음 사용자 지정을 위해 PriorityQueue를 구현할 수 있습니다. 우선 순위 큐를 사용하면 자연적으로 또는 상대적 우선 순위에 대한 비교기를 통해 우선 순위 힙에 따라 달라집니다.
110. Java에서 Runnable 인터페이스를 사용하고 비교하는 것이 이상적인 때는 언제입니까?
스레드가 아닌 다른 클래스로 클래스를 확장해야 하는 경우 실행 가능한 인터페이스가 이상적인 선택입니다.
111. 쓰레드 클래스의 start() 메소드와 run() 메소드의 차이점은 무엇입니까?
start() 메서드는 새 스레드를 추가하고 생성합니다. 그리고 run() 메서드의 코드는 새 스레드에서만 실행됩니다. run() 메서드는 현재 스레드에서만 코드를 실행합니다.
112. 멀티스레딩이란 무엇입니까?
Java에서는 다중 스레드를 동시에 실행할 수 있으며 이를 멀티스레딩이라고 합니다. 더 적은 메모리를 사용하고 더 높은 성능을 제공하면서 프로그램이 멀티태스킹하는 데 도움이 됩니다. 멀티스레딩에서 스레드는 가볍고 동일한 공간을 공유하며 모든 면에서 매우 저렴합니다.
113. 프로세스와 스레드의 차이점을 설명하십시오.
주요 차이점은 다음과 같습니다.
- 실행 중인 Java 프로그램을 프로세스라고 하는 반면 스레드는 프로세스의 하위 집합만을 나타냅니다.
- 프로세스는 메모리의 다른 공간을 나타내는 반면 스레드는 동일한 주소를 갖습니다.
- 프로세스는 완전히 독립적인 반면 스레드는 프로세스의 일부일 뿐입니다.
- 프로세스 간 통신은 느린 반면 스레드 간 통신은 신속합니다.
114. 스레드 간 통신의 의미를 설명하십시오.
스레드 간 통신은 동기화된 여러 스레드 간의 통신을 허용하는 프로세스로 정의됩니다. 주요 목표는 Java에서 스레드 풀링을 방지하는 것입니다. 통신은 wait(), notify(), notifyAll() 메소드를 통해 이루어진다.
115. wait() 메서드를 설명합니다.
wait() 메서드를 사용하면 다른 스레드가 객체에 잠겨 있는 동안 스레드가 대기 단계에 있도록 허용할 수 있습니다. 따라서 wait() 메서드는 스레드에 대해 상당한 대기 시간을 추가할 수 있습니다.
이를 나타내는 구문은 다음과 같습니다.
1 2 삼 4 5 6 | 공개 정적 무효 메인 ( 문자열 [] 인수 ){ 스레드 t = 새 스레드 (); 티 . 시작 (); 동기화됨 ( t ) { 잠깐 (); } |
116. Java에서 notify()와 notifyAll() 메소드의 주요 차이점은 무엇입니까?
notify() 메서드는 대기 풀의 특정 스레드만 깨우라는 신호를 보내는 반면, notifyAll()은 풀의 대기 단계에 있는 모든 스레드를 깨우는 신호를 보냅니다.
117. sleep()과 wait()의 주요 차이점을 정의하십시오.
Sleep()은 잠금을 해제하지 않고 특정 기간 동안 실행을 일시 중지하여 현재 스레드 진행을 일시 중지하거나 중지합니다. wait()는 나중에 깨우기 위해 notify() 메서드를 호출한 후 스레드에 대한 대기 시간을 유발합니다.
118. 자바의 쓰레드와 관련하여 join() 메소드를 설명하라.
join() 메서드를 사용하면 하나의 스레드를 연속 스레드 중 하나와 결합할 수 있습니다. 다음은 join() 메서드의 구문입니다.
1 2 삼 4 5 | 공개 정적 무효 메인 ( 문자열 [] 인수 ){ 스레드 t = 새 스레드 (); 티 . 시작 (); 티 . 조인 (); } |
119. Thread의 Yield 방식을 설명하라.
Yield 메서드는 정적 메서드이며 스레드의 잠금을 해제하지 않습니다. 여기에서 Yield() 메서드는 현재 스레드에 더 실행 가능한 스레드에 권한을 부여하는 동시에 다른 스레드가 실행을 유지하도록 허용합니다. 따라서 동일한 스레드 우선 순위 스레드가 정기적으로 실행될 수 있습니다.
120. 기아 단계는 무엇입니까?
기아 상태는 스레드가 공유 리소스에 대한 액세스 권한을 얻지 못하고 진행이 불가능한 단계입니다.
121. 스레드의 교착 상태란 무엇입니까?
교착 상태는 두 개 이상의 스레드가 서로를 기다리면서 영원히 차단되는 단계를 정의합니다.
122. Java에서 직렬화 및 역직렬화를 정의합니까?
직렬화는 객체의 상태를 JPA, JMS, RMI, JPA 및 Hibernate 기술에 이상적으로 적합한 특정 바이트 스트림으로 변환하는 프로세스입니다. 바이트 스트림을 객체로 변경하는 반대 프로세스를 역직렬화라고 합니다. 두 프로세스 모두 플랫폼 독립적이므로 하나의 플랫폼에서 직렬화하고 완전히 다른 플랫폼으로 효율적으로 역직렬화할 수 있습니다.
123. 일시적인 변수의 중요성은 무엇입니까?
임시 변수의 중요성은 기본 변수로 설정되고 정적 변수와 함께 사용되지 않는 역직렬화에 있습니다.
124. 휘발성 변수는 무엇입니까?
휘발성 변수는 스레드 캐시 메모리를 피하면서 주 메모리에서 동기화 및 읽기에 중요한 역할을 합니다.
125. SerialVersionUID란 무엇입니까?
직렬화 프로세스에서 개체에는 각 개체 클래스에 대한 특정 버전 ID 번호가 찍힙니다. 이 번호를 SerialVersionUID라고 하며 각각 보낸 사람과 받는 사람의 호환성을 확인하기 위해 역직렬화 과정에서 확인하는 데 중요한 역할을 합니다.
126. Java에서 객체를 복제하는 프로세스는 무엇입니까?
개체 복제를 사용하면 원본 개체의 정확한 복사본을 만들 수 있습니다. 복제가 가능하려면 클래스가 java.lang.Cloneable 인터페이스로 복제를 지원하고 원래 객체 클래스에서 clone() 메서드를 재정의할 수 있어야 합니다.
다음은 clone() 메서드에 대한 간단한 구문입니다.
보호된 개체 clone()이 CloneNotSupportedException을 발생시킵니다. |
클론이 이를 구현하지 않는 경우 일반적으로 'CloneNotSupportedException'과 함께 예외가 발생합니다.
127. 각 클래스에 대해 상위 클래스로 남아 있는 클래스를 정의합니까?
객체 클래스.
128. 문자열 클래스가 변경 가능한지 변경할 수 없는지 정의하십시오.
String 클래스는 변경할 수 없는 상태를 나타냅니다. 따라서 객체가 생성되면 더 이상 변경할 수 없습니다.
129. StringBuffer와 StringBuilder 클래스를 어떻게 구별합니까?
- StringBuilder는 StringBuffer보다 빠릅니다.
- StringBuffer는 동기화되지만 StringBuilder는 동기화되지 않습니다.
- StringBuffer는 스레드로부터 안전한 환경을 제공하지만 StringBuilder에는 스레드로부터 안전한 기능이 없습니다.
130. 자바에서 toString() 메소드의 용도는 무엇입니까?
Java에서 toString()은 모든 객체에서 문자열 표현을 검색하거나 반환합니다.
131. Java에서 가비지 컬렉션이란 무엇입니까?
객체가 연산자를 통해 동적으로 할당됨에 따라 Java 시스템은 상당한 기간 동안 남아 있는 객체에 대한 참조가 없는 경우 자동으로 사용되는 메모리 할당 해제도 처리합니다. 시스템에 사용하지 않는 객체가 없도록 유지하는 이 프로세스를 Java에서 Garbage Collection이라고 합니다. 가비지 수집의 주요 목표는 메모리를 보다 효율적으로 관리하는 것입니다.
132. 가비지 수집기가 특정 개체에 대해 finalize() 메서드를 호출하는 횟수는 얼마입니까?
가비지 수집에서 finalize() 메서드는 한 번만 호출할 수 있습니다.
133. 가비지 컬렉션을 호출하는 방법을 정의합니다.
가비지 컬렉션을 호출하는 방법에는 두 가지가 있습니다.
- System.gc()
- 런타임.getRuntime().gc()
134. 가비지 컬렉션을 강제할 수 있습니까?
아니요, 이것은 자동 프로세스입니다. 가비지 수집 방법을 호출할 수 있지만 강제할 수는 없습니다. 그러나 그것이 완전하다는 보장은 없습니다.
135. Java의 다른 데이터 유형은 무엇입니까? 설명.
다음은 데이터 유형에 도움이 되는 후보 목록입니다.
- 바이트 - 8비트
- 짧은 – 16비트
- char - 16비트 유니코드
- int – 32비트(정수)
- float – 32비트(실수)
- long – 64비트(단정밀도)
- 배정도 – 64비트(배정밀도)
136. 유니코드를 정의하십시오.
유니코드는 인간 언어로 국제 문자를 정의하는 방법이며 Java는 이 유니코드 구조를 사용하여 문자를 상징합니다.
137. 리터럴을 정의하십시오.
리터럴은 특정 변수에 할당된 상수 값입니다.
// 여기서 105는 리터럴입니다. 정수 = 105 |
138. Java에서 캐스팅 유형을 정의합니까?

한 데이터 유형의 값을 다른 데이터 유형에 할당하는 경우 이 두 가지가 호환될 수도 있고 그렇지 않을 수도 있으며 변환이 필요합니다. Java는 호환되는 데이터 유형의 경우 자동으로 변환합니다. 데이터 유형이 호환되지 않는 경우 성공적인 변환을 위해 이러한 유형을 캐스트해야 합니다. 캐스팅에는 암시적 및 명시적의 두 가지 기본 유형이 있습니다.
139. 두 가지 유형의 유형 캐스팅을 설명합니까?
- 암시적: 컴파일러에서만 수행되는 더 작은 데이터 유형의 값을 더 큰 데이터 유형으로 저장하는 것을 정의합니다.
- 명시적: 정보 손실을 초래할 수 있는 더 큰 데이터 유형의 값을 더 작은 데이터 유형으로 저장하는 것을 정의합니다.
결론
위의 Java 인터뷰 질문은 인터뷰 준비를 위한 좋은 출발점이 될 것입니다. 코딩 기술도 연습하고 면접관이 Q를 했을 때 A로 라운드에서 승리할 준비가 되도록 이 질문과 관련 개념을 철저히 하세요. 아, 그리고 3을 잊지 마세요. (눈에 띄지 않게) 면접관 앞에서 자신을 소개할 때 숨을 쉰다.
Java, 전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 upGrad & IIIT-B의 소프트웨어 개발 이그 제 큐 티브 PG 프로그램 - 전문가를 위해 설계되었으며 500 시간 이상의 엄격한 교육을 제공하는 전체 스택 개발 전문화를 확인하십시오. , 9개 이상의 프로젝트 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.
모두 제일 좋다! 인터뷰를 깰 수 있기를 바랍니다!!