タグ

Javaに関するdaipresents2のブックマーク (18)

  • 一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選 - 設計と実装の狭間で。

    10万行コード読んだらJava分かるよってTwitterに書いたらすげぇ勢いでRTされたので、調子に乗って捕捉エントリ書くよ。 Java Core API JDKインストールしたディレクトリに入ってるsrc.zipを展開すると入ってるから読むと良いよ。 すぐ近くにあるのから読むってのはメンタル的に楽でいい。 厳密にはOSSじゃなくて単に公開されてるってだけなんだけども、JavaプログラマなのにコアAPIのコード読んでないとか無いよね? どれから読めば良いか分からんかったら、 java.lang java.util java.io java.text 辺りをまずはキチンと理解すること。当然コードを読み終わったら、それを使ってコードを書く事。 OpenJDK http://hg.openjdk.java.net/jdk7/jdk7 OpenJDKを読むことで、プログラム言語してのJavaではな

    一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選 - 設計と実装の狭間で。
  • 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ジェネリクス再入門 - プログラマーの脳みそ
  • 第1回 なぜSpringなのか

    Webアプリケーションは,レイヤーによって論理的に分割され,各レイヤーでは様々なフレームワークを使用して効率的に開発を行います。例えば,図1のようにプレゼンテーション・レイヤーにはStruts,データアクセス・レイヤーにはHibernateを使うといった具合です。各レイヤーに適用するためのフレームワークは様々な種類があるため,作成するアプリケーションの要件に合わせて選びます。 このように各レイヤーごとに,フレームワークを適用して開発する方式はかなり一般的になりましたが,実際にプログラムを作っていく上で,いくつかの問題が出てきました。 変更に弱い 図1を見ると,各レイヤーは一見独立しているように見えるのですが,実際のところ,隣り合うレイヤーは密接に連結しています。例えば,ビジネス・レイヤーからデータアクセス・レイヤーのオブジェクトにアクセスする場合,通常は以下のようなプログラムになるでしょう

    第1回 なぜSpringなのか
  • http://www.itarchitect.jp/beginners/-/10422.html

  • Javaでの文字コードの扱い - MyMemoWikiOld

    仕様では、String クラスはUnicode文字の並びを表す String クラスのソースコード(%JAVA_HOME%/src.zip)を見ると、Unicode文字の並びをchar型の配列として保持している。 char型は、Unicode文字を表す16ビット符号無し整数で、'\u0000'〜'\uffff' すなわち 0〜65535を表現できる Javaで扱うUnicodeは、1文字を16ビット(2バイト)UCS-2である。 現在はUnicode全体は4バイトで定義(UCS-4)されている。 ソースコードの変換 ソースコードのコンパイル時、プラットフォームの文字コードやファイルの文字コードに依存してしまう。 Windowsでソースを書いてLinuxでコンパイルを行ったりするような場合には、プラットフォームとソースコードの文字コードの不一致によって文字化けが発生する。 native2as

  • JAVA エンコード

    (注)JISAutoDetectは、ISO2022JP SJIS EUC-JP を自動判別する。但しSDK1.3以降のみで使用可 (注)setCharacterEncoding()はSJIS、setContent-Type()はShift_JIS系を使う。 (setCharacterEncoding()はTomcat4.0 servlet2.3 JSP1.2 から使用可) (setContent-Type()はそれ以前のバージョンから使用可) ○各種エンコーディングの説明 ・JISエンコード メールで使われている 先頭1ビットをぬかした7ビットX2で表現。先頭は0でうめられる キャラクタセットはJISX0201 JISX0208 を使用 半角カタカナは表現できない(ことが多い。表現できても互換性が低い) ・シフトJISエンコード WINDOWSで使用されている WI

  • Javaスタイルブック

    チームで一つのソフトウエアを作るときは,コーディング規約を厳密に決めておくものだ。この点があやふやだと,保守が困難なコードができてしまうし,バグも出やすい。ソフトウエアの規模が大きくなればなるほど,その傾向は顕著になる。 このは,7人の世界的に著名なプログラマたちが考えるJavaのコーディング規約を記したものだ。目次だけを見れば,フォーマット規約や命名規約など,あって当たり前で普通は強く意識しない項目が並んでいるが,読み進めてみると,一つひとつがシステム開発の過程から生み出された知恵だと感じるだろう。 また,開発者からの視点だけではなく,保守を担当するシステム・エンジニアに向けたドキュメントの書き方をカバーしている。近年では,インターネットを通じて,自分の記述したコードを不特定多数の人に見てもらう機会もあるだろう。他人に理解されやすいコーディングを身に付けたいプログラマには打ってつけの一

    Javaスタイルブック
  • J2SE 5.0 Tiger 虎の穴 Monitoring and Management for Java Platform

    JVM がどのような状態にあるかを調べることはアプリケーションには非常に重要です。 開発中であればメモリリークはないか、スレッドがデッドロックしていないかなどを調べることは不可欠です。運用中であってもメモリの使用量や CPU の使用量、スレッドの状態をモニタリングすることでアプリケーションが正常に動作しているか調べることができます。 実をいうと Tiger 以前でも、一般的にプロファイラと呼ばれるアプリケーションを使用することで JVM の状態を調べることは可能でした。市販の製品では Borland の Optimizeit や Quest Software の JProbe (日での扱いは Tangent Computing もしくは グレープシティ) などがあります。フリーのものであれば、Eclipse Profiler Project や JMP などがあります。 これらのプロファ

  • itarchitect.jp

    This domain may be for sale!

  • 「JMXでソフトの健康をがっちり管理」第8回 Model MBean - Commons Modelerコンポーネントを使用して

    「JMXでソフトの健康をがっちり管理」 第8回 Model MBean - Commons Modelerコンポーネントを使用して 先々週のStandard MBeanの実装であるDispatcherInfoクラスをよく見てみると,管理対象のオブジェクトへの橋渡しをしているにすぎません。 とすると,この部分を自動的に生成できるのではないかと考えられませんか。このような定型的な記述を自動化してくれるのがDynamic MBeanです。その中でもよく使われているのがModel MBeanです。 Dynamic MBeanを使用すると,Standard MBeanのようにインタフェースやクラスを作る必要がありません。その代わり,「管理対象のオブジェクトにどのようなgetter/setterがあるか」「操作にはどのようなものがあるか」といった情報(メタデータ)を記述します。 JMXでは,このような

    「JMXでソフトの健康をがっちり管理」第8回 Model MBean - Commons Modelerコンポーネントを使用して
  • 「New I/Oで高速な入出力」第2回 バッファとチャネルを使用した入出力

    先週はNew I/Oを紹介しました。今週からは実際に使ってみましょう。 ここで使用するサンプルは「ファイルのコピー」を行います。ストリームを使用したものが1種類とNew I/Oを使用したものが3種類,合計4種類のサンプルになります。 サンプルのダウンロードfilecopy.zip filecopy.zipにはソースコードとJDK 5.0 update 6でコンパイルしたクラスファイルが含まれています。 使い方はすべて同一で,引数にコピー元のファイルとコピー先のファイルを指定します。例えば,ストリーム版サンプルでsource.txtをdestination.txtにコピーする場合は次のようになります いろいろなサイズのファイルをコピーしてみると,コピー速度の違いを感覚的に理解できるはずです。 とはいうものの,どの程度違うか具体的な数字がないとわからないですね。そこで,テストを行うためのCop

    「New I/Oで高速な入出力」第2回 バッファとチャネルを使用した入出力
  • Java 技術情報 - Java EE

    Java Platform, Enterprise Edition (Java EE) は、エンタープライズシステムのための共通のプラットフォームを定義します。 Java EE テクノロジとそのコンポーネントベースのアプリケーションモデルは、エンタープライズアプリケーションの開発と配備をシンプルにします。 Java EE プラットフォームはセキュアで信頼性が高く、さらに相互運用性に優れたビジネスアプリケーションの開発を可能するための基盤を提供し、また Web サービスもサポートします。 Java EEを構成するテクノロジーには次のものがあります。 Java EE 5 »Java Platform, Enterprise Edition 5 (Java EE 5) (JSR 244) Web サービス »Implementing Enterprise Web Services (JSR 1

  • @IT:Java EE 5マイグレーションプラクティス(1)

    第1回 JSF・Spring・Hibernateで次世代Javaに備える 西ヶ谷岳(サン・マイクロシステムズ) 2005/7/6 J2EEの開発環境は大きな変革期を迎えようとしています。年中に最終スペックを公開する予定のJ2EEの次世代仕様「Java EE 5」は、開発の容易性(EoD:Ease of Development)を目指して、全く新しいといえる開発スタイルを提案しようとしています。 この変革はあまりにも大胆な変更であるため、従来のJ2EE 1.4仕様の資産は、ソースコードレベルでの互換性が保たれない部分が多く見られます(バイナリレベルでの互換性は確保されるはずです)。いわばこの過渡期にあるいま、皆さんがJ2EEアプリケーションを設計する場合に、現在開発しようとしているアプリケーションの資産が、将来のJava EE 5環境でも有効に活用できるように考慮することは非常に重要なテー

  • ThreadとHashMapに潜む無限回廊は実に面白い? (1/3) - @IT

    ThreadとHashMapに潜む無限回廊は実に面白い?:現場から学ぶWebアプリ開発のトラブルハック(10)(1/3 ページ) 連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) マルチスレッドのトラブルハックはさっぱり分からない… 対処が難しいトラブルといえば、GC(ガベージ・コレクション)とマルチスレッド処理に起因することが多い。 前々回(「肥え続けるTomcatと胃を痛めるトラブルハッカー 」)と前回(「JavaのGC頻度に惑わされた年末年始の苦いメモリ」)の2回にわたってGC、特にメモリ周りのトラブルを取り上げた。そこで今回は、マルチスレッド処理のトラブルの1つ、「レースコンディション(競合状態)

    ThreadとHashMapに潜む無限回廊は実に面白い? (1/3) - @IT
  • Java技術最前線 櫻庭祐一 連載目次 :ITpro

    今日のソフトウエア開発において,Javaは最も重要なプログラミング言語あるいは開発環境といってもいいでしょう。そこで,ITproではJavaの最新技術についての連載を掲載しています。著者はJavaプログラマ向け情報ページ「Java in the Box」で有名な櫻庭祐一氏です。

    Java技術最前線 櫻庭祐一 連載目次 :ITpro
  • Struts 1/Struts 2 Webアプリケーションフレームワークの比較:CodeZine

    はじめに Struts Webアプリケーションフレームワークが最初にリリースされてから10年近くが経ち、Strutsを利用して開発されたアプリケーションの数は数千に達します。Strutsは、当時から現在に至るまで、JavaベースのWebアプリケーションを作成するうえで最も人気の高いフレームワークです。Strutsにも欠点がないわけではありませんが、信頼性に優れ保守しやすいWebベースソフトウェアの構築を簡単に行うことができます。現在、Strutsを使用するアプリケーションの数は、競合する他のすべてのWebフレームワークを使用するアプリケーションを合わせた数の2倍はあるでしょう。JSFJavaServer Faces)など、Strutsの後に登場した多くのフレームワークがStrutsの概念の多くをそのまま利用していることは、Strutsに対する賛辞に他なりません。 とはいえ、Strutsは

  • 「Java SE 6完全攻略」第1回 Java SE 6 Hard Days Night:ITpro

    待ちに待っていた,Java SE 6がもうすぐリリースされます。されるはずです。されると思うのですが... なぜ,こんなに弱気なのかというと,もともとJava SE 6は今年5月のJavaOneの前にリリースされるされる予定でした。それが,10月に延び,さらに12月に延びたという経緯があるのです。 とはいうものの,最近のビルドでは新しい機能の追加はほとんどなく,バグフィックスがほとんどです。リリースが近いことは確実なようです。 そこで,今月からJava SE 6について取り上げていこうと思います。 Java SE 6では,スクリプトのサポートやWebサービス系のAPIが導入されたことなどが話題になりますが,それ以外にもたくさんの機能が取り入れられています。機能としてみればたいしたことがなくても,役に立つ機能が多くあるのです。 少しでも早くJava SE 6を試してみたいと思われる方も多いで

    「Java SE 6完全攻略」第1回 Java SE 6 Hard Days Night:ITpro
  • @IT:Java TIPS -- HTTPメッセージのやり取りをモニタする

    Webアプリケーションでは、通常Webブラウザを使って動作確認をしながら開発を進めていくことでしょう。しかし、Cookieや認証などHTTPヘッダに含まれる情報を使ったプログラムを作っている場合や、ファイルアップロードなどの際にPOSTフォームで送信されるデータの中身を確認したい場合には、Webブラウザとサーバとでやり取りされている生のHTTPメッセージの内容を確認したくなります。たいていのWebブラウザでは、HTMLソースの閲覧はできますが、ヘッダ情報も含んだHTTPメッセージを見ることはできません。 そんなときに使える便利なツールが、「Axis TCPモニタ」(以降tcpmon)です。tcpmonを使えば、Webブラウザとサーバ間で送受信されるHTTPメッセージをモニタリングすることができます。tcpmonは、ApacheのWebサービスプロジェクトAxisの付属ツールとして提供されて

    @IT:Java TIPS -- HTTPメッセージのやり取りをモニタする
  • 1