タグ

Javaに関するnoire722のブックマーク (107)

  • Scalaを始めようと思っているJavaプログラマのための、JavaとScalaの予約語の違い - xuwei-k's blog

    ScalaJavaってまぁまぁ見た目は似てて、同じ予約語も多いので、Javaの予約語を、Scalaの視点からみた場合に分類して簡単に解説してみました。分類の方法は独自だし、けっこう雑です。 Scala始めようと思ってるけど、Javaのあの予約語は、Scalaだと同じやつあるの?もしないなら、Scalaの予約語の、どれを使えばいいの? っていうJavaプログラマ向けです。Javaプログラマにこそ、Scalaが普及して欲しいので。 完全に説明するのもめんどくさかったので、説明もなんか雑ですが・・・ 同時に、以前scalaの予約語について書いたものがあるので、こっちも見るとよいかも。*1 だいだいJavaと同じ機能のモノ 特に説明の必要がないほど、ほぼJavaと同じ使い方するものはなにも書いてません。 catch class もちろんclassの定義に使うのは同じです。 が、Javaの場合 C

    Scalaを始めようと思っているJavaプログラマのための、JavaとScalaの予約語の違い - xuwei-k's blog
  • 並行処理プログラミングを究めるシリーズの書 - かとじゅんの技術日誌

    並行処理プログラミングを究めるシリーズの書 とりあえず以下を読んでます。他に何かよいのがあれば教えてください。 Java言語仕様 第3版 (The Java Series) 作者: ジェームズゴスリン,ガイスティール,ビルジョイ,ギッラードブラーハ,James Gosling,Guy Steele,Bill Joy,Gilad Bracha,村上雅章出版社/メーカー: ピアソンエデュケーション発売日: 2006/12メディア: 単行購入: 1人 クリック: 108回この商品を含むブログ (42件) を見る The Java Language Specification The Java Language Specification - Threads and Locks Java並行処理プログラミング ―その「基盤」と「最新API」を究める― 作者: Brian Goetz,Joshua

    並行処理プログラミングを究めるシリーズの書 - かとじゅんの技術日誌
  • マルチコア時代に備えて本気でメモリモデルを理解しておこう - メモリバリア編 - - じゅんいち☆かとうの技術日誌

    このエントリを読む前提条件として、マルチコア時代に備えて気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - じゅんいち☆かとうの技術日誌を読んで、リオーダーとは何かを理解していることとします。 前回のおさらいをすると、 プログラムの実行順序は、リオーダーが許可される場合と禁止される場合がある。並行処理ではリオーダーを想定しなければ、処理結果の整合性が確保できない。(特にマルチプロセッサ環境) リオーダーを禁止して、可視性を保証する。(finalフィールドはコンストラクト時に完全に初期化され、コンストラクト後はスレッドから見えるようになる) でした。 リオーダーについて理解できたら、今度はメモリバリア命令でスレッド毎に扱うメモリと、大域のメインメモリとのメモリI/Oについて見ていきたいと思います。メモリバリアが理解できれば、以下のソース*1のスレッドがな

    マルチコア時代に備えて本気でメモリモデルを理解しておこう - メモリバリア編 - - じゅんいち☆かとうの技術日誌
  • Play framework で Java Web アプリケーション開発をもっと簡単に

    Play framework で Java Web アプリケーション開発をもっと簡単に ついに Web デベロッパによって Java フレームワークが開発されました。 ぶくぶくに膨れ上がったエンタープライズ Java をクリーンに置き換える魅力に気付いてください。 Play は開発者の生産性に注目し、RESTful アーキテクチャを目指します。 ★ リリース 1.0.2 ダウンロード そして はじめてみよう ! 概要 バグを直したらリロードするだけ Java ファイルを修正して、保存して、ブラウザをリロードすれば、すぐに結果を見ることができます! コンパイルもデプロイもサーバの再起動も必要ありません。 ステートレスモデル Play は "Share nothing" なシステムです。 同じアプリケーションの多数のインスタンスを複数台のサーバ上で動作させることで容易にスケールし、REST に

  • 業務系のJavaプログラマーが知っておくべき10個のBad Partsとその対策 - 達人プログラマーを目指して

    Java: The Good Partsののタイトルに触発されて、逆にJava言語の使いにくい部分をいくつかピックアップしてみました。Java EEなどの業務系のアプリケーションプログラマーの視点で書いていますので、別の立場ではここで指摘している事項が必ずしもBad Partではないという指摘もあるかもしれませんし、他にもいろいろなポイントがあると思いますが、とりあえず、私の独断で思いついたものを10個説明したいと思います。 1.標準APIのチェック例外が扱いにくい Java言語のチェック例外は当にGood Partなのか? - 達人プログラマーを目指してでも取り上げましたが、Bad Partの第一番目として標準APIのチェック例外が扱いにくいという点を指摘させていただきたいと思います。チェック例外については、理屈上コンパイラーによって例外の処理をプログラマーに強制させることができるす

    業務系のJavaプログラマーが知っておくべき10個のBad Partsとその対策 - 達人プログラマーを目指して
  • PHP5の登場、PHP5とJavaのパフォーマンス比較

    以上のとおり、PHP5のデータベース接続処理はJavaと比較して2分の1以下の実行速度しかないという結果となりました。また、PHP5はPHP4と比較してもデータベース接続処理において10%近く実行速度を低下させています。 PHP5はPHP4と比較して10%〜15%実行速度を低下させていますが、この原因として考えられるのは、やはりオブジェクト指向機能の大幅な強化にあると筆者は考えています。 PHP5は、当初「Zend Engine version 2.0: Feature Overview and Design」(PDF:115KB)において目標としていたオブジェクト指向機能の強化と引き換えにパフォーマンスを犠牲にしたわけですが、この選択によってPHP5は再利用性や拡張性、堅牢なアーキテクチャの実現方法を手に入れました。 パフォーマンスの悪化は各種パッケージ製品(※1)、マシンのスペックアッ

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

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

  • java-ja第24回 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』の資料 - 矢野勉のはてな日記

    Java, java-ja4/25に株式会社グリー様に会場をお借りして、java-ja第24回として、GoFのデザインパターンをそれぞれ5分でLTで説明するというイベントが開かれました。私はStateパターンについてLTしました。資料を公開しておきます。iWork.comAppleのiwork.comへのリンクです。ツイートする

  • もっとJavaEE6っぽくcometチャットを実装する - きしだのHatena

    もっとJavaEE6っぽくやってみよう 昨日のエントリでは、AsyncContextの使いかたを試すため、サーブレットだけを使って実装してみました。 でも、すこし泥臭いコードも多くなっていたし、このまま実用的なコードにしていくときにゴテゴテとコードを継ぎ足していくというのもイヤな感じです。 そこで、もっとJavaEE6っぽいコードに書き換えてみましょう。 少し準備 今回は、JAX-RSでのRESTful Webサービスと、CDIでのインジェクションを使ってみます。 JAX-RSの準備 まずは、JAX-RSを使うための設定クラスを作成します。 package chat2; @javax.ws.rs.ApplicationPath("rs") public class ApplicationConfig extends javax.ws.rs.core.Application { } こういう

    もっとJavaEE6っぽくcometチャットを実装する - きしだのHatena
  • maven-scala-plugin - maven-scala-plugin

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.scala-tools.maven-scala-plugin</groupId> <artifactId>testJavaAndScala</artifactId> <version>1.0-SNAPSHOT</versi

  • 今日の新刊をメールでお知らせしてくれる処理 - shokosブログ

    わりと高頻度で漫画を買っているわたしです。 発売日当日に屋さんで買わないと気が済まない性格なので、コミックダッシュ! - 漫画(マンガ)、コミックの蔵書管理と新刊発売日のチェックをサポートする総合サイト | コミックダッシュ!で管理している漫画の発売日にメールでお知らせしてくれるコードを殴り書きしました。 package jp.ne.hatena.syoko_sasaki; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.text.SimpleDateFormat; import java.util.ArrayList

    今日の新刊をメールでお知らせしてくれる処理 - shokosブログ
  • やっぱりJavaはここが遅い!

    的にJavaは『遅い』と思われている。理由は二点あって、一つは過去のバージョンのJavaの実行速度が遅かった歴史的な点であり、一つは実際に依然として遅い面がある点だ。しかし、漠然と遅いと思われている事が多い。 数値演算などでは、JavaはC言語に迫る速度を出す事もある。The Computer Language Benchmarks Gameでは逆転している項目もある。しかし、Javaアプリケーションの体感速度はC++アプリケーションを上回ることは無いとされる。 これはJITコンパイラによる初期動作の遅さ、ガーベッジ・コレクション(GC)の駆動などの複合的な要因で発生する『遅さ』なのだが、単純なベンチマークだと特徴を掴みづらい。そこで変則的なベンチマークを作って、このJavaの『遅さ』を簡単に計測してみた。 1. ベンチマーク方法 コッホ曲線の描画時間を連続して測るベンチマークを作成し

    やっぱりJavaはここが遅い!
  • Java 暗号化拡張機能 JDK5.0

    Java Is the Language of Possibilities Java is powering the innovation behind our digital world. Harness this potential with Java resources for student coders, hobbyists, developers, and IT leaders.

  • Scala Swingメモ(Hishidama's Scala Swing Memo)

    Swingは、ウィンドウ(GUI)アプリを作る為のコンポーネント(部品)群。 ScalaのSwingはJavaのSwingのラッパークラスなので、基的な仕組みはJavaのSwingと同じ。 ただ、書き方が「宣言的」になっているらしい。 分類 Scala Java相当 概要 更新日

  • 「C#できます」と言い放ったあいつがJavaプログラマであることを見分ける10の質問 - 平々毎々(アーカイブ)

    <追記> 念のため書いておきますが、ネタですからね。 わざと難しい質問にしてるので、 回答に困っても大丈夫だ、問題ない。 下記質問にそれぞれ50文字以内を目安に簡単に説明すること。 ==演算子のオーバーロードを実装してEqualsメソッドと同じ処理を実行するようにしてもよい場合はどのような時か? ループ内でなければ、たとえ100個の文字列型変数であってもまとめて+演算子で連結してよい理由を説明せよ。 Listのように値型を格納するジェネリックコレクションを使ってもボックス化/ボックス化解除が発生しない理由を説明せよ。 Full GC(Gen2 GC)が動作したときに断片化していてもコンパクションされないヒープ領域はどのような領域か? throw; とthrow ex; の違いをスタックトレースの観点で説明せよ。 フィールドのアクセス修飾子をprivateにしプロパティのgetter/set

    「C#できます」と言い放ったあいつがJavaプログラマであることを見分ける10の質問 - 平々毎々(アーカイブ)
  • Javaの10個のBad Partsのほとんどはscalaだと解決されちゃうんだぜ - xuwei-k's blog

    ネタ元 業務系のJavaプログラマーが知っておくべき10個のBad Partsとその対策 結論から先に言うと、3と10以外は結構直接的にscalaで解決できるというか、javaに比べてscalaの方が便利だとおもいます。*1 あと、元ネタのblogの人はgroovy詳しいみたいですが・・・ groovyとscala比べるとgroovyの方が手軽で便利だったり、scalaのほうが型安全だったり*2いろいろあるかもしれませんが、groovyあまり詳しくないので、その辺の言及というか、比較はやめておきます。*3 1.標準APIのチェック例外が扱いにくい チェック例外ってなにそれおいしいの?(・ω・) java Field field; try { field = getClass().getField("testField"); Object value = field.get(this); }

    Javaの10個のBad Partsのほとんどはscalaだと解決されちゃうんだぜ - xuwei-k's blog
  • ちょっとしたJavaコードをScalaに書き直してみた - xuwei-k's blog

    元コードはの118ページ目 変数多いぅぉ・・・try catchやifが値を返せばretValとかいらないのに・・・ という「Javaコードを見るとscalaで書き直したい病」が発病したので(・ω・`) 元のJavaコード↓ @Override public int compare(Player o1,Player o2) { float o1A, o2A; int retVal; if(o1.getId() == o2.getId()) return 0; if(o1.hasRole(Player.Roles.Batter)){ try{ o1A = o1.asBatter().getAverage(); }catch(NotEnoughAtBatsException e) { o1A = 0.0f; } } else o1A = 0.0f; if(o2.hasRole(Player.R

  • http://blogs.sun.com/okazaki/entry/performance_myth_string_plus_string

  • [Java]Java 59 bytes FizzBuzz - terazzoの日記

    お題: Java 30byte FizzBuzz - プログラマーの脳みそ ぎ「FizzBuzzが110文字で書けるなら、1文字2bitの文字コードで記述すれば220bitで記述できる。byteに直すと28byteになる」 な「無茶言うなあ」 せ「だいたい、1文字2bitじゃ文字が4種類しか扱えないじゃない」 じゃあ、まじめに「1文字単位でちゃんと符号化できる」という縛りなら、実際何bitならFizzBuzzが記述できるかやってみた。 方針 まず、FizzBuzz自体をなるべく短くする。 ↓ 使用されている文字の種類を少なくする。 ↓ ソースがなるべく短くなる符号化の方法を作る。 ↓ 文字コード作成。 結果 FizzBuzz(97文字)は35種類の文字で書けて、上手く符号化すると59バイトになるよ。 daphne:FizzBuzz terazzo$ ls -l src/z.java -rw

    [Java]Java 59 bytes FizzBuzz - terazzoの日記
  • Kurusugawa – Kurusugawa Computer Inc.

    ビジネスに役立つ AI をお届けします 来栖川電算は AI 技術の研究開発から応用まで幅広いサービスを提供する名古屋工業大学発ベンチャー(2003 年設立)です。未踏ソフトウェア創造事業の採択者やソフトウェア分野の様々なコンテストの入賞者が在籍しています。最先端の AI 技術だけでなく、膨大な高品質データを生み出す技術、ハードウェアの限界性能を引き出す実装技術、高品質なソフトウェアを実現する設計技術にも定評があります。 手軽に使える様々な認識エンジン 来栖川電算の認識エンジンを活用すれば、センサーデータに埋め込まれた意味を手軽に抽出できます。種類ごとに用意された認識エンジンは教師データや設定を変えるだけで様々なタスクへ応用できます。LinuxAndroid・iOS 用のライブラリ、WebAPI、コマンドラインツールなどプログラマフレンドリーな SDK を提供しています。トレーニングやコン

    Kurusugawa – Kurusugawa Computer Inc.