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に関する実用情報を議論するための スレッドにしましょう。
899 名前:仕様書無しさん mailto:sage [2008/03/05(水) 06:52:58 ] PHP歴4年のPHPしかやったことがない人間です。 PHPは型の曖昧な言語ですが、基礎的な型は理解しているつもりで、 またオブジェクトを使った書き方や、例外処理などもしたことがあるので、 Javaも少しはわかるはずと思い過去問をいくつかやってみました。 SJC-Pの試験は間違い探しみたいな感じになっていて、問題は結構な確率であたっていました。 もう少しJavaについて勉強をしたら、合格できるかな?とか思っているのですが、 選択肢があるゆえに正解しているわけであって、 実際にどういう挙動をするかを書く筆記式だった場合、答えられる自信がありません。 この状態だと、仮にこの試験が受かって、どこかの会社の面接にいったときに、 履歴書の資格にSJC-Pなんて書くと、Javaができる人だと思われても困ってしまいます。 やはり取れそうだから取るのではなく、ある程度理解してから取ったほうが良いでしょうか? それと1.4用の問題だったのですが、5.0のほうを見たらサッパリわかりませんでした。 もしとるとしたら1.4(古い方?)になると思うのですが、今は無理してでも5.0を取ったほうがいいのでしょうか?
900 名前:仕様書無しさん mailto:sage [2008/03/05(水) 11:31:40 ] >>899 SJC-PごときじゃJavaができる人なんて思われないよ 基本ができてる人程度 今から取るなら5.0を受けたほうがいい
901 名前:仕様書無しさん mailto:sage [2008/03/05(水) 11:35:25 ] 基本すら出来ない人が多いのが現実だから判断材料としては経歴書より信頼してる
902 名前:仕様書無しさん mailto:sage [2008/03/05(水) 11:46:39 ] 持ってないよりいいだろうけど
903 名前:仕様書無しさん [2008/03/05(水) 12:21:36 ] Javaの基本が、それなりに難しいという事ではないの? Java言語仕様を読んでいてそう思います。 >>898 ありがとうございます。 このままJava言語仕様を続けていきます。 >>899 スレッド関連問題は、全てネストしているからある程度の理解では厳しいと思います。 (スレッドがネストしているのは、実用的な方法だからSJC-Pの試験は評価できるはずです。) あと、Javaが出来ると思われるぐらいのレベルとなると JSP/サーブレットで、ホームページ制作や業務アプリケーション(自作)制作経験がないと思われないのでは? (>>899 さんの会社がどうなっているかも知らないで、言うのは偉そうかもしれませんので、一応ごめんなさい。と) なんにしろ、SJC-Pの評価は高いという事だけは分かっています。 ITpro主催の資格番付で。
904 名前:仕様書無しさん mailto:sage [2008/03/05(水) 14:00:08 ] >903 巷の評価だとJavaがある程度使える=Struts等のWebAppのFWの経験が2回以上、って感じかな とはいえ、RailsだろうとMVCの概念のあるFWの経験1回以上とSJC-Pの資格取得レベルでの基礎知識があれば、かなり安心できる どっちか片方といえば、自分は基礎だけの人を採用するけどね
905 名前:仕様書無しさん mailto:sage [2008/03/05(水) 14:08:52 ] 変にすごいこと出来るよりは基礎があるほうが重要だよね
906 名前:仕様書無しさん mailto:sage [2008/03/05(水) 15:06:17 ] 基本的な単語が通じないとどうにもならんからな
907 名前:仕様書無しさん [2008/03/05(水) 15:32:36 ] >>904-906 ベース(基礎)+α という事ですね。 基礎もなく勉強を進めても、吸収スピードも遅いでしょうし。 何より、SJC-Pの上(Javaの基礎以上)を目指すときにベースが役に立つということですね。 考え改めました。ありがとうございます。
908 名前:仕様書無しさん [2008/03/06(木) 14:18:52 ] >>889 結果教えてください。お願いします
909 名前:仕様書無しさん mailto:sage [2008/03/06(木) 22:27:43 ] へんじがない ただの
910 名前:仕様書無しさん [2008/03/06(木) 23:39:11 ] 廃人になってしまったようだ
911 名前:ebifurai55_暗行御史 ◆AOGu5v68Us mailto:http://ebifurai55.blog.shinobi.jp [2008/03/07(金) 04:37:34 ] 俺今度32になるんだけど、Javaの勉強受けても仕事ある?
912 名前:仕様書無しさん mailto:sage [2008/03/07(金) 05:50:41 ] >>911 javaどの程度できるん?
913 名前:仕様書無しさん mailto:sage [2008/03/07(金) 05:52:50 ] 32かぁ プログラマーとしてはそろそろ終焉を迎えて人材育成にまわりはじめるころ
914 名前:ebifurai55_暗行御史 ◆AOGu5v68Us mailto:http://ebifurai55.blog.shinobi.jp [2008/03/07(金) 07:17:43 ] >>912 iappli数個作った程度 >>913 やはりキツイかね
915 名前:仕様書無しさん mailto:sage [2008/03/07(金) 07:45:59 ] Javaをつかうかは別として 仕事としてなら選ばなければ32でも全然あるよ 組み込みとか需要高くて人気ないのとかね
916 名前:仕様書無しさん mailto:sage [2008/03/07(金) 09:56:02 ] 32でニートかよ・・・ 無理だな
917 名前:仕様書無しさん mailto:sage [2008/03/07(金) 11:08:19 ] スレを読んでみれば持ってないよりはマシというのが分かると思うが そんなに大きな決め手となるわけでもないがの
918 名前:仕様書無しさん mailto:sage [2008/03/07(金) 11:10:26 ] まぁニートは質問よりも行動だよ
919 名前:仕様書無しさん mailto:sage [2008/03/07(金) 11:44:34 ] ゲームやり杉ワロタ
920 名前:仕様書無しさん mailto:sage [2008/03/07(金) 12:58:29 ] >>916 世間知らず乙 異業種に転職するさい空白期間なんて誰でも出来うるわな
921 名前:仕様書無しさん mailto:sage [2008/03/07(金) 13:44:44 ] >>920 俺も世間知らずのニートなんだが 転職どころか職歴0なのよ 空白期間5年ぐらいなんだけどどう説明すれば(´;ω;`)ブワッ 空白期間といっても一般人だと半年未満、長くても1年未満とかなんだろうね・・・
922 名前:仕様書無しさん mailto:sage [2008/03/07(金) 13:49:29 ] メール欄のサイトに >まあここ数年、オヤジの仕事の手伝いをしていたとは言え、ほぼニート状態だったのでいい加減これを打破する時期に差し迫っているのかもしれません。 とかなんとか。
923 名前:仕様書無しさん mailto:sage [2008/03/07(金) 14:45:09 ] ココでも読んどけ→【やる夫がIT土方になったようです】 そして、人生相談オワレ スレ違いだ
924 名前:仕様書無しさん mailto:sage [2008/03/07(金) 17:13:33 ] >>923 まんま俺だなwwwやる夫www 3年たってなんとか多重偽装請負スパイラルから逃げられた…人世終わらなかったぜ
925 名前:仕様書無しさん mailto:sage [2008/03/07(金) 20:50:04 ] >>924 それで偽装派遣は告発したのか? 俺はきっちり告発した。
926 名前:仕様書無しさん mailto:sage [2008/03/07(金) 22:22:37 ] >>925 やめるずっと前に、これって違法ですよねって軽く話したら いきなり元締めから「他のメンバーの職を失わせてまでやる事じゃないよな(意訳)」と凄まれて怖かった 最近はだいぶ元気になってきたけど、そんなの怖くてできない いや、そんなことより資格だな資格
927 名前:仕様書無しさん mailto:sage [2008/03/08(土) 00:49:21 ] 暗くなる話はやめよーぜw
928 名前:仕様書無しさん [2008/03/08(土) 10:27:21 ] >310-055はそこそこ難しいらしい。 >310-035は対策問題集とかあるから真面目に勉強すれば受かる。 テキストが310-055、問題集が310-035を買ってしまいました。 1年前に買ったから返品できません。
929 名前:仕様書無しさん [2008/03/08(土) 10:36:20 ] >>4 のを2冊買ったんですけど、 310-055と310-035の難易度違いはどうなのでしょう? 035の問題集に055にある程度適用はできるのでしょうか。 2つ受験されたお方、ご教授下さいm(__)m
930 名前:仕様書無しさん mailto:sage [2008/03/08(土) 11:02:02 ] スレを嫁 035の問題集と055の試験は全く違うし、問題集も全く違う
931 名前:仕様書無しさん mailto:sage [2008/03/08(土) 11:20:37 ] 新機能用にどうせ問題集が必要だからなぁw
932 名前:仕様書無しさん mailto:sage [2008/03/08(土) 16:39:20 ] 310-055を受けようと思うのですが、 日経BPのは買いましたが、 問題集も買おうと思うのですが、黒本ってのはこれでいいのですか? ttp://kakaku.livedoor.com/item_info/20686290670822.html 他にこれをやってみればって問題集は有りますか?
933 名前:仕様書無しさん mailto:sage [2008/03/08(土) 17:30:56 ] 黒本と銀本かな?
934 名前:仕様書無しさん mailto:sage [2008/03/09(日) 13:07:39 ] 黒本と銀本は鉄板 どっちか一つだけでもいいけど色んな問題に触れるという意味で俺は二つ使った 経験から言うと、日経BPは時間のある人にとっては理解を深めるために使ってもいいけど 短期間で合格したい人にとっては邪魔 自分は日経BPはさらっと読み流した程度で、黒本と銀本みっちりやって高得点で合格
935 名前:932 mailto:sage [2008/03/09(日) 15:31:58 ] >>933-934 ありがとうございます。 ご意見を元に黒本と銀本を購入したいと思い、 黒本はkonozamaでさっきポチりました。 銀本は廃盤で古本になるようですが、 第何版かで内容が変わっていたりするのでしょうか?
936 名前:仕様書無しさん [2008/03/09(日) 18:36:27 ] >>935 本のタイトルが全く同じなら(他の本は違うものもありますが)誤植以外は、同じだと思いますよ。 >>help ジェネリックが憎すぎます。 再帰的(?)ジェネリックスが分かりません。 たとえば、 Seq<Seq<A>> Seq<String>.Zipper<Integer> です。 これどういう意味でしょうか? ちなみに、まったく意味が分かっていないのでこれだけじゃ、分からん。 と言われれば終了です。 すんません...orz
937 名前:仕様書無しさん mailto:sage [2008/03/09(日) 18:48:42 ] >>936 再帰的だからって何もわからなくなることはないだろう。 どういう意味って特別に別の意味など発生しないよ。 関数呼び出しと再帰関数呼び出し f() {
938 名前:仕様書無しさん mailto:sage [2008/03/09(日) 18:49:25 ] f(); } これだって呼び出しの意味がかわるわけでもないし。
939 名前:仕様書無しさん [2008/03/09(日) 19:40:46 ] ??? すいません。分かりません。 new でインスタンス化しようとするとどんな式になりますか? new Seq<Seq<String>>(); みたいな感じですか?
940 名前:仕様書無しさん mailto:sage [2008/03/09(日) 19:47:38 ] >>939 そんな感じだ。 <>の内部は静的情報をおくとこなので、newみたな動的情報ははいらない。 ただそれは再帰的であることが問題なわけだはないよな? Set<new Integer>とかけないことはわかっているだろう?
941 名前:仕様書無しさん mailto:sage [2008/03/09(日) 19:51:33 ] ジェネリクスはコード書いた方が理解が早いよ お、便利だぜ!と思ったならば、ほとんどの問題はその時点で解ける
942 名前:仕様書無しさん [2008/03/09(日) 20:01:25 ] >>940 出来ないという事だけは、分かっています。 しかし、理由は分かりません。 具象化可能型と関係あるんでしょうか? 確か、一部の型情報はコンパイル時に消去されるとかなんとかだったような。 すいません。 ご教授おねがいします。
943 名前:仕様書無しさん mailto:sage [2008/03/09(日) 20:11:13 ] >>942 <>内部には、宣言としてはかけるがnewなどで実態を 割当てるときはかけない。これは再帰とは別問題だ。 曖昧な理解だと自覚があることは大事だ。 それがあればあとはその違和感を消し去るだけだ。 そちらは、そのうち問題なく理解できるようになるよ。
944 名前:仕様書無しさん [2008/03/09(日) 20:25:01 ] >>943 ありがとうございます。 色々なところで、勉強しなおします。 ジェネリックは、とても便利な機能なので完全に理解します。必ず。 あと、コードはいつも実際に動かしています。 色々と気づくこともありますから。
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を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。