タグ

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
  • ジェネリクスの基礎と�クラス設計への応用

    1. ジェネリクスの基礎と クラス設計への応用 2013 年版 Twetter : @nagise はてな : Nagise 所属  java-ja  北陸エンジニアグループ 2. 導入 Java 1.4 までのコード ArrayList list = new ArrayList(); list.add("hoge"); String s = (String) list.get(0);

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

    16. from old Java to modern Java ∼ 職業プログラマに聞いて欲しいJava再入門 Acroquest Technology株式会社 JJUG / 関西Javaエンジニアの会 谷 心 ( @cero_t ) 19. private List m_list = null; private int process_file(String str_file_name) { String str_line; List list_lines = new ArrayList(); int i_result = read_file(str_file_name, list_lines); if (i_result == 0) { List list_record = new ArrayList(); for (int i = 0; i < list_lines.size(); i+

    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を動かしたり証明したりできる、らしい。
  • 例外設計における大罪 - 契約

    1. 例外設計 における大罪 和田 卓人 (a.k.a id:t-wada or @t_wada) Jun 27, 2012 @ java-ja 12年6月28日木曜日 2. 自己紹介 名前: 和田 卓人 (わだ たくと) ブログ: http://d.hatena.ne.jp/t-wada メール: takuto.wada@gmail.com Twitter: http://twitter.com/t_wada タワーズ・クエスト株式会社 取締役社長 12年6月28日木曜日

    例外設計における大罪 - 契約
    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
  • はてなブログ | 無料ブログを作成しよう

    盛岡旅行記 なぜ盛岡か。 白龍 店のじゃじゃ麺 岩手銀行赤レンガ館 白沢せんべい店の南部せんべい 盛岡天満宮と盛岡八幡宮 チーズケーキのチロル 大通店のクリームチーズケーキ フェザン/イオンタウン 盛岡駅前 盛楼閣の盛岡冷麺 福田パン 長田町店のパン マルイチ 材木町店 …

    はてなブログ | 無料ブログを作成しよう
    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使うなら入れときたい。