言語

「ふつうのHaskellプログラミング」 青木峰郎 著

関数自体を扱うソフトを作りたかったのと、最近名前をよく聞くなあということで、ちょっと参考に読んでみた。最初はネットで少し調べたのだけど、なんだか数学の話が出てきて良く分からなかったので、とりあえず理屈は置いておいて言語を調べてみる。 特徴は…

「Effective C++ 改訂第2版」 スコット・メイヤーズ 著

前に読んだ時よりだいぶ理解できたのだとは思う。でも、前にどの程度「理解できなかった」のかをすでに忘れていて、理解できたという実感は今回もあまりない。とは言え、いろいろ発見があって得るものはあった。 印象に残ったところを少し。本題とは少しずれ…

コンテナの初期化

最初からコンテナに入れたい初期値となるデータがある場合はどうやるのが効率がいいんだろう。コンストラクタの定義を見ると、値を指定した場合すべての要素が同じその値で初期化されてしまうようだ。別のコンテナからコピーしてくる方法はあるようだけど、…

「詳説C++」 大城正典 著

いやー、時間がかかった。他の本の2,3倍時間がかかったかもしれない。分からないまま流し読みで済ませたところも結構ある。それでも読んだ価値があったような気がする。これ読んでからちょこっと「Effective C++」の気になる箇所を見たらすんなり理解できる…

初期化リスト

初期化リストで基底クラスのprotectedメンバを直接初期化しようとしたらできなかった。それはなんでなんだろうなあ。もちろんコンストラクタの中でなら値を設定できる。基底クラスに引数つきコンストラクタを作って初期化リストではそれを使うことでメンバを…

リファレンス

「C++ではリファレンスが導入されたのでそれを積極的に使おう」という話だけ知っていたので、どんな時でもガンガンとリファレンスを使えばいいのかと思っていたけど、そうもいかないという事が分かってきた。 リファレンスは別の変数なり関数なりを表す。実…

C++が前よりは分かってきた

C++が前よりは分かってきた。文法を知っているということと使えることとは違うなあと実感している。今までも知っていた断片的な知識がやっと有機的に結びついてきた。というのはちょっと大げさな言い方かもしれないけど、気づいてみればなぜ今まで気がつかな…

C++のことを全然分かってなかった

C++奥が深い! 難しい! 今までだいたいCの延長で決まりきった機能しか使わなかったので、こんなにC++が難しいとは気付かなかった。本を読んだら知らなかったことばかりだ! いや、たぶんどれも一度くらいは目にしているはずだけど、コードを書いたときにた…

C++再び

C++も大して理解しないままJavaをやり始めてしまったので、最近すっかりC++の方を忘れ始めている。俺の状況的にはそれは本末転倒なので再びC++の本を読み出したのだけど、やっぱり元々よく分かってなかったなあというのをひしひしと感じる。まず「Effective …

「Javaコレクションフレームワーク」 田中良浩/小山博史 著

まだListとかMapとかSetとか、ごっちゃになってしまう。説明を読むと、ああ、そうだと思うんだけど、しばらくするとまた違いがあいまいになってしまう。 まあ、だからこそこういう本は役に立ちそう。 簡単なソートなら自分で作らなくてもComparatorというの…

SystemのProperty

Javaのコードの中で、MySQLのデータベースに接続するときにEUC_JPを指定しないと日本語が正常に扱えない(Linuxの場合)。どこかに何かを設定すれば、コードの中で文字コードを指定しなくてもいいのかもしれないけど、今のところまだその方法は分からない。 と…

javacがいつの間にかSUNのjavacでなくなっていた

久しぶりにJavaのコードをLinuxでコンパイルしようと思ったらエラーが出た。調べてみるとjvacがSUNのjavacではなくて、Eclipse Java Compilerとかいうのになってた。Eclipse Java Compilerとかいうのは1.5.0には対応してないみたいだ。 http://debian.fam.cx…

「Javaでなぜつくるのか」 米持幸寿 著

Javaの利点が並べられているだけで、期待した内容とはちょっと違っていた。新しく作られる言語はみんな何かしら利点を持っている。それでも広まっていく言語と淘汰される言語がある。俺が知りたかったのはなぜJavaだったのかということなんだけど、そこがぴ…

「Java/Eclipseソフトウェアテスト・チュートリアルブック」 安藤利和 著

テストするときにはこういう事に気を付けようというのはとても分かるんだけど、なかなか実践が伴わない。どうしてもちょっとした変更なんかだとテストを行わずに済ませてしまって、そうこうするうちにそういう状況が積み重なって、いざテストしようと思った…

「Javaで初等数学のグラフを描く本」 梅村哲也 著

最初に比例、一次方程式、二次方程式などの数式の説明、次にJava、Swingの説明、あとは比例や一次関数などをグラフに書くコード。とてもシンプルな構成なのだけど、余計なことが一切書いてなくてとても理解しやすい。わざわざ本にする内容かなという気がしな…

「はじめてのJavaフレームワーク」 岡田賢治 著

Javaについて調べていると頻繁にTomcatとかStrutsとか出てくるので、どんなもんなんだろうとちょっと読んでみた。コード部分は適当に流し読みだったので、後半はほとんど理解できず。 HibernateというO/Rマッピングツールはそのうち使えるかもしれない。O/R…

LinuxにJDKをaptでインストール

いまだにLinuxを良く知らないままどうにかJDKも使ってるわけだけど、JDKはaptでインストールできることが分かった。 http://debian.fam.cx/index.php?Software%2FJava#content_1_3 前もこんな感じのページはどこかで見たんだけど、Synapticマネージャーで見…

BufferedReaderのreadLine()で改行のみの行を読む

BufferedReaderクラスのreadLine()で改行だけの行を読むと、戻り値はnullではない。かと言って戻り値の文字列.charAt(0)を実行すると例外が発生する。改行コードは入らない。戻り値.length()を実行すると0になる。 Oracle Technology Network for Java Devel…

文字列と数値の変換

数値を文字列に変換するときはValueOf()を使う。 Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle 文字列を数値型に変えるときはStringクラスではなくIntegerクラスのValueOf()とかparseInt()とかを使う。 Oracle Tech…

メソッドの中で引数の中身を変える

ある関数に引数で何かを渡して、その中で引数の中身を変えたい場合、Cだったらポインタで渡す。逆に言えば、引数の型がポインタだったら、その関数の中で引数の中が変わるかも、という予想がつく。だけど、Javaの場合は基本型以外はすべてポインタ(らしきも…

コード自動生成

うーん、Visual Editorを使うといろんなコードを自動的に作ってくれるのはいいんだけど、できたコードが何を意味してるのかよく分からないなあ。まず自力でSwingのコードを書いた方がいいかなあ。

syntheticクラス?

Eclipseがクラス名にドル記号が付いた名前のクラスファイルを作成した。Eclipseでは実行できるけどDOS画面からは実行できない。これはなんだろう。 クラス syntheticクラス? って?

「Eclipse3+Visual EditorによるJavaプログラミング」 プロジェクトウィルカ 著

この本はかなり具体的な操作方法の記述が多い。なので、一通り読んだけど実際には試していないので、「読み終わった」とは言えないかもしれない。 ちょうどやりたいと思っていたGUIとデータベースの扱い方が具体的に書いてあるので、どちらもほとんど知らな…

Windowsの上のVMwareの上のLinuxの上のJavaVMの上のJavaアプリ

Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle ここに書いてあるとおりに今日こそJDKインストールできた。 ただ、手動でインストールする場合、普通はどこのディレクトリにインストールするんだろう。まあいいか。 …

CygwinとJava

CygwinでJavaを動かすと、WindowsでインストールしたJavaが動く。CygwinのLANGをEUCに設定すればJavaのデフォルトの文字コードもEUCになるのかなあと思ったのだけど期待通りにいかない。Cygwinから動かしたJavaで作ったファイルがWindowsで見えてしまう。Jav…

StringBufferとStringBuilder

Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle 単一のスレッドで動かす場合はStringBufferよりStringBuilderの方が高速らしい…

文字列から指定した文字列を削除する

Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle StringBufferクラスにはdelete(int,int)というメソッドはあるけど、これは何文字目から何文字目を削除するという指定の仕方をする。delete(String)という指定の仕方は…

例外、再び

例外を受け取らないといけないというのは結構面倒な場合があるなあ。try節がらみの処理を分割しようとした時に、あっちにもこっちにもtryを付けないといけなくなったりする。その辺のいい分割の仕方の感覚がまだつかめない。

例外と戻り値

try節の中にreturnを書いても、「return文がありません」というエラーが出る。でもエラーがなければreturn文に行くし、エラーが発生すれば戻り値に関係なくcatch節に行くのに…… ああ、そうか。勘違いした。エラーを上に投げないでそこでcatchしてしまうから…

プリプロセッサがない

Javaには#defineとか#ifdefなどのプリプロセッサがない。うーん、CPUだのOSだのそういう環境で何か動作を変えるということはできるのかな。というか、そういう発想がJavaでは邪道? そもそもLinuxで動いているのかWindowsで動いているのか取得する方法はある…