The King's Museum

ソフトウェアエンジニアのブログ。

2016-01-01から1年間の記事一覧

【Effective Java】項目31:序数の代わりにインスタンスフィールドを利用する

ordinal() メソッド enum は ordinal() というメソッドを持っています。 これは列挙宣言での位置を返すメソッドです。 public enum Week { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday; } Week.Sunday.ordinal(); // => 0 Week.Monday.…

【Effective Java】項目30:int 定数の代わりに enum を使用する

「第6章 enum とアノテーション」に入った。 int/string enum パターン 列挙型は固定数の定数から成り立つ型です。 Java に enum 型が追加される前、列挙型を実現するためには int enum パターンと呼ばれるパターンを利用しました。 // int enum パターン p…

『内向型を強みにする』を読んで

会社の元同僚がおすすめしていた『内向型を強みにする』という本を読んだ(Kindle セールで 300 円くらいだったし) 内向型を強みにする出版社/メーカー: パンローリング株式会社発売日: 2013/06/16メディア: Kindle版この商品を含むブログ (5件) を見る 内…

『Soft Skills』を読んで

『Soft Skills』を読んだ。 Soft Skills: The Software Developer's Life Manual作者: John Z. Sonmez,Scott Hanselman,Robert C. Martin出版社/メーカー: Manning Pubns Co発売日: 2014/12/29メディア: ペーパーバックこの商品を含むブログを見る (PDF/EPU…

【Java・ジェネリックス】ワイルドカード型とは何か【後半】

Java のジェネリックスにあるワイルドカードについて解説するシリーズの後半。 非境界ワイルドカード型と原型 前回、ワイルドカードの中でも特に「非境界ワイルドカード型」について説明しました。 非境界ワイルドカード型は「ジェネリックスを利用したいけ…

第 208 回 TOEIC の結果

3月13日に第 208 回 TOEIC を受けて、その結果が戻ってきた。 Listening Reading Total 350 400 750 思ったよりもかなりいい結果が出たのでちょっとびっくりした。 事前準備 TOEIC は今回が始めて。 もともと英語学習のインジケーターとして受けようと思った…

【Java・ジェネリックス】ワイルドカード型とは何か【前半】

Java のジェネリックスにあるワイルドカードについて解説するシリーズの前半。 ワイルドカード型 ワイルドカード型とは型パラメータに ? の記号が書かれているジェネリックス型のことを指します。 ワイルドカード型には「非境界ワイルドカード型」と「境界ワ…

『あなたのチームは、機能してますか?』を読んで

今週、『あなたのチームは、機能してますか?』を読んだので、簡単に感想をまとめておこうと思う。 あなたのチームは、機能してますか?作者: パトリック・レンシオーニ,伊豆原弓出版社/メーカー: 翔泳社発売日: 2003/06/18メディア: 単行本購入: 6人 クリッ…

【Effective Java】項目29:型安全な異種コンテナーを検討する

今回は「型安全な異種コンテナーを検討する」だ。 ジェネリックスの章の最後の項目だけあって比較的発展的な内容。 異種コンテナー 通常、ジェネリックスは Set<Integer> や List<String> のように、特定の型の要素を持つコンテナーに対して利用します。 List<String> list = new Arra</string></string></integer>…

ESL の感想(+ ESL Podcast 1184 – Being Boastful)

Episode ESL Podcast 1184 – Being Boastful 内容 今回は「Being Boastful」。 自慢ばかりする上司とそれに付き合わされる女性部下の話。 「週末にスカイダイビングやったんだぜ」とか「今度、湖畔に別荘でも買って女の子を連れて行こうと思うんだ」など、ど…

【Effective Java】項目28:API の柔軟性向上のために境界ワイルドカードを使用する(その2)

今回は「項目28:API の柔軟性向上のために境界ワイルドカードを使用する」の後半。 明示的型パラメータ 前回の記事では境界ワイルドカード型について説明しました。 そして、それを利用することで API の柔軟性が向上することについて述べました。 今回は…

ESL Podcast 1181 – Making a Comeback

Episode ESL Podcast 1181 – Making a Comeback 内容 昔やってたバンドを再結成するというお話。 どうやら、昔は人気のあったバンドらしい。再結成する本人(男性)はノリノリだ。そこに釘をさすようにネガティブなことばかりいう女性が登場して、会話を繰り…

【Effective Java】項目28:API の柔軟性向上のために境界ワイルドカードを使用する(その1)

今回は「項目28:API の柔軟性向上のために境界ワイルドカードを使用する」。 項目28はけっこう長いので2回に分割した。 不変性による弊害 項目25で説明したように Java のジェネリックスは不変です。 Object は Number のスーパータイプですが、List<Object></object>…

【Effective Java】項目27:ジェネリックメソッドを利用する

ポイント ジェネリックメソッドを利用しよう ジェネリックメソッドは型推論を行う ジェネリック static ファクトリーメソッド 型推論を利用したテクニック ただし、現代にいるならダイヤモンド演算子を使うべき ジェネリックシングルトンファクトリー それぞ…

ESL Podcast 1180 – Price Gouging

Episode ESL Podcast 1180 – Price Gouging 内容 ハリケーンの襲来を見越して日用品の値段をつり上げた店主の女性と、それに抗議する男性の会話。なかなか興味深い会話だった。 日用品の価格の上昇はあくまで『需要と供給の原理』の結果だ、これは経済の基本…

【Effective Java】項目26:ジェネリック型を使用する

ジェネリック型を使う 今回は簡単にジェネリック型の使い方・書き方について説明します。 項目6での説明に利用したスタックの実装を、ジェネリックスを用いた実装に置き換えることを例としてみます。 ジェネリックスを利用しない元のスタック実装は以下の通…

ESL Podcast 1177 – Pedestrian Safety

Episode ESL Podcast 1177 – Pedestrian Safety 内容 娘と横断歩道を渡っていたら、車がかなりの速度でつっこんできて車にひかれかけたというお話。 「信号機か、横断歩道があることを示すためのフラッシュする標識をつけるべきよ」→「それか娘にアーマーを…

【Effective Java】項目25:配列よりリストを選ぶ

ジェネリックスと配列 前回の記事 ではジェネリックス型の不変、共変、反変について説明しました。 今回はジェネリクス型のリスト(List<E>)と配列の性質の違いについて説明します。 前回も説明したように、Java のジェネリックス型は不変である一方、配列は共</e>…

【Java】ジェネリックス型の不変、共変、反変とは何か

今回はジェネリックスの不変、共変、反変について書いてみた。 本当は Effective Java 「項目25:配列よりリストを使う」の予定だったんだけど、不変、共変、反変あたりの話がでてきて、 ここらへんは以前からまとめておきたかったし、ちょうどよいと思っ…

ESL Podcast 1176 – Limits to Advancement at Work

ESL シリーズ。 Episode ESL Podcast 1176 – Limits to Advancement at Work 内容 今回は会社における待遇差別の問題。 同じ会社に勤める人物が2人出てきて、「Manuel、会社辞めるってよ」という会話からスタート。 Manuel は三年間、マネージャーになるた…

ESL Podcast 1173 – Flying on a Budget Airline

ESL シリーズ。 Episode ESL Podcast 1173 – Flying on a Budget Airline 内容 近年の格安航空についてのエピソード。 LCC とも呼ばれるけど、Budget Airline とも呼ばれるらしい。 例のごとく登場人物が2人でてくる。 最初は「旅行の飛行機がめちゃくちゃ…

【Effective Java】項目24:無検査警告を取り除く

今回は「項目24:無検査警告を取り除く」。 ポイント 無検査警告は必ず取り除く 方法1:コードを変更して警告を取り除く 方法2:注意して @SuppressWarnigns アノテーションで警告を抑制する ジェネリックスに対するコンパイル警告 ジェネリックスを利用…

【Effective Java】項目23:新たなコードで原型を使用しない

第5章から Effective Java シリーズ再開。第5章はジェネリックスについて。 今回は「項目23:新たなコードで原型を使用しない」。 ポイント ジェネリックスを積極的に使う 実行時ではなくコンパイル時にエラーをチェックできる 原型は利用しない 非境界…

ESL Podcast 1172 – Booking Space for Business Events

ESL シリーズ。 Episode ESL Podcast 1172 – Booking Space for Business Events 内容 年次の営業ミーティングのために会議室を予約するという内容。ホテルの会議室を使うか、大きい会議用施設を借りるか、同僚と打ち合わせをしている会話。 今回は transcri…

『Java の理論と実践』のメモのまとめ

ここ最近、『Java の理論と実践』を読んだ時のメモをブログにアップしてきた。 concurrent 関連の記事は一通り読み終わったのでここらで一旦終了にしようと思う。 自分のために一通りをまとめておく。 メモ一覧 『Javaの理論と実践: 安全な構築のテクニック…

『Java の理論と実践: volatile を扱う』を読んで

記事: Javaの理論と実践: volatile を扱う メモ: Java の言語としての同期化機構 synchronized volatile volatile volatile はsynchronized の軽量版 volatile は synchronized より実行時のオーバーヘッドが少ない ただし、synchronized を使ってできるこ…

『Javaの理論と実践: ノンブロッキング・アルゴリズムの紹介』を読んで

記事: Javaの理論と実践: ノンブロッキング・アルゴリズムの紹介 メモ: Java5 でノンブロッキングアルゴリズムの開発が可能になった ノンブロッキングカウンター Atomic 変数を使ったカウンター アトミックで行く の内容とほぼ同じなので省略 ノンブロッキ…

『Javaの理論と実践: アトミックで行く』を読んで

記事:Javaの理論と実践: アトミックで行く メモ: JDK 5.0 でアトミック変数が追加された wait-free, lock-free なアルゴリズムが利用可能になった 以前は native code を使う必要があった スレッドの協調 マルチスレッド環境ではスレッド間の協調が必要 ロ…

ESL Podcast 1170 – Naming Children

年初に Podcast でリスニングを続けるという目標を掲げた。 ESL という Podcast を 1 episode/week で聞くことが目標。 せっかくなので、聞いた episode ごとにメモを書いていこう。 Episode ESL Podcast 1170 – Naming Children 内容 最初のエピソードは "N…

Google Search Console(旧 Google ウェブマスターツール)の使い方

とある理由で Google Search Console について調べたので簡単にまとめておこうと思う。 ここでは Search Console の画面のそれぞれの項目について簡単に説明する。 ついでに該当する項目のヘルプへのリンクもつけておく(自分用メモの意味もこめて)。 Searc…

(c) The King's Museum