タグ

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

  • 2014ブレイク確実!JavaベースのポータブルなWebフレームワーク Dropwizard - yojikのlog

    最近Dropwizardというフレームワークが海外JavaおよびJVMベース言語界隈で流行り始めている感しがします。 Thought Works Technology Reader でも Traialに入ってきています。 http://dropwizard.codahale.com/ このフレームワークはYammerのバックエンドWebサービスを提供するために作られたフレームワークで、アプリケーション開発者からみると、 JaxRSベースのREST提供フレームワーク ORM Jettyベースの組み込みWebサーバ Metricsを収集するためのライブラリ、管理ツール等 といった機能があります。 ここらへんまでは普通のフレームワークと基的には違いが無く、むしろWebサービスに特化しているため物足りなく感じるのですが、特筆すべきは、このフレームワークが推奨するデプロイ・運用方法にあります。

    2014ブレイク確実!JavaベースのポータブルなWebフレームワーク Dropwizard - yojikのlog
  • - Java プログラマのためのデザインパターン入門

    この記事では、ソフトウェアパターンの中でも、特に Gamma らの著書「デザインパターン」に絞って入門者および中級者向けの解説を行う。 Java プログラミングの経験はあるがデザインパターンはよく知らない、 あるいは、 よく知っているが、実際の開発で活用するにはどうしたらよいか悩んでいる という読者を対象としている。 まず、なぜデザインパターンが重要かということを述べた後、 書籍「デザインパターン」の読み方を解説する。 さらに、パターンの持つ特質である生成性を述べ、 最後に、実際に動作する Java アプリケーションをデザインパターンを利用しながら開発する例を説明する。 「デザインパターン」は Gamma らの著書によってソフトウェア設計における良質なデザインテンプレート集として広く認知されているが,実際の開発現場では,どの程度普及したであろうか.もし読者が java プログラマであり,ま

  • Javaでコンパイラの基礎を理解する

    そもそもコンパイラの中ってどうなっているの? Javaでコンパイラの基礎を理解する(1) 普段、なにげなく使っているコンパイラ。中身を理解すると、プログラミングへの意識が変わり、技術力もつきます! 開発者必見です

  • Javaはどのように動くのか~図解でわかるJVMの仕組み 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    Javaはどのように動くのか~図解でわかるJVMの仕組み 記事一覧 | gihyo.jp
  • プログラム間にボタンを掛ける「DI/AOP」(前編)

    「DI(Dependency Injection)」および「AOP(Aspect Oriented Programming)」と呼ばれる技術が注目を集めている。これらはオブジェクト指向プログラミングにおけるプログラムの単位であるクラスを,互いに結び付ける新たな技術である。システムへの機能変更ニーズが高くなり,さらに開発期間が短くなっている開発の現場において,開発の効率化や品質向上を実現する新たな手段として期待されている。まずはオブジェクト指向プログラミングにおける課題を明らかにし,DIやAOPがそれらをどう解決できるのかを見よう。 DIでクラスを容易に付け外す オブジェクト指向プログラミングの一つ目の課題として,「変更時にクラスの修正が必要になる」ことがある。そもそも,オブジェクト指向で開発したプログラムは,オブジェクト指向ではないプログラムと比べ,機能の削除や変更が容易であることが特徴だ

    プログラム間にボタンを掛ける「DI/AOP」(前編)
  • じっくり学ぶ Java講座 [初心者向け・入門] | みるくあいらんどっ!

    「じっくり学ぶ Java講座」は、初心者向けの Java入門講座サイトです。多くのサンプルコードを目にすることでじっくり着実に Javaプログラミングの基を勉強します。 更新履歴 第01章: はじめに はじめに ウェブサイトの目標とターゲット 学習の心構え おすすめ書籍 おおまかな構成 第02章: Java概論と開発環境の構築 Javaとは 開発環境の構築 開発環境メモ 第03章: はじめての Javaプログラム ハローワールド 読みやすいソースコードを書こう 第04章: 基型と基型変数、演算子とキャスト、Math.randomメソッドと自作ライブラリ 基型と基型変数 演算子と基型のキャスト Math.randomメソッドと自作ライブラリ 第05章: 条件分岐 if文 switch文 第06章: 繰り返し for文 while文 do while文 gotoは使えない 第07

    じっくり学ぶ Java講座 [初心者向け・入門] | みるくあいらんどっ!
  • Javaで作るルーム機能付きチャットサーバー

    はじめに ここでは、Javaを用いて不特定多数のユーザーの接続を実現するチャットプログラムを作ります。最も単純なチャットプログラムは、1対1で文字列をお互いに送受信するだけですが、不特定多数のユーザーが任意のタイミングでメッセージを交換し合う場合は、サーバーが正しくユーザーを管理し、ユーザーの要求に応じて情報を送らなければなりません。 稿で実装するチャットサーバーでは、ユーザー同士を単純につなげるのではなく、チャットルームを作成して、チャットルームに入室しているユーザー同士のみメッセージを交換する、より格的なチャットサービスを実装します。これを管理するには、チャットサーバー、チャットルーム、チャットユーザーの関係と役割をオブジェクトに与え、任意の数のチャットルームとチャットユーザーを動的な配列で管理しなければなりません。 来ならば、サーバーとクライアント間の通信にはネットワークトラフ

    Javaで作るルーム機能付きチャットサーバー
  • Private Site

    Build a website. Sell your stuff. Write a blog. And so much more.

    Private Site
  • Java講座 > 6.2. Singleton

    たった一つのインスタンスしか作らせないようにするパターンです。 普通はインスタンスを沢山作るものですが、場合によってはインスタンスを一つしか作らない、 作らせたくないということもあるでしょう。そのようなときに威力を発揮します。 Java API での使用例 java.lang.Runtime もっとも、一つしか作りたくないのであれば newの呼び出しを1回だけにすればよいと思うかもしれません。 プログラマが注意深く実装すればそれでも可能です。 しかしプログラマ任せにすると、間違ってnewを複数回呼び出してしまうかもしれません。 絶対ではありません。 このパターンを適用すると、 指定したクラスのインスタンスが絶対に1つしか存在しないことを保証することができます。 ■クラス図 ■サンプルソース 実装方法は簡単です。 public class Hoge { /* 唯一のインスタンス。 */ p

  • プログラミングのなぜに答える会(中編) « inoue_se

    前編を書いたのが9月です。月日がたつのは早いものです。今日は中編です。途中まで後編のつもりで書いていましたが、すべて書ききらないので中編になりました。後編はいつになるのやら、という感じですが。 プログラミングのなぜに答える会で、Tさんから「Javaでstaticを使う場合はどう判断しますか?」という質問がありました。以下、Javaのstaticの働き自体は分かっている前提とします。 表面的な回答は簡単です。あるクラスのstaticフィールドやstaticメソッドは、そのクラスのオブジェクト群(インスタンス)で共有したい状態や操作に対して使います。別の説明として、staticフィールドやstaticメソッドはオブジェクトを生成せずに使いたい状態や操作に使います、などが回答になりえます。嘘ではありませんが、この説明だけでは、staticをいつ使うべきかの判断にはなりません。 staticフィー

  • Javaの静的メソッドとインスタンスメソッドの使い分けについて - OKWAVE

    オブジェクトの状態(非スタティックフィールド)や型によって、実行時に動作を変えたい場合は非 static メソッドを使う必要が有ります。 下記の例では、Adding や Multiplication はインスタンスフィールドを持っていませんが、calc オブジェクトの実装型に拠る処理の振分けを行う為、execメソッドは非スタティックである必要が有ります。(ポリモーフィズムの利用) class Sample { public static void main(String[] args) { System.out.println(compute(2, 3, new Adding())); System.out.println(compute(2, 3, new Multiplication())); } static int compute(int a, int b, Calc calc)

    Javaの静的メソッドとインスタンスメソッドの使い分けについて - OKWAVE
  • メソッドをstaticにする、しないの基準は何? - OKWAVE

    私の場合、クラスメソッド(=静的メソッド,staticメソッド)が如何なるものかについては、以下の過去ログにて十二分に理解できたのですが、今回の質問者さんは「Javaをはじめてだいぶ経」っているということもあり、あえて違った観点からの回答を試みます。(というか、他の回答者さんとか、閲覧者さんへのアドバイスでもあるんですけど。) http://oshiete1.goo.ne.jp/kotaeru.php3?q=188680 一般的に、クラスライブラリなどで分からないことがあった時には、よく「APIドキュメント」を利用したりしますよね。(各メソッドの引数の型や例外に、J2SDKのどのバージョンから対応しているのかなど・・。)ただ、こちらの方は、文法事項や概念などがあまり載っていなかったりします。そこで、「クラスメソッドって何?」とか、「何でインタフェースを使うの?」などのような疑問を解決するの

    メソッドをstaticにする、しないの基準は何? - OKWAVE
  • Javaのスレッドセーフを理解していないJavaプログラマ。 - (define -ayalog ’())

    Java僕のことです。はい。 ちょっと調べながら書きます。 ちなみに僕がプログラミングを格的(?)にしたのってここ2年くらいなんですよね。 就職すればプログラマになれるって気で信じてました。あの頃の僕は死んでください。 んで、このままじゃダメだって気付いて勉強し始めたの最近なんで、ちょっと生暖かい目で見てください。 んで、なんでスレッドセーフかというと。。 JavaにStringで"文字列"の"X文字目"に"渡された文字列"を追加するメソッドないっけ?ってAPI眺めてる。— 綺人(社畜のゴミコードらい)さん (@ayato0211) 2月 8, 2012 この発言のあとにStringBuilder.insert使えばいいじゃないって言われたんですね。 で、幾つか会話を重ねた後に、StringBuilderはスレッドセーフじゃないよって言われて、「スレッドセーフってなんだ?」という状態

  • 疎結合がソフトウェア開発を変える(1)

    図1●オブジェクト指向の問題点を解決する オブジェクト指向技術が浸透するにつれ,その問題点が明らかになってきた。これを解決するキーワードが「疎」である。 図2●部品化のメリット システムを分割してうまく部品化できれば,さまざまなメリットが生まれる。中でも重要なものは,同じ部品を他のシステムで再利用できること,変更を加えたときに影響が及ぶ範囲を部品内に限定できること,部品を別のものに入れ替えることでシステムの変更や拡張が容易になること,である。 オブジェクト指向言語の考え方が登場してから30年余。オブジェクト指向は,ソフトウェア開発の現場にようやく定着してきた*1。システム・インテグレーションの現場では「案件のほぼすべてが,オブジェクト指向開発」(日ユニシス・ソリューション AD CoE コンピテンスセンタ統括部長の川口真一氏)。「システムを発注する側が,設計情報をUML(Unified

    疎結合がソフトウェア開発を変える(1)
  • クラス設計の考え方

    ソフトウェアの開発において、クラスの設計は、大切なポイントの1つです。どのようなクラスや関数を作るのか。ソフトウェアのデザインは、それによって決まります。 現在のソフトウェア工学で主流となっているのは、オブジェクト指向の考え方です。開発言語も、C++Javaといったオブジェクト指向言語が広く使われています。しかし、いくらオブジェクト指向言語を使って開発していても、クラス設計の考え方が誤っていれば、まったくオブジェクト指向的でないソフトウェアができてしまいます。 貴方が、あるちょっとした機能の追加を頼まれたとしましょう。さて、いくつのクラスや関数を作れば良いのでしょうか。また、そのクラスや関数の名前は、どのように付ければ良いのでしょうか。貴方なら、どのように考えを進めて、クラスや関数を設計していきますか? ここでは、ワイルドカードを使った文字列の検索を例に、クラス設計をする際の考え方を紹介

  • Eclipse のプロジェクトを Dropbox で共有するには

    学生さんと Dropbox を使って、プログラムを共有しています。で、Eclipse のプロジェクトの共有ではちょっと悩ましいことがありました。ひとつは、自分のメインのワークスペースの一部を共有する方法が分らなかったこと。もうひとつは、共有したいのはソースだけなのに、class ファイルまでやりとりされてしまうことでした。慣れている人にはあたりまえなんでしょうけれども、linked source を利用することでどちらも解決しました。 やってみれば簡単です。Linked source とはワークスペースの外にあるディレクトリをソースとして参照するための機能です。結局、わたしがやったのは以下の作業です。 + 学生さんと Dropbox 共有ディレクトリを作成し、そこに Eclipse のソースを置くディレクトリを作成する。 + Eclipse を開いて、学生さんと共有するための新しいプロジェ

    Eclipse のプロジェクトを Dropbox で共有するには
  • ドラゴンボールで学ぶオブジェクト指向 改 - 達人プログラマーを目指して

    ドラゴンボールといえば、大変に人気の高い国民的、いや世界的な漫画、アニメですが、昨日匿名ダイアリーでドラゴンボールをネタにしたオブジェクト指向の解説がホッテントリに入っていました。 ドラゴンボールで学ぶオブジェクト指向 多くの人に親しみやすい題材でオブジェクト指向の考え方を解説するというのは非常に興味深い試みなのですが、オブジェクト指向の説明としては不適切なところがあり、ちょっと残念な内容になっています。私自身ドラゴンボールの専門家(ドメインエキスパート)ではないため、不正確なところがあるかもしれませんが、ストーリーを思い出しながら、私なりにドラゴンボールをネタとしたオブジェクト指向の解説にリトライしてみたいと思います。 なお、オブジェクト指向でもプログラミング言語によって表現できる内容が異なるため、当然設計技法は違ってきます。ここではJavaC++、C#、Visual Basicといっ

    ドラゴンボールで学ぶオブジェクト指向 改 - 達人プログラマーを目指して
  • いまさらですが、職業Javaプログラマーなら理解しておいてほしい「継承」の意味について - 達人プログラマーを目指して

    正しく意味を理解している方にとっては、まったく常識レベルの話であり、何をいまさらと思われる方々も多いかと思いますが、大規模案件のレガシーコードなど、私が仕事で見かけるJavaのコードを読むと、「このコードを書いたSEやPGの方々は、はたして継承の意味を正しく理解していないのではないか」と思われる設計のコードに出会うことが少なからずあります。現在では改良されましたが(Javaプログラミング能力認定試験の問題がかなり改善されていました - 達人プログラマーを目指して)、以前のJavaプログラム認定試験の問題は、そうした不適切な設計がされている典型的な例となっていたのですが、実際、SI業界ではあのような品質のコードのシステムが今でも現役で多数稼動しているというだけでなく、現在でも新たに生み出されているというのは残念ながら紛れもない事実のようなのです。 確かに新人研修で「哺乳類を継承して犬クラスと

    いまさらですが、職業Javaプログラマーなら理解しておいてほしい「継承」の意味について - 達人プログラマーを目指して
  • 1