매일 5 개의 필기 시험 문제 -2020-9-13

매일 5 개의 필기 시험 문제 -2020-9-13

  1. 클래스에서 멤버 변수를 정의 할 때 사용할 수없는 수정은 ()입니다.

    정답 : B 정답 : B (정답)

final
void
protected
static

분석:

void는 메서드를 수정하는 데만 사용할 수 있습니다.

final은 메서드와 변수를 수정하는 데 사용할 수 있으며 수정 된 변수는 상수가됩니다.

보호됨 보호됨

정적은 정적입니다

  1. 다음 개체 중 하나가 있습니다.
public class DataObject implements Serializable{
    
    
    private static int i=0;
    private String word=" ";
    public void setWord(String word){
    
    
        this.word=word;
    }
    public void setI(int i){
    
    
        Data0bject. i=I;
     }
}

다음과 같은 방법으로 DataObject를 생성합니다.

DataObject object=new Data0bject ( );
object. setWord("123");
object. setI(2); 

이 객체를 파일로 직렬화하고 deserialization을 위해 다른 JVM에서 파일을 읽습니다.이 때 읽은 DataObject 객체에서 word 및 i의 값을 물어볼 수 있습니다.

정답 : D 정답 : C (오답)

"", 0
"", 2
"123", 2
"123", 0

분석:

객체는 클래스가 아니라 직렬화되며 클래스 변수는 직렬화되지 않습니다.

  1. Java는 직렬화 중에 정적 변수 및 임시 수정 된 변수를 인스턴스화하지 않습니다. static은 클래스의 멤버를 나타내고 transient는 객체의 임시 데이터를 나타 내기 때문입니다.이 두 가지 유형의 데이터 멤버는 직렬화 할 수 없다고 선언됩니다.

프로그램 컴파일에 대한 다음 설명이 정확합니다 ().

정답 : C 정답 : D (오답)

java语言是编译型语言,会把java程序编译成二进制机器指令直接运行
java编译出来的目标文件与具体操作系统有关
java在运行时才进行翻译指令
java编译出来的目标文件,可以运行在任意jvm上

분석:

A : Java는 바이트 코드로 컴파일 된 후 각 시스템의 JVM에서 인식 할 수있는 기계 코드로 변환됩니다. 이것이 Java 일회성 프로그래밍 다중 플랫폼 응용 프로그램의 크로스 플랫폼 특성입니다.

B : Java 소스 파일은 시스템과 관련이없는 클래스 파일을 생성합니다.

C : 바이트 코드와 기계어 코드는 같지 않습니다. 자바 프로그램이 실행 중일 때 바이트 코드는 jvm에 의해 기계어 코드로 변환되므로 java는 해석 언어입니다.

D : JVM 버전에주의를 기울 이세요. 마치 바지를 입은 사람처럼 바지 한 벌은 누구나 입을 수 있나요?

  1. JAVA 예외 처리에 대한 다음 설명 중 올바른 것은 무엇입니까 ()

정답 : ABD 정답 : AC (오답)

finally是为确保一段代码不管是否捕获异常都会被执行的一段代码
throws是用来声明一个成员方法可能抛出的各种非运行异常情况
final用于可以声明属性和方法,分别表示属性的不可变及方法的不可继承
throw是用来明确地抛出一个异常情况

분석:

throws는 메서드가 메서드에서 처리 할 필요가없는 예외 유형을 선언하는 데 사용되며, 메서드에서 예외 클래스 이름이 뒤에 오는 여러 예외 클래스 일 수 있습니다.

Throw는 특정 예외 클래스의 개체를 throw하는 데 사용됩니다. 메서드에서 사용되는 예외 개체는 예외 유형 개체 일 수만 있습니다. try 블록은 catch 블록과 동일하거나 finally와 동일해야하며 단독으로 존재할 수 없습니다. 둘은 하나 여야합니다.

finally 블록은 오류 유무에 관계없이 항상 실행되지만 try 문 블록이나 실행 된 catch 문 블록이 JVM 시스템 종료 문을 사용하면 finally 블록은 실행되지 않습니다. 일반적으로 우리는 finally 블록에 리소스를 닫는 코드를 넣습니다. 리소스를 항상 닫을 수 있음을 보장합니다.

그럼이 질문을보세요. A는 확실히 맞습니다. C는 예외 처리와 전혀 관련이 없으므로 선택하지 않습니다. 중요해도 틀렸어

final은 속성, 메서드 및 클래스를 선언하는 데 사용됩니다. 속성을 변경할 수없고, 메서드를 재정의 할 수 없으며, 클래스를 상속 할 수 없음을 각각 나타냅니다.

따라서 C 옵션은 메서드를 상속 할 수 없으며 재정의 할 수 없다고 말합니다.

  1. 다음 중 volatile 키워드와 관련하여 잘못된 설명은 무엇입니까?

    정답 : BD 정답 : AC (오답)

    用volatile修饰的变量,每次更新对其他线程都是立即可见的。
    对volatile变量的操作是原子性的。
    对volatile变量的操作不会造成阻塞。
    不依赖其他锁机制,多线程环境下的计数器可用volatile实现。
    

분석:

공유 변수 (클래스 멤버 변수, 클래스 정적 멤버 변수)가 휘발성에 의해 수정되면 두 가지 의미가 있습니다.

  1. 이는이 변수에서 작동하는 다른 스레드의 가시성을 보장합니다. 즉, 스레드가 변수의 값을 수정하면 새 값이 다른 스레드에 즉시 표시됩니다.
  2. 재주문 지침은 금지되어 있습니다.

Volatile은 변수에 액세스 할 때 매번 메모리에서 최신 값을 읽고 레지스터에 캐시하지 않고 매번 메모리에서 읽도록 보장합니다.

그리고이 변수, volatile의 수정은 원자 적 보증을 제공하지 않습니다.

시기 적절한 업데이트로 인해 다른 스레드가 최신 변수 값에 액세스 할 수 있고 루프를 벗어날 수 없습니다.

카운터는 멀티 스레딩에서 잠금 보호를 사용해야합니다.

추천

출처blog.csdn.net/qq_37924905/article/details/108570376