java
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } } javac HelloWorld.javaしてクラスファイルを生成します。さっそくjavap HelloWorldしましょう。javapコマンドはOpenJDK系(OpenJDKやHotSpot、…
このブログを読んでいただいているということは、Javaを少なくとも使っているという状況と想像します。それでは、JCPのことはご存知でしょうか? JCPとは JCPとはJava Community Processのことです。公式サイトはこちらです。 The Java Community Process(SM…
Spring MVCでこういうコントローラメソッドがあるとする。 @RequestMapping(path = "hoge") public String index(@RequestParam @DateTimeFormat(pattern="yyyyMMdd") Date start, @RequestParam @DateTimeFormat(pattern="yyyyMMdd") Date end) { return "h…
Eclipseファウンデーションへ移管されたJava EEの新名称が決まりました。 And the Name Is… | Life at Eclipse "Jakarta EE"です。 "Jakarta EE" or "Enterprise Profile"の決選投票が2/23までありました。7000弱の投票のうち65%が"Jakarta EE"へ票を入れて…
こちらの内容に沿って、Graalの理解を深めています。 Understanding How Graal Works - a Java JIT Compiler Written in Java 前回はGraalにJITコンパイルをさせました。 jyukutyo.hatenablog.com 今回はGraalのグラフについてです。いわゆるプログラム依存…
Project Loomのソースを読んでいると、また遭遇しました。 public class Continuation { ... @HotSpotIntrinsicCandidate private static int doYield(int scopes) { throw new Error("Intrinsic not installed"); }; ... } @HotSpotIntrinsicCandidateアノ…
前回ではGraalをJITコンパイラとして使うため、EnableJVMCIでJVMCIを有効にしました。 jyukutyo.hatenablog.com 引き続き Understanding How Graal Works - a Java JIT Compiler Written in Java を参考に、Graalの理解を深めます。 ところでJVMCIとは何なの…
超いまさらですが、JDK7で導入されたtry-with-resources文のclose順序です。 public class TryWithResources { public static void main(String[] args) { try (Resource r1 = new Resource("Resouce 1"); Resource r2 = new Resource("Resouce 2");) { // …
JMH(Java Microbenchmark Harness)で、-prof perfasmをすると、perfと-XX:+PrintAssemblyを使って、JITコンパイラ生成コードでのホットな部分を表示してくれるという機能があります。これが、思いの外すごい機能だったので、紹介します。 前提条件 JMHを知…
Java Keynote 昨年のキーノートでは"火星の悪夢"があったことをご存知の方も多いでしょう。Javaと関係のない火星の話が1時間もあるという悪夢のキーノートでした。 今年は、そつなくまとまっていて合格点はある気がします。3年連続3度目のJavaOneでしたが、…
詳細はこちらで紹介されています。 Oracle Blogs 日本語のまとめ: [Java, Security] Java 8 will use TLS 1.2 as default ですが、どうしてもサーバがTLS 1.2に対応していない場合もありますよね。 そのときはシステムプロパティにて使用するTLSのバージョン…
JOnsenというアンカンファレンスに参加しています。 温泉地でJava Expertで集まってリラックスして話そうぜ、という感じです。 詳しくは、disorganizer(アンカンファレンスなのでorganizeの逆)の1人Sebastianのブログに書かれています。 JOnsen 2017 Uncon…
JPAでそもそもそういう使い方するなよってことかもしれませんが。 ネイティブクエリを発行してその結果をエンティティ以外のクラスのインスタンスにマッピングしたいことがあるとします。 JPAの実装にHibernateを使っているときは、以下のコードで実現できま…
とある資料を読ませていただいていて、「Uber JAR」なる単語が。 java -jar hoge.jarでアプリケーションを起動するタイプのものを指すのは理解できたのですが、 Uberって?っと思い検索してみました。 stackoverflow.com Über is the German word for above …
ここでは相関バリデーションを、「2つの値の関係性をバリデーションする」とする。 たとえば、日付で開始日と終了日があって開始日 < 終了日とならなくてはならない、など。 Bean Validation 1.1の仕様には、相関バリデーションはなさそう。ただ、Hibernate …
JEP 309: Dynamic Class-File Constantsというものがあります。これはConstant Dynamic(condy)と呼ばれるものです。 http://openjdk.java.net/jeps/309 Constant Dynamic、つまり動的な定数です。Javaでは今まで(10まで)プリミティブとリテラルを持つStr…
JEP 181: Nest-Based Access Controlというものがあります。これはNestmates(ネストメイト)と呼ばれるものです。 http://openjdk.java.net/jeps/181 Nestmatesは、クラスやインタフェースをネストして作成したとき、ネストする側される側の両方を指す言葉…
関ジャバでも話題に上がったのですが、Javaには「Java Champion」と「Java Rock Star」という称号があります。 Java Championとは The Java Champions are an exclusive group of passionate Java technology and community leaders who are community-nomin…
この記事は JVM Advent Calendar 4日目 の記事です。 JVM Advent Calendar 2014 - Qiita JITWatchについて JVMなみなさんは、JITコンパイルをご存知だと思います。 JITWatchは、アプリケーションにおけるJITコンパイルについて、可視化し分析するためのツー…
Java™ SE Development Kit 8, Update 51 (JDK 8u51)がリリースされましたね。 僕もダウンロードしました。 さて、このJDK 8u51は「CPU」なリリースです。 実は、JavaのUpdateには2種類あります。1つは「CPU」、もう1つは「PSU」です。 CPUは「Critical Patch…
GroovyとかMaven関連でホスティングしていたCodehausですが、サービス終了していたんですね。 All Codehaus services have now been terminated. With increasing diversity in opensource hosting platforms like Github and Bitbucket - who are meeting t…
Java Magazine Vol.20 「パフォーマンス特集」/Java Day Tokyo 動画・資料公開ほか【Java Developer Newsletter Japan】 Java Magazine Vol.21を読んでいただいたご感想をお寄せ下さい。 お寄せいただいた方には、Java 20周年記念のステッカー(非売品)を3枚セ…
やろうとした理由は…単なる思いつき。 調べたらいろいろな方が試されてました。手順をまとめておく。 既存のアプリケーションがMavenなので、Mavenで管理する方針で。scala-maven-pluginなるものがあるので、これを使う。 <pluginManagement> <plugins> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven</artifactid></plugin></plugins></pluginmanagement>…
これの続き。 jyukutyo.hatenablog.com 素直に@Autowiredアノテーションつけるだけでできた。 package hoge import org.springframework.beans.factory.annotation.Autowired import org.springframework.context.ApplicationContext import org.springframe…
そういえばJavaOne 2015で「Protecting Java Bytecode from Hackers with the InvokeDynamic Instruction 」というセッションに出ておもしろかったことを思い出しました。 そこでデモ用のものが紹介されていたので、今更ながら試してみました。 github.com …
スポンサーセッション 今まで3回CCCではセッションをCfPを出して担当しました。私が所属するフリュー株式会社は、前回2016 Fallからスポンサーになっています。今回は僕がスポンサーセッションを担当しました。 ですが、スポンサーだからといって何を宣伝す…
kanjava.connpass.com 私が代表を務めている関西Javaエンジニアの会(関ジャバ)の、過去最大規模のイベント"KANJAVA PARTY 2017"を開催し、無事終了することができました! 参加者のみなさん、スピーカーのみなさん、そして運営メンバー陣、ありがとうござ…
10/1-5までサンフランシスコで開催される、JavaOne 2017に参加しています。 1日目はコミュニティセッション、Java User Group (JUG)やJCPのセッションです。本格的な技術セッションは2日目から5日目の昼過ぎまで、というのが例年の流れです。1日目は英語セッ…
アノテーションをimplementsしたクラスを作成できるというのを最近知りました。アノテーションなんてJDK 1.5からあるのに、知らないもんですね… みなさんはご存知ですか?とTwitterにツイートしたところ、ご存知の方もたくさんいらっしゃいましたが、ご存知…
こんなことができるのを知りませんでした。 public class MethodReferenceSample { private void method1() { } public static void main(String[] args) { Runnable method1 = new MethodReferenceSample()::method1; } } メソッド参照の値をRunnable型の変…