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

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

10
System.currentTimeMillisとSystem.nanoTime
精度対 精度 ゲームでのオブジェクトの位置を更新するときにSystem.currentTimeMillis()またはSystem.nanoTime()を使用する必要があるかどうかを知りたいですか?彼らの動きの変化は、最後の電話からの経過時間に正比例しているので、できるだけ正確にしたい。 私は、異なるオペレーティングシステム間にいくつかの深刻な時間解決の問題があることを読みました(つまり、Mac / Linuxはほぼ1 msの解像度を持っていますが、Windowsは50msの解像度を持っています?)。私は主にWindowsでアプリを実行しており、50msの解像度はかなり不正確なようです。 私がリストした2つよりも優れたオプションはありますか? 提案/コメントはありますか?

26
Java:notify()とnotifyAll()の繰り返し
StackаэтотвопросестьответынаStack Overflowнарусском:notifyчемотличиеnotify、notifyall? もし「の違いのための1つのグーグルnotify()とnotifyAll()」その後の説明の多くは、(離れてjavadocの段落を残して)ポップアップ表示されます。すべては、ウェイクアップされる待機中のスレッドの数に要約さnotify()れnotifyAll()ます。 ただし(これらの方法の違いを正しく理解している場合)、さらにモニターを取得するために常に1つのスレッドのみが選択されます。最初のケースではVMによって選択されたもの、2番目のケースではシステムスレッドスケジューラによって選択されたもの。それらの両方の正確な選択手順(一般的な場合)は、プログラマにはわかりません。 何に有用との違いは、通知()とのnotifyAll() 、その後?何か不足していますか?


29
Javaでマップ値をインクリメントする最も効率的な方法
この質問がこのフォーラムにとってあまりにも基本的であるとは考えられないことを願っていますが、わかります。何度も実行されているパフォーマンスを向上させるために、コードをリファクタリングする方法を知りたいです。 Map(おそらくHashMap)を使用して単語頻度リストを作成しているとします。各キーは、カウントされている単語を含む文字列であり、値は、単語のトークンが見つかるたびに増加する整数です。 Perlでは、そのような値を増やすのは簡単です。 $map{$word}++; しかし、Javaでは、はるかに複雑です。ここで私が現在やっている方法: int count = map.containsKey(word) ? map.get(word) : 0; map.put(word, count + 1); もちろん、どちらが新しいJavaバージョンのオートボクシング機能に依存しています。そのような値を増やすより効率的な方法を提案できるかどうか疑問に思います。コレクションフレームワークを避け、代わりに何か他のものを使用することには、パフォーマンス上の理由さえありますか? 更新:いくつかの回答のテストを行いました。下記参照。


6
Mavenでエンコーディングを設定する方法は?
maven installマルチモジュールのmavenプロジェクトで実行すると、常に次の出力が得られます。 [WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent! だから、私は少しググったが、私が見つけることができるすべては私が追加しなければならないことです: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> ...私のpom.xmlに。しかし、それはすでに存在しています(親pom.xml)。 設定<encoding>のmaven-リソース・プラグインやMavenコンパイラ・プラグイン、それを修正しないものために。 だから問題は何ですか?


16
Javaがunsigned intをサポートしないのはなぜですか?
Javaに符号なし整数のサポートが含まれていないのはなぜですか? 予想外に大きな入力でオーバーフローが発生する可能性が低いコードを記述できることを考えると、私には奇妙な省略のようです。 さらに、符号なし整数を使用すると、unsigned intが保持することを意図していた値が負になることは決してないことが示されているため、自己文書化の一種になる可能性があります。 最後に、場合によっては、除算などの特定の演算では符号なし整数の方が効率的です。 これらを含めることの欠点は何ですか?


6
Spring FrameworkのapplicationContext.xmlとspring-servlet.xmlの違い
あるapplicationContext.xmlとspring-servlet.xml春Frameworkでとにかく関連? で宣言されたプロパティファイルはapplicationContext.xml利用できますDispatcherServletか? 関連するメモで、なぜ私*-servlet.xmlはまったく必要なのですか?なぜapplicationContext.xml一人では不十分ですか?
373 java  spring 

11
Mockitoによる静的メソッドのモック
java.sql.Connectionオブジェクトを生成するためのファクトリを作成しました: public class MySQLDatabaseConnectionFactory implements DatabaseConnectionFactory { @Override public Connection getConnection() { try { return DriverManager.getConnection(...); } catch (SQLException e) { throw new RuntimeException(e); } } } に渡されたパラメーターを検証したいのですがDriverManager.getConnection、静的メソッドをモックする方法がわかりません。テストケースにはJUnit 4とMockitoを使用しています。この特定のユースケースをモック/検証する良い方法はありますか?

25
Javaを使用して、16進ダンプの文字列表現をバイト配列に変換しますか?
16進数値をバイト配列に表す(ダンプからの)長い文字列を変換する方法を探しています。 ここに同じ質問を投稿した人よりも上手に言い表せなかったでしょう。 しかし、元の状態を維持するために、私はそれを独自の方法で表現します。たとえば"00A0BF"、次のように解釈したい文字列があるとします byte[] {0x00,0xA0,0xBf} 私は何をすべきか? 私はJavaの初心者で、最終BigInteger的に16進数のゼロを使用して監視していました。しかし、私はそれは醜いと思います、そして私は私が単純な何かを見逃していると確信しています。
372 java  byte  hex  dump 

28
Javaで定数を実装する最良の方法は何ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 2年前休業。 ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 私はこのような例を見てきました: public class MaxSeconds { public static final int MAX_SECONDS = 25; } そして、定数をラップして、静的なfinalを宣言するためのConstantsクラスがあると想定しました。私はJavaをまったく知らないので、これが定数を作成する最良の方法かどうか疑問に思っています。
372 java  constants 



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