Java筆記試験-2020-9-22の5つの質問

Java筆記試験-2020-9-22の5つの質問

1 ... Java言語でオブジェクトを作成するために使用されるキーワードは()です

	正确答案: C  你的答案: C (正确)
class
interface
new
create
  1. Javaハッシュマップに関する次の文のうち、間違っているものはどれですか。

    正解:C正解:C(正解)

    HashMap 的实例有两个参数影响其性能:“初始容量” 和 “加载因子”。
    HashMap 的实现不是同步的,意味着它不是线程安全的
    HashMap通过开放地址法解决哈希冲突
    HashMap中的key-value都是存储在Entry数组中的
    

分析:

ハッシュマップは、ジッパー方式を使用して競合を解決します

ここに、hashMapとhashtableの知識ポイントをまとめます。1. HashMapに関するいくつかのステートメント:a)HashMapは、実際には「リンクリストハッシュ」データ構造です。つまり、配列とリンクリストの組み合わせです。HashMapの基本構造は配列であり、配列内の各項目はリンクされたリストです。b)HashMapインスタンスには、そのパフォーマンスに影響を与える2つのパラメーターがあります。「初期容量」と充填係数です。c)HashMapの実装は同期されておらず、スレッドは安全ではありません。HashTableスレッドセーフティd)HashMapのキー値はエントリに格納されます。e)HashMapはnullキーとnull値を格納でき、要素の順序が永久に変更されないことを保証しません。その最下層は配列とリンクリストを使用し、キーの一意性はhashCode()メソッドとequalsメソッドによって保証されます

  1. 次のうち正しいものはどれですか。

正解:D正解:C(誤り)

形式参数可被字段修饰符修饰
形式参数不可以是对象
形式参数为方法被调用时真正被传递的参数
形式参数可被视为local variable

A:仮パラメータはファイナルでのみ変更できます

B:仮パラメーターはオブジェクトにすることができます

C:仮パラメーターが呼び出されると、実パラメーターのコピーが渡されます

D:ローカル変数:ローカル変数

  1. 次のコードをコンパイルして実行しようとするとどうなりますか?
public class Test{
    
    
static{
    
    
   int x=5;
}
static int x,y;
public static void main(String args[]){
    
    
   x--;
   myMethod( );
   System.out.println(x+y+ ++x);
}
public static void myMethod( ){
    
    
  y=x++ + ++x;
 }
}

正しい答え:Dあなたの答え:B(間違っている)

compiletime error
prints:1
prints:2
prints:3
prints:7
prints:8
  1. 次のJavaプログラムについて、どちらの記述が正しいですか:()

    public class ThreadTest extends Thread {
    public void run() {
    System.out.println("In run");
    yield();
    System.out.println("Leaving run");
    }
    public static void main(String []argv) {
    (new ThreadTest()).start();
    }
    }
    

    正解:C正解:A(誤り)

程序运行输出只有In run
程序运行输出只有Leaving run
程序运行输出先有In run后有Leaving run
程序运行输出先有Leaving run后有In run
程序没有任何输出就退出了
程序将被挂起,只能强制退出

分析:

Thread.yield()メソッドの機能は、現在実行中のスレッドオブジェクトを中断し、他のスレッドを実行することです。

yield()がすべきことは、現在実行中のスレッドを実行可能な状態に戻し、同じ優先順位を持つ他のスレッドが実行される機会を得られるようにすることです。したがって、yield()を使用する目的は、同じ優先順位のスレッドが適切に回転できるようにすることです。ただし、実際には、譲歩のスレッドがスレッドスケジューラによって再度選択される可能性があるため、yield()が譲歩の目的を達成する保証はありません

結論:yield()によってスレッドが待機/スリープ/ブロッキング状態になることはありません。ほとんどの場合、yield()により、スレッドは実行状態から実行可能状態に移行しますが、効果がない場合があります。

おすすめ

転載: blog.csdn.net/qq_37924905/article/details/108735595