タグ

javaに関するysadaharuのブックマーク (117)

  • SpringでField InjectionよりConstructor Injectionが推奨される理由 - abcdefg.....

    SpringでField InjectionよりConstructor Injectionが推奨される理由を調べてみたメモです。 (2016/12/30) サンプルコードにfinalをつけるように修正 (2017/03/29) Immutabilityについて追記 --- 家でも会社でもIntelliJを使って開発しているのですが、 Spring Bootで@Autowired(@Inject)を使うと下記のような警告が出るようになりました。 警告内容を見てみると、フィールドインジェクションは推奨されません、とのこと。 「Field injection is not recommended.」 警告の詳細を見てみると下記のように書いてあります。 「Field injection is not recommended. Spring Team recommends: "Always use

    SpringでField InjectionよりConstructor Injectionが推奨される理由 - abcdefg.....
  • 恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ

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

    恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ
  • Javaトラブルに備えよう #jjug_ccc #ccc_h2

    オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)

    Javaトラブルに備えよう #jjug_ccc #ccc_h2
  • Amazon.co.jp: JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus): 渡辺修司: 本

    Amazon.co.jp: JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus): 渡辺修司: 本
  • エンジニアとして継続したい3つのこと - KAYAC engineers' blog

    777ブログウェイ「つくるための三種の神器」というテーマで、 日はカヤック京都支社の技術部アルバイトで働いている高江洲(たかえす)がご紹介します。 エンジニアとして働く上で、大切だなぁと思う以下3つのことについて自分が利用している(利用し始めた、今後も継続したい)ことを3つ取り上げてみたいと思います。 1. 情報収集 2. タスク管理 3. テスト駆動開発 1.情報収集 情報収集手段といえば、はてブの人気エントリーやヤフーのトップニュース、RSSリーダーなど様々な手段がありますが、最近はもっぱらGunosy(グノシー)を使っています。 TwitterやFaceBookでログインすると、興味のある分野についてのおすすめ記事のまとめを1日1回メールで受け取る事ができます。大手のニュースサイトから個人のブログまでの幅広く、僕は朝の通勤中にひと通り目を通す感じで使っています。 使い始めて2ヶ月く

    エンジニアとして継続したい3つのこと - KAYAC engineers' blog
  • かっこ悪くて面倒でもテストコードを書こう - 今川館

    Python | 10:08わたしはプログラマーではありませんが、いくつかの仕事でテストコードを見たり書いたりすることがあったので、その過程で思ったことをメモとして残しておきます。コーディングとテストを分けて工数を言う癖をやめようどっちもコードを書くのだから分けて考える必要はないテストコードの重要性は理解しているけど、工数も厳しいし客がテストコードを書くことに工数を割くことを認めてくれない。ありがちな話ですが、それがテストを書かないことの根拠であるならば少し考え直しましょう。コーディングとテストを異なる工程と考えるのをやめてしまえばそんなことに悩む必要はなくなります。つまり、「テストを書きながらコーディングする」のです。だいたい、普段プログラムを書いているときだって手元で動かしながらものを作っているでしょう。それと同じことをプログラムを書いてやればいいだけです。客がテストを書かせてくれない

  • Java 暗号化拡張機能 JDK5.0

    Java Is the Language of Possibilities Java is powering the innovation behind our digital world. Harness this potential with Java resources for student coders, hobbyists, developers, and IT leaders.

  • Rを使えるようになるための10のこと - Issei’s Analysis ~おとうさんの解析日記~

    Rは統計解析を行うことができる強力なツールです。計算上の信頼性はとても高く、世界中の分析者が日々分析用パッケージを公開しております。近年では行政機関で使われているという事例もちらほら聞きます。 ・姫路市役所での事例 これまでSASは使ってきたけどRは全く使ったことがない!JAVAとかC++とかガリガリ書けるけどRはよく分からない!という方々がすんなりRの世界に入れるよう、資料の探し場所や導入部分をまとめておきます。 ※まだ不完全ですが情報を入手し次第アップデートしていきます。 1. 資料を探す場所 CRAN R体、パッケージ、PDF資料などの置き場 Task Viewに分野ごとのまとめ Searchでパッケージや資料の検索 CRANの読み方は「しーらん」派と「くらん」派でわかれる(どっちでもいいw) Rjpwiki 日語で書かれている、これまでのRに関する資料の集大成 データの加工技、

    Rを使えるようになるための10のこと - Issei’s Analysis ~おとうさんの解析日記~
  • Hadoopの異端さが面白い - wyukawa's diary

    Hadoopはほんとブームです。バブルだと言っていい気がします。各種セミナーはすぐに埋まりますし、実際に聞きに行くと会場は満員です。 この分野は日だとNTTデータが先頭をきったように見えます。 NTTデータ、Hadoopの商用ディストリビューション「CDH3」を販売開始 | 日経 xTECH(クロステック) またHadoop専業会社「ノーチラス・テクノロジー」というのもできました。 ウルシステムズとイーシー・ワンが経営統合、Hadoop専業会社を立ち上げ | 日経 xTECH(クロステック) しかし最近では富士通やIBMもHadoopソリューションを展開しておりレッドオーシャンな感じです。 富士通がビッグデータ分析・活用向けのPaaSサービス | 日経 xTECH(クロステック) 日IBM、表計算のように分析できるHadoopソフト新版「BigInsights」 | 日経 xTECH

    Hadoopの異端さが面白い - wyukawa's diary
  • Amazon.co.jp: Effective Java 第2版 (The Java Series): Joshua Bloch (著), 柴田芳樹 (翻訳): 本

    Amazon.co.jp: Effective Java 第2版 (The Java Series): Joshua Bloch (著), 柴田芳樹 (翻訳): 本
  • Effective Java 読書会 1 日目「static メソッドの使い方などなど」 - IT戦記

    はじめに 社内で「Effective Java を 20 日で読もう」という勉強会が企画されて、今日がその一日目。 ノリノリな感じで。 どーん 今日読んだところ 5 ページ 〜 19 ページ という訳で いろいろ出た話題を残しておく 毎日続けるために、なるべく適当に書いていこうと思う あと、自分が勝手に解釈してる部分も多々あると思うます>< static ファクトリーメソッド static ファクトリーメソッドとは、コンストラクタの代わりに使われる static メソッドのことらしい。 コンストラクタは、名無し たしかに String コンストラクタとかごちゃごちゃしてて一個一個名前付けたほうがいいんじゃね?と思うなーと http://java.sun.com/javase/6/docs/api/java/lang/String.html#constructor_summary Strin

    Effective Java 読書会 1 日目「static メソッドの使い方などなど」 - IT戦記
    ysadaharu
    ysadaharu 2011/08/11
    「Effective Java」
  • Effective Java 読書会 12 日目 「スレッド・セーフってなによ!!」 - IT戦記

    スレッドセーフ、スレッドセーフって何なのよ!当の気持ち聞かせてよ! はじめに 皆様おひさしぶりです。 久しぶりに Effective Java 読書会のまとめを上げていきたいと思います!!! 今回の範囲 269 ページ 〜 278 ページ 前回はこちら http://d.hatena.ne.jp/amachang/20100309/1268153192 synchronized を付ければスレッド・セーフってわけではない synchronized はスレッド・セーフを実現するための一つの方法(実装の詳細)であって、 synchronized を使っているからスレッド・セーフというわけではないし、 synchronized を使っていないからスレッド・セーフじゃないというわけではない そもそも、スレッド・セーフとは何か そのクラスのインスタンスに対するどんな順番で行われる操作も仕様的に正し

  • Effective Java 読書会 11 日目 「Java マルチスレッド難しいいい」 - IT戦記

    はじめに 順番が前後しますが、都合上「並行性」の章を先に書きたいと思います。 読んだところ 251 ページ 〜 268 ページ 前回はこちら Effective Java 読書会 10 日目 「Java の基テクニック集」 - IT戦記 同期とは何か 同期 = 原子性 + 可視性 原子性(アトミック性) データの状態遷移の過渡的な不整合な状態が(どのスレッドからも)見えないという性質。 適切に相互排他することでデータの原子性を保証できる。(保護されたコードを実行できるスレッドは一つだけ。) 可視性(ビジビリティ) (どのスレッドからも)同じ値が見えるという性質。 普通、変数やフィールドの値はスレッドごとにキャッシュ(レジスタなど)されるなどしていて、スレッド間での同値性は保証されない。 同期するというのは、原子性を保証することだけではなく、可視性も保証することだということを忘れてはいけな

    Effective Java 読書会 11 日目 「Java マルチスレッド難しいいい」 - IT戦記
    ysadaharu
    ysadaharu 2011/08/11
    volatile、synchronizedの違いを判りやすく説明。
  • [実装編]スレッドセーフにすることを忘れてはいけない

    スレッドセーフとは,アプリケーションをマルチスレッドで動作させても問題がないことを指す。サーバー向けアプリケーションは,マルチスレッドで動作するように設計・実装することが望ましい。そのほうが通常はパフォーマンスが向上するからだ。 だが,マルチスレッドのアプリケーションは,注意深く設計・実装しないとトラブルが生じる。例えば,あるスレッドで保持していた変数の値がほかのスレッドからアクセスされ,処理結果が上書きされたり,ほかの利用者の情報が見えてしまったりする。 こうしたトラブルは,開発者が1人で単体テストしているときには見つけられず,多数の利用者で限界時の挙動テストをしたときや,番移行した後で,たまたま見つかることが多い。トラブルが発生するタイミングを再現することが難しいので,デバッグは困難になりがちだ。 マルチスレッドでのトラブルを防ぐため,開発者は,スレッドセーフな設計と実装を心がける必

    [実装編]スレッドセーフにすることを忘れてはいけない
    ysadaharu
    ysadaharu 2011/08/11
    「クラス変数とインスタンス変数は,可能な限り使わないようにするか,やむを得ず使う際には,ほかのスレッドの影響を受けないように実装する必要がある。」
  • Javaの知られざる欠陥(上)

    Javaは今,最も使われているプログラミング言語の一つである。1995年に発表されて以来,「C++の欠点を取り除いた優れたプログラミング言語」という評価を受けてきた。だが広く使われるに連れ,だんだんその欠点も見えてきている。 Javaの欠点と言われるのは次の三つだ。(1)オブジェクトではないデータ型があること,(2)一つの表現でいろいろなクラスに当てはまるような記述法がないこと,(3)二つ以上のクラスの実装を継承できないこと,である。プログラミング言語のあるべき姿は人によって違うため,これらは欠点ではないという見方もある。ただプログラマの混乱を招いたり,ソース・コードの可読性やプログラムの保守性を下げる要因になっている面はある。 一つ目は,オブジェクト指向言語だと言いながら,オブジェクトではないデータ型が存在することである。 「オブジェクト指向」の定義はいろいろあるが,いずれにしても最も基

    Javaの知られざる欠陥(上)
  • 3、クラス型とプリミティブ型

    今後、皆さんがJava言語を操る上で身に付けておかなければならない概念の一つに、クラス型とプリミティブ型の違いが挙げられます。下記を見て下さい。 char ch = 'あ'; String str = "あ"; この二つは、 System.out.println( ch ); System.out.println( str ); を実行した時は、全く同じ結果となります。つまり、ともにコンソールに「あ」と出力されると言うことです。しかしこの2つには大きな違いがあります。それはchar型はプリミティブ型であり、String型はクラス型だと言うことです。もっと簡単に表現するとString型はメソッドが実行できるが、char型はメソッドを持たないということです。これはいったいどういうことでしょうか?プリミティブと言うのは原始的という意味です。直訳で考えてみるとプリミティブ型は原始型となります。実は

    ysadaharu
    ysadaharu 2011/08/11
    「プリミティブ型はJavaにおいて値を扱うための基本的な型」「プリミティブ型は下記のように8つの型から構成されており、言語仕様が拡張されない限りは増えたり、減ったりしません。」
  • Javaでスレッドを使う際の注意点 | 株式会社シンメトリック公式ブログ - 携帯開発から生まれる技術情報

    Javaでスレッドを使う際の注意点|株式会社シンメトリック公式ブログ - 携帯開発から生まれる技術情報| 携帯サイト開発から生まれる技術情報ブログ どんなプログラム言語でもそうなのですが、マルチスレッド下でプログラムを組むときは、シングルスレッドとは違うところに色々気を使わないといけません。 今回は、Javaマルチスレッドプログラムでは基的なことですが(自分だけかもしれませんが)よく忘れて、不可解な動作に首を傾げてしまうポイントについて説明していきます。 ヒープ領域にあるデータの更新タイミングをちゃんと把握する Javaプログラムからアクセスできるメモリ領域には、大きくわけて、スタック領域(以下スタック)とヒープ領域(以下ヒープ)の2種類が存在します。 スタックは、ローカル変数や、メソッドの引数・戻り値情報を持ち、ヒープは newされたオブジェクトや、ロードされたclass情

    ysadaharu
    ysadaharu 2011/08/11
    「スタックは、ローカル変数や、メソッドの引数・戻り値情報を持ち、ヒープは newされたオブジェクトや、ロードされたclass情報等を持っています。」
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • Java標準同期化オブジェクトの活用で手軽にマルチスレッド対応 | 株式会社シンメトリック公式ブログ - 携帯開発から生まれる技術情報

    Java標準同期化オブジェクトの活用で手軽にマルチスレッド対応|株式会社シンメトリック公式ブログ - 携帯開発から生まれる技術情報| 携帯サイト開発から生まれる技術情報ブログ 前回は、DateFormatクラスがマルチスレッド問題によってバグを引き起こす例を紹介した。マルチスレッドによる問題に対処するには、スレッドごとにインスタンスを作成するか、synchronizedブロックによる同期化を行う。でも「正しい同期化」を行うには十分な知識とコードの把握が不可欠・・・。 そんな時に重宝するのが、Java標準で用意されている同期化オブジェクト。どんなケースにも対応できるわけではないけど、お手軽かつ必要十分な機能を備えている。これを使わない手はない。 第3の同期化方法 前回は同期化の方法として、以下2通りの方法を紹介した。 [方法A]スレッドごとにクラスのインスタンスを生成 [方法B]クラス

  • Java 暗号化拡張機能 JDK5.0

    ysadaharu
    ysadaharu 2011/08/10
    「フォーマットは同期化されません。スレッドごとに別のフォーマットインスタンスを作成することをお勧めします。複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。」