タグ

Javaに関するorangehatのブックマーク (71)

  • スレッドダンプの森で覚えた死のロックへの違和感

    スレッドダンプの森で覚えた死のロックへの違和感:現場から学ぶWebアプリ開発のトラブルハック(11)(1/3 ページ) 連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) スレッドダンプはトラブルハックに非常に有効 Javaを用いたシステムで発生したトラブルを解析する際、スレッドダンプは非常に有効な手掛かりを指し示してくれる。 例えば、連載第3回の「【実録ドキュメント】そのログ当に必要ですか?」ではログ出力がボトルネックとなったトラブルを、解析ツールを用いたスレッドダンプ解析により発見している。また、連載第10回の「ThreadとHashMapに潜む無限回廊は実に面白い?」では、レースコンディション(競合

    スレッドダンプの森で覚えた死のロックへの違和感
    orangehat
    orangehat 2011/03/22
    スレッドダンプ
  • Google Web Toolkit - Google Code

    注意: 一部のページは英語でのみご利用いただけます。 利用方法 最新バージョンの GWT をダウンロードします。 スタート ガイドを参照して最初のアプリケーションを作成します プロジェクト例 を参照して知識を深めます 詳細情報 製品概要 - 主要な機能とアーキテクチャ GWT の開発 - 理念と参加æ–

  • 単体テストを“神速”化するQuick JUnitとMockito

    単体テストを“神速”化するQuick JUnitMockito:ユカイ、ツーカイ、カイハツ環境!(16) Quick JUnitプラグインの3つの大きな特徴 近年、JUnitとHudsonを利用した継続的インテグレーション(CI)によるテストの自動化や、テスト駆動開発(TDD)の普及などにより、ユニットテスト(単体テスト)のテストコードの作成が重要視されています。 今回紹介する「Quick JUnit」プラグインは、JUnitによるテストコードの作成と実装を支援するEclipseプラグインです。Quick JUnitプラグインは石井勝さんにより開発されていましたが、石井さんが不慮の事故により死去後、Quick JUnitプラグインプロジェクトにより開発が継続されています。優れたオープンソースプロジェクトの模範のようなプロジェクトです。 訂正のお知らせ 故人のお名前について間違いがあり、修

    単体テストを“神速”化するQuick JUnitとMockito
  • 未整理分 - なっきの知恵袋

    orangehat
    orangehat 2011/02/18
    HashMapとかCollectionについて
  • コードで学ぶドメイン駆動設計入門 〜エンティティとバリューオブジェクト編〜 - かとじゅんの技術日誌

    先日、DevLOVEで発表した「コードで学ぶドメイン駆動設計入門」ですが、入門としながらも難しかったかもしれません。モデリングの話は難しい方の話題なので仕方ないのですが、できるだけわかりやすく補足するブログを書いてみたいと思います。 まず、レイヤードアーキテクチャの話ですが、こちらのスライドを参照してください。 DEVLOVE HangarFlight で話したスライド&ソースコード - じゅんいち☆かとうの技術日誌 平たく言うと、そのアプリケーションが解決する問題の領域がドメインです。ドメインとそれ以外のものをごっちゃにしないようにしたのが、ドメイン駆動設計だと考えればよいと思います。 一般的に業務システムでは、対象業務がドメインに成り得ますので、ドメインは業務に準えて語られることが多いと思います。ドメインに登場する概念をユビキタス言語*1として定義し、モデルに落としこむというのが設計の

    コードで学ぶドメイン駆動設計入門 〜エンティティとバリューオブジェクト編〜 - かとじゅんの技術日誌
  • スレッドセーフにするために考えること 〜基礎編〜 - かとじゅんの技術日誌

    ええっと、リクエストされたので、今回は並行処理ネタにいってみます。 並行処理といえば、このは必読書ですね。でも、書いてることは、かなりムズカシイデス(´・ω・`) Java並行処理プログラミング ―その「基盤」と「最新API」を究める― 作者: Brian Goetz,Joshua Bloch,Doug Lea出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/11/22メディア: 単行購入: 24人 クリック: 419回この商品を含むブログ (163件) を見る ということで、並行処理について、もうちょっと優しく分かりやすく解説できないか考えて書いてみます。 スレッドセーフにするには 今回は、プログラムをスレッドセーフにするためにどんなことを考えればよいか。そういうテーマです。 アンスレッドセーフなコードから このの最初の方に、"スレッドのリスク"という章で、スレッド

    スレッドセーフにするために考えること 〜基礎編〜 - かとじゅんの技術日誌
  • 文字列, 日本語処理のサンプル(Javaマスター)

    Javaマスター → Javaプログラムサンプル集 → 文字列, 日語処理のサンプル 文字列, 日語処理のサンプル プログラミングの現場で頻繁に使われる文字列処理テクニックをご紹介します。 HTML・XMLの処理 HTMLファイルやXMLファイルを読み込む HTMLファイルやXMLファイルをタグ単位に分解しながら読み込むクラスです。 日語の処理 アルファベットの全角・半角変換 全角アルファベットを半角アルファベットに変換する 全角アルファベットを半角アルファベットに変換するメソッドを紹介します。 半角アルファベットを全角アルファベットに変換する 半角アルファベットを全角アルファベットに変換するメソッドを紹介します。 数字の全角・半角変換 全角数字を半角数字に変換する 全角数字を半角数字に変換するメソッドを紹介します。 半角数字を全角数字に変換する 半角数字を全角数字に変換するメソッド

  • 【コラム】イマドキのIDE事情 (79) Java VMの監視/障害解析に役立つツール | エンタープライズ | マイコミジャーナル

    トラブルの発生時に利用するツール システム開発の現場では予期しないトラブルが付き物だ。Javaの場合、ヒープメモリやGCに関するトラブルが発生することが多い。この場合、GCログやヒープダンプを解析することで原因の特定を試みることになる。今回はこれらのトラブルが発生した場合に役立つツールを紹介する。 JDK標準ツール「jconsole」 jconsoleはJDKに標準で付属するJMXクライアントツールで、Java VMのリソースの利用状況を監視するのによく利用される。JDKインストールディレクトリのbinディレクトリ配下のjconsole.exeで起動することができ、ローカルで動作しているプロセスのほか、リモートで動作しているJava VMに接続することも可能だ。JDKのインストールディレクトリ直下のbinディレクトリにあるjconsole.exe(Windowsの場合)で起動することができ

  • Seasar2 DIの概要を学ぶ 内容編

    準備編で作成したプロジェクト内に新しくクラスを作成します。 SampleNormalUsed.java package sample; /** * DI無し用のテスト用クラス. */ public class SampleNormalUsed { /** * DI無し用のテスト用メソッド. * */ public boolean chackDiSample() { System.out.println("chackDiSampleを実行しました"); return false; } } SampleNormal.java package sample; /** * DIを使用しない場合のメインクラス. * */ public class SampleNormal { /** * DIを使用しない場合のメインメソッド. */ public static void main(String[]

  • “Stop the World”を防ぐコンカレントGCとは?

    この表2のパラメータは、動作させるマシンのCPUが2個以上かつ物理メモリが2Gbytes以上の場合には、自動設定される。 ■Heapの全体サイズを指定する コンカレントGCでも、スループットGCと同じくHeapの全体サイズを指定する。ヒープの全体サイズは、以下を考慮に入れて設定する。 OSの空きメモリ量 Heapの全体サイズは、ハードウェアの搭載物理メモリ量から、OSやそのほかのソフトウェアが必要とするメモリ量を引いた値以下にする。これは、Heapのサイズを大きくし過ぎると、スワップが発生し大幅に性能が劣化するためだ アプリケーションが必要とするメモリ量 ユーザーごとにHttpSessionに積み込むオブジェクトのサイズや、キャッシュされたオブジェクトのサイズなど、必要となるオブジェクトのサイズを積算し、それ以上の値にする 実際には、アプリケーションが必要とするメモリ量を積算することは難し

    “Stop the World”を防ぐコンカレントGCとは?
  • @IT:事例に学ぶWebシステム開発のワンポイント(9)メモリは足りているのに“OutOfMemory”

    連載では、現場でのエンジニアの経験から得られた、アプリケーション・サーバをベースとしたWebシステム開発における注意点やヒントについて解説する。巷のドキュメントではなかなか得られない貴重なノウハウが散りばめられている。読者の問題解決や今後システムを開発する際の参考として大いに活用していただきたい。(編集局) 今回のワンポイント Javaアプリケーションを動作させていて、「OutOfMemoryが出た」「Java VMが落ちた」という問い合わせを受けることがある。この場合、たいていはアプリケーションの問題や、設定の問題であることが多い。稿では、HP-UX上でのJava VMを例に、OutOfMemoryが出る原因とその対処方法を紹介する。なお、稿に登場する用語は第6回「APサーバからの応答がなくなった-GCをチューニングしよう-」で解説しているので、参照してから読んでほしい。 Old領

    @IT:事例に学ぶWebシステム開発のワンポイント(9)メモリは足りているのに“OutOfMemory”
  • 「Java のヒープサイズ」についての簡単な説明

    Java のヒープ領域及び 非ヒープ領域、メモリ管理について簡単に説明いたします。 ヒープやヒープサイズはガーベジ・コレクション:GC ( Garbage Collection ) と密接な関連があります。以下のページも合わせて参照ください。 ガーベジ・コレクション:GC ( Garbage Collection ) についての簡単な説明と調査方法 Java のオブジェクトは、大きく分けて、New、Old 、Permanent というメモリ領域で管理されます。 新しいオブジェクトを格納するのが New 領域と呼ばれ、古いオブジェクトを格納するのが Old 領域と呼ばれます。 Permanent 領域にはクラスやメソッドなどの情報が格納されます。 ( これらは Permanent Generation, Tenured Generation, Young Generation とも

  • GoogleのJavaコレクションを使う理由、Multimapが便利 | エンタープライズ | マイコミジャーナル

    Javalobby - The heart of the Java developer community Googleが公開しているJavaライブラリのひとつにGoogle Collections Libraryがある。2009年12月30日(米国時間)にバージョン1.0になり、以後APIが互換性のない変更を受けることはないという宣言が発表された。0x1fff: 35 Google open-source projects that you probably don't knowでもGoogleプロジェクトのひとつとして紹介されている。 JavaにははじめからCollectionsライブラリが用意されている。Collectionsライブラリはまさまざまなデータを格納する便利な入れ物をまとめたもの。Google Collections LibraryはJavaの標準のCollectionラ

    orangehat
    orangehat 2010/01/13
    collectionの便利なライブラリ
  • 取り立ては無いの?

    キャッシングは、お金を借りることですから、返済が遅れた場合にテレビドラマ等で見かける「早く金返せやっ!」という風に怒鳴るような取り立て行為があったら怖いですよね。 しかし、銀行系でのキャッシングや大手カ-ド会社・大手消費者金融なら、このような取り立てはほぼありません。これらの会社は、キャッシングの返済期日が過ぎた場合に、電話やメ-ルで「お支払期日が過ぎておりますので、、」的な事務連絡が入る程度です。 そして、ちゃんと「○月○日までに支払います」と答えれば、その約束が破られるまではほぼ連絡が入りません。 これは、貸金業法という法律で取り立て行為の規制という規定があり、更に、この規定を金融庁のガイドラインという形で具体的に「朝9時から夜の8時までに正当な理由なく取り立ての訪問や電話をしてはならない」・「電話の回数は1日3回まで」・「電話や訪問でも、暴力的な態度や言葉を使用してはならない」等が禁

  • “Stop the World”を防ぐコンカレントGCとは? (1/2) - @IT

    “Stop the World”を防ぐコンカレントGCとは?:現場から学ぶWebアプリ開発のトラブルハック(2)(1/2 ページ) 連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) Full GC問題の時代が再び到来! それまで順調に動いていたはずのWebアプリケーションが、ある時突然、応答を返さなくなる。そして、運用者があたふたしている間に、何事もなかったかのように再び動き出す。 Javaで構築したシステムにかかわる者ならば誰しもが体験するであろう事象、そうFull GC(ガベージ・コレクション)だ。Full GCが行われている間、すべてのアプリケーションスレッドは停止する。この事象は“Stop the

    “Stop the World”を防ぐコンカレントGCとは? (1/2) - @IT
  • メモリリークトラブルシューティング記 - その3: 侍でヒープ使用量を確認 - 侍ズム

    << ヤフーがビジネスパーソン向けSNSを開始 - 命は既に会員数7万超の SBI Business? | Home | IDEA 8 リリース >> 山裕介のweblog。 映画、アーチェリー、Java 好き。 このブログでは日々の出来事、IT関連のニュース、映画の感想など種々雑多なエントリを書き連ねています。 Twitter:yusukey Mail: yusukemac.com

  • OutOfMemoryError回避のためのJavaコーディング - 完結編 | 株式会社シンメトリック公式ブログ - 携帯開発から生まれる技術情報

    OutOfMemoryError回避のためのJavaコーディング - 完結編|株式会社シンメトリック公式ブログ - 携帯開発から生まれる技術情報| 携帯サイト開発から生まれる技術情報ブログ 前回と前々回でOutOfMemoryErrorの典型的な発生パターンを3つ紹介した。 (A)サイズオーバー型 巨大な領域確保によって一気にヒープの最大サイズをオーバー (B)メモリリーク型 開放されないオブジェクトが溜まり続けることで使用中メモリが徐々に増加し、メモリが枯渇 (C)マルチスレッド型 長時間処理により”死んだ”スレッドがメモリをい尽くす じゃあOutOfMemoryErrorが発生したときに、どのパターンのエラーに該当するのか?これを見抜くための手がかりを最後の話題にしたい。 原因究明の手がかりは・・・? OutOfMemoryErrorの原因究明。見るべきポイントはいくつかある。

    orangehat
    orangehat 2010/01/02
    OutOfMemoryについて
  • jconsoleでTomcatサーバをモニタリングする - トラシスラボ 技術ブログ

    概要 jconsoleで Windows PC から Linux サーバ上で稼動している Tomcat サーバに対して接続し、リソース使用状態を監視する方法についてまとめた。 このjconsole、「接続しようとしても接続できない」という問題に結構出会う。 しかも「何が問題か」を教えてくれない。 以前にもこの現象に出会って時間を取られてしまったにもかかわらず、メモを残していなかったので、また調査するはめに...orz 無駄な時間を今後費やすことがないよう、自分が出会ったトラブルについてまとめた。 jconsoleとは Sun JDK 6 の中には、コンパイラ javac の他にも、いくつか役に立つツールが含まれている。 jconsole は、Java プログラムに対し、次のような情報を得ることができる。 パフォーマンス情報 メモリの使用状態 稼働中のスレッドに関する情報 JMX

    orangehat
    orangehat 2009/12/30
    jconsoleをリモート
  • あなたの知らないJDKの便利ツールたち

    Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします(編集部) 標準JDKに含まれる便利なツール 読者の皆さんは、最近のJDK(Java SE)に、開発やデバッグに便利な新しいツールが含まれていることをご存じでしょうか? 古くからのJava開発者は、古い時代のJDKのツールしか知らず、一方で新しいJava開発者はEclipse/NetBeansなどの統合開発環境に慣れてしまい、細かなコマンドツールを直に使う状況が減ってきているかもしれません。 そこで今回は、最近のJava SE 6含めて比較的新しいと思われるツールを以下の5種類に分けて紹介します。 プロファイリング トラブルシューティング/情報取得 監視 配備/補助 スクリプティング 「こんなツー

    あなたの知らないJDKの便利ツールたち
  • Life with Cygwin

    沖ソフトウェア株式会社は、沖通信システム株式会社および株式会社沖インフォテックと平成22年10月1日をもって合併いたしました。新会社名は、株式会社OKIソフトウェアとなります。3社が行っております事業は新会社にて従来通り継続いたします。

    orangehat
    orangehat 2009/12/30
    jstat