ウェブサーバーもAPサーバーもクライントもキャッシュ的なことしてデータを早く読もうとしている。

IEはブラウザキャッシュにjar読み込んでる。
サーバはメモリ上にモジュール展開してる。

破棄するにはワークユニット(仮称)を停止する。これはワークユニットがサーバーのメモリ上にモジュールを展開しているから。

サーバーに対する最初の一回目のリクエストでメモリ上にモジュールが展開される。もし再起動かけなければ新しく作成or修正したモジュールをアップロードしてもメモリ上に展開されたモジュールが破棄されていないため、アップロードしたモジュールはメモリ上に読み込まれない。読み込まれているのは常にメモリ上のモジュールなのだ。

DTOはウェブサーバーとアプリケーションサーバーの両方に置く。

isEmpty()けっこう便利かも

public class StringTest {
  public static void main(String[] args) {
    String body = "";
    if (testStr.isEmpty()) {
       System.out.println("bodyがガラ空きだぜ!");
    }
  }
}

これってけっこう便利だね。ファイルコピーするメソッドも作ってくれたらいいのに。InputStreamReaderを使わせるのは文字列ストリームを強く意識しているからなのかな。⇒調べる。

 休日に1000円で高速道路が乗り放題(都市部は除く)とかいうのでちょっと

いわゆる低所得者層(俺とか)は休日だろうがなんだろうが、遠くにレジャーにでかける余裕なんてないんだよ。
下手すると車も持ってないかもしれない。
つまり経済的に余裕のない世帯には、1ミクロンも関係のない"はずの"話なんだ。それを既製の価格を下げただけで
その背景には目も当てず、一切触れずに「みなはん嬉しいでっしゃろ?」と語りかけてくる濁った目をしたヤツラ。
ヤツラはいったい未来をどのように捉えているのだろうか。


僕には中高所得者を優遇しているようにしか見えない(この政策に限定して言えば)。


そんなにいないとは思うけど、都市部に住む低所得者層がこの政策にまんまと踊らされ「田舎まで行こうぜw 1000円で乗り放題うめぇww」
とか浮かれてレジャーに行くとしよう(高速のインターには「休日は1000円でノリホ!」の文句でニコリと笑う岩城晃一のポスター)。
さらにその先での飲んで食って温泉浸かって宿に泊まったりの出費を計算に入れると、明らかに余計な支出。


これだったら僕は近くの公園でフリスビーすることを選ぶと思う。熱海、山中湖には電車で行くことを選ぶ。


たかだか数千円のプラス(もともとなかった利益)を得たからと言って数万円を支出するなんて狂気の沙汰だと思う。
狂気の沙汰ほど面白いなんてアカギじゃあるまいし。


団体割引もつけてみたらどうよ。車2台で1台分の値段みたいな。
割引どころか車1台買えばもう1台ついてくるってサービスしてた店あったぞ〜。
それじゃ「今なら同じものをもう1つ」と謳ってゴミを2倍買わせる通販番組と一緒か。


みんなで戦略的に凄くがんばって、
お金稼いで、
そんでまたお金使うしかねーのかなぁー

クラス Calendar の使い方

    • 抽象クラスだってことを意識する

import java.util.Calendar;

public class CalendarTest {
  public static void main(String[] args) {


    // Calendar calendar = new Calendar();
    // ↑のコードはコンパイルエラーになる
    // ⇒カレンダークラスは抽象クラスなのでインスタンスを作成できない
    // ⇒(無論抽象クラス型の変数は宣言できる)
    // だからスタティクメソッドgetInstance()を使ってインスタンスを取得する
    Calendar c = Calendar.getInstance();

    // 日時を2004年1月7日15時40分に設定する(月は0から始まっている)
    c.set(2004, 0, 7, 15, 40);


    // 時刻の値をミリ秒に設定する
    long day1 = c.getTimeInMillis();


    // day1の間に1時間を加える(ミリ秒換算)
    day1 += 1000 * 60 * 60;


    // 時刻を更新する
    c.setTimeInMillis(day1);
    System.out.println("new hour = " + c.get(c.HOUR_OF_DAY));


    // 日付に35を加えて2月にする
    c.add(c.DATE, 35);
    System.out.println("add 35 days ⇒ " + c.getTime());


    // 同じく日付に35を加えるが、roll()を使った場合は当該月のままロール(回転する)
    c.roll(c.DATE, 35);
    System.out.println("roll 35 days ⇒ " + c.getTime());


    // インクリメントではなく日付を1にする
    c.set(c.DATE, 1);
    System.out.println("set to 1 ⇒ " + c.getTime());
  }
}

実行結果

new hour = 16
add 35 days ⇒ Wed Feb 11 16:40:11 JST 2004
roll 35 days ⇒ Tue Feb 17 16:40:11 JST 2004
set to 1 ⇒ Sun Feb 01 16:40:11 JST 2004

じゃあCalendarクラスの変数には何が入ることになるのか?

インスタンスが作成できなくても、そのスタティクメソッドを呼出すことはできる。
 ⇒スタティクメソッドは特定のインスタンス名じゃなくて、クラス名を使用して呼出す。

getInstace()を呼出すとサブクラスのインスタンスが取得できる。

Calendarのサブクラスのインスタンス = Calendar型の変数に代入は出来るってこと。同時にCalendarクラスのメソッドは全て備えている。

日付・時刻はインクリメントできる

時間を進めたり、10年前に戻したりも簡単

日付・時刻はミリ秒単位に出来る

ミリ秒換算することで、2つの時点の間の経過時間を正確に計算できる。またある時点から28時間45分14秒加えたりといった計算も容易

Calendar APIの主要機能

  • add(int field, int amount)

  指定のフィールドの値をインクリメント、デクリメント

  • get(int field)

  指定のフィールドの値を戻す

  • getInstance()

  Calendarのサブクラスのインスタンスを戻す

  • getTimeInmillis()

  時刻をミリ秒単位で戻す(long型)

  • roll(int field, boolean up)

  上位のフィールドの値に変更を加えずに、指定のフィールをの値をインクリメント、デクリメントする。
   ⇒インクリメントしても値が繰り上がらない。

  • set(int field, int value)

  指定のフィールドの値を設定する

  • set(year, month, day, hour, minite)

  ☆引数の値は全てint型
  年、月、日、時、秒のフィールドの値を設定する。
  set()の引数には他にもたくさんバリエーションがあるけど、これがいちばんよく使われている。

  • setTimeInMillis(long millis)

  時刻をミリ秒単位で(long型)で設定する。

覚えておくこと

Calendarクラスを使うときは、まずCalendarクラスのサブクラスのインスタンスを取得する = getInstance()

 俺は未来わかんないけど、期待はしちゃうぜ?

文章が書けなくなりました
(http://anond.hatelabo.jp/20081114065404)を読んで

ブログやってる人のほとんどに文才なんてないんじゃないのかな。
この世にブログがいくつあるんだ。
で、その中から文章から光り輝く才能を感じさせてくれるブログはいくつあるのかな? 
いや、全然知らないけど。
ベストセラーを残した作家だって評論家(作家にとっては世の中に必要ない存在)に叩かれてる。
死んでなお叩かれてる人だって大勢いる。
自信満々に書いた記事を叩かれる新聞記者だっている。
雑誌記者だって叩かれてる。
ライターだって叩かれてる。
コピーライターだって叩かれてる。

文章を生業にしている人間に対して「才能がない」という人間はごまんといる。

Webサービスにぽろっとこぼした言葉の文面がアッー!という間に世の中に広まって叩かれる著名人だっている。
定期試験に臨むリア充も叩かれてる。
「寝ないで勉強してカンペキだぜ! 自分がこえー!」
とかウサギみたいな目をして、のたまいながら論文書いたのに
教授に「全然だめ」とか言われて単位もらえなかったりしてる。
みんな才能がなくて、苦労して、考えて、間違えて、それでも文章を書いて、
文才がないなお前とか言われながら行間だらけの日記をmixiGREEに書いてる。

それどころか世の中には才能を見つけないまま死ぬ人間だって山ほどいる。
今もそいつらは何の才能も見つけられないまま死んでいく。
腹が減って死んでいく。誰かにいきなりブン殴られて死ぬ。事故で死ぬ。病気で死ぬ。火事から逃げ遅れて死ぬ。
誰にも見つけられないまま、腐敗し、腐乱し、死肉をたかられ、臓器を蝕まれる。

あなたはまだ生きている。


ただ、このクソ広い世の中(マジでやばいくらい広い)には、どこかにあなたのことを面白いと思ってくれる人がいると思う。
ただその数が多いか少ないか、それはわからないけど。
どれくらいの人に才能を認めてもらえることであなたが満足できるかもわからないけど。

でも生きてさえいれば、そういう機会を得ることが出来るかもしれない。今は確かに色々とつらいのかもしれないけど
(いや、全然知らないけどなんとなく思い込みで)、明日になったら状況は一変するかもしれない。
でもやっぱり明日もつらいかもしれないけど、明後日になれば状況は一辺すr(ry

でも、あなたのこうして物事を深く考える一面を、僕は嫌いになんてなれない。
たとえ考える内容が間違っていたとしても、考えて主張した内容が間違っていたとしても、
考えることに意義があるんじゃないか。もちろんそれが間違っているかどうか、僕にはわからない。

それを吐き出すため、という点だけとってもあなたのブログはけっこう役に立っていたんじゃないかな。

生きてるだけで丸儲け

のびた「家出してくる!」
たまよ「夕飯には帰るのよー!」
のびた「はーい!」



のびた「・・・!?」

ドラえもんにこんなシーンがあったような、なかったような・・・。

ラッパのユーティリティメソッド

  public class StringToP {
    public static void main(String[] args) {


    String s = "2";
    int x = Integer.parseInt(s);


    String sb = "true";
    boolean b = new Boolean(sb).booleanValue();


    if (b) {
      System.out.println(x);
    }
  }
}

実行結果

2

BooleanクラスにはStringを引数として指定できるコンストラクタがある。そのコンストラクタを使って作ったBooleanオブジェクトのラッピングを解けば文字列"true"、"false"をboolean型の値に変換できる。

ラッピング

public class Test {

  Integer i;
  int j;


  public static void main(String[] args) {
    new Test().go() ;
  }
  
  public void go () {
    j = i;
    System.out.println(j);
    System.out.println(i);
  }
}

実行結果

1
1

( ・ิω・ิ)ラッピングしとる!!