Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

プレゼン、ボランティアコーチします!

勉強会でスピーカーをやりたいけど、プレゼンが初めて、苦手という方に無償でコーチします!資料レビューや録画リハへアドバイスします。Twitter@jyukutyoまでメンションでもDMでも。

私はデブサミやJJUG CCCなど200人規模で登壇経験ありです。海外での登壇も短いながらあり。デブサミ2017では公募スピーカー1位でした!

jvm

オレオレJVM言語を作ろう! How to create a new JVM language #Graal #Truffle

DevoxxUSに参加した際、とてもおもしろかったセッションがありました。Oleg Šelajevの"How to create a new JVM language"というセッションです。 www.youtube.com OlegはvJUG(virtual JUG: オンライン上の仮想Java User Group)のOrganiser、JRebelやXRebe…

How to get an application class loader in Java Agent method

In Java Agent method, such as premain() or agentmain(), class loader is system classloader, not application class loader. If you intent to change bytecode of class loaded by application class loader, you will need an application class load…

material of my session in JJUG CCC 2016 fall

I talked about Java Agent and bytecode manipulation libraries in JJUG CCC 2016 fall. My session room was filled to capacity with bytecode fans! This is a material of this session. JJUG CCC 2016 fall バイトコードが君のトモダチになりたがって…

How can I get a web application classloader in Java Agent's method agentmain()

I implement Java Agent which transform classes of a web application running in an application server. To do so, I need a web application classloader which load these classes. I know Instrument#getAllLoadedClasses() method. But this method …

translation of InfoQ article about Project Valhalla in Japanese

Valhalla adds new bytecode instruction "typed".

hsdisをMacでビルドする

jvm

Java Day Tokyo 2016に出たところ、hsdisをもうProject Kenaiからダウンロードしてはいけない、古いビルドだから新しいCPUに対応していないということを聞きました。 そのため、帰宅してすぐビルドしました。簡単でした。 まずhsdisディレクトリに移動します…

Groovyでのinvokedynamic

Twitterでのやり取りでGroovyのinvokedynamicの話題が出たので、まず簡単に試してみました。 まず以下のHelloWorld.groovyを作ります。 println 'Hello, world!' 普通にコンパイルする。 $ groovy -v Groovy Version: 2.4.0 JVM: 1.8.0_65 Vendor: Oracle Co…

JDK9では文字列の連結にinvokedynamicが使われることになりそうだ

JEPにあり、JDK9のターゲットになっている。 JEP 280: Indify String Concatenation Change the static String-concatenation bytecode sequence generated by javac to use invokedynamic calls to JDK library functions. This will enable future optimiz…

ScalaのHelloWorldをjavapしてみた

クラスファイルはすべからくjavapしよう - Fight the Futurejyukutyo.hatenablog.com ということを言ったので、Scalaのコードもjavapしようと思いました。 もちろんscalacしてからjavapしてもよいのですが、ScalaはなんとREPLからjavapできると知りました。 …

クラスファイルはすべからくjavapしよう

public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } } javac HelloWorld.javaしてクラスファイルを生成します。さっそくjavap HelloWorldしましょう。javapコマンドはOpenJDK系(OpenJDKやHotSpot、…

JITWatchでJITコンパイルを見よう!

この記事は JVM Advent Calendar 4日目 の記事です。 JVM Advent Calendar 2014 - Qiita JVM Advent Calendar 2014 - Qiita JITWatchについて JVMなみなさんは、JITコンパイルをご存知だと思います。 JITWatchは、アプリケーションにおけるJITコンパイルにつ…

関ジャバ、DevLOVE関西でスピーカーしました

関西Javaエンジニアの会「HotSpot meeting」と、DevLove関西「5年目、10年目の自分戦略 」にてスピーカーをしました。 JITコンパイルはじめの一歩 from jyukutyo DevLOVE関西 5年目、10年目の自分戦略 20141030 from jyukutyo まだまだJVMについても初心者、…

JVMのclinetモードって…

jvm

-serverとか-clientって、オプションの一番最初に書かないといけないんだよね、というのと、 でも実行アーキテクチャでJVMが判断して勝手にserverモードにしてくれるんだよね、 というのを思い返しつつ、ちょっとclientモードにしてみるかと思いきや、 clien…