Java

「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インストールできた。 ただ、手動でインストールする場合、普通はどこのディレクトリにインストールするんだろう。まあいいか。 …

LinuxにJDKをインストール (したかった)

とりあえずまずJDKをインストールしようと思ったのだけど、インストールってどうやるんだ! 調べると、debianの場合aptというコマンドで行うらしいということが分かってきたのだけど、たまたま俺が入れた4.0(このバージョンがetchと呼ばれているやつらしい)…

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で動いているのか取得する方法はある…

ファイルを作成

Eclipseでファイルを生成するコードを動かすと、コードがあるパッケージのフォルダではなくプロジェクトフォルダにファイルが生成される。さっきの実行ファイルのことから考えれば当たり前?パッケージの上が実行ディレクトリなんだな。

パッケージの中に入れたクラスの実行

パッケージの中に入れたクラスをコマンドラインから実行するには、パッケージとなっているフォルダのひ上に移動して、"java パッケージ名.クラス名"で実行。パッケージフォルダの上でコンパイルする時は"javac パッケージ名/ファイル名"。ファイル名は"*.jav…

正規表現

Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle 正規表現を書いたPatternクラスと比較文字列から、Matcherクラスを作る。後はMatcherクラスにいろいろ尋ねる。このMatcherクラスというのがまだよく分からないんだけど…

ネットアクセス

URLクラスを使う。 ファイルアクセスの場合と比較。 String filename="ファイル名"; BufferedReader br = new BufferedReader(new FileReader(filename)); Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle BufferedRea…

タブの設定

「ウィンドウ」メニュー - 「設定」 - 「Java/コードスタイル/フォーマッター」でプロファイルを「編集」。「インデント」タブの中にタブをスペースに置き換える設定がある。深い。

パッケージの追加

すでにコードがあるパッケージをプロジェクトに追加するのはどうやるんだろうといろいろやっていたら、プロジェクトフォルダの中にいれて、プロジェクトを「更新」したら自動的に追加された。

例外

try/catch節は使わなくてもいいのかと思っていたら、例外の種類によっては必須だった。またその場合、メソッド定義に何の例外を投げるか書かないといけない。

インターフェースクラス その2

インターフェースクラスはインターフェース定義専用のただの仮想関数かと思ったけどそうじゃないようだ。Javaでは多重継承ができないけど、実はインターフェースクラスによりインターフェースだけなら多重継承ができる。