Java
http://qiita.com/TakahikoKawasaki/items/037320792092bb5a1f62 単純に疑問に思ったことなど。 Androidの非互換性 従来Javaと非互換な実装で、従来Javaのエコシステムが破壊されてんの?私が知らないだけで、今時のJavaライブラリは#ifdefみたいに、VM実装…
ref:http://d.hatena.ne.jp/kaiseh/20081114/1226665036 それ、なんて Integer#numberOfLeadingZeros ? ドキュメントをみると、コメントに出てくる「Hacker's Delight」(邦題:ハッカーのたのしみ)をもとに実装しているらしい。
equals について補足。Java ではインスタンスの比較に == か equals を用いるわけだけど、どちらもデフォルトでは参照の同値性、つまり同一性を比較する。すなわち、"a" == "a" は常に false を返す。また、new Object().equals(new Object()) も、常に fals…
ref:http://www.kt.rim.or.jp/~kbk/zakkicho/08/zakkicho0803b.html#D20080317-5 Sleep に Apache Velocity ですね。 Sleep は Perl と Objective-C の影響を受けた文法だとか。よく知らないけど、それなりに有名ではないかと。 Apache Velocity はありてい…
まだ続くのか? 変数宣言の変更コストについて話をしているんじゃないです。変数の型を抽象型で指定すれば実装クラスを変更してもよいことが明確になりますが、型を具象クラスで指定すればその利点がなくなることを問題にしています。これはローカル変数に限…
どうでもいいけど。 速度よりもメモリ効率が優先したくなったら ArrayList より LinkedList のほうがメモリ効率が良いなんてことは多分ない。 STL の vector と list なら list のほうが効率が良いこともあるかもしれないけど。 なぜかはちょっと考えてみる…
微妙なことかもしれませんが、ローカル変数を抽象型で宣言する利点があります。 例えば、 List<String> list = new ArraysList<String>(); 以下色々な処理として、プログラムを書いていけば、速度よりもメモリ効率が優先したくなったら List<String> list = new LinkedList<String>(); 以下色</string></string></string></string>…
ref:http://d.hatena.ne.jp/kwatch/20080309/1205022466 メソッド内で直接クラス名を指定して new しているのに、型の抽象/具象で結合の疎蜜を論じるのは無意味ではないかと思う。 実のところをいうと、メソッド内で生成したローカル変数をわざわざダウンキ…
Java の配列の要素数、インデックスは int じゃないとだめなので、最大で 2^31-1 個の配列しか取れない。これってそろそろ深刻な問題になっているような気がするのであるが、あんまり聞かないなぁ。一応、Bug Database にはのっているけど、Vote が少ないし…
そういえばこの間、Vector と ArrayList のパフォーマンスがどうのという話が出たので、Japex を使って計測してみた。 ref:http://odz.sakura.ne.jp/benchmark/list/ add はあんまり変わらないけど、get は Vector のほうが4倍遅い。まぁ、排他制御のせいだ…
ref:http://cappuccino.jp/keisuken/logbook/20080304.html#p01 ref:http://d.hatena.ne.jp/lethevert/20080305/p2 ref:http://cappuccino.jp/keisuken/logbook/20080307.html#p03 メソッドの引数は戻り値はともかく、ローカル変数はわざわざ抽象的な型で宣…
ref:http://www.algo.ics.tut.ac.jp/~yusuke_abe/html/2008-02-19.html#2008-02-19-1 Project Euler をやっている人は素数関係の部分をライブラリ化するに違いないと思う今日この頃ですが、エラトステネスの篩だろ、常識的普通に考えて。 % time java Prime …
ref:http://d.hatena.ne.jp/morchin/20080221/p1 あぁ、書き方が悪っかったですね。cast が入るのはメソッドを呼ぶ側であって、実装側ではないです。 例えばこんなの。 public class Foo { public static void main(String[] args) throws Exception { Metho…
Hadoop はドキュメントが少なすぎ。ソフトウェア自体は良くできているっぽいのにもったいない。 まぁ、ということで、Project Euler の Problem 160 を解くプログラムでも。マジックナンバー多すぎだけど気にしない。まぁ、examples の PiEstimater でも読ん…
ref:http://d.hatena.ne.jp/morchin/20080220#p1 Generics で Duck type は無理です。 基本的には kinaba さんが書かれている通りで。 Dのテンプレートは、仕組み的には C++ のそれと全く同じです。引数の違う実体は全部別のインスタンスとして、コンパイル…
いまさら Java のブロックローカルなクラスは無名でなくてもいいことを知った。おおよそ 10 年もつかっているのに! public class Foo { public static void main(String[] args) { Int[] ints = new Int[] { func(1), func2(2), func3(3) }; for (int i = 0…
ref:Java BlockingQueueで遊ぶ:パイプラインごっこ - 檜山正幸のキマイラ飼育記 Java での Pipeline 実装としては commons-pipeline というのがあって結構いいんだけど、なかなか Sandbox からあがってこないんだよなぁ。
ref:interfaceのメソッドって - mono-hateの日記 そいや、public つけるのは推奨されないんだっけ?私はつけているなぁ。えーと、Java Language Specification でも見てみるか。 Every method declaration in the body of an interface is implicitly public…
そういえば、というか。 話をよーく聞いてみると、クラスとオブジェクトの区別がついていなかったり、継承と集約(とコンポジション)の区別がついていなかったりして、「もっと多態性を活かしたクラス設計にしなさい」と言うと、「多態性ってなんですか?」と…
昨日のネタに関して少し思いついたことを。 配列には使えないけど、インターフェースを宣言している場合には java.lang.reflect.Proxy を使えば Dynamic Proxy を生成できる。そうすると動的に copy メソッドを追加される。 public interface Copyable<E> { E c</e>…
Java Web Start って知名度低いのね。J2SE 1.4 の頃から Sun の JRE には同梱されているのになぁ。Sun の JRE がインストールされている Windows なら「フォルダオプション」->「ファイルの種類」で .jnlp に Java Web Start Launcher が関連付けられている…
ref:予定は未定Blog版 - 配列のclone へぇ、配列の clone メソッドは getMethod では取得できないんだ。初めて知った。配列の特殊扱いっぷりがわかって面白い。 で、実は clone は Object に protected メソッドとして定義されているからそもそも毎回 getMet…
ref:http://d.hatena.ne.jp/habuakihiro/20070925#1190701456 まじで? ためしに Google で検索してみると上位に出てくるのは軒並みアジア圏の言語で書かれたページばっかりだけど。AltaVista でも同じく。 むぅ、前提無しに使って意味が通じるほど市民権を…
ref:http://cappuccino.jp/keisuken/logbook/20070903.html#p02 ref:http://arton.no-ip.info/diary/20070903.html#p01 Java の標準のライブラリは妙にプリミティブな上に、なにかユーティリティ的なクラスがあまり用意されていないというのもあって、Common…
ref:lethevert is a programmer - Ruby: えっと・・・これはネタですか? まつもとさんのまつもとさんの紹介しているコードがあれすぎる、というのは同意なんですけど。 String readData(File file, String default_value) { BufferedReader in = null; try …
それなんて Maybe、 とか思った。 いや、Haskell では String か Nothing、な型は Maybe String で表せるのである。で、パターンマッチしないと String として扱えないという仕組み。
ref:http://d.hatena.ne.jp/bleis-tift/20070808/1186564456 ref:http://d.hatena.ne.jp/bleis-tift/20070808/1186558404 JDBC でのクエリの結果は Collection で返してくれというのは分からないでもないけども、クエリの結果を Collection にしてしまうとそ…
昨日の話の補足。 なんとなく、PMD や Checkstyle ではどうなるんだろう、と思ったので Eclipse Plugin で確認してみた。 PMD strigValue.equals("hoge") だと "Position literals first in String comparisons."(文字列の比較ではリテラルを最初に置け) と …
Javaであって、英語ではないのだから、英語だと思って読み下して違和感が・・・なんてナンセンスじゃない?プログラミング言語を英語に似せたいのなら、COBOLを使うべきだと思います。 まぁ、もっともなんですけど、あれはあくまで比喩で、主語(メッセージレ…
正直、 if (stringValue.equals("hoge")) と if ("hoge".equals(stringValue)) に気持ち悪さの差違はないと(個人的には)思う。 まーた、あれな話題で局所的に盛り上がっている。面白い。 さて、普通に英文に書き下したとして、 if x equals 10 then ... と…