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に関する実用情報を議論するための スレッドにしましょう。
945 名前:仕様書無しさん [2008/03/09(日) 21:00:17 ] class Cell<?>の、?はワイルドカード。 class Cell<E>の、Eはワイルドカードとなるのでしょうか?
946 名前:仕様書無しさん mailto:sage [2008/03/09(日) 22:31:21 ] >945 class Cell<E> { } としたならば、Cellクラスを使用するときにジェネリクスの指定が出来るという意味。 例えば、 Cell<String> cell = new Cell<String>(); この時に、どんな型でもOKとワイルドカード指定する場合には、 Cell<?> cell = new Cell<?>(); となる。
947 名前:仕様書無しさん mailto:sage [2008/03/09(日) 22:33:21 ] 続き class Cell<E> { void set(E obj); E get(); } となっていれば、 Cell<String> cell = new Cell<String>(); cell.set("hoge"); String hoge = cell.get(); と書ける Cell<?> の場合は型がワイルドカード、すなわちObjectとなる
948 名前:仕様書無しさん [2008/03/09(日) 23:59:35 ] >>946 ,947 なるほど。 ありがとうございます。 すごく勘違いしていたようですね。
949 名前:仕様書無しさん mailto:sage [2008/03/12(水) 14:53:40 ] 【Java経験】 5〜6年(学生時代3年+仕事半年+残り講師) 【言語経験】 Java、JavaScript、Ruby 【試験番号】 310-055 【 正解数 】 61/71 【受験回数】 1回 【勉強期間】 普段から触ってるのでよくわからない 【使用教材】 紫教科書、黒問題集 【出題内容】 ジェネリックス1割、スレッド1割、後は均等に出た。 黒問題集の序盤にある、簡単な問題と、フロー制御で トレースさせるような問題は出なかった。 100%いくと思ってたけど、split("\s")がコンパイルエラー とかを見落としてるのがわかったので、 かなり注意しないと、高得点は難しいんだと感た。 これから受ける人は、ジェネリックスとスレッドを 完璧に理解するべき。 ジェネリックスはほぼすべてD&Dでした。
950 名前:仕様書無しさん [2008/03/12(水) 15:40:33 ] >>949 おめでとうございます。 ところで、D&Dとは何でしょうか? 型変数の境界の事ですか?
951 名前:仕様書無しさん mailto:sage [2008/03/12(水) 16:06:03 ] >>950 僕は310-055持ってないけど教えてあげるよ どらっぐあんどどろっぷだよ
952 名前:仕様書無しさん mailto:sage [2008/03/12(水) 16:41:03 ] 【Java経験】6〜7年 【言語経験】C++,C#,VB,PHP,perl 【試験番号】310-055 【 正解数 】62/72 【受験回数】1回目 【勉強期間】1日数時間*1週間 【使用教材】日経BP(035+027版) SoftBank問題集(055) 【出題内容】満遍なく 問題集と比べて瞬殺できる問題が少なかった。 なにげに明朝コードに見慣れず違和感があった。 D&D問題が多かった印象(10〜15問はあったような)。 D&D問題の見直しがクリアされるのは厳しかった。 スレッドは記憶するだけの単純な問題は無かった。 はじめてこのスレに来ますた。 レス読んだ感じでは、去年の後半あたりから難しくなったのでは? 直前にSoftBank問題集 模試1=70/72 模試2=67/72 で望んだ。 模試は90分くらいで終わったが、本番は2時間ちょいかかった。 問題集の盲点を突く問題が多かった気がする。
953 名前:仕様書無しさん [2008/03/13(木) 20:23:20 ] Super sps={new Sub(),new Sub(),new Sub()}; Sub[] sbs=(Sub[])sps; spsはサブクラスのオブジェクトを参照しているのに なぜキャスト例外がスローされるのでしょうか
954 名前:仕様書無しさん mailto:sage [2008/03/13(木) 20:25:31 ] 気に入らんから
955 名前:仕様書無しさん mailto:sage [2008/03/14(金) 00:09:26 ] Super[] sps={new Sub(),new Sub(),new Sub()}; だろ 解説に書いてあるとおり、spsはSuper型の配列だからだ 要素はかんけーねー いや、しらんけど
956 名前:仕様書無しさん mailto:sage [2008/03/14(金) 10:03:12 ] >>953 >>162-166 嫁
957 名前:仕様書無しさん [2008/03/14(金) 18:56:01 ] 過去ログにあったよ Super sp = new Sub(); ”Sub”のインスタンス Sub sb = (Sub)sp; sb=”Sub”のインスタンス Super[] sps = {new Sub(), new Sub(), new Sub()}; ”Superの配列”のインスタンス Sub[] sbs = (Sub[])sps; sbs≠”Superの配列”のインスタンス
958 名前:仕様書無しさん [2008/03/14(金) 19:07:07 ] 【Java経験】3ヶ月 【言語経験】C 【試験番号】310-035 【 正解数 】52/61(85%) 【受験回数】1回目 【勉強期間】2ヶ月 【使用教材】黒本 web問題 【出題内容】満遍なく 黒本だけじゃ無理、英語ができれば英語サイトでいい問題集を探して、きっと楽勝
959 名前:仕様書無しさん [2008/03/14(金) 23:44:26 ] 035は黒本だけで楽勝だろ 055は受けてないから知らんけど
960 名前:仕様書無しさん [2008/03/15(土) 00:40:03 ] 035は、>>959 の言う通り黒本だけで十分。 黒本1冊で90%以上取れるよ。
961 名前:仕様書無しさん mailto:sage [2008/03/15(土) 00:42:56 ] そういう人もそうでない人もいるわけで
962 名前:仕様書無しさん [2008/03/15(土) 01:09:55 ] 黒本のみで高得点で楽々合格できる力は付くという意味ですよ
963 名前:仕様書無しさん [2008/03/15(土) 01:29:03 ] >>961 は、一度試験で落ちないと、 自分の勉強が浅いという事に気づかないタイプだな。 かくいう俺がそうだったんだけどね。
964 名前:仕様書無しさん mailto:sage [2008/03/15(土) 01:50:46 ] 黒でも銀でも 疑問に思ったことを試してみたりネットで調べたり、そもそも知識があったり そういう人なら1冊で大丈夫 駄目な人は色んな本でちょっと違った説明や違った角度からの問題で知識つければいい まあ好きにすればいいってこった
965 名前:仕様書無しさん mailto:sage [2008/03/15(土) 02:08:16 ] >>958 そうそう、英語サイトなら、豊富にMockテストが存在する。 知識確認はそれだけで基本的にはOK。(経済コスト0) ただ英語解釈は多少は時間かかる。お金と時間のトレードオフ。
966 名前:仕様書無しさん mailto:sage [2008/03/15(土) 02:19:13 ] 黒を5周して受験したけど、確実に解けたのは3割程度だった 残りの7割は勘と消去法で解いてギリギリ合格 運で受かったようなものなので、合格した喜びはなかった こんな馬鹿な俺でもJavaプログラマになれるのか不安
967 名前:仕様書無しさん mailto:sage [2008/03/15(土) 02:26:13 ] プログラマになる前に取る資格というよりは1年くらい経験して取るような資格だから仕方ない 専門とか大学でやっていてギリギリってのはサボりすぎ
968 名前:仕様書無しさん [2008/03/15(土) 02:33:06 ] staticって何?って段階から約3ヵ月間猛勉強して87%で合格しました 努力は裏切らないなと改めて実感したよ
969 名前:仕様書無しさん mailto:sage [2008/03/15(土) 10:02:40 ] >>966 消去法で解けてるんだから力はついてるはず 勘って言ってもある程度は絞れてるんだから 運で受かったわけじゃないさ 大切なのは難しいからって諦めない強い心だ
970 名前:仕様書無しさん mailto:sage [2008/03/15(土) 10:11:16 ] >>969 >大切なのは難しいからって諦めない強い心だ 泣いた
971 名前:仕様書無しさん mailto:sage [2008/03/15(土) 17:08:46 ] >>969 (´;ω;`)ウッ 何といい言葉 何かやる気でてきた
972 名前:仕様書無しさん mailto:sage [2008/03/15(土) 18:00:51 ] おい、試験申し込もうとしたんだが、アメリカ銀行ってなんだ? ATM行ってもそんな振込先表示されないんだが…
973 名前:972 mailto:sage [2008/03/15(土) 18:07:16 ] やべぇ、なんだか腹が立ってきた…
974 名前:仕様書無しさん mailto:sage [2008/03/15(土) 18:58:43 ] くれか使え
975 名前:仕様書無しさん [2008/03/15(土) 19:44:43 ] >972 俺は、UFJ銀行で払った。 今さらかもしれんが、NECでチケット買った方が安いぞ。
976 名前:972 mailto:sage [2008/03/15(土) 19:51:23 ] >>975 ありがとう。 でも、今調べたら完売してたよ。残念。 Sunのページ意外にも申し込み方があるなんて知らなかった。 みんなそういうのどうやって調べてくるんだろ。
977 名前:972 mailto:sage [2008/03/15(土) 20:09:09 ] www.rakuten.co.jp/it-test/121649/131132/ 俺も調べたらこんなのが出てきた。 あんま値段は変わらないけど、コンビニで支払い出来るのがいいな。 機嫌は直ったよ。
978 名前:仕様書無しさん [2008/03/15(土) 22:39:35 ] >976 再受験キャンペーンチケットは、完売という事だよ。 www.neclearning.jp/request_guide/ticket_info.html の下の(上のNo2ではなく) No2欄に載ってるよ。 1枚\21000だよ。
979 名前:仕様書無しさん [2008/03/15(土) 22:40:54 ] これ取る意義って履歴書に華を添えるだけ?
980 名前:仕様書無しさん [2008/03/15(土) 22:48:32 ] >979 帰れ
981 名前:仕様書無しさん [2008/03/15(土) 22:53:23 ] 不毛だ不毛すぎるぜ 次スレでは上みたいなのはスルーな
982 名前:972 mailto:sage [2008/03/15(土) 23:02:41 ] >>978 げ、本当だ…。 やばい、また腹が立ってきた…
983 名前:仕様書無しさん [2008/03/15(土) 23:10:14 ] >982 すまん。黙っておけばよかった。
984 名前:仕様書無しさん mailto:sage [2008/03/15(土) 23:59:10 ] それもアレだがな
985 名前:仕様書無しさん [2008/03/16(日) 19:04:36 ] 誰か教えてください。 (再来週には、SJC-Pを受けようと思っています) Java言語仕様で、 class Test { public static void main(String[] args) { int[] a = { 11, 12, 13, 14 }; int[] b = { 0, 1, 2, 3 } ; System.out.println(a[(a=b)[3]]); } } の結果が14になります。 しかし、 class Test { public static void main(String[] args) { int[] a = { 11, 12, 13, 14 }; int[] b = { 0, 1, 2, 3 } ; System.out.println(a[(a)[3]]); } } の結果は、ArrayIndexOutOfBoundsになります。 なぜでしょうか?
986 名前:仕様書無しさん mailto:sage [2008/03/16(日) 20:14:02 ] >>985 うーん、これに何の意味があるのかサッパリわからん。 こういうのがあるから資格なんぞ寝言だと思うんだが……まあいいや。 前者: a=b //aにbを代入(正確じゃないが、資格レベルならそれでいいかな) (a=b)[3] -> b[3] -> 3 a[(a=b)[3]] -> a[b[3]] -> a[3] -> 14 後者: (a)[3] -> a[3] -> 14 a[(a)[3]] -> a[14] -> インデックス超過 処理の優先順に合わせて、一個一個値を代入してみな。
987 名前:仕様書無しさん mailto:sage [2008/03/16(日) 20:20:36 ] >>986 基本的な配列の考え方だろ。 意味が無いなんてとんでもないぜ。
988 名前:986 mailto:sage [2008/03/16(日) 20:43:04 ] >>987 単なる言葉遊びに見えちまうんだよ……。 実際の現場ではこんな書き方せんだろ? まあアレだ、資格全然持ってない奴のヒガみ、とでも。
989 名前:仕様書無しさん [2008/03/16(日) 20:51:10 ] >986 なるほど、ありがとうございます。 理解出来ました。
990 名前:仕様書無しさん mailto:sage [2008/03/16(日) 20:58:25 ] System.out.println(a[(a=b)[3]]); @A これって@、Aの両方ともbにおきかわるってわけではないんだね? ではこれはどうかな? System.out.println((a=b)[a[3]]);
991 名前:仕様書無しさん [2008/03/16(日) 21:05:45 ] >989 正確ではないとは、どういう事でしょうか? 単に、ブラケット中([])の式の評価に先だってブラケットの左側にある式が完全に評価されているのだから (aにbが入ってもこの式には影響しないから) 代入という言い方が正確ではないのでしょうか? ご指導お願いします。 Java言語仕様を読んで勉強をしているので正確な理解がしたいのです。
992 名前:991 [2008/03/16(日) 21:14:01 ] >990 3だよ。
993 名前:仕様書無しさん mailto:sage [2008/03/16(日) 21:14:41 ] @Aが何を指すのか分からないんだが。a = @ b = A で合ってるか? a = b と代入した時点で、aが参照しているArrayクラスと、 bが参照しているArrayクラスが一緒になる。 もともとaが参照してたArrayクラスは、(たぶん)ガベコレでサヨウナラだ。 ((a=b)[a[3]]) : 1. a = b -> b 2. b[b[3]] -> b[3] -> 3 正確に書くんだったら、「Java言語仕様」でも参照しないとムリっぽ。 俺はあんな本全部覚えられるほど頭良くねえ。
994 名前:仕様書無しさん mailto:sage [2008/03/16(日) 21:15:08 ] >>991 代入とかくと、 System.out.println(a[(a=b)[3]]); 以下と同じということになるか、と。 a=b; System.out.println(a[a[3]]); これとはちがうからねえ。 一行で表現される式内の一時オブジェクトに代入ということかな、と。 #あ、最初の回答者ではないんで。
995 名前:仕様書無しさん mailto:sage [2008/03/16(日) 21:18:02 ] >>993 このあたりの基本文法構造は、CやC++でも同じでは?
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を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。