タグ

javaに関するtomoemonのブックマーク (25)

  • Groovyを知らない人のためのbuild.gradle読み書き入門 - Qiita

    これは、 G* Advent Calendarの15日目の記事です。 昨日は @int128 さんの Gradle Slashプラグインをリリースしました #gadvent でした。 明日は @tyama さんです。 はじめに Gradle 便利ですよね。便利すぎて Ant や Maven には戻れないです。 なにが良いって、設定ファイルである build.gradle の記述量が、 Ant の build.xml や Maven の pom.xml と比べると非常に少なくて済むのが良いです。 build.gradle は、設定ファイルと言いつつも、その実体は Groovy で書かれたスクリプトファイルです。 Gradle は、 Groovy の持つメタプログラミング機能や省略記法などを利用して、設定を簡潔に記述できるようになっています。 これはメリットなのですが、一方で Groovy の

    Groovyを知らない人のためのbuild.gradle読み書き入門 - Qiita
  • Java casting resulting in run-time error instead of compilation error

  • ユニットテストアンチパターン

    Last update: $Date: 2006-03-09 22:23:04 +0000 (Thu, 09 Mar 2006) $ maintained by Joe Schmetzer Overview JUnit is a regression testing framework that allows developers to implement unit tests in Java. Using JUnit, you can cheaply and incrementally build a test suite that will help you measure your progress, spot unintended side effects, and focus your development efforts. This extra testing code pr

  • Javaの冗長な記法って小クラス主義の現れではないかな - 矢野勉のはてな日記

    Java以下は無駄に長い駄文です。なんか書いてみたはいいもののうまくまとまらなかった。ごく一部しか表せなかった気がする。これではInputStreamReaderとかがたくさんオブジェクトを連結しないと使えないめんどくささをなぜ許容できるか、しか表せてない... もともとは「 Java における質的でない記述がどのように大規模開発に役立つのか - kwatchの日記」がらみの話です。文中にいくつか「アクセッサが簡潔に定義できない」「FileReader に文字コードを渡せない」のような例があって、「それらが改善されたら大規模開発になにか不利益があるのかどうか」という具体的な質問があったので私はそこにコメントしときました。私はコメント欄に「不利益なんてないよ」と回答しました。実際のところ、後方互換性が維持され、言語としての統一性が維持されるなら別に不利益なんてあるわけない。あるとしたらマネ

  • Ubuntu 10.04 LTSにSun Javaをインストール - hrendohの日記

    いつも忘れるのでメモしておく $ sudo apt-get install python-software-properties $ sudo add-apt-repository ppa:sun-java-community-team/sun-java6 $ sudo apt-get update $ sudo apt-get install sun-java6-jdk 情報元:http://stackoverflow.com/questions/3747789/how-to-install-the-sun-java-jdk-on-ubuntu-10-10-maverick-meerkat

    Ubuntu 10.04 LTSにSun Javaをインストール - hrendohの日記
  • スレッドセーフとデッドロック - Javaの日々

    ●スレッドセーフ スレッドセーフとは、複数のスレッドが実行されるプログラムにおいて、データの整合性が保障されていることをいう。この場合のデータとは、クラスのフィールドの状態を指す。状態を持たないフィールド( final属性の基型、final属性のイミュータブルオブジェクト )は更新されないので整合性を気にする必要はない。 staticメソッドとスレッドセーフかどうかは関係ない。 あるメソッドがstaticか非staticかはそのメソッドがスレッドセーフであるかどうかの判断基準にはならない。それらは互いに独立した概念である。 あるメソッドがスレッドセーフかどうかの基準は、以下の基準によっている。 #そのメソッド内で、あるクラスのフィールドの状態を更新しているかどうか もし、そのメソッド内で上記の操作が行われている場合、synchronized 修飾子をつけるべきである。こうすることで、その

    スレッドセーフとデッドロック - Javaの日々
  • Scala School

    Other Languages: 한국어 Русский 简体中文 About Scala school started as a series of lectures at Twitter to prepare experienced engineers to be productive Scala programmers. Scala is a relatively new language, but draws on many familiar concepts. Thus, these lectures assumed the audience knew the concepts and showed how to use them in Scala. We found this an effective way of getting new engineers up to spe

  • Inversion of Control コンテナと Dependency Injection パターン

    以下の文章は、Martin Fowler の「Inversion of Control Containers and the Dependency Injection pattern」を、かくたにが翻訳したものです。原著者の許可を得て翻訳・公開しています。 翻訳にあたっては、kdmsnr さんにご協力をいただきました。ありがとうございます。公開後の改訂履歴を記事の最後に記述しています。 Java コミュニティでは軽量コンテナが花盛りである。 軽量コンテナは、異なるプロジェクトのコンポーネントをひとまとまりのアプリケーションとして組み立てることを支援する。 このようなコンテナの根底には、コンポーネントの結び付け方についての共通したパターンがある。 そのパターンのコンセプトは「Inversion of Control(制御の反転)」と、まことに包括的な名前で呼ばれている。 記事では、このパタ

  • システム日付を安易に使ったプログラムのテスト - penultの日記

    全くテストを意識しないで Calendar.getInstance() とか new Date() とかを使いまくるプログラムがあったとする。例えば、以下のようなものだ。 public void oomisoka() { Date date = new Date(); if (date.getMonth() == 11 && date.getDate() == 31) { // 12月31日にのみ行う処理… } } せめて引数で Date を受け取るようになっていれば…という感じだが、こういったメソッドをテストするにはどうしたらいいだろう? ユニットテスト実行前にシステム時刻を手動で変更 ユニットテスト内で date コマンドを実行してシステム日付を変更し、テスト終了後元に戻す あきらめる など様々な対処を見たが、JMockit などを使えば上記のような挑戦的プログラムも普通にテストができ

    システム日付を安易に使ったプログラムのテスト - penultの日記
  • Java で Map を回す時は entrySet の方が早い(とりあえず HashMap の話) - 宇宙行きたい

    最近,SQL ばかり書いてて久しぶりに Java 書いたら 「Map ってどうやって回すんだっけ??」 という超初歩的な疑問がwwww 拡張 for 文で keySet 回せばいいかなぁと思ったら id:sett-4 に 「entrySet まわした方が早かった筈ですよ」 って言われた. 勝手な想像で,entrySet って Iterable#iterator() の Iterator#next() で return new Map.Entry(key,map.get(key)); 的な事してて逆に遅いんじゃね??って思ったので 調べてみた. とりあえずソース読んでみる そしたら public Set<Map.Entry<K,V>> entrySet() { return entrySet0(); } private Set<Map.Entry<K,V>> entrySet0() { Se

    Java で Map を回す時は entrySet の方が早い(とりあえず HashMap の話) - 宇宙行きたい
  • プログラムから起動ディレクトリを知るには? - OKWAVE

    こんにちは。 deadlockさんの方法を参考にサンプルを作ってみました。 でも、複雑でトリッキーになってしまいました。 もっと、シンプルな方法があればいいのですが・・・。 (コンパイルするときは、全角スペースを半角スペースに変換してからにしてください) package hoge.hoge; import java.net.*; import java.io.*; import java.util.regex.*; public class Test { public static void main(String[] args){ Test test = new Test(); Class testClass = test.getClass(); //リソースとして自分自身を探す。これなら、間違いなくあるはず。 URL url = testClass.getResource("Test.

    プログラムから起動ディレクトリを知るには? - OKWAVE
  • 時間を計測する

    2つの時間 システム時刻 大抵の計算機は、現在時刻として世界協定時(UTC:Coordinated Universal Time)などの時刻を保持して更新しています。これによって、ユーザが認識している「現在時刻」と互換性のある時刻をプログラム内で使用することができます。ただし、UTC時刻と合わせるための仕組みが必要になります。また、計算機は時刻の進みを次節で説明するクロックから算出して更新しているため、定期的にUTC時刻と同期を行なわないと徐々にずれていくことになります。 UTC時刻は、グリニッジ子午線(経度0度)での真夜中を0時0分0秒として1日の時間を表現します。しかし、ユーザの生活している国・地域(ロケール)では、それぞれロケール毎に基準となる子午線(経度)を決めて時刻を表現しています。例えば日標準時は東経135度を子午線として時刻を表現します。UTC時刻とは9時間(経度15度につ

  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

  • Javaのhello worldの読み方 | mwSoft

    前書き お馴染み、hello worldのソース。 class Hello { public static void main(String[] args) { System.out.println("hello world"); } } このコードはコンパイルされると、こんなバイトコードになります。 ca fe ba be 00 00 00 32 00 22 07 00 02 01 00 05 48 65 6c 6c 6f 07 00 04 01 00 10 6a 61 76 61 2f 6c 61 6e 67 2f 4f 62 6a 65 63 74 01 00 06 3c 69 6e 69 74 3e 01 00 03 28 29 56 01 00 04 43 6f 64 65 0a 00 03 00 09 0c 00 05 00 06 01 00 0f 4c 69 6e 65 4e

  • java.util.Date―その悲劇と歴史 - k.hasunuma's programming studio

    今回はJavaプログラマにはおなじみ、java.util.Dateについて考察します。 java.util.Dateは、Javaの初版から含まれているAPIで、これまでに使い勝手の悪さを散々叩かれながらも、いまだリプレイスされずに使われ続けている、とても残念なクラスです。このクラスに対する苦情を挙げていくと、思いつくだけでも、 日付・時刻フィールドを直接設定できない(一応可能ではあるが非推奨である)。 月フィールドが 0 から始まる(ただしget/setするメソッドは非推奨である)。 CalendarやTimeZoneなしでは時差を表現できない。 DateFormatがなければ(あっても?)まともに文字列表現も生成できない。 toString() の出力形式が最近主流のISO 8601形式でない。 日時の加算や減算ができない(Calendarの使い勝手の悪いメソッドを使えば可能)。 JDK

  • Javaメモ目次(Hishidama's Java Memo)

    Javaの基礎(というか入門的な内容)から ちょっとした応用までをメモしています。 単純にJavaと言っても、場合によってソースを書く際の文法・ライブラリ(クラス)の使用方法・GC(ガベージコレクション)等のJavaVMの機構/動作など様々な事柄を含みます。 コンパイル・実行関連 [/2023-09-23] 文法関連 [/2023-09-24] ライブラリー関連 [/2024-03-11] サードパーティー関連 [/2022-11-11] 定石 [/2021-03-21] 新機能 [/2023-09-24] キーワード(抜粋)一覧 参考書

  • Javaフレームワークの比較検討資料公開 - 矢野勉のはてな日記

    Java仕事で各種フレームワークを比較検討したので、比較用に作った参考資料を公開します。ちなみに現在私は、ドワンゴさんの社内システム開発をお手伝いしてまして、その一環で調べたものです。会社資料じゃなく、私の資料ということでブログで公開してよい、むしろしとけ、とのことなので公開しときます。 今回の案件向けにアプリケーションを画面層コンテナ層データアクセス層に分けて、それぞれフレームワークを選ぶのが目的です。コンテナ層はDIコンテナのうちいずれか、データアクセス層はO/Rマッパーを選ぶことになります。 太枠の範囲が選定対象です。よくに出てくる杓子定規な階層図とは変えてあります。 次のものを比較検討しました。画面層SAStrutsApache Wicket(ほかにもTeedaとかClick Frameworkとかももともとは候補にあったが、調査が追いつかないので二つに絞った)コンテナSeasa

  • Javaジェネリクス再入門 - プログラマーの脳みそ

    ジェネリクスでは、「型」を変数にした「型変数」というものを取り扱う。型変数で何が嬉しいかというと、メジャーな例ではコレクションAPIが挙げられる。java.util.Listとかjava.util.Mapとかのデータを格納するタイプのユーティリティクラスのことだ。 2004年にJavaのバージョンが5.0となるまでは、Javaにはジェネリクスの機能はなかった。なので、Listにデータを格納し、取得する場合は List list = new ArrayList(); list.add("hello!"); String str = (String) list.get(0); といったソースコードになる。 add()の引数はObject型で宣言されており、どんな参照型でもadd()することができた。 get()の戻り値もObject型で宣言されておりキャストが必要だった。このキャストはプログラ

    Javaジェネリクス再入門 - プログラマーの脳みそ
  • Javaバイトコード入門

    https://ntt-developers.github.io/ntt-tech-conference/2022/ 従来は Docker がコンテナエンジンとして幅広く利用されてきましたが、最近は KubernetesDocker 対応を打ち切るなど、風向きが変わってきました。 セッションでは、Docker に代わって普及しつつあるコンテナエンジンである containerd について、Docker との違いや移行方法を紹介します。 P2P でのイメージ配布など、最新の機能についても紹介します。

    Javaバイトコード入門
  • S2Unit

    目次 S2Unitを使ったテストクラスの作成方法 S2Unitの機能 Excelファイルの作成 モックインターセプタ モックを作成するための設定 モックの使用方法 モックの使用例 S2Unitを使ったテストクラスの作成方法 テストクラスは、org.seasar.extension.unit.S2TestCaseを継承して作成します。またS2TestCaseはJUnitを拡張したクラスなので、テストメソッド等の使用方法はJUnitと同様です。 S2Unitの機能 S2Containerを使った開発のテストを簡単に行えるように以下の機能があります。 ・S2Containerの自動生成 S2Containerを生成する場合、テストメソッド(testXxx)ごとに自動的にS2Containerを作成します。 S2ContainerFactory.create(PATH)と記述してS2Contain