タグ

Javaに関するthreeMonthsのブックマーク (225)

  • 共通関数継承のデメリットを説明せよ - @katzchang.contexts

    共通関数継承とは、あるクラスで共通的に使うだろう関数やメンバを、親クラスのメソッドやメンバとして定義するパターンだ。Constant interfaceパターンやimport staticあたりが関係するアンチパターンとされるモノの一つで、神様ルートクラスを嫌い、POJOを好むのあたりの、ごく初歩な議論になるだろうと思う。 package spike; public abstract class SuperUtil { /** * 時刻形式の文字列から、日付部分を抜き出す */ protected String timestamp2Date(String timestamp) { if (validTimestamp(timestamp)) return timestamp.substring(0, 10); return ""; } /** * 時刻形式の文字列から、時間部分を抜き出す

    共通関数継承のデメリットを説明せよ - @katzchang.contexts
  • JavaとSingletonとLazyLoad - _development,

    久しぶりにSingletonを自前で書こうとしたら書き方を忘れていた。 のでググったりを見たりしながら思い出した。 なんとなく以下の二点を覚えていたので、そのあたりの記憶を頼りに。 HogeHogeHolder的な内部クラスを使っていた LazyLoad(遅延初期化)になっていた Effective Javaから 「Effective Java, 第2版, Joshua Bloch, 2008」にSingletonパターンの記載がある。 ひとつはPublic finalのフィールドによるSingleton。 package com.undrdevelopment.singleton; public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() { } } もうひとつはstat

    JavaとSingletonとLazyLoad - _development,
  • はてなブログ | 無料ブログを作成しよう

    来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…

    はてなブログ | 無料ブログを作成しよう
  • [執筆][Java] 特集記事を書きました - かとじゅんの技術日誌

    こんばんわ。1/24日発売の日経ソフトウエア 3月号で特集記事として、特集3「現場で通用するソフトウエア設計」を書かせていただきました。 日経ソフトウエア 2011年 03月号 [雑誌] 作者: 日経ソフトウエア出版社/メーカー: 日経BP社発売日: 2011/01/24メディア: 雑誌購入: 10人 クリック: 81回この商品を含むブログ (5件) を見る 今回も前回の2010年11月号と同様に、実際にアプリケーションをJavaで開発する事例を用いて、設計の考え方について学べる特集記事になっています。ある程度コードは書けるけど、これからよりよい設計を目指して開発する方には、特に読んでいただきたいと思っています。 今回、取り上げているアプリケーションは、ソースコードを生成するアプリケーションです。いわゆる、コードジェネレータです。*1それを作るには、どういう設計の考え方に基づけばよいのか?

    [執筆][Java] 特集記事を書きました - かとじゅんの技術日誌
  • SI業界(日本)のJavaプログラマーにはオブジェクト指向より忍耐力が求められている? - 達人プログラマーを目指して

    私自身は10年以上も前(JDK1.1の頃)にSJC-Pの認定を取って以来、Javaプログラミング関連の認定試験は受けていないのですが、昨日たまたまネットを検索して、SJC-Pとは別にJavaプログラミング能力認定試験という試験が存在していることを知りました。結構メジャーな認定試験のようですので、現役のJavaプログラマーJavaプログラマーを目指している学生さんで、今後受験に向けて勉強されている方々も多くいらっしゃるのではないかと思います。 試験は難易度に応じて3級から1級までランクが分かれており、2級まではJava言語の知識に関する筆記試験ですが1級の試験では実際のプログラムの修正を行う能力が実技試験として課せられます。試験範囲は以下で公開されています。 Javaプログラミング能力認定試験(試験範囲) 私は(自分で言うのも変ですが)、Javaプログラミングについてはこの道15年近くのキ

    SI業界(日本)のJavaプログラマーにはオブジェクト指向より忍耐力が求められている? - 達人プログラマーを目指して
  • newするとJVM内で何が起こるのかという話(後編)

    前編ではnewしたときのバイトコードについて追いましたので、後編ではバイトコード実行による現象=メモリの使い方やデータ構造について追っていきたいと思います。 なお私はSunやIBMのJVMしか扱ったことがないので、他の実装には当てはまらない内容が含まれるかもしれません。ご了承ください。 データはどこに作られるのか 当然メモリに作られます。もう少し厳密に言うと、JavaHeapに作られます。 そもそもJVMはデータをどのように扱うのか? JVM仕様書のRuntime Data Areasの節に、データを扱う6つの領域についての説明があります。 Program Counter Register JVM stacks Heap (Java Heap) Method Area Runtime Constant Pool Native Method Stacks これらの領域のうち、newされたオブ

    newするとJVM内で何が起こるのかという話(後編)
  • OSS Javaフレームワークはどんどん高度化している - 達人プログラマーを目指して

    以前、いつまでStruts1を使い続けるの?という記事を書きました。技術から離れているSEの方は、いまだにJavaのオープンソースフレームワークと聞くとStrutsくらいしか思い浮かばないという人も多いと聞きますが、その記事では、Strutsの問題点をあげて、そろそろ新しいフレームワークを使いましょうという話をしました。 しかし、単にSpring MVCに移行しましょうということではなくて、OSSを利用したエンタープライズJava開発の世界*1では、もっと根的なレベルで進化が起こっているのではないかということを最近考えます。単純にOSSのJavaフレームワークといっても、時代によって考え方が大きく変わってきているという事実があるのです。この点についてちょっとまとめてみたいと思います。 第1世代(2000年〜2003年) いわゆるStrutsとかHibernateといったフレームワークで、

    OSS Javaフレームワークはどんどん高度化している - 達人プログラマーを目指して
  • いつまでStruts1を使い続けるの? - 達人プログラマーを目指して

    営業支援で提案中の案件があるのですが、現状CGI+Perlで作られているコンシューマー向けサイトがあるが、 CGIなので性能が悪い コンテンツの修正が大変なのでMVCできちんと作りたい 実績のあるJavaとStrutsをメインに検討している とのことです。今時多くのコンシューマー系のサイトで、コンテンツの管理を容易にしたいならオープンソースも含めてPHPベースのCMSが星の数ほどあるという事実はおいておくとしても、とにかく、実績重視ということでStrutsということになってしまうのでしょうか?お客様もMVCなど相当技術を勉強されていることは感心なのですが、JavaのMVCフレームワークというとStrutsしか考えないというのは問題ではないのでしょうかね。多くのStrutsベースの既存システムを自社で抱えているなどの理由があるのであれば、それも一つの選択なのかもしれませんが、実績重視とか社内

    いつまでStruts1を使い続けるの? - 達人プログラマーを目指して
  • Java回顧録 〜独白: 僕は全ての事をJavaから学んだ〜 - 風と宇宙とプログラム

    先日Javaのコードを3年振りくらいで書いてみたら、無性にJavaについて振り返ってみたくなった。Javaの誕生当時をリアルタイムで経験した僕にとってJavaは感慨深いものであり、多くのことをJavaから学び、僕を成長させてくれた原点でもある。 僕とJavaとの関わりはJavaがまだOakと呼ばれていた頃から始まる。1994年の暮れの頃だったと思う。Oakで書かれたWebブラウザはWebRunnerと呼ばれていて、両者はほとんど一体だった。会社の上長からこれを使って携帯情報端末機器を開発することになったから、秘密裏に調査しておくようにと突然指示された。後になって知ったことだが、Oakは家電などの組込み系を想定して開発されたもので、当時Sunは日の多くのメーカに呼びかけてOak を普及させようとしていたようだ。 その頃のインターネット事情というのは、Mozilla(Netscape)が登場

    Java回顧録 〜独白: 僕は全ての事をJavaから学んだ〜 - 風と宇宙とプログラム
  • 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 で 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 の話) - 宇宙行きたい
  • IBM Developer

    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.

    IBM Developer
  • 「Java による RESTful システム構築」 が超勉強になる!! - 宇宙行きたい

    JavaによるRESTfulシステム構築 作者: Bill Burke,arton,菅野良二出版社/メーカー: オライリージャパン発売日: 2010/08/23メディア: 大型購入: 28人 クリック: 804回この商品を含むブログ (40件) を見る これ,当にタイトル勿体無いなぁって思うでした. いや,タイトルに偽りは無いんだけど,これだと REST に興味無い人は手に取らないだろうなぁと思って,それは凄く勿体無い内容なので,ホントみんな読むと良いと思う. 簡単に説明すると,Java で REST を扱うために JAX-RS という API があるんだけど( JSR311 ),そのエキスパートグループの一人であり,さらにその実装である RESTEasy の作者が書いているです. で,この人は元々 SOAP とかのどちらかというと Fat な仕様大好きっこだったので,このには色

    「Java による RESTful システム構築」 が超勉強になる!! - 宇宙行きたい
  • Eclipse3.5のコンパイラに致命的なバグ有り

    昔も書いたが、EclipseのJavaコンパイラとJDKのjavaコンパイラは別物。 昨日、原因究明に到るまで半日要したのだが、 Eclipse3.5のJavaコンパイラ(ecj)に致命的なバグがあることを発見した。 簡単に説明すると、 『非publicな親クラスから引き継いだpublicメンバーを、異なるパッケージにおいて子クラス経由でリフレクションで呼び出すとエラーになる』 というもの。まあコードを見たほうが早いので、下のコードを見るべし。 サンプルコード NonPublicParent.java package foo; class NonPublicParent { public void aMethod() { System.out.println("method1"); } } PublicChild.java package foo; public class PublicC

    Eclipse3.5のコンパイラに致命的なバグ有り
  • PCに残ったJavaランタイムの残骸を除去する「JavaRa」 | OSDN Magazine

    多くのPCにインストールされているJavaのランタイム(JRE)には、アップデート時に旧バージョンを削除しないという問題があることが知られている。これは互換性確保のためなのだが、不要なファイルがシステムに残されるのを嫌うユーザーもいるだろう。そこで利用したいのが「JavaRa」である。 JavaRaは不必要になった古いバージョンのJREを根こそぎ除去してくれるシンプルなツールだ。単にファイルを消すだけではなく、レジストリのエントリも修正してくれるため、痕跡を残さずPC内をクリーンアップできる。また、JREを最新バージョンへ更新する機能や、不必要なJREの関連ファイル・データを削除する機能もある。 システムドライブの空き容量が少ないとWindowsの動作が緩慢になったり、アプリケーションが不安定になったりしかねない。Javaの更新時にはJavaRaを利用して容量の確保を心がけたい(図1)。

    PCに残ったJavaランタイムの残骸を除去する「JavaRa」 | OSDN Magazine
  • お薦めJava本 Javaフレームワーク開発入門 - よねのはてな

    御礼。 きむきむ id:skimura が書いたお薦めのJavaです! Javaフレームワーク開発入門木村 聡 ソフトバンククリエイティブ 売り上げランキング: 7425 Amazon.co.jp で詳細を見る 開発において共通処理をいつも任されている方や、社内用フレームワークを作ってみようという方には必見の書籍です。 章立て 第一章 フレームワークとは 第二章 メタプログラミングを学ぶ 第三章 デザインパターンを学ぶ 第四章 DI × AOPを学ぶ 第五章 実習編 第六章 フレームワーク作成時に考慮すべき点 個人的には、2章と5章そして6章がお薦めです。 Javaで開発した人であれば、どの章から読んでも良いかと思います。 5章、6章を読んで実際にフレームワークを作成してみては如何でしょうか? まとめ Javaに関しては多くの書籍があり、どれを手にとって読んでいいものか悩まれる方も多

    お薦めJava本 Javaフレームワーク開発入門 - よねのはてな
  • Javaめんどくさい - marsのメモ

    http://d.hatena.ne.jp/yuichi_katahira/20100720/1279618644 いくつかフォローを、と思ったら、そのものズバリなエントリがあったよ。 → モダンな Java の開発環境の構築方法 - wyukawa's diary あと結構前にこんなの書いた。 → 2007-09-25 - marsのメモ ビルドツールの流れはこんな感じ。 いちいちjavacとか叩いてらんないから make.bat 用意したオレ天才。 そこはやっぱりmakeでしょ。Winな人はどうにかしてnmake探しといてね。 Excel VBAjavac起動する剛の者も(Excelシートにね「コンパイル」ってボタンがあるの) Ant以前 ↓ Makefileなんて呪文でしょ。だれも読めないよ。代わりにXMLで記述できるようにしたよ。 antって名前よくね。働き者っぽいし。 でもMa

    Javaめんどくさい - marsのメモ
  • モダンな Java の開発環境の構築方法 - wyukawa's diary

    http://d.hatena.ne.jp/tokuhirom/20100716/perlenv モダンなPHPの開発環境の構築方法 - 肉とビールとパンケーキ by @sotarok モダンなPythonの開発環境の構築方法 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記 まだJava版を書いてる人がいないみたいなので、一応書いてみるよ。--); 前提はWindows環境です。Linuxでもそうは変わらないと思うけど、Macだと違うかも。 Macの場合はMac OS X にJavaの開発環境を設定する - やさしいデスマーチを見ると良いかも。 インストール OracleからJDKをダウンロードしてインストール。Macは最初から入ってますね。 ダウンロード先はここね。 Oracle Technology Network for Java Developers |

    モダンな Java の開発環境の構築方法 - wyukawa's diary
  • IBM Developer

    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.

    IBM Developer
  • Ubuntu 10.04 で sun-java-6 をインストール - 宇宙行きたい

    Ubuntu 10.04 にアップデートしたんだけど,標準だと,OpenJDK しか入れられなくなった. OpenJDK はちょっとバギーだし,Font 回りの設定とかがグダグダなので, 日語が上手く表示出来なかったりするので,sun のやつを入れる $ sudo add-apt-repository 'deb http://archive.canonical.com/ lucid partner' $ sudo apt-get update $ sudo aptitude install sun-java6-jdk で,インストール出来るので, デフォルトの設定を変更しちゃえば終り $ sudo update-alternatives --config java There are 2 choices for the alternative java (providing /usr/b

    Ubuntu 10.04 で sun-java-6 をインストール - 宇宙行きたい