読者です 読者をやめる 読者になる 読者になる

プログラムdeタマゴ

nodamushiの著作物は、文章、画像、プログラムにかかわらず全てUnlicenseです

KeyEventを全部横取りする

今更だけども、ようやくKeyEventをフォーカスのあるコンポーネントに関係なくアプレットでも奪取する方法が分かったので、メモ。 Toolkitを使って奪取する方法なら知ってたんだけど、これはアプレットじゃ使えないから困ってた。 KeyEventを横取りするにはKe…

Enum型でシングルトンパターン

ちょっと見つけたので、メモ。 クラスの唯一のオブジェクトを作り、それ以外は作らせたくない場面というのは多々ある。そういうときに一般的に使われているのはシングルトンパターンという物だが、enumを使うとそれの代貸となる。 以下のように、値を一つし…

JAVAでZIP

JAVAでzip圧縮するにはDeflaterクラスを、解凍するにはInflaterクラスを利用できます。 ファイルに出力するならZipOutputStreamを使う。そっちの解説はネット上にごろごろ転がってるけど、DeflaterやInflaterに関しては情報少ないのでここでメモ。 Deflater…

NoClassDefFoundErrorを回避する。

NoClassDefFoundErrorは基本的に起こしてはいけないのだが、ライブラリがインストールされているかどうかに依存していてどうしても起きるかどうか分からないと言うこともある。それを回避する話です。 NoClassDefFoundErrorが起こるのは読み込めないクラスを…

Java 7は遅れる。(決定) で、プランB?

なんか、久しぶりの更新。 最近まじめにプログラムしてました。 さて、ちょっと一日ネタ書くのが遅くなりましたが、久しぶりに燃料どころかJavaの鎮火剤がぶちまけられたようです。 Java 7 Delays and Plan B 上の記事によるとMark Reinhold氏がJDK7のスケジ…

StrictMath?Math?何が違うんだ?

Mathのソースコードを見てみるとほとんどがreturn StrictMath.******となっている…… え?Mathっているのこれ? 実というと、MathとStrictMathの違いは結果が環境依存か否か、という所にある。 Mathの関数は環境に依存した計算をする。実行環境に高速に演算を…

Generic配列の作り方(追記的なあれ)

前回のは引き値を増やさずに何とか配列を作れないか、とやってみた結果です。 どうしてもジェネリック型の配列を作りたいときはTのClassを渡すことで実装します。 import java.lang.reflect.Array; public class Generic { @SuppressWarnings("unchecked") p…

JAVAでジェネリック型の配列を作って返したい(´・ω・`)

JAVAのジェネリクスではジェネリック型の配列は作れないけど、何となく作りたい場面があった。 良くあるのはObject型で作っておいて、後で返すときとかにキャストという方法。でも嫌ジャン。 T t = (T) new Object[obj.length]; で、一見T型の配列が出来た様…

JAVAのコンパイラを信用するな

追記 なんかディスられてたのでお返事しましたいやぁ……。今日初めて驚愕の事実を知ったわ。 昨日の検証で分散処理できそうな所はコア数分に分散した方が早い、という事が分かったから画像拡大回転処理の部分もコア数分に分散処理する様にしたんですよ。(sca…

JAVAの並列処理を調べてみた

単純に別な処理をしながら、本処理に関係ないから次の処理にも移りたい、というぐらいのことでしかThreadを使ったことがなかった。 せっかく並列処理が大きな力を生む波シミュレートプログラムを作ったので、並列処理がどんな効果があるのか実際に調べてみた…

JAVAにクロージャ?何それおいしいの?

JAVA7でクロージャが導入見送りだとか、やっぱり導入するとか騒いで結局導入することに決定したのはまだ記憶に新しいですが、やっぱり無理そーです。 クロージャ、Java 7には間に合わない可能性 まぁ、ぶっちゃけ私はついにscalaという物に出会いJAVAのどこ…

Java 末尾再帰VS普通の再帰

ちょっと気になったんで、実験してみた。Lispの方言の一つschemeを使い始めてからは、基本的に私は再帰呼び出しの書き方が末尾再帰で書く様になったんだけど、よくよく思い返してみればJavaでデバッグするときにスタック破棄されてない様な……。スタックが破…

JavaAppletとかで、データをブラウザ上に残しておく方法

しぃペインターとかってさ、ブラウザを戻るとかやってももう一回戻ってきたらデータ残ってたりするじゃん?Javaはappletにしろ、JavaWebStartにしろ、セキュリティーを保持するためにローカルディスクなんかにはアクセスできない様になっている。要するに、…

超今更なことで、あ〜るぇ〜?

そろそろ、JAVAをさわり初めて一年がたとうとしている今日この頃、何と私ようやく無名配列なる物を知りましたwww恥ずかしいっ( >д<)というのも、プログラム中で、変数を配列化して返すだけの関数を作るときpublic int get(){int a = {x,y,z};return a;}っ…