Java

JavaによるTCP/IPのミニマム実装

ソケットアドレス … IPアドレスとポート番号をひとつにまとめた概念のこと。

Stringの文字列を縦書きに変換するメソッド

JavaFXで、そのままでは縦書きが実現できなかったので、仕方なく作ったやつ。

JavaFXでPixelReader/PixelWriterを使う

source image: output:

依存関係逆転(DIP: Dependency Inversion Principle)メモ

前提: 「不安定→安定」の依存になっている場合は、原則通りなのでOK。 個別コードが、ライブラリを呼び出す場合など。 アプリケーションによっては、「安定→不安定」の依存になる場合がある。 Webアプリケーションサーバ(安定:フレームワーク側)が、個別…

Antでファイルの存在チェック

available タスクで存在チェック。 target の if 属性で分岐。 <project name="file.exist.sample" default="main"> <target name="main"> <available file="hogehoge.txt" property="have.resources" /> <antcall target="file-is-existing" /> </target> </project>

Ant 実行時に "Unable to locate tools.jar..." と言われた時の対処

Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre7\lib\tools.jar……みたいなことを言われたら、たぶん環境変数 %JAVA_HOME% が設定されていない。 set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_09;で解決。

マルチスレッド本から学んだこと

並列処理の基本 「安全性」と「生存性」を守るのは必須 その上で、いかにして「再利用性」と「パフォーマンス」を上げるかが重要 安全性 オブジェクトを壊さないこと 壊れる:オブジェクトが設計者の意図しない状態になること 生存性 必要な処理がちゃんと行…

JavaとActionScriptの文法上の相違点メモ

参考:O'Reilly Japan - 詳説 ActionScript 3.0 (以下、ActionScript を AS と表記する。) ASのソースコードは package{..} ブロック内に書く。 以下のようにパッケージ名を記述することもできる。 package packagename{..} ただし、メインクラスは無名パッ…

nextGaussian() の可視化

import java.util.Random; import java.applet.Applet; import java.awt.Graphics; public class Test extends Applet { private static Random rand = new Random(); public void paint(Graphics g) { // Appletのウィンドウサイズを800x600に設定 this.set…

JavaVMのメモリの最大値を設定する

Javaをやる度に忘れるのでメモ。 最大値を例えば512MBに設定する設定する場合は、 -Xmx512m のように書く。 デフォルトでは64MBが割り当てられているらしい。

間違えやすい(実際間違えた)のでメモ。 public class Test { public static void main(String[] args) { int a = 2, b = 3; float c = a / b; System.out.println(c); } } この出力結果は、 0.0 となるので注意。

継承について

自分があやふやなところを確認 public class ExtendsTest { public static void main(String[] args) { Hoge hoge0 = new Hoge(); // ←できない Hoge hoge = new Piyo(); Piyo piyo = new Piyo(); hogeMethod(hoge); // ←できない hogeMethod(piyo); // ←で…

キャストによるオーバーヘッドを計測してみた

public class CastTest { public static void main(String[] args) { long start, end; start = end = 0; double d; float f; // キャストなし start = System.currentTimeMillis(); for(int i = 0; i < 0x5000000; i++) { d = Math.sin(Math.toRadians(i));…

Javaで学ぶ3D のソースコードを修正。 ・修正前 int l = Math.abs((int)(v2.y - v1.y)) + 1; ・修正後 int l = Math.abs((int)(v2.y - v1.y)); if(l == 0) l++; これで、シルエットラインバッファに1ピクセル分の空白ができるバグが直る。 (これが何に起因…

Eclipse設定

いじったことを忘れてもいいようにメモ (※バージョンが違うと、設定の仕方もいろいろ違ってくるので注意。) 行番号を表示 一般 → エディタ → テキスト・エディター → 行番号を表示にチェック エディタのフォントをMSゴシックにする 一般 → 外観 → 色とフォ…