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

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


6
take()でブロックしているBlockingQueueに割り込む方法は?
からオブジェクトをBlockingQueue取得take()し、連続ループで呼び出すことによってそれらを処理するクラスがあります。ある時点で、これ以上オブジェクトがキューに追加されないことがわかりました。take()メソッドを中断してブロックを停止するにはどうすればよいですか? オブジェクトを処理するクラスは次のとおりです。 public class MyObjHandler implements Runnable { private final BlockingQueue<MyObj> queue; public class MyObjHandler(BlockingQueue queue) { this.queue = queue; } public void run() { try { while (true) { MyObj obj = queue.take(); // process obj here // ... } } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } } …

12
Javaに条件演算子と条件演算子の複合代入バージョンがないのはなぜですか?(&& =、|| =)
だから、ブール型の二項演算子のために、Javaがあり&、|、^、&&と||。 ここで彼らが何をしているのかを簡単に要約しましょう: JLS 15.22.2ブール論理演算子&、^、および| JLS15.23条件付き-および演算子&& JLS15.24条件付きまたは演算子|| の場合&、結果値はtrue、両方のオペランド値がtrue;の場合です。それ以外の場合、結果はfalseです。 の場合|、結果値はfalse、両方のオペランド値がfalse;の場合です。それ以外の場合、結果はtrueです。 の場合^、結果値はtrue、オペランド値が異なる場合です。それ以外の場合、結果はfalseです。 &&オペレータは次のようである&が、その左側の値がオペランドその右側のオペランドた場合にのみ評価されますtrue。 ||オペレータは次のようである|が、その左側の値がオペランドその右側のオペランドた場合にのみ評価されますfalse。 現在、5つすべてのうち、3つには複合代入バージョン、つまり、、|=が&=あり^=ます。だから私の質問は明白です:なぜJavaは提供しません&&=と||=同様?必要以上に必要だ&=と思います|=。 そして、「長すぎるから」というのは良い答えではないと思います。Javaには>>>=。この省略にはもっと良い理由があるに違いありません。 15.26代入演算子から: 12個の代入演算子があります。[...]= *= /= %= += -= <<= >>= >>>= &= ^= |= &&=と||=が実装された場合、最初に右側を評価しないのはそれだけであるというコメントがありました。複合代入演算子が最初に右側を評価するというこの概念は間違いだと思います。 15.26.2複合代入演算子: フォームの複合代入式は、E1 op= E2と同等ですE1 = (T)((E1) op (E2))。ここTで、はのタイプですがE1、E1評価されるのは1回だけです。 証拠として、次のスニペットは、NullPointerExceptionではなく、をスローしArrayIndexOutOfBoundsExceptionます。 int[] a = null; int[] b = {}; a[0] += b[-1];

6
Javaで完成した未来を作成する方法
Javaで完全な未来を構築するための最良の方法は何ですか?私はCompletedFuture以下で自分自身を実装しましたが、すでに存在するこのようなものを望んでいました。 public class CompletedFuture<T> implements Future<T> { private final T result; public CompletedFuture(final T result) { this.result = result; } @Override public boolean cancel(final boolean b) { return false; } @Override public boolean isCancelled() { return false; } @Override public boolean isDone() { return true; } @Override public T get() …
82 java  future 


5
Java:制限付きワイルドカードまたは制限付き型パラメーター?
最近、私はこの記事を読みました:http: //download.oracle.com/javase/tutorial/extra/generics/wildcards.html 私の質問は、次のようなメソッドを作成する代わりに、次のようになります。 public void drawAll(List<? extends Shape> shapes){ for (Shape s: shapes) { s.draw(this); } } このようなメソッドを作成できますが、正常に機能します。 public <T extends Shape> void drawAll(List<T> shapes){ for (Shape s: shapes) { s.draw(this); } } どちらの方法を使用すればよいですか?この場合、ワイルドカードは役に立ちますか?

1
JPA Entity Managerを閉じる必要がありますか?
以下の方法があります。 public Profile readUser(String email){ EntityManager em = EMF.get().createEntityManager(); return em.find(Profile.class, email); } 上記のエンティティマネージャの使用法は大丈夫ですか?またはemを閉じる必要がありますか?何か提案がありますか?
82 java  jpa 

8
JDBC接続に失敗しました、エラー:ホストへのTCP / IP接続に失敗しました
JavaクラスファイルをSQLServer2012に接続したい。SQLServer認証でログインしました。しかし、接続でエラーが発生します。 エラー:ホスト127.0.0.1、ポート1433へのTCP / IP接続が失敗しました。エラー:「接続が拒否されました:接続します。接続プロパティを確認します。SQLServerのインスタンスがホストで実行されており、ポートでTCP / IP接続を受け入れていることを確認します。ポートへのTCP接続がファイアウォールによってブロックされていないことを確認します。 。」。 私のコード--- Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //1. Register your driver //2. get the connection object //Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost;databaseName=aysha","sa","admin"); Connection con = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1;databaseName=aysha","user=sa","password=admin"); //"jdbc:sqlserver://127.0.0.1:1433; Instance=SQL2008;" + "databaseName=MB;user=sa;password=123;"; //Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=aysha","sa" , "password"); //3. Prepare a statement Statement stmt = con.createStatement(); //4. Write the query` String sql …
82 java  sql-server  jdbc 

4
ストリームでCollections.toMap()を使用するときに、リストの反復順序を維持するにはどうすればよいですか?
私は次のようにMapからを作成してListいます: List<String> strings = Arrays.asList("a", "bb", "ccc"); Map<String, Integer> map = strings.stream() .collect(Collectors.toMap(Function.identity(), String::length)); と同じ反復順序を維持したいと思いListます。メソッドLinkedHashMapを使用してを作成するにはどうすればよいCollectors.toMap()ですか?

4
ApplicationContextAwareはSpringでどのように機能しますか?
春に、Beanが実装する場合、BeanはにApplicationContextAwareアクセスできますapplicationContext。したがって、他のBeanを取得できます。例えば public class SpringContextUtil implements ApplicationContextAware { private static ApplicationContext applicationContext; public void setApplicationContext(ApplicationContext context) throws BeansException { applicationContext = context; } public static ApplicationContext getApplicationContext() { return applicationContext; } } 次にSpringContextUtil.getApplicationContext.getBean("name")、Beanの「名前」を取得できます。 これを行うSpringContextUtilにはapplications.xml、これを内部に配置する必要があります。 <bean class="com.util.SpringContextUtil" /> ここでは、BeanSpringContextUtilにプロパティは含まれていませんapplicationContext。Spring Beanが初期化されると、このプロパティが設定されると思います。しかし、これはどのように行われますか?メソッドはどのようsetApplicationContextに呼び出されますか?
82 java  spring 

6
文字列をBigIntegerに変換するにはどうすればよいですか?
標準入力からいくつかの非常に大きな数値を読み取って、それらを合計しようとしています。 ただし、BigIntegerに追加するには、次を使用する必要がありますBigInteger.valueOf(long);。 private BigInteger sum = BigInteger.valueOf(0); private void sum(String newNumber) { // BigInteger is immutable, reassign the variable: sum = sum.add(BigInteger.valueOf(Long.parseLong(newNumber))); } これは問題なく機能しますが、をBigInteger.valueOf()とるだけなので、の最大値(9223372036854775807)longより大きい数値を追加することはできませんlong。 9223372036854775808以上を追加しようとすると、NumberFormatExceptionが発生します(これは完全に予想されます)。 のようなものはありBigInteger.parseBigInteger(String)ますか?

21
Unicodeエンコーディングの文字列を文字列に変換する方法
私はエスケープされた文字列持ちのUnicode文字を、\uXXXXと私は定期的にUnicodeの文字に変換します。例えば: "\u0048\u0065\u006C\u006C\u006F World" になるはずです "Hello World" 最初の文字列を印刷すると、すでにが表示されていることを知っていますHello world。私の問題は、ファイルからファイル名を読み取り、それらを検索することです。ファイル内のファイル名はUnicodeエンコーディングでエスケープされており、ファイルを検索すると、名前に含まれるファイルが検索されるため、ファイルが見つかりません\uXXXX。
82 java  unicode  encoding 

4
Spring Dataで@Transactionalを使用する方法は?
Spring-data、Hibernate、MySQL、JPAプロジェクトに取り組み始めたところです。手作業でクエリを作成することを心配する必要がないように、Springデータに切り替えました。 @Transactionalアノテーションなしでクエリも試したので、spring-dataを使用している場合はを使用する必要がないことに気付きました。 @Transactionalアノテーションを使用すべき/使用すべきでない特定の理由はありますか? 作品: @Transactional public List listStudentsBySchool(long id) { return repository.findByClasses_School_Id(id); } また動作します: public List listStudentsBySchool(long id) { return repository.findByClasses_School_Id(id); } 前もって感謝します!

5
繰り返し要素を含むリストの作成
すべての要素が指定された値(["foo"、 "foo"、 "foo"、 "foo"、 "foo"]など)に等しい指定された長さのリストまたは配列を生成するユーティリティメソッドがJavaにありますか?
82 java 

10
Java 8:ラムダの反復をカウントするための好ましい方法は?
私はよく同じ問題に直面します。ラムダの外部で使用するために、ラムダの実行をカウントする必要があります。例えば: myStream.stream().filter(...).forEach(item->{ ... ; runCount++); System.out.println("The lambda ran "+runCount+"times"); 問題は、runCountがfinalである必要があるため、intにすることはできないということです。不変であるため、整数にすることはできません。クラスレベルの変数(つまりフィールド)にすることもできますが、このコードブロックでのみ必要になります。私はさまざまな方法があることを知っています、私はこれのためにあなたの好ましい解決策は何ですか?AtomicIntegerまたは配列参照または他の方法を使用していますか?

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