タグ

Javaに関するunagii_nuのブックマーク (27)

  • Effective Java - Strategic Choice

    書籍「達人プログラマ」の習慣に倣い、「Ruby」や「Scala」を少々勉強しました。その中で感じたのが、『超絶得意な「軸」言語あってこそ、他言語学習の相乗効果が高くなるのでは』ということです。そこでまず「Java」にロックオンして、言語バイブルであり、オブジェクト指向のエッセンスもちりばめられている名著「Effective Java」を(再)精読してみようと思います。極力ソースを読み書きしながら勉強したいので、実行可能なテストコードに無理矢理まとめてみます。一覧第2章オブジェクトの生成と消滅項目01コンストラクタの代わりにstatic ファクトリーメソッドを検討する項目02数多くのコンストラクタパラメータに直面した時にはビルダーを検討する項目03privateのコンストラクタかenum 型でシングルトン特性を強制する項目04privateのコンストラクタでインスタンス化不可能を強制する項目

  • https://nagise.hatenablog.jp/entry/20110729/1311950039

  • Java可変長引数メモ(Hishidama's Java VarArgs Memo)

    JDK1.5から、引数の個数が不定(可変)なメソッドを定義し、呼び出せるようになった。[2007-06-30] この機能を利用してprintf()が作られたし、リフレクションの引数指定も変更された。 定義例と呼び出し例 引数の型の直後に「...」(ピリオド3つ)を付けると、そのメソッドを呼び出す側はその型の引数をいくつでも書けるようになる。[2007-06-30] ただし、この可変引数は各メソッドにつき1つだけ、そのメソッドの最後の引数にだけ、指定可能。 定義例: void method(String... args) { } void method2(String str, int... ns) { } 呼び出し例: method("abc"); method("abc", "def"); method("abc", "def", "ghi"); method(); …引数無しも可 me

  • シグネチャ[シグニチャ]とは:SJC-P対策Java用語集

    Java認定資格(SJC-P/310-035)を一発合格したい! このサイトは、そんなあなたを気で応援します!! SJC-P(310-035)対策のメルマガ問題集も好評発刊中。 ぜひあなたの受験に役立ててください。 メールマガジンの購読はもちろん無料です! 登録はこちらから→SJC-P対策メルマガ問題集 Java用語集:シグネチャ[シグニチャ] シグネチャについて:簡単に説明すると シグネチャとは、メソッドの名前、およびそのメソッドに対する 引数の数と型により構成されています。 つまり、次の3つを組み合わせたものをシグネチャと呼びます。 メソッド名 引数の数 引数の型 シグネチャについて:もっと詳しく 分かりにくいと思うので、具体的な例で説明します。 以下はシグネチャが同じメソッドです。(同一のクラス内に同時に宣言することはできません。) public static void metho

  • Java やってる人が C# を使うとはまること - ぐるぐる~

    ここでは、Java SE 5.0 以降を知っている人が C# 2.0 を使うことになった場合を考える*1 *2。 あと、ライブラリについては触れないことにする*3。 命名規約 まず、命名規約が全然違う。Java ではメソッド名にキャメル形式*4を使うけど、C# では Pascal 形式*5を使い、Java では定数名に大文字アンダーバー区切り*6を使うけど、C# では Pascal 形式を使う。 C# に関する命名規約としては、ここだとかここだとかにあるので、参考にするといい。 間違っても、オブジェクト倶楽部のは参考にしないこと*7。 struct の扱い Java ではユーザ定義型は全て参照型だけど、C# では値型も作成できる。また、標準ライブラリの中に struct で定義されたものもある。 で、何にはまるかというと、struct は class と違い、「値渡し」される*8、つまりコ

    Java やってる人が C# を使うとはまること - ぐるぐる~
  • 特集 私がJavaからC#に乗り換えた10の理由(1/4) - @IT

    起きてから寝るまで、息を吸うのも、厠(かわや)での一連のアクションも.NET Frameworkで構築している私だが、実は少し前まで目を閉じるとまぶたの裏でJavaのマスコットである“Duke”がゴーゴー・ダンスを踊っちゃうくらいにJavaな日々を送っていた。そんな私が過去の資産を捨てて.NET Frameworkに転んだ理由は簡単。.NET Framework、特にC#の設計思想が私のし好に合っていると感じたためだ。 稿では、私がJavaからC#に乗り換えた理由を示し、それを基にC#の“正しい”使い方について考察する。C#に興味のあるJavaプログラマや、どう使えばよいのか悩んでいるC#プログラマに読んでいただきたい。そうそう、アーキテクトにも。プログラミングできないアーキテクトなどあり得ないのだから。 C#とJavaは似ていない。確かに表面上は似ているが、C#にはJavaにはない文法

  • capsctrldays - Webアプリケーション技術者の見極め方(Java)

    1 Webアプリケーション技術者の見極め方(Java) 「俺Java6年やってます!」とか言われても正直よく分からないっていう話をしたところ、Java技術者の方々に「こういう質問をしてみれば?」っていうアドバイスをもらったのでご紹介。 使い慣れたAPサーバは何ですか(→デプロイ方法を簡単に説明してください) MavenとAntはどちらを使っていますか 『Effective Java』を読みましたか(→そこから何を学びましたか) 自由にフレームワークを選んでいいと言ったら何を使いますか 他にもあったら教えてください。

  • 楽しいJava入門 抽象クラスとinterface

    13章でチラッと出てきた抽象クラスをもう一度見直してみましょう。さらにinterfaceまで話を進めます。 第13章「保育園児の豚汁作り」の復習です。保育園児のクラスを抽象クラスとして定義しました。覚えていますか?青さんや黄さんといったクラスの、共通部分のくくりだし(汎化)でしたね。ここで「豚汁の準備をする」メソッドを抽象メソッドとしました。青さん、黄さん、桃さんで、「豚汁を準備する」行為がそれぞれ異なるためです。具体的な内容は各サブクラスで定義しました。野菜を切る、とか野菜の皮をむく、などです。青さんのクラスからオブジェクトは生成できるけれども、抽象クラスである保育園児のクラスからは生成できませんでしたね。思い出しましたか。 ここでは抽象クラスをもう一度見ておきましょう。 抽象クラスには抽象メソッドが含まれており、サブクラスで必ずオーバーライドしなければなりません。簡単な例で見ていきまし

  • Javaには、構造体はないんですか?

    メンバーが public なクラスが構造体と(ほぼ)同じです。 大体こんな感じ。 // sort Object using Arrays.sort() import java.util.Arrays; class Batter implements Comparable { public double rate; public String name; Batter(double r, String n) { rate = r; name = n; } public int compareTo(Object o) { return (int)((rate - ((Batter)o).rate)*1000.); } } class w03 { public static void main(String[] args) { Object[] batter = { new Batter(0.3

    Javaには、構造体はないんですか?
  • Javaの文字列結合について - 壷ラボ

    第3回Effective Java読書会で項目51「文字列結合のパフォーマンスに用心する」がテーマに上がったのでそのあたりのお話を少しまとめておこうかと思います。 まず、Effective Javaの項目51には 文字列結合演算子は(+演算子)は便利だけど、使いどころを間違えるとパフォーマンスに影響を与える そんな場合はStringBuilderを使用する ということがかかれています。 1に関して、どのような場合にパフォーマンスに影響を与えるかというと、主に以下のようなループ内で文字列を+演算子で結合する場合があげられると思います。 String result = ""; for( int i = 0; i < 10; i++ ){ result += i; //String結合 } なぜこのような場合にパフォーマンスに影響を与えるかというと、文字列結合に+演算子を使用した場合にはコンパイ

    Javaの文字列結合について - 壷ラボ
  • Java コーディング規約(2004)

  • サルでもわかる 逆引きデザインパターン 第1章 はじめてのデザインパターン はじめに:

    第1章 はじめてのデザインパターン はじめに デザインパターンとは 特集の構成 すぐわかるオブジェクト指向 すぐわかるUML おわりに 第2章 逆引きカタログ ロジック編 Singleton (シングルトン) Factory/Factory Method (ファクトリ/ファクトリメソッド) Strategy (ストラテジ) Composite (コンポジット) Visiter (ビジタ) 第3章 逆引きカタログ J2EE編 Template Method (テンプレートメソッド) Facade (ファサード) ViewHelper (ビューヘルパ) DAO (Data Access Object) 第4章 逆引きカタログ その他 ユーティリティクラス 実行時例外を標準的に使う Nullオブジェクト 第5章 デザインパターン適用の勘所 はじめに アプリケーションの仕様 リファクタリング前のサ

  • https://torazuka.hatenablog.com/entry/20130203/array

  • Javaアプリケーション組み込み用のLispドライバ

    Javaアプリケーション組み込み用のLispドライバ 湯淺 太一 作 English このシステムは,Javaで記述されたSchemeのインタープリタです. Javaアプリケーションに組み込む目的で開発されましたが, 単独でScheme処理系としても利用可能です. 処理系の開発目標は次のとおりです. Lisp処理系の実装ノウハウを持たないJavaプログラマにも 機能の追加・削除・変更が容易に行えること. Javaで開発したソフトウェア部品を扱うための機能を容易に組み込めること. コンパクトな実装であること. 高度なLispプログラム開発支援ツールを備える必要はないが, デバッグのために最低限必要な機能は備えること. 高性能である必要はないが,性能が極端に悪くないこと. 処理系は,Mozilla Public License(MPL)の下で, 自由にダウンロードできます. 以下のものが提

  • マルチコア時代のプログラマは関数脳になろう〜Java8のススメ〜 - Tech-Sketch

    CPUのクロックアップに限界が訪れ、マルチコア化することで処理性能向上を目指す時代になりました。これからのプログラマには、マルチコアで処理性能が向上するプログラム=マルチスレッドで並列処理が可能なプログラムを書く能力が必要になります。今回は「関数型」でプログラムを書くことによって、いとも簡単に並列化ができることを実例を元に解説します。 関数型プログラミングと並列処理 「関数型でプログラムを書くことで簡単に並列化できる」と書きましたが、そもそもここで言う「関数」とは何なのでしょうか? 関数型プログラミングの特徴 関数型プログラミングの「関数」を理解するためには、数学における「関数」を想像するとわかりやすいでしょう。 例えば三角関数を用いた y=cos(x) という式を考えてみます。この式に入力値 x=0 を与えた場合、いつでも必ず結果は y=1 になります。x= π/3 の場合は y =

  • 関数を扱えることはどのようにプログラミング言語の能力をあげるか - きしだのHatena

    Java8で関数が値として扱えるようになりました。 このことが、「関数が渡せると便利だよね」という観点ではなく、プログラミング言語としての能力をどのようにあげるか考えてみます。 圏論からのテクニックが使いやすくなる 集合論はどちらかというと値にたいする理論でしたが、圏論は関数呼び出しに関する理論です。 プログラムには、関数呼び出しを連結させて値を変換していくという側面があります。 そのような関数呼び出しの扱い方を整理するのが圏論で、圏論の考え方を使うことでより安定したプログラムを書くことができます。 モナドなど圏論由来のテクニックを使うには、どうしても関数を値として扱う必要があります。 関数を値として扱うことで、圏論のテクニックが使いやすくなり、安定したプログラムの書きやすさにつながります。 型の証明能力があがる 動的な型付の言語にくらべて、静的な型付の言語はプログラムが間違いにくいといわ

    関数を扱えることはどのようにプログラミング言語の能力をあげるか - きしだのHatena
  • Javaのstatic修飾子の意味とJavaScript:prototype内へのメソッド、プロパティ定義の関係について - Ja... - Yahoo!知恵袋

    Javaのstatic修飾子の意味とJavaScript:prototype内へのメソッド、プロパティ定義の関係について Javaのstatic修飾子の意味とJavaScript:prototype内へのメソッド、プロパティ定義の関係について Javaでメソッドやプロパティにstaticをつけたときというのは、JavaScriptでいうところのprototypeプロパティの中にメソッドや変数を定義することと(だいたい)同じと考えていいのでしょうか? staticをつけなかった場合はインスタンス化したときに、それぞれのインスタンスでメソッドやプロパティのメモリ領域が確保され、staticをつけた場合はオブジェクトで共有されるという感じですか? よろしくお願いします。

    Javaのstatic修飾子の意味とJavaScript:prototype内へのメソッド、プロパティ定義の関係について - Ja... - Yahoo!知恵袋
  • Javaの道:クラス(10.static)

    概要 メンバ変数、メソッドを宣言する際、static修飾子が付与されたものをクラス変数、クラスメソッド、static修飾子が付与されていないものをインスタンス変数、インスタンスメソッドといいます。 クラス変数、クラスメソッドはそのクラス内で1つという位置付けです。そのクラスからいくつインスタンスを生成してもインスタンスごとにメンバ変数、メソッドが割り当てられることはありません。 インスタンス変数、インスタンスメソッドはインスタンスごとに存在します。クラスからインスタンスが生成されるとそれぞれのインスタンスに対し、インスタンス変数、インスタンスメソッドが割り当てられます。Javaはオブジェクト指向プログラムの設計思想の元、クラスから生成されるインスタンスに対し様々な処理を実行していきます。そのため、Javaでメンバ変数、メソッドというと、通常、このインスタンス変数、インスタンスメソッドのこと

    Javaの道:クラス(10.static)
  • サービス提供終了のお知らせ

    日頃より、アレスネットをご愛顧いただきまして誠にありがとうございます。 「ホームページサービス」のサービス提供は2016年1月31日をもちまして終了させていただきました。 これまで長らくご利用いただき、誠にありがとうございました。 今後も、皆様によりよいサービスをご提供させていただけるよう、サービス品質向上に努めて参りますので、何卒、ご理解いただけますようお願 い申し上げます。 <アレスネットをご契約のお客様へ> 後継サービスとして「userwebサービス」を提供させていただいております。 詳しくは、以下のリンクをご参照ください。 ▼「userwebサービス」のご案内 http://www.ejworks.info/userhp/alles/index.html 今後ともアレスネットをご愛顧いただけますようお願い申し上げます。 株式会社イージェーワークス アレスネット カスタマーサポート

  • Javaで質問です。 - いつもお世話になっています。今度はJavaで質問です。publicclassNihongoHen... - Yahoo!知恵袋

    Javaで質問です。 いつもお世話になっています。 今度はJavaで質問です。 public class NihongoHensu { public static void main(String[] args) { 日語クラス 日語オブジェクト=new 日語クラス(); System.out.println("日語オブジェクト.日語変数=" + 日語オブジェクト.日語整数); System.out.println("日語オブジェクト.日語文字列=" + 日語オブジェクト.日語文字列); 日語オブジェクト.日語メソッド(); } static class 日語クラス{ static int 日語整数=77; static String 日語文字列="白地に赤い日の丸です"; 日語クラス(){ System.out.println("コンストラクタ[日語ク

    Javaで質問です。 - いつもお世話になっています。今度はJavaで質問です。publicclassNihongoHen... - Yahoo!知恵袋