Java

コード検索エンジン

実装中にAPIの使い方に迷ったりするとサンプルコードがほしくなる。そんなときにはコード検索エンジンが便利だ。様々なオープンソースプロジェクトのコードを検索できるため、秀逸なコードやアルゴリズムを参照することができる。このコード検索エンジンは幾…

static イニシャライザーとコンストラクターの限界

テキストファイルにある大量のデータを解析したかったがファイルの読み込みが面倒だったので、データをJavaプログラム内にコピペした。こんな感じ。 static int[] data = { 234, 222, 123, … }; こんなエラーがでた。 「static イニシャライザーのコードが 6…

EclipseよりJDKクラスのソースコードを参照する方法

最初にJDKのソースコードを入手します。JavaSEをインストールしている場合には、JavaSEインストールディレクトリにsrc.zipというファイル名でソースコードがあります。 なければ、Java SE - Downloads | Oracle Technology Network | Oracleからソースコード…

Effective Java プログラミング言語ガイド (単行本)

Javaの文法を覚えた程度の初心者が次に読むべきJava言語の本。Effective Java プログラミング言語ガイド作者: Joshua Bloch,ジョシュア・ブロック,柴田芳樹出版社/メーカー: ピアソン・エデュケーション発売日: 2001/12/03メディア: 単行本購入: 5人 クリッ…

0埋めや桁数指定などフォーマット指定の文字列を取得する

0埋めの文字列に変換する。 String.format("%04d", num); 数値を16進数で表現する。 String.format("%x", num); 小数点の桁数を指定する。 String.format("%8.3f", num); 詳しくはAPIを参照のこと Oracle Technology Network for Java Developers | Oracle T…

パフォーマンス問題の原因トップ10と解決策

Top Ten Performance Problems and Their Solutions - DZone Java 一部だけ和訳。10) GregorianCalendar このクラスは遅く、しかもsynchronizedされていない。もし可能ならばGragorianCalendarの使用をやめ、 Joda-Time - Java date and time API - Homeを使…

Eclipseのメモリ不足対策

eclipse.exeと同じディレクトリにあるeclipise.iniを下記のように設定し、Eclipseを再起動する。 -vmargs -server -Xms256m -Xmx512m -XX:+UseLargePages -XX:+UseParallelGC -XX:PermSize=32m -XX:MaxPermSize=256m -XX:ParallelGCThreads=30

intやlongの最大値、最小値

intやlongなどの保持可能な範囲はラッパークラスにて取得できる。 System.out.println(Integer.MAX_VALUE); System.out.println(Integer.MIN_VALUE);System.out.println(Long.MAX_VALUE); System.out.println(Long.MIN_VALUE); 実行結果はこちら 2147483647 …

仕事で使うRubyについて

エントリーを誤って削除してしまったが、復活できた。 日本Ruby会議2008の最首氏は「アジャイル開発がしやすい、プロトタイピングが容易」「学習曲線が早い」ことを挙げているが、「学習曲線」については違和感がある。 10年後でも「つまらない」と言われな…

コードレビューを成功させる10の心得

いくつかの事に気をつけてコードレビューを実施するだけで、効率的にコードの品質を高めることができる。効果的なコードレビュー方法をまとめてみた。 (1)複数の有識者でレビューを実施する レビューアも人間なのでレビューが面倒になってしまうときもあ…

「〜は使用すべきではありません。」非推奨メソッド(クラス)を使用した場合の警告を解決する方法

@Deprecatedアノテーションによって非推奨とされたクラスやメソッドなどを使用すると「〜は使用すべきではありません。」と警告される。 通常であれば、非推奨となった理由を理解し、推奨される方法での実装をすべきだが、回避する必要がない時や回避不可能…

Javadoc生成時の文字化けを解消する方法

Javadocに下記のオプションをつけることで文字化けを解消できる。 charset UTF-8 -docencoding UTF-8 オプションの意味は「-charset」がHTML文字セット。「-encoding」がソースファイルのエンコーディング名。EclipseでJavadocオプションを指定するには、メ…

ブレイクポイントを条件指定で中断させる

通常のブレイクポイントでは実行行に来るたびに中断してしまう。特定の条件のときのみ発生する不具合を解析する場合には、通常のブレイクポイントでは目的の箇所に到達するのに時間がかかってしまう。 そのようなときは、ブレイクポイントに条件を指定するこ…

Javaアプリケーションのためのインストーラ作成ツール10選

Make an Installer for your Java Applications http://javabyexample.wisdomplug.com/java-concepts/34-core-java/63-make-an-installer-for-your-java-applications.html今度つかってみる。

JTwitterを入れてみた

会社での開発はTracでプロジェクトを管理していたが、Trac上に飲み会の連絡とか書く輩がいて orz そこで社内のサーバにプロジェクト共有ブログを導入して、Tracが開発の情報を管理し、共有ブログでそれ以外の情報を管理していました。インターネットに公開し…

警告「型の安全性: 型 List の式は、未検査の型変換を使用して List に準拠するようにする必要があります。」の対処法

Generics(ジェネリクス)関連の警告。Genericsを使ったコレクションの型にキャストした場合などに警告される。 Set set = new HashSet(); 非Genericsのコードが自前のコードであれば、型パラメータ付のコードに変換すれば解決する。 Set set = new HashSet(…

最低限覚えておきたい5つのEclipseショートカット

1.ショートカットキー一覧を表示する Ctrl+Shift+L すべてのショートカットキーを覚えるのは難しいし現実的ではない。Ctrl+Shift+Lを使えばいつでもショートカットキーを確認することができる。 2.クイックフィックス Ctrl+1 コンパイルエラーの解決方法が示…

弱参照と強参照の違い

通常の参照が強参照。弱参照と強参照の違いはガベージコレクトのタイミングにある。 オブジェクトの生成コストを減らすためHashMapなどにメモリキャッシュする場合があるが、一定期間のみ生存するオブジェクトをメモリキャッシュした場合には、必ずキャッシ…