タグ

関連タグで絞り込む (207)

タグの絞り込みを解除

Javaとprogrammingに関するraimon49のブックマーク (302)

  • Java変態文法最速マスター - プログラマーの脳みそ

    Java基礎文法最速マスター - いろいろ解析日記をリスペクト。 Javaの変態文法・技法一覧です。Javaの基礎をある程度知っている人はこれを読めばJavaの変態をマスターしてJavaを書くことができるようになっています。簡易リファレンスとしても利用できると思いますので、これは足りないと思うものがあれば教えてください。 1.基礎 エンクロージング型内部classの作成 外部classのインスタンスに紐付くインスタンスを生成します。外部クラスのインスタンス - 内部クラスのインスタンス間に、クラス - インスタンスのような関係を持たせることができます。 public class Outer { public class Inner { } } というようなクラスを作った場合、 Outer o = new Outer(); Inner i = o.new Inner(); となります。new

    Java変態文法最速マスター - プログラマーの脳みそ
  • 2009-12-21 - Secret Sword!!!

    なぜか? おまじないの量が多くなってしまうから 一般的なHelloWorld public class HelloWorld { public static void main(String[] args) { System.out.println("Hello,World!"); } } staticとかStringとかSystemとかmainとか色々難しそう あと、このHelloWorldだと色々省略した結果このコードになっていることに気づけないんじゃないだろうか どうやったら初心者にやさしいJavaになるんだろうか 色々と省略しないで書いてみる public class HelloWorld { public static void main(java.lang.String[] args) { java.lang.System.out.println("Hello,World!")

    2009-12-21 - Secret Sword!!!
    raimon49
    raimon49 2009/12/31
    これは勉強になる。
  • Gushwell's C# Programming Page - C#デザインパターン

    ここに掲載したコードは、『増補改訂版Java言語で学ぶデザインパターン入門 / 結城 浩(著)』に掲載されているサンプルコードをC#に移植したものです。 ブログ「Gushwell's C# Dev Notes」に掲載していましたが、多くのブログ記事の中に埋もれてしまっているので、こちらに引っ越すことにしました。なお、ブログに掲載したソースは、原書のソースコードにできるだけ忠実にC#に移植することを心がけましたが、こちらに引っ越す際に、C#2.0, C#3.0の練習も兼ね、すべてのソースに見直しをかけています。どうでもいいところで、LINQを使ったり、ジェネリックスを使ったりしていますが、そこは笑って許してください。 ただ、デザインパターンの質部分は、C#の特徴を出しつつ、原書の設計を踏襲しているつもりです。 C#のソースファイル(プロジェクトファイル)もダウンロードできるようにしています

    raimon49
    raimon49 2009/11/10
    GoFのパターンのVS2008 - C#3.0の組み合わせで学ぶ。
  • まつもと直伝 プログラミングのオキテ---目次 - まつもと直伝 プログラミングのオキテ:ITpro

    第0回 あらためてRuby入門 まつもとゆきひろ氏自身による「Ruby入門」をお届けします。日経Linuxの連載開始前の特別企画(2005年4月号)として,Rubyが他のスクリプト言語やオブジェクト指向言語とどこが違うのか,なぜ便利なのかを中心に解説してもらったものです。 ● 基と他言語との違い ● 実装とRuby誕生の秘密 第1回 プログラミングとオブジェクト指向の関係 プログラマを目指す人々の中にも,「オブジェクト指向は難しい」とか,「なかなか分からない」という印象を持つ方が多いようです。そこで,Rubyを題材にオブジェクト指向という考え方について説明していきます。 ● その1 ● その2 ● その3 第2回 抽象データと継承 オブジェクト指向プログラミングを構成する3原則のうち,前回は「ポリモーフィズム」を学びました。今回はオブジェクト指向の歴史を復習した後,残りの「データ抽象」と

    まつもと直伝 プログラミングのオキテ---目次 - まつもと直伝 プログラミングのオキテ:ITpro
    raimon49
    raimon49 2009/11/09
    Rubyと幾つかの言語(C, C++, Lisp, Java)の比較を交えながらプログラミング言語の変遷を解説。
  • コレクションを扱うプログラミングTips

    コレクションを利用するTips イテレーション Iteratorを使う コレクションの中に格納された要素にアクセスする時は、Iteratorを使用することが通例です。その時のコーディングパターンで最も多い書き方は次のようにwhile文を使用するものです。 List persons; : Iterator it = persons.iterator(); while (it.hasNext()) { Person person = (Person)it.next(); // do something for person. } しかし、while文を使うとイテレータを示すローカル変数itの有効範囲がメソッド全体に渡ってしまいます。来は、while文の内側に閉じて欲しいところです。また、複数のコレクションを操作する時に、ローカル変数名itを再度使いたいのですが、2度目は変数を宣言しないように

    raimon49
    raimon49 2009/09/10
    コレクションの列挙方法いろいろ。
  • 5年後に後悔しないJavaプログラムの書き方 - L'eclat des jours(2009-07-02)

    _ 5年後に後悔しないJavaプログラムの書き方 ここ数日、死ぬほど後悔しまくっているので、あらためて(というのは、数年前にも一度後悔しまくって、そのときの知見はあらかた処方箋とかコーディングの掟に書いているからだが)後悔しないための書き方をいくつか紹介する。 とにかく、ファクトリメソッドパターンを使うこと。 これは当に重要。しかも簡単でありながら効果は絶大。 だめな例。 public class FooBar { private Connection conn; ... protected void setup() { ... conn = DriverManager.getConnection(url); ... } urlを指定することや、DriverManagerの実装を交換すれば良いだろうと想定していても(というか、Connectionならそういう方法もあり得るが、そうはいかな

  • ジェネリック: Java vs C#

     ジェネリック: Java vs C# 概要 2005 年初頭に公開された Java 言語仕様第 3 版 (開発実行環境は 2004 年秋に先立って公開されていた) と 2005 年 6 月に ECMA に承認された C# 言語仕様第 3 版 (開発実行環境は 2005 年末に公開された) では、共にジェネリック (ジェネリックス、ジェネリクス、総称: generics) という新しい概念が導入され、文法もそれに伴って変化している。 Java と C# はどちらも静的な型付けを行うオブジェクト指向プログラミング言語であり、C 言語を基にした 似たような文法をしている。 この記事では、Java 言語のジェネリックと C# 言語のジェネリックを、その機能や文法の違いを中心に比較する。 ジェネリックな型 ジェネリックな型は、どちらの言語でも山型の括弧を使って表される。ジェ

    raimon49
    raimon49 2009/06/30
    >C# では同じ名前でも型パラメータの数が異なるならば全く別の型として扱われる。ゆえに、MyClass と MyClass と MyClass は同じ名前空間内に共存できる。 / C#とJavaにおけるGenericsの違い。C#ではパラメータ違いの型宣言やジェネ
  • 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# を使うとはまること - ぐるぐる~
  • 第127回 Ruby vs Java ダックタイピングとインタフェースで見る多態性 - bingo_nakanishiの他言語出身者のためのPerl入門

    前回は、Perlで書いたのだけど、 Rubyでも書いてみたので載せます。 動的型付け言語と静的型付け言語における多態性 オブジェクト指向では、多態性(ポリモーフィズム)という発想がでてくる。 この多態性を実現する方法を今回は2つ紹介する。 Rubyは動的型付け言語であり、ダックタイピングという手法で、多態性を実現できる。 対して、静的型付け言語であるJavaでは上位の型を作ることで多態性を実現できる(今回はインタフェースを用いてみた)。 ダックタイピング Rubyでのタックタイピングを見てみよう。 human = Human.new dog = Dog.new duck = Duck.new human.touch(dog) human.touch(duck)いま、このようにhumanがtouchすると、おのおのの動物が鳴くソースを書いてみる。 duck(アヒル)はhuman(人間)に触ら

    第127回 Ruby vs Java ダックタイピングとインタフェースで見る多態性 - bingo_nakanishiの他言語出身者のためのPerl入門
    raimon49
    raimon49 2009/06/28
    Javaに親クラスやインタフェースが必要になってくる理由。シンプルで柔らかいRubyから先に説明されると非常に解かり易い。
  • プログラマー面接時の技術的な質問事項(アプレッソ版) - 解答編 : 小野和俊のブログ

    昨日、プログラマー面接時の技術的な質問事項(アプレッソ版)を書いたところ、「自分ならこう答える」というエントリを書いてくれた人が何人かいて、個別にコメントしようかとも思ったのだが、昨日のエントリだけだと質問の投げっぱなしになってしまうところもあるので、解答編を書くことにした。 なお、「面接の質問項目を公表しちゃっていいの?」という指摘もあったが、ブログに書いたのはあくまでも質問項目の一例だし、解法を検討する過程を見れば普段どんな風に開発しているのかはだいたいわかるので、特に問題ない。 for (int i = 0; i < list.getLength(); i++) {}の潜在的パフォーマンスボトルネック list.getLength()がlist.getLength()回評価されてしまう。具体例としては、JREに標準で付属するDOMのライブラリのNodeListの実装はlist.get

    プログラマー面接時の技術的な質問事項(アプレッソ版) - 解答編 : 小野和俊のブログ
  • 多重tryブロックの除去 - @katzchang.contexts

    nullによる初期化回避の解答例 - @katzchang.contextsに対してコメントをいただいた件。 id:Nagise 二重tryブロックになるととたんに見通しが悪くなる…。完璧な例外処理の例を誰か教えてほしい。 はてなブックマーク - nullによる初期化回避の解答例 - @katzchang.contexts もっともな指摘なので、多重tryブロックを除去してみました。 方針 要するに単純にメソッドによって切り出しただけです。ポイントは static int sum(File file) throws FileNotFoundException, NumberFormatException, IOException この記述でFileNotFoundExceptionとNumberFormatExceptionを明示してあるところでしょうか。動作としては static int

    多重tryブロックの除去 - @katzchang.contexts
    raimon49
    raimon49 2009/02/23
    >「例外状態から回復できるメソッドがcatchする」のが基本
  • エラー処理の方針とString#equalsの書き方 - 2009-02-19 - きしだのはてな

    String#equalsを使った文字列リテラルとの比較の書き方として、str.equals("リテラル")と書くのがいいか、"リテラル".equlas(str)と書くのがいいかという論争がありました。 そこで、この問題について、エラー処理の方針と絡めて考えてみようと思います。 エラー処理の方針として、エラーパッシングとエラーリカバリーという考え方があります。 エラーパッシングは、エラーがあってもそれを無視して処理を行うという考え方です。例えば音楽データの再生時に、データの一部が欠けていたとしてもそこを適当に補完を行って再生を続けるような考え方です。 人間相手の処理では、エラーによって処理が止まるよりも、それなりの対処を行って処理を続けることのほうが求められるので、ユーザーインタフェースやコンテンツのプログラムではエラーパッシングで考えることが多いと思います。 エラーリカバリーは、エラーが

    エラー処理の方針とString#equalsの書き方 - 2009-02-19 - きしだのはてな
    raimon49
    raimon49 2009/02/20
    null許容
  • 計算量を具体的に見てみる 2009-01-06 - きしだのはてな

    アルゴリズムの話では、計算量の解析がかかせません。 計算量はオーダー記法で表されますが、これは、データの入力量に対してどのくらい時間がかかるかをあらわしたものです。 こういった話はどのアルゴリズムのにも載ってるはずですが、具体的にどのようなプログラムを書くとそのオーダーになるかという記述はあまりありません。 ということで、やってみました。 計算時間表示のための共通処理を行うクラスは、一番最後に書いてます。 O(1) 計算時間がO(1)のアルゴリズムは、処理が入力の量によらない場合です。 配列の要素のアクセスや、ハッシュテーブルによるデータ検索、連結リストへの追加削除などがこれにあたります。 コードには入力量でのループが含まれません。 public class O1 extends ViewCompFrame{ @Override void compute(int n) { proc();

    計算量を具体的に見てみる 2009-01-06 - きしだのはてな
    raimon49
    raimon49 2009/02/05
    オーダーの可視化。これは分かり易い。
  • やっぱ、仕事でJavaやる人はEffective Javaは読んでおくべきだと思うよ。 - sawatの日記

    めずらしく仕事の話なのですが、なんか年明けから他部署に出稼ぎに行かされています。で、その仕事の内容というのが「別の誰かがつくった膨大なJavaソースにJavadocを書き込む」という訳の分からないことをやらされています。しかも、そのJavadocというのが普通のクラスやメソッドの外部仕様について書くのではなくて、完全な内部仕様でほとんどソースの和訳みたいなのを書かなきゃいけないという・・・。年頭からいったいどうやってやる気を奮い立たせればいいのか分からなくなってきます。まったく。 まあ、とにかくソースを読んでがんばってJavadocを書いてるわけなのですが、人のコードを見るとどうもアラに目がいってしまいエントリのタイトルの通りに思うわけですよ。ハラに溜めておくのは精神衛生上よくないと思うので、気づいたのをここに列挙してみます。 列挙する nullでないことが確定されている変数をnullチェ

    やっぱ、仕事でJavaやる人はEffective Javaは読んでおくべきだと思うよ。 - sawatの日記
    raimon49
    raimon49 2009/01/26
    >当たり前だが、ソートのオーダーはO(n*logn)だから線形検索のO(n)より重い。 / ちゃんとコストを見積もれという話と、null恐怖症の話。
  • JavaでMapに複数のキーを指定する方法 - No Programming, No Life

    当記事は、JavaMapに複数のキーを指定する方法 | Think Twice に移管しました。

    JavaでMapに複数のキーを指定する方法 - No Programming, No Life
    raimon49
    raimon49 2009/01/17
    ArrayListをハッシュキーに指定できる
  • Return 0

    return0.infoに移転。昔の日記はまんま残してるので読みたい人はどうぞ。 世界樹の迷宮関係のコンテンツは移行が面倒なのでこっちに残すことにした。 世界樹の迷宮プレイ記録 世界樹の迷宮IIプレイ記録 世界樹の迷宮IIIプレイ記録

    raimon49
    raimon49 2008/08/01
    人に教えるって大変だなー
  • 【レポート】"The Internet is the Wii"(インターネットこそWiiだ) - Wiimote-over-HTTP (1) インターネット越しにWiiリモコンを操作できるWiimote-over-HTTP | パソコン | マイコミジャーナル

    「Wiimote-over-HTTP」(以下、WoH)は、一般的なPCに接続されたWii Remote(以下、Wiiリモコン)の操作や各情報の取得をインターネット経由で可能にするためのAPI、いわゆる「リアルデバイスWebサービス」を提供するWebアプリケーションです。 最大7台までのWiiリモコンが接続でき、それぞれのボタン押下状況や傾きの取得、LEDやバイブレーションの操作を行うことが可能になります。レスポンスはXML / JSON / JSONPといわゆる一般的なWebサービスの形式になっています。もちろんWoHのWebサービスに接続できる環境さえあれば、世界中のどこからでも、WoHのサーバに接続されたWiiリモコンのバイブレーションを操作したり、ボタンの押下状況などを取得できます。 WoHは、Wiiリモコンの操作や情報取得を行うためのコアライブラリに WiiremoteJを利用して

  • Javaの冗長な記法って小クラス主義の現れではないかな - 矢野勉のはてな日記

    Java以下は無駄に長い駄文です。なんか書いてみたはいいもののうまくまとまらなかった。ごく一部しか表せなかった気がする。これではInputStreamReaderとかがたくさんオブジェクトを連結しないと使えないめんどくささをなぜ許容できるか、しか表せてない... もともとは「 Java における質的でない記述がどのように大規模開発に役立つのか - kwatchの日記」がらみの話です。文中にいくつか「アクセッサが簡潔に定義できない」「FileReader に文字コードを渡せない」のような例があって、「それらが改善されたら大規模開発になにか不利益があるのかどうか」という具体的な質問があったので私はそこにコメントしときました。私はコメント欄に「不利益なんてないよ」と回答しました。実際のところ、後方互換性が維持され、言語としての統一性が維持されるなら別に不利益なんてあるわけない。あるとしたらマネ

    raimon49
    raimon49 2008/05/05
    >便利メソッドを増やすならいくらでも増やしてほしい。でもだからといって、ストリームを組み合わせるとファイルをコピーできるという機能自体がいらないとは思わない。
  • お手軽プログラミング言語は教育によくない | スラド デベロッパー

    少々前の家/.の記事より。ニューヨーク大学(NYU)の名誉教授で、GNU Ada95コンパイラ(GNAT)の開発者として知られるEdmond Schonberg氏とRobert B.K. Dewar氏が、NYUを始めとする最近のアメリカの大学におけるプログラミングの授業のあり方に苦言を呈して話題になっている。「計算機科学教育: 明日のソフトウェアエンジニアはどこに?」と題した彼らの論説では、最近の大学の授業ではCやC++、Lisp、(そしてもちろん)Adaと言った格的な言語、数学やアルゴリズム、ハードウェアとの密接な関わり方といった難解なテーマを教えず、Javaのような簡単で人気が高く、近年減少気味の受講者数を増やせそうなお手軽な言語とカリキュラムしか教えなくなっていると主張。このままでは海外の安価なアウトソース先にたやすく置き換えられてしまう程度の能力しかない「プロフェッショナル」し

  • 対談「初心者とハッカーが共存できるPerl」

    現在,Perlユーザーは2極化が進んでいます。初心者はいまだに「CGIが使えさえすればいい」という段階で満足しています。一方で,Perlハッカーは独自の世界を構築し,あまり初心者を省みません。そこでこの特集では,初心者層に絶大な影響力を持つ見上巖氏(ウェブクリエイト代表取締役,KENT-WEBを運営するKENT氏として有名)と,Perlハッカー集団であるShibuya Perl Mongers(Shibuya.pm)の新リーダー,竹迫良範氏(サイボウズ・ラボ)に対談をお願いしました(編集部)。 まずは,Perlとの出会いから教えていただけるでしょうか。 見上 私がPerlに出会ったのはちょうど10年ほど前,1996~97年くらいですね。そのころはコンピュータ・メーカーの営業で,まだプログラミングはできませんでした。自分のWebページにフリーのCGIの掲示板を設置しようとしたのですが,うま

    対談「初心者とハッカーが共存できるPerl」