例えば H2 database を以下のように起動するとめっぽう遅い java -cp h2.jar org.h2.tools.Server H2 database に限らず、Tomcat だったり Logback だったり、あらゆるものが遅い 以下にあるように InetAddress.getLocalHost() から呼ばれる DNS Lookup に原因があるようだ plumbr.eu こことか thoeni.io こことか stackoverflow.com ワークアラウンド /etc/hosts にホスト名を指定 ホスト名が MacBook-Pro の場合は以下のような感じ 127.0.0.1 localhost MacBook-Pro.local ::1 localhost MacBook-Pro.local ホスト名自体は「システム環境設定」の「共有」にあるコンピュータ名で設定
リストからマップを作る時に使う以下のコード Map<String, String> phoneBook = people.stream() .collect(Collectors.toMap(Person::getName, Person::getAddress); なつかしい以下のコードとは挙動が異なります。 Map<String, String> phoneBook = new HashMap<>(); for (Person p : people) { phoneBook.put(p.getName(), p.getAddress()); } Collectors.toMap() の場合は、キー つまり Person.getName() に重複がある場合は IllegalStateException になります。 昔ながらの Map の操作の延長で考えると、新しいもので上書きされると
##はじめに Java8の新機能、Stream APIを使い始めてコーディングが格段に楽になりました。 備忘録的にサンプルコードを書き出してみました。少しずつ追加していく予定です。 Javaは使ったことあるけどラムダ式やStream APIはよく知らないという方は、参考にしてみてください。 バリバリ使っている方は、こんな使い方もあるよ!と教えていただけると嬉しいです。 ちなみにオライリー社のJavaによる関数型プログラミング ―Java 8ラムダ式とStreamがとても参考になりました。 【前提条件】Stream APIの説明に使用するオブジェクト public class Person { private String name; private int age; private List<Person> children; public Person(String name){/*..
Iterator から Stream を得る 配列から Stream を得る Enumeration から Stream を得る 文字列を split した結果から Stream を得る 乱数 Stream を得る 数列の無限 Stream を得る org.w3c.dom.NodeList からStreamを得る ソート済みの Stream を得る Iterator から Stream を得る Iterable に変換してから Stream を得ることができます。 Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator(); Iterable<String> iterable = () -> sourceIterator; Stream<String> targetStream = StreamSupp
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
Java8PasswordHashDemo.java �Ѫ� p�$Ѫ� import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.spec.InvalidKeySpecException; import java.util.Base64; /** * パスワードハッシュのデモ。 */ public class Java8PasswordHashDemo { static final int NUM_SALT_BYTES = 32; static final int NUM_ITERATION
はじめに 毎回、他の発表者の方々が有益情報を発表してくれる中で僕一人が誰得情報をひたすら発信しているわけですが、今回もご多分に漏れず Java 8 で認証系を自作する、というニッチな話をしてきました。 昨今のパスワード流出系のセキュリティインシデントが業界内で話題になるたびに「認証系なんてものは自作するようなもんじゃない」という認識が醸成されつつあると思います。しかし、マイナー or オレオレ Web アプリケーションフレームワークなどを利用しているとそうもいってはおられず、認証系が用意されていないときはやむなく認証系の自前実装が要求されることもあるでしょう。自分自身も周りを見渡していても、過去何度かそういうことがありました。 ただ、実装者の認証セキュリティに対する認識や知識によって脆弱な認証系を作り込むことも少なくなく、そういうのをなるべく減らしたいなー、という思いを込めて今回の発表に至
Java8のlambda構文の話を書くと、旧来の書き方でいいというコメントがつくのですが、それでも便利になったMapの恩恵を受けることは多いんじゃないかと思います。 ※ 2018/5/31 Java9からはメモ化再帰には使えなくなっています ※ 2019/2/15 なんか問題ない? Mapには、lambda式を使ったメソッドが多く追加されていますが、たとえばgetOrDefaultメソッドのようなlambda式を使わないメソッドも追加されていて、これも便利です。 そして、このようなlambda式を使わないメソッドも、間接的にはlambda構文サポートでの言語拡張のおかげです。 Mapはインタフェースなので、Java7までの構文でメソッドを追加しようとすると、Mapを実装しているすべてのクラスに新しいメソッドの実装を追加する必要がありました。そしてそれは現実的に不可能なので、今までMapなど
id:KenichiroMurata(@muraken720 )です。 皆さん、RxJava 使っていますか? 前回はVert.xのmod-rxvertxを使い、RxJavaによってCallback Hellから脱出する方法を説明しました。本記事は、せっかくなのでJava8のラムダを使ったらさらにどのようになるのか?を試してみた補足記事です。 目次は以下の通りです。 環境 Java8 ラムダによってCallback Hellはいかに解決されたか まとめ 1. 環境 本記事で試した環境について説明します。 Vert.x 2.1M1 mod-rxvertx 1.0.0-beta2 RxJava 0.15.1 Java 1.8.0-ea(build 1.8.0-ea-b118) IntelliJ IDEA 13 CE Java8を試すために、IntelliJ IDEA 13 CEを使いました。J
月曜まで4連休でのんびりしていて書くのが遅くなりましたが、金曜日にJJUGのイベントに行ってきました。会場は青山のオラクルさんでした。 Java8をさっそく使っていきたいと思います。今の仕事はC#なので、ちょっとした個人的な作業や、オフラインリアルタイムどう書くで解答を書くのに使うのがメインになりそうですけれども。 http://jjug.doorkeeper.jp/events/9344 当日取ったメモや感想を書いておきます。 祝 Java SE 8 正式リリース(寺田さん) 資料: http://yoshio3.com/2014/03/21/congrats-javase8-launch/ 動画: https://www.youtube.com/watch?v=ssrkw3v9tdM Javaの最新情報へのリファレンスが満載の資料です。 Java 8では、クラスファイルのフォーマットが
JJUGさんによるJavaSE8のリリースを記念したイベントに参加してきました. 前夜祭 マエノリをしていたので,前夜に@megascusさんと@modacondaさんと新宿は歌舞伎町にあるジンギスカン霧島で食事をしました. 名物・霧マンジャロ,すごくでかかったです.12人前だそうでお腹いっぱいラム肉いっぱい食べれました.*1 ラム肉は初めて食べたのですがかなりヘルシーでサクサクいけて美味しかったです. あと,歌舞伎町怖かったです. 祝Java8Launch 全体を通して. 300人以上が参加登録し,実際の参加者も220名ほど来ていたようでJavaSE8への期待度の高さを感じました*2. 祝 Java SE 8 正式リリース(寺田 佳央(@yoshioterada) 日本オラクル Java エバンジェリスト) New Feature Of Java SE 8 from Oracle Fus
New Feature Of Java SE 8 1. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.1 2. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.2 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです 。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むこ とはできません。以下の事項は、マテリアルやコード、機能を提供することをコミッ トメント(確約)するものではないため、購買決定を行う際の判断材料になさらない で下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時 期については、弊社の裁量により決定されます。 Oracleは、米国オラクルコーポレ
こんにちは id:cero-t です。 「なんとやらは風邪をひかない」と言われているところ 先日、インフルエンザに掛かってしまいまして。 重ね着+多段布団+電気毛布2枚のコンボで一気に悪寒を吹き飛ばし、 一日で熱を下げたものの、感染予防のために出社を控えたために時間でき、 ちょっとJava8などと戯れていました。 そう、今日はJava8の話題です。 今年の秋に正式リリースが予定されているJavaSE8ですが、 OpenJDKのサイトでは、既にEarly Access版を入手することができます。 JDK8 : http://openjdk.java.net/projects/jdk8/ ダウンロード : http://jdk8.java.net/download.html 1/31に、マイルストーン6がリリースされ Feature Complete となりました。 名前からすると 全機能開発
2014年3月18日(米国時間)、ラムダを筆頭に数多くの新機能が含まれるJava 8がいよいよリリースされる。 ここ数年、JavaはOracleのSun買収による混乱、当初Java 7で実装されるはずだった多くの機能の先送り、さらにはJava 8のリリースの遅延など様々な要因によって強い停滞感があり、それが関数型言語の機能を取り入れたScalaなどJavaの代替となるJVM言語の台頭にも繋がった。 そうしたJavaプログラマの溜まりに溜まったモヤモヤを払拭するアップデートとして期待されているのが今回のJava 8だ。前述の通りラムダの導入による新たな構文からStream APIやTime APIといったライブラリの追加まで、非常に多くの新機能を含んでいる。 本稿ではそのJava 8の主要な新機能についてサンプルコードを交えて紹介していく。Java 8の新機能を押さえるための参考になれば幸い
結論 Java8のOptionalは超すっきり扱えるよ、そう、Groovyならね。 Optionalって何? Java 8で導入される新規クラスの一つ、java.util.Optionalは、メソッドの実行結果で成功する場合と失敗する場合があるときに、その返り値で成功と失敗を表現するためのものです。 Opitonalは単一要素を保持するコンテナ型。成功した場合は返り値をコンテナで保持させたものを返す。(成功時の返り値をラッピングする) 「失敗」は固定のシングルトン(Optional.empty())として扱う まあ、それだけの話といえばそれだけなのですが、効果は、 失敗のある可能性のあるメソッドと無いメソッドをコメントではなくプログラムの一部として明示し、両者の違いをコーディング上も区別する 失敗のある可能性のあるメソッドと無い混在・混同することのないようにコンパイル時チェックをできるよう
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く