タグ

ブックマーク / qiita.com/YujiSoftware (2)

  • Java の + 演算子による文字列結合は、どのように処理されているのか - Qiita

    (この記事は 地平線に行く とのマルチポストです) Java 9 以降 JEP 280: Indify String Concatenation に基づき、 + 演算子による文字列結合は以下のようにコンパイルされるように変わりました。 invokedynamic #7, 0 // InvokeDynamic #0:makeConcatWithConstants:(Ljava/lang/Object;I)Ljava/lang/String; (InvokeDynamic を使うように変更された理由は、「Java の + 演算子による文字列結合で、StringBuilder は使われなくなりました。」を参照) この InvokeDynamic によって、最終的にどのように文字列結合が行われているのでしょうか。 環境 Adopt OpenJDK 15 で調査しました。 openjdk versi

    Java の + 演算子による文字列結合は、どのように処理されているのか - Qiita
    naga_sawa
    naga_sawa 2021/05/05
    Java9 以降の文字列結合は StringBuilder を使う代わりにコンパイル時メソッド生成が働いて最適化が効くようになってる
  • Javaのバージョン別、1行ずつファイルを読む方法まとめ - Qiita

    (この記事は 地平線に行く とのマルチポストです) Java でファイルを読み込む処理は、バージョンが上がるごとにどんどん簡単に書けるようになっていきました。 今回は、どれだけ簡単になっていったかを Java のバージョンごとにまとめて説明します。 なお、ここでは以下の処理を行うコードをもとにしています。 そこそこ大きいテキストファイルを一行ずつ読み込む 文字コードは UTF-8 Java 1.1, Java 1.2, Java 1.3 public static void main(String[] args) throws IOException { File file = new File(args[0]); BufferedReader reader = null; try { reader = new BufferedReader( new InputStreamReader(

    Javaのバージョン別、1行ずつファイルを読む方法まとめ - Qiita
    naga_sawa
    naga_sawa 2021/05/05
    Java8あたりで知識が止まってるので/シンプルに書けるようになったもんです
  • 1