タグ付けされた質問 「java」

Javaは人気のある高水準プログラミング言語です。言語自体の使用または理解に問題がある場合は、このタグを使用してください。このタグが単独で使用されることはめったになく、[spring]、[spring-boot]、[jakarta-ee]、[android]、[javafx]、[gradle]、および[maven]と組み合わせて使用​​されることがほとんどです。

10
なぜwait()は常に同期ブロックでなければならないのですか?
を呼び出すにはObject.wait()、この呼び出しを同期ブロックに配置する必要がありますIllegalMonitorStateException。そうでない場合はがスローされます。しかし、この制限を設ける理由は何ですか?私はそれwait()がモニターを解放することを知っていますが、なぜ特定のブロックを同期させてモニターを明示的に取得し、次に呼び出しによってモニターを解放する必要があるのwait()ですか? wait()同期されたブロックの外部で呼び出すことが可能で、そのセマンティクスを保持する-呼び出し元のスレッドを一時停止する可能性がある場合、どのような損害が考えられますか?

15
ArrayListの初期サイズ
次のようにして、ArrayListの初期サイズを設定できます。 ArrayList<Integer> arr=new ArrayList<Integer>(10); しかし、あなたはできません arr.add(5, 10); 範囲外の例外が発生するためです。 割り当てたスペースにアクセスできない場合の初期サイズの設定の用途は何ですか? add関数は次のadd(int index, Object element)ように定義されているため、インデックス10に追加していません。

7
ストリームを使用してマップを作成するときに重複を無視する
Map<String, String> phoneBook = people.stream() .collect(toMap(Person::getName, Person::getAddress)); java.lang.IllegalStateException: Duplicate key重複する要素が見つかったときに取得します。 マップに値を追加する際に、このような例外を無視することは可能ですか? 重複がある場合は、重複するキーを無視して続行する必要があります。
257 java  java-8  java-stream 

12
接続は後で閉じられますが、JDBC結果セットとステートメントは別々に閉じる必要がありますか?
使用後はすべてのJDBCリソースを閉じるのがよい習慣だと言われています。しかし、次のコードがある場合、結果セットとステートメントを閉じる必要がありますか? Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; try { conn = // Retrieve connection stmt = conn.prepareStatement(// Some SQL); rs = stmt.executeQuery(); } catch(Exception e) { // Error Handling } finally { try { if (rs != null) rs.close(); } catch (Exception e) {}; …
256 java  jdbc 

6
例外のスローのどの部分が高価ですか?
Javaでは、実際にはエラーがない場合にロジックの一部としてthrow / catchを使用することは、(一部では)一般に悪い考えです。例外のスローとキャッチはコストがかかり、ループで何度も実行することは通常、他の方法よりもはるかに遅いためです。例外のスローを含まない制御構造。 私の質問は、スロー/キャッチ自体で発生するコストですか、それとも例外オブジェクトを作成するときに発生しますか(実行スタックを含む多くのランタイム情報を取得するため)? つまり、もし Exception e = new Exception(); しかしそれを投げないでください、それは投げのコストのほとんどですか、それとも投げ+キャッチは高価なものを処理していますか? コードをtry / catchブロックに配置すると、そのコードを実行するコストが増えるかどうかは尋ねていません。例外のキャッチが高価な部分であるか、または例外の作成(コンストラクターの呼び出し)が高価な部分であるかどうかを尋ねています。 。 これを尋ねる別の方法は、例外のインスタンスを1つ作成し、それを何度もスローしてキャッチした場合、スローするたびに新しい例外を作成するよりもはるかに速いでしょうか?

19
Eclipseでゲッターとセッターを自動的に生成する方法はありますか?
新しいAndroidプロジェクト(Java)に取り組んでおり、多数の変数を持つオブジェクトを作成しました。すべてのゲッターとセッターを追加する予定なので、疑問に思っていEclipseました。特定のクラスでゲッターとセッターを自動的に生成するためのショートカットはありますか?


4
InstantDateとLocalDateTimeの違いは何ですか?
そんなこと知ってる: インスタントは、計算のための「技術的な」タイムスタンプ表現(ナノ秒)です。 LocalDateTimeは、人間のタイムゾーンを含む日付/時計の表現です。 結局のところ、IMOはどちらもほとんどのアプリケーションのユースケースで型として使用できます。例:現在、バッチジョブを実行していますが、日付に基づいて次の実行を計算する必要があり、これら2つのタイプ間の長所/短所を見つけるのに苦労しています(インスタントおよびタイムゾーン部分のナノ秒精度の利点は別として) LocalDateTimeの)。 InstantまたはLocalDateTimeのみを使用する必要があるアプリケーションの例を挙げてください。 編集:精度とタイムゾーンに関するLocalDateTimeの誤ったドキュメントに注意してください
256 java  datetime  java-8 

17
スレッドをタイムアウトする方法
一定時間スレッドを実行したい。その時間内に完了しない場合は、強制終了するか、例外をスローするか、何らかの方法で処理します。どうすればできますか? このスレッドから理解した方法の1つ は、スレッドのrun()メソッド内でTimerTaskを使用することです。 これに対するより良い解決策はありますか? 編集:私はより明確な答えが必要だったので、賞金を追加します。以下に示すExecutorServiceコードは私の問題に対応していません。実行後にsleep()を実行する必要があるのはなぜですか(一部のコード-このコードの一部を処理できません)?コードが完了し、sleep()が中断された場合、それはどのようにタイムアウトになりますか? 実行する必要があるタスクは私の制御下にありません。任意のコードを使用できます。問題は、このコードが無限ループに陥る可能性があることです。それが起こらないようにしたい。そのため、別のスレッドでそのタスクを実行したいだけです。親スレッドは、そのスレッドが終了するまで待機する必要があり、タスクのステータス(つまり、タイムアウトしたか、何らかの例外が発生したか、または成功したかどうか)を知る必要があります。タスクが無限ループに入った場合、私の親スレッドは無期限に待機し続けますが、これは理想的な状況ではありません。

6
Javaアプリケーションのリモートデバッグ
LinuxマシンでJavaアプリケーションを実行しています。以下を使用してJavaアプリケーションを実行します。 java myapp -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000, suspend=n このLinuxマシンでTCPのポート4000を開きました。Windows XPマシンのEclipseを使用して、このアプリケーションに接続しようとしています。私も窓を開けました。 どちらのマシンもLAN上にありますが、デバッガをJavaアプリケーションに接続できないようです。何が悪いのですか?

14
IntelliJインポートの整理
IntelliJには、Eclipseと同様のインポートの整理機能がありますか?私が持っているのは、複数のクラスがインポートされていないJavaファイルです。例: package com.test; public class Foo { public Map map; public JTable table; } Eclipseでは、[インポートの整理]を使用でき、java.util.Mapとの両方が自動的にインポートされjavax.swing.JTableます。IntelliJでは、各クラスに個別に移動して選択し、Alt-Enterキーを押す必要があります。インポートの最適化機能がありますが、既存のインポートを並べ替えて展開するだけです。 IntelliJ 10.5を使用しています。

13
実行時のJavaアノテーションのスキャン[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 3か月前に閉鎖。 この質問を改善する 注釈付きクラスのクラスパス全体を検索する最良の方法は何ですか? 私はライブラリーをやっていて、ユーザーがクラスに注釈を付けられるようにしたいので、Webアプリケーションが開始するときに、クラスパス全体をスキャンして特定の注釈を見つける必要があります。 これを行うためのライブラリまたはJava機能を知っていますか? 編集:Java EE 5 WebサービスまたはEJBの新機能のようなものについて考えています。@WebServiceまたは@EJBでクラスに注釈を付けると、システムはロード中にこれらのクラスを見つけ、リモートでアクセスできるようにします。

10
期限切れのキーを持つJava時間ベースのマップ/キャッシュ[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 2年前休業。 この質問を改善する 特定のタイムアウト後にエントリを自動的にパージするJavaマップまたは同様の標準データストアを知っている人はいますか?これは、古い期限切れのエントリが自動的に「期限切れ」になるエージングを意味します。 Maven経由でアクセスできるオープンソースライブラリが望ましいですか? 私は自分で機能を実装する方法を知っており、過去に何度かそれを行ったので、その点でアドバイスを求めるのではなく、適切なリファレンス実装へのポインタを求めています。 WeakHashMapなどのWeakReferenceベースのソリューションはオプションではありません。キーがインターンされていない文字列である可能性が高く、ガベージコレクターに依存しない構成可能なタイムアウトが必要だからです。 Ehcacheも外部設定ファイルを必要とするため、信頼したくないオプションです。コードのみのソリューションを探しています。
253 java  caching  dictionary 

6
javacは、内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません[終了]
閉まっている。この質問は再現性がないか、タイプミスが原因です。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 6年前休業。 この質問を改善する Javaプログラムのコンパイル中にエラーが発生しました。 私はWindowsを使用していて(これはWindows固有の問題です)、最新のJDKをインストールしています。 PATH変数を含む解決策を試みましたが、エラーが解決しません。 コンソール出力: C:\>set path=C:Program Files (x86)\Java\jdk1.7.0\bin C:\>javac Hello.java 'javac' is not recognized as an internal or external command, operable program or batch file.

3
RxJavaスケジューラの使用例
RxJavaには、5つの異なるスケジューラーから選択できます。 immediate():現在のスレッドですぐに作業を実行するスケジューラを作成して返します。 trampoline():現在の作業が完了した後に実行される現在のスレッドで作業をキューに入れるスケジューラを作成して返します。 newThread():作業単位ごとに新しいスレッドを作成するスケジューラを作成して返します。 Calculation():計算作業を目的としたスケジューラを作成して返します。これは、イベントループ、コールバックの処理、およびその他の計算作業に使用できます。このスケジューラでIOバインド作業を実行しないでください。スケジューラを使用します。代わりにio()。 io():IOにバインドされた作業を目的としたスケジューラを作成して返します。実装は、必要に応じて拡張されるエグゼキュータスレッドプールによってサポートされます。これは、ブロッキングIOを非同期で実行するために使用できます。このスケジューラで計算作業を実行しないでください。スケジューラを使用します。代わりに計算()。 質問: 最初の3つのスケジューラは自明です。ただし、計算とioについて少し混乱しています。 「IOバウンド作業」とは正確には何ですか?ストリーム(java.io)およびファイル(java.nio.files)の処理に使用されますか?データベースクエリに使用されますか?ファイルのダウンロードやREST APIへのアクセスに使用されますか? どのように計算は()とは異なる)newThread( ?それはすべての計算です()呼び出しが毎回新しい(バックグラウンド)スレッドではなく単一の(バックグラウンド)スレッド上にあるのですか? IO作業を行うときに計算()を呼び出すのはなぜ悪いのですか? 計算作業を行うときにio()を呼び出すのはなぜ悪いのですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.