タグ

javaに関するprisiraのブックマーク (11)

  • ProxyパターンとProxyクラスと黒魔術 - プログラマーの脳みそ

    Java Advent Calendar 2011 の18日目です。 17日目の記事は JavaEE使ってウェブアプリケーションつくろうよ - 水まんじゅう2、 19日目はJavaエバンジェリストの寺田さんですよ。乞うご期待。 プロローグ 後:「先輩、いまさらなんですけど上からSQLの遅いところを調査してくれって依頼がきてて、全クエリの実行時間を実データで集計とれと言ってるんですけど。これ、SQL発行前後で時間計測するしかないですかねー。このプロジェクトどんだけクエリ発行してるところあるんだろ…。簡単にやれないですかね。とりあえず調査に1週間かかるって返答しちゃいましょうか」 先:「まぁまて。全部のクエリにもれなく時間計測のコードを挿し込むとかやってられんし、手作業で漏れも発生するだろ。こういうのはオブジェクト指向で解決するのがスマートだ。あ、とりあえず調査に1週間かかるとは返答しておけ」

    ProxyパターンとProxyクラスと黒魔術 - プログラマーの脳みそ
  • 恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、ミドルウェア開発チームの青木(@a_o_k_i_n_g)です。将来の夢は川口浩探検隊に入ることです。 先日、弊社のアプリケーションサーバーで大量にメモリを消費するという現象に遭遇しました。アクセス頻度の低いサーバーがメモリを大量消費するという謎深いものでした。 発生当初の状況はこんな感じです。 アプリケーションサーバーでは Jetty が稼働 現象が発生した JVM は 5GB 程度のメモリを消費しており、明らかに通常ではない量のメモリを消費している 複数台のサーバーで発生していたが、全てで発生したわけではない。 また、発生したサーバーはいずれもアクセス頻度が少ないサーバーだった。 ヒープ、パーマネント、スタック ひとまず、JVM でトラブルが発生した時は何はともあれヒープダンプとスレッドダンプを見るに限ります。各種情報の取得をインフラ部隊へ依頼し、得られたヒープを解析すると、

    恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ
  • Javaプログラマーのためのjava.math.BigDecimalまとめ - きどたかのブログ

    以前書いたメモ的なエントリーを読み返してみて、 簡単なエントリーに書きなおそうと思いたった。 java.math.BigDecimalの構造 「精度(precision)」と「スケール(scale)」と「一般的な桁数」の違い 精度とスケールの違いを正しく把握しているかを試すのに、 この質問をしてみるといいでしょう。 質問者「1000の精度(precision)はいくつですか?」 正解者「わかりません。3か2か1です。」 精度(precision)はBigIntegerの桁数(unscaled valueの桁数)と同じです。 see also precision() 文字列から精度を判断することは出来ないことがあり、 スケール(scale)が値によって精度(precision)が変わります。 スケール(scale)は小数点以下の桁数ですが、それは小数点があった場合の話。 スケールが0以上の場

    Javaプログラマーのためのjava.math.BigDecimalまとめ - きどたかのブログ
    prisira
    prisira 2018/10/09
  • LombokとLombok-pg: Javaコードを減量する魔法のスパイス

    この記事はJavaアドベントカレンダー2014の12月24日分です。昨日は、 nagaseyasuhito さんによる Mavenでマスター/スレーブ構成のMySQLを起動して結合テストをするぞ という記事でした。Mavenでこんなことまでできるんだなぁということが分かる実践的なコードで、参考にしたいです! 明日は、いよいよアドベントカレンダー最終日、担当は kokuzawa さんになります。 コードをシンプルにできるラムダ式への注目 さて今年の日Javaアドベントカレンダーは、4月にJava 8がリリースされたこともあって、Java 8に関連した記事が多かったようです。その中でも、特にラムダ式への注目が際立ちました。 ラムダ式の最たる活用例 Stream APIについては、12月17日のcom4dcさんがデータ処理がどう簡潔に書けるかをコード例で示されています。また12月20日のRy

    LombokとLombok-pg: Javaコードを減量する魔法のスパイス
    prisira
    prisira 2018/06/15
    lombok系の機能一覧のコメントが参考になる、lombok-pgのも書かれていて未来的で面白い
  • .NETとJavaの例外処理の違い - とあるコンサルタントのつぶやき - Site Home - MSDN Blogs

    .NETJavaの例外処理の違い 01/08/2009 10 minutes to read さて、ここまで .NET における例外処理の基的な考え方として、次のようなポイントを解説してきました。 .NET では、「業務フローチャートからはみ出た場合」 を表現する方法として、例外を使う。 業務フローチャート上想定されている業務エラーを、例外として表現してはいけない。 業務エラーは、メソッドの戻り値として enum 型や構造体クラスなどを使うことで表現する。 これらの考え方は非常に重要なのですが、実はこのような例外の取り扱い方は、Java における例外の取扱い方とは大きく異なります。これは、Java には検査例外と実行時例外と呼ばれる 2 種類の例外が存在しており、言語仕様として業務エラーを例外(検査例外)として取り扱える仕組みを持っているからです。Java の開発者の方でも意外に知らな

  • Android: Dagger2

    稿はDI FrameworkとDagger2.0の概要になります. 対象読者は下記です. DI Frameworkを使ったことがない人. Dagger2の初学者 スライドの下書きから起こしたものなのであしからず… 依存性 具象クラスとの関連は結合度を高める インタフェースに依存させたいが, “new“が具象クラスへの依存性を生む GitHubStore store = new GitHubDatabase(); 制御の反転 依存性解決の方向を反転させれば解決する. GitHub => new GitHubDatabase ↓ 反転 ↓ GitHub <= new GitHubDatabase GitHubクラスが依存オブジェクトを決めるのではなく, GitHubクラスの依存オブジェクトを外から指定する. class GitHub { // GitHubクラス自身が依存性を生む priva

  • Bytecode Viewer - Java & Android APK Reverse Engineering Suite/Tool

    An advanced yet user friendly Java Reverse Engineering suite Used by 287,156 people world wide! Free & Open Sourced by Konloch Loading... * Easy to use yet extremely effective. * Written to run on Java 7, supports Java 8. * Compile Decompiled Java classes with Ranino Compiler. * Quickly decompile classes using JD-Core. * Easily edit APKs via Smali/Baksmali integration. * Java Decompiling with Six

    prisira
    prisira 2015/08/19
    複数のデコンパイラでの結果のタブ表示ができる。編集まで行えるっぽい。検索機能など、まだ作りかけっぽいところがある?
  • Java5.0新機能のお勉強(9) - SEの行き着くところ…

    セマフォ(Semaphore)java.util.concurrent.Semaphoreを使うと、処理の同時実行数を制限する事ができる。セマフォと言えば同時実行数を1に制限するものという勝手なイメージを持っていたが、全然そんな事はない。 final Semaphore semaphore = new Semaphore(2); Runnable r = new Runnable() { public void run() { try { System.out.println("はよせぇや!"); semaphore.acquire(); System.out.println("やった、ワシの番や"); TimeUnit.SECONDS.sleep(1); System.out.println("はぁ、スッキリしたわ"); semaphore.release(); } catch(Inte

    prisira
    prisira 2014/02/19
    Concurrencyユーティリティら(CountDownLatchとか)の解説。説明短めでサンプルコードが分かりやすく、面白い。
  • 第三回ありえる社内勉強会 「いわががのLombok」

    2019/01 JSUG勉強会の資料です。 この資料でDisっているのはJPAではなく、 ・何も考えずに「標準だから」というだけでJPAを選ぶ人 ・OSSに全くコントリビュートせずにフリーライドする人 です。

    第三回ありえる社内勉強会 「いわががのLombok」
    prisira
    prisira 2013/04/05
    AST変換でgetter/setter自動生成や自動closeなどなどなどをやってくれるらしいLombok。とてとて便利そう。AST時点で変換されてるならAndroidでもいけちゃうよね。拡張して夢も広がりそうです?
  • Throwableについて本気出して考えてみた - 都元ダイスケ IT-PRESS

    Throwable、Exception、RuntimeException(RTE)、Errorあたりを整理しながら、色々考えてみた。私見に基づくので、間違っているかもしれないけれど、自分としては頭が整理できたかな、と感じたので晒してみる。異論があったらコメントください。 まず、一番基礎的なところで、継承関係の整理から。こんなツリーになっています。 Throwable Error Exception RuntimeException そして、稿での用語の定義。caller=呼出す側のコード callee=呼出される側(throwする側)のコードとします。 Throwable Throwableは「throw文に指定できる何か」という意味ですね。 Instances of two subclasses, Error and Exception, are conventionally used

    Throwableについて本気出して考えてみた - 都元ダイスケ IT-PRESS
    prisira
    prisira 2012/11/19
    例外の分け方。
  • JavaのCollectionとMapに関するメモ書き : mwSoft blog

    JavaのCollectionをイマイチよく分かっていない気がしたので、最近ちょくちょく見直している。でも、いまだに把握しきれていない。 JavaのCollectionとMap関連のインターフェースは以下。 Collection |-- List |-- Set ---- SortedSet ----- NavigableSet |-- Queue -- BlockingQueue `-- Deque -- BlockingDeque Map |-- SortedMap ------ NavigableMap `-- ConcurrentMap -- ConcurrentNavigableMap インターフェースだけで、14個も名前が出てくる。JavaDocのCollectionとMapからリンクしてるクラスを見ただけなので漏れもあるかもしれない。 これがそれぞれ1つ以上の実装クラスを持っ

    prisira
    prisira 2012/09/07
    知らなかったものがいくつかあった。
  • 1