2010年3月31日水曜日

データ型(2) (Java)

  • 型変換(キャスト)
    • 小さい型から大きい型への代入は暗黙の型変換が行われる(自動) 
    • 小さい型から大きい型への代入は許可されていない
      キャストを行うことで代入が可能
      • 凡例
        (目的の型) 値

      • int i =123, double = 1.05;
        i = (int)d; //この場合小数点以下は切り捨てられて1になる
        ※切り捨てについては、四捨五入等なし。
        1.99でも整数部の1しか扱われない
  • 基本データ型
      • 型の大小は以下のとおり
        double > float > long > int > (char) >  short > byte
        ※shortからcharに変換された場合は、文字として扱われる

演算子(1)(Java)

演算子と結合規則について
  1. 演算子ごとに設定されている優先度の高いものから計算
  2. 優先順位が同じ場合は、結合規則によって計算順を決定
    結合規則は左結合と、右結合がある。
    • 左結合
      • 左から右へ計算する(普通の数式と一緒)
    • 右結合
      • 右から左へと計算する

        • int x = 1 , int y =  2;
          x = x + y;
          System.out.println( "x=" + x );

          ---実行結果---
          x = 3
  •  優先度と結合規則
    1.  ++ , -- , + , -, ~, (キャスト) :右結合
    2.  *, /, %                              :左結合
    3. + , -                                  :左結合
    4. <<, >>, >>>                        :左結合
    5. <, >, <<, >>, instanceof       :左結合
    6. ==, !=                                :左結合
    7. &                 :左結合
    8. ^                 :左結合
    9. |                 :左結合
    10. &&                :左結合
    11. ||                                      :左結合
    12. ?:                 :右結合
    13. =, *=, /=, %=, +=, -=, etc     :右結合

イチからJavaのお勉強

目標としてSunの認定資格であるJavaアソシエイツの資格取得に設定
勉強に使う本は、とりあえず以下の2冊
  • 翔泳社 SUN教科書 JAVAアソシエイツ(SJC-A) \3,200
  • インプレス 徹底攻略 JAVAアソシエイツ問題集[310-019]対応 \3,000

識別子、予約語(Java)

  • 識別子
    • 1文字目は、英字、ドル記号($)、アンダースコア(_)のみ
    • 数字は2文字目以降に使用可能
    • 予約語は使用不可
    • 予約後を識別子に含めた場合はコンパイルエラー
    • 予約語ではないが、リテラル(定数)として意味があるため識別子として使用不可
      • true
      • false
      • null
  • 予約語
    • abstract
    • assert
    • boolean
    • break
    • byte
    • case
    • catch
    • char
    • class
    • const
    • continue
    • default
    • do
    • double
    • else
    • enum
    • extends
    • final
    • finally
    • float
    • for
    • goto
    • if
    • implements
    • new
    • package
    • private
    • protected
    • public
    • return
    • short
    • static
    • strictfp
    • super
    • switch
    • synchronized
    • this
    • throw
    • throws
    • transient
    • try
    • void
    • volatile
    • while

列挙型(Java)

任意に作成可能
クラスの中でも外でも定義可能
クラスの中に定義する場合は暮らすの直下で定義する。
ただし、コンストラクタ内やメソッド内での定義は不可
switchみたいに指定できるデータ型が制限されている場合に、間接的に指定が可能
  • 特記事項
    • 列挙された値は文字列ではなく、特定の整数として扱われる(なので、”間接的に”指定可能)
    • 内部的には整数扱いなので、要素に文字列が入っていてもダブルクォーテーション不要
  • 定義
    [修飾子] enum 列挙名{要素1, 要素2, 要素3, ...}
    • 記述例
      public enum Colour { RED, BLUE, BLACK, WHITE, YELLOW};

配列(Java)

一つ以上の”同じデータ型”の集合を表現
配列に格納されるデータはインデックスで識別される
格納されるデータは、基本データ型、参照型ともに格納可能
配列自体は参照型として扱われる
 
  • 配列の生成
    データ型[] 配列名;
    配列名 =new データ型[ 要素数 ]
    • 記述例
      int[] i;            // int i[]; でもOK (配列の宣言)
      i = new int[3] ; // int型の領域を3個確保
      int [] i = new int[3]; //配列名の宣言と領域の確保を1行で行う
  • 配列の初期化
    データ型 [] 配列名 = {初期値1, 初期値2,初期値3)
    • 記述例
      int[] i = {10, 20, 30} ;
  • インデックス
    配列名 [インデックス] = 値;
    • 記述例
      i[0] = 10;

    変数(Java)

    データ型 変数名;  //変数の宣言
    変数名 = 値;    //値の代入

    データ型 変数名 = 値 // 変数の宣言と代入を1行で実行(変数の初期化)

    データ型(1)(Java)

    • 基本データ型(プリミティブ型)
      • 整数
        ※シングルクォーテーションで囲った文字列はユニコード16進数の整数として扱われる
        例) int a = ’a';  と int a =  97; は同値となる
        • byte (8bit)
          表現可能な範囲: -128~127
        • short (16bit)
          表現可能な範囲: -32768~32767
        • int (32bit)
          表現可能な範囲: -2^31~2^31-1
        • long (64bit)
          表現可能な範囲: -2^63~2^63-1
          ※数値に何も指定をしない場合は、デフォルトがint型となるため、
          明示的に扱うためには指定が必要
          • 指定例
            long l = 1234L; or  long l = 1234L; or long l = (long)1234;
      • 浮動小数点整数
        • float (32bit)
          表現可能な範囲: IEEE754に基づく値
          ※数値に何も指定をしない場合は、デフォルトがdouble型となるため、
          明示的に扱うためには指定が必要
          float f = 3.14f; or float f = 3.14F; or float f = (float)3.14;
        • double (64bit)
          表現可能な範囲: IEEE754に基づく値
      • 文字
        • char (16bit)
          表現可能な範囲: \u0000~\uFFFF
          ※charは一文字のみ
           ””(ダブルクォーテーション)での囲んでの代入は不可
          ''(シングルクォーテーション)で囲む場合は制御コードを代入する場合
          文字列はStringで定義するが、基本データ型ではなく参照型(Stringクラス)となる
      • 真偽値
        • boolean (1bit)
          表現可能な範囲: true,false
    • 参照型
      • 配列
        • array
      • 列挙
        • enum
      • クラス
        • class
      • インターフェース
        • interface

    2010年3月30日火曜日

    hp製安サーバ(DL/ML 1xx) 監視方法(System Insight Managerへの監視統合)

    hp製1xx系の安サーバは、基本的にInsightAgentが使えないので、そのままだと監視が面倒。
     なので、System Insight Managerへの監視統合する方法を考える。

    必要ソフト
    • HP System Management Homepage(SMH)
    • WBEM Provider
    • WMI Mapper for HP System Insight Manager
    手順
    1.  すべてインストールする。(3つのexeとも再起動不要、サービスはインストール後に自動起動)
    2.  SMH上から監視側のSystem Insight Manager(SIM)の証明書を取得
    3.  監視側のSIMから、安サーバ側のSMHが覗けることを確認する。
    4. 安サーバ側のWWWサーバは自動的に起動するが、OS上のファイアウォールにはきっちり弾かれるので、
      必要に応じてOSのファイアウォールのルールを設定
    5. SIM側で監視設定(ポーリング間隔、メール送信等)を設定。お疲れ様でした。

    Ubuntu9.10でEmobile D21LCを使う

    手順自体については、UbuntuでEmobileのD21LCを利用する(blog.37to.net)でご紹介されているとおりです。
    大変丁寧にかかれていて分かりやすかったです。

    差分点は、usb_modeswitchのみ、Synapticパッケージ・マネージャからインストールしました。
    (現バージョンは1.02になる様子)


    #MessageContentを発見された先人に多謝を。

    Thinkpad x40にて、モデムを認識させる際に

    1.D21LCをUSBポートに差しっ放しにしてPCを起動した場合
    2.PC起動後にUSBポートに差した場合
    とで、USBモデムの認識状況の挙動が異なったのでメモ書き
    1. PC起動後にUSBへ接続
      →USBポートコンソール出力が細かい(【参考】参照)
      →デバイス ttyUSB3で接続可能
    2. USBへ接続してPC起動
      →デバイス ttyUSB2で接続可能
    #とりあえず使えているので、いまのところ放置
     bash書くときには注意する必要があるかも。

    【参考】コンソール出力---

    * usb_modeswitch: tool for controlling "flip flop" mode USB devices
     * Version 1.0.2 (C) Josua Dietze 2009
     * Works with libusb 0.1.12 and probably other versions

    Looking for target devices ...
     No devices in target mode or class found
    Looking for default devices ...
     Found default devices (1)
    Accessing device 002 on bus 001 ...
    Using endpoints 0x01 (out) and 0x81 (in)
    Inquiring device details; driver will be detached ...
    Looking for active driver ...
     OK, driver found ("usb-storage")
     OK, driver "usb-storage" detached

    Received inquiry data (detailed identification)
    -------------------------
      Vendor String: USBModem
     Product String: Disk          
    Revision String: 2.31
    -------------------------

    Device description data (identification)
    -------------------------
    Manufacturer: USB Modem
         Product: USB Modem
      Serial No.: ******************
    -------------------------
    Setting up communication with interface 0 ...
    Trying to send the message to endpoint 0x01 ...
     OK, message successfully sent
    -> Run lsusb to note any changes. Bye.

    Windows7 アップグレード版インストール方法

    WindowsXP→Windows7へアップグレードするのがまっとうな方法だが、
    WindowsXPのインストールが遅いため時間短縮する方法。
    1. DVDブート
    2. 新規インストール選択
    3. プロダクトキーを入力せずインストールを続行
    4. Windows7のデスクトップ画面が出るまでインストール作業続行
    5. 終了後再度DVDブート(再度インストール作業)
    6. インストール場所選択画面で、ドライブオプションからパーティションを削除してインストール
      (パーティションにこだわりがある場合は、フォーマットしてからインストール)
    7. 今回はプロダクトキーを入力してインストール
    8. 終了

    Ubuntu フォルダ名の言語変更

    ターミナルから操作し辛いため、/home/Userの各フォルダの言語を
    日本語→英語に変更

    User@mypc:~$ LANG=C xdg-user-dirs-gtk-update

    Moving DESKTOP directory from デスクトップ to Desktop
    Moving DOWNLOAD directory from ダウンロード to Downloads
    Moving TEMPLATES directory from テンプレート to Templates
    Moving PUBLICSHARE directory from 公開 to Public
    Moving DOCUMENTS directory from ドキュメント to Documents
    Moving MUSIC directory from ミュージック to Music
    Moving PICTURES directory from ピクチャ to Pictures
    Moving VIDEOS directory from ビデオ to Videos

    Windows クリーンインストール手順

    1. OS
    2. サービスパック
    3. Intelチップセット・ソフトウェア・インストレーション
    4. DirectX
    5. ビデオカードドライバ
    6. 他デバイスのドライバ
    参考(インテルHP)

    Linux コマンド

    ディスク容量確認コマンド

    1. df
    ファイルシステムごとにディスクの使用率を表示する。
    2. du
    カレントディレクトリから再帰的にディレクトリの容量を表示する
    3. quote
    自分のディスクの制限容量を表示する。