タグ

ブックマーク / bitter-fox.hatenadiary.org (8)

  • 現場で使える 最新 Java SE 7/8 速攻入門 - きつねとJava!

    ITProの連載、Java技術最前線 | 日経 xTECH(クロステック)などで有名なJava Championの櫻庭さん(@skrbさん)からご著書、「現場で使える 最新 Java SE 7/8 速攻入門」を献いただきました。 現場で使える[最新]Java SE 7/8 速攻入門 作者: 櫻庭祐一出版社/メーカー: 技術評論社発売日: 2015/11/19メディア: 大型この商品を含むブログ (1件) を見る 感想 このは、Javaを普段使っている、もしくはJavaの基は理解している人に向けただと思います。 そういった方で、Java SE 7/8を勉強したことが無い人は是非手に取ることをお勧めします。 特に、Javaの基について書いたではJava SE 7や8の部分は少ししか触れられていないので、そういった書籍で勉強したばっかりの人にとっては絶対に読んでおきたい一冊です。

    現場で使える 最新 Java SE 7/8 速攻入門 - きつねとJava!
  • Streamの平均を求める処理が精度が高かった件(総和も) - きつねとJava!

    昨日,JavaDayTokyo2015でProject Lambdaのハンズオンのお手伝いをしてきました. その中で,Collectors#averagingDoubleやDoubleStream#averageの実装が優秀だということが分かったので,まとめておきます. 結論を先に言うとStreamAPI*1が優秀なので,それを使おうという話です. *2 普通の実装の話 よくサンプルで出てくる,ある数列から平均値を求める処理は以下のようになっていると思います. また,おそらく普通のプログラマに平均値を求める処理を書かせても同様なコードを書くと思います.*3 double[] array = {...}; double sum = 0; for (int v : array) { sum += v; } double ave = sum / array.length;実はこれは精度が低く,実

    Streamの平均を求める処理が精度が高かった件(総和も) - きつねとJava!
  • New Version-String Scheme(新しいJavaのバージョン表記体系) - きつねとJava!

    新しいJavaのバージョン表記体系がJEP 223で提案されています. 概要 Javaのバージョン表記をメジャー,マイナーバージョンに加えてセキュリティアップデートにも対応できるような体系を作るJEPです. また,今まで混在していたバージョン表記を統一して一つの体系として再構築していきます. 今後使われるバージョン表記は新しいバージョン表記体系で記述されます. すでに使用されている過去のバージョン表記については変更しないようです. バージョン表記のセキュリティアップデート対応 今までのJavaのバージョン表記はマイナーアップデートしてuXXやUpdate XXという風に記述していました. ここではJDK7のXXというupdateには「JDK 7 Update XX」と表記していきます. さて,JDK 7 Update 60とJDK 7 Update 55とを比較してみましょう. この時に一

    New Version-String Scheme(新しいJavaのバージョン表記体系) - きつねとJava!
  • セミコロンレスJavaはJava8の夢を見るか? - きつねとJava!

    こんにちは. 続編の変数についてはこちら. ボケーッとセミコロンレスJavaの事を考えていたら,そういえばStreamAPIはセミコロンレスJavaの技法にかなり影響を与えるのではと思いはじめました. というのも,基的にStreamAPIで書いたものをほぼそのままセミコロンレスJavaとして書くことができるのです. StreamAPIで書いたものを使えるということはループを読みやすい形でセミコロンレスJavaでも書くことが出来ます. セミコロンレスJavaについてはなぎせさんの記事を参照してください. http://d.hatena.ne.jp/Nagise/20120407/1333767870 また,StreamAPIを使わないJava8時代のセミコロンレスJavaもなぎせさんが既に書かれているのでそちらを参照してください. http://d.hatena.ne.jp/Nagise/

    セミコロンレスJavaはJava8の夢を見るか? - きつねとJava!
  • JavaSE8リリース記念!CGに載っていないマイナーなIncompatibilityを紹介してみる - きつねとJava!

    さてさて,JavaSE8がリリースされてから1週間以上経ちましたね. 多くの企業がJavaSE8への移行を検討しているかと思います. そういう企業が移行の際に気に掛けるものが非互換性(Incompatibilities)ではないでしょうか. Javaは互換性を第一に考えているものの少なからず非互換性があります. そして,それらはCompatibility Guide for JDK 8(以下,CG)としてまとめられています. 今回はそのCGに載っていないマイナーな非互換性を一つ紹介したいと思います.*1 ちなみに,この非互換性はjavacのコードベース自身にも影響があったという少し面白い逸話があります^^; フォーマットはCGのパロディです. JDK8とJDK7との非互換性 このセクションではjavacやHotSpot,Java SE APIのJDK8の非互換性について述べます. いくつか

    JavaSE8リリース記念!CGに載っていないマイナーなIncompatibilityを紹介してみる - きつねとJava!
  • JavaSE8リリース記念!マイナーな言語仕様を紹介してみる(交差型キャスト,レシーバパラメータ(仮引数にthis)) - きつねとJava!

    さて,日未明JavaSE8がリリースされましたね!アメリカ時間では18日でしたが,日では19日になってました. 無事リリースされたのでJavaSE8で導入されたマイナーな言語仕様を2つ紹介してみたいと思います. メジャーな言語仕様は誰かが紹介してくれると思うので・・・ 交差型キャスト レシーバパラメータ(仮引数にthis) 交差型キャスト 一つ目はProject Lambdaで導入された交差型キャストです. まず,Javaには交差型、あるいは合成型と呼ばれるものがあります。 今まではジェネリクスの型境界にだけ使えていた「Type1 & Type2」のように型を&でつないだものです。 これがJavaSE8からはキャスト式で利用できるようになります。 例えば次のようなものです。 (Type1 & Type2) expr; &で繋げられる型は3つでも4つでも問題ないです. ただし,一つ目の型

    JavaSE8リリース記念!マイナーな言語仕様を紹介してみる(交差型キャスト,レシーバパラメータ(仮引数にthis)) - きつねとJava!
  • Javaを創ろう - きつねとJava!

    この記事はJava Advent Calendarの13日目の記事です. 昨日は@kisさんのJava SE 8でパターンマッチを実装するでした. 明日は@megascusさんです. 皆さんはおそらく普段からJavaを使ってプログラムを作っているかと思います. そんな皆さんはJava言語について多くの思い・想いを持っているかと思います. 例えば,「こんな事ができたら良いのに」だったり,「ここが良くないんだよなぁ」といった具合です. そういった言語特徴の追加や改善を自分の手でできたら素敵だと思いませんか? 幸いJavaはOpenJDKというオープンソースプロジェクトで開発が行われており,第三者の僕達でもソースコードを手に入れ自由に変更を加えることができます.*1 この記事では言語の拡張の仕方を述べ,OpenJDKを実際に用いて極々簡単な言語特徴を実装してみます. コンパイラ概要 コンパイラの

    Javaを創ろう - きつねとJava!
  • JJUG CCC 2013 Fallに初参加してきました! - きつねとJava!

    JJUG CCC 2013 Fallに初参加&初登壇してきました. 初登壇に関しては一つ前のブログにまとめてあるのでそちらをご覧ください. http://d.hatena.ne.jp/bitter_fox/20131111/1384185531 サークル活動では関西の情報系の大学生を集めたカンファレンス(KC3)*1を主催していてそこに参加したり登壇したりはしていたのですが,外部のカンファレンスには初参加.(当然JJUG CCCにも初参加)*2 写真は寺田さんから頂いたプレゼントとスポンサーさんのノベルティです. 寺田さんありがとうございました. すごく刺激的で楽しい一日だったので時系列でまとめておきます. 当日のTogetterはこちらから. http://togetter.com/li/587788 http://togetter.com/li/587823 朝,会場のベルサール西新宿

    JJUG CCC 2013 Fallに初参加してきました! - きつねとJava!
  • 1