タグ

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

    If you were looking for MSDN or TechNet blogs, please know that MSDN and TechNet blog sites have been retired, and blog content has been migrated and archived here. How to use this site Archived blogs are grouped alphabetically by the initial letter of the blog name. Select the initial letter from the TOC to see the full list of the blogs. You can also type the name of the blog or the title of the

    .NETとJavaの例外処理の違い - とあるコンサルタントのつぶやき - Site Home - MSDN Blogs
  • 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」

    3. Lombokって何?  http://projectlombok.org  created by  Javaの冗長性を排除する為  Roel Spilker のライブラリ  「赤唐辛子」の意味  v0.10.4  MIT license  Reinier Zwitserloot 4. Javaの冗長性って?  こういうのとか class Data { private int value; public int getValue() { return value; } public void setValue(int value) { this.value = value; } } 5. Javaの冗長性って?  後、こういうのとか… InputStream in = new InputStream(args[0]); try { ... } finally { I

    第三回ありえる社内勉強会 「いわががの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