프로그램 사용 방법을 무료로 해킹하십시오. 쉬운 해킹: Android 애플리케이션에서 잠재적인 취약점과 하드코딩된 데이터를 찾는 방법. 프로그램의 물리적 해킹

  • OOP란 무엇입니까?
  • 객체란 무엇입니까?
  • OOP의 기본 원칙은 무엇입니까?
  • 상속이란 무엇입니까?
  • 다형성이란 무엇입니까? Java에서 다형성의 어떤 표현을 알고 있습니까?
  • 캡슐화란 무엇입니까?
  • 추상화란 무엇입니까?
  • 객체 지향 프로그래밍 언어의 장점은 무엇입니까?
  • 객체 지향 접근 방식을 사용하면 소프트웨어 개발이 어떻게 향상됩니까?
  • '이다', '있다'라는 표현이 있습니다. OOP 원칙 측면에서 이는 무엇을 의미합니까? 구성과 집계의 차이점은 무엇입니까?
  • 다형성, 캡슐화 및 동적 바인딩이란 무엇을 의미합니까?

자바 코어.

  • JRE, JVM 및 JDK의 차이점은 무엇입니까?
  • Java의 액세스 수정자를 설명합니다.
  • 패키지 수준 액세스란 무엇입니까?
  • 추상 클래스는 인터페이스와 어떻게 다른가요? 어떤 경우에 추상 클래스를 사용하고 어떤 경우에 인터페이스를 사용합니까?
  • 객체가 비공개 클래스 변수에 액세스할 수 있나요? 그렇다면 어떻게?
  • Java에 정적 블록이 있는 이유는 무엇입니까?
  • 정적 메서드를 오버로드할 수 있나요?
  • 내부 수업에 대해 알려주세요. 언제 사용하실 건가요?
  • 인스턴스 변수와 정적 변수의 차이점은 무엇입니까? 예를 들어보세요.
  • 정적 메서드를 사용할 수 있는 경우를 예로 들어볼까요?
  • 로더 클래스와 동적 클래스 로딩에 대해 알려주십시오.
  • Java에서 사용되는 "assert" 문은 무엇입니까?
  • 일부 인터페이스가 메소드를 전혀 정의하지 않는 이유는 무엇입니까?
  • String, StringBuffer, StringBuilder의 주요 차이점은 무엇입니까?
  • Java I/O 스트림에 대해 설명하세요.
  • Java의 힙 및 스택 메모리란 무엇입니까?
  • Java에서 스택과 힙 메모리의 차이점은 무엇입니까?
  • Java의 메모리 모델에 대해 알려주십시오.
  • 가비지 수집기는 어떻게 작동하나요?
  • 타입 캐스팅에 대해 알려주세요. 유형 강등 및 승격이란 무엇입니까? ClassCastException은 언제 발생합니까?
  • 정적 클래스란 무엇이며, 그 사용의 특징은 무엇입니까?
  • 중첩 클래스에서 외부 클래스의 필드에 액세스하는 방법
  • 어떤 유형의 중첩 클래스가 있나요? 그것들은 무엇을 위해 사용됩니까?
  • 메소드를 재정의할 때 변경할 수 있습니까?
  • 접근 수정자
  • 반환 유형
  • 인수 유형 또는 수량
  • 인수 이름
  • 순서나 수량을 변경해야 합니까, 아니면 던지기 섹션을 모두 제거해야 합니까?
  • 오토박싱이란 무엇입니까?
  • 제네릭이란 무엇입니까?
  • Java에서 일반 유형을 사용하는 실제 목적은 무엇입니까?
  • 변수는 값이나 참조를 통해 어떻게 메서드에 전달되나요?
  • Object 클래스에는 어떤 메서드가 있나요?
  • Object.equals() 메서드를 재정의하기 위한 규칙입니다.
  • equals()를 재정의하려면 재정의된 메서드에 대해 어떤 조건을 충족해야 합니까?
  • hashCode와 같음의 관계는 무엇입니까?
  • Object 클래스에서 hashCode 및 equals 메소드는 어떻게 구현됩니까?
  • hashCode를 재정의하지 않고 같음을 재정의하면 어떻게 되나요? 어떤 문제가 발생할 수 있나요?
  • hashCode를 계산할 때 어떤 필드를 사용해야 하는지에 대한 권장 사항이 있나요?
  • hashCode() 메소드는 무엇을 위한 것인가요?
  • Object.hashCode() 메서드를 재정의하기 위한 규칙입니다.
  • 객체 복제에 대해 알려주세요. 얕은 복제와 깊은 복제의 차이점은 무엇입니까?
  • Object.clone() 메서드를 재정의하기 위한 규칙입니다.
  • 개인 생성자를 어디에서 어떻게 사용할 수 있나요?
  • 기본 생성자는 무엇입니까?
  • Object.finalize() 메서드를 설명하세요.
  • 이들최종, 최종 및 최종의 차이점은 무엇인가요?
  • 예외 계층 구조를 설명합니다.
  • Java의 어떤 유형의 예외를 알고 있으며 어떻게 다른가요?
  • 확인된 예외와 확인되지 않은 예외는 무엇입니까?
  • 확인되지 않은 예외를 직접 만드는 방법은 무엇입니까?
  • Unchecke 예외란 무엇입니까?
  • 오류란 무엇입니까?
  • try-catch-finally 블록의 작동을 설명합니다.
  • try-finally 블록을 (catch 없이) 사용할 수 있습니까?
  • finally 블록은 항상 실행되나요?
  • String 클래스의 기능은 무엇입니까? intern() 메서드는 무엇을 합니까?
  • 문자열 유형을 상속받을 수 있습니까? 왜 그렇습니까?
  • String이 Java의 HashMap에서 널리 사용되는 키인 이유는 무엇입니까?
  • 문자열 연결의 개념을 정의합니다.
  • 문자열을 뒤집는 방법?
  • 두 문자열의 값을 비교하는 방법은 무엇입니까?
  • 줄의 시작과 끝에서 공백을 자르는 방법은 무엇입니까?
  • "문자열 풀"의 개념을 정의합니다.
  • 행 액세스를 동기화할 수 있습니까?
  • String 및 StringBuffer 유형의 서로 다른 두 개체의 문자열 값을 올바르게 비교하는 방법은 무엇입니까?
  • Java에서 문자열이 불변이고 종료되는 이유는 무엇입니까?
  • 문자열에서 특정 문자를 제거하는 메서드를 작성합니다.
  • 반성이란 무엇입니까?
  • 일부 개체의 finalize() 메서드 중에 예외가 발생하면 가비지 수집기(GC)는 어떻게 되나요?
  • 국제화, 현지화란 무엇인가요?
  • Java의 주석이란 무엇입니까?
  • Annotation은 어떤 기능을 수행하나요?
  • Java에 내장된 어떤 주석을 알고 있나요?
  • @Retention, @Documented, @Target 및 @Inherited 주석의 기능은 무엇인가요?
  • @Override, @Deprecated, @SafeVarargs 및 @SuppressWarnings 주석의 기능은 무엇입니까?
  • @Retention을 사용하여 어떤 주석 수명 주기를 지정할 수 있나요?
  • 주석을 적용할 수 있는 요소는 무엇이며 이를 어떻게 표시할 수 있나요?
  • 자신만의 주석을 만드는 방법은 무엇입니까?
  • 주석에는 어떤 유형의 속성이 허용됩니까?
  • JMX란 무엇입니까?
  • JMX는 어떤 이점을 제공합니까?
  • JMX는 원격 제어 외에 무엇을 할 수 있나요?
  • MBean이란 무엇입니까?
  • 어떤 유형의 MBean이 있습니까?
  • MBean 서버란 무엇입니까?
  • Java 기술에 보안을 제공하는 메커니즘은 무엇입니까?
  • Java 바이트코드 검증기가 수행하는 몇 가지 검사 유형을 나열해 보세요.
  • Java의 "보안 관리자"에 대해 무엇을 알고 있습니까?
  • JAAS란 무엇입니까?
  • 리팩토링이란 무엇입니까?

Java 컬렉션 프레임워크.

  • 컬렉션이란 무엇입니까?
  • 컬렉션의 주요 인터페이스와 그 구현의 이름을 지정하세요.
  • ArrayList는 LinkedList와 어떻게 다른가요? 어떤 경우에 첫 번째 것을 사용하는 것이 더 좋고, 어떤 경우에 두 번째를 사용하는 것이 더 좋습니까?
  • HashMap은 Hashtable과 어떻게 다른가요?
  • ArrayList와 Vector의 차이점은 무엇입니까?
  • 컬렉션 요소는 어떻게 비교되나요?
  • List, Set, Map, SortedSet, SortedMap, Collection, Iterable, Iterator, NavigableSet, NavigableMap과 같은 인터페이스를 계층 구조로 배열합니다.
  • List와 Set이 컬렉션인 반면 Map은 컬렉션이 아닌 이유는 무엇입니까?
  • "반복자"라는 용어를 정의하십시오.
  • Iterable 인터페이스에 대해 무엇을 알고 있나요?
  • 한 줄로 HashSet을 ArrayList로 변환하는 방법은 무엇입니까?
  • 한 줄로 ArrayList를 HashSet으로 변환하는 방법은 무엇입니까?
  • Map이 Iterable이 아닌 경우 Map의 모든 키를 어떻게 반복합니까?
  • Map이 Iterable이 아닌 경우 모든 Map 값을 어떻게 반복합니까?
  • Map이 Iterable이 아닌 경우 Map의 모든 키-값 쌍을 어떻게 반복합니까?
  • toString()이 모든 것을 순서대로 표시한다는 사실 외에 SortedMap은 어떻게 "정렬"됩니까?
  • 한 번의 호출로 컬렉션의 요소를 배열로 복사하는 방법은 무엇입니까?
  • Collection 메소드(addAll(),removeAll(),retainAll())를 사용하여 두 컬렉션의 대칭적 차이를 구현합니다.
  • 열거형과 반복자를 비교합니다.
  • Iterable과 Iterator는 어떤 관련이 있나요?
  • Java 5에 도입된 Iterable, Iterator 및 "for-each"는 서로 어떤 관련이 있습니까?
  • Iterator와 ListIterator를 비교합니다.
  • Iterator.hasNext()를 "요청"하지 않고 Iterator.next()를 호출하면 어떻게 되나요?
  • Iterator.hasNext()를 10번 호출하기 전에 Iterator.next()를 호출하면 어떻게 됩니까? 9가지 요소가 누락되었나요?
  • 컬렉션과 하위 반복자가 있는 경우 iterator.remove()를 호출하면 컬렉션이 변경됩니까?
  • 컬렉션과 하위 반복자가 있는 경우 collection.remove(..)를 호출하면 반복자가 변경됩니까?
  • Vector가 이미 있는데 ArrayList를 추가한 이유는 무엇입니까?
  • ArrayList 클래스의 구현에는 Object elementData, int 크기 필드가 있습니다. elementData.length를 항상 사용할 수 있다면 크기를 별도로 저장하는 이유를 설명하세요.
  • LinkedList는 단일 연결 목록인가요, 이중 연결 목록인가요, 아니면 4개 연결 목록인가요?
  • LinkedList (O(1), O(log(N)), O(N), O(N*log(N)), O(에 있는 요소에 대한 contain() 메서드의 최악의 실행 시간은 얼마입니까? N*N) )?
  • ArrayList (O(1), O(log(N)), O(N), O(N*log(N)), O에 있는 요소에 대한 contain() 메서드의 최악의 실행 시간은 얼마입니까? (N*N) )?
  • LinkedList (O(1), O(log(N)), O(N), O(N*log(N)), O(N*N))에서 add() 메서드의 최악의 실행 시간은 얼마입니까? ?
  • ArrayList (O(1), O(log(N)), O(N), O(N*log(N)), O(N*N))에 대한 add() 메서드의 최악의 실행 시간은 얼마입니까? ?
  • ArrayList.add()를 호출할 때 메모리에 몇 개의 요소가 할당됩니까?
  • LinkedList.add()를 호출할 때 메모리에 몇 개의 요소가 할당됩니까?
  • LinkedList에 1바이트 프리미티브를 저장하기 위한 메모리 양을 추정하시겠습니까?
  • ArrayList에 1바이트 프리미티브를 저장하기 위한 메모리 양을 추정하시겠습니까?
  • 목록 중간에 list.add(list.size()/2, newElem) 요소를 추가합니다. ArrayList 또는 LinkedList 중 누구에게 이 작업이 더 느립니까?
  • 느린 get(index)을 사용하지 않고 LinkedList 요소를 역순으로 반복하는 방법은 무엇입니까?
  • List에서 한 번의 호출로 첫 번째와 마지막 3개를 제외한 모든 요소가 포함된 목록을 얻는 방법은 무엇입니까?
  • 메모리에 있는 다른 객체(ref0 != ref1)가 ref0.hashCode() == ref1.hashCode()를 가질 수 있습니까?
  • 메모리에 있는 다른 객체(ref0 != ref1)가 ref0.equals(ref1) == true를 가질 수 있습니까?
  • 메모리(ref0 == ref1)에 있는 동일한 객체에 대한 서로 다른 참조가 ref0.equals(ref1) == false를 가질 수 있습니까?
  • Point(int x, y;) 클래스가 있습니다. 해시 코드 31 * x + y가 x + y보다 선호되는 이유는 무엇입니까?
  • Point(int x, y;) 클래스에 equals 메서드(ref0.x == ref1.x && ref0.y == ref1.y 반환)의 "올바른" 구현이 있지만 다음 형식으로 해시 코드를 만드는 경우 int hashCode() ( return x;) 그러면 해당 포인트가 HashSet에서 올바르게 배치되고 검색됩니까?
  • equals()는 동치 관계를 생성합니다. 이 관계에는 교환성, 대칭성, 재귀성, 분배성, 결합성, 전이성 등 어떤 속성이 있습니까?
  • Equals(Object that) (return this.hashCode() == that.hashCode())를 이와 같이 구현하는 것이 가능합니까?
  • 같음은 인수(equals(Object that))가 객체 자체와 동일한 유형인지 확인해야 합니다. this.getClass() == that.getClass()와 MyClass 인스턴스의 차이점은 무엇입니까?
  • MyClass 클래스의 equals 메소드를 다음과 같이 구현할 수 있습니까? class MyClass (public boolean equals(MyClass that) (return this == that;))?
  • 모든 키가 int hashCode()(return 42;)를 반환하면 HashMap이 작동합니까?
  • Hashtable이 이미 있는데 왜 HashMap을 추가했습니까?
  • Knuth와 Cormen에 따르면 해시 테이블 구현에는 개방형 주소 기반과 체인 기반이라는 두 가지 주요 해시 테이블 구현이 있습니다. HashMap은 어떻게 구현되나요? (당신 생각에는) 그들은 왜 이런 짓을 했나요? 각 접근 방식의 장단점은 무엇입니까?
  • 테이블에 있는 키에 대해 HashMap.get(key)를 수행할 때 링크 클릭이 몇 번 발생합니까?
  • HashMap에 새 요소를 추가하면 몇 개의 새 개체가 생성됩니까?
  • hashCode가 동일하지만 == false인 키로 두 요소를 저장하려고 할 때 HashMap은 어떻게 작동합니까?
  • HashMap은 hashCode가 다른 키에 대해서도 목록으로 변질될 수 있습니다. 이것이 어떻게 가능한지?
  • 테이블에 없는 키에 대한 get(key) 메서드의 최악의 실행 시간은 얼마입니까 (O(1), O(log(N)), O(N), O(N*log(N)) , O(N*N))?
  • 테이블 (O(1), O(log(N)), O(N), O(N*log(N))에 있는 키에 대한 get(key) 메서드의 최악의 실행 시간은 얼마입니까? O(N*N))?
  • HashMap(intinitialCapacity, float loadFactor) 생성자에 있는 매개변수의 의미를 설명하세요.
  • HashMap과 IdentityHashMap의 차이점은 무엇입니까? IdentityHashMap은 무엇을 위한 것인가요? 직렬화 또는 복제를 구현하는 데 어떻게 유용할 수 있습니까?
  • HashMap과 WeakHashMap의 차이점은 무엇입니까? WeakHashMap은 무엇을 위한 것인가요?
  • WeakHashMap은 WeakReference를 사용합니다. SoftReferences에 SoftHashMap을 생성해 보는 것은 어떨까요?
  • WeakHashMap은 WeakReference를 사용합니다. PhantomReferences에 PhantomHashMap을 생성해 보는 것은 어떨까요?
  • HashMap에서 HashSet을 만듭니다(값 집합이 아닌 키 집합만 사용).
  • HashSet에서 HashMap 만들기(HashSet >).
  • java.util.Queue 및 java.util.Deque 인터페이스를 비교하십시오.
  • 누가 누구를 확장합니까? Queue가 Deque를 확장합니까, 아니면 Deque가 Queue를 확장합니까?
  • LinkedList가 List와 Deque를 모두 구현하는 이유는 무엇입니까?
  • java.util.Arrays와 java.lang.reflect.Array 클래스의 차이점은 무엇입니까?
  • java.util.Collection과 java.util.Collections 클래스의 차이점은 무엇입니까?
  • 컬렉션에서 ConcurrentModificationException을 발생시키는 NOT 다중 스레드 프로그램을 작성하세요.
  • "빠른 실패 동작"이란 무엇입니까?
  • 열거형 세트에 대한 특수 클래스 java.util.EnumSet이 있습니까? 무엇을 위해? 작성자가 HashSet 또는 TreeSet에 만족하지 못한 이유는 무엇입니까?
  • java.util.Stack - "구식"으로 간주됩니다. 무엇으로 교체하는 것이 좋습니다? 왜?
  • FIFO 서비스 원칙을 구현하는 컬렉션은 무엇입니까?
  • FILO 서비스 원칙을 구현하는 컬렉션은 무엇입니까?
  • 컬렉션에서 UnsupportedOperationException이 발생하는 경우의 예를 들어보세요.
  • 왜 "ArrayList"를 쓸 수 없나요? 숫자 = 새로운 ArrayList ();" 하지만 "목록"은 가능합니다. 숫자 = 새로운 ArrayList ();"?
  • LinkedHashMap - 이것은 어떤 종류의 "짐승"입니까? LinkedList는 무엇이며 HashMap은 무엇입니까?
  • LinkedHashSet - 이것은 어떤 종류의 "짐승"입니까? LinkedList는 무엇이고 HashSet은 무엇입니까?
  • LinkedHashMap에서 '무효화 정책'을 이용하면 간단한 캐시를 만드는 것이 쉽다고 하는데, 혹시 그 방법을 아시나요?
  • PriorityQueue를 사용하면 무엇을 할 수 있나요?
  • java.util.Comparator와 java.lang.Comparable의 차이점은 무엇입니까?

자바 8.

  • 심볼릭 링크란 무엇입니까?
  • I/O와 NIO의 차이점은 무엇입니까?
  • NIO의 어떤 기능을 알고 있나요?
  • 어떤 유형의 I/O 스트림이 있습니까?
  • I/O 스트림의 주요 클래스 이름을 지정합니다.
  • 차이점은 무엇이며 OutputStream, InputStream, Writer, Reader의 공통점은 무엇입니까?
  • 당신이 알고 있는 InputStream 기본 클래스의 하위 클래스는 무엇이며, 그 하위 클래스는 무엇을 합니까?
  • RandomAccessFile에 대해 무엇을 알고 있나요?
  • RandomAccessFile에는 어떤 파일 액세스 모드가 있습니까?
  • OutputStream 기본 클래스의 어떤 하위 클래스를 알고 있으며 어떤 역할을 합니까?
  • PushbackInputStream은 어떤 용도로 사용되나요?
  • SequenceInputStream은 무엇에 사용되나요?
  • 기본 클래스 Reader의 어떤 하위 클래스를 알고 있으며 그 용도는 무엇입니까?
  • Writer 기본 클래스의 어떤 하위 클래스를 알고 있으며 해당 하위 클래스는 어떤 역할을 합니까?
  • 절대 경로와 상대 경로란 무엇입니까?
  • 스레드 클래스가 포함된 패키지는 무엇입니까?
  • 슈퍼클래스에 대해 무엇을 알고 있나요?
  • 기본 데이터 유형 형식으로 입력 바이트 스트림에서 데이터를 읽을 수 있는 추가 기능 클래스는 무엇입니까?
  • 버퍼를 사용하여 읽기/쓰기 속도를 높일 수 있는 추가 기능 클래스는 무엇입니까?
  • 바이트 스트림을 문자 스트림으로 또는 그 반대로 변환할 수 있는 클래스는 무엇입니까?
  • PrintWriter 클래스와 PrintStream의 차이점은 무엇입니까?
  • 파일 시스템 요소와 작동하도록 설계된 클래스는 무엇입니까?
  • 파일 시스템에서 경로를 지정할 때 구분 기호는 어떤 문자입니까?
  • File 클래스의 어떤 메소드를 알고 있나요?
  • FileFilter 인터페이스에 대해 무엇을 알고 있습니까?
  • 객체를 보관할 수 있는 클래스는 무엇입니까?

  • 정적 동기화 메서드를 호출할 때 어떤 개체에서 동기화가 발생합니까?
  • 휘발성, 동기화, 일시적, 기본 키워드는 무엇에 사용됩니까?
  • 스레드 우선순위는 무엇을 의미합니까?
  • Java의 데몬 스레드란 무엇입니까?
  • 흐름을 잠들게 한다는 것은 무엇을 의미합니까?
  • Java에서 스레드는 어떤 상태로 존재할 수 있습니까? 흐름은 실제로 어떻게 작동합니까?
  • Runnable 및 Callable 작업을 구현하기 위한 두 인터페이스의 차이점은 무엇입니까?
  • CyclicBarrier와 CountDownLatch의 차이점은 무엇입니까?
  • 경쟁 조건이란 무엇입니까?
  • 스레드를 중지하는 방법은 무엇입니까?
  • 스레드에서 예외가 발생하면 어떻게 되나요?
  • ThreadLocal 변수란 무엇입니까?
  • 퓨처태스크란 무엇인가요?
  • Interrupted와 isInterrupted의 차이점은 무엇입니까?
  • 동기화된 블록에서 대기 및 알림 메소드가 호출되는 이유는 무엇입니까?
  • 스레드 풀이란 무엇입니까?
  • 라이브락과 교착상태의 차이점은 무엇인가요?
  • 스레드가 잠금을 보유하고 있는지 확인하는 방법은 무엇입니까?
  • 스레드 덤프를 얻는 방법은 무엇입니까?
  • 스레드의 스택 크기를 제어하는 ​​데 사용되는 JVM 매개변수는 무엇입니까?
  • 동기화와 ReentrantLock의 차이점은 무엇입니까?
  • 세마포어란 무엇입니까?
  • 스레드 풀 대기열이 이미 가득 차서 작업을 제출하면 어떻게 되나요?
  • 스레드 풀에서 submit()과 excute() 메소드의 차이점은 무엇입니까?
  • 차단 방법이란 무엇입니까?
  • ReadWriteLock이란 무엇입니까?
  • 싱글톤의 이중 확인 잠금이란 무엇입니까?
  • Fork/Join 프레임워크란 무엇입니까?
  • 우리는 정보를 표시하는 프로그램의 10가지 까다로운 예를 수집했습니다. 코드를 보고 프로그램이 무엇을 출력할지 말해야 합니다. 프로그램이 컴파일되지 않을 수도 있습니다. 이 경우 컴파일러가 출력할 내용을 지정해야 합니다.

    사람들은 인터뷰 중에 이런 질문을 하는 것을 좋아하므로 Java 프로그래밍 언어에 대한 지식을 쌓는 것이 좋습니다. 답변은 스포일러(프로그램이나 컴파일러가 출력하는 내용)에 숨겨져 있습니다. 정답을 보기 전에 스스로 생각해 보세요.

    패키지 com.instanceofjava; 공용 클래스 B ( B b = new B(); public int show())( return (true ? null: 0); ) public static void main(String args) ( B b = new B(); b.show( ) ) )

    • 클래스의 객체를 생성할 때마다 생성자가 먼저 호출되고 모든 비정적 변수에 대해 메모리가 할당됩니다.
    • 여기서 B b = new B(); 클래스 B의 객체에는 동일한 클래스의 새 객체가 할당됩니다.
    • Bb = new B();를 작성하세요. 무한한 객체를 생성하는 생성자의 재귀 실행으로 이어집니다. 이것이 바로 이 코드가 실행될 때 "기본" 스레드에서 java.lang.StackOverFlowError 예외가 발생하는 이유입니다.
    • 이러한 종류의 예외의 일반적인 원인은 잘못된 재귀입니다. 이는 일반적으로 잘못된 종료 조건으로 인해 발생합니다.

    다음 프로그램은 무엇을 출력할까요?

    패키지 com.instanceofjava; public class A( public static void show())( System.out.println("정적 메서드 호출됨"); ) public static void main(String args) ( A obj = null; obj.show(); ) )
    • null 을 참조하는 변수를 사용하여 정적 메서드를 호출할 수 있습니다. 요점은 정적 메서드가 클래스 수준에 있다는 것입니다. 이것이 바로 클래스 자체와 null 과 같은 변수를 사용하여 정적 함수를 호출할 수 있는 이유입니다.

    다음 프로그램은 무엇을 출력할까요?

    패키지 com.instanceofjava; 공용 클래스 A( static int a = 1111; static ( a = a-- - --a; ) ( a = a++ + ++a; ) public static void main(String args) ( System.out.println(a) ; ) )

    다음 프로그램은 무엇을 출력할까요?

    패키지 com.instanceofjava; 공용 클래스 A( int GetValue() ( return (true ? null: 0); ) public static void main(String args) ( A obj = new A(); obj.GetValue(); ) )

    다음 프로그램은 무엇을 출력할까요?

    패키지 com.instanceofjava; 공개 클래스 A( 공개 정적 void main(String args) ( 정수 i1 = 128; 정수 i2 = 128; System.out.println(i1 == i2); 정수 i3 = 127; 정수 i4 = 127; System.out.println (i3 == i4);

    다음 프로그램은 무엇을 출력할까요?

    패키지 com.instanceofjava; 클래스 A ( void 메서드(int i) ( ) ) 클래스 B 확장 A ( @Override void 메서드(Integer i) ( ) )
    • 프로그램의 어느 라인에서 컴파일 시간 오류가 발생합니까?
    패키지 com.instanceofjava; 클래스 A ( public static void main(String args) ( Integer i = new Integer(null); String s = new String(null); ) )

    다음 프로그램은 무엇을 출력할까요?

    패키지 com.instanceofjava; 클래스 A ( 공개 정적 void main(String args) ( 문자열 s = "ONE"+3+2+"TWO"+"THREE"+5+4+"FOUR"+"FIVE"+5; System.out.println (에스);

    다음 프로그램은 무엇을 출력할까요?

    패키지 com.instanceofjava; 클래스 A ( static int method1(int i) ( return method2(i *= 11); ) static int method2(int i) ( return method3(i /= 11); ) static int method3(int i) ( return method4( i -= 11); ) static int method4(int i) ( return i += 11; ) public static void main(String args) ( System.out.println(method1(11)); ) )

    다음 프로그램은 무엇을 출력할까요?

    패키지 com.instanceofjava; 클래스 A ( public static void main(String args) ( System.out.println(null); ) )

    System.out.println(null);을 작성하면 어떻게 되나요? ?

    물론 컴파일 오류가 발생합니다. println 메소드에는 여러 가지 변형이 있습니다. 문자열, 개체 또는 문자를 허용할 수 있습니다. 이 함수에 null 인수를 전달할 때 컴파일러는 세 가지 메서드 중 어떤 메서드를 호출할지 결정할 수 없습니다.

    오버로드된 메서드:

    • 공공 무효 prinltln(문자열 str) (
    • 공공 무효 prinltln(문자 ch) (
    • 공공 무효 prinltln(객체 ch) (

    컴파일러의 경우 System.out.println(null) 호출은 모호합니다. 두 가지 메서드(println(String) 및 println(char))가 null 'a를 출력하는 데 어느 정도 적합할 수 있기 때문입니다. 그러나 컴파일러는 어떤 특정 메서드를 호출해야 할지 모릅니다. 컴파일이 성공하려면 다음을 작성해야 합니다.

    • System.out.println((String)null);
    • System.out.println((char)null);
    • System.out.println((Object)null);

    하지만 여기서는 조심해야 합니다. System.out.println((char)null)을 호출합니다. 런타임 예외가 발생합니다.

    Java Core라는 단어를 처음 듣는 사람들에게는 이것이 언어의 기본 기초입니다. 이 지식을 바탕으로 안전하게 인턴십/인턴십을 진행할 수 있습니다. 이러한 질문은 인터뷰 전에 지식을 되새기거나 스스로 새로운 것을 배우는 데 도움이 될 것입니다. 실용적인 기술을 습득하려면 다음에서 공부하십시오.

      Java에서 불변 객체를 만드는 방법은 무엇입니까? 모든 혜택을 나열하세요.

      불변 클래스는 생성 후에 상태를 변경할 수 없는 클래스입니다. 여기서 객체의 상태는 본질적으로 기본 유형이든 참조 유형이든 클래스의 인스턴스에 저장된 값으로 간주됩니다.

      클래스를 불변으로 만들려면 다음 조건을 충족해야 합니다.

      1. 필드나 필드를 참조하는 객체를 수정하는 설정자나 메서드를 제공하지 마세요. 세터는 객체의 상태 변경을 의미하는데, 여기서는 이를 피하고 싶습니다.
      2. 모든 필드를 최종 및 비공개로 설정하세요. 비공개로 표시된 필드는 클래스 외부에서 액세스할 수 없으며 최종으로 지정하면 실수로라도 변경할 수 없습니다.
      3. 하위 클래스가 메서드를 재정의하는 것을 허용하지 마세요. 이를 수행하는 가장 쉬운 방법은 클래스를 final로 선언하는 것입니다. Java의 최종 클래스는 재정의될 수 없습니다.
      4. 변수 인스턴스는 변경 가능하거나 변경 불가능할 수 있다는 점을 항상 기억하세요. 이를 정의하고 모든 변경 가능한 객체(참조 유형)에 대해 복사된 내용이 포함된 새 객체를 반환합니다. 불변 변수(기본 유형)는 추가 노력 없이 안전하게 반환될 수 있습니다.

      또한 불변 클래스의 후속 이점을 기억해야 합니다. 면접 시 필요할 수도 있습니다. 불변 클래스:

      • 설계, 테스트 및 사용이 용이함
      • 자동으로 스레드로부터 안전하며 동기화 문제가 없습니다.
      • 복사 생성자가 필요하지 않습니다
      • 해시코드를 느리게 초기화하고 반환 값을 캐시할 수 있습니다.
      • 필드로 사용될 때 보안 복사가 필요하지 않습니다.
      • 좋은 Map 키와 Set 요소를 만드세요(이러한 객체는 컬렉션에 있을 때 상태를 변경하면 안 됩니다).
      • 클래스를 한 번 생성하여 영구적으로 만들면 다시 확인할 필요가 없습니다.
      • 항상 "실패 원자성"(Joshua Bloch가 만든 용어)을 갖습니다. 불변 객체가 예외를 던지면 결코 원치 않거나 정의되지 않은 상태로 남아 있지 않습니다.

      이 게시물에 작성된 예를 살펴보세요.

      Java 사양에는 Java의 모든 것이 값으로 전달된다고 명시되어 있습니다. Java에는 "참조에 의한 전달"이라는 것이 없습니다. 이러한 조건은 메소드 호출 및 변수를 메소드 매개변수로 전달하는 것과 연관되어 있습니다. 좋습니다. 기본 유형은 항상 혼동 없이 값으로 전달됩니다. 그러나 복합 유형의 메소드 매개변수 컨텍스트에서는 개념이 명확해야 합니다.


      위의 예에서 첫 번째 인스턴스의 주소 비트는 다른 참조 변수에 의해 복사되어 두 참조가 개체가 저장된 동일한 메모리 위치를 가리키도록 합니다. 두 번째 링크에 null을 할당해도 첫 번째 링크에는 null이 할당되지 않습니다. 그러나 하나의 참조 변수가 있는 객체의 상태 변경은 다른 링크에 반영됩니다.

      finally 블록의 용도는 무엇인가요? 이 블록은 코드 실행을 보장합니까? finally 블록은 언제 호출되지 않나요?

      try 블록이 존재하면 finally 블록이 항상 호출됩니다. 이렇게 하면 예상치 못한 예외가 발생하더라도 finally 블록이 호출됩니다. 그러나 마지막으로 예외 처리보다 더 유용합니다. 이 블록을 사용하면 return, continue 또는 break를 통해 실수로 우회된 코드를 정리할 수 있습니다. 예외가 예상되지 않는 경우에도 finally 블록에 정리 코드를 배치하는 것은 항상 좋은 습관입니다.

      try 또는 catch 블록이 실행되는 동안 가상 머신이 종료되면 finally 블록이 실행되지 않습니다. 마찬가지로, 스레드가 try 또는 catch 블록을 실행하다가 중단되거나 종료되면 애플리케이션이 계속 실행되더라도 finally 블록은 실행되지 않습니다.

      java.util 패키지와 java.sql에 각각 하나씩 두 개의 Date 클래스가 있는 이유는 무엇입니까?

      java.util.Date는 날짜와 시간을 나타내고 java.sql.Date는 날짜만 나타냅니다. java.sql.Date를 보완하는 것은 시간만을 나타내는 java.sql.Time 클래스입니다.

      java.sql.Date 클래스는 java.util.Date 클래스의 하위 클래스(확장)입니다. java.sql.Date에서 변경된 사항은 다음과 같습니다.

      • toString()은 문자열의 다른 표현인 yyyy-mm-dd를 생성합니다.
      • 정적 메소드 valueOf(String)는 위 표현을 사용하여 문자열에서 날짜를 생성합니다.
      • 시간, 분, 초에 대한 getter 및 setter는 제외됩니다.

      java.sql.Date 클래스는 JDBC에서 사용되며 시간 구성요소가 없도록 설계되었습니다. 즉, 시간, 분, 초 및 밀리초는 0이어야 합니다. 그러나 이는 클래스에 필요하지 않습니다.

      마커 인터페이스에 대해 설명하세요.

      인터페이스 토큰 패턴은 프로그래밍 언어에서 사용되는 컴퓨터 과학의 디자인 패턴입니다. 런타임 시 객체에 대한 정보 제공. 이것 언어가 해당 메타데이터를 명시적으로 지원하지 않는 경우 클래스 메타데이터를 연결하는 방법을 제공합니다.. Java에서는 메소드를 지정하지 않고 이를 위해 인터페이스가 사용됩니다.

      Java의 토큰 인터페이스의 좋은 예는 직렬화 가능 인터페이스입니다. 클래스는 비일시적 데이터가 바이트 스트림이나 파일 시스템에 기록될 수 있음을 나타내기 위해 이 인터페이스를 구현합니다.

      주요 문제마커 인터페이스는 인터페이스가 인터페이스를 구현하는 클래스에 대한 규칙을 정의하고 해당 규칙이 모든 하위 클래스에 상속된다는 것입니다. 이는 토큰을 "구현 해제"할 수 없음을 의미합니다. 위의 예에서 직렬화하고 싶지 않은 서브클래스를 생성하는 경우(일시적 상태이기 때문에) 명시적으로 NotSerializedException을 발생시켜야 합니다.

      main() 메소드가 public static void로 선언된 이유는 무엇입니까?

      왜 공개인가?기본 메소드에는 공용 액세스 수정자가 있으므로 애플리케이션을 실행하기 위해 이 메소드를 사용하려는 모든 객체에서 어디에서나 액세스할 수 있습니다. JDK/JRE에 비슷한 이유가 있다고 말하는 것은 아닙니다. java.exe 또는 javaw.exe(Windows용)는 JNI(Java Native Interface) 호출을 사용하여 메소드를 실행하므로 어떤 경우에도 호출할 수 있기 때문입니다. 접근 한정자 .

      왜 정적인가?우리의 주요 메소드가 정적이 아니라고 가정해 봅시다. 이제 메소드를 호출하려면 클래스의 인스턴스가 필요합니다. 오른쪽? Java는 오버로드된 생성자를 허용합니다. 우리 모두는 그것을 알고 있습니다. 그렇다면 어느 것을 사용해야 하며, 오버로드된 생성자의 매개변수는 어디에서 올까요?

      왜 무효인가?실제로 이 메서드를 호출하는 가상 머신에서는 반환 값이 사용되지 않습니다. 애플리케이션이 호출 프로세스에게 알리고 싶은 유일한 것은 프로세스가 정상적으로 종료되었는지 비정상적으로 종료되었는지 여부입니다. 이는 System.exit(int) 를 사용하여 이미 가능합니다. 0이 아닌 값은 비정상적인 완료를 의미하고, 그렇지 않으면 모든 것이 정상입니다.

      문자열을 new()로 생성하는 것과 리터럴을 생성하는 것(큰따옴표 사용)의 차이점은 무엇입니까?

      new()를 사용하여 문자열을 생성하면 힙에 생성되고 문자열 풀에도 추가되지만 리터럴을 사용하여 생성된 문자열은 문자열 풀에서만 생성됩니다.

      이 질문이나 유사한 질문에 대답하려면 문자열 풀링의 개념에 더 익숙해져야 합니다. 내 조언은 String 클래스와 문자열 풀을 실제로 배우라는 것입니다.

      String 클래스의 substring() 메서드는 어떻게 작동하나요?

      다른 프로그래밍 언어와 마찬가지로 Java의 문자열은 일련의 문자입니다. 이 클래스는 이 시퀀스 작업을 위한 유틸리티 클래스에 가깝습니다. 문자 순서는 다음 변수에 의해 제공됩니다.

      /** 해당 값은 문자 저장에 사용됩니다. */ /** 값은 문자를 저장하는 데 사용됩니다 */비공개 최종 문자 값 ; 다양한 시나리오에서 이 배열에 액세스하는 데 다음 변수가 사용됩니다. /** 오프셋은 사용되는 저장소의 첫 번째 인덱스입니다. */ /** 오프셋은 사용 중인 저장소의 첫 번째 인덱스입니다. */개인 최종 int 오프셋; /** 개수는 문자열의 문자 수입니다. */ /** Count는 해당 줄의 문자 수입니다. */비공개 최종 정수 개수;

      기존 문자열 인스턴스에서 하위 문자열을 생성할 때마다 substring() 메서드는 오프셋 및 개수 변수에 대한 새 값만 설정합니다. 내부 문자 배열은 변경되지 않습니다. substring() 메서드를 부주의하게 사용하면 메모리 누수의 원인이 될 수 있습니다.

      원래 값은 변경되지 않습니다. 따라서 10000자 길이의 문자열을 생성하고 각각 5~10자로 구성된 100개의 하위 문자열을 생성하면 모든 101개 개체에 동일한 10000자 길이의 문자 배열이 포함됩니다. 이것은 의심할 여지 없이 메모리 낭비이다.

      다음과 같이 코드를 변경하면 이 문제를 피할 수 있습니다.

      Original.substring(beginIndex) 를 new String(original.substring(beginIndex)) 로 바꾸십시오. 여기서 원본은 원래 문자열입니다.

      HashMap의 작동 원리를 설명하세요. 중복 문제는 어떻게 해결되나요?

      여러분 대부분은 HashMap이 요즘 인터뷰에서 가장 좋아하는 토론 주제라는 데 동의할 것입니다. 누군가 나에게 "HashMap은 어떻게 작동하나요?"라고 묻는다면 나는 "해싱의 원리에 기초하여"라고 간단히 대답할 것입니다. 그만큼 간단합니다.

      따라서 해싱은 기본적으로 수식/알고리즘을 해당 속성에 적용한 후 변수/객체에 고유한 코드를 할당하는 방법입니다.

      맵의 정의는 "키와 값을 연결하는 객체"입니다. 아주 간단하죠? 따라서 HashMap에는 다음과 같은 자체 내부 클래스 Entry가 포함되어 있습니다.

      정적 클래스 Entry가 Map을 구현합니다. . 기입(최종 K 키; V 값; 다음 항목; 최종 int 해시; …//여기에 더 많은 코드가 있습니다.)

      누군가가 HashMap에 키-값 쌍을 넣으려고 하면 다음과 같은 일이 발생합니다.

      • 우선, 키 객체에 null 이 있는지 확인합니다. 키가 null이면 값이 테이블 위치에 저장됩니다. null의 해시코드는 항상 0이기 때문입니다.
      • 그런 다음 다음 단계는 키 변수의 hashCode() 메서드를 호출하여 해시 값을 계산하는 것입니다. 이 해시는 항목 개체를 보유하기 위해 배열에 대한 인덱스를 계산하는 데 사용됩니다. JDK 개발자들은 hashCode() 메서드가 잘못 작성될 수 있고 매우 크거나 매우 작은 값을 반환할 수 있다는 것을 잘 알고 있었습니다. 이 문제를 해결하기 위해 그들은 또 다른 hash() 메소드를 도입하고 객체의 해시코드를 이 메소드에 전달하여 해당 값을 배열 인덱스 크기 범위로 캐스팅했습니다.
      • 이제 Entry 객체를 저장할 정확한 위치를 계산하기 위해 indexFor(hash, table.length) 메서드가 호출됩니다.
      • 이제 주요 부분입니다. 두 개의 서로 다른 객체가 동일한 해시코드 값을 가질 수 있다는 것을 알고 있듯이 두 개의 서로 다른 객체가 아카이브(버킷이라고 함)의 동일한 위치에 어떻게 저장됩니까?

      대답은 LinkedList입니다. 기억하신다면 Entry 클래스에는 "next" 속성이 있습니다. 이 속성은 항상 체인의 다음 개체를 가리킵니다. 이 동작은 LinkedList와 매우 유사합니다.

      따라서 해시코드가 일치하는 경우 Entry 개체가 LinkedList 형식으로 저장됩니다. Entry 객체를 특정 인덱스에 배치해야 하는 경우 HashMap은 해당 위치에 다른 Entry 객체가 있는지 확인합니다. 거기에 항목이 없으면 개체가 이 위치에 저장됩니다.

      인덱스에 이미 다른 객체가 있는 경우 해당 객체의 다음 필드가 확인됩니다. null인 경우 개체는 LinkedList의 다음 노드가 됩니다. next가 null이 아닌 경우 null인 다음 필드가 발견될 때까지 이 절차가 반복됩니다.

      이전에 추가한 것과 동일한 다른 키 값을 추가하면 어떻게 되나요? 이전 값을 대체해야 한다는 것이 논리적입니다. 어떻게 이런 일이 발생하나요? Entry 객체의 위치 인덱스를 결정하고 인덱스에 있는 LinkedList를 반복한 후 HashMap은 각 Entry 객체의 키 값에 대해 equals() 메서드를 호출합니다. LinkedList의 모든 Entry 객체는 동일한 해시코드 값을 갖지만, equals() 메소드는 실제 동등성을 확인합니다. 열쇠라면. 같음(k)은 진실, 그러면 둘 다 동일한 객체로 인식됩니다. 이렇게 하면 Entry 객체 내의 값 객체만 대체됩니다.

      이런 방식으로 HashMap은 키가 고유한지 확인합니다.

      인터페이스와 추상 클래스의 차이점은 무엇입니까?

      이것은 주니어 레벨 프로그래머를 위한 인터뷰에서 매우 일반적인 질문입니다. 가장 중요한 차이점은 다음과 같습니다.

      • Java 인터페이스에서 변수는 선험적 최종입니다. 추상 클래스에는 최종 변수가 아닌 변수가 포함될 수 있습니다.
      • Java의 인터페이스는 절대 구현을 가질 수 없습니다. 추상 클래스에는 기본 동작을 구현하는 메서드 인스턴스가 있을 수 있습니다.
      • 인터페이스 구성 요소는 공개되어야 합니다. 추상 클래스는 귀하의 취향에 맞게 액세스 수정자를 가질 수 있습니다.
      • 인터페이스는 Implements 키워드로 구현되어야 합니다. 추상 클래스는 키워드로 확장되어야 합니다. 연장하다.
      • Java에서 클래스는 많은 인터페이스를 구현할 수 있지만 하나의 추상 클래스에서만 상속할 수 있습니다.
      • 인터페이스는 완전히 추상적이며 인스턴스를 가질 수 없습니다. 추상 클래스도 클래스 인스턴스를 가질 수 없지만 main() 메서드가 있으면 호출할 수 있습니다.
      • 인터페이스는 Java에서 재정의된 메서드를 호출하기 전에 조회를 기대하기 때문에 추상 클래스는 인터페이스보다 약간 빠릅니다. 대부분의 경우 이는 사소한 차이이지만 시간이 중요한 애플리케이션을 작성하는 경우 이 사실을 고려해야 합니다.
    1. hashCode() 및 equals() 메서드를 언제 재정의합니까?

      hashCode() 및 equals() 메소드는 모든 Java 객체의 상위 클래스인 Object 클래스에 정의되어 있습니다. 이러한 이유로 모든 Java 객체는 이러한 메소드의 기본 구현을 상속합니다.

      hashCode() 메소드는 주어진 객체에 대한 고유한 정수 값을 얻는 데 사용됩니다. 이 값은 객체를 HashTable과 같은 데이터 구조에 저장해야 할 때 버킷의 위치를 ​​결정하는 데 사용됩니다. 기본적으로 hashCode() 메서드는 객체가 저장된 메모리 주소의 정수 표현을 반환합니다.

      이름에서 알 수 있듯이 equals() 메소드는 간단한 객체 동등성을 수행하는 데 사용됩니다. 이 메서드의 기본 구현은 두 개체의 참조를 확인하여 동일한지 확인하는 것입니다.

      일반적으로 equals() 메서드가 재정의될 때마다 hashCode() 메서드를 재정의해야 한다는 점에 유의하세요. 이는 동일한 객체가 동일한 해시코드를 가져야 한다는 hashCode 메서드의 일반적인 규칙을 지원하는 데 필요합니다.

      equals() 메소드는 관계 간의 동등성을 결정해야 합니다(반복적, 대칭적, 전이적이어야 함). 또한 지속성이어야 합니다(객체가 변경되지 않은 경우 메서드는 동일한 값을 반환해야 함). 또한 o.equals(null)은 항상 반환해야 합니다. 거짓.

      hashCode()도 지속성이어야 합니다. 즉, 객체가 equals() 메서드의 조건에 따라 수정되지 않은 경우 계속해서 동일한 값을 반환해야 합니다.

      두 메서드 사이의 관계는 다음과 같습니다. 항상 a.equals(b)이면 a.hashCode()는 b.hashCode()와 동일해야 합니다.

    공부 잘 하시길 바랍니다!! 기사 작성자 로케시 굽타 원본 기사다른 부분에 대한 링크:

    이 섹션에서는 Java 프로그래머 직위에 대한 면접 중에 질문할 수 있는 질문에 대해 다룹니다.

    목표는 질문(인터넷에 많은 질문이 있음)뿐만 아니라 해당 질문에 대한 답변도 한곳에 수집하는 것입니다.

    귀속 정보는 인터뷰 섹션의 메인 페이지를 읽어보세요.

    1. 해당 언어에 예약된 키워드는 몇 개이며, 이러한 단어는 무엇이며, 어떤 단어는 사용되지 않습니까?
    2. 변수 이름(올바른 식별자)은 어떤 문자로 구성될 수 있나요?
    3. "초기화"라는 단어는 무엇을 의미합니까?
    4. 데이터 유형은 어떤 주요 그룹으로 나눌 수 있나요?
    5. 어떤 기본 유형을 알고 있나요?
    6. 기본 데이터 유형 변환에 대해 무엇을 알고 있습니까? 데이터 손실이 있습니까? 부울 유형을 변환할 수 있습니까?
    7. 기본 변수는 어떤 값으로 초기화되나요?
    8. 변수의 값은 어떻게 참조/값으로 전달됩니까?
    9. 주요 기능에 대해 무엇을 알고 있습니까? 해당 기능을 정의하기 위한 전제 조건은 무엇입니까?
    10. 어떤 논리 연산과 연산자를 알고 있나요?
    11. 논리 연산자의 짧은 표기법과 전체 표기법의 차이점은 무엇입니까?
    12. 진리표란 무엇입니까?
    13. 삼항 선택 연산자란 무엇입니까?
    14. 어떤 단항 및 이진 산술 연산을 알고 있나요?
    15. 어떤 비트 연산을 알고 있나요?
    16. 스위치 연산자를 작성하는 역할과 규칙은 무엇입니까?
    17. 어떤 사이클을 알고 있으며, 그 차이점은 무엇입니까?
    18. "루프 반복"이란 무엇입니까?
    19. for 루프에는 어떤 매개변수가 있는데, 이를 지정하지 않을 수 있나요?
    20. 루프를 즉시 중지하는 데 사용되는 명령문은 무엇입니까?
    21. 루프의 다음 반복으로 이동하는 데 사용되는 명령문은 무엇입니까?
    22. 배열이란 무엇입니까?
    23. 어떤 유형의 배열을 알고 있나요?
    24. 래퍼 클래스에 대해 무엇을 알고 있나요?
    25. 자동 포장(박싱/언박싱)이란 무엇입니까?

    1. OOP의 원칙을 말하고 각각에 대해 말해 보세요.
    2. '클래스'의 개념을 정의합니다.
    3. 클래스 필드/속성이란 무엇입니까?
    4. 클래스 필드에 대한 액세스를 올바르게 구성하는 방법은 무엇입니까?
    5. "생성자"의 개념을 정의합니다.
    6. 기본, 복사 및 매개변수 생성자의 차이점은 무엇입니까?
    7. 어떤 액세스 수준 수정 사항을 알고 계시나요? 각각에 대해 알려주세요.
    8. 단일 개인 생성자를 갖는 클래스의 기능에 대해 알려주십시오.
    9. "this", "super"라는 키워드는 무엇을 의미하며, 어디서, 어떻게 사용할 수 있나요?
    10. "방법"이라는 개념을 정의합니다.
    11. 메소드 서명이란 무엇입니까?
    12. 오버로드된 메소드는 무엇입니까?
    13. 비정적 메서드가 정적 메서드에 오버로드될 수 있나요?
    14. 메소드 오버라이딩(Method Overriding)에 대해 알려주세요.
    15. 메소드가 다른 수의 매개변수(가변 길이 인수)를 사용할 수 있습니까?
    16. 메서드를 재정의할 때 액세스 수준/반환 유형을 좁힐 수 있나요?
    17. 상위 클래스의 재정의된 메서드에 액세스하는 방법은 무엇입니까?
    18. 하향 및 상향 변환은 무엇입니까?
    19. 오버라이딩과 오버로딩의 차이점은 무엇인가요?
    20. 정적/비정적 필드를 어디에서 초기화할 수 있나요?
    21. instanceof 연산자가 필요한 이유는 무엇입니까?
    22. 초기화 블록이 필요한 이유는 무엇이며 무엇입니까?
    23. 두 클래스(자식과 그 조상)의 생성자와 초기화 블록을 호출하는 순서는 무엇입니까?
    24. 추상 수정자는 어디에서 무엇을 위해 사용됩니까?
    25. 추상 메서드와 정적 메서드를 동시에 선언할 수 있나요?
    26. static 키워드는 무엇을 의미하나요?
    27. static 수정자는 어떤 Java 구성에 적용됩니까?
    28. 정적 코드 블록에서 예외가 발생하면 어떻게 되나요?
    29. 정적 메서드를 오버로드할 수 있나요?
    30. 정적 클래스란 무엇이며, 그 사용의 특징은 무엇입니까?
    31. 최종 정적 변수 초기화 기능은 무엇입니까?
    32. static 수정자는 클래스/메서드/필드에 어떤 영향을 미치나요?
    33. 마지막 키워드는 무엇을 의미하나요?
    34. "인터페이스"의 개념을 정의합니다.
    35. 필드와 인터페이스 메소드에는 어떤 기본 수정자가 있습니까?
    36. final 또는 static 수정자를 사용하여 인터페이스 메서드를 선언할 수 없는 이유는 무엇입니까?
    37. Java에는 어떤 유형의 클래스가 있습니까(중첩... 등)
    38. 중첩 클래스를 만드는 기능은 무엇입니까? 단순하고 정적입니다.
    39. 중첩 클래스에 대해 무엇을 알고 있으며 왜 사용됩니까? 분류, 사용 사례, 캡슐화 위반.
    40. 중첩 클래스와 내부 클래스의 차이점은 무엇입니까?
    41. 익명이라고 불리는 클래스는 무엇입니까?
    42. 중첩 클래스에서 외부 클래스의 필드에 어떻게 액세스합니까?
    43. 이 메서드의 본문에 선언된 익명 클래스에서 메서드의 지역 변수에 어떻게 액세스할 수 있나요? 그러한 변수에 대한 제한 사항이 있습니까?
    44. 사용자 클래스는 Object 클래스와 어떤 관련이 있습니까?
    45. Object 클래스의 각 메소드를 설명하십시오.
    46. equals() 메소드란 무엇입니까? == 연산과 어떻게 다릅니까?
    47. equals()를 재정의하려면 재정의된 메서드에 대해 어떤 조건을 충족해야 합니까?
    48. equals()가 재정의된 경우 재정의해야 할 다른 메서드가 있습니까?
    49. hashCode 및 equals 메소드의 특별한 점은 무엇입니까? Object 클래스에서 hashCode 및 equals 메소드는 어떻게 구현됩니까? 이러한 방법을 구현하기 위해 어떤 규칙과 규칙이 존재합니까? 언제 사용되나요?
    50. 객체의 문자열 표현을 반환하는 메소드는 무엇입니까?
    51. hashCode를 재정의하지 않고 같음을 재정의하면 어떻게 되나요? 어떤 문제가 발생할 수 있나요?
    52. hashCode를 계산할 때 어떤 필드를 사용해야 하는지에 대한 권장 사항이 있나요?
    53. hashMap에서 키로 사용되는 객체가 hashCode를 결정하는 데 관여하는 필드를 변경하면 문제가 발생할 것이라고 생각하시나요?
    54. 추상 클래스와 인터페이스의 차이점은 무엇이며, 어떤 경우에 어느 것을 사용합니까?
    55. 개인 클래스 변수에 접근할 수 있나요? 그렇다면 어떻게 접근할 수 있나요?
    56. 휘발성과 일시적인 것은 무엇입니까? 어떤 경우에 기본값을 사용할 수 있나요?
    57. 메서드를 상속, 재정의 및 숨길 때 수정자를 확장합니다. 상위 클래스에 비공개로 선언된 메서드가 있는 경우 하위 클래스에서 가시성을 확장할 수 있나요? 보호된다면 어떨까요? 가시성을 좁히는 것은 어떻습니까?
    58. 메소드를 private final로 선언하는 것이 의미가 있나요?
    59. 최종변수 초기화의 특징은 무엇인가요?
    60. 클래스의 유일한 생성자가 final로 선언되면 어떻게 되나요?
    61. 마무리 란 무엇입니까? 왜 필요한가요? 가비지 수집기와 해당 알고리즘에 대해 무엇을 알려주실 수 있나요?
    62. clone 메소드가 protected로 선언된 이유는 무엇입니까? 복제를 구현하려면 무엇이 필요합니까?
    63. 디자인 패턴에 대해 잘 알고 계시나요?
    64. 싱글톤을 작성하세요... 그리고 지연 로딩을 사용하세요. 스레드로부터 안전해야 한다면 어떻게 해야 할까요? 그리고 어떤 경우에 게으른 로딩이 더 나쁠까요?
    65. MVC에 대해 무엇을 말할 수 있나요? 다이어그램을 그리고 MVC가 어떻게 작동하는지 설명하세요.
    66. 팩토리얼을 계산하는 함수를 작성하세요.
    67. 피보나치 수를 계산하는 기능이 제공되며 작동하는 것으로 알려져 있습니다. 논리적 오류를 찾아보세요. 결과 알고리즘의 복잡성을 추정합니다.

    1. "예외"의 개념을 정의합니다.
    2. 예외의 계층 구조는 무엇입니까?
    3. jvm 오류를 처리하는 것이 가능하거나 필요합니까?
    4. 예외를 처리하는 다양한 방법은 무엇입니까?
    5. throws 키워드는 무엇을 의미하나요?
    6. finally 블록의 특별한 점은 무엇인가요? 항상 성취되는가?
    7. 예외를 포착할 때 단일 포착 블록을 갖지 않는 것이 가능합니까?
    8. finally 블록이 실행되지 않는 상황을 생각해 볼 수 있나요?
    9. 하나의 catch 블록이 여러 예외(동일하고 다른 상속 분기에서)를 포착할 수 있나요?
    10. 확인/확인되지 않은 예외에 대해 무엇을 알고 있나요?
    11. RuntimeException의 특별한 점은 무엇입니까?
    12. 자신만의(“사용자 정의”) 예외를 작성하는 방법은 무엇입니까? 예외 유형(선택/선택 취소)을 선택할 때 어떤 동기를 기준으로 합니까?
    13. 예외를 강제로 발생시킬 수 있는 연산자는 무엇입니까?
    14. 잠재적으로 예외를 발생시킬 수 있는 메서드에 대한 추가 조건이 있습니까?
    15. 기본 메소드가 외부적으로 예외를 발생시킬 수 있습니까? 그렇다면 이 예외는 어디에서 처리됩니까?
    16. return 문이 catch 블록과 finally 블록에 모두 포함된 경우 어느 것이 더 중요합니까?
    17. OutOfMemoryError에 대해 무엇을 알고 있나요?
    18. SQLException에 대해 무엇을 알고 있나요? 선택되거나 선택되지 않은 유형은 무엇이며, 그 이유는 무엇입니까?
    19. 오류란 무엇입니까? 오류는 언제 사용됩니까? 오류의 예를 들어보세요.
    20. 예외를 처리하기 위해 Java에서 어떤 구성이 사용됩니까?
    21. try-finally 블록이 있다고 가정해 보겠습니다. try 블록에서 예외가 발생하여 실행이 finally 블록으로 이동되었습니다. finally 블록에서도 예외가 발생했습니다. 두 가지 예외 중 try-finally 블록에서 "발생"하는 예외는 무엇입니까? 두 번째 예외는 어떻게 되나요?
    22. IOException과 FileNotFoundException을 발생시킬 수 있는 메서드가 있다고 가정해 보겠습니다. catch 블록은 어떤 순서로 진행되어야 합니까? 얼마나 많은 catch 블록이 실행됩니까?

    1. "컬렉션"의 개념을 정의합니다.
    2. 컬렉션 사용의 이점을 나열합니다.
    3. 컬렉션에는 어떤 데이터를 저장할 수 있나요?
    4. 컬렉션 계층 구조는 무엇입니까?
    5. 목록 컬렉션에 대해 무엇을 알고 있나요?
    6. 세트 컬렉션에 대해 무엇을 알고 있나요?
    7. 대기열 유형 컬렉션에 대해 무엇을 알고 있나요?
    8. 지도 유형 컬렉션에 대해 무엇을 알고 있습니까? 근본적인 차이점은 무엇입니까?
    9. List, Set, Map의 주요 구현 이름을 지정하세요.
    10. 어떤 SortedSet 구현을 알고 있으며 그 기능은 무엇입니까?
    11. 목록과 집합의 차이점/유사점은 무엇입니까?
    12. ArrayList와 LinkedList 클래스의 차이점/공통점은 무엇입니까? 언제 ArrayList를 사용하는 것이 더 좋으며 언제 LinkedList를 사용하는 것이 더 좋습니까?
    13. ArrayList 대신 배열을 사용하는 것이 현명한 경우는 언제입니까?
    14. ArrayList와 Vector의 차이점은 무엇입니까?
    15. HashSet 및 TreeSet 클래스 구현에 대해 무엇을 알고 있습니까?
    16. HashMap과 TreeMap의 차이점은 무엇입니까? 어떻게 구성되고 작동합니까? 객체에 대한 액세스 시간은 어떻습니까? 종속성은 무엇입니까?
    17. Hashtable이란 무엇이며 HashMap과 어떻게 다릅니까? 현재는 더 이상 사용되지 않지만 필요한 기능을 계속 사용할 수 있는 방법은 무엇입니까?
    18. 동일한 키를 가진 두 개의 값을 Map에 넣으면 어떻게 될까요?
    19. 컬렉션의 개체 순서는 어떻게 결정되며 컬렉션을 정렬하는 방법은 무엇입니까?
    20. "반복자"라는 용어를 정의하십시오.
    21. Collections 클래스는 어떤 기능을 제공합니까?
    22. 수정 불가능한 컬렉션을 얻는 방법은 무엇입니까?
    23. 어떤 컬렉션이 동기화되나요?
    24. 동기화되지 않은 컬렉션에서 동기화된 컬렉션을 얻는 방법은 무엇입니까?
    25. 읽기 전용 컬렉션을 얻는 방법은 무엇입니까?
    26. Map이 Collection에서 상속되지 않는 이유는 무엇입니까?
    27. 반복자와 열거의 차이점은 무엇입니까?
    28. foreach 루프는 어떻게 구현됩니까?
    29. 컬렉션에 요소를 추가하는 iterator.add() 메서드가 없는 이유는 무엇입니까?
    30. 반복자 클래스에 커서를 이동하지 않고 다음 요소를 가져오는 메서드가 없는 이유는 무엇입니까?
    31. Iterator와 ListIterator의 차이점은 무엇입니까?
    32. 목록의 모든 요소를 ​​반복하는 방법은 무엇입니까?
    33. 오류 방지 속성과 빠른 오류 방지 속성의 차이점은 무엇입니까?
    34. ConcurrentModificationException을 방지하려면 어떻게 해야 합니까?
    35. 스택과 큐가 무엇인지, 차이점이 무엇인지 알려주세요.
    36. Comparable 인터페이스와 Comparator 인터페이스의 차이점은 무엇입니까?
    37. 컬렉션이 복제 가능 및 직렬화 가능 인터페이스를 상속하지 않는 이유는 무엇입니까?

    1. 어떤 "문자열" 클래스를 알고 있나요?
    2. "문자열" 클래스의 주요 속성(해당 기능)은 무엇입니까?
    3. 문자열 유형을 상속받을 수 있습니까? 왜 그렇습니까?
    4. 문자열 연결의 개념을 정의합니다.
    5. 문자열을 숫자로 변환하는 방법은 무엇입니까?
    6. 두 문자열의 값을 비교하는 방법은 무엇입니까?
    7. 문자열을 뒤집는 방법?
    8. 두 문자열을 비교하는 것은 어떻게 작동하나요?
    9. 줄 끝의 공백을 자르는 방법은 무엇입니까?
    10. 문자열의 문자를 바꾸는 방법은 무엇입니까?
    11. 문자열의 일부를 얻는 방법은 무엇입니까?
    12. "문자열 풀"의 개념을 정의합니다.
    13. 문자열에서 하위 문자열을 선택할 수 있는 방법은 무엇입니까?
    14. 주어진 구분 기호를 사용하여 문자열을 하위 문자열로 분할하는 방법은 무엇입니까?
    15. 변수를 문자열로 변환하기 위해 호출되는 메소드는 무엇입니까?
    16. 문자열의 일련 번호를 알고 문자열에서 특정 문자의 의미를 찾는 방법은 무엇입니까?
    17. 문자열에서 필요한 문자를 찾는 방법은 무엇입니까?
    18. 행 액세스를 동기화할 수 있습니까?
    19. intern() 메소드는 무엇을 합니까?
    20. 차이점은 무엇이며 String, StringBuffer 및 StringBuilder 클래스의 공통점은 무엇입니까?
    21. String 및 StringBuffer 유형의 서로 다른 두 개체의 문자열 값을 올바르게 비교하는 방법은 무엇입니까?
    22. Java에서 문자열이 불변이고 종료되는 이유는 무엇입니까?
    23. 비밀번호를 저장하는 데 문자열보다 문자 배열이 더 나은 이유는 무엇입니까?
    24. String이 Java의 HashMap에서 널리 사용되는 키인 이유는 무엇입니까?
    25. 문자열에서 특정 문자를 제거하는 메서드를 작성합니다.

    1. 어떤 유형의 I/O 스트림이 있습니까?
    2. I/O 스트림의 주요 조상 이름을 지정하십시오.
    3. 다음 스트림의 공통점은 무엇이며 어떻게 다른가요? InputStream, OutputStream, Reader, Writer?
    4. RandomAccessFile에 대해 무엇을 알고 있나요?
    5. 파일 액세스 모드는 무엇입니까?
    6. 스레드 클래스가 포함된 패키지는 무엇입니까?
    7. 슈퍼클래스에 대해 무엇을 알고 있나요?
    8. 기본 데이터 유형 형식으로 입력 바이트 스트림에서 데이터를 읽을 수 있는 추가 기능 클래스는 무엇입니까?
    9. 버퍼를 사용하여 읽기/쓰기 속도를 높일 수 있는 추가 기능 클래스는 무엇입니까?
    10. 바이트 스트림을 문자 스트림으로 또는 그 반대로 변환할 수 있는 클래스는 무엇입니까?
    11. 파일 시스템 요소(EFS)와 작동하도록 설계된 클래스는 무엇입니까?
    12. EFS 경로를 지정할 때 구분 기호는 무엇입니까?
    13. 기준(예: 특정 확장명 포함)에 따라 특정 디렉터리의 모든 EFS를 선택하는 방법은 무엇입니까?
    14. FilenameFilter 인터페이스에 대해 무엇을 알고 있습니까?
    15. 직렬화란 무엇입니까?
    16. 객체의 "성공적인" 직렬화를 위한 조건은 무엇입니까?
    17. 객체를 보관할 수 있는 클래스는 무엇입니까?

    1. "프로세스"의 개념을 정의합니다.
    2. "흐름"의 개념을 정의합니다.
    3. "스레드 동기화" 개념을 정의합니다.
    4. 프로그램, 프로세스 및 스레드는 어떻게 상호 작용합니까?
    5. 다중 스레드를 생성하는 것이 언제 적절한가요?
    6. 두 개의 스레드가 프로그램에서 동일한 코드를 실행하면 어떻게 될까요?
    7. 프로그램의 메인 스레드에 대해 무엇을 알고 있나요?
    8. 스레드를 생성하고 실행하는 방법은 무엇입니까?
    9. 실행을 위해 스레드를 시작하는 방법은 무엇입니까?
    10. 실행 중 스레드의 동작을 설명하는 방법은 무엇입니까?
    11. 스레드는 언제 실행을 완료합니까?
    12. 분석법을 동기화하는 방법은 무엇입니까?
    13. 스레드를 강제로 중지하는 방법은 무엇입니까?
    14. "데몬 스레드"의 개념을 정의합니다.
    15. 데몬 스레드를 생성하는 방법은 무엇입니까?
    16. 현재 스레드를 얻는 방법은 무엇입니까?
    17. "모니터"라는 용어를 정의하십시오.
    18. 스레드를 일시 중지하는 방법은 무엇입니까?
    19. 흐름은 어떤 상태에 있을 수 있나요?
    20. 비정적 및 정적 메서드를 호출할 때 모니터는 무엇입니까?
    21. 메소드 코드 섹션을 실행할 때 모니터는 무엇입니까?
    22. 스레드 실행을 동기화할 수 있는 방법은 무엇입니까?
    23. 스레드를 대기 모드로 전환하는 방법은 무엇입니까?
    24. inform 및 informAll 메소드의 기능은 무엇입니까?
    25. 조인 방법의 기능은 무엇입니까?
    26. wait/notify 메소드를 호출하기 위한 조건은 무엇입니까?
    27. "상호 차단"의 개념을 정의합니다.
    28. Interrupt, Interrupted 및 isInterrupted 메소드의 차이점은 무엇입니까?
    29. InterruptedException은 어떤 경우에 발생하며, 어떤 메소드에서 이를 발생시킬 수 있나요?
    30. 휘발성 수정자 및 Yield() 메서드.
    31. 패키지 java.util.concurrent
    32. i++ 작업을 수행하는 몇 가지 방법이 있습니다. int 유형의 변수 i입니다. 코드는 멀티스레드 환경에서 실행된다고 가정합니다. 블록을 동기화해야 합니까?
    33. 메소드가 정적 동기화로 선언된 경우 뮤텍스로 사용되는 것은 무엇입니까? 정적 동기화 메서드가 실행되는 동안 클래스의 새 인스턴스를 만드는 것이 가능합니까?
    34. run 메소드에서 RuntimeException이 발생했지만 포착되지 않았다고 가정합니다. 흐름은 어떻게 될까요? 예외가 발생했는지 알 수 있는 방법이 있습니까(전체 실행 본문을 try-catch 블록으로 래핑하지 않고)? 이 문제가 발생한 후 스레드를 복원할 수 있는 방법이 있습니까?
    35. 스레드 풀을 구현하는 데 어떤 표준 Java 도구를 사용하시겠습니까?
    36. ThreadGroup이란 무엇이며 왜 필요한가요?
    37. ThreadPool이란 무엇이며 왜 필요한가요?
    38. ThreadPoolExecutor란 무엇이며 왜 필요한가요?
    39. Java에서 "원자 유형"이란 무엇입니까?
    40. ThreadLocal 클래스가 필요한 이유는 무엇입니까?
    41. 집행자 란 무엇입니까?
    42. ExecutorService란 무엇입니까?
    43. ScheduledExecutorService가 필요한 이유는 무엇입니까?
    300개 이상의 질문(답변 없음) 목록은 http://becomejavasenior.com/에서 찾을 수 있습니다. 다른 저자도 여기에 나열되어 있습니다.

    총 조회수 58489회 오늘 조회수 15회

    조회수: 38,283



    질문이 있으신가요?

    오타 신고

    편집자에게 전송될 텍스트: