1 名前:仕様書無しさん mailto:sage [2006/08/28(月) 07:54:53 ] Sun認定Java資格 実用情報 4 【SJC-P用】 このスレッドは、Sun認定Java資格の Sun Certified Programmer for Java 2 Platform 5.0 Sun Certified Programmer for the Java 2 Platform 1.4 Sun Certified Programmer for the Java 2 Platform 1.2 に関して、具体的な『実用情報』を集めるために立てました。 過去スレ・関連スレ >>2 試験報告用テンプレ >>3 関連書籍 >>4 リンクなど >>5 ▼▼▼▼▼▼▼▼▼▼ ↓注目 ▼▼▼▼▼▼▼▼▼▼ このスレッドでは、 次の書き込みや議論は『 不要 』です。 「資格なんて意味ねーよ」 「実務経験関係なしにiStudyシコシコやってればとれる資格に意味ねぇ」 「3日で取れないやつはクソ」etc スレッドを荒らすだけの発言は他でやってください。 ▲▲▲▲▲▲▲▲▲▲ ↑注目 ▲▲▲▲▲▲▲▲▲▲ 前向きに、 SJC-Pに関する実用情報を議論するための スレッドにしましょう。
996 名前:986 mailto:sage [2008/03/16(日) 21:27:27 ] 正直Javaは数年触ってないから自信ないよねっと。 class Test { public static void main(String[] args) { // Arrayクラスは、Java君がどっかに領域作ってくれるんじゃね int[] a = { 11, 12, 13, 14 }; // aは、Arrayクラスの在処を覚えた int[] b = { 0, 1, 2, 3 }; // bは、Arrayクラスの在処を覚えた int[] c = null; // >>991 「シャローコピー」でググって説明を探すと大吉 c = a; // aの指すArrayクラスの場所を、cに教えてやる a = b; // bの指すArrayクラスの場所を、aに教えてやる b[0] = 10000; System.out.println(a[0]); // b[0]と一緒 System.out.println(b[0]); System.out.println(c[0]); // a[0]と一緒 } } C:\test>javac Test.java C:\test>java Test 10000 10000 11
997 名前:991 [2008/03/16(日) 21:41:21 ] >994 違いますよ〜。 配列アクセスでは、ブラケット([])の式が評価される前に ブラケット([])の前にある式が完全に評価される事が保障されています。 その評価された値は別の場所に記憶されます。 たとえば、 class Test { public static void main(String[] args) { int index = 1; try { skedaddle()[index=2]++; } catch(Exception e) { System.out.println(e + ", index=" + index); } } static int[] skedaddle() throws Exception { throw new Exception("Ciao"); } } の結果は java.lang.Exception: Ciao, index = 1 となります。 ブラケット[]の中の式は評価されていません。
998 名前:仕様書無しさん mailto:sage [2008/03/16(日) 21:43:18 ] 何だお前ら、珍しくjavaの話してるな・・・
999 名前:986 mailto:sage [2008/03/16(日) 21:47:25 ] >>991 正確には「a = b」は bが指しているArrayクラスの位置を、aに代入する になる。 言い換えると「a = b」は a[0] = b[0]; a[1] = b[1]; a[2] = b[2]; a[3] = b[3]; の代用にはならん。 後、揚げ足取られるとウザイんで、 何でもかんでも「正確じゃない」って書いてる。
1000 名前:986 mailto:sage [2008/03/16(日) 21:48:42 ] まるっこコピーが欲しいならArray#clone()だろうか。 class Test { public static void main(String[] args) { int[] a = { 11, 12, 13, 14 }; int[] b = { 0, 1, 2, 3 }; // 1. bと同じ内容のArrayクラスを作る // 2. aに、1で作ったArrayクラスの場所を教えてやる a = b.clone(); b[0] = 10000; System.out.println(a[0]); System.out.println(b[0]); } } ハイ後は適当にヨロシク。あと次ぎスレへGO。
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。