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

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

2
IntelliJ IDEAを使用してすべての未使用のコードを見つける方法は?
私が.javaファイルにいるとき、未使用のコードは通常灰色で表示されるか、このコードはおそらく(おそらく、いくつかの奇妙なJNI / Reflectionのコーナーケースのため)未使用であることを示す緑の下線が付いています。しかし、私はこのプロジェクトに何千ものJavaファイルがあり、そのような未使用の可能性のあるコードのすべてのインスタンスを見つけたいと思っています。IntelliJ IDEAでそれを行うにはどうすればよいですか?

24
Javaでのinstanceofの使用によるパフォーマンスへの影響
私はアプリケーションに取り組んでおり、1つの設計アプローチにはinstanceofオペレーターの非常に重い使用が含まれます。OO設計は一般的にの使用を避けようとすることは知っていますがinstanceof、それは別の話であり、この質問は純粋にパフォーマンスに関連しています。パフォーマンスに影響があるかどうか疑問に思っていましたか?と同じくらい速い==ですか? たとえば、10個のサブクラスを持つ基本クラスがあります。基本クラスを取る単一の関数で、クラスがサブクラスのインスタンスであるかどうかを確認し、いくつかのルーチンを実行します。 私がそれを解決することを考えた他の方法の1つは、代わりに「type id」整数プリミティブを使用し、ビットマスクを使用してサブクラスのカテゴリを表し、次にサブクラス「type id」のビットマスク比較をカテゴリーを表す定数マスク。 されてinstanceof何とかよりも速いことをJVMによって最適化?Javaにこだわりたいのですが、アプリのパフォーマンスが重要です。以前にこの道を下ったことがある誰かがいくつかのアドバイスを提供できればそれはクールです。あまりにもつまらないか、最適化するために間違っていることに焦点を合わせていますか?

5
Javaの同期キーワードのC#バージョン?
c#には、独自のバージョンのJavaの「synchronized」キーワードがありますか? つまり、Javaでは、次のように、関数、オブジェクト、またはコードブロックのいずれかに指定できます。 public synchronized void doImportantStuff() { // dangerous code goes here. } または public void doImportantStuff() { // trivial stuff synchronized(someLock) { // dangerous code goes here. } }

13
java.lang.reflect.InvocationTargetExceptionの原因は何ですか?
まあ、私はそれを引き起こす可能性があるものを理解して読んでみましたが、それを得ることができません: 私のコードのどこかにこれがあります: try{ .. m.invoke(testObject); .. } catch(AssertionError e){ ... } catch(Exception e){ .. } それは、あるメソッドを呼び出そうとするInvocationTargetExceptionと、他の予期される例外(具体的にはArrayIndexOutOfBoundsException)の代わりにスロー されるということです。呼び出されるメソッドを実際に知っているので、このメソッドコードに直接進み、スローするはずの行にtry-catchブロックを追加しましたArrayIndexOutOfBoundsExceptionがArrayIndexOutOfBoundsException、期待どおりに実際にスロー されました。それでも上に行くと、どういうわけかInvocationTargetException、上記のコードに変更され、catch(Exception e) eは 予想どおりではInvocationTargetExceptionありませんArrayIndexOutOfBoundsException。 何がそのような動作を引き起こす可能性がありますか、またはどのようにしてそのようなことを確認できますか?

4
javadocのメソッドパラメータへの参照を追加する方法
メソッドのドキュメント本文からメソッドの1つ以上のパラメーターへの参照を追加する方法はありますか?何かのようなもの: /** * When {@paramref a} is null, we rely on b for the discombobulation. * * @param a this is one of the parameters * @param b another param */ void foo(String a, int b) {...}
313 java  arguments  javadoc 

13
中断するか、Java 8ストリームから戻るか?
使用する場合は、外部反復を介してIterable我々の使用breakまたはreturnのために、各ループのように強化さから: for (SomeObject obj : someObjects) { if (some_condition_met) { break; // or return obj } } どのように、breakまたは次のようなJava 8ラムダ式で内部反復returnを使用できますか? someObjects.forEach(obj -> { //what to do here? })
313 java  foreach  lambda  java-8 

7
バージョンの切り替えを許可してMac OSXにJavaをインストールするにはどうすればよいですか?
新しいリリースなので、Mac OSXにOpenJDK Javaをインストールし、他のJDKと一緒に機能させたい。現在、tar.gzをダウンロードして自分のパスに配置しましたが、維持するのが困難です。 自動的にさらに多くのことを実行することがわかった他の唯一のインストールは、Homebrew caskを介したインストールです。現在のバージョンのみのようにも見えます: brew cask info java ショー: java:13,33:5b8a42f3905b406298b72d750b6919f6 https://openjdk.java.net/ そこからインストールできますが、次に何をしますか?新しいバージョンだけで立ち往生していますか?
313 java  java-12 

16
JDBCの接続プールオプション:DBCPとC3P0
Java / JDBCで利用できる最適な接続プールライブラリは何ですか? 私は2つの主要な候補者を検討しています(無料/オープンソース): Apache DBCP- http: //commons.apache.org/dbcp/ C3P0- http: //sourceforge.net/projects/c3p0 私はブログや他のフォーラムでそれらについて多くを読みましたが、決定に達することができませんでした。 これら2つに関連する代替手段はありますか?

13
MySQLデータベースに接続するときのSSL接続に関する警告
以下の2つのクラスを使用して、MySQLデータベースに接続してみました。ただし、私は常にこのエラーを受け取ります: Wed Dec 09 22:46:52 CET 2015警告:サーバーのID検証なしでSSL接続を確立することは推奨されません。MySQL 5.5.45 +、5.6.26 +および5.7.6+の要件によると、明示的なオプションが設定されていない場合、デフォルトでSSL接続を確立する必要があります。SSLを使用しない既存のアプリケーションに準拠するために、verifyServerCertificateプロパティは「false」に設定されています。useSSL = falseを設定してSSLを明示的に無効にするか、useSSL = trueを設定してサーバー証明書検証用のトラストストアを提供する必要があります。 これはmainメソッドを持つテストクラスです: public class TestDatabase { public static void main(String[] args) { Database db = new Database(); try { db.connect(); } catch (Exception e) { e.printStackTrace(); } db.close(); } } これはDatabaseクラスです: import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; …

14
JSONObjectを反復する方法は?
私は呼ばれるJSONライブラリを使用しますJSONObject(必要に応じて切り替えてもかまいません)。 を反復処理する方法は知っていますJSONArraysが、FacebookからJSONデータを解析するときに配列を取得できません。配列のみを取得しますが、最初のJSONObjectアイテムJSONObject[0]を取得するなど、そのインデックスを介してアイテムにアクセスできる必要があります。それを行う方法を理解することはできません。 { "http://http://url.com/": { "id": "http://http://url.com//" }, "http://url2.co/": { "id": "http://url2.com//", "shares": 16 } , "http://url3.com/": { "id": "http://url3.com//", "shares": 16 } }
312 java  json 

17
Javadocタグが不完全な場合、MavenがJava 8で機能しない
私はMavenを使用しているので、不完全なJavadocタグ(たとえば、欠落しているパラメーター)があるローカルリポジトリプロジェクトにビルドしてインストールすることができました。 ただし、Java 8(1.8.0-ea-b90)に移行したので、Mavenはドキュメントタグの欠落に厳格であり、Javadocがないプロジェクトをビルドまたはインストールしようとすると、Javadocの問題に関連する多くのJavadocエラーが表示されます「完璧」。ローカルリポジトリにコンパイルしてインストールしようとしているプロジェクトの一部は、私が制御できないサードパーティのプロジェクトです。したがって、これらのすべてのプロジェクトですべてのJavadocを修正するという回避策は、私のシナリオでは実行可能ではないようです。 これはmvn clean package install、プロジェクトで実行したときに表示される出力の一部です。 [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 9.026s [INFO] Finished at: Mon Apr 08 21:06:17 CEST 2013 [INFO] Final Memory: 27M/437M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9:jar (attach-javadocs) on project jpc: MavenReportException: Error while creating archive: [ERROR] Exit …


25
ループの前またはループで変数を宣言することの違いは?
一般に、ループ内で繰り返し実行するのではなく、ループの前にスローアウェイ変数を宣言すると、(パフォーマンスの)違いが出るのかといつも疑問に思っていました。(かなり無意味な) Javaでの例: a)ループ前の宣言: double intermediateResult; for(int i=0; i < 1000; i++){ intermediateResult = i; System.out.println(intermediateResult); } b)ループ内で(繰り返し)宣言: for(int i=0; i < 1000; i++){ double intermediateResult = i; System.out.println(intermediateResult); } どちらが、より良いですかB? 変数宣言を繰り返すと(例b)、理論上はオーバーヘッドが増えると思いますが、コンパイラーは十分にスマートであるため、問題ではありません。例bには、よりコンパクトで、変数のスコープをそれが使用される場所に制限するという利点があります。それでも、例aに従ってコーディングする傾向があります。 編集:私は特にJavaのケースに興味があります。



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