1. 例外設計 における大罪 和田 卓人 (a.k.a id:t-wada or @t_wada) Jun 27, 2012 @ java-ja 12年6月28日木曜日 2. 自己紹介 名前: 和田 卓人 (わだ たくと) ブログ: http://d.hatena.ne.jp/t-wada メール: takuto.wada@gmail.com Twitter: http://twitter.com/t_wada タワーズ・クエスト株式会社 取締役社長 12年6月28日木曜日
GoFデザインパターンの一覧表と,活用のためのコメント,および入門者が独学するためのリンク集(サンプルコード付き)。 入門者の独学を支援するために,このページのURLを提示して熟読させ,各パターンを短時間で効率よく学んでもらう。 デザインパターンはプログラマの常識だ。 Java使いかどうかは問わない。 にも関わらず,入門書を買ったまま,途中で挫折する人が多い。 挫折の原因は,パターンの数が23もあって,多いからだろう。 全パターンをすんなり覚えてもらうためには,各パターンごとに 「要するにこういう目的のパターンなんだ。」 「10文字で表現すると,パターンの意味はこうなんだ。」 という要点・本質を,短いコメントで伝えれば助けになるだろう。 こういった学習を通して,Java言語の「設計思想」も併せて感じ取ってゆけるはず。 全パターンの一覧表(要約コメント付き) 全パターンについて,10文字以内
<追記>ベンチマークプログラムに誤りがありました。ソート済のシーケンスに対してソートを掛けていました。ご指摘ありがとうございます>ak氏 そんな夢のようなソートアルゴリズムがあるのかというと、あるらしいんです。それがtim sortと呼ばれるアルゴリズムです。 画期的(?)なソートアルゴリズム「Sleep Sort」:濃縮還元オレンジニュース|gihyo.jp … 技術評論社 このあたりで拾ってきたネタですね。 merge sortを改良したアルゴリズムで、安定*1しており、しかも実行速度にも優れているとか。アルゴリズムの性能の評価は済んでいるらしく、CPythonやJDK7には既に導入済みのようですね。 ならば当然Perlのソートも…と考えるわけですが、まず評価のためにJavaのソースをC++にそのまま移植してみました。それがこれ(いちおうテスト済): https://github.co
僕がいま係っているシステムで、別システムのログインパスワードを文字列でデータベースに格納することになりました。これを実現するために、Javaで文字列の暗号化/復合化を行う方法を調べたので、その結果を記しておきます。(※既に別の方々が解説している内容をまとめただけですが。) まず、大きく以下の工程にわけて考えます。 文字列を暗号化する(バイト配列を得る) 暗号化されたバイト配列を文字列化する(暗号化文字列を得る) 暗号化された文字列をバイト配列化する(暗号化バイト配列を得る) バイト配列を復号化する(文字列を得る) 「1. 文字列を暗号化する(バイト配列を得る)」 Java Tips:手軽に暗号化・復号化するには? このページにばっちり解説してあるとおりです。 import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec
~新人プログラマ/SEは覚えておきたい“まとめ”~ @IT編集部 2011/3/24 このページは、開発者/プログラマが、以下のような項目に関して、常識的な基礎知識を学ぶための記事リンクのまとめです。 デスクトップなどの見た目に関する3つの常識 プログラミング・コーディングに関する6つの常識 ネットワーク/通信に関する9つの常識 セキュリティに関する3つの常識 データとファイルに関する5つの常識 設計・アーキテクチャに関する6つの常識 ソフトウェアの品質管理に関する3つの常識 業務アプリに関する5つの常識 Java SE(旧、J2SE)のコアAPIやJSP/サーブレット+StrutsのWebアプリケーション開発、JBossやその他のJavaオープンソースソフトウェアのサンプルコードや使い方を通じて、さまざまな“常識”を学習する以下の連載の記事に、基礎知識のカテゴリごとに分けてリンクしていま
Top Java関連 Servletメール処理 JavaでFlash(Ming) JSPWikiフォーム JavaでアニメーションGIF Webページのキャプチャ JDBCのロギング JavaMailとTLS Gmail 自己署名 自己署名(2) プログレッシブJPEG 携帯サイト関連 再配布不可識別子 Forward Lock トルカのメール添付 携帯位置情報(GPS) 画像の位置情報 動画の位置情報 JSFで携帯ページ デコメールテンプレート 携帯識別 携帯クローラ 携帯アフィリエイト 携帯関連リンク集 チュートリアル キャラクタセット作成 Misc E61 IMAP IDLE ソフトウェア Emf(絵文字フィルタ) インストール 絵文字の表示 絵文字メール カスタム設定 サンプル Scf(補助文字フィルタ) インストール サンプル 詳細設定 GCalViewer 開発メモ
JavaでWebページをレンダリング(画像化)するライブラリあれこれ ---- Swing (JEditorPane, HTMLEditorKit) -Why does it work? Javaでウェブサイトを表示する#4(ウェブサイトをPNG画像として保存する) --http://hightide.blog2.fc2.com/blog-entry-306.html -HTMLをGIFファイルに保存 - Java Solution --http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=33760&forum=12&9 --保存するタイミングの問題。 -Why does it work? Javaでウェブページを表示する#1(JEditorPane編) --http://hightide.blog2.fc2.com/blog-e
このページは軽量Javaゲームライブ ラリのLWJGL(Lightweight Java Game Library)の 情報サイトです。 2005年1月現在日本語での情報が全くないのでちょっと作ってみました。 現在作成中なので情報が抜けていたり、間違っていたりします。LWJGLのバージョンは0.94を元に作成されています。 ・LWJGLは何ができる? ・OpenGL、 OpenALを使って3Dのグラフィック、3Dのサウンドが利用できます。 ・マウスやキーボード、ゲームコントローラーが使用でき、キーが押された時のイ ベントはもちろん、現在任意のキーが押されているかどうかも取得できます。 ・ゲームコントローラーのアナログスティックの値が取得できます。PS2コントローラーのような2軸のパッドもそれぞれの値が取得できます。 ・モニタの解像度を変更でき、フルス
アプリケーションには何らかの処理を定期的に行うという処理がいろいろとあると思います。例えば、アニメーションやゲーム、サイトを定期的にチェック、ポーリングなどなど、それこそいろいろあると思います。 そんな時、どういう実装をしてますか? Runnable インタフェースを派生したクラスを使うこともあるでしょう。もしかして Thread クラスの派生クラスを作ってませんか。本当にそのクラスは Kind of Thread になってますか? でも、そんなことしなくても、もっと簡単に周期処理を行うことができるんです。しかけは java.util.Timer クラスです。 java.util.Timer クラスは J2SE 1.3 で導入されました。アニメーションなんかスレッドなんか使わないで、このクラスを使えば簡単にできるのに、とよく思います。でも、なぜか書籍などのサンプルでは使われていないのはなぜ
JOGL はまだ公式に完成したものではなく、まだ発展途上にあります。 eclipse を使用しなくても JOGL を使用できますが、環境変数の設定で面倒なことを しないといけないので eclipse を使用するほうがよいと思います。 eclipse を使用する場合には SWT を使用するほうがよいかも知れませんが、これは当面扱いません。 私にとって、少しややこしくなりすぎるのでとりあえず JOGL のみを扱います。 JOGL アプレットを作成することが目標です。 OpenGL を java で動かすための、ライブラリーには幾つかの種類があるようです。 しかし、アプレットにも対応しているのは JOGL だけではないかと思います。 JOGL に難点があるとすれば、JOGL がネイティブ・コード (OS 依存) を 使用することです。そのため、JOGL アプレットは作成はできるのですが、 アプレ
「OpenGLを使ってJavaでも3Dを楽しもう」 第1回 3Dは関係ないと思われているかもしれませんが... 3Dによる表示は様々なところに使われています。 映画やコマーシャル,ゲームなどでは3D CGは当たり前のように使われています。でも,「そんなのはごくごく一部の分野で,仕事には全く関係ない」と思っている方も多いのではないでしょうか。 たぶん,仕事で一番多く使用されている3Dの表示は表計算ソフトのグラフでしょう。それ以外で,3Dといっても思い浮かぶものはないかもしれません。 だからといって3Dによる描画を使用していないかというと,そんなことはありません。意識はしていないかもしれませんが,今後は3Dによる表示は欠かせないものになってきています。 例えば,Windows Vistaはどうでしょう。 Windows Vistaのデスクトップ環境であるWindows Aero(以前はAero
Java Swingによるドラッグアンドドロップ(drag-and-drop)の実装Javaで実装する場合に限らず、一般的にドラッグアンドドロップの処理は、いろいろな要素(処理やメッセージの伝達)が関わってくるのでわかりにくい部分があります。 ざっと思いつくままに挙げても、以下のような点に注意してコーディングする必要があります。 ドラッグ元での処理ドラッグ開始時の処理ドロップ先での処理ドロップしたときの処理(ドラッグ完了したときのドラッグ元での処理)ドラッグ中の処理(ドロップ領域に入ったとか出たとか)など。 しかし、ドラッグアンドドロップ中に起きる処理の流れ全体を把握して、そのそれぞれでどのクラスが関わってくるのかを把握できれば、Javaでの実装はかなり簡単です。 異なるJavaVM間やネイティブなプラットフォーム上のアプリケーションとのドラッグアンドドロップに対応しているので、これをマス
この問題は,サン・マイクロシステムズのJavaエバンジェリストグループが主体になって毎月開催しているセミナー「今月の2時間で学ぶJava Hot Topic」で取り上げたのと同じものです。Javaエバンジェリストグループは5分でわかる今週のJavaホットトピックというブログでも,定期的にJavaのパズルを掲載しており,このパズルも掲載されています。 ですので,このセミナーに参加された方はもう答えを知っていはずですね。正解は(2)です。 この結果は「Swingで実装されている」というところがキーです。同じものをAWTで作り直して実行すると,結果は(6)になります(ソースコード)。 なぜSwingだともともとの意図である(6)になってくれないのでしょうか。 それはSwingがシングルスレッドで実装されているからです。 SwingやAWTはイベント駆動で動作することは皆さんご存じのはずです。イベ
Single Threaded Execution(Critical Section) パターン † 一度に1つのスレッドしか実行できないようなメソッドを指します(要は排他制御のこと)。 つまり、Javaでは、synchronizedをつけるだけです。 C++(Windows環境)では、クリティカルセクションオブジェクトを用います。 synchronized なメソッドを実行中は、そのオブジェクトがロックされます。 (他のスレッドがオブジェクトのメンバにアクセスすることができなくなる) 例えば以下のコードでは、safeMethod()が synchronizedな時とそうでない時で実行結果が異なります。 public class ThreadSafeSample { int x = 0; /// スレッドセーフにしたいメソッド public synchronized void saf
本書は、マルチスレッドと並行処理を学ぶ入門書です。 本書では、Javaのスレッドの基本から書き起こし、 マルチスレッドプログラミングによく登場するパターンを解説します。 本書を通して、マルチスレッドと並行処理に関する理解を深め、 よく使われる技法を身につけましょう。 Amazon 目次 想定読者 本書の目次 サンプルプログラムのダウンロード 誤りと訂正 フィードバック 想定読者 本書は、こんな方へおすすめです。 Javaのマルチスレッドプログラミングに興味を持っている人 Javaのスレッドについて、きちんと学びたい synchronizedって、どういうときに、なぜ書くのか、ちゃんと理解したい マルチスレッドプログラミングで何が問題になるのか、なぜ難しいかを把握したい スレッドの間で情報をやりとりする方法について学びたい スレッドを使ってパフォーマンスアップする方法について学びたい Swi
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く