Java
動作確認した環境は、Mac OS X 10.10.1 (Yosemite)です。 前提事項 JDK9のビルドにはJDK8が必要です(ヨーグルトみたいですね)。これをBootstrupJDKと呼びます。そのため、JDK9をビルドする環境では、Javaを実行したらJDK8が動くようにしておきます。そうし…
金曜の夜にどう書くへ行ってきました。 オフラインリアルタイムどう書くとは 皆で共通のお題を好きなプログラミング言語で解いて、結果を見せ合う会です。 今回のお題は、「レッスンは何曜日?」です。 問題: http://d.hatena.ne.jp/torazuka/20140509/yhpg …
OOSC読書つづき。昨日は3章まで読んで、演習問題E3.1(p.82)について会話したので、そのメモを書きます。その節はありがとうございます m(_ _)m >身近な方 E3.1 プログラミング言語のモジュール性どのプログラミング言語でもいいから良く知っている言語の…
今日は3月の最終日曜日です。ヨーロッパではサマータイム(daylight saving time)がはじまりましたね。Java 8の新しいDate and Time APIの使い方を少し確認するために、タイムゾーンが異なる日付データの変換を、サマータイムという題材で試してみました。 …
月曜まで4連休でのんびりしていて書くのが遅くなりましたが、金曜日にJJUGのイベントに行ってきました。会場は青山のオラクルさんでした。Java8をさっそく使っていきたいと思います。今の仕事はC#なので、ちょっとした個人的な作業や、オフラインリアルタイ…
第19回どう書くの解答に関連して、リング状の数列を辿るイディオムが知りたいと言っていたところ、finalfusionさんから教えていただいたのでメモします。ありがとうございます! リングを辿るコード Before リングの最小値と最大値を行き来できず、ハードコー…
久しぶりにイベント(http://atnd.org/events/46348)開催前に参考問題を解けました。今回は、「回文基数」です! 問題: http://nabetani.sakura.ne.jp/hena/ord17scheherazade/ たとえば101, 234432のように、右から読んでも左から読んでも同じ数字の並びを…
土曜にJJUG CCC 2013 Fall(http://www.java-users.jp/?page_id=695)へ行ってきました。事前にお知らせするのを忘れていましたが、17:15〜18:05のセッションでJVMのソースコードリーディングについてお話ししましたので、発表資料を公開します。 R5-5 JVMコ…
Javaの弱参照について復習していたら、いつものようにひしだまさんのページに行き着きました。「使用失敗例」として紹介されている例が分かりやすかったです。少しだけコード片を書き足して、動きを確認しました。 参考 Java弱参照メモ(Hishidama's Java Wea…
書籍『世界でもっとも強力な9のアルゴリズム』の1つ目のアルゴリズムの章をチラ見しました。解説に使われた例が、どう書くの問題みたいだなぁと思ったので、試しにJavaで書いてみました。世界でもっとも強力な9のアルゴリズム作者: ジョン・マコーミック,長…
第9回のどう書くの問題のおかげで気づきましたが、EnumのstaticメソッドのvalueOfはベンリですね!文字を与えてEnumの値を取ってくるだけの基本的なメソッドです。なにをいまさらという感じですが……。このメソッドを使えば、入力文字(char)による処理の振…
先日のどう書くで、「Javaの配列に対する代入のバグ的挙動」というのが話題に出ました。何の話か気になったので調べたところ、ArrayStoreExceptionのことのようですね。こういうやつです。 import org.junit.Test; class Mother { } class Child extends Mot…
昨日は「第7回 オフラインリアルタイムどう書く」へ行ってきました。 オフラインリアルタイムどう書くとは 鍋谷さんが出してくださるお題を、参加者が好きなプログラミング言語で解いて楽しむ会です。 今回は、「のんびり座りたい」です! 問題と皆さんの解…
一般的なイディオムが分からず、悩んでいます。いくつか方法を挙げます。 方法1: (ソートしても問題なければ)binarySearchを使う char[] chars = new char[]{'a', 'b', 'c', 'd', 'e'}; char target = 'c'; Arrays.sort(chars); int index = Arrays.binary…
JavaのコンスタントプールのLong_info構造体について、わからんーとTwitterで言っていたところ、finalfusionさんに教えてもらって疑問が解けたので、メモしておきます。 クラスファイルのおさらい Javaクラスファイルのバイナリの仕様は、次のようになってい…
ここ最近、やる気がモガの森に家出していますが、先週金曜は「第5回 オフラインリアルタイムどう書く」へ行ってきました。今回は、大貧民です! 問題: http://nabetani.sakura.ne.jp/hena/ord5dahimi/ 有難いことに、初心者向けの部分問題が用意されていまし…
先日、メソッドの事前条件/事後条件の話をしていたところ、うちのししょーが「そもそもJavaのコントラクトの表現があまりに貧弱」と言っていました。たとえば、 引数の値の範囲チェックができない メソッドの呼び出し順を保証してくれない といった話です。…
Javaを使っているくせにあちこちでnullチェックをしていたところ、ヲイコラといわれてしまったのでメモです。(ご指摘ありがとうございます)nullが入ってくるようなコードを書かない、が大原則だそうです。理由は、安全のため。 nullで初期化しない null以…
昨日の続き。というより、訂正です。 メモ: JUnitのexpectedフィールドとRuleアノテーションで例外のテスト http://d.hatena.ne.jp/torazuka/20121002/junit JUnitのRuleアノテーションの使い方を知って喜んでいましたが、1つのテストメソッドの中では、1回…
次の記事を読んで、初めて知ったのでメモ。 Testing Custom Exceptions w/ JUnit's ExpectedException and @Rule http://www.ensor.cc/2012/09/testing-custom-exceptions-w-junits.html このようなテスト対象のコードがあるとします。 import java.util.Arr…
こうかな。苦しいな。誰か教えてくださり。総称型を使えばもうちょいそれらしく(?)なるんかも。 import static org.junit.Assert.assertEquals; import org.junit.Test; public class Inject { interface Proc { int execute(final int n, final int m); …
先日書いたスタックマシンちゃんを少し修正しました。 (前回の日記)四則演算をするスタックマシン http://d.hatena.ne.jp/torazuka/20120829/stackmachine ちょっとした改良をするだけのつもりでしたが、恥ずかしいミスを見つけたので、メモを残すことにし…
先週の水曜日、「JJUG Night Seminar -Java VM & LT & 納涼会-」へ行ってきました。当日は、ほろ酔いで帰ってきて、スタックマシンを書いて遊んだら満足して寝てしまったので、改めてセッションのメモと感想を書いておきます。# パソコンを忘れて行ったこと…
さくらばさんのマカロンスタックの写真を見ていて、ふと書きたくなったので。逆ポーランド記法を入力として四則演算を行い、結果を返します。(追記: 2012/9/6) この記事のコードには、誤りが2箇所あります(1:除算のオペランドが逆、2:テストデータは"14+3…
「夏休みバイナリ入門 2012 第2日目」に参加してきました。第1日目に引き続き、主催の七誌さん、スタッフの皆さん、どうもありがとうございました! (第1日目)Javaのクラスファイルの読み方 http://d.hatena.ne.jp/torazuka/20120820/cafebabe やったこと …
日曜に、「夏休みバイナリ入門 2012 第1日目」に参加してきました。色々と初心者丸出しな質問をしましたが、詳しい方が丁寧に教えてくださったおかげで、疑問を解決しながら進むことができました。ありがとうございます。備忘のために、学習したことをメモし…
前回の「疑問メモ: logbackで同一レベルの複数ログを異なる出力先に出したい」の解決編、「同一レベルのログを用途に応じて出し分ける」話の続きです。師匠から参考になる情報をいただき、無事実現できました。ありがとうございます。JaninoEventEvaluator …
(追記) この記事の解決編はこちら。http://d.hatena.ne.jp/torazuka/20120619/logbacklogback(http://logback.qos.ch/)でやりたいことができなくて困っているので、ちょっと整理します。logbackは、Javaのロギングライブラリです。次のログレベルがあり…
休暇を取って、JJUGのクロスコミュニティカンファレンスへ行ってきました。いろいろ聴いて、印象に残ったのは3つのセッションです。 オラクルの中の人によるJCPのお話 Javaの標準化を誰がどうやって実施しているかという解説でした。初めて知ったことが多か…
JavaのCollection周りのクラスを読み直していて感じたことのメモというか雑談です。Javaのjava.util.Collectionインタフェースには、toArrayというメソッドがあります。toArrayメソッドは、コレクションの実装クラスのインスタンスを、配列に変換して返しま…