Monthly Archives: 12月 2014

「Java SE 8実践プログラミング」第20回(12/26)

参加者 今井(読み手)、沼田(記)
範囲 pp. 171 – 183

第7章 Nashorn JavaScriptエンジンの活用

  • 7.8 リストとマップ
  • 7.9 ラムダ式
  • 7.10 Javaクラスの拡張とJavaインタフェースの実装
  • 7.11 例外
  • 7.12 シェルスクリプト記述
    • 7.12.1 シェルコマンドを実行する
    • 7.12.2 文字列補間
    • 7.12.3 スクリプトへの入力
  • 7.13 NashornとJavaFX
  • 練習問題

「Java SE 8実践プログラミング」第19回(12/19)

Posted on by 0 comment

参加者 沼田(読み手)、今井、青木(記)

範囲 pp.161-171

第7章 Nashorn JavaScriptエンジンの活用

  • 7.1 コマンドラインからNashornを実行
    • p.163 「デリミタに$を設定することで、内容全体を読み込むことができるかについは、私は確信がありませんでした。」について、行の末尾($)をデリミタにすると最終行が確実に読み込める確信がないということか?
  • 7.2 JavaからNashornを実行する
  • 7.3 メソッドを呼び出す
  • 7.4 オブジェクトを生成する
    • p.167 Math.floorMod()のJavadocはここ
    • p.167 中ほど「効率性を問題としないのであれば」とありますが、実行時間にどの程度差があるのか実験してみました。(10回の平均で算出)
      次を5000万回実行するのに要した時間は22235.8ミリ秒で、これを1とすると、

      var URL=java.net.URL
      var url = new URL(‘http://horsetmann.com’)

      次を5000万回実行するのに要した時間は0.87でした。

      var url = new java.net.URL(‘http://horsetmann.com’)

      URLを定義しておいて次を5000万回実行するのに要した時間は0.84でした。

      var url = new URL(‘http://horsetmann.com’)
  • 7.5 文字列
  • 7.6 数値
  • 7.7 配列を扱う

 

「Java SE 8実践プログラミング」第18回(12/16)

Posted on by 0 comment

参加者 青木(読み手)、沼田、今井(記)

範囲 pp.151-158

第6章 並行処理の機能強化

  • 6.4 完了可能フューチャー
    • 6.4.1 フューチャー
    • 6.4.2 フューチャーを合成する
    • 6.4.3 合成パイプライン
    • 6.4.4 非同期操作を合成する
      • p.156 中ほど, p.157 表6.2
        本文(p.156 中ほど~)には、「CompletableFuture<T>とCompletableFuture<U>の処理を並列に実行して…」とか、「2つのCompletableFuture<T>の処理を並列に実行します。」とかあるが、この表のパラメータにはCompletableFutureが一つしかない。パラメータが足りない?
        → この表はCompletableFuture<T>のメソッドとして書いてある。「CompletableFuture<T>とCompletableFuture<U>の..」とか「2つの…」の意味は、この呼び出し先CompletableFutureオブジェクトと引数で与えられるComletableFutureオブジェクトのこと。
      • p.156 メモ, 訳注
        メモには、「この節のメソッドは、… CompletionStage型を受け付けます」とあるが、訳注には、「allOfメソッドとanyOfメソッドを除いた…」とある。
        → 訳注が正しい。
  • 練習問題

「Java SE 8実践プログラミング」第17回(12/12)

参加者 今井(読み手)、青木、沼田(記)
範囲 pp. 141 – 151

第6章 並行処理の機能強化

  • 6.1 アトミック値(メモの次~)
    • LongAdderのincrement()は戻りの型がvoidでadd(1)と同じでした。
    • p141 コード例
      poolの型はなんだろう?
  • 6.2 ConcurrentHashMapの改善
    • p143 メモ
      APIを確認したところ、size()ではなくmappingCount()を使用するようにしてください、となっていました。
    • 6.2.1 値の更新
      • p.145の三つ目のコード例
        使用するか否かに関わらず毎回LongAdderをnewするとコストがかかるのでは、と思ったらそのすぐ下に、必要な時にだけコンストラクタを呼び出す書き方について記述されていました。
    • 6.2.2 大量操作
    • p.147 searchメソッドの各バージョン
      APIを確認したところ、searchメソッド以外の第二引数は BiFunction ではなく Function でした。
      searchKeys
      searchValues
      search
      searchEntries
  • 6.2.3 セットのビュー
  • 6.3 配列の並列操作
  • 「Java SE 8実践プログラミング」第16回(12/9)

    Posted on by 0 comment

    参加者 沼田(読み手)、今井、青木(記)

    範囲 pp.131-141

    第5章 日付と時刻の新たなAPI

    • 5.6 フォーマットと解析 (p.131 コード例の後から。p.132表5.6は前回で済)
    • 5.7 古いコードとの相互運用
      • p.135 表5.9の4行目 の「新しいクラス」へのメソッドが間違っている。cal.toZonedDateTime()ではなくtimestamp.toLocalDateTime()が正しい。
        6行目の「古いクラスへ」のTime..valueOf(localTime)の「.」が1つ余分。
    • 練習問題

    第6章 並行処理の機能強化

    • 6.1 アトミック値(p.141メモまで)

    「Java SE 8実践プログラミング」第15回(12/5)

    Posted on by 0 comment

    参加者 青木(読み手)、沼田、今井(記)

    範囲 pp.125-131

    第5章 日付と時刻の新たなAPI

    • 5.3 日付の調整
    • 5.4 ローカル時刻
    • 5.5 ゾーン付き時刻
      • p.128 l.2 4つのタイムゾーンとあるがタイムゾーン1つは何分だろう?
        → 一つが何分かはわからなかったが、中国東端と西端で太陽が南中する時刻に4時間くらい差があるようです。(ref. Wikipedia)
      • p.130 表5.5 1行目 脱字
        年・月・時・分・秒・ナノ秒 → 年・月・日・時・分・秒・ナノ秒
      • p.131 表5.5(続き) 5行目
        オフセットが(+12:00ではなく)+14:00まであるのはなぜだろう? サマータイムが関係ある?
        → 太平洋にUTC+12以上のところがある。UTC-12のところにサマータイム制をとっているところはないので、サマータイムは関係なさそう。(ref. Wikipedia)
    • 5.6 フォーマットと解析 (p.132表5.6, p.131 コード例まで)

    「Java SE 8実践プログラミング」第14回(12/2)

    Posted on by 0 comment

    参加者 今井(読み手)、青木、沼田(記)
    範囲 pp. 114 – 125

    第4章 JavaFXによるGUIプログラミング

    • 4.10 おしゃれなコントロール(p.114のメモの次~)
    • 練習問題
      • 練習問題1.
        2行目は「…文字列Hello, JavaFXを100ポイントの…」では?

    第5章 日付と時刻の新たなAPI

    • 5.1 タイムライン
    • 5.2 ローカルの日付
      • 表5.2
        ChronoUnitは日付期間の単位の標準セットでした。