問題タブ [scjp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - scjp デザインに関する質問
プログラマーのチームが、新しいユーティリティ クラス用に提案された API を検討しています。いくつかの議論の後、機能を失うことなく API のメソッドの数を減らすことができることに気付きました。新しい設計を実装する場合、どの 2 つの OO 原則を推進しますか?
誰か答えを教えてくれませんか?
scjp - SCJP v6 (Sierra、Bates) 第 2 章、質問 12 コンストラクター呼び出しの解釈
これについてフィードバックをいただけますか
"new House("x ")" が文字列を送信すると、"House(String name)" コンストラクターが Building スーパークラス コンストラクター "Building(String name)" を呼び出すと予想していました。その場合、答えは「bn xh hn x」になります。ただし、答えは「bh hn x」です(はい、その出力で実行されます)。
質問 1. "new Building("string_value")" の呼び出し以外に、House が "Building(String name)" コンストラクターを呼び出す状況はありますか? (つまり、House コンストラクターの追加コード以外は? 2. オーバーロードされた Building (String name) コンストラクターではなく、引数のない Building コンストラクターが呼び出されるのはなぜですか?サブクラスから特定のスーパー コンストラクターを呼び出す必要がある場合があります。
参照しやすいようにコードが含まれています。
答えは「bh hn x」です。
よろしくスコット
scjp - SCJP Sierra Bates Chapter 2 質問 2 デフォルトのコンストラクター呼び出し
背景情報 Sierra & Bates, SCJP v6 book からの質問について質問があります。つまり、第 2 章の質問 2 です。与えられた答えは、「コンパイルが失敗する」ということです。しかし、これを neBeans で試したところ、コードはコンパイルされ、エラーなしで実行されました。また、選択肢の 1 つではない "D" の出力も返しました。super() などを挿入する必要性に関して、さまざまなフォーラムでこの同じ質問についていくつかの議論があります。ただし、コンパイルできることを誰も認識していないようです。
私は SCJP の勉強をしていて、すべての問題を netBeans で再現できるわけではないので、これは非常に重要です。その場合、(試験目的で)一部のコードが機能しない場合でも機能すると信じるようになるかもしれません。
参照しやすいようにコードが含まれています。
java - SCJPモック質問:ガベージコレクションの対象となるオブジェクトはいくつですか?
(このサイトhttp://scjptest.com/で)質問がありました:このコードサンプルの行//にあるコードで、ガベージコレクションの対象となるオブジェクトの数はいくつですか?
正解は、「aとbによって参照されるオブジェクトはガベージコレクションの対象です。」です。しかし、なぜ?それらは相互へのループ参照を含み、相互にアクセス可能です。
ありがとうございました!
java - SCJP-数値形式
与えられた:
4行目に挿入されたどのコードフラグメントが出力を生成します| 12.345|
か?
printfステートメントの解釈は何ですか、なぜ|%7d | あげてるよillegalFormatConversionException ?
ありがとう
java - Java 到達不能 catch ブロック コンパイラ エラー
Exception
Java では、スローされなくてもキャッチできるのに、そのサブクラスをキャッチできないのはなぜですか(「チェックされていない」 RuntimeException
s とそのサブクラスを除く)。コード例:
何か案は?
java - クラスがジェネリックである場合のJavaワイルドカードの奇妙な動作
私はJavaジェネリックについてある程度理解していると思いました。
このコードはコンパイルされません。理由はわかっています。
テストメソッドに合格できるのは、動物タイプのリストまたはそのスーパータイプ(オブジェクトのリストなど)のみです。
しかし、ここに奇妙な部分があります(少なくとも私にとっては)。
<T>を追加するだけでクラスTestをジェネリックとして宣言すると、COMPILES!そしてjava.lang.ClassCastExceptionをスローします:
、
私の質問は、ジェネリッククラスタイプ<T>(どこでも使用されていない)を追加すると、クラスがコンパイルされ、ワイルドカードの動作が変更された理由です。
java - Java配列は実際にどのように機能していますか
誰かがJavaで配列が実際にどのように機能するかを説明してもらえますか?
私は次のコードに驚いた:
test2のみがObject[][]のインスタンスではありません
実行時の違いは何ですか?
編集:私はいくつかの答えを見ます。ジョンスキート、私ができることに注意してください:
test instanceof Object []はtrueを返し、キャストの実行時に例外は発生しません。Sierra&BatesのSCJPの本によると、IS-A Object [] []だけでなく、Object[]もテストしてください。
しかし、 "test4 [0] =" blaaa ";"を使用して新しい値を再割り当てしようとすると、例外が発生します。スレッド "main"の例外java.lang.ArrayStoreException:Main.main(Main。 java:24)
したがって、実行時に、testとtest2の両方がIS-A Object []であり、両方にオブジェクト配列が含まれているように見えますが、そのうちの1つだけがIS-A Object[][]です。
java - Javaで静的メソッドを再定義するとはどういう意味ですか?
SCJPスタディガイドのStaticsに関するセクションを読んでいて、次のことが言及されています。
静的メソッドはオーバーライドできませんが、再定義できます
再定義とは実際には何を意味するのでしょうか。親と子の両方に同じ署名を持つ静的メソッドが存在する場合ですが、それらはクラス名によって個別に参照されますか? そのような :
として参照:Parent.doSomething();
とChild.doSomething();
?
また、同じことが静的変数、または静的メソッドにも当てはまりますか?
java - 同期されたスレッドとロック
オブジェクトロックのコンテキストで、これら2つの例の違いを誰かが説明できますか?
と
最初の例ではthis
インスタンスのロックを取得し、2番目の例ではaStringBufferObjectインスタンスのロックを取得することを知っています。しかし、私はその効果や2つの違いが何であるかを本当に理解していません。
たとえば、2番目の例では、ロックが「this」インスタンスに関連していないため、スレッドは同期ブロック内でコードを実行できますか?
メソッドまたはコードのブロックを同期すると、複数のスレッドが同時にそのブロック/メソッドにアクセスできなくなることは知っていますが、ロックするオブジェクトを指定する目的と、オブジェクトの指定方法の違いは何ですか?上記の例?