タグ

javaに関するyusuketのブックマーク (24)

  • JVM関連の最近の出来事〜GraalとOpenJ9〜

    JVM関連の最近の出来事〜GraalとOpenJ9〜 1. JVM関連の 最近の出来事 ~Graal/OpenJ9~ 関西Javaエンジニアの会 / ポノス株式会社 阪田 浩一 @jyukutyo #kanjava 2. 会長だけどじゅくちょー 阪田 浩一 通称: じゅくちょー 関ジャバ会長 JVMが大好き ポノス株式会社(スマホゲーム会社) 3. 私の検索 • Graal • J9 • JIT • HotSpot • JVM • GC 4. 今日は GraalとOpenJ9で “聴いたこと”を 話します 5. 理解しきれておらず 誤ったことを言う 可能性もあります (フォローお願い) 6. Graal 7. Graal • HotSpotでの新しいJITコンパイラ • Java 9でexperimental • Javaで記述されている • 他言語のサポート – http://www.o

    JVM関連の最近の出来事〜GraalとOpenJ9〜
  • Java XMLをDOMで読み込んで内容を取得するサンプルプログラム - すずろぐ

    こんにちは、すずしんです。 XMLは、データをシンプルに扱うためのデータ構造です。 非常に使い勝手が良く、Webなどの世界ではよく利用されます。 そのXMLを、Javaで扱う方法について今回は書いてみようと思います。 具体的には、XMLをDOMで読み込んで内容を取得する方法を扱います。 DOMとは? ドキュメントの取得方法(Java) ドキュメントの操作方法 DOMでXMLを扱うサンプルプログラム 実行結果 ひとこと DOMとは? DOMというのは、XMLを扱うためのAPI仕様の事をいいます。 この仕様では、XMLによって書かれた文書全体をドキュメントと呼びます。 ドキュメントはノードから構成されるノードツリーとなっています。 ドキュメントの取得方法(Java) Javaでドキュメントを取得するには、主に3つのステップがあります。 ステップ1: DocumentBuilderFactory

    Java XMLをDOMで読み込んで内容を取得するサンプルプログラム - すずろぐ
  • 入門書が教えてくれないJava 変数編 - プログラマーの脳みそ

    春なのでJava入門的なことを書こうと思い立ったので、入門書ではあまりとりあげられない部分を解説するコンセプトの入門記事を書いてみようと思う。(←ひねくれ者) 対象読者としては、Java言語の基礎を学んだがもう一歩踏み込んだ話が知りたいぐらいの初学者〜中級者を想定してる。上級者の方は記述に誤りがないかチェックしていただければ幸いだが、説明を簡単にするためにいろいろ端折っている点はご理解いただきたい。 今回は変数・フィールド編とした。筆者のやる気次第だがこのシリーズでいくつか書こうと考えている。 入門書が教えてくれないJava 変数編 (稿) 入門書が教えてくれないJava スコープ編 - プログラマーの脳みそ 初期値を指定しない変数宣言 変数宣言に際して初期値を設定しないことができる。 int i; この場合、このint i;がフィールドであるか、ローカル変数であるかで扱いが変わってくる

    入門書が教えてくれないJava 変数編 - プログラマーの脳みそ
  • Java SE 8のラムダ式はどう実現されたのか?──実装の経緯、内部的な仕組みを理解する - builder by ZDNet Japan

    Java SE 8で導入されたラムダ式は、どのような仕組みで実現されているのだろうか? ラムダ式をより深く理解したいと考える読者にとって、これは気になるテーマの1つだろう。その秘密をお教えしよう。 Java SE 8で導入されたラムダ式は、Javaの言語仕様の歴史において最大級の変更だとされている。ただし、これはあくまでもJava言語の文法レベルの話であり、Javaプログラムを実行するJava仮想マシン(JVM)に新たな仕組みが導入されたわけではない。つまり、言語仕様に関する旧バージョンとの相違はコンパイラとランタイムが吸収し、バイトコードレベルでの互換性は保たれているということだ。 それでは、このような大きな変更を、既存のJVMの仕組みの中でどのように実現したのだろうか。それを知ることは、ラムダ式をより深く理解する手助けとなるかもしれない。Java SE 8のラムダ式実現の経緯と仕組みに

    yusuket
    yusuket 2016/03/11
  • https://cero-t.hatenadiary.jp/entry/20151212/1449929908

    yusuket
    yusuket 2015/12/14
  • JSR352-Batch Applicationを試してみた(Batchlet編) - しおしお

    JSR352(Batch Application)を動かして見たので、その記録を残しておくと。 まず、動かしてみたいレベルだったのでサクッと動かすことができそうなBatchletを使っています。 実際にバッチアプリケーションを作成する際は、BatchletにはSQL一発ですむ処理を実装したりするのだと思います。 早速コードなどなどを見ていきます。 ジョブ定義 ジョブ定義は、META-INF/batch-jobs配下にxmlファイルで作成する必要があります。 こんな感じですね。 ファイルの内容は下のようになっています。 そんな難しい構造ではないのでさくっと作れます。jobのid属性には、xmlのファイル名の拡張子をなくしたものを設定します。 今回は、Batchletを動かすので、ステップ定義(step id="step"の部分)にbatchletを定義します。 ref属性には、cdiで管理さ

    JSR352-Batch Applicationを試してみた(Batchlet編) - しおしお
  • ASM

    ASM is an all purpose Java bytecode manipulation and analysis framework. It can be used to modify existing classes or to dynamically generate classes, directly in binary form. ASM provides some common bytecode transformations and analysis algorithms from which custom complex transformations and code analysis tools can be built. ASM offers similar functionality as other Java bytecode frameworks, bu

    yusuket
    yusuket 2015/04/18
    バイトコード
  • Javassist by jboss-javassist

    Javassist Java bytecode engineering toolkit since 1999 View on GitHub Download .zip Download .tar.gz Javassist (Java Programming Assistant) makes Java bytecode manipulation simple. It is a class library for editing bytecodes in Java; it enables Java programs to define a new class at runtime and to modify a class file when the JVM loads it. Unlike other similar bytecode editors, Javassist provides

    yusuket
    yusuket 2015/04/18
    バイトコード
  • Javaのgetter,setterメソッドは(特に)GUI部品のための規格だった話

    こんな記事があった。 「 getter/setterとはなんだったのか」- プログラマーの脳みそ JavaBeansはGUIなどで再利用可能なコンポーネントを提供する際の規格のようなもので(僕もあまり詳しくない)2000年ぐらいにGUIのコンポーネントを作るときに意識したような、どうでもよかったような、イマイチ恩恵が実感できなかった代物だった JBuilder2とか3の頃のJava開発といえば、AWTやSwingといったGUIアプリケーションを作ることがまだ当たり前だった時代。「部品」といえば、GUI部品のことを指していました。GUI部品といえば、ペタペタツールの存在を忘れてはなりません。当時のJava IDEは、こぞってVisual Basicの開発環境に追いつけ追い越せという状況だったんです。 それらのIDEが目指したもの、それは「コーディングなしでGUI画面を作れるようにすること」で

    Javaのgetter,setterメソッドは(特に)GUI部品のための規格だった話
    yusuket
    yusuket 2014/10/11
  • getter/setterとはなんだったのか - プログラマーの脳みそ

    Javaのgetter/setterのお話。 僕は当時を語るには若すぎるのだけど、過去を振り返って書いてみる。当時を知る人は誤りがあれば指摘してほしいし、情報があればコメントなりトラックバックなりして欲しい。前世紀の話というのは今となっては探すことがなかなか難しくなりつつある。 「privateな変数にpublicなアクセサを定義する」? - ネットの海の片隅で getter/setterとは何か Javaのオブジェクトにフィールドがあったとして、そのフィールドに値を設定するメソッドがsetter(せったー)、そのフィールドの値を取得するメソッドがgetter(げったー)と呼ばれる。慣習としてsetterはsetXXX(int value)といった様にsetから始まる名前をつけ、引数はひとつ。戻り値はvoid型。getterはgetXXX()といった様にgetから始まる名前をつけ、引数はな

    getter/setterとはなんだったのか - プログラマーの脳みそ
    yusuket
    yusuket 2014/10/11
  • Java クラスファイルの構成 その1 - Qiita

    class_file { magic // 0xcafebabe minor // 2 byte major // 2 byte constants modifiers // 2 byte thisClass // 2 byte superClass // 2 byte interfaces fields methods attributes } クラスファイルの先頭には必ず 0xcafebabe (カフェベイビー) が入っています。 minor, major はクラスファイルのバージョン番号が入っています。 バージョン番号の次は 定数プール と呼ばれる構造体です。 定数プールはクラスファイルの大部分を占めており、クラスファイルの様々な場所から参照されます。 modifiers はクラスのアクセス修飾子等を表現するフラグの集合です。 thisClass に入っている値は定数プールのインデッ

    Java クラスファイルの構成 その1 - Qiita
    yusuket
    yusuket 2014/09/01
  • Java並行・並列・非同期処理チートシート

    Java 1.5以降では Executorsフレームワーク 利用を優先検討のこと。 遅延実行(タイマー) クラス / メソッド 概要 Since

    Java並行・並列・非同期処理チートシート
  • Java8 で StringBuilder/StringBuffer クラスがリファクタリングされていました。 - 地平線に行く

    ついに Java SE 8 がリリースされました! そこで、早速ダウンロードして、Java 8 のソースコード(src.zip)を Java 7と比較してみたところ、公表はされていないのですが、ちょこちょことリファクタリングされていることがわかりました。 そこで、そのうち StringBuilder/StringBuffer クラスについて調べてみました。 引数に null が渡されたときの処理 append メソッドの仕様で、「引数が null の場合、"null" という4文字が追加される」というのがあります。 この仕様について、Java 7までは "null" という文字列を追加するという実装がされていました。 // Java 7 Update 51 (AbstractStringBuilder クラス 422行目〜) public AbstractStringBuilder app

    Java8 で StringBuilder/StringBuffer クラスがリファクタリングされていました。 - 地平線に行く
    yusuket
    yusuket 2014/03/20
    Javaの上の話(Javaでの開発の文化とかルールとか)は好きくないけど、下の話(Java自体の構造とか)は好きよ。
  • じっくり学ぶ Java講座 [初心者向け・入門] | みるくあいらんどっ!

    「じっくり学ぶ Java講座」は、初心者向けの Java入門講座サイトです。多くのサンプルコードを目にすることでじっくり着実に Javaプログラミングの基を勉強します。 更新履歴 第01章: はじめに はじめに ウェブサイトの目標とターゲット 学習の心構え おすすめ書籍 おおまかな構成 第02章: Java概論と開発環境の構築 Javaとは 開発環境の構築 開発環境メモ 第03章: はじめての Javaプログラム ハローワールド 読みやすいソースコードを書こう 第04章: 基型と基型変数、演算子とキャスト、Math.randomメソッドと自作ライブラリ 基型と基型変数 演算子と基型のキャスト Math.randomメソッドと自作ライブラリ 第05章: 条件分岐 if文 switch文 第06章: 繰り返し for文 while文 do while文 gotoは使えない 第07

    じっくり学ぶ Java講座 [初心者向け・入門] | みるくあいらんどっ!
    yusuket
    yusuket 2013/11/16
  • Javaはどのように動くのか~図解でわかるJVMの仕組み 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    Javaはどのように動くのか~図解でわかるJVMの仕組み 記事一覧 | gihyo.jp
  • Javaのhello worldの読み方 | mwSoft

    前書き お馴染み、hello worldのソース。 class Hello { public static void main(String[] args) { System.out.println("hello world"); } } このコードはコンパイルされると、こんなバイトコードになります。 ca fe ba be 00 00 00 32 00 22 07 00 02 01 00 05 48 65 6c 6c 6f 07 00 04 01 00 10 6a 61 76 61 2f 6c 61 6e 67 2f 4f 62 6a 65 63 74 01 00 06 3c 69 6e 69 74 3e 01 00 03 28 29 56 01 00 04 43 6f 64 65 0a 00 03 00 09 0c 00 05 00 06 01 00 0f 4c 69 6e 65 4e

  • Javaジェネリクス再入門 - プログラマーの脳みそ

    ジェネリクスでは、「型」を変数にした「型変数」というものを取り扱う。型変数で何が嬉しいかというと、メジャーな例ではコレクションAPIが挙げられる。java.util.Listとかjava.util.Mapとかのデータを格納するタイプのユーティリティクラスのことだ。 2004年にJavaのバージョンが5.0となるまでは、Javaにはジェネリクスの機能はなかった。なので、Listにデータを格納し、取得する場合は List list = new ArrayList(); list.add("hello!"); String str = (String) list.get(0); といったソースコードになる。 add()の引数はObject型で宣言されており、どんな参照型でもadd()することができた。 get()の戻り値もObject型で宣言されておりキャストが必要だった。このキャストはプログラ

    Javaジェネリクス再入門 - プログラマーの脳みそ
    yusuket
    yusuket 2010/11/09
    ジェネリクスっ
  • HotspotVMの圧縮oops

    原文 翻訳:中村 成洋 更新 2010/09/19 るとさんからのご指摘で誤訳を修正 更新 2010/09/18 nminoruさんと、Dominion525さんのご指摘で誤訳を修正 oopってなに? なんで圧縮する必要があるの? Hotspotの専門用語である「oop(ordinary object pointer:通常のオブジェクトポインタ)」はオブジェクトへの管理ポインタのことだ。 通常はネイティブなポインタサイズと同じになる。つまり、LP64の環境であれば64ビットになるということだ。 ILP32の環境では、最大ヒープサイズは4GBより幾分か少なくなる。これは多くのアプリケーションにとって不十分だ。 じゃあ、LP64の環境ではというと、ほとんどの場合のヒープは、対応するIPL32の環境と比べて約1.5倍になってしまう(どちらも同じ状況と仮定)。 管理ポインタのサイズが増大してしまう

  • Java Platform SE 6

    Java Is the Language of Possibilities Java is powering the innovation behind our digital world. Harness this potential with Java resources for student coders, hobbyists, developers, and IT leaders.

  • Infinite Mario Bros!

    Minecraft Explore your own unique world, survive the night, and create anything you can imagine!

    yusuket
    yusuket 2006/11/27
    割と軽い。あとでやる