タグ

2011年8月11日のブックマーク (11件)

  • Effective Java 読書会 1 日目「static メソッドの使い方などなど」 - IT戦記

    はじめに 社内で「Effective Java を 20 日で読もう」という勉強会が企画されて、今日がその一日目。 ノリノリな感じで。 どーん 今日読んだところ 5 ページ 〜 19 ページ という訳で いろいろ出た話題を残しておく 毎日続けるために、なるべく適当に書いていこうと思う あと、自分が勝手に解釈してる部分も多々あると思うます>< static ファクトリーメソッド static ファクトリーメソッドとは、コンストラクタの代わりに使われる static メソッドのことらしい。 コンストラクタは、名無し たしかに String コンストラクタとかごちゃごちゃしてて一個一個名前付けたほうがいいんじゃね?と思うなーと http://java.sun.com/javase/6/docs/api/java/lang/String.html#constructor_summary Strin

    Effective Java 読書会 1 日目「static メソッドの使い方などなど」 - IT戦記
    ysadaharu
    ysadaharu 2011/08/11
    「Effective Java」
  • Effective Java 読書会 12 日目 「スレッド・セーフってなによ!!」 - IT戦記

    スレッドセーフ、スレッドセーフって何なのよ!当の気持ち聞かせてよ! はじめに 皆様おひさしぶりです。 久しぶりに Effective Java 読書会のまとめを上げていきたいと思います!!! 今回の範囲 269 ページ 〜 278 ページ 前回はこちら http://d.hatena.ne.jp/amachang/20100309/1268153192 synchronized を付ければスレッド・セーフってわけではない synchronized はスレッド・セーフを実現するための一つの方法(実装の詳細)であって、 synchronized を使っているからスレッド・セーフというわけではないし、 synchronized を使っていないからスレッド・セーフじゃないというわけではない そもそも、スレッド・セーフとは何か そのクラスのインスタンスに対するどんな順番で行われる操作も仕様的に正し

  • Effective Java 読書会 11 日目 「Java マルチスレッド難しいいい」 - IT戦記

    はじめに 順番が前後しますが、都合上「並行性」の章を先に書きたいと思います。 読んだところ 251 ページ 〜 268 ページ 前回はこちら Effective Java 読書会 10 日目 「Java の基テクニック集」 - IT戦記 同期とは何か 同期 = 原子性 + 可視性 原子性(アトミック性) データの状態遷移の過渡的な不整合な状態が(どのスレッドからも)見えないという性質。 適切に相互排他することでデータの原子性を保証できる。(保護されたコードを実行できるスレッドは一つだけ。) 可視性(ビジビリティ) (どのスレッドからも)同じ値が見えるという性質。 普通、変数やフィールドの値はスレッドごとにキャッシュ(レジスタなど)されるなどしていて、スレッド間での同値性は保証されない。 同期するというのは、原子性を保証することだけではなく、可視性も保証することだということを忘れてはいけな

    Effective Java 読書会 11 日目 「Java マルチスレッド難しいいい」 - IT戦記
    ysadaharu
    ysadaharu 2011/08/11
    volatile、synchronizedの違いを判りやすく説明。
  • [実装編]スレッドセーフにすることを忘れてはいけない

    スレッドセーフとは,アプリケーションをマルチスレッドで動作させても問題がないことを指す。サーバー向けアプリケーションは,マルチスレッドで動作するように設計・実装することが望ましい。そのほうが通常はパフォーマンスが向上するからだ。 だが,マルチスレッドのアプリケーションは,注意深く設計・実装しないとトラブルが生じる。例えば,あるスレッドで保持していた変数の値がほかのスレッドからアクセスされ,処理結果が上書きされたり,ほかの利用者の情報が見えてしまったりする。 こうしたトラブルは,開発者が1人で単体テストしているときには見つけられず,多数の利用者で限界時の挙動テストをしたときや,番移行した後で,たまたま見つかることが多い。トラブルが発生するタイミングを再現することが難しいので,デバッグは困難になりがちだ。 マルチスレッドでのトラブルを防ぐため,開発者は,スレッドセーフな設計と実装を心がける必

    [実装編]スレッドセーフにすることを忘れてはいけない
    ysadaharu
    ysadaharu 2011/08/11
    「クラス変数とインスタンス変数は,可能な限り使わないようにするか,やむを得ず使う際には,ほかのスレッドの影響を受けないように実装する必要がある。」
  • Javaの知られざる欠陥(上)

    Javaは今,最も使われているプログラミング言語の一つである。1995年に発表されて以来,「C++の欠点を取り除いた優れたプログラミング言語」という評価を受けてきた。だが広く使われるに連れ,だんだんその欠点も見えてきている。 Javaの欠点と言われるのは次の三つだ。(1)オブジェクトではないデータ型があること,(2)一つの表現でいろいろなクラスに当てはまるような記述法がないこと,(3)二つ以上のクラスの実装を継承できないこと,である。プログラミング言語のあるべき姿は人によって違うため,これらは欠点ではないという見方もある。ただプログラマの混乱を招いたり,ソース・コードの可読性やプログラムの保守性を下げる要因になっている面はある。 一つ目は,オブジェクト指向言語だと言いながら,オブジェクトではないデータ型が存在することである。 「オブジェクト指向」の定義はいろいろあるが,いずれにしても最も基

    Javaの知られざる欠陥(上)
  • 3、クラス型とプリミティブ型

    今後、皆さんがJava言語を操る上で身に付けておかなければならない概念の一つに、クラス型とプリミティブ型の違いが挙げられます。下記を見て下さい。 char ch = 'あ'; String str = "あ"; この二つは、 System.out.println( ch ); System.out.println( str ); を実行した時は、全く同じ結果となります。つまり、ともにコンソールに「あ」と出力されると言うことです。しかしこの2つには大きな違いがあります。それはchar型はプリミティブ型であり、String型はクラス型だと言うことです。もっと簡単に表現するとString型はメソッドが実行できるが、char型はメソッドを持たないということです。これはいったいどういうことでしょうか?プリミティブと言うのは原始的という意味です。直訳で考えてみるとプリミティブ型は原始型となります。実は

    ysadaharu
    ysadaharu 2011/08/11
    「プリミティブ型はJavaにおいて値を扱うための基本的な型」「プリミティブ型は下記のように8つの型から構成されており、言語仕様が拡張されない限りは増えたり、減ったりしません。」
  • Javaでスレッドを使う際の注意点 | 株式会社シンメトリック公式ブログ - 携帯開発から生まれる技術情報

    Javaでスレッドを使う際の注意点|株式会社シンメトリック公式ブログ - 携帯開発から生まれる技術情報| 携帯サイト開発から生まれる技術情報ブログ どんなプログラム言語でもそうなのですが、マルチスレッド下でプログラムを組むときは、シングルスレッドとは違うところに色々気を使わないといけません。 今回は、Javaマルチスレッドプログラムでは基的なことですが(自分だけかもしれませんが)よく忘れて、不可解な動作に首を傾げてしまうポイントについて説明していきます。 ヒープ領域にあるデータの更新タイミングをちゃんと把握する Javaプログラムからアクセスできるメモリ領域には、大きくわけて、スタック領域(以下スタック)とヒープ領域(以下ヒープ)の2種類が存在します。 スタックは、ローカル変数や、メソッドの引数・戻り値情報を持ち、ヒープは newされたオブジェクトや、ロードされたclass情

    ysadaharu
    ysadaharu 2011/08/11
    「スタックは、ローカル変数や、メソッドの引数・戻り値情報を持ち、ヒープは newされたオブジェクトや、ロードされたclass情報等を持っています。」
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • 柿ぴのブログ REGZA USB-HDDからPC-HDDへダビング

    薄型テレビ購入で遊んだブログ一覧はこちら == 追記 == このブログに飛んでくる検索ワードを見ていると、 レグザで録画したHDDをPCで見る なども多いので、以下に記載しておきます。 まず、IOデータの製の、HVL-AV(R)、HVL4-GシリーズなどDTCP-IP対応のLAN-Diskを準備します。 初めUSB-HDDに録画したものをLAN-DISKにダビングし、LAN-HDDを使用すれば他のテレビを初め録画番組をホームネットワーク内の他のDHCP-IP対応のテレビPC等で見ることができます。 接続イメージはこんな感じです。(IOデータのページ) スカパー!HD、スカパー!光ご契約者の方ならHDDなどを優待価格でご購入できるようです。 IOデータ製のDTCP-IP対応「RECBOX」のHVL-AVシリーズなどには、以下のDHCP-IPソフトウェアが付いてくるので(確か無償ダウンロード

  • REGZA外付けハードディスク交換(作業記録) - nisimura | メモ

    *2009年04月14日の日記をそのままコピー* REGZA37Z7000の録画用に、対応が謳われていないHDDを使用していたらディスクの管理領域が壊れてしまったようだ。それ以前から、使用していない時間が数時間以上あると認識に失敗するなど、HDDの省電力がらみで何かよろしくない状態だった様子(REGZA側はHDDについては省電力モードはオフにしてある)。 現象 ・「未登録のHDDが検出されました」というメッセージが出て、録画済みデータの参照ができなくなった ※再登録すると、新規ディスクという扱いになりフォーマットされるため録画データが削除されてしまう やりたいこと、できたこと ・ ”未登録”となってしまったHDDを修復し、録画済みデータを再生できるようにしたい ・ エラーが起こるHDDの内容をそっくりそのまま別のHDDにコピーし、今後はそちらのHDDを使うようにしたい 準備した物 ・新しい

    REGZA外付けハードディスク交換(作業記録) - nisimura | メモ
  • photo グランビル・アイランド | blog|高間亮行 世界遺産日記

    ysadaharu
    ysadaharu 2011/08/11
    S95ジオラマ