スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
ちょっとJavaで器用なことができるようになってきた
※暴走したとしても責任は取れません

import java.io.*;

class Test{
String s;
public static void main(String args[]){
new Test().main(new String[]{"aaa"});
}
}

結果:
Exception in thread "main" java.lang.StackOverflowError
at Test.main(Test.java:6)
at Test.main(Test.java:6)
以下略

はい。スタックオーバーフロー
スポンサーサイト
初期化されてないときJavaはなんと言うのか

import java.io.*;

class Test{
public static void main(String args[]){
String s;
System.out.println(s);
System.out.println(s.length());
}
}

コンパイルが通りません:
Test.java:6: 変数 s は初期化されていない可能性があります。
System.out.println(s);
^
エラー 1 個




以下で初期化すると

import java.io.*;

class Test{
public static void main(String args[]){
String s = new String();
System.out.println(s);
System.out.println(s.length());
}
}

結果:

0




これだと、

import java.io.*;

class Test{
public static void main(String args[]){
String[] s = new String[1];
System.out.println(s);
System.out.println(s[0]);
System.out.println(s[0].length());
}
}

結果:
[Ljava.lang.String;@6caf43
null
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:8)




なるほど。なるほど。




System.out には PrintStream が入ってます。

import java.io.*;

class Test{
public static void main(String args[]){
System.out.println(System.out);
if( System.out instanceof PrintStream ){
System.out.println("こいつインスタンス持ってたんだ!");
}
}
}

結果:
java.io.PrintStream@6caf43
こいつインスタンス持ってたんだ!

Javaは色んなことをしてくれます。newで確保したときに初期化とか。
Stringは領域確保したときnullで初期化されるらしい。


import java.io.*;

class Test{
public static void main(String args[]){
String s[] = new String[1];
System.out.println(s[0]);
s[0] = null;
System.out.println(s[0]);

Integer i=new Integer(1);
System.out.println(i);
i=null;
System.out.println(i.toString());
}
}

結果:
null
null
1
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:13)



null(参照してない状態)は、nullが表示されるのね。
メソッドを呼び出そうとして、はじめてNullPointerExceptionなのか。





import java.io.*;

class Test{
public static void main(String args[]){
String s[] = new String[1];
System.out.println(s[0]);
System.out.println(s[0].length());
}
}

結果:
null
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:7)

なるほど。
YAPC::Asia 2008 に参加してきました
やはり、技術カンファは胸が躍る。
プログラムが書きたくなって、書きたくなって仕方なくなる。

Perlはすばらしい。

Perl文化もすばらしい。

誰に教わったわけではないけど、私のマザータングだ。
ブログ検索

プロフィール

ビンゴ中西
Perlが好きである。
プログラミング言語のほとんどは独学。独学の過程で多くのプログラム仲間にも色々教わりました。

FC2カウンター

カレンダー

04 | 2008/05 | 06
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

ブロとも申請フォーム

この人とブロともになる

| ホーム |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。