JJUG CCC 2014 Spring に行ってきました!最初はフルに参加すると時間が長くてしんどいかなーと思ったんですが、そんなのが気にならないぐらい感覚的に短い一日でした。 ブログや本で読むよりも濃くて新しい話が聞けてとても楽しかったです。 (個人的に、JV…
ついに Java SE 8 がリリースされました! そこで、早速ダウンロードして、Java 8 のソースコード(src.zip)を Java 7と比較してみたところ、公表はされていないのですが、ちょこちょことリファクタリングされていることがわかりました。そこで、そのうち Str…
Java8 で String クラスに、static な join メソッドが追加されていました。 使い方はとってもシンプル。 String message = String.join("-", "Java", "is", "cool"); // message には "Java-is-cool" が代入されています。 引数に、任意の数の CharSequence…
自分はエンジニアであり、プロでありたいと思っているので、定期的に技術書を読むように心がけています。読むのと理解するのが遅いため冊数は少なめですが、それでも少しでも身につくものがあればと思って読んでいます。 エンジニアとしてプロとして、今年読…
2013年9月10日に出た Java 7 Update 40 は Limited Update (セキュリティ修正を含まないバグ修正と新機能のリリース) でした。 そのリリースノートを見てみると、いくつか面白い(?)バグがあったので、調べてみました。 EnumMap: クローン時のバグ修正 En…
C# の本を読んでいたら、クラスのフィールドの初期化順序が Java と違っていてびっくりしました。 Java のフィールド初期化順序 Java でインスタンスを作成した場合、親クラスのフィールド初期化 → 親クラスのコンストラクタ実行 → 子クラスのフィールド初期…
Java で配列を生成する際に、どこまで大きい要素数を指定できるかは、Java VMの実装によるみたいです。 なので、Oracle の Java VM ではメモリが十分にあっても、次のコードは必ずエラーになります。 int[] max = new int[Integer.MAX_VALUE]; じゃあ、メモ…
社内勉強会で使った資料を、SildeShare にアップしました。 堅苦しく話しても興味を持ってもらえないかなーと思ったので、ちょいちょいネタを仕込んでいます。 本番中、そのネタの部分に突っ込みがもらえたので、個人的には大満足です。 XKeymacsの話 from Y…
Excel に、eclipse や Visual Studio からソースコードをコピペした場合、シンタックスハイライトが消えた状態で貼りつけられてしまいます。 読みにくいですね。 そんなときは、一度 Word に貼りつけてから Excel へコピー&ペースト! これで、シンタックス…
Wikipedia の本文データは、XML形式で公開されています。 (詳しい内容は、Wikipediaのダウンロードできるデータファイル一覧 | mwSoft が参考になります) これをデータベースに投入する手順として、xml2sqlを使う方法がよく紹介されていますが、Wikimedia …
Excel マクロ(VBA)で Redmine の情報を取得して、表にまとめる方法を考えてみました。 よくあるかもしれない質問 Q. なんで Excel でやろうと思った? A. そこに Excel があったから。 手っ取り早く試してみたい方 サンプルを置いておいたので、こちらをご利…
null をフラグとして使うのは、やめた方がいいと思います。 null は、ただ変数が初期化されていないことを表しているだけです。 この意味以外で、null を使わない方がいいと思います。 null をフラグとして使う 「null をフラグとして使う」というのは、「nu…
ひとつ前の記事で紹介した Java SE 7 and JDK 7 Compatibility - Oracle のなかに、面白い非互換性がありました。 Synopsis: Improved Exception Handling May Cause source Incompatibility 概要: 例外ハンドリングの改善が原因のソース非互換性 Java SE 7 …
Java6 のサポート期限が今月末(2013年2月)で切れます。 その前に、Java6 から Java7 への移行をしなくてはなりません。 そこで参考になるのがこのページ。 Java SE 7 and JDK 7 Compatibility - Oracle 基本的に Java は上位互換があるので、 Java6 と Jav…
Java と C# で、文字列と null を結合したときの結果が違います。 // Java System.out.println("abc," + null); // C# Console.WriteLine("abc," + null); Java の場合、結果は「 abc,null 」です。 C# の場合、結果は「 abc, 」です。 文字列と null を結合…
Effective Java の「項目66 共有された可変データへのアクセスを同期する」で、活性エラー*1について記載があります。 この現象が起こった時の x86 アセンブリコードを見てみました。 なお、アセンブリコードの出力は以下を参考にさせていただきました*2。 J…
自分はエンジニアであり、プロでありたいと思っているので、定期的に技術書を読むように心がけています。読むのと理解するのが遅いため冊数は少なめですが、それでも少しでも身につくものがあればと思って読んでいます。 エンジニアとしてプロとして、今年読…
2012年8月14日に登場した Java SE 7 Update6 で、またしても String クラスがリファクタリングされていました! そこで、そこがどういう風に変わったのかを詳しく調べてみました。 フィールド変数 count と offset が削除されました Stringクラスにあった4つ…
Excelインクリメンタルサーチ を作るにあたって、できるだけ単体テストを書くように心がけています。 ただ、ブラウザの単体テストには Selenium があるのですが、Excelマクロ (VBA, Visual Basic for Applications) には適当なツールがありません。そこで、…
前回の記事(「Java6 と Java7 の挙動の違い(バグ?)」)に、id:expf さんからコメントをいただきました。 おそらく、最初のprintStackTrace呼び出しではStackOverflowErrorが出ていると思います。 その後、1つ前のTest.mainがcatch→printStackTrace呼び…
Java6 と Java7 で挙動が違ったところがありました。 再現コードは単純で…。 public class Test { public static void main(String[] args) { try { main(args); } catch (Error e) { e.printStackTrace(); } } } 無限再帰するだけのコードです。 最終的には…
大好評だったExcelインクリメンタルサーチを、大幅にバージョンアップしました! Excelインクリメンタルサーチ Excelの表を、すごく検索しやすくするツールです。 (QA表, 不具合表... etc) サンプルはこちら! このツールを使うと、Excelの表をブラウザ上…
各所で、Java SE API(JavaDoc)日本語訳のオンライン公開終了が話題になっています。 rip-sun.com - Togetter 新しい Java SE API リファレンスの入手先について « 寺田 佳央 – Yoshio Terada しかし、今のところ以下のURLからオンラインで読めます(2012/03/…
この前、ふと Object クラスの JavaDoc を見ていたら、こんな記述がありました。 できるかぎり、Object クラスで定義される hashCode メソッドは、異なるオブジェクトについては異なる整数値を返します。 Oracle Technology Network for Java Developers | O…
東日本大震災から一年が経ちました。 しかし、それ以降も余震が続いています。 先日も、茨城県沖で震度5弱の地震が起きました。 地震は減っているのでしょうか。 最近1年の地震回数 気象庁の震度データベース検索から、過去1年分*1を取得、グラフ化してみま…
この前、「最も長く続くしりとり何か」という問題は再帰で解けることに気づきました。 そして、再帰なら Java7 の Fork/Join Framework です! というわけで、書いてみました! しりとりのアルゴリズム 「最も長いしりとりは何か」という問題は、再帰を使っ…
自分はエンジニアであり、プロでありたいと思っているので、定期的に技術書を読むように心がけています。読むのと理解するのが遅いため冊数は少なめですが、それでも少しでも身につくものがあればと思って読んでいます。 そんな自分が、今年一年でどんな本を…
先日のJava7 で ArrayList の foreach が速くなった理由を調べてみました。 - 地平線に行くについて、お詫びと訂正です。 上記の記事の中で、「ArrayList の foreach文(拡張for文)がJava6 → Java7 で約2.5倍速くなっていました。」という実験結果を記載し…
Java7でList/TreeMap/TreeSetのIteratorがかなり早くなって、 ArrayListのforeach文(拡張for文)も、普通のfor文より早くなりました。 コレクションの細かい話、だが面白い! - 谷本 心 in せろ部屋 そうなんですか!? …と思って試してみたところ、ArrayLi…
C#のLINQメソッドは超便利!!、なんですが…肝心のAPIがわかりづらいです。 そこで、種類ごとにまとめて、簡単なサンプルを書いてみました。 結果の表示に、独自の拡張メソッド ToResult(this IEnumerable) を使用しています。このメソッドは、本文の最後に記…