よく見かけるネタ IntegerCache 問題

昔からよくある Java パズルでブログの更新を久しぶりにしておきます。

次のコードの結果はどうなるでしょう?

package jp.yucchi.integercachedemo;

public class IntegerCacheDemo {

    public static void main(String[] args) {
        
        Integer i = 127;     
        Integer j = 127;
         
        System.out.println(i == j);
        
        Integer k = 128;
        Integer l = 128;
        
        System.out.println(k == l);
        
        Integer m = -128;     
        Integer n = -128;
         
        System.out.println(m == n);
        
        Integer o = -129;
        Integer p = -129;
        
        System.out.println(o == p);

    }
    
}

true
false
true
false

となります。

間違えてませんよね!

今さらですが、これらは Integer.valueOf() メソッドが使われて -128 から 127 までは IntegerCache クラスであらかじめ用意されているものが使われる。

小さな親切、大きなお世話というやつです!

でも、用意してある物は使わなくては損ですよね。

じゃあ、どうしてもっといっぱい作って用意しておいてくれないの?って言うあなたに

JVM の実行時引数による制御も可能です。

-Djava.lang.Integer.IntegerCache.high=<size>

それとも、

-XX:AutoBoxCacheMax=<size>

で OK です。

-Djava.lang.Integer.IntegerCache.high=128 と設定して実行すると先ほどのプログラムの結果は

true
true
true
false

となります。

ちなみに IntegerCache の最小値の設定方法は私は知りません。(;゜ロ゜)

以上、よくあるネタ終了です。

Hatena タグ:

 

 

 

 

 

 

Windows 10 アップグレード その後

Windows 10 にアップグレードして暫く経ちました。

公私ともに忙しい毎日が続いておりそんなに使ってないのですが経過報告です。

まず、アップグレードによって問題が発生したことを書いておきます。

1. Microsoft マウス キーボードセンターが立ち上がらなくなりました。

これはコントロールパネルよりアンインストールし、Windows 8.1 用のものを再びインストールすることにより解決しました。

2. あるプログラムを起動しようとしたところ「MSVCR110.dllから見つかりませんでした」というエラーがでるようになりました。

コントロールパネルより、Visual Studio 2012 更新プログラム 4 の Visual C++ 再頒布可能パッケージである

Microsoft Visual C++ 2012 Redisributable (x86),  Microsoft Visual C++ 2012 Redisributable (x64) を修復することによって解決しました。

3. ローカルネットワーク内の 一部の PC にログオンできなくなりました。

コントロールパネルから資格情報マネージャーを開き、Windows 資格情報の管理でログオンできない PC のユーザー名が適切でなかったので編集し直して解決しました。

今のところ不具合が発生したのはこの3件です。

Windows 8 から 8.1、8.1 update と何も不具合がでなかったので Windows 10 もアップグレードを選択したけどクリーンインストールしたほうが良かったかもしれない。

2番目と3番目の不具合は他にも何か悪さをしているかもと少し不安になります。

でも、クリーンインストールだとプログラムを入れ直して設定やらデータの移行なんかが非常に面倒なんですよね。(ヲヒ

そうそう、この前のエントリーで「Webとwindowsを検索」が邪魔で消したいと言っていたのですが方法が見つかりました。

タスクバーを右クリックで[ 検索 ] → [ 検索アイコンを表示 ] にすれば虫眼鏡のアイコンになります。

1

2

アイコンも表示させたくない場合は、[ 表示しない ] を選択すれば良いです。

ちなみに GodMode も健在ですね。

こちらはアップグレードじゃないのでアップグレードだとどうなるかは解りません。

3

Windows 10 今までとは変わったところが多くあるので久しぶりに使い方の本でも買っておこうかな?

Windows 95 が世に出て、パソコンブームのころ「サルでもわかる・・・」と言った感じの非常に解りやすい本があったけど、あれって買うの恥ずかしかったよね。

今だったら Amazon で簡単に買えるけど、まだシリーズ続いてるんだろうか?

今度本屋さんに言ったときに適当な本を買ってこよう。

Hatena タグ: