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

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

5
Javaで文字列をコピーするにはどうすればよいですか?
String s = "hello"; String backup_of_s = s; s = "bye"; この時点では、バックアップ変数にはまだ元の値「hello」が含まれています(これは、Stringの不変性が原因ですか?)。 しかし、このメソッドを使用して文字列をコピーするのは本当に安全ですか(もちろん、通常の可変オブジェクトをコピーするのは安全ではありません)、またはこれを書く方が良いですか?: String s = "hello"; String backup_of_s = new String(s); s = "bye"; 言い換えれば、これらの2つのスニペットの違い(ある場合)は何ですか? 編集-最初のスニペットが安全である理由: すでに提供されている適切な回答(基本的には2つのスニペット間のパフォーマンスの違いの問題に焦点が当てられていました)に基づいて、もう少し詳しく説明します。 文字列はJavaでは不変です。つまり、文字列オブジェクトは作成後に変更できません。したがって、 String s = "hello";新しいStringインスタンスを作成し、そのアドレスをs(sインスタンス/オブジェクトへの参照として)割り当てます String backup_of_s = s;新しい変数backup_of_sを作成し、初期化して、現在参照されているオブジェクトを参照するようにしますsます。 注:文字列の不変性は、このオブジェクトが変更されないことを保証します。バックアップは安全です 注2:Javaガベージコレクションメカニズムは、このオブジェクトが少なくとも1つの変数(backup_of_sこの場合) 最後に、s = "bye";別のStringインスタンスを作成し(不変性のため、これが唯一の方法です)、s新しいオブジェクトを参照するように変数を変更します。
198 java 

9
Java抽象インターフェース
例を考えてみましょう(Javaでコンパイルされます) public abstract interface Interface { public void interfacing(); public abstract boolean interfacing(boolean really); } インターフェイスを抽象的に「宣言」する必要があるのはなぜですか?抽象インターフェースに適用される他のルールはありますか? 最後に:abstract時代遅れの場合、なぜJavaに含まれているのですか?抽象インターフェースの歴史はありますか?
197 java  interface  abstract 

14
JavaのクラスパスからリソースをロードするためのURL
Javaでは、同じAPIを使用してさまざまなURLプロトコルであらゆる種類のリソースをロードできます。 file:///tmp.txt http://127.0.0.1:8080/a.properties jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class これにより、リソースの実際の読み込みが、リソースを必要とするアプリケーションからうまく切り離されます。URLは単なる文字列なので、リソースの読み込みも非常に簡単に設定できます。 現在のクラスローダーを使用してリソースをロードするプロトコルはありますか?これはJarプロトコルに似ていますが、リソースの送信元のjarファイルまたはクラスフォルダーを知る必要がない点が異なります。 Class.getResourceAsStream("a.xml")もちろん、を使用してそれを行うことができますが、それには別のAPIを使用する必要があり、既存のコードを変更する必要があります。プロパティファイルを更新するだけで、既にリソースのURLを指定できるすべての場所でこれを使用できるようにしたいと思います。
197 java  url  classloader 

4
Java 8ストリームと配列の操作
新しいJava 8ストリーム機能を発見しました。Pythonから来て、2つの配列を「1行のpythonic」のように乗算する、合計のような配列の操作を実行するためのきちんとした方法があるかどうか疑問に思いました。 ありがとう


11
Windows OSでのOpenJDKの可用性[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 10か月前に閉鎖。 この質問を改善する Windows OSで使用できるOpenJDKバージョンはありますか?OpenJDKホームページ(http://openjdk.java.net/)から、Windowsマシン用のOracle Sun JREにリダイレクトします。 Windowsで利用できる既存のOpenJDKはありますか?はいの場合、どこで入手できますか?そうでない場合は、自分でビルドする必要がありますか(http://blogs.oracle.com/poonam/entry/building_openjdk_on_windowsを参照)
197 java  windows  openjdk 

16
Mac OS Xに特定のJDKをインストールする方法は?
特定のJDK(最新など)をインストールしたい。このために、JDKダウンロードホームページhttp://java.sun.com/javase/downloads/index.jspにアクセスしました。Macバージョンを探しましたが、Linux、Windows、およびSolarisのダウンロード可能なバージョンしか表示されなかったことに少し驚いています... Mac向けのメッセージは次のとおりです。 「アップルコンピュータは独自のバージョンのJavaを提供しています。ソフトウェアアップデート機能(アップルメニューから利用可能)を使用して、Macに最新バージョンのJavaがインストールされていることを確認してください。」 OK BUT ... MacでJavaを更新するとき、JDKでなくJREを持っています... Macで簡単にダウンロード/インストールできる(jarを解凍するなど)JDKバージョンが存在しない理由がわかりません...
197 java  macos  install 

11
モニターの解像度に関係なく、JFrameが中央に表示されるように設定するにはどうすればよいですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 7か月前に閉鎖。 この質問を改善する Javaを使用しているときに、アプリケーションを起動したときにメインウィンドウを画面の中央に配置するのが難しいと感じました。 それを行う方法はありますか?垂直方向に中央揃えする必要はありません。水平方向の配置が私にとってより重要な目標です。ただし、垂直方向の配置も可能です。
197 java  swing  jframe  position 

11
ジェネリッククラスの静的メソッド?
Javaでは、次のようなものにしたいと思います: class Clazz<T> { static void doIt(T object) { // ... } } しかし、私は得る 非静的型Tへの静的参照を作成できません 私は基本的な用途以外のジェネリックを理解していないので、それをあまり理解できません。それは私が主題についてインターネットで多くの情報を見つけることができなかったことを助けません。 同様の方法で、そのような使用が可能かどうかを誰かが明確にできますか?また、なぜ私の最初の試みは失敗したのですか?

8
Javaで最後のN個の要素を保持するサイズ制限のキュー
Javaライブラリに関する非常にシンプルで簡単な質問:Queue最大サイズが固定されたを実装する既成のクラスがあります。つまり、常に要素の追加を許可しますが、新しく追加された要素のスペースを収容するためにヘッド要素を静かに削除します。 もちろん、手動で実装するのは簡単です: import java.util.LinkedList; public class LimitedQueue<E> extends LinkedList<E> { private int limit; public LimitedQueue(int limit) { this.limit = limit; } @Override public boolean add(E o) { super.add(o); while (size() > limit) { super.remove(); } return true; } } 私の知る限り、Java stdlibsには標準の実装はありませんが、Apache Commonsなどに実装されている可能性がありますか?
197 collections  queue  java 


5
Mockito-doReturn()とwhen()の違い
現在、Mockitoを使用して、コントローラーメソッドをテストするSpring MVCアプリケーションのサービスレイヤーオブジェクトをモックしています。ただし、Mockitoの詳細を読んでいると、メソッドdoReturn(...).when(...)がと同等であることがわかりましたwhen(...).thenReturn(...)。だから、私の質問には微妙な違い何で同じことを行うか、二つの方法持つのポイント何ですdoReturn(...).when(...)とwhen(...).thenReturn(...)? 任意の助けいただければ幸いです。

8
Javaでオブジェクトの配列を作成する
私はJavaを初めて使用し、しばらくの間、Javaでオブジェクトの配列を作成しました。 たとえばクラスAがあります- A[] arr = new A[4]; しかし、これはA4つのオブジェクトではなく、4つのオブジェクトへのポインタ(参照)を作成するだけです。これは正しいです?作成されたオブジェクトの関数/変数にアクセスしようとすると、nullポインター例外が発生します。オブジェクトを操作/アクセスできるようにするには、これを行う必要がありました: A[] arr = new A[4]; for (int i = 0; i < 4; i++) { arr[i] = new A(); } これは正しいですか、それとも私は何か間違っていますか?これが正しければ、それは本当に奇妙です。 編集:私はこれが奇妙だと思います。C++では単にnew A[4]と言って4つのオブジェクトを作成するからです。
196 java  arrays  class 

14
ExecutorService、すべてのタスクが完了するまで待機する方法
すべてのタスクがExecutorService完了するのを待つ最も簡単な方法は何ですか?私のタスクは主に計算なので、コアごとに1つずつ、多数のジョブを実行したいだけです。現在、私のセットアップは次のようになります。 ExecutorService es = Executors.newFixedThreadPool(2); for (DataTable singleTable : uniquePhrases) { es.execute(new ComputeDTask(singleTable)); } try{ es.wait(); } catch (InterruptedException e){ e.printStackTrace(); } ComputeDTask実行可能を実装します。これはタスクを正しく実行するように見えますが、コードはでクラッシュwait()しIllegalMonitorStateExceptionます。これは奇妙です。私がおもちゃの例をいじってみたところ、動作するように見えました。 uniquePhrases数万の要素が含まれています。別の方法を使用する必要がありますか?できるだけシンプルなものを探しています

8
Spring @Transactional属性はプライベートメソッドで機能しますか?
Spring Beanのプライベートメソッドに@Transactional -annotation がある場合、注釈は効果がありますか? 場合は@Transactional、注釈がパブリックメソッドである、それが動作し、トランザクションを開きます。 public class Bean { public void doStuff() { doPrivateStuff(); } @Transactional private void doPrivateStuff() { } } ... Bean bean = (Bean)appContext.getBean("bean"); bean.doStuff();

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