デイリーJava筆記試験2020-9-23の5つの質問
-
これは()のオブジェクト参照を表し、スーパーは現在のオブジェクトの()オブジェクトを表しますか?
正解:C正解:C(正解)
当前类 当前类
当前类的父类 当前类
当前类 当前类的父类
以上都不正确
- 次のコードを実行すると、出力結果は()になります。
public class Test {
public static void main(String[] args) {
System.out.println("return value of getValue(): " +
getValue());
}
public static int getValue() {
try {
return 0;
} finally {
return 1;
}
}
}
正解:A正解:A(正解)
return value of getValue(): 1
return value of getValue(): 0
return value of getValue(): 0return value of getValue(): 1
return value of getValue(): 1return value of getValue(): 0
分析:
公式のJVM仕様によれば
、tryステートメントにreturnがある場合、tryステートメントブロックの変数の値が返されます。
詳細な実行プロセスは次のとおりです。
- 戻り値がある場合は、戻り値をローカル変数に保存します。
- jsr命令を実行して、finallyステートメントにジャンプして実行します。
- finallyステートメントを実行した後、ローカル変数テーブルに以前に保存された値を返します。
tryステートメントとfinallyステートメントの両方にreturnがある場合は、tryのreturnを無視して、finallyのreturnを使用してください。
-
Webプログラムでは、どのオブジェクトを現在のユーザーコンテキスト情報に保存する必要があるか()
正解:C正解:D(誤り)
page
request
session
Application
分析:
JSP 4つのスコープ:
page
(最小request
範囲)、session
、、(application
最大範囲)。
application
オブジェクトに格納されている属性には、同じWEBアプリケーション内のすべてのサーブレットとJSPページからアクセスできます。(属性には最大のスコープがあります)session
オブジェクトに格納された属性には、同じセッションに属するすべてのサーブレットおよびJSPページからアクセスできます(閉じたことがセッションと呼ばれるまでブラウザが開かれ、この期間中にセッションが期限切れになることはありません)。request
オブジェクトに格納された属性には、同じリクエストに属するすべてのサーブレットとJSPページからアクセスできます(たとえば、転送の場合、ページ全体で属性値を取得できます)。たとえば、PageContext.forwardメソッドとPageContext.includeメソッドを使用して接続された複数のサーブレットそしてJSPページ。pageContext
オブジェクトに格納されている属性には、現在のJSPページの現在の応答プロセス中に呼び出されたさまざまなコンポーネント(たとえば、現在の要求に応答しているJSPページや、それが呼び出すさまざまなカスタムラベルクラス)からのみアクセスできます。現在のユーザーコンテキスト情報:セッション
アプリケーション:現在のアプリケーション
pageContext:現在のページ
リクエスト:現在のリクエスト
-
次の文のうち、正しいものはどれですか。()
正しい答え:Bあなたの答え:A(間違っている)
java中的集合类(如Vector)可以用来存储任何类型的对象,且大小可以自动调整。但需要事先知道所存储对象的类型,才能正常使用。 在java中,我们可以用违例(Exception)来抛出一些并非错误的消息,但这样比直接从函数返回一个结果要更大的系统开销。 java接口包含函数声明和变量声明。 java中,子类不可以访问父类的私有成员和受保护的成员。
分析:
A.vectorはスレッドセーフなArrayListであり、メモリ内の連続したスペースを占有します。最初に初期サイズがあり、データの数がこの初期サイズより大きい場合、より大きな連続スペースが上書きされ、割り当てられます。Objectを格納するためにVectorが定義されている場合、任意のタイプを格納できます。
オプションBで言及されている状況は、カスタム例外の状況です。注意してお読みください。例外を使用して、エラーではないメッセージをスローできます。はい、エラーメッセージではありません。たとえば、例外をカスタマイズすると、変数が10より大きい場合、例外がスローされます。これは、オプションBで説明されている状況に対応します。関数本体を使用する代わりに、変数が10より大きいことを示すために例外を使用します(関数本体は、 10より大きい場合は、trueまたはfalseを返します)判断、**関数呼び出しはスタックにプッシュされるため、スタックはレジスターの下で最も速く、占有するスペースが少なく、カスタム例外がヒープに格納されます。これは例外です。メモリのオーバーヘッドが大きい!** Bは正しいです。
Cオプションは、インターフェースにメソッド宣言と変数宣言が含まれていることを示しています。インターフェイスのメソッドはデフォルトで抽象パブリックであるため、インターフェイスでの関数宣言のみの記述は文法規則に準拠しています。ただし、**変数はデフォルトでpublic final staticで装飾されています。つまり、それらは静的定数であり、定数はインターフェイスまたはクラスで宣言されるときに初期化する必要があります。** Cの後半は間違っています。宣言時に初期化する必要があります!
D.サブクラスは親クラスの保護されたメンバーにアクセスできます
- 次のコンテナのうち、O(log(n))()の複雑さを持つキーで検索されるコンテナ
正解:BC正解:BC(正解)
std::unordered_set
std::multimap
std::map
std::deque
分析:
STLライブラリでは、マップとマルチマップの最下層は赤黒木で実装されていますが、2つの違いは、マルチマップでは複製が可能ですが、マップでは不可能であることです。
赤黒木の検索の複雑さはO(log(n))です。
unodered_map / _setの最下層はハッシュテーブルによって実装され、検索の複雑さはO(1)です。