タグ

javaに関するirofのブックマーク (53)

  • Byte Buddy - runtime code generation for the Java virtual machine

    Byte Buddy Byte Buddy is a code generation library for creating Java classes during the runtime of a Java application and without the help of a compiler. Other than the code generation utilities that ship with the Java Class Library, Byte Buddy allows the creation of arbitrary classes and is not limited to implementing interfaces for the creation of runtime proxies.

    irof
    irof 2015/12/08
  • そのクソコード、Intellij IDEAでチェックできるよ

    愛知県でシステムエンジニアとして働く友人のMは、プロジェクトメンバの書くJavaのクソコードに苦しめられているそうです。Mはリードプログラマとして、プロジェクトメンバがあげてくる成果物(ドキュメントとコード)のレビューをする立場にあるらしく、提出されてくる数々のクソコードをTwitterでつぶやいていました。 Mを救うことはできるのでしょうか? もし、クソコードをすばやく見つけることができたら救えるのであれば、救える見込みはあるかもしれません。 コードの問題を見つける静的解析ツール クソコードとは、おおむね次のような問題のあるコードをさすようです。 潜在的バグ バグの可能性があるコード。 重複 機能追加やバグ修正を困難にしがちなコードの重複。 設計上の問題 クラスやパッケージ間の依存関係、多すぎるメソッド引数など。 慣習違反 プログラミング言語やライブラリの慣習、コーディング規約などに違反

    irof
    irof 2014/09/12
    どこまでチェックできるかってのもあるけど、そもそもってのもな。。。
  • Java 7 CMS GCの基本的な情報の整理 - nekop's blog

    バッチ処理などスループット重視のアプリケーションはデフォルトのパラレルGCで良いが、Java EEアプリケーションサーバなどレスポンスタイム重視のものやHadoopなどのクラスタ系ソフトウェアで死活監視に引っ掛る系などのstop the worldをなるべく避けたいいわゆるサーバ系ソフトウェアを運用する場合には、UseConcMarkSweepGCを付与して停止時間の短いCMS GCを使う。その場合にCMSのチューニングに踏み込もうとするとなんだか難しい記述がいっぱいで若干困るので、簡単なガイドをメモとして書いておく。 対象バージョンは以下。 $ java -version java version "1.7.0_51" OpenJDK Runtime Environment (fedora-2.4.5.1.fc20-x86_64 u51-b31) OpenJDK 64-Bit Serve

    Java 7 CMS GCの基本的な情報の整理 - nekop's blog
    irof
    irof 2014/08/23
  • ジェネリクスの基礎と�クラス設計への応用

    Spring Bootのオートコンフィグレーションの恩恵によって、開発者はコンフィグレーションの煩わしさから解放され、Springを容易に動かすことができるようになりました。その反面、ブラックボックスになってハマってしまうことも少なくありません。セッションでは、Spring Bootのオートコンフィグレーションの仕組み・デバッグ方法・カスタマイズ方法を説明します。セッションを聞いてオートコンフィグレーションを便利に使っていきましょう。 (Spring Fest 2021での発表資料)

    ジェネリクスの基礎と�クラス設計への応用
    irof
    irof 2013/11/11
    入門編でぐったりして、上級編終わってホッとしたら……あー。うん。
  • from old Java to modern Java

    from old Java to modern Java : reloaded for Kansai Java Engineers' Group

    from old Java to modern Java
    irof
    irof 2013/06/26
    数年javaやってる人にざっとやるのにいい資料でございますね。
  • Javaのパフォーマンスについての9つの誤信

    JVMはプロファイリングを利用してコードの最適化を行います。対象は頻繁に利用されるコードパスのみですが,徹底的に行うことで大きな効果を上げています。JITコンパイルされたコードに関しては,現在では多くの場面において (その割合も増えつつあります) C++の実行速度を凌駕しています。 このような事実にも関わらずJavaが今でも低速なプラットフォームとして認識されているのは,おそらくは初期バージョンのJavaプラットフォームでの経験が,歴史的な負のバイアスとして働いているためでしょう。 早まった結論を出す前に,客観的な見地に立って,最新のパフォーマンス結果を評価するようにお勧めします。 2. Java コードの1行にはそれ自体で意味がある 次の短いコード行を考えてみてください: MyObject obj = new MyObject(); Java開発者ならば誰でも分かるように,このコードはオ

    Javaのパフォーマンスについての9つの誤信
  • JAX-RSはHTML Webアプリケーションを開発するのに充分なフレームワークであるか? - AOEの日記

    JavaEEでのWebアプリケーション開発フレームワークと言えばJSFですが、JSFデスクトップGUIの開発スタイルに似せた、コンポーネントベース、イベントドリブンなフレームワークであるため、拒否反応を示す人も多いようです。 で、フロントコントローラー型のフレームワーク (StrutsやRuby on Railsなど) が必要な人への選択肢をJavaEEは提供していないのか? ということになるのですが、JAX-RSがこの役割に向いているのではないかと言われています。 でも、基的にRestful Webサービスを開発するためのJAX-RSがHTML Webアプリケーションの開発に当に使えるのか、疑問に思っている人も多いと思います。 最近JAX-RSを使ってRestful Webサービスのみならず、HTMLを返却するWebアプリケーションの開発にも使ってみる機会があったので、そこで分かっ

    JAX-RSはHTML Webアプリケーションを開発するのに充分なフレームワークであるか? - AOEの日記
  • WE LOVE JAVA BYTECODE

    fields index access_flags name_index descriptor_index attribute_count attributes

    irof
    irof 2012/12/29
    javapのjavascript実装……なにこれすごい。
  • 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
    irof
    irof 2012/08/28
    不変クラスのガイドライン
  • Extensible core Featherweight Java

    Core Featherweight Java (cFJ) is a variant of Featherweight Java without casts. This Coq development is meant to demonstrate how to design mechanized metatheory definitions and proofs in an extensible way. There are a number of different features that can be added to uFJ to build new variants of the language. These proofs were checked with Coq version version 8.3pl2. Earlier versions of Coq might

    irof
    irof 2012/08/26
    FeatherweightJavaを動かしたり証明したりできる、らしい。
  • 例外設計における大罪 - 契約

    PHPカンファレンス2012 & WordCampTokyo2012 LT発表資料です。 タイトルの元ネタ: http://www.amazon.co.jp/dp/4094512624

    例外設計における大罪 - 契約
    irof
    irof 2012/06/28
    例外説明する時に使いたい
  • 「Java SE 6完全攻略」第69回 第三のパーサ - StAX その1

    今月から,XMLとWebサービスに関するJava SE 6の新機能を紹介していきます。 今まで,WebサービスJava EEだけで扱われていました。Java EEではWebサービスを提供する側の機能が中心になっています。しかし,提供するだけでなく,Webサービスを使う側の機能も重要です。 Java SE 6では,この使う側,つまりWebサービスのクライアント機能が取りいれられました。また,それに応じて,XMLを扱う機能も強化されています。 そこで,連載ではWebサービスの基幹となる,XMLを扱う機能から紹介していくことにしましょう。 DOM,SAX,そしてStAX Java SE 6では,新しいXMLパーサが仲間入りすることになりました。その名はStreaming API for XML,通称StAXです。 StAXはJCPのJSR 173で標準策定が行なわれました。Java SEに取

    「Java SE 6完全攻略」第69回 第三のパーサ - StAX その1
  • java.lang.Object#hashCode()の性質 - 地平線に行く

    この前、ふと Object クラスの JavaDoc を見ていたら、こんな記述がありました。 できるかぎり、Object クラスで定義される hashCode メソッドは、異なるオブジェクトについては異なる整数値を返します。 Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle この「できるかぎり」って、どのぐらいなんでしょうか。 オブジェクト数に比例して、衝突していました。 さくっとコードを書いてみました*1。 結果は以下のグラフの通りです。 (一定数(横軸)のオブジェクトを生成し、ハッシュコードの衝突割合(縦軸)を調べました) オブジェクトが増えれば増えるほど、衝突確率が高まっていきます。 オブジェクトが100万個だと衝突確率は 1.46% でしたが、5,000万個だと 47

    java.lang.Object#hashCode()の性質 - 地平線に行く
    irof
    irof 2012/03/19
    -XX:hashCodeとかあったのか!
  • 『Effective Java』を読む

    (こちらのブログ記事からの転記です) 『Effective Java 第2版』の項目3 「privateのコンストラクタかenum型でシングルトン特性を強制する」(17頁)のElvisクラスには、初版にはなかったleaveTheBuidling()メソッドが追加されています。翻訳した時は、メソッドが追加されているなという程度で深く気にしなかったのですが、調べてみました。 Wikipediaの"Elvis has left the buidling"よれば、次のように説明されています。 "Elvis has left the building!" is a phrase that was often used by public address announcers following Elvis Presley concerts to disperse audiences who ling

    『Effective Java』を読む
    irof
    irof 2012/03/03
    たのしみ
  • 型パラメータつきクラスの中から指定された型パラメータを知る方法 - Skirnirnismal

    型パラメータつきクラスHoeがあるとして、指定された型パラメータをHoeクラスの中から知る方法。 public class Hoe<E> { private Class<E> type; public Hoe(E... e) { @SuppressWarnings("unchecked") Class<E> type = (Class<E>) e.getClass().getComponentType(); this.type = type; } public Class<E> getType() { return type; } } こうすると、具体的な型パラメータを取得できる。 例えば Hoe<Fuga> hoe = new Hoe<Fuga>(); という文があった場合、hoe.getType()はFuga.classになる。 かなり裏技的だけど。

    型パラメータつきクラスの中から指定された型パラメータを知る方法 - Skirnirnismal
    irof
    irof 2012/01/13
  • はてなブログ | 無料ブログを作成しよう

    今の自分は、出会った人や読んできたによって、できあがっている あの小冊子は、新聞の付録だったのか、記憶が曖昧で定かではないのだが、1ヶ月に1回程度の頻度で届いていた気がする。オールカラーで内容もさまざまだった気がする。その中には、プロ野球の選手名鑑もあって、私は、母から受け取り、大切にしていた記憶がある。母は、…

    はてなブログ | 無料ブログを作成しよう
    irof
    irof 2011/12/31
    大晦日でもぶれない裏紙クオリティが素敵
  • JDBC XAデータソース - nekop's blog

    JBoss Advent Calendar 2011の14日目のエントリです。今日はJDBC XAデータソースの説明。 XAってなによ? ツーフェーズコミット(2相コミット, 2PC)するためのインタフェースです。 XAとか2PCってどんなときに使うの? 一つのトランザクションで2つ以上のトランザクショナルリソース(JDBC JCAリソースアダプタ=データベースとか、JMS JCAリソースアダプタとか)を扱う場合に利用します。 XAとか2PCってなんで必要なの? 例えばデータベースが二つ、DB-AとDB-Bがあって、DB-AからDB-Bにデータを移す処理をするとします。このとき、DB-AからSELECTして削除してDB-Bにインサートする、というようなことをするわけですが、この処理が途中で落ちたら即データ消滅、データ重複などのデータ不整合という結果になってしまいます。XAを使うとこういった

    JDBC XAデータソース - nekop's blog
  • Home | Apache Ivy ™

    Apache Ivy™ is a popular dependency manager focusing on flexibility and simplicity. Find out more about its unique enterprise features, what people say about it, and how it can improve your build system!

    irof
    irof 2011/12/15
  • JUnit のセカイ #JJUG - やさしいデスマーチ

    このエントリーは、@cero-tさんのエントリーの次で、Java Advent Calendar 2011の6番目のエントリーです。自分自身の今年のメインテーマがTDD(テスト駆動開発)と言う事もあり、関連エントリーとしてJUnitについて書きたいかと思います。今更JUnit?と思われた方も普段からJUnitを使っていあなたも気軽にお読みください。尚、色々な話題を駆け足で紹介するので、どれも簡単な紹介程度になってしまいますが、ご了承願います。 JUnit4 スタイル JUnitがアノテーションに対応し結構な月日が流れましたが、古いコーディング規約のままでテストコードを書いていませんか?JUnit4では、アノテーションとアサーションを使ったテストコードを書くことが基スタイルです。かつては、TestCaseのサブクラスを作り、testではじまるメソッドを定義していましたが、今は Testアノ

    JUnit のセカイ #JJUG - やさしいデスマーチ
    irof
    irof 2011/12/06
    わっふるわっふる
  • Quick JUnit Plugin for Eclipse

    2013/04/25: プロジェクトの構造を改善しました。 2012/04/25: 0.7.0をリリースしました。詳しくはリンク先の変更履歴をご覧ください。 2011/04/25: 0.6.0をリリースしました。詳しくはリンク先の変更履歴をご覧ください。 2010/04/25: 0.5.0をリリースしました。詳しくはリンク先の変更履歴をご覧ください。 2010/01/01: beta3をリリースしました。詳しくはリンク先の変更履歴をご覧ください。 2009/10/13: Beta版配布用更新サイトをsourceforge.jpに用意しました。また、実験版にMacではキーバインドが変更されているバグがあったので、修正し、beta2をリリースしました。 2009/05/09: Eclipse 3.5系だとインストールできなかった問題に対応しました。 2009/04/25: 実験的な機能としてT

    irof
    irof 2011/11/25
    Eclipse使うなら入れときたい。