タグ

関連タグで絞り込む (373)

タグの絞り込みを解除

javaに関するkamatama_41のブックマーク (362)

  • Java基本クラス解析

    ここでは、今さら誰にも聞けない(笑)Javaの基クラスについてソースから解析を行います。 解析対象とするJDKは1.4.2です。 新しく書いたものが下(←他のページと逆)になるように並べてあります。 String やはり最初にこのクラスを解析しておく必要があるでしょう。 最も使用頻度が高いクラスの一つであることは間違いないこのクラス、 使い方によっては思わぬパフォーマンス低下を招くこともあります。 文字列格納フィールド まず、クラスの最初に定義されている一文はこれです。 private char value[]; char型はプリミティブ型であり、これ一つで全ての文字を表すことが可能です。 char型は常に Unicode 形式で扱われます。 よって、文字コードを意識する必要はありません。 これはほとんどの面で便利なのですが、唯一欠点があります。 文字コードを意識する必要が無い代わりに、

  • Oracle Java Technologies | Oracle

    Java Is the Language of Possibilities Java is powering the innovation behind our digital world. Harness this potential with Java resources for student coders, hobbyists, developers, and IT leaders.

  • 次世代のモックフレームワークであるJMockitの基本的な使い方 - 達人プログラマーを目指して

    以前のモックフレームワークの技術的制約 今まで私が担当してきたプロジェクトにおいては、モックオブジェクトを使ったJUnitの単体試験はjMockとEasyMockのいずれかのフレームワークを利用して行ってきました。しかし、これらのフレームワークはJavaプラットフォームにおけるコード自動生成の考え方の変遷で説明したように動的プロキシーに基づいているため、以下のような制約がありました。 モック化する対象の型はインターフェースを実装しているか、継承可能なクラスであること モック化するメソッドはfinal、static、privateでないこと*1 モック化するロジックはコンストラクターの呼び出しではないこと モックオブジェクトをテスト対象クラスにDIかパラメーター経由で引き渡すことが可能であること モック化する場合はクラス全体をモック化する必要があること(getterやsetterなどは物の

    次世代のモックフレームワークであるJMockitの基本的な使い方 - 達人プログラマーを目指して
  • JMockitを使ってみる - torutkのブログ

    ユニットテスト対象のクラスが、別なクラスのstaticメソッドを呼んでインスタンスを取得し、そのインスタンスのメソッドを呼び出し、その戻り値によってロジックが左右されるという場合のテストを想定します。 テスト対象クラス // 気象センサーから取得した気温が30度を超過していたら、 // 異常を報告する気象監視クラス。 package monitor; import sensor.WeatherSensor; import sensor.SensorFactory; public class ThresholdMonitor { private WeatherSensor sensor; public ThresholdMonitor() { sensor = SensorFactory.getWeatherSensor(); } // 気温を監視し30度を超過していたら異常を報告する。 p

    JMockitを使ってみる - torutkのブログ
  • 4. スレッドの制御 (4)

    4.4. スレッドを停止させるには stopメソッドは推奨されないメソッドでした。それでは、スレッドを停止させるにはどうすれよいのでしょうか。 スレッドが自分自身を終了させるには、実行中のrunメソッドを終了するようにしておきます。startメソッドによって新しく起動されたスレッドは、runメソッドが終了すると消滅します。 自分以外のスレッドを終了させるには、一般的に次のような方法を用います。 runメソッドを実装したクラスで、スレッドの実行状態を表現するboolean型変数を宣言する。 runメソッド内で、繰り返しスレッドの実行状態を確認し、実行状態が「終了」を示す値になっていればrunメソッドが終了されるようにしておく。 そのスレッド実行状態を変更するためのメソッドを宣言する。 スレッド実行状態を「実行中」を示す値に設定し、新しいスレッドを起動する。 外部から、スレッド実行状態を変更す

  • J2SE, v1.4 の新機能 New I/O Channel 基礎編

    今回取り上げる Channel は、ファイルや Socket といった今までストリームとして扱っていたものに対するコネクションを表すインタフェースです。 今まで java.io パッケージで提供されていた InputStream/OutputStream やその派生クラス群があるのに、なぜ Channel を新たに導入したのでしょうか。 一番大きな理由はやはりパフォーマンスのようです。 ストリームだとちまちまと読み書きを行うイメージがありますが (あくまでもイメージです ^^;;)、Channel をインプリメントしたクラスではガバッと読んで、ガバッと書き込みを行うという感じです。まとめて行うので、その分効率が上がるというわけです。ここで活躍するのが前回の Buffer です。 実際には java.nio.channels.Channel インタフェースには読み込みや書き込みのメソッドは定

  • 「New I/Oで高速な入出力」第1回 New I/Oをご存じですか

    Java SEには便利な機能が数多くあるのですが,新しい機能ほど活用されていないのではないでしょうか。筆者がJ2SE 1.4であまり使われていないのではないかと感じる機能を挙げてみます。 Assertion New I/O Image I/O Preferences API Logging API AssertionやLogging APIは,JUnitLog4Jなどのオープンソースのプロダクトで置き換えられるので,それほど使われていなくても不思議ではありません。 しかし,JPEGのイメージを出力するために,いまだにcom.sun.image.codec.jpeg.JPEGImageEncoderクラスを使用しているのは腑に落ちません。J2SE 1.3の頃に作られたアプリケーションであればわかりますが,J2SE 1.4以降に作られたアプリケーションではImage I/Oを使うべきではない

    「New I/Oで高速な入出力」第1回 New I/Oをご存じですか
  • Eclipse の起動を 5 倍高速化するには - cypher256's blog

    Pleiades を使わない。以外の方法で。少し前に Eclipse プラグイン界のドンのたけぞうさんとご一緒させていただいたときに、同席させてもらった隣の人が Eclipse 起動速くしてよ! って言ってましたが、今でも言ってます。正直すみませんでした。でもたけぞうさんがきっとそのうち作ってくれると密かに期待していたのですが、もう逃げられなくなってきたので、ちょっと色々と。 eclipse.ini で高速化 -Xmx と -Xms を同じサイズにする。これはメモリに余裕があれば速くなるよって、Oracle や HP、昔の BEA が公式に言ってました。最小サイズから拡大するときの再計算が無くなるからって。実際サーバーでは、これに習って同じサイズにすることが多いと思います。Eclipse で実測すると。全然変わらん。その他、JVM のパラメーターが色々ありますが、計っても誤差か分からない結

    Eclipse の起動を 5 倍高速化するには - cypher256's blog
  • 心地良すぎるモックライブラリ Mockito 〜その1〜 - A Memorandum

    EasyMockとの違い Eclipse での利用に際して org.mockito.Mockito モックの利用と妥当性検証 スタブメソッドの定義 引数の照合 メソッド呼び出しの妥当性検証 voidメソッドから例外を返却 API的に EasyMock と大きな違いはありませんが、使用感としては格段に心地良い Mockito。 [:W150] 家 http://mockito.org/ のドキュメント(というかJavaDoc)をベースにメモ。 EasyMockとの違い Mockito では record モードと replay モードを切り替える必要がない Mockito で作成するモックは常に、EasyMock で言う NiceMock となる スタブメソッドの妥当性検証が常にオプション扱い 大きくは以上となります。具体的に、EasyMock では import static org.e

    心地良すぎるモックライブラリ Mockito 〜その1〜 - A Memorandum
  • JSON/Json-libを使う/JSONからJavaへいろんな変換 - きのさいと

    以下のような親子モデルで、ネストしたオブジェクトが正しく変換されるか、配列やListやSetなどが正しく変換されるか試してみます。 public class Parent { private String name; private int id; private Child child; public Child getChild() { return child; } public void setChild(Child child) { this.child = child;} public int getId() { return id;} public void setId(int id) { this.id = id;} public String getName() { return name;} public void setName(String name) { this

    kamatama_41
    kamatama_41 2012/03/30
    jsonをjavaで扱いたいです
  • Javaのオブジェクトサイズの測り方、sizeof - minghaiの日記

    2009/03/01 追記 こちらにより新しい便利なツールが紹介されています。 いー ドット ぷりんとすたっくとれーす: Javaのインスタンスが使っているメモリサイズをみたい ↓以前の日記はここから Javaではオブジェクトのサイズは謎だった。 プリミティブな値のサイズは仕様書にて指定されているのだが、オブジェクトのサイズは仕様外であるので実装依存である。 またオブジェクトのサイズを測るAPIがJ2SDK1.4までは存在しなかったのでオブジェクトのサイズは重要な割りに謎だった。 特にOutOfMemoryを頻出するJ2EE開発者には咽喉から手が出るくらい欲しい機能であったと思う。*1 この謎を解明してくれたのがVladimir Roubtsovさんだ。 Java Tip 130: Do you know your data size? | JavaWorld Sizeof for Jav

    Javaのオブジェクトサイズの測り方、sizeof - minghaiの日記
  • Java のオブジェクトのメモリ使用量について - kameidの備忘録 - Sharpen the Saw!

    http://www.javaworld.com/javaworld/javatips/jw-javatip130.html の記事より。まとめるとこういう感じ。 ・すべてのオブジェクトは基的に最低 8byte を要する。 Object は 8byte ・CPU に依存する話ではあるが、8byte ワードバウンダリで、 Long の場合、16byte、Integer の場合、12byte とはならず、 Integer の場合も 16byte となり、4byte は使われていない。 ・プリミティブ配列の場合は、基の8byteプラス、8byte単位で拡張。 int なら 0->16 byte 1->16 byte 2->24 byte 3->24 byte ... という感じ。 ・多次元配列はオーバーヘッドがでかい。 int[256] は 1040byte 消費なのに対して、int[256

    Java のオブジェクトのメモリ使用量について - kameidの備忘録 - Sharpen the Saw!
  • Javaのインスタンスが使っているメモリサイズをみたい

    高確率で思い込みによる説明.間違っていることが多い./「無知だったり、勘違いしていたり、底意を押しつけたり、いいかげんだったり、噂や疑惑を信じていたりして、狂気じみてさえいるかもしれません」( http://bit.ly/gs23zg ) まぁお気づきと思いますがここのところメモリの問題で悩んでたわけです. 結局,Java6.0SEであっさり問題を発見できたのですけどその最中に色々やっていたのが"SizeOf". みんな色々とやってたんですねぇ. http://d.hatena.ne.jp/minghai/20060319/p1 でもって結局うまく動かせたのはこれ. http://sourceforge.net/projects/sizeof 動かすには以下 1.Java5.0SE以上 2.配布されているSizeOf.jarにクラスパスに通す 例えばlib/SizeOf.jarとなるように

  • RMIについて

    RMIとは RMIとは、Remote Method Invocationの略で、別のホストJavaオブジェクトのメソッドを呼び出すための通信手段です。 RMIを使うと、通信を意識せずに、Javaのサーバ、クライアントプログラムを作成することができます。 RMIの構成 RMIでは、クライアント側にスタブモジュール(Stub)を用意し、サーバ側にスケルトンモジュール(Skel)を用意する必要があります。 これらのモジュールは、rmicコマンドで作成できます。 動作の流れとしては、クライアントがサーバのメソッドを呼び出すと、スタブのリモートインターフェイスが、メソッドの引数をネットワークのストリームに変換してくれます。 このストリームを、サーバ側のスケルトンが受け取り、サーバのリモートオブジェクトのメソッドを呼び出します。 また、返却値は、サーバのリモートオブジェクトから、スケルトン、スタブに

  • http://msugai.fc2web.com/java/thread/create.html

  • 5ちゃんねる error 3001

    掲示板に戻る■ datが存在しません。削除されたかURL間違ってますよ。 read.cgi ver 05.05 2023/04/05 Walang Kapalit ★ FOX ★

  • 配列(List)の要素をランダムに並び替える | WebLog about me.

    List内の要素をランダムに並び替えるJavaのプログラムのサンプルです。 package com.knowd.util; import java.util.ArrayList; import java.util.List; import java.util.Random; /** * * @author yyamazaki@knowd.co.jp * @version 2009/3/1 */ public class RandomArray { public static List randomOrder( List list ) { List tmpList = new ArrayList(); Random random = new Random(); while( list.size() > 0 ) { int r = random.nextInt( list.size() );

  • きままにプログラム FreeMarker備忘録

    テンプレートエンジンにVelocityというものがあり、ちょこっとだけ使用したことがあります。 Velocityは確か日語の書籍もでていたと思います。 同様にテンプレートエンジンで、FreeMarkerというのもあります。 FreeMarkerを動かしてみます。 DownLoadは以下から。 http://freemarker.org/ ライセンスは1.xはLGPLで、それ以降は BSD-style licenseのようです。 以下の環境でやってみます。 java version 1.5.0_15 Eclipse3.3.1.1 freemarker-2.3.13 Eclipse上で freemarker(プロジェクト) -src FreeMarkerTest.java -templates test.ftl といった構成で作ってみました。 テンプレートファイルをロードして、データ(Map

  • Javaのクラスとオブジェクトについて再度解説を試みる - 達人プログラマーを目指して

    オブジェクト指向プログラミングの考え方については、今までこのブログでも何度か取り上げてきました。 [オブジェクト指向] - 達人プログラマーを目指して オブジェクト指向プログラミングはプログラミング技法のすべてではないとはいえ、Javaのようなオブジェクト指向言語で格的なプログラムを作るには理解を避けて通ることができませんし、また、関数型言語など他のパラダイムの言語を利用するにしても、オブジェクト指向の考え方をまったく理解しないまま使いこなすということは困難でしょう。オブジェクト指向の考え方はデータ構造やアルゴリズムといったことと同様に、プロフェッショナルなプログラマーが理解しておくべき基的な素養といってもよいと思います。実際、海外では募集要項でオブジェクト指向の理解を前提とすると書かれていることが普通ですし、プログラマーの面接試験で、アルゴリズムと並んでオブジェクト指向プログラミング

    Javaのクラスとオブジェクトについて再度解説を試みる - 達人プログラマーを目指して
  • 『[Java] 正規表現によるパターンマッチング』

    よく使うわりに、よく使い方を忘れるのでメモしておきます。 正規表現によるパターンマッチングを行うには、java.util.regex パッケージの Pattern クラスと Matcher クラスを利用します。 Pattern クラスは正規表現パターンを表すクラス、Matcher クラスはマッチングを行うクラスで、それぞれ、以下のように準備します。 String value = "This is a pen."; String pattern = "\\w+"; Pattern p = Pattern.compile(value); Matcher m = p.matcher(pattern); 最終的に使用したいのは Matcher クラスなので、以下のようにしてもいいかもしれません。 Matcher m = Pattern.compile(pattern).matcher(value)

    『[Java] 正規表現によるパターンマッチング』