タグ

programmingとJavaに関するj7400157のブックマーク (31)

  • The Trouble with Checked Exceptions - K.Maebashi's はてなブログ

    JavaからC#に移った人は、C#にはなぜ検査例外がないのか? と疑問に思うと思います。それに対するC#作者Anders Hejlsbergのインタビュー記事を訳してみました(いままでにもまして訳に自信がないところが多いんですが)。 原文はこちら。 http://www.artima.com/intv/handcuffs.html 拙著「プログラミング言語を作る」内でも少し言及しています(p.340)。 ところで、JavaとC#の例外処理の違いというと「検査例外の有無」が取り上げられることが多いのですが、「スタックトレースが生成されるタイミング」も異なっており、Javaプログラマはたまにはまることがあります。その点も「プログラミング言語を作る」では言及しておりますのでぜひどうぞ(宣伝)。 関連記事: MSDN内の記事 http://msdn.microsoft.com/en-us/vcsh

    The Trouble with Checked Exceptions - K.Maebashi's はてなブログ
  • レビューで鍛えるJavaコーディング力 その1(日付バリデーション) - 谷本 心 in せろ部屋

    現場でJavaのソースをレビューしていると、一目で「問題だ」と気づくコードによく出会います。 しかも、同じような問題をアチコチで見かけることも、少なくありません。 FindBugsを導入したおかげで、そういう問題が多少減ったものの、 やはりゼロになるわけではありません。 、、、ということで、 そんな問題コードに即座に反応できるようになるために、 私が見てきた問題コードをクイズ形式で紹介していきます。 ぜひ皆さんも、脊髄反射でNG部分を見つけてください。 見つけられなければ、適当にブクマでもしてください(笑 では今回は、日付チェックに関する問題です。 問題 以下のコードの問題を指摘し、修正してください。 ただし、問題は複数あることもあれば、全くないこともあります。 /** * 日付が正しい形式であり、存在する日付であることを検証します。 * * @param date 日付を示す文字列 *

    レビューで鍛えるJavaコーディング力 その1(日付バリデーション) - 谷本 心 in せろ部屋
    j7400157
    j7400157 2009/12/25
    SimpleDateFormatについて
  • Java におけるコード進化パターン (Code Evolution Patterns in Java)

    Java におけるコード進化パターン (Code Evolution Patterns in Java) asato shimotaki <asatohan at gmail.com> 最終更新日 : 2009/6/21 (2004/4/22 より) [...] For twenty years, I spent two or three hours a day looking at pairs of things -- buildings, tiles, stones, windows, carpets, figures, carvings of flowers, paths, seats, funiture, streets, paintings, fountains, doorways, arches, friezes -- comparing them, and asking my

  • GoogleのMapReduceアルゴリズムをJavaで理解する

    GoogleMapReduceアルゴリズムをJavaで理解する:いま再注目の分散処理技術(前編)(1/2 ページ) 最近注目を浴びている分散処理技術MapReduce」の利点をサンプルからアルゴリズムレベルで理解し、昔からあるJava関連の分散処理技術を見直す特集企画(編集部) いま注目の大規模分散処理アルゴリズム 最近、大規模分散処理が注目を浴びています。特に、「MapReduce」というアルゴリズムについて目にすることが多くなりました。Googleの膨大なサーバ処理で使われているということで、ここ数年の分散処理技術の中では特に注目を浴びているようです(参考「見えるグーグル、見えないグーグル」)。MapReduceアルゴリズムを使う利点とは、いったい何なのでしょうか。なぜ、いま注目を浴びているのでしょうか。 その詳細は「MapReduce : Simplified Data Proc

    GoogleのMapReduceアルゴリズムをJavaで理解する
  • http://karetta.jp/book/cforjava

  • Java でラムダ - IT戦記

    λ... λ... ちょっととおりますよ はじめに C++ Template の勉強をしていて、気がついた。 ネストした(内側から外側が見える)名前-値の空間が存在し 値から名前-値の空間を生成することが可能で その空間を生成するための情報を値として扱え 名前-値の空間の中の一つ以上の値を取り出せると ラムダが出来る。 という訳で Java でラムダを作ってみた import static java.lang.System.out; public class Hoge { public static void main (String args[]) { // チャーチ数 0 final λ zero = new λ () { λ call (final λ f) { return new λ () { λ call (final λ x) { return x; }}; }}; // チ

    Java でラムダ - IT戦記
    j7400157
    j7400157 2008/07/01
    ぱっと見ると、とてもJavaのソースに見えない!
  • Martin Fowler's Bliki in Japanese - クロージャ

    http://martinfowler.com/bliki/Closure.html 動的言語に興味がでてくると、 クロージャやブロックと呼ばれる概念に出会うと思います。 C/C++/Java/C# などクロージャを持たない言語をご使用の方は、 どういったものなのかご存知ないかもしれません。 ここでは簡単にクロージャについて説明します。 クロージャを持った素晴らしい言語を使ったことある方にとっては、 あまり面白くない話かもしれません。 クロージャは長年使用されてきました。 私が最初に出会ったのは、おそらく Smalltalk だったと思います。 Smalltalk ではブロックと呼んでいました。 Lisp ではクロージャを多用しています。 Ruby でもクロージャが提供されています――多くの rubyist がスクリプト言語に Ruby を選ぶのはこのためです。 基的にクロージャとは、ブ

    j7400157
    j7400157 2008/07/01
    クロージャについて
  • C SharpとJavaの比較 - Wikipedia

    来の表記は「C#とJavaの比較」です。この記事に付けられたページ名は技術的な制限または記事名の制約により不正確なものとなっています。 この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "C SharpとJavaの比較" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2024年2月) いずれの言語もクラスベースのオブジェクト指向言語であり、その文法はC++に類似しているが、C++との互換性はない。メモリ再利用の手段として、従来の手動で解放する方法ではなくガベージコレクション (GC) を使用する。また、スレッド同期の手段を言語構文に組み込んでいる。 また、いずれの言語もC++のデストラク

  • Javaの匿名クラスを使ってかっこよくオブジェクトを初期化するテクニック - 矢野勉のはてな日記

    JavaJavaの匿名クラスはすごくかわしいかわいい技術でいろいろキモイことができます。匿名クラスは基的に「サブクラス生成のための特殊記法」であって、クロージャではありません。匿名クラスとクロージャを対比して云々するのはそもそも誤りです。なんならクロージャでサブクラス作ってみなよってことです。匿名クラスによって、Javaではなにかのサブクラスを任意の場所で即座に作り出すことが出来るんです。なにかのクラスのメソッドを三つほど書き換えた新しいクラスをさっと作れるのは、なかなか面白い機能ですよ。 その匿名クラスを利用したカッコイイ(でも使うのは躊躇されている)記法として、次のようなのがあります。(追記:この用法はヨシオリさんところで見たのが最初です) List list = new ArrayList() {{add("a"); add("b"); add("c");}}; Javaには「初期

    j7400157
    j7400157 2008/06/24
    static初期化ブロックとインスタンス初期化ブロック / 知らなかった…
  • Javaにおける疑似Map生成リテラル({ key =&gt; value }ばりに簡単にMapを生成する方法) - 矢野勉のはてな日記

    Javajava-ja@lingrのログを見ていたら、なにやらキーワード引数の話から、マップをサクっと作れないと「流れるようなインターフェース」が作りにくいとかそんな話になってて、「せめてMapのリテラルさえあれば…」とかいう話に行っていました(敷居が高かったので、下に紹介するブログのURLを貼って逃げた(笑))。 JavaMap生成リテラルが欲しい!という話は結構昔からぽろぽろ出てますよね。たしかにMapがささっと作れるのと作れないのとではMapを使う時のモチベーションが違う。気軽に使えない。 国内はもちろん海外のブログでもそういう話題は上がってまして、私のお気に入りは、odz bufferさんにて紹介されてた、このNicolas Lehuen氏のアイデアです。このアイデアを使うと、下記のようにBuilderみたいに簡単にHashMapを生成できます。 // Example usage

  • Javaにvariant型を実装した - *「ふっかつのじゅもんがちがいます。」withぬこ

    最近Hadoopを使うために5〜6年ぶりにJavaをいじっています。 そんで、ちょっとばかり耐えがたいわけです。 例えばありがちな例題を挙げると、 ["google", "検索","開発"] のようなタグ(文字列)のリスト(でも配列でもなんでもいい)を受け取って [ {tag=>"google", enc=>'google'}, {tag=>"検索", enc=>'%E6%A4%9C%E7%B4%A2'}, {tag=>"開発", enc=>'%E9%96%8B%E7%99%BA'} ] のようなハッシュテーブルのリストに変換しなさい。 ただしパーセントエンコーディングを行う関数(でもメソッドでもなんでもいい) uri_encodingは与えられているものとする。 こんなこと、Webアプリケーションではよくやるじゃないですか。 んで、実際Perlなんかでは結構簡単に書けて #my @tag