タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

javaとJavaとjava8に関するdecoy2004のブックマーク (48)

  • JVM の並行性: Java 8 での並行処理の基礎

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    JVM の並行性: Java 8 での並行処理の基礎
  • メモっとけ Java 8 Lambdas 〜Chapter3〜 - A Memorandum

    Java 8 Lambdas: Pragmatic Functional Programming (English Edition) 作者:Richard Warburton出版社/メーカー: O'Reilly Media発売日: 2014/03/18メディア: Kindle版 前回 blog1.mammb.com からの続き Stream Stream は複雑なコレクション操作を関数型アプローチで構築するツールです。 外部あるいは内部の繰り返し ロンドン出身のアーティスとを数える旧来のコード int count = 0; for (Artist artist : allArtists) { if (artist.isFrom("London")) { count++; } } 繰り返し処理の抽象である Iterator を使ったコード int count = 0; Iterator<Ar

    メモっとけ Java 8 Lambdas 〜Chapter3〜 - A Memorandum
  • JDK8からあるちょっと嬉しいGCログオプション - n-agetsumaの日記

    JDK8およびJDK8u20では、GCログに関連する2つの便利な機能が追加されている。いずれの機能も2014/8現在最新のJDK7 update 67 には含まれていないが、JDK7u80にてバックポートされる予定。 GCログにpidと日付を含める (JDK8より) JAVA_OPTS="$JAVA_OPTS -Xloggc:/var/log/wildfly/gc_%p_%t.log" => 実際のファイル名例 : gc_pid31455_2014-08-31_14-20-16.log.0GCログのフォーマットに%pを入れるとpid形式のプロセスIDが付与される。また%tを付与すると"_2014-08-31_14-20-16"のようにGCログファイルを作成した日付時分秒が追加される。かつてGCログはJavaを再起動すると同じファイルが上書きされて消えてしまうため、出力先を-Xloggc:g

    JDK8からあるちょっと嬉しいGCログオプション - n-agetsumaの日記
    decoy2004
    decoy2004 2014/09/01
    『JDK8よりGCログフォーマットに%p(pid)や%t(時間)が含められる。 JDK8u20よりjcmd GC.rotate_logでGCログローテションできる。JDK7u80 にバックポート予定』
  • Stream APIで大きなファイルを読み込むと - torutkのブログ

    Java SE 7で導入されたNIO2のFilesクラスでreadAllLinesメソッドを使って大きなファイルを読むと、ヒープメモリを圧迫またはOutOfMemoryErrorを起こします。 List<String> lines = Files.readAllLines(Paths.get(args[0]), StandardCharsets.UTF_8); Windows 7 64bit(12GBメモリ)で、Java SE 8 64bit版上でヒープメモリサイズのオプションを指定せずに(デフォルト)実行し、8GBのファイルを上述コードで読み込ませたところOutOfMemoryErrorが発生しました。 Java SE 8で導入されたStream APIを使って大きなファイルを読み込むとどうか試してみました。 try (BufferedReader reader = Files.newB

    Stream APIで大きなファイルを読み込むと - torutkのブログ
    decoy2004
    decoy2004 2014/08/26
    『Java SE 8で導入されたStream APIを使って大きなファイルを読み込むとどうか試してみました。』
  • JDK 8のjdepsでJARファイル間の依存関係を可視化 - torutkのブログ

    Java SE 8 Development Kit(JDK 8)で新たに搭載されたコマンドjdepsは、JavaのクラスファイルやJARファイルから、JARファイルやパッケージやクラスの間の依存関係を解析します。ツールの結果はテキスト(標準出力)とdot形式ファイル(Graphvizでグラフィカルに表示)として生成できます。 http://docs.oracle.com/javase/8/docs/technotes/tools/unix/jdeps.html 今回は、JARファイル間の依存関係をjdepsコマンドで調べてみました。 GeoToolsのJARファイルの依存関係を調べる Javaのオープンソース地図ライブラリGeoToolsは、多数のJARファイルから構成されています。 http://www.geotools.org/ 次にGeoTools 11.1に含まれるJAR一覧を示し

    JDK 8のjdepsでJARファイル間の依存関係を可視化 - torutkのブログ
    decoy2004
    decoy2004 2014/08/26
    『JDK 8 コマンドjdepsは JavaのクラスファイルやJARファイルから、JARやパッケージやクラスの間の依存関係を解析しテキストとdot形式ファイル(Graphviz)として生成できます』
  • 「Java 8 Lambdas」を読む会第2回を実施して - torutkのブログ

    昨日はJava読書会BOF主催のJava読書会「Java 8 Lambdas」を読む会の第2回を開催しました。洋書にも関わらず、10人を超える参加者が集まりました。 今回の読書範囲で感じたことなど ラムダ式の引数命名 ラムダ式の記述で、引数の変数名に著者は多少長くなっても意味を示す名前を付けています。 Example 3-16より引用 int count = Stream.of(1, 2, 3) .reduce(0, (acc, element) -> acc + element); たまにラムダ式の解説でみかける1文字変数のコード例だと int count = Stream.of(1, 2, 3) .reduce(0, (a, e) -> a + e); と短くなるものの、'a'って? 'e'って? となって可読性が下がります。 for文、分かりやすいではないか 上記のreduceを使っ

    「Java 8 Lambdas」を読む会第2回を実施して - torutkのブログ
    decoy2004
    decoy2004 2014/08/26
    キャプチャーをしないラムダ式では、関数型インタフェースのインスタンスが内部でシングルトン・パターンで実装されているので毎回の生成はないですが、キャプチャがあるとインスタンス生成が毎回となるようです。
  • Java8でListとかMapに追加されたメソッドをいくつか試してみる - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Java8でListとかMapに追加されたメソッドをいくつか試してみる - Qiita
  • jMockit 1.9にしたらえらく変わってた - Qiita

    Mockit.setUpMock(HogeMock.class); // ここでいねーよってコンパイラーさんがOKOKO new Expectations() { Fuga fuga; // これではMock化してくれないっぽい? { this.fuga = new Fuga(); // 動かすとMockじゃないってJVMがOKOKO } }; どうやら、基的にMockUp使えってことらしくて、Expectitionsはテストクラスのフィールドやメソッドの引数にMockedアノテーション付ける以外にはダメっぽそう。 TestNG+jMockit+EclEmmaな環境だと、EclEmma2.3.1とかにしてしまうだけで、jMockitとぶつかって、テストの起動でコケてくれるので、jMockitのバージョンを上げるか、EclEmmaを2.2系に戻すほかないけど、Java8対応とかするにはEc

    jMockit 1.9にしたらえらく変わってた - Qiita
    decoy2004
    decoy2004 2014/08/19
    『Java8対応とかするにはEclEmma2.3.1にしないとダメなので、jMockitをバージョンアップするしかないという』
  • The Checker Framework Manual: Custom pluggable types for Java

    The Checker Framework Manual: Custom pluggable types for Javahttps://checkerframework.orgVersion 3.49.4 (2 Jun 2025) For the impatient: Section ‍1.3 describes how to install and use pluggable type-checkers. This manual is also available in PDF. Contents Chapter ‍1 Introduction 1.1 How to read this manual 1.2 How it works: Pluggable types 1.3 Installation 1.4 Example use: detecting a null pointer b

    decoy2004
    decoy2004 2014/08/07
    『Lock Checker for concurrency and lock errors (see Chapter 5)』
  • Java8のHotSpotVMからPermanent領域が消えた理由とその影響 | ギークを目指して

    今回も前回の記事につづき、Java8による変更点で未だあまり紹介されていないポイントを記事にしようと思う。 今回はJava8のHotSpotVMの話。Java8ではJEP122が取り込まれ、VMのメモリモデルが変更された。JEP122のタイトル「Remove the Permanent Generation」から想像できるとおり、Java8のHotSpotVMからは従来のPermanent領域が無くなった。 なぜ、こういった変更が行われたのだろうか?また、元々Permanent領域に格納されていた情報は何処にいってしまったのか?JVM付属のツールにどういった影響があるのか? 今回の記事ではこの点をまとめていこうと思う。 なお、HotSpotVMのメモリモデルについて詳しくない方は、先にこちらの項番(「補足 – HotSpotVMのメモリ構造概説)を読んでいただくとスムーズに読み進められるだ

    Java8のHotSpotVMからPermanent領域が消えた理由とその影響 | ギークを目指して
    decoy2004
    decoy2004 2014/07/29
    『 jmap 従来のPermanent領域はヒープ領域の一つとして取り扱われていたため、使用状況が取得できたが、利用状況の取得はできなくなった。 これは、Native領域を利用することによるデメリットの一つと言えるだろう。』
  • Java8のインタフェース実装から多重継承とMix-inを考える | ギークを目指して

    2014年3月18日、ついにJava8が正式にリリースを迎えた。 折角なので、今後、Java8の新機能に関する記事をいくつかアップしていきたい。 Java8といえばやはりラムダ式だけど、既に色々な方がブログ等々で紹介しているので、今回は、Java8にて導入されたインタフェースのデフォルト実装と多重継承、Mix-inの関係について書いていきたいと思う。 かなり長丁場になりそうだが、最後までお付き合いいただければ幸いである。 では、Java8の世界に飛びだそう! Java8のインタフェース実装とは? Java8では、インタフェースに実装を持てるようになった。 定義の方法は「default」句、または「static」句を利用する2パターンが存在する。 今回の記事では「default」句を利用した場合のメソッドの振る舞いから多重継承とmix-inについて考えていく。 default句を使用したイン

    Java8のインタフェース実装から多重継承とMix-inを考える | ギークを目指して
  • Java8 で java.lang.Object#hashCode() の生成アルゴリズムが変更されていました。 - 地平線に行く

    java.lang.Object#hashCode()の性質という記事で書いたのですが、Java の Object#hashCode() の値はただの乱数となっています。 この乱数のアルゴリズムが、Java SE 8 で「線形合同法」から「XORシフト方式」に変更になっていました。 といっても、変更されたのはたった1文字。 VMオプションのデフォルト設定が -XX:hashCode=0 から -XX:hashCode=5 に変わっただけでした。 hotspot-rt Udiff hotspot/src/share/vm/runtime/globals.hpp どういうこと? もともと、Java の以前の実装*1 *2から、Object#hashCode() のアルゴリズムはVMオプション -XX:hashCode=? で選べるようになっていました。 ですが、デフォルトは長いこと 0(=線形

    Java8 で java.lang.Object#hashCode() の生成アルゴリズムが変更されていました。 - 地平線に行く
    decoy2004
    decoy2004 2014/07/23
    『しかし、Java SE 8 をリリースするにあたって改めて調べたところ、「-XX:hashCode=5(XORシフト方式)に変えたほうがマルチスレッドでのパフォーマンスが格段に良い*3」という結果が得られたそうです。』
  • Date and Time API 徹底攻略(2) - そもそも「時」とは何か? - Programming Studio

    Java SE 8 が日時間の 3 月 19 日 午前 4 時頃にリリースされました。3 月 18 日リリースと聞いて JDK ダウンロードページが更新されるのを待機していたけれども、いつまで経っても更新されず、翌日見てみたら更新されていた、という経験をされた方も少なくないのではないでしょうか。今回は Java SE 8 のリリースがなぜ 3 月 18 日でなく 3 月 19 日になってしまったのか?という謎解きも含めて、「時」というものを振り返ってみようと思います。 1. 「時」の基単位は「秒」 現在、「時」の基単位は「秒」と定められています。「秒」は 7 つある SI 基単位 (これ以上分解できない単位のこと) の 1 つであり、SI 単位系においては非常に重要な存在です。 SI 基単位は、m (メートル; 長さ)、kg (キログラム; 質量)、s (秒; 時刻・時間)、A

    Date and Time API 徹底攻略(2) - そもそも「時」とは何か? - Programming Studio
  • Technology RaderもJava8を認めた! - きしだのHatena

    技術の注目度・実用度を分析したTechnology raderというのを、Thought worksが半年ごとに発表してます。 で、これいつもJava嫌いなんだなーって思う感じの内容だったんですね。 たとえば、2011年1月には「Java language end of life」といって、JavaはVMは残るけど言語は終わるよねーみたいな感じになってました。 http://thoughtworks.fileburst.com/assets/technology-radar-january-2011.pdf これが、2011年7月では、「Future of Java」として、今後でてくるJavaなら評価していいんじゃねーのみたいに。 http://thoughtworks.fileburst.com/assets/technology-radar-july-2011.pdf そして、先日

    Technology RaderもJava8を認めた! - きしだのHatena
  • Java8 Stream API では collector とかを複数回呼ぶと実行時エラーになる - tokuhirom's blog

    Java8 Stream API では collector とかを複数回呼ぶと実行時エラーになる 以下のようなコードは、実行時エラーになる。 Stream<String> ss = Arrays.asList("hoge", "fuga").stream(); System.out.println(ss.count()); System.out.println(ss.count()); スタックトレースは以下のようになる。 stream has already been operated upon or closed java.lang.IllegalStateException at java.util.stream.AbstractPipeline.<init>(AbstractPipeline.java:203) at java.util.stream.LongPipeline.<i

  • JAWS-UG三都物語で「そろそろJavaみなおしてもええんやで」というプレゼンしました - きしだのHatena

    夏のJAWS-UG 三都物語 2014というイベントで「そろそろJavaみなおしてもええんやで」というプレゼンしてきました。 Javaのイベントではなかったので、Javaを使ってない人を想定したプレゼンでしたが、実際会場のほとんどがJavaメインではなかったようです。 for(int num : nums){ if(num > 10) continue; sum += num * 2; } というコードが、NetBeansの「関数操作を使用」というリファクタリングで sum = nums.stream().filter((num) -> !(num > 10)).map((num) -> num * 2).reduce(sum, Integer::sum); になったところがハイライト。 ここまでできるとは思ってなかった。 そろそろJavaみなおしてもええんやで from なおき きしだ

    JAWS-UG三都物語で「そろそろJavaみなおしてもええんやで」というプレゼンしました - きしだのHatena
    decoy2004
    decoy2004 2014/07/09
    『NetBeansの「関数操作を使用」というリファクタリングで sum = nums.stream().filter((num) -> !(num > 10)).map((num) -> num * 2).reduce(sum, Integer::sum); になったところがハイライト。』
  • [Pleiades] Java 8 正式対応!Eclipse 4.4 Luna リリース - Qiita

    毎年 6 月恒例の Eclipse メジャーリリースとなる Eclipse 4.4 Luna (ルナ) がリリースされた。ラムダなど Java 8 に正式対応した初のバージョンだ。これに合わせて日語化された Eclipse と便利なプラグインや Java 8 実行環境を含む全部入りの Pleiades All in One もリリースした。 Pleiades All in One Eclipse 4.4 Luna ダウンロード http://mergedoc.sourceforge.jp/pleiades_distros4.4.html 起動時のスプラッシュは月 (Lunar Eclipse) のときに月から地球を見たときに発生しているであろう日イメージにした。地球の所々光っている部分は実際の街明かりで、韓国の北側の国が真っ暗で話題になった NASA の映像。背景は銀河中心方向の S

    [Pleiades] Java 8 正式対応!Eclipse 4.4 Luna リリース - Qiita
    decoy2004
    decoy2004 2014/06/26
    『エディター分割』
  • 「Javaの鉱脈」連載開始 | さにあらず

    WEB+DB PRESS の Vol.81 から JVM を中心とした連載を始めましたので是非買って下さい。 2014/6/24 発売です。書店には既に並んでいるかと思います。 これはアマゾンのアフィリエイトリンクですので、踏んだ直後に冷蔵庫等の大型家電を購入して頂けると僕が喜びます。 電子書籍版もありますので物理的な媒体に興味がない方は PDF を買って下さい。 WEB+DB PRESS Vol.81@Gihyo Digital Publishing 初回の内容はラムダ式 + RxJava​ 今回の内容としては Java8 のラムダ式に関する簡単な説明から、ラムダ式を利用してRxJavaを使うとこんなに便利という話を書きました。 記事内で Stream API に関して説明しなかった最大の理由はラムダ式と Stream API に関する適切で妥当な説明については桜庭さんの記事を読めば良い

    「Javaの鉱脈」連載開始 | さにあらず
  • Java8でファイルの文字エンコーディング一括変換を行う - きしだのHatena

    Java6までは、Javaでファイルエンコーディングの変換を行おうとすると、Readerで開いて一行ずつ読み込みながらWriterで書き込むみたいなコードが必要になってました。 これはJava7のnioで導入されたファイルユーティリティで簡単に書けるようになったのですが、フォルダ以下のファイルをすべて処理しようとすると再帰コードを書く必要があったりして面倒でした。 ※追記 7/9 コメントで指摘あるように、walkFileTreeを使うと再帰書かずにファイルツリーの処理ができました。walkだとStreamになって便利、という感じですね。 でも、Java8ではファイルユーティリティにフォルダ以下のファイルをすべて処理するためのwalkメソッドが追加されているので、すべてのファイルを処理するということも楽になりました。 ということで、指定フォルダ以下のファイルのすべての文字コードをWindo

    Java8でファイルの文字エンコーディング一括変換を行う - きしだのHatena
  • forEach書いたら負け、for文禁止 - torutkのブログ

    日は日Javaユーザーグループ(JJUG)主催のクロスコミュニティカンファレンス2014春に参加してきました。今日の日記は、参加内容のまとめではなく、参加して得たことやそれをきっかけに考えたことなどをだらだらと書き連ねます。 Java SE 8では、forEach書いたら負け、for文禁止 日記のタイトルは、午前のセッション「K-1 詳説 Java SE 8 – CCC Edition」で出た話題です。手続き的なロジックを書いて、ネストが深く制御構造が複雑になってしまう人向けにはJava SE 8で導入されたラムダ式とStream APIを使って、内部イテレータと関数型プログラミングのエッセンスを取り入れた書き方をするといいよ、という話から出た言葉です。 実は昨日開催したJava読書会(「Java 8 Lambdas」を読む会)でも、「for文は禁止だ!」という話題が出てました。for

    forEach書いたら負け、for文禁止 - torutkのブログ
    decoy2004
    decoy2004 2014/05/19
    『このコードは、拡張for文の中で1つの要素につきイテレータのhasNext()とnext()と2つのメソッドが呼ばれます。それらのメソッド毎にロック、アンロックされるため、並行アクセスに不整合となるとの説明がありました。』