タグ

*Javaに関するAkinekoのブックマーク (410)

  • Javaの単体テストでランダムなデータを活用する

    従来、ランダムデータを使用するのは、手間が大きすぎて価値に見合わない作業でした。しかし、QaRandomizerを利用すればランダムデータの威力をテストで簡単に生かせます。稿ではQaRandomizerが生成するランダムなデータを使った基的な単体テストや、モックオブジェクトを使用した単体テストの方法について説明します。 はじめに 規則性と不規則性が共存しているのが、世の中の面白い所です。例えば、米国の北東部の気候では、冬は寒く、夏は暑くなります。毎日の気温は不規則に変化しつつも、季節が全体として寒いか暑いかという傾向は変わりません。 従って、例えば不凍液など、気温の影響を受ける製品をテストするときには、特定の決まった温度だけで行うよりも、一定の範囲内のランダムな温度で行う方が、正確度は高まります。 ソフトウェアも同じです。通常、ソフトウェアはさまざまに変化する条件の下で動作します。従っ

    Javaの単体テストでランダムなデータを活用する
  • Javaで軽快に使える「軽量フレームワーク」特集~リッチなGUIを構築する「Vaadin」(1)

    はじめに フレームワークと言うと、多くの人は「アプリケーション全体を設計するもの」というイメージでとらえているかもしれません。しかし、もちろんそれだけがフレームワークではありません。例えばHibernateのように特定の機能に特化したものも存在します。 最近になって見られるようになってきたのが、「Ajax利用のためのフレームワーク」です。例えば、「Google Web Toolkit(GWT)」などのことです。Javaを使って、Ajax利用のWebアプリケーションを構築するフレームワークです。素のHTMLだけでは実現できないリッチなGUIを、JavaScriptの複雑なコードを書くことなく実現できるフレームワークとして、GWTは広く使われつつあります。 これまで、サーバーサイドのことばかり考えていた感のあるフレームワークの世界に、こうした「クライアントサイドの構築」を重視したものが登場する

    Javaで軽快に使える「軽量フレームワーク」特集~リッチなGUIを構築する「Vaadin」(1)
  • Effective Java 読書会 8 日目 「それ enum で出来るよ」 - IT戦記

    はじめに 今日読んだところ 143 ページ〜 159 ページ 前回はこちら Effective Java 読書会 7 日目 「PECS! PECS! PECS!」 - IT戦記 int 定数とか使わない 型安全じゃないから enum 使う enum Hoge { FOO, BAR; } 簡単 メソッドも持てる enum Hoge { FOO, BAR; void a() { /* (snip) */ } } で、以下のように使う Hoge.FOO.a(); シングルトンも 最近の Java では enum でやるらしい! switch 文の代わりに固有メソッド enum Hoge { FOO { void a() { /*snip*/ } }, BAR { void a() { /*snip*/ } }; abstract void a(); } 以下のコードが // これはダメ swit

  • Effective Java 読書会 7 日目 「PECS! PECS! PECS!」 - IT戦記

    はじめに 今日読んだところ 126 ページ〜 142 ページ 前回はこちら Effective Java 読書会 6 日目 「ジェネリクス!」 - IT戦記 Object を使ったその瞬間が ジェネリック型を使うチャンスなのです!!! たとえば、以下みたいな public class Stack { /* snip */ public Object pop() { /* snip */ } public void push(Object e) { /* snip */ } } こうなる public class Stack<E> { /* snip */ public E pop() { /* snip */ } public void push(E e) { /* snip */ } } Object を使わなくすると キャストがなくなる キャスト良くない!例外でるからね! どうしてもキ

  • Effective Java 読書会 6 日目 「ジェネリクス!」 - IT戦記

    はじめに 今日からついにジェネリクスに突入しました! 今日読んだところ 101 ページ〜 125 ページ 前回はこちら http://d.hatena.ne.jp/amachang/20100222/1266850995 関数オブジェクト インスタンスメソッドを一つだけ持っているクラスのオブジェクト。 C++ の関数ポインタのような、 JavaScript のクロージャのような使われ方をする。 ストラテジーパターンで ストラテジーだけを渡すときに使う。 関数オブジェクトのインスタンスは複数いらない 以下のように、シングルトンにしたり、 public static final なフィールドに入れられたりする。 import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import j

    Effective Java 読書会 6 日目 「ジェネリクス!」 - IT戦記
  • Effective Java 読書会 5 日目 「最後に見せたツンデレ」 - IT戦記

    はじめに 今日も継承三昧>< 今日読んだところ 86 ページ〜 100 ページ 前回はこちら Effective Java 読書会 4 日目「最近はあまり継承とか使わないらしい」 - IT戦記 オーバーライド可能なメソッド自己利用(self-use)のドキュメント化 たとえば、 AbstractCollection#remove の以下の部分 This implementation iterates over the collection looking for the specified element. この実装は、指定要素を探すために走査をします。 If it finds the element, it removes the element from the collection using the iterator's remove method. 要素が見つかればイテレータの

    Effective Java 読書会 5 日目 「最後に見せたツンデレ」 - IT戦記
  • Effective Java 読書会 4 日目「最近はあまり継承とか使わないらしい」 - IT戦記

    はじめに らんらーらららんらんらーん♪(なうしか)っと ( ´ー`)フゥー...(゚Д゚)ハッ! 嘘です><ちょっと言ってみたかっただけです>< 今日読んだところ 67 ページ〜 85 ページ 前回はこちら Effective Java 読書会 3 日目「それ Apache Commons で出来るよ」 - IT戦記 情報隠蔽、カプセル化 API 以外の情報をモジュール外から見えなくすること 余計なテストとか書かなくていいから楽だよね。 パッケージプライベート 同じ jar の同じパッケージからのみ参照できる protected, public 完全公開 API として保守していかなければならないよ。 private とパッケージプライベートとは全然違うレベルよ インスタンスフィールド private にしる! public static final で、その参照先が不変クラスな場合に限り

    Effective Java 読書会 4 日目「最近はあまり継承とか使わないらしい」 - IT戦記
  • Effective Java 読書会 3 日目「それ Apache Commons で出来るよ」 - IT戦記

    はじめに じゃっばじゃばにしてやんよー♪っと ( ´ー`)フゥー...(゚Д゚)ハッ! どーん 今日読んだところ 45 ページ〜 66 ページ 前回はこちら Effective Java 読書会 2 日目 「equals night」 - IT戦記 hashCode 2 契約 シグニフィカントなフィールドを変更しなければ、いつ hashCode を呼び出しても値は変わらない x.equals(y) が true の場合は、 x.hashCode() == y.hashCode() が true equals をオーバーライドしたら hashCode もオーバーライドすべき 前述の 2 契約を守るために必要 x.equals(y) が false の場合 かならずしも、 x.hashCode() != y.hashCode() になる必要はないが、 値がバラけているほうが HashMap

    Effective Java 読書会 3 日目「それ Apache Commons で出来るよ」 - IT戦記
  • Effective Java 読書会 2 日目 「equals night」 - IT戦記

    はじめに 今日もお疲れ気味な君の右足にローキックどーん ってな感じで どーん 今日読んだところ 20 ページ〜 44 ページ 前回はこちら Effective Java 読書会 1 日目「static メソッドの使い方などなど」 - IT戦記 とりあえず Eclipse をインストールしました! わーわーパチパチ。 とりあえず、わからずに JavaEE エディションにしたら、 Super Java Hacker の @hikoma っくすに「普通ので良かったのにー」と言われちょっとしょんぼりーぬ(´・ω・` ) 気をとりなおして static イニシャライザ public class Sample001 { public static final Date HOGE_DATE; static { HOGE_DATE = initDate(); } // (snip) } みたいな? sta

    Effective Java 読書会 2 日目 「equals night」 - IT戦記
  • 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戦記
  • 「Java SE 6完全攻略」Garbage First GC

    Javaがヒープの管理にGCを使用しているのは、読者の皆さんもご存じの通りです。GCの手法にはいろいろありますが、HotSpot VMが採用しているのが世代別GCです。今回は、世代別GCの概要と問題点を解説したうえで、これを解決するために導入されたGarbage First GCについて説明します。 世代別GCの概要と問題点 世代別GCは若いインスタンスと時間を経たインスタンスを別々の領域に配置し、管理する手法です。これは寿命の短いインスタンスほど多いという性質をベースにしています。 若いインスタンスが配置される領域をヤング領域、時間を経たインスタンスを配置する領域をオールド領域とよび、それぞれの領域で異なるGCの手法を使用します。つまり、ヤングとオールドという世代の異なる領域を、それぞれ異なるGCで管理するのが世代別GCというわけです。 ヤング領域には高速ですが漏れのあるGCを用います。

    「Java SE 6完全攻略」Garbage First GC
  • Javaバイトコードの読み方 - プログラマーの脳みそ

    Javaのデバッグをしていて、ステップ実行中にステップインを繰り返したらソースコードのないところに行き当たったことがあるだろう。あるいはEclipseでF3キーでクラスやメソッド・フィールドの宣言元を辿っていってソースコードのないところに行き当たったことがあるだろう。 Eclipseの場合、"Class File Editor"というものが開く。そこにはJavaのバイトコードのニーモニックがズラズラと並んでいて、「これは読めないや、ワケが分からない」と投げ出してしまったりしていないだろうか。 怖がることはない。ちょっとコツを掴めばすぐに読めるようになる。 Class File Editorの開き方 自前のJavaクラスの場合、ビルドして出来上がったclassファイルを開く必要がある。"Package Explorer"だとclassファイルは隠されていて見えないのでWindow -> Sh

    Javaバイトコードの読み方 - プログラマーの脳みそ
  • Java変態文法最速マスター - プログラマーの脳みそ

    Java基礎文法最速マスター - いろいろ解析日記をリスペクト。 Javaの変態文法・技法一覧です。Javaの基礎をある程度知っている人はこれを読めばJavaの変態をマスターしてJavaを書くことができるようになっています。簡易リファレンスとしても利用できると思いますので、これは足りないと思うものがあれば教えてください。 1.基礎 エンクロージング型内部classの作成 外部classのインスタンスに紐付くインスタンスを生成します。外部クラスのインスタンス - 内部クラスのインスタンス間に、クラス - インスタンスのような関係を持たせることができます。 public class Outer { public class Inner { } } というようなクラスを作った場合、 Outer o = new Outer(); Inner i = o.new Inner(); となります。new

    Java変態文法最速マスター - プログラマーの脳みそ
  • http://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/index.html

  • https://nattou-curry-2.hatenadiary.org/entry/20090830/1251590343

  • Javaを使うなら必ず覚えておきたいデータ構造 - 配列・リスト・マップ - いろいろ解析日記

    Javaを使う場合に必ず必要になるデータ構造 - 配列・リスト・マップの使い方について簡単に説明します。 目次 配列 配列を生成する。 配列にデータを格納する。 配列からデータを取得する。 配列中のすべてのデータに同じ処理をする。 リスト (注) リストを使うにはimport文が必要 リストを生成する。 リストにデータを追加する。 リストからデータを取得する。 リストのデータを置き換える。 リスト中のすべてのデータに同じ処理をする。 マップ (注) マップを使うにはimport文が必要 マップを生成する。 マップにデータを格納する。 マップからデータを取得する。 マップ中の全てのデータに同じ処理をする。 関連記事 配列 配列は複数件のデータを扱うためのデータ構造です。 Javaの配列の特徴は、生成時にサイズ(格納するデータの個数)を決める必要があることです。いったん配列を生成すると、後から

    Javaを使うなら必ず覚えておきたいデータ構造 - 配列・リスト・マップ - いろいろ解析日記
  • Java基礎文法最速マスター - いろいろ解析日記

    Javaの文法一覧です。他の言語をある程度知っている人はこれを読めばJavaの基礎をマスターしてJavaを書くことができるようになっています。簡易リファレンスとしても利用できると思いますので、これは足りないと思うものがあれば教えてください。 1. 基礎 classの作成 プログラムはclassに記述します。たとえばSampleという名前のclassを作る場合、Sample.javaファイル内に次のように書きます。 public class Sample { } mainメソッドの作成 プログラムはclass内のmainメソッドの先頭から実行されます。mainメソッドは次のように書きます。 public class Sample { public static void main( String[] args ) { // 処理を書く } } System.out.printlnメソッド 文

    Java基礎文法最速マスター - いろいろ解析日記
  • GlassFishからアプローチするJava~入門編~ 第1回「GlassFishとNetBeansのインストール」

    はじめに この連載では、「GlassFish」という製品を利用して、Java言語に親しんでもらうことを目的としています。第1回目の今回は、普段はあまり意識しない「アプリケーションサーバとは何か」に焦点を当て、アプリケーションサーバの役割を改めて学んでいきたいと思います。 対象読者 Javaでなにかしらのアプリケーションを作成したことのある方 Javaの変数の宣言や、if文・for文・while文の制御文を踏まえてアプリケーションを作成したことのある方 オブジェクト指向プログラミングができなくとも構いません。徐々に学んでいければと考えています。また、学びやすいWebアプリケーションをサンプルとするので、Webアプリケーションとは違った分野を勉強したい方には当連載は向いていません。 改めてアプリケーションサーバって何だろう GlassFishもアプリケーションサーバの1つです。最近では開発環境

    GlassFishからアプローチするJava~入門編~ 第1回「GlassFishとNetBeansのインストール」
  • Java用デコンパイラー·JD MOONGIFT

    JDはJava製のフリーウェア。Javaはコンパイルする言語なので(コンパイルされるのは中間言語だが)、コンパイルされた内容は基的には見られない。だが以前の担当者が作ったプログラムを修正しないといけない時に元のコードがなくなっていたら惨事になってしまう。 Java向けのデコンパイルツール そんなときに役立つのがデコンパイラーだ。コンパイルの逆、コンパイルされたコードを元のソースに戻してくれるソフトウェアだ。使い方を誤ると問題になりかねないが、使い方によってはとても役立つ。その一つがJDだ。 JDはGUI版とEclipseのプラグイン版の二つが存在する。GUI版についてはWindows/Mac OSX/Linuxそれぞれ用に実行ファイルが提供されている。使い方は簡単で、ただコンパイル済みのjar/classファイルを開けば良いだけだ。 検索ウィンドウ コードはハイライト表示され、階層も分か

    Java用デコンパイラー·JD MOONGIFT
  • Javaで軽快に使える「軽量フレームワーク」特集 ~本格的なRoRスタイルフレームワーク「Play!」(1)

    はじめに 今やWebのフレームワークと言えば、そのほとんどが「RoRタイプ」です。RoR(Ruby on Rails)がWebの開発に与えた影響は非常に大きく、その後生まれたフレームワークの多くがその影響を受けています。 しかし、Javaの世界に関しては、RoRはなぜか素通りしてしまいました。既にStrutsというデファクトスタンダードがあったために新しいMVCフレームワークが割り込む余地があまりなかったのか、あるいはLL(ライトウェイト)言語でないとRoRなスタイルは作りにくかったのか。ともあれ、その後、長い間、Javaでは「いわゆるRoRタイプ」と言えるフレームワークは登場しませんでした。 その流れを変えたのは、Groovyです。Groovyの登場により、JavaでもLL言語のような小回りの聞くコーディングが可能となりました。そのおかげで、ようやくJavaの世界にも遅まきながら新しい世

    Javaで軽快に使える「軽量フレームワーク」特集 ~本格的なRoRスタイルフレームワーク「Play!」(1)