2013-07-01から1ヶ月間の記事一覧

マレーシアで開発合宿がしたい!

来週の火曜日からギークハウスのメンバー6人くらいでマレーシア旅行に行ってくる。もともとは開発合宿という名目だったのだが人が集まらなくて普通の旅行になった。とはいえ、本当に開発合宿やったら面白そうなので行く前に調べたことをまとめておく。 飛行…

Clojureのバイトコード

Clojureを実行するときって、どういうバイトコードになっているんだろう? クラスファイルを作る まず、クラスファイルを出力するために:gen-classを付加する。 (ns clj.core (:gen-class)) (defn fuga [x y] (+ x y)) (defn hoge [] (fuga 10 20)) $ cd [pr…

JVMの関数はどのようにして呼び出されるか

関数が起動するとフレームというものが作成される。このフレームは、関数が終了したとき(正常リターン、例外に関わらず)破棄される。このフレームは以下の3つを持つ。 ローカル変数 オペランド・スタック コンスタント・プール 例 関数hogeはint型の引数を3…

lookupswitchとtableswitchの違い

昨日に引き続きJavaのswitchをコンパイルしたときに使われるtableswitch命令とlookupswitch命令をそれぞれ見ていく。switch難しいです>< tableswitch命令 tableswitch命令は、switchにおける各ケースをターゲット・オフセットのテーブルに対するインデック…

Java7のswitch文から得られるバイトコードの考察

仕事ではJava6しか使ってないが(ごめんなさい)、Java7に関する以下の文章を読んでいたらswitch文というものがよく分からなくなった。 Java SE 7 で導入された言語機能の 1 つは、switch 文の判断基準の対象としてプリミティブ型や列挙型と同様に文字列型の変…

eclipseでプラグインが認識されない場合のチェックリスト

eclipseのプラグインを開発している際、デバッグ実行している時はいいのだが実際にjarにしてフォルダに格納した時にプラグインを認識しないことがある。そういうときのチェック方針を適当にメモ。 1. jarファイルが正しい位置に格納されているか? eclipseプ…