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.
int などへのアクセスとは異なり、long へのアクセスはアトミックな処理ではないため、マルチスレッド環境では排他処理が必要になります。普通に処理排他処理をするのであれば ReentrantReadWriteLock を使いそうなものですが、純粋に long のみをアトミックに扱いたいだけであれば、AtomicLong が使えます。しかし、性能がどの程度異なるのでしょうか。ということで、ベンチマークしてみました。 処理概要 long への read と write を交互に合計100万回行うスレッドを10スレッド並行動作させた時間を計測。 long のテストは、long をフィールドとして持つクラスを作成し、get では ReadLock を使用、set では WriteLock を使用。 AtomicLong のテストは、AtmicLong#get() と AtomicLong#set
You might find one of the following links useful: Archive Home page You can also try to search for the page you were looking for: You may not be able to find the page you were after because of: An out-of-date bookmark/favorite A search engine that has an out-of-date listing for us A miss-typed address
みなさまJava SE 6への移行は進んでおりますでしょうか。もう7月になったということはJava2 SE 5.0のサポート期間は4ヶ月をきったということですよ。 そこで今後はJava SE 6での地味な改良をあげていきたいと思う。派手な話題はみんな飛びつくけど、地味な改良が実はうれしいのだ。 最初はみんな知ってる小ネタから。 J2SE 5.0からPropertiesがXMLを扱えるようになったのはご存知のとおり。それまでは7bitなファイルしか扱えなかった。理由はPropertiesクラスが1.0のときに登場した古参クラスであるということ。1.0はマルチバイトが対応しておらずみんなこんな感じだった。そもそもHashTableを継承してるのはどうよ、とかいいたいことはたくさんあると思うのだが、Javaが発表されたのが14年前。その前からあったことを考えると仕方あるまい。C++ですら標準化さ
2008年12月4日(米国時間)、とうとうJavaFXがリリースされました。2007年のJavaOneで発表されて以来1年半、やっとリリースまでこぎつけました。そこで、このたびリリースされたJavaFX 1.0をベースに、短期集中連載としてJavaFXを解説していきます。 JavaFXとは何だ JavaFXはSun Microsystems(以下Sunと表記します)が提供するリッチクライアント向けの新しいプラットフォームです。Javaという名前が入っていますが、Javaとは別個のプラットフォームです。とはいうものの、技術的にはJavaがベースになっています。 JavaFXの開発はオープンソースで行われています。java.netのOpenJFXプロジェクトを中心に、OpenJFX-CompilerプロジェクトやSceneGraphプロジェクトなどで精力的に開発が行われています。ただし、現
jrunscriptビルトインオブジェクト一覧 (Java 1.6.0 RC b70) JavaScript, Rhino Java 1.6(Mustang)にはスクリプト実行コマンドjrunscriptが添付される。 jrunscriptは、対話的にシェルとして使うことも、スクリプトファイルを読み込み実行することもできる。 Rhinoの、org.mozilla.javascript.tools.shell.Mainクラスに類似する機能を持つ。 簡単な利用方法は以下を参照のこと。 Java SE 6 Mustang じゃじゃ馬ならし Scripting jrunscriptは、簡単なタスクから共通的に利用する基本となる関数群をビルトインオブジェクトとして提供している。 以下、JavaOne発表資料PDFの28ページで紹介されている。 Scripting for the Java Platf
This weekend I took a big step in upping the ante for JavaScript as a Language. At some point last Friday evening I started coding and didn’t stop until sometime mid-Monday. The result is a good-enough browser/DOM environment, written in JavaScript, that runs on top of Rhino; capable of running jQuery, Prototype, and MochiKit (at the very least). The implications of this are phenomenal, and I’m no
先日、TopHatenarが全ドメイン対応したことで、任意のブログURLを登録できるようになりましたが、そこで画像認証が必要だったので、JCaptchaというライブラリを使用しました。 JCaptcha overview JavaのCAPTCHAライブラリには他にもSimpleCaptchaなどありますが、僕が試した中ではJCaptchaが一番良いと思いました。 使用方法としては、まずImageCaptchaServiceのsingletonインスタンスを用意しておきます。 import com.octo.captcha.service.image.DefaultManageableImageCaptchaService; import com.octo.captcha.service.image.ImageCaptchaService; public class Captcha { pr
前回はまず、ジェネリクス型パラメータを伴うList同士の代入互換性について述べました。 今回はそれらのListのadd()メソッドとget()メソッドについて見てきたいと思います。 なお、前回同様に C extends B, B extends A という継承関係があることとして以下話を進めます。 入力値の制約 前回で<? extends B>型には <B>も <C>も <? extends C>も代入できると述べました。 List<? extends B> listBEx = new ArrayList<C>(); ということができるわけですね。 さて、このlistBExにadd()をしてみるとしましょう。 listBEx.add(new B()); 実は、これがコンパイルエラーになるのです。 List<? extends B>型には B型をadd()できないのです! というのも、さきほ
数字において、ゼロの発見の偉大さはみな認めるところでしょう。 ないことを表すというのは非常に利便性の高い方法です。 デザインパターンにはNullPobjectパターンというものがあります。 これはオブジェクト指向でのゼロにまつわる工夫ですが、 ジェネリクスでも型がvoidであることを表現する方法があります。 Voidを表すクラス java.lang.Void JavaにはVoidを表現するための java.lang.Void クラスが存在します。 このクラス、とくにメソッドも定義されていなければ、コンストラクタも定義されていないクラスです。 new してインスタンスを作ることさえできません。 Void クラスは、インスタンスを生成できないプレースホルダーとしてのクラスであり、Java キーワード void を表す Class オブジェクトへの参照を保持するのに使用されます。 intのラッパ
____ / \ /\ キリッ . / (ー) (ー)\ / ⌒(__人__)⌒ \ | |r┬-| | Ruby 1.9はクリスマス前にリリースします \ `ー'´ / ノ \ /´ ヽ | l \ ヽ -一''''''"~~``'ー--、 -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒)) ____ /_ノ ヽ、_\ ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ /⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒) | / / / |r┬-| | (⌒)/ / / // | :::::::::::(⌒) | | |
以下のプログラムの出力結果がどうなるか、自信を持って答えられませんでした。 public class Test { static void print(short n) { System.out.println("short"); } static void print(int n) { System.out.println("int"); } static void print(float n) { System.out.println("float"); } static void print(double n) { System.out.println("double"); } public static void main(String[] args) { byte b = 0; print(b); char c = 'a'; print(c); long l = 0l; prin
Java におけるコード進化パターン (Code Evolution Patterns in Java) asato shimotaki <asatohan at gmail.com> 最終更新日 : 2009/6/21 (2004/4/22 より) [...] For twenty years, I spent two or three hours a day looking at pairs of things -- buildings, tiles, stones, windows, carpets, figures, carvings of flowers, paths, seats, funiture, streets, paintings, fountains, doorways, arches, friezes -- comparing them, and asking my
「第1回:Javaはまだまだこれからだ!」では、Java SE 7で計画されているモジュラリティの向上について解説し、それを実現するOSGiについて触れました。 今回からはOSGi仕様が実装されたEclipse Equinoxフレームワークを実際に体験していきましょう。一番身近な例としてEclipseを起動し、OSGiフレームワークの稼動の状況をみていきます。 本連載ではEclipse 3.3を基に解説を進めますが、配布パッケージによっては開発するためのプラグインが足りません。 以下のWebサイトから「Eclipse for RCP/Plugin Developper」か「Eclipse Classic」をダウンロードしてください。 上記はどちらともZIP形式で配布されています。今回はWindows用の「Eclipse Classic」をダウンロードして、任意の場所に展開してください。展開
Javaで有名と思われる、以下のコレクション拡張ライブラリを比較してみました。 Commons Collections Google Collections Library Commons Primitives Trove fastutil Commons Collections Google Collections Library Commons Primitives Trove fastutil Version 3.2.1 0.7 1.0 2.0.2 5.1.5 JAR Size 562kb 450kb 255kb 721kb 13,617kb Bags (Multimaps)*1 O O - - - Bidirectional Maps*2 O O - - - Primitive ArrayLists*3 - - O O O Primitive HashMaps - - - O O
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く