2015.04.24 JJUGナイトセミナ Javaのプログラムはどうやって動いているの? GC編Read less
2015.04.24 JJUGナイトセミナ Javaのプログラムはどうやって動いているの? JVM編Read less
少し前にLambda式のシリアライズってどうなの?という話があって、Lambda式が表現するクラスまたはインターフェースがSerializableでなければシリアライズはできないという話ではあったのですが、ちょっと気になって調べてみました。 すでにシリアライズしてみたよ、という方がいらっしゃったので、こちらをまずは参考に。 Java 8 ラムダ式の実装メソッド名を取得 - SerializedLambda http://fits.hatenablog.com/entry/2014/04/13/134406 シリアライズされたLambda式は、SerializedLambdaというクラスで表現されるそうです。 java.lang.invoke.SerializedLambda http://docs.oracle.com/javase/jp/8/docs/api/java/lang/invo
少しシリアライズ関係のライブラリを目にする機会がありまして、そういえばこういうまとめ記事あったなぁということを思い出しました。 MessagePack、Kryo、Protocol Buffersなどのシリアライザーのパフォーマンス比較 http://blog.katty.in/4567 気にはなっていたものの、実際にこれらのライブラリを使ってコードを書いたことはなかったので(Protocol Buffersは除く)、いい機会だなと思い試してみました。 今回は、以下について書いていきます。 Java標準 Kryo MassagePack Protocol Buffers JBoss Marshalling 最後の方にかなり個人的な趣向が入っていますが、気にしない方向で…。Java標準が入っているのは、とりあえずといった感じで。 ここから、簡単にシリアライザーごとにシリアライズ対象のクラスと、
9. XLSBeans • アノテーションでExcelをJavaBeanにマッピング @Sheet(name="Users") public class UserList { @LabelledCell(label="Title", type=LabelledCellType.Right) public String title; @HorizontalRecords(tableLabel="User list", recordClass=User.class) public List<User> users; public static class User { @Column(columnName="ID") public int id; @Column(columnName="Name") public String name; @Column(columnName="Gender
MySQL JDBC ドライバ(MySQL Connector/J)、Java で MySQL といえばまずコレだが、これまた地味に罠が多い(そして多くの人が踏んで苦しむ)のでまとめてみた。 (2015/03/19) こちら のコメント欄でご指摘ただいた wait_timeout の件について記事修正いたしました。 Summary 以下、いずれもプログラム設計時に理解しておかないと、開発中は大丈夫そうでも実用した途端に苦しまされれてしかも設計から治す羽目になる要注意な罠である: SELECT 結果は全部メモリに載ってしまう (デフォルト設定で) 大量 SELECT する場合は FetchSize, ResultSetType を要設定 利用時には制約があるので、設計段階から考慮しなければならない (後述) idle 時間の「合計で」コネクションが切られる 前回のクエリ処理から一定時間以上経
前提 Java SE 8 + Linux 前提です。 Java で暗号的に安全な乱数をえる Java で暗号的に安全な乱数を得るには SecureRandom クラスを利用します。 SecureRandom ではいくつかの乱数生成アルゴリズムをサポートしています。 各プラットフォームでもっとも安全な SecureRandom の実装は ${JAVA_HOME}/jre/lib/security/java.security の securerandom.strongAlgorithms という項目に書いてあります。 SecureRandom#getInstanceStrong() で取得できるのはこれです。 インスタンスの取得方法 new SecureRandom() でデフォルト実装が得られます OSX や linux では NativeBlocking です(SHA1PRNGの場合もある
まだ正月休みなのです。暇なので訳してみました。 この記事は 1年半以上前に Play の生みの親である Guillaume Bort がブログに書いたものです。 (2012/8/19追記: リンク切れしていたためリンクを貼り直しました) なぜ Playframework では Servlet が一切使われていないのかについて、簡潔に書いています。 丸山先生が Play に注目し始めた今、Play2.0 のリリースが間近に迫った今、あらためて読むと面白いかも知れません。 なぜ Play は Servlet を使っていないのか Servlet API に準拠せずに Java web フレームワークを作ることはかなり変に思えるかも知れない。大抵の人はなぜこんな普通じゃない選択をしたのかを聞いてくる。気に入ってくれる人も何人かいるが、大半は毛嫌いする。正直に言うと、 Play フレームワークの一番
What is Janino? Janino is a super-small, super-fast Java™ compiler. Not only can it compile a set of source files to a set of class files like the JAVAC tool, but also can it compile a Java™ expression, block, class body or source file in memory, load the bytecode and execute it directly in the same JVM. Janino is not intended to be a development tool, but an embedded compiler for run-time compila
Unsupported web browser - Use a modern browser to view this website! Apache FreeMarker™ is a template engine: a Java library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates and changing data. Templates are written in the FreeMarker Template Language (FTL), which is a simple, specialized language (not a full-blown programming language lik
83. JettyServletTester.runServlet((req, resp) -> { resp.getWriter().print("Hey"); }, (uri) -> { try (CloseableHttpClient client = HttpClientBuilder.create() .build()) { HttpGet request = new HttpGet(uri); try (CloseableHttpResponse resp = client.execute(request)) { String body = EntityUtils.toString(resp.getEntity(), StandardCharsets.UTF_8); assertEquals("Hey", body); } } });
パターンマッチングライブラリを作ってみた Java8 でラムダ式が導入されたことで関数定義がシンプルに書けるようになりました。 このラムダ式を使えば Scala のパターンマッチみたいな事もある程度できるよねってことで pattern-matching4j というライブラリを作りました。 ライブラリの作成においては以下の記事を大変参考にさせていただきました。 ありがとうございます。 http://www.akirakoyasu.net/2012/12/22/re-thinking-pattern-matching-in-java/ http://d.hatena.ne.jp/nowokay/20131212 使い方 早速どんな感じに使うのか見ていきましょう。 FizzBuzz FizzBuzz を print するメソッドは以下のように書けます。 void fizzbuzz(int num
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く