この国では犬が

本と芝居とソフトウェア

ソフトウェア

プログラミング言語Java 第24章~25章

第24章 国際化とローカリゼーション 第25章 標準パッケージ を読みました。 第24章 国際化とローカリゼーション 恥ずかしながら、「ロケール」という言葉の正しい意味を初めて知りました。 ロケールは、「場所」を定義します。場所は、言語、文化、国などの…

プログラミング言語Java 第22章~23章

第22章 その他のユーティリティ 第23章 システムプログラミング を読みました。 Formatterについて割とすっきりまとめられているのは嬉しい。 Cのprintfの書式、未だに脳内で整理できてないので……。順番とか、すぐ忘れますよね。(Javaでは)こうですよ。 %[…

StrategyパターンはLSP違反ではない

長年の疑問がおおむね解消された気がするので、記念エントリ。 わかっている人には「ではない」て言われても「そりゃそうなのでは?」という感じだと思いますが、ご容赦ください。 デザインパターン(というか、オブジェクト指向設計)のあっさい理解が原因…

プログラミング言語Java 第20章~21章

第20章 I/Oパッケージ 第21章 コレクション を読みました。 ストリームというやつも、なかなか、というか、いといみじ*1。 実に40を超えるクラスが御登場あそばされる……。ゆえ、弁別できていません。 バイトと文字、入力と出力、バッファ、フィルタ、パイプ……

プログラミング言語Java 第18章~19章

第18章 パッケージ 第19章 ドキュメンテーションコメント を読みました。 この辺はいかにもJavaならではの話題なので、Javaプログラマに近づいた気がして嬉しい。 どちらの使い方も、まあひと通りはわかった気がします。運用の仕方はプロジェクト次第という…

プログラミング言語Java 第17章 ガーベッジコレクションとメモリ

を読みました。 雑感:finalizeは役に立たない finelizeメソッドは、オブジェクトを再び参照されるようにすることで、オブジェクトを復活させることができます。 ウケる。 GCについては、半端に手を出すものじゃないと思ってたけど、「メモリいっぱい使う前…

プログラミング言語Java 第16章 リフレクション

を読みました。 リフレクション周りのクラス図、複雑すぎでは……。14個のクラス・インタフェースが出てきて、継承・実現関係の矢印が17本も伸びている。 特にType周り(Type、ParameterizedType、GenericArrayType、TypeVariable<D>、WildCardType、Class)がや</d>…

プログラミング言語Java 第13章~15章

を読みました。 第13章 文字列と正規表現 第14章 スレッド 第15章 アノテーション いずれもC++03にはなかった機能で、ウキウキです。がぜん楽しくなってきた。(まあ正規表現とスレッドのサポートはC++11からはあるのですが、使ったことないため比較デキマセ…

プログラミング言語Java 第9章~第12章

を読みました。 第9章 演算子と式 第10章 制御の流れ 第11章 ジェネリック型 第12章 例外とアサーション 第11章以外は、細部を除けば思いのほかC++に近いなという印象。 そして、finallyはやっぱ慣れないなー。 第11章は、1回読んだ現時点では、3分の1もわか…

プログラミング言語Java 第8章 型としての基本データ型

あいだが開いてしまいました! 型としての基本データ型。 へんな章題……。 8.1 共通のフィールドとメソッド 8.1.1 生成 プリミティブ型のラッパークラスは、それが包み込んでいる基本データ型の値に対する不変オブジェクトを定義する。 そのクラスがラップす…

プログラミング言語Java 第7章 トークン、値、変数

7.1 字句要素 7.1.1 文字セット C++含め、多くの言語の文字コードはASCIIないしEBCDICだが、JavaはUTF-16。 7.1.2 コメント コメントのネストはできない。そして、プリプロセッサマクロがないので、# if 0も使えない。if (false) て……。まあ、IDEを使ってい…

プログラミング言語Java 第6章 列挙型

きたぜ、enum。 プログラミング言語によっては、enumは名前付き整数値の集まりに過ぎないですが、プログラミング言語Javaでは、特殊な種類のクラスであり、enumの個々の値を表すインスタンスを持っています。 それを待っていた! 6.1 簡単なenumの例 Javaのe…

プログラミング言語Java 第5章 ネストしたクラスとインタフェース

ネストしたクラスとインタフェース。 ネストした型は、(中略)お互いのすべてのメンバーにアクセスできる信頼関係を共有しています。 ここにも強力な信頼関係がある。 5.1 staticのネストした型 5.1.1 staticのネストしたクラス 5.1.2 ネストしたインタフェ…

プログラミング言語Java 第4章 インタフェース

ちょっとあいだがあきました。 インタフェース! オブジェクト指向設計の基本的な単位であるところの型、その純粋な型を定義するのがインタフェースとの由。 4.1 簡単なインタフェースの例 インタフェースは「できる(-able)こと」を表現することが多い。 …

プログラミング言語Java 第3章 クラスの拡張

面白くなってきた。第3章。 継承には2種類がある。 契約あるいは型の継承 実装の継承 2. だけが目的なら、継承ではなくコンポジションや転送を使用すべき。だと思う。 3.1 拡張したクラス Object←Attr←ColorAttrという例。 3.2 拡張したクラスのコンストラク…

プログラミング言語Java 第2章 クラスとオブジェクト

このペースだと読み終わるのに半年かかる。 やばい。 第2章。 興味深いプログラムは、ほとんどが、オブジェクトを生成して操作します。 いきなり言い切りっぷりがすごい。 2.1 簡単なクラス 2.1.1 クラスのメンバー クラスは3種類のメンバーを持つことができ…

プログラミング言語Java 第1章 はやめぐり

気を取り直して、プログラミング言語Javaを読む。 基本的にC++の経験をベースに読んで、気になったとことか気づいたことをつまんで記録していく感じにしようと思っている。 1.1 さあはじめよう クラス、インスタンス、オブジェクト、メンバといった用語につ…

Javaを学びます

C++プログラマのenkです。 Javaを学びます。 簡単に自己紹介。 C++経験は業務で2年ちょい、でもBoostもC++11も使ってないので、C++erを名乗るには程遠い。Javaは4年くらい前に結城浩さんの入門書(上下巻)を読んだっきりなので、実質入門者です。 というわ…