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

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

16
リッチなWord文書を作成できるJava APIはありますか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 2年前休業。 この質問を改善する テーブル、グラフ、目次、テキストを含むWord文書を生成する必要がある場所で作業する新しいアプリがあります。これに使用するのに適したAPIは何ですか?グラフ、目次、表をサポートしていることをどの程度確信していますか?それらを使用する上でのいくつかの隠れた落とし穴は何ですか? いくつかの説明: PDFを出力できません。Word文書が必要です。 OpenOfficeではなくMS Word 2003(または2007)を使用している アプリケーションは* nix app-serverで実行されています テンプレートドキュメントから始めて、いくつかのスペースにテーブルやグラフなどを記入するだけでいいのですが。 編集:以下のいくつかの良い答えは、私の現在の状況に関してはそれぞれ独自の欠点があります。それらから「最終的な答え」を選ぶのは難しい。私はそれを開いたままにして、より良いソリューションが作成されることを望みます。 編集:OpenOffice UNOプロジェクトは、私が要求したものに最も近いようです。POIは確かに主流ですが、私が望むものには未熟すぎます。
111 java  ms-word  docx  doc 

7
この方法で4が出力されるのはなぜですか?
StackOverflowErrorをキャッチしようとすると、次のメソッドが思い浮かびました。 class RandomNumberGenerator { static int cnt = 0; public static void main(String[] args) { try { main(args); } catch (StackOverflowError ignore) { System.out.println(cnt++); } } } 今私の質問: この方法で「4」が出力されるのはなぜですか? おそらくSystem.out.println()、コールスタックに3つのセグメントが必要なためだと思いましたが、3がどこから来るのかわかりません。のソースコード(およびバイトコード)を見るとSystem.out.println()、通常、メソッドの呼び出しが3よりもはるかに多くなります(したがって、呼び出しスタックの3つのセグメントでは不十分です)。Hotspot VMが適用する最適化(メソッドのインライン化)が原因である場合、別のVMで結果が異なるかどうか疑問に思います。 編集: 出力は非常にJVM固有であると思われるため、 Java(TM)SEランタイム環境(ビルド1.6.0_41-b02) Java HotSpot(TM)64ビットサーバーVM(ビルド20.14-b01、混合モード)を使用して結果4を取得します この質問がJavaスタックの理解とは異なると思う理由: 私の質問はなぜcnt> 0があるのか​​(明らかにSystem.out.println()スタックサイズが必要でありStackOverflowError、何かが印刷される前に別のものをスローするため)ではなく、特定の値4、それぞれ0、3、8、55または他の何かがあるのはなぜですかシステム。
111 java  jvm  stack-overflow 

10
配列/文字列のリストを配列/整数のリストに変換するラムダ式
Java 8には強力なラムダ式が付属しているため、 文字列のリスト/配列を整数、浮動小数点数、倍精度数などの配列/リストに変換する関数を書きたいのですが。 通常のJavaでは、次のように簡単です。 for(String str : strList){ intList.add(Integer.valueOf(str)); } しかし、整数の配列に変換される文字列の配列が与えられた場合、どうやってラムダで同じことを達成できますか?

15
Eclipseが起動せず、何も変更していません
少なくとも1か月は何も更新していません。私は普通に働いていたところ、突然メニューがすべて空白になったので、Eclipseを再起動することにしました。「閉じる」と「OK」をクリックしてすべてを保存しましたが、何も起こりませんでした。そこで、もう一度「閉じる」をクリックして、日食を閉じました。Eclipseをクリックすると、ロード画面のみが点滅して消え、続いて.logファイルを確認するように指示するメッセージが表示されました。それ以来、何度かPCを再起動し、セーフモードで実行してみましたがeclipse.exe -clean、何も動作しません。 何か案は? !SESSION 2013-03-12 13:46:10.078 ----------------------------------------------- eclipse.buildId=I20120608-1400 java.version=1.7.0_07 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US Framework arguments: -product org.eclipse.epp.package.jee.product Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product -clean !ENTRY org.eclipse.ui 4 4 2013-03-12 13:46:55.800 !MESSAGE An internal error has occurred. !STACK 0 java.lang.NullPointerException at org.eclipse.ui.internal.Workbench.createWorkbenchWindow(Workbench.java:1228) ... …
111 java  eclipse 

11
javac:コマンドが見つかりません
次のコマンドを使用して、CentOSリリース5.5マシンにjavaをインストールしましたyum install java。しかし、javacを使用してクラスをコンパイルすることはできません。 他のパッケージをインストールする必要がありますか? javac実行可能ファイルを見つけようとしましたが、見つけることができません。 /usr/bin/java次のようにリンクされています: /usr/bin/java-> /etc/alternatives/java /etc/alternatives/java->/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java 私は次の出力を見ましたyum list installed |grep java: java-1.6.0-openjdk.x86_64 1:1.6.0.0-1.16.b17.el5 installed tzdata-java.x86_64 2011b-1.el5 installed

9
ArraylistからArrayへ
ArrayListからArrayに変換することが安全かどうかを知りたいのですが?各行に文字列を含むテキストファイルがあります。 1236 1233 4566 4568 .... それらを配列リストに読み込みたいので、それを配列に変換します。それを行うことは賢明/合法ですか? ありがとう
111 java  arraylist 

12
文字列比較で大文字と小文字を区別しないようにするにはどうすればよいですか?
2つの文字列を比較するJavaプログラムを作成しました。 String s1 = "Hello"; String s2 = "hello"; if (s1.equals(s2)) { System.out.println("hai"); } else { System.out.println("welcome"); } 「ようこそ」と表示されます。大文字と小文字が区別されることを理解しています。しかし、私の問題は、大文字と小文字を区別せずに2つの文字列を比較したいことです。つまり、出力が期待されますhai。

2
Comparator.reversed()はラムダを使用してコンパイルしません
いくつかのUserオブジェクトを含むリストがあり、リストを並べ替えようとしていますが、メソッド参照を使用した場合にのみ機能します。ラムダ式を使用すると、コンパイラによってエラーが発生します。 List<User> userList = Arrays.asList(u1, u2, u3); userList.sort(Comparator.comparing(u -> u.getName())); // works userList.sort(Comparator.comparing(User::getName).reversed()); // works userList.sort(Comparator.comparing(u -> u.getName()).reversed()); // Compiler error エラー: com\java8\collectionapi\CollectionTest.java:35: error: cannot find symbol userList.sort(Comparator.comparing(u -> u.getName()).reversed()); ^ symbol: method getName() location: variable u of type Object 1 error


9
16進文字列をintに変換します
8桁の16進コードの文字列を整数に変換して、さまざまな値の文字列比較ではなくint比較を実行できるようにしています。 これはC ++ではかなり簡単なことですが、Javaで行う必要があります。私が満たす必要のあるテストケースは、基本的に「AA0F245C」をintに変換してから、その文字列に戻すことで、正しく変換されていることを確認します。 私は以下を試しました: int decode = Integer.decode("0xAA0F245C"); // NumberFormatException int decode2 = Integer.decode("AA0F245C"); //NumberFormatException int parseInt = Integer.parseInt("AA0F245C", 16); //NumberFormatException int valueOf = Integer.valueOf("AA0F245C", 16); //NumberFormatException また、一度に2文字ずつ実行して結果を乗算してみましたが、変換は機能しますが、数値が正しくありません。 int id = 0; for (int h = 0; h < hex.length(); h= h+2) { String sub = hex.subSequence(h, h+2).toString(); if (id …
111 java  hex 

12
レトロフィットを使用してGSONでネストされたJSONオブジェクトを取得する
私はAndroidアプリからAPIを使用しており、すべてのJSON応答は次のようになります。 { 'status': 'OK', 'reason': 'Everything was fine', 'content': { < some data here > } 問題は、すべてのPOJOにstatus、reasonフィールドがあり、フィールド内にcontent私が欲しい本物のPOJOがあることです。 常にcontentフィールドを抽出するGsonのカスタムコンバーターを作成する方法はありますか?そのため、レトロフィットは適切なPOJOを返しますか?
111 java  android  json  gson  retrofit 

13
JDBCで接続プールを確立する方法は?
誰かがJDBC接続プールを確立する方法の例やリンクを提供できますか? グーグルを検索すると、これを実行するさまざまな方法がわかります。 最終的にはjava.sql.Connectionオブジェクトを返すコードが必要ですが、開始に問題があります。 更新:プールされた接続の実装 がない、javax.sqlまたはjava.sqlありませんか?これらを使用するのが最善ではないのはなぜですか?

4
揮発性は高価ですか?
揮発性の実装、特にセクション「アトミック命令との相互作用」について、コンパイラライター向けのJSR-133クックブックを読んだ後、更新せずに揮発性変数を読み取るには、LoadLoadまたはLoadStoreバリアが必要だと思います。ページのさらに下を見ると、LoadLoadとLoadStoreは、X86 CPUでは実質的に何もしません。これは、x86で明示的なキャッシュ無効化なしで揮発性読み取り操作を実行でき、通常の変数読み取りと同じくらい高速であることを意味しますか(揮発性の並べ替えの制約を無視)。 私はこれを正しく理解していないと思います。誰かが私を啓蒙したいと思いませんか? 編集:マルチプロセッサ環境に違いがあるのでしょうか。ジョンVが述べているように、シングルCPUシステムでは、CPUはそれ自体のスレッドキャッシュを調べる可能性がありますが、マルチCPUシステムでは、CPUにいくつかの構成オプションが必要です。マルチCPUシステムで、そうですか? PS:これについて詳しく知る途中で、次のすばらしい記事に出くわしました。この質問は他の人にとって興味深いかもしれないので、ここでリンクを共有します。 Javaの理論と実践:Javaメモリモデルの修正、パート1と Javaの理論と実践:Javaメモリー・モデルの修正、パート2

3
文字列連結はJava 9でどのように実装されていますか?
JEP 280で記述されているように、文字列連結を示します。 Stringによって生成された静的連結バイトコードシーケンスを変更して、JDKライブラリ関数の呼び出しをjavac使用しinvokedynamicます。これStringにより、によってエミットされたバイトコードをさらに変更することなく、将来の連結の最適化が可能になりますjavac。 ここで、invokedynamic呼び出しの使用方法と、バイトコードの連結がどのように異なるのかを理解したいと思いinvokedynamicます。

5
Java RegExは大文字と小文字を区別しませんか?
Javaでは、replaceAllを実行して、次のような正規表現パターンを探します。 replaceAll("\\?i\\b(\\w+)\\b(\\s+\\1)+\\b", "$1"); (重複する連続した大文字と小文字を区別しない単語を削除するために、たとえばテストテスト)、どこに置くかわかりません?i。私はそれが最初にあるはずであると読みました、しかし、それを取り出すならば、私は重複した連続した単語(例えばテストテスト)をキャッチしますが、大文字小文字を区別しない単語(例えばテストテスト)をキャッチしません。したがって、最初に?iを追加できると思いましたが、それで仕事が完了したようには見えません。何かご意見は?ありがとう!

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