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.
出版されている技術書のタイトルやネット上での情報を元に、なんとなくシステム開発で使われる技術が国によって差があるように感じるということを、これまでいろいろな記事で書いてきたのですが、はたして実際のところはどうなのでしょうか?300年前なら、Manningのin actionシリーズの表紙に描かれている人物*1のように国ごとにいろいろな衣装があって多様な文化が存在していたのでしょうけれど、文明化された現代では、服装も食べ物もそれほど違いがないというところがあります。IT業界は文字通り情報を扱う産業なのですから、世界中の最新の情報が集まってきてしかるべきなわけであり、どの国でも大差がないはずという推測もできないわけではありません。 あくまでも目安なのですが、Google Insights for Searchというサービスを利用すると、単語の検索回数を地域ごとに集計することで、各地域でどういっ
今回紹介するSpring Roo(以下、Roo)は、2009年12月31日にバージョン1.0.0がリリースされたばかりのSpringSourceの新しいプロダクトだ。 Rooは、コマンドラインからソースを自動生成するツール。Rooが開発された目的は、生産性の向上及び仕様変更や機能追加にも耐えうる継続的な開発を容易にすることである。 Rooが作成するソースは、Java界隈においてメジャーなフレームワークを利用しており、これまで培ってきたJava技術者の知識や経験を生かしつつ、よりクリエイティブに、より楽しく作業できることを目指している。 生産性に関しては、以前のSpringフレームワークは、設定ファイルを大量に記述しなければいけないなど批判されることもあった。Springフレームワークのバージョンアップと共に必要となる設定ファイルの量は確実に少なくなっているものの、それでも依然として相当量の
どのクラウドが受託に向いているか? Javaに未来はない、インフラ担当にも未来はないのか ~ クラウドごった煮パネルディスカッション(PaaS編 後編) 国内にあるクラウドのユーザーコミュニティに集まってもらい、ディスカッションを行う日本で初めてのイベント「クラウドごった煮」が、昨年末12月11日に開催されました。Windows Azureのユーザー会(Japan Windows Azure User Group、JAZ)の人たちが中心になり、つてをたどってほかのクラウドのユーザー会などに呼びかけて実現したものです。 (この記事は「Google App Engineは敷居が高いのがメリット? セールスフォースは開発生産性が高いが制限にも苦しむ ~ クラウドごった煮パネルディスカッション(PaaS編 前編)」の続きです) Javaに未来はない? 新野 PaaSの場合は言語とデータベースが決ま
今回は、nullの扱いは気をつけようねというお話。特にこれからの人に読んでもらいたい。 nullは変数を初期化する時などに、当たり前のように登場します。Javaではnullがないなんて考えられないわけです。(C#でも同様) しかし、nullの考案者のTony Hoareは「10億ドル単位の過ち」と発言しています。 null参照の考案は10億ドル単位の過ち?(スラッシュドット・ジャパン) - エキサイトニュース nullには、それだけの魔性があって使い方を考える必要があります。nullは”値が存在しない”という状態を表現する時に使われることが多いのですが、そのnullに対する注意が十分に払えずにトラブってしまうことが多いのです。Scalaではその"値が存在しない"という状態をOption型のNoneで表現することでnullを回避する手段が提供されています。JavaではScalaのようにはでき
TIOBE Programming Community index TIOBE Softwareから2010年12月のTIOBE Programming Community Indexが公開された。TIOBE Programming Community Indexは複数の検索エンジンの検索結果から対象とするプログラミング言語がどれだけ話題になっているかをインデックス化したもの。2010年12月におけるインデックスは次のとおり。 プログラミング言語 インデックス 年間推移 備考 1 Java 17.999 ↑ 5ヶ月連続1位 2 C 16.076 ↓ 3 C++ 9.014 ↓ 4 PHP 7.511 ↓ 5 C# 6.687 ↑ 6 Python 6.482 ↑ 7 (Visual)Basic 5.118 ↓ 8 Objective-C 3.242 ↑ 上昇傾向に戻る 9 Perl 2.3
Java用の非同期HTTP通信ライブラリ AsyncHttpClentはJavaプログラムにおいて非同期のHTTP通信を行うためのクライアントライブラリである。Javaに標準で付属するHTTP通信用のUrlConnectionクラスは最低限の機能しか実装されていない。ApacheのJakarta Commonsプロジェクトの成果物であるApache HttpClientは高性能ではあるが、クライアントプログラムはサーバからのレスポンスを待ってから処理する同期通信を行う。また、メモリ上にバッファリングを行うため巨大なファイルの送受信に適していないことや、I/OライブラリがApache HttpClientで提供されるものしか使えないといった問題がある。 AsyncHttpClientの場合、クライアントプログラムがサーバのレスポンスを待たずに処理を続行する非同期通信を行うことができる。速度優
JNIを使ってCなどのnativeプロセスからJavaVMを起動し、さらにそのJavaVMからnativeメソッドをコールバックさせる方法です。Webで調べた際に、意外と情報が見つからなかったのでメモ。 結論から言ってしまうと、RegisterNativesというJNI関数を使用します。この関数は、jclassとJNINativeMethod構造体の配列を引数に取り、Java側のnativeメソッド宣言とnative側のメソッド本体を動的に結びつけます。 具体的な使い方は、以下のサンプルコードを参考にしてください。 まずは、nativeのコールバックメソッドを持つJavaクラスを作成。 package jnitest; public class JniTest { // nativeから呼ばれるメソッド public boolean entryMethod() { System.out.p
しかし、sendRedirectメソッドによる移動は「リダイレクト」、forwardメソッドによる移動は「フォワード」と呼ばれ、内部的な挙動も性質もまったく異なるものです。ユーザーからは同じように見えますが、開発者はこれらの違いを把握しておく必要があります。 まず、リダイレクトとフォワードの挙動がどのように異なっているのかを簡単に説明しましょう。 リダイレクトの場合、クラアイアントがページXを要求すると、サーバがページYを要求する指示をクライアントに戻します。これによって“クライアントは自動的に”ページYを要求し、結果としてページYがクライアントに戻されます(ページXとページYは、必ずしも同一サーバからのレスポンスではない)。これに対しフォワードは、クライアントがページXを要求すると、“サーバ内で”ページXからYへ処理が移送され、ページYが応答として戻されます(ページXとページYは、必ず同
たとえば、MapインターフェースのkeySetメソッドは、そのマップ内のすべてのキーから構成されているMapオブジェクトのSetビューを返します。一見、keySetの呼び出しは、その都度、新たなSetインスタンスを生成しなければならないように見えますが、あるMapオブジェクトに対するkeySetの呼び出しすべてが、同じSetインスタンスを返しても構いません。返されたSetインスタンスはたいていは可変ですが、返されたオブジェクトはすべて機能的に同じです。つまり、1つの返されたオブジェクトが変更されたら、他の返されたオブジェクトすべても変更されます。なぜならば、それらのオブジェクトはすべて、同じMapインスタンスによりバックアップされているからです。keySetビューオブジェクトの複数インスタンスを生成しても無害ですが、複数生成する必要もありません。 HashMap hash=new Hash
Q: Java 製品を Mac OS X に移植しています。他のプラットフォームでの JDK のインストレーションに共通するディレクトリとパスに相当するものは何ですか? A: J2SE はすべての Mac OS X にプリインストールされているコンポーネントであるため、Java VM の場所と構造は管理され、一貫しています。Java 関連のパスおよびディレクトリの情報を取得するために、ユーザからの入力は必要ありません。 Java ホーム。多くの Java アプリケーションは、インストール時に "Java ホーム" ディレクトリを指定する必要があります。Mac OS X ではこれに相当するものは、常に /Library/Java/Home です。実際には、これは現在インストールされているバージョンの J2SE へのシンボリックリンクで、これを使うと、java、javac などのコマンドラ
ジェネリクスでは、「型」を変数にした「型変数」というものを取り扱う。型変数で何が嬉しいかというと、メジャーな例ではコレクション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型で宣言されておりキャストが必要だった。このキャストはプログラ
JDK 1.4 から導入された Image I/O のおかげで Java から各種フォーマットの画像を簡単に読み書き出来るようになった。 // 画像の読み込み File file = new File("photo.jpg"); BufferedImage img = ImageIO.read(file); // 画像の書き込み file = new File("photo.png"); ImageIO.write(img, "PNG", file); 標準でサポートされているフォーマットは、JDK 1.4 で GIF (読み込みのみ), JPEG, PNG、JDK 1.5 では加えて Windows (OS/2) Bitmap, Wireless Bitmap が追加されているようだ。どのような形式をサポートしているかは以下のコードで確認できる。 String[] format = Im
This is the parent project for all Java Advanced Imaging Image I/O Tools related sub-projects on java.net. These sub-projects include: jai-imageio-core (the core Java Advanced Imaging Image I/O Tools API), and jai-imageio-demos (the Java Advanced Imaging Image I/O Tools demonstration programs). See the complete list of sub-projects at the bottom of this page. Note that there is no source code in t
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く