タグ

javaに関するLyoのブックマーク (106)

  • JSON on HTTPやWeb APIを各言語でどうやって実装するのか

    HTTPでアクセスして、JSONを返すようなWebサーバを書きたいとする。 どんな言語を選ぶか。どんなミドルウェアを選ぶか。どんなライブラリを選ぶか。 たとえば、TIOBE Softwareが公表している「Programming Community Index(PCI)」という指標がある。人気のあるプログラミング言語の数値化。これを見ていて思ったのは、「多すぎだよね、プログラミング言語」ということ。これらのうち、どの言語を勉強し、どの言語をプロジェクトに採用すべきなのか。 その感触を得るために、 「同じ仕様のREST serviceを複数言語で実装したらいいんじゃね?」 と思った。いくつかの言語で実装を起こしてみている。 前提条件 大規模な開発を想定する。ユーザの規模が大規模。トランザクション数が大規模。そして、開発者が大規模。 実用的かつモダンな開発を想定する。プロジェクト毎のバージョン

    JSON on HTTPやWeb APIを各言語でどうやって実装するのか
  • Javaの例外処理で知らないと損する7つのテクニック

    Javaの例外処理で知らないと損する7つのテクニック:【改訂版】Eclipseではじめるプログラミング(24)(1/3 ページ) これからプログラミングを学習したい方、Javaは難しそうでとっつきづらいという方のためのJavaプログラミング超入門連載です。最新のEclipseとJava 6を使い大幅に情報量を増やした、連載「Eclipseではじめるプログラミング」の改訂版となります(この回と前回のみ、別連載「EclipseでJavaに強くなる」の改訂版です。今回は第4回Javaの例外のテクニックを知る」の改訂版です) 前回の「プログラマの宿命! 例外とエラー処理を理解する」では、Javaにおける例外の用途と基的なコードの書き方、例外が発生するさまざまなケースについて理解しました。 今回は、独自に例外を定義する方法や、ちょっとした例外のテクニックを紹介します。 【1】Eclipseで独自の

    Javaの例外処理で知らないと損する7つのテクニック
  • CSVファイルにしてダウンロード : Erikaメモ

  • nullを受け付けないメソッドにnullを渡した時の挙動 - 都元ダイスケ IT-PRESS

    っていう話を書こうと思ってたら、以前書いてた(cf. 前提条件を破った場合、どのような挙動をするのか? - 都元ダイスケ IT-PRESS) 上のエントリにも書いたのだが、自分はこういう時IllegalArgumentExceptionを使うようにしている。そして、commons-lang v2.6 をよく使っていたので、その中の Validate#notNull を利用してnullチェックをするのが自分のスタイルだ。 しかし、いい加減commons-lang v3系に移行しようかな、と考えて色々触っていたのだが、v3から Validate#notNull の仕様が変わり、NullPointerExceptionを投げるようになったのだ。 といった辺りの俺周辺タイムライン → Javaでnullを受け付けないメソッドにnullを渡したらどうなるべきか - Togetter で、いくつかのラ

    nullを受け付けないメソッドにnullを渡した時の挙動 - 都元ダイスケ IT-PRESS
    Lyo
    Lyo 2011/11/21
  • ビッグデータ処理の常識をJavaで身につける

    Hadoopをはじめ、Java言語を使って構築されることが多い「ビッグデータ」処理のためのフレームワーク/ライブラリを紹介しながら、大量データを活用するための技術の常識を身に付けていく連載 検索エンジンの常識をApache Solrで身につける ビッグデータ処理の常識をJavaで身につける(1) 検索エンジンの概要と周辺技術について解説し主な利用方法や実装ソフトウェア、Solrの利用方法などを簡単に紹介します

    Lyo
    Lyo 2011/11/20
  • Guavaをざっくり紹介 - ellerの日記

    Guava librariesをご存知でしょうか?Googleが開発・使用しているコアライブラリです。OSSであり簡単に入手できます。 http://code.google.com/p/guava-libraries/ このライブラリは結構多機能で、海外の著名プロダクトでもよく見かけるのですが、日のネットでの知名度はいまいち高くない気がします。もともとの名前(Google Collections)はそこそこ知名度があったと思うのですが、この差はなぜでしょうか?私の観測範囲が狭いだけかもしれませんけども……。 自分が使ってみて思った「へーこんなことができるんだー」をまとめてみますので、共感するところがあればぜひ検証してみてはいかがでしょうか。 何が嬉しいの? Guavaはできることを増やすライブラリではなく、普段やっていることを短く書くためのライブラリです。Apache commonsなど

    Guavaをざっくり紹介 - ellerの日記
  • Java7 で ArrayList の foreach が速くなった理由を調べてみました。 - 地平線に行く

    Java7でList/TreeMap/TreeSetのIteratorがかなり早くなって、 ArrayListのforeach文(拡張for文)も、普通のfor文より早くなりました。 コレクションの細かい話、だが面白い! - 谷 心 in せろ部屋 そうなんですか!? …と思って試してみたところ、ArrayList の foreach文(拡張for文)が Java6 → Java7 で約2.5倍速くなっていました。 手元の環境では、普通の for 文より速くなることはなかったものの、ほとんど気になならないぐらいの差でした。 - 2011年11月26日 訂正: 速くなっていたのは ClientVM で実行した場合のみで、ServerVM では変わっていませんでした。 詳しくは、Javaの実行速度を調べるなら、ClientVM/SeverVM の違いを考慮しておくべきでした。 - 地平線に行

    Java7 で ArrayList の foreach が速くなった理由を調べてみました。 - 地平線に行く
  • Javaプログラミングではファイルパスの扱いに注意 - Oracleブログ

    OracleブログにJavaプログラミングに関するちょっとしたティップが「Tip #13 java.io.File Surprises (Byron Nevins)」として掲載されている。java.io.Fileの絶対パスに関する扱いが勘違いしやすいものだから注意するように、といった内容になっている。 掲載されているサンプルソールコードを若干アレンジしたものを次に掲載する。 import java.io.*; public class Demo { public static void main(String[] args) { try { String path = "/tmp/../tmp/../tmp/../"; File abspath = new File(path).getAbsoluteFile(); File canpath = new File(path).getCano

    Lyo
    Lyo 2011/11/15
  • Commons DBCPを超えるTomcat JDBC Poolとは

    Commons DBCPを超えるTomcat JDBC Poolとは:Tomcat 7の新機能で何ができるようになるのか?(番外編)(1/2 ページ) TomcatのDBコネクション・プールは2つある @IT読者の皆さんは「Tomcat JDBC Connection Pool」をご存じですか? 通常、TomcatのDBコネクション・プールといえばApache Commonsプロジェクトの「Commons DBCP」を想像するかと思います。しかし、Tomcatには「Commons DBCP」以外にもDBコネクション・プールの実装が存在します。それが、「Tomcat JDBC Connection Pool」(以下、Tomcat JDBC Pool)です。 Tomcat JDBC Poolとは、Apache Tomcatプロジェクトが独自に作成したDBコネクション・プールの実装のことです。

    Commons DBCPを超えるTomcat JDBC Poolとは
  • JavaSE 7でメソッド名に使えなくなった文字 | 開発者ブログ | 株式会社エイチ・オー・エス

    パッケージJava製品開発担当の大です。こんにちは。 朝晩はだいぶ肌寒くなって、秋らしい空気になってきましたね。 前回も書いたとおり、現在HOSでは製品のJavaSE 7での動作検証を進めています。JavaSE 7で早く使いたい方、申し訳ありませんがいましばらくお待ちください。 さて、検証している上でちょっと困ったことが出てきました。従来動いていたテストコードの一部が、JavaSE 7ではコンパイルもできなくなってしまったのです。これはJavaSE 7の不具合か?と思い、調査してみました。 日語のテストメソッド名 製品のクラス名やメソッド名では使いませんが、開発時のユニットテストのメソッド名やクラス名は、最近は、基的に日語で書くようになりました。これまで日語メソッド名で特に問題が起こっていなかったことと、テストのレポートの出力がアルファベットのキャメルケースに比べ圧倒的に見やすいか

    JavaSE 7でメソッド名に使えなくなった文字 | 開発者ブログ | 株式会社エイチ・オー・エス
    Lyo
    Lyo 2011/11/05
  • Java SE 7 (1) - 文字列switchのからくり - argius note

    遅れ馳せ乍ら、Java7について自分なりにまとめてみます。 最初は概論から入るのが定石でありましょうが、現状は何時投稿できるか分からない状況ですので、小出しにしていくことにします。 まずは、"Strings in switch Statements"から。 これは珍しくピーンと来たので、確認をしてみます。 final class Main { void f(String s) { switch (s) { case "aa": System.out.println("1"); break; case "bb": System.out.println("2"); break; default: } } } これをコンパイルして、javapでディスアセンブルしてみます。 Compiled from "1.java" final class Main { Main(); Code: 0: alo

    Java SE 7 (1) - 文字列switchのからくり - argius note
    Lyo
    Lyo 2011/10/23
  • コレクションの細かい話、だが面白い! - 谷本 心 in せろ部屋

    Collections Gathering これぞJavaOne、これぞBoFという内容。 もう、すーーっごい細かいCollectionの話なんですが、だから面白かったんです。 Java7でCollections#sortが改善され、 TimSortとDual Pivot Quicksortが導入されてソートが2〜3から10倍早くなりました。 知ってたらドヤ顔できる系の情報ですね! Java7でList/TreeMap/TreeSetのIteratorがかなり早くなって、 ArrayListのforeach文(拡張for文)も、普通のfor文より早くなりました。 これまでは 「統一感のために、ArrayListもforeach文を使おうぜ」派と 「ArrayListだけはfor文使った方がパフォーマンスいいから、for文使うぜ」派に 分派していましたが、これからは皆さん、foreach派に

    コレクションの細かい話、だが面白い! - 谷本 心 in せろ部屋
  • Java7 対応 Eclipse 3.7.1 Indigo SR1 リリース - cypher256's blog

    eclipse.org から Java7 に対応した Eclipse がリリースされました。合わせて下記をリリースしました。 Pleiades All in One 日語 Eclipse 3.7.1 リリース 各プラグインやミドルウェアを最新版に更新しています。 Java7 をすぐ試したい場合は、Java 版の JRE ありをダウンロードしてください。 ダウンロード: http://mergedoc.sourceforge.jp/pleiades_distros3.7.html 関連リンク: eclipse.org Java7 新機能(英語) Eclipse Indigo 3.7.1.v20110924 Java 版の JRE ありに Java7 追加 インストール済みの JRE のデフォルトを Java5 から Java6 へ変更 jre5、jre6 ディレクトリーを java/5、j

    Java7 対応 Eclipse 3.7.1 Indigo SR1 リリース - cypher256's blog
  • SoftReference と WeakReference と PhantomReference - kagamihogeの日記

    最近加わったように見せて実はすごい昔から存在している java.lang.ref.Reference とその実装クラスである PhantomReference, SoftReference, WeakReference の 3 つ。今日はこいつらの動作について軽く見ていく。 ただその前に。java6 の幾つからかはシランけど jvisualvm なる jvm の挙動を GUI で見れるツールが提供されている。 とりあえず、下記の何の意味も無いコードを走らせたときの jvisualvm の挙動はこんな感じ。 long c = 0; List<BigDecimal> list = new ArrayList<BigDecimal>(); while (true) { Random r = new Random(); long l = r.nextLong(); list.add(new Big

    SoftReference と WeakReference と PhantomReference - kagamihogeの日記
    Lyo
    Lyo 2011/09/19
  • Javaだって関数型言語に負けないぐらい魅力的:オブジェクト指向だけで計算してみる - ようじょと結婚したい

    HaskellやScalaなどで一躍大人気となった関数型言語には、その根底に型付きラムダ計算という計算体系の理論が存在しています。この型付きラムダ計算の理論のおかげで、関数型言語では型安全なプログラミングが出来るのです。 ではオブジェクト指向言語にはそのような理論は存在するのでしょうか。 Javaについては、割と最近ですが、Javaをモデル化した計算体系を扱った、 Featherweight Java: a minimal core calculus for Java and GJ [Igarashi et al., 2001] という論文が存在します。この論文では、JavaJava 5.0以降で採用されたジェネリクスという仕組みをモデル化したオブジェクト指向の体系を定義し、この体系上での型安全性の証明を行っています。 この論文の体系では構造化定理で言う条件分岐と反復が定義されていません

    Javaだって関数型言語に負けないぐらい魅力的:オブジェクト指向だけで計算してみる - ようじょと結婚したい
  • Javaバイトコード

    クラスファイルを説明するときに残した宿題、Code属性で定義されるバイトコードについて、ここで説明していきます。バイトコードは、JVMを前提にした一種の機械語です。javapでは、アセンブラー風に出力していますが、実際は命令を表わす1バイトのオプコードに0バイトから数バイトのオペランドで構成されています。オプコードは1バイト(もちろん符号なしです)なので、最大でも256個の命令セットしか表現できません。これが大きいか小さいかは議論があるかもしれませんが、ともかく現状で256個の内、231個は既に使用されています。(当は仮押えも含むので、指定済みと言った方が正確かも知れませんが) (1) バイトコードの特長 Javaバイトコードには、様々な特長がありますが、まずその名前に現れているように、バイト・ストリームとして扱うことができるという点です。先頭のオプコードが1バイトで表現されており、

    Lyo
    Lyo 2011/08/25
  • Javaの前置インクリメントと後置インクリメントの内部実装を読みたい - 虎塚

    id:E_Mattsanさんからコメントで教えていただいたページが面白いです。 More Effective C++ 第6回 http://blog.livedoor.jp/exiashio/archives/2514235.html C++の前置インクリメントと後置インクリメントの内部実装について書かれています。元ネタは、『新訂版 More Effective C++』というのようです。 前置と後置の振る舞いを同じにするために、内部的には後置の実装に前置を使っている、という話が、興味深いと思いました。 で、Javaだとどうなのかが気になり、確認しようとしたところ、行き詰まってしまいました。 分からないこと どのコードを読めばよいかが分かりません。標準APIの実装なのか? JVMのコードなのか? そもそも「++」とか「+=」とかグレッパビリティ(grepの有効性。造語)が低すぎてキツイ。

    Javaの前置インクリメントと後置インクリメントの内部実装を読みたい - 虎塚
    Lyo
    Lyo 2011/08/25
  • languageinterfaces.com - languageinterfaces リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

  • 学校では教えてくれない System.out.println() - 郡山からHello World

    実際に学校で教えてくれるかは別として System.out.println()について考えてみよう。System.out.println()は、Javaを勉強しようとする人が初期の段階から利用するメソッドである。が、しかし、実は謎だらけなのである。 まずは、System.out.println()を分解して考えてみる。 Systemjava.lang.Systemである。 outはjava.lang.Systemのフィールドである。 Systemクラスのjavadocを眺めると、outの型はPrintStreamであることがわかる。 PrintStreamのjavadocを眺めると、printlnメソッドが存在する。 つまり、System.outにPrintStreamのオブジェクトが代入されていて、そのオブジェクトのprintlnメソッドを呼んでいるだけでる。このメソッドを実行すること

    学校では教えてくれない System.out.println() - 郡山からHello World
    Lyo
    Lyo 2011/08/18
  • Javaのhello worldの読み方 | mwSoft

    前書き お馴染み、hello worldのソース。 class Hello { public static void main(String[] args) { System.out.println("hello world"); } } このコードはコンパイルされると、こんなバイトコードになります。 ca fe ba be 00 00 00 32 00 22 07 00 02 01 00 05 48 65 6c 6c 6f 07 00 04 01 00 10 6a 61 76 61 2f 6c 61 6e 67 2f 4f 62 6a 65 63 74 01 00 06 3c 69 6e 69 74 3e 01 00 03 28 29 56 01 00 04 43 6f 64 65 0a 00 03 00 09 0c 00 05 00 06 01 00 0f 4c 69 6e 65 4e