読者です 読者をやめる 読者になる 読者になる

Java

Javaメモ

デザインパターン Template Method パターン Template Methodパターン Strategy パターン 10. Strategy パターン | TECHSCORE(テックスコア) 構文 static 初期化子 : static {} インスタンス初期化子 : {} クラスにはstatic初期化子(staticイニシャライザ)…

Tomcatメモ

Tomcat関連知識を整理して追記していく。 Tomcat の前にサーブレット HttpServletクラスとメソッド - サーブレットの基本 - サーブレット入門 起動 catalina.sh run な感じ。 インスタンス指定方法 run の前に、環境変数CATALINA_BASEにインスタンスのディレ…

明解 Javaによるアルゴリズムとデータ構造 8-1_力まかせ法

8-1 力まかせ法 brute force な文字列探索やるよ~ 順探索 ソースコード ちょっと焦げ臭い。もっとスマートに書けそうだが・・・ 進捗表示が意外とめんどかった。 探索対象文字列の何文字目から探索しているかを表示する部分で、フラグ処理が必要なんだが、…

Eclipse で開発するときに気をつけること

謎の ClassNotFound リソースファイルに記載した内容が読み込まれない 何らかの事情でビルドがされていないなどの事由で、ビルドしたクラスファイルやリソースファイルが古いとか存在しないとかの可能性あり。モノが存在していたとしても、タイムスタンプで…

世界で戦うプログラミング力を鍛える150問

会社の同期に借りた本の問題、ぼちぼち今の俺でも解けそうなのが出てきているので、解いてこうと思う。世界で戦いたいんじゃなくて、世界で戦います(ドヤ 世界で闘うプログラミング力を鍛える150問 ~トップIT企業のプログラマになるための本~作者: Gayle Laak…

明解 Javaによるアルゴリズムとデータ構造 7-1_集合とは

7-1_集合とは 部分集合と真部分集合 真部分集合 proper subset 集合 A のすべての要素が集合Bの要素であって、集合AとBが等しくない その他気付き ユニットテストメソッドがグリーンにならなかったため調べると、||演算子の挙動を正しく理解していなかった。…

15分ぐらいかなーって思ったら30分かかった/(^o^)\

10分でコーディング|プログラミングに自信があるやつこい!!の問題やってみた。 ツメの部分の見積もりが甘い。 わしゃまだまだじゃな・・・ がんばろー 15分ぐらいかなーって思ったら30分かかった/(^o^)\ http://ameblo.jp/pro ... こんなかんじに出力…

JUnit 実践入門 体系的に学ぶユニットテストの技法 - 第8章 パラメータ化テスト テストケースとテストデータの分離

第8章 パラメータ化テスト テストケースとテストデータの分離 異なる入力値について似たようなテストを実施する場合など、テストケース毎の差異が入力値と期待値だけ、のような状況下において、入力値と期待値をパラメータとして外部化することで見通しを良…

JUnit 実践入門 体系的に学ぶユニットテストの技法 - 第7章 テストフィクスチャ テストデータや前提条件のセットアップ

第7章 テストフィクスチャ テストデータや前提条件のセットアップ 7.1 テストフィクチャとは テストで扱う、データやテスト実行環境、オブジェクトの状態など ユニットテストのテストフィスクチャ テスト対象オブジェクト 入力値 期待値 テスト実行までに必…

JUnit 実践入門 体系的に学ぶユニットテストの技法 - 第6章 テストのコンテキスト テストケースの構造化

第6章 テストのコンテキスト テストケースの構造化 6.2 テストケースの整理 メソッド単位で整理して個別クラス作成するよりも、初期化処理で整理するほうが、一般に良い 前者は初期化処理を共通化できないため 6.3 コンテキストのパターン 共通のデータに着…

JUnit 実践入門 体系的に学ぶユニットテストの技法 - 第5章 テストランナー テスト実行方法の制御

第5章 テストランナー テスト実行方法の制御 5.1 コマンドラインからの JUnit の実行 コマンドラインからも JUnit テストを実行できる JUnitCore クラスの main メソッドでは以下を行っている テストケースの収集 テストの実行 テスト結果の出力(レポート) 5…

明解 Javaによるアルゴリズムとデータ構造 6-9_度数ソート

6-9 度数ソート 分布数え上げソートとも呼ばれる 要素の大小関係を比較しない 安定 度数ソート 学生9人の10点満点テストを例に 度数分布表の作成 - 各点数の学生が何人いるか調べる 累積度数分布表の作成 - 0点からその点数までに何人の学生がいるか調べる …

JUnit 実践入門 体系的に学ぶユニットテストの技法 - 第4章 アサーション 値を比較検証するしくみ

第4章 アサーション 値を比較検証するしくみ Junit では、assertThat と MatcherAPI でアサーションを行う 4.1 Assert による値の比較検証 org.junit.Asset にアサーションメソッドが多数定義されている static インポートされることを想定した static メソ…

明解 Javaによるアルゴリズムとデータ構造 6-8_ヒープソート

6-8 ヒープソート ヒープ 親の値が子の値以上である、完全2分木のこと 兄弟での大小関係は任意 ヒープのことを別名、半順序木 partial ordered tree ともいう a[i] に対して、 親は a[(i - 1) / 2] 左の子は a[i * 2 + 1] ※剰余切り捨て 右の子は a[i * 2 + …

明解 Javaによるアルゴリズムとデータ構造 6-7_マージソート

6-7 マージソート 配列を前半部と後半部に分けて、それぞれをソートしたものをマージ(併合)するのを繰り返す方法 ソート済み配列のマージ 各配列の着目要素の値に注目して、小さい方の値を取り出し、別の配列に格納する ソースコード import java.util.Scann…

JUnit 実践入門 体系的に学ぶユニットテストの技法 - 第3章 テスティングフレームワーク テストを支えるしくみ

第3章 テスティングフレームワーク テストを支えるしくみ テストでは、入力値の準備や、期待される結果の検証が重要 3.1 テスティングフレームワークとは 一定のフォーマットで書けるため、可読性に貢献 テストコードの記述に集中できる xUnit フレームワー…

JUnit 実践入門 体系的に学ぶユニットテストの技法 - 第2章 ユニットテスト 何のためにテストするのか

第2章 ユニットテスト 何のためにテストするのか 2.1 ソフトウェアテストとは 検証する内容を定義し、ソフトウェアが期待通りに動作するのかを確認すること テストを作るのは、テスを行うテスター自身であり、ソフトウェアの仕様や要件を基に、テスト項目を…

JUnit 実践入門 体系的に学ぶユニットテストの技法 - 第1章 JUni tチュートリアル

第1章 JUnitチュートリアル 1.3 JUnitテストを始めよう "junit-tutorial" プロジェクトを作成 JUnit の JAR ファイルを追加 [JAR ファイルをプロジェクトにコピペ] -> [(右クリックから)Build Path] -> [Add to Build Path] "Calculator" クラス作成 Package…

JUnit 実践入門 体系的に学ぶユニットテストの技法 付録B Eclipse の便利機能と設定

付録B Eclipse の便利機能と設定 B.2 テキストファイルのエンコーディング [General] - [workspace] [Text file encoding] を "UTF-8" に設定 B.3 static インポートのワイドカード [Java] -> [Code Style] -> [Organize Imports] [Number of tatic import n…

明解 Javaによるアルゴリズムとデータ構造 6-6_クイックソート

6-6 クイックソート クイックソートの概略 クイックソート quick sort は、最も高速なアルゴリズムの一つ。 C.A.R.Hoare が考案。 配列 a を枢軸 x pivot で分割することを繰り返す。 分割の手順 a[pl] >= x が成立する要素が見つかるまで pl を右方向に走査…

明解 Javaによるアルゴリズムとデータ構造 6-5_シェルソート

6-5 シェルソート 単純挿入ソートの特徴 ソート済みあるいは、それに近い状態では高速である 挿入先が遠くはなれている場合、移動(代入)回数が多くなる シェルソート シェルソート shell sort は、単純挿入ソートの長所を活かしたまま、その短所を補う事によ…

JUnit 実践入門 体系的に学ぶユニットテストの技法 第15章 継続的 テスト すばやいフィードバックを手に入れる

第15章 継続的テスト すばやいフィードバックを手に入れる 開発においては、欠陥の修正による恩恵と、リスクのバランスを示している考慮する必要がある。 テストを早い段階から繰り返し行うことで、リスクをカバーできる。 15.1 継続的テスト ユニットテスト…

JUnit 実践入門 体系的に学ぶユニットテストの技法 第16章 テスト駆動開発 テストファーストで設計する

第16章 テスト駆動開発 テストファーストで設計する 16.1 テスト駆動開発 Test Driven Development とは TDD は、ユニットテストをプロダクションコードよりも先に記述することを原則とした開発手法のこと。 この原則はテストファーストと呼ばれ、XPのプラク…

Eclipse が起動しなくなったので eclipse.ini の pleiades.jar のパスを、絶対指定にした

Eclipseが起動しなくなった。 スプラッシュウィンドウすら出ない。 Pleiades の日本語化適用しているので、eclipse.ini から日本語化適用設定を外してみる。 おなじみのケプラーさんのスプラッシュウィンドウが表示された。 ということで、原因はこいつ。 相…

JUnit 実践入門 体系的に学ぶユニットテストの技法 付録A 開発環境のセットアップ

付録A 開発環境のセットアップ A.1 JDK のセットアップ pleiades 同梱の JDK1.7 を流用 A.2 Eclipse のセットアップ もろもろ面倒なので、アルゴリズム勉強用とは別途用意することにした 日本語化せず(pleiades でなく)英語版でいく 4.3 - Kepler にした JUn…

明解 Javaによるアルゴリズムとデータ構造 6-4_単純挿入ソート

6-4 単純選択ソート straight insertion sort 『原列の先頭要素を、目的列内の適切な位置に挿入』を、n - 1 回繰り返す トランプのカード並べに似たソート(7並べをイメージしてね) 実装としては、 『左隣の要素が、現在着目している要素より大きい限り、その…

明解 Javaによるアルゴリズムとデータ構造 6-3_単純選択ソート

6-3 単純選択ソート straight selection sort 最小要素を先頭に、2番めに小さい要素を先頭から2番目に移動する、を繰り返すアルゴリズム 未ソート部から最小のキーを持つ a[min] を選択 a[min] と、未ソート部の先頭要素を交換 離れた要素を交換する可能性が…

明解 Javaによるアルゴリズムとデータ構造 6-2_バブルソート

6-2 バブルソート 概要 隣り合う2要素の大小関係を調べて必要に応じて交換を繰り返す、単純交換ソート straight exchange sort の一種。 要素数 n の配列に対して、n-1 回の比較・交換(この作業をパスという)を行うことで、最小要素を先頭に移動する 更に n-…

明解 Javaによるアルゴリズムとデータ構造 6-1_ソートとは

6-1 ソートとは 安定性 安定 stable 同一キーを持つ要素の順序関係が、ソート前後で必ず維持される 不安定 同一キーを持つ要素の順序関係が、ソート前後で維持されるとは限らない ソートの種類 内部ソート ソート対象データが、1配列上に展開可能な場合に用…

明解 Javaによるアルゴリズムとデータ構造 5_再帰的アルゴリズム

5-1 再帰の基本 メソッド内で自分を呼びだす 階乗 ユークリッドの互除法 ハノイの塔 5-2 再帰アルゴリズムの解析 解析 トップダウン ボトムダウン 真に再帰的 メソッド内で自身を複数回呼び出すもの 挙動が複雑 非再帰への書き換え 末尾再帰は容易 - http://…

明解 Javaによるアルゴリズムとデータ構造 4_スタックとキュー

4-1 スタック フィールド: スタックの容量・ポインタ。後入れ先出し(LIFO - Last In First Out)。 push, pop, peek, dump indexOf, size, clear, capacity isEmpty, isFull 疑問 総称クラスが java.lang.Throwable をサブクラス化できないのってなんでだっけ…

明解 Javaによるアルゴリズムとデータ構造 3_探索

3-2 線形探索 単純な線形探索(順次探索) 1インデックスにつき、2つの条件文をチェックするコストが発生 if index >= array.size() then search failed if array[i] = key then search succeeded 番兵法 1インデックスにつき、1つの条件文チェックでOK。単純…