1 名前:デフォルトの名無しさん mailto:sage [2006/05/18(木) 01:03:42 ] 前スレ 【Java】次世代Java・J2SE1.6の動向【Mustang】 pc8.2ch.net/test/read.cgi/tech/1081698555/ 関連スレ 【JavaFive】C#からJ2SE5.xへ進化【TigerShot】 pc8.2ch.net/test/read.cgi/tech/1094891986/ www.itmedia.co.jp/news/articles/0404/07/news018.html マルチタスク実現へJava言語改良 Sun幹部によると、2005年に一般リリース予定の「J2SE 1.6」には、 Javaバーチャルマシン(JVM)のアプリケーション共有を強化する「分離」機能が備わり、 ローカライズコンピューティング処理実行のための分離が可能になるという。 米Sun Microsystemsは、Javaバーチャルマシン(JVM)内部での アプリケーションマルチタスク実現に向けてJava言語の改良に取り組んでいる。 カリフォルニア州サンノゼで開催のClusterWorld Conference & Expoで4月6日、同社幹部が明らかにした。 SunのJavaアーキテクト、ムラリ・カウンディンヤ氏によると、 今秋β版が登場し、2005年に一般リリース予定の「J2SE 1.6」には、 JVMのアプリケーション共有を強化する「分離」機能が備わる。 この機能によってローカライズコンピューティング処理実行のための分離が 可能になり、第2のJVMを要求することなくJVM内部でマルチタスクが行えるようになるという。 またJ2SE 1.6では、Javaプログラム間の高速通信を可能にする Sockets Direct Protocolのサポートが計画されている。カウンディンヤ氏によると、 J2SEに施された改良は、その後間もなくJ2EEにも組み込まれる予定。
496 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 09:46:35 ] >>488-489 なんだその安すぎる時給は。なめとんのかゴルァ! 時給5000円以上じゃないと絶対に引き受けない。
497 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 10:12:48 ] >>496 毎回手作りケーキと紅茶が付くとしても?
498 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 10:14:23 ] >>497 だれの手作りかによる まずは写真とプロフィール(略
499 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 10:37:40 ] >>497 割に合わんな。毎日同じもん食っても飽きる。 毎日中華丼やキムチ食わされたらさすがにキレる。 そんな子供だましなことに乗せられる騙される奴は餓鬼や新人や新卒くらい。 そんな給料で結婚子育て生活ができるとでも思っているのか!!!!!!!!!!!! 二人の子どもを大学院に行かせる金も用意できないだろがゴルァ! 授業料がいくらかかると思っているのか貴様! ケーキが100円、紅茶が150円だとして、時給1000円 だとしても、 一日8時間勤務だとしたら、日給8250円相当にしかならない。
500 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 17:52:25 ] >>499 より>>498 に賛同する。 人間、夢を持てよ。
501 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 17:59:56 ] >>499 ケーキが欲しいんじゃない、人はケーキの向こう側に夢を見るんだよ
502 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 18:18:09 ] >>499 > ケーキが100円 「手作り」ということを忘れている。Priceless
503 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 18:27:45 ] そうか・・・・ >>499 は今が幸せなんだな・・・・ 手作りケーキがタダのケーキとして扱える位に・・・ちくしょう・・・orz こんな小さな幸せでも拾いたいのは不幸せということか・・・
504 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 18:35:16 ] 小さなことを幸せに感じることができるのは幸せなことだと思うぞ。
505 名前:デフォルトの名無しさん mailto:sage [2006/07/15(土) 11:51:22 ] うーん、jdk-6-rc-bin-b91-windows-i586-13_jul_2006.exe もインストール失敗する。 いろいろ弄って、 C:\Documents and Settings\username\Application Data\Sun\Java\jdk1.6.0\jdk1.6.0.msi を使うと英語版のインストーラが起動して、インストールできるっぽい。 っても、無理やり動かしてるからちゃんとインストールできてるかちょっと不安だけど。 ちなみに、エラーメッセージ出た直後に OK 押してインストーラ終了させちゃうと、 ファイルが揃ってない事があった。そのまま OK 押さずに放置して 〜\Application Data\Sun\Java\jdk1.6.0 に 12個 52M のファイルが 出来るのを待つのがコツっぽい。12個 52Mってのは b91 の場合ね。他は知らん。 b91 とか b90 とか普通に exe でインストールできてる人いるんだろうか?
506 名前:デフォルトの名無しさん mailto:sage [2006/07/15(土) 23:11:22 ] >>500-502 相手が男だったら夢も潰れるよ。 それだったら高い給料から 差し引いて自分の金でケーキを買って食べるよ。 ついでに彼女にケーキをプレゼントする。 ケーキもらって喜ぶのは男より 女の子のほうだからな。 男はケーキより金のほうがいいに決まってる。 ケーキの上や中に不味いものや嫌いなものや むさ苦しい男の手垢によって付着した黄色ブドウ球菌が 入っていたらそれだけで嫌な気分になるどころか 食中毒を起こして治療費負担が増大するからな。 それだったら自分でケーキを買った方がマシ。 >>497 はせいぜい女を騙して働かせるんだな。
507 名前:デフォルトの名無しさん mailto:sage [2006/07/15(土) 23:12:17 ] >>504 線香花火のように長続きしない幸せだ。 そんなことで幸せを感じるのは貧乏人や女だけ。 馬鹿な経営者に洗脳されて長時間労働させられて 幻覚を見ているだけだ。
508 名前:デフォルトの名無しさん mailto:sage [2006/07/15(土) 23:44:57 ] 幸せを感じる力は一種の才能 埋もれるほどの財を得ても他人を呪い明日の裏切りに怯える悲惨な人生もある
509 名前:デフォルトの名無しさん mailto:sage [2006/07/16(日) 00:40:55 ] >>499 =>>506 は人格障害気味だな。 結婚子育てとか言ってるけど、無縁じゃないの?
510 名前:デフォルトの名無しさん mailto:sage [2006/07/16(日) 12:28:52 ] >>508 カーネギーやナポレオンヒルやロックフェラーはそんなに悲惨かね。 堀江被告みたいなバカじゃあるまいし。
511 名前:デフォルトの名無しさん mailto:sage [2006/07/16(日) 12:29:40 ] >>509 うーむ、そうやって人を見た目で判断しちゃ逝けないなー
512 名前:デフォルトの名無しさん mailto:sage [2006/07/16(日) 14:13:59 ] >>506 何かいやな事があったんだな・・・強く生きていこうぜ・・・ で、俺もb90,b91のインストール状況は気になる。 b90で、 Eliminate installshield dependency for JDK offline msi installer って言ってる変更が気になるんだよな・・・
513 名前:デフォルトの名無しさん mailto:sage [2006/07/16(日) 18:44:24 ] 会社で給与交渉や重労働のことで 都合が悪くなると昇給する代わりに 飯を奢って食わせてどうにか凌ぐ社長って奴じゃね? 半年に一回5000円の飯奢って貰うんだったら 昇給として月収5万アップして貰って自分の金で 伊勢海老なりフランス料理なり食った方がましってことだろう。
514 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 11:45:34 ] Rhinoの質問していいでしょうか。 JDK6にむけてRhinoの勉強をしているんですが、int値がかってにdouble値になって困ってます。 具体的には、int値をもつ変数に対して演算をすると、int + int => double になります。 import org.mozilla.javascript.*; public class RhinoTest { public static void main(String[] args) { Context context = Context.enter(); Scriptable scope = context.initStandardObjects(); String code = "var x = 3;¥n" + "var y = 3 + 2;¥n" + "var z = x + 2;¥n"; // int + int が double になる context.evaluateString(scope, code, "(filename)", 1, null); String[] varnames = { "x", "y", "z" }; for (int i = 0; i < varnames.length; i++) { String var = varnames[i]; Object value = scope.get(var, scope); String cname = value.getClass().getName(); System.out.println(var + ": class=" + cname + ", value=" + value); } } } 実行結果: x: class=java.lang.Integer, value=3 y: class=java.lang.Integer, value=5 z: class=java.lang.Double, value=5.0 # ← doubleになってる どなたか、解決方法を教えていただけないでしょうか。よろしくお願いします。
515 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 11:51:56 ] ECMAScriptの数値型って浮動小数点型しかないから、 むしろxとyがint型なのがおかしい気がする……
516 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 16:38:11 ] >>515 ありがとうございます。 >ECMAScriptの数値型って浮動小数点型しかないから、 そうなんですか。初めて知りました。 それだとすごく困りました。どうしよう。
517 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 17:25:42 ] Excelも浮動小数点しかないから誤差だしまくりだし イコールでの数値判定は危険 だが、Excelは使われてる もちろんそれが困る用途もあるが 要は用途による割り切りかたかと
518 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 20:15:34 ] >>517 誤差がどうとかではなくて、型が勝手に変わってしまうのを問題にしています。 JavaScriptを設定ファイルがわりに使おうと思ってたんですけど、型が勝手に変わるとなんぎします。 x = 1; y = x + x; で y が double になってしまうなんて。 for (i = 0; i < n; i++) { ... } で i がdoubleだなんて。 どうしたものやら。
519 名前:デフォルトの名無しさん [2006/07/17(月) 20:55:17 ] 時給1000円でJava教えてくださるかたを募集します 場所 所沢(池袋・高田馬場から直通) よろしくおねがいします i−want−to−study−java@hotmail.co.jp 教える対象は超初心者です。 専門学校などでJavaを勉強されていて夏休みだけ教えたいという方も歓迎です
520 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 21:12:37 ] ==使わない限りDoubleでさほど問題ないのでは?
521 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 21:36:03 ] >JDK6にむけてRhinoの勉強をしているんですが なんかRhinoがJava6から脱落したみたいなレスがどっかにあったような…。
522 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 21:40:01 ] >>519 夏帆クラスの女の子の手作りケーキは付くのか付かないのか、 それが問題だと(ry
523 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 21:45:18 ] >>521 >>487 ただし、b90インスコに失敗するので試せてない
524 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 22:04:31 ] b91 だと Rhino あるよ。rt.jar の中っぽいけど。
525 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 22:41:51 ] >>520 JavaScript側で設定した変数の値を、Java側にとってこようとしています。 そのため、JavaScript側でintを設定したつもりなのに、Java側に渡るとDoubleになっているのは困る訳です。
526 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 22:54:10 ] scriptでは常にDouble 精度速度保障のために値が変更されなければintのまま扱ってるだけだろうな 定数だけという感じで だからJavaではDoubleをすべてvalueofで拾うのが正しそうだが
527 名前:デフォルトの名無しさん mailto:sage [2006/07/18(火) 18:12:28 ] >>525 ウチで試したら、代入したときからDoubleみたい。 というか、何か呼び出し方が違うなぁ・・・・Binding使ってるから変換されてる? この挙動から推察すると、JavaとのインターフェースではDoubleになるのが仕様なのでは? /*ソースはインデントの為、半角→全角変換しています*/ package script; import javax.script.*; public class TypeTest { public static void main(String[] args) { try { ScriptEngine se = new ScriptEngineManager().getEngineByName("js"); Bindings bdg = se.createBindings(); bdg.put("x", null); se.setBindings(bdg, ScriptContext.ENGINE_SCOPE); Object res; res = se.eval("var x = 1;"); System.out.println("JS Binding:" + bdg.get("x").getClass().getName() + ":" + bdg.get("x")); } catch (ScriptException e) { e.printStackTrace(); } } } 結果: JS Binding:java.lang.Double:1.0
528 名前:デフォルトの名無しさん mailto:sage [2006/07/21(金) 17:58:47 ] b90以降インストール出来ない件は やはりバグでした。b94でfix予定。 ttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6446356 回避策は、 jdk*.exe /lang=1033 としてインストーラを起動。 英語版として起動させるという手段らしいです。
529 名前:デフォルトの名無しさん [2006/07/22(土) 23:13:33 ] Java5のGenericsなクラス、Genericsによって 型指定されたクラス(たとえばList<String>とか)を クラス図で記述できるUMLモデリングツールがほしい。 Jude3.0では対応していなかった。
530 名前:デフォルトの名無しさん mailto:sage [2006/07/23(日) 12:58:22 ] Judeはいまだに5.0未対応か 1.4系のSystemLAFはぜんぜん似てないからちとな
531 名前:デフォルトの名無しさん mailto:sage [2006/08/08(火) 09:03:43 ] >>528 b94の変更点一覧によると、インストーラの不具合は予定通り修正されたようだな。
532 名前:デフォルトの名無しさん mailto:sage [2006/08/09(水) 02:17:11 ] >>531 いっぺん、アンインストールのときにエラーがでるかもしれんけど 気にせず2回目実行すれば大丈夫だな
533 名前:デフォルトの名無しさん mailto:sage [2006/08/09(水) 19:38:40 ] そーいや、7月に Dolphin プロジェクト始まるとか言ってなかったっけ?
534 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 16:38:37 ] >>533 チェックしたら7/21にビルド始まってた ttp://download.java.net/jdk7/binaries/ ビルドサイクルは、まだ確立されてなさげだけど
535 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 16:47:24 ] >>534 追記: ベースになってるのがb90-b93らしいので >>528 の回避策を使わないとインストールできませんので。
536 名前:デフォルトの名無しさん [2006/08/20(日) 17:29:10 ] Javaは引数の参照渡しができない とんでもない駄作
537 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 17:35:07 ] 536は引数の参照渡しができないとスワップもできない駄プログラマ
538 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 17:49:09 ] Javaは参照の値渡しをしているだけだ。 参照そのものは渡せない。だからライブラリが作りやすいのに。
539 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 19:12:00 ] > 536 問題なし。 void hoge(int[] a){ a[0]=a[0] * 2; } void main(){ int[] lap = {2} hoge(lap); int v = lap[0]; System.out.println(v); }
540 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 14:08:50 ] C言語風だな。
541 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 14:59:40 ] >>539 Arrayでラップか、でもその場合つづりはwrapじゃないか?
542 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 15:06:53 ] >>522 STARDUST OFFICIAL SITE www.stardust.co.jp/file/profile/kaho.html こんな子がでたらそりゃどきどきするわな。 ただし時給1000円だと、こんなかわいい女の子と仲良くなった途端 仕事辞めちゃうもんだなw
543 名前:デフォルトの名無しさん [2006/08/21(月) 18:51:32 ] >>542 こんなかわいい女の子がプログラミングに興味持つのだろうか? 周りを見回すと、数少ない女はみんな…ry 誰かかわいい女の子がいる職場知ってる?
544 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 19:04:01 ] 可愛いってのはそれだけで才能だからな。それを活かせるのは プログラムするところじゃないだろう。本人が好きなら分らんけど、 そうなる可能性は奇跡のように小さいだろうね。
545 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 22:03:24 ] peter ahe のブログみてたら クロージャの文法っぽいpdf が落ちてた。 blogs.sun.com/roller/resources/ahe/closures.pdf クロージャ変換というのが提案されてて、 java.lang.Runnable みたいに 1つしかメソッドを持たない interface と 同じシグニチャを持つ クロージャは変換可能になるみたい。 (void() 型のクロージャは Runnable にも変換できるらしい?) ただこれ、java.uril.concurrent.Executor executor = ...; execurot.execute( (){ System.out.println("test"); } ); は コンパイラが暗黙に Runnable の匿名クラス作ればOKっぽいけど 例えば Runnable と似たようなインターフェイス interface MyInterface{ void method(); } があったときに void() closure = (){ System.out.println("test"); Runnable r = closure; MyInterface m = closure; とかされた時どーすんのかな? とか思った。 あと、null が正式に型に昇格する事も検討されてるらしい。 null.class とかできるようになるとか?
546 名前:デフォルトの名無しさん [2006/08/21(月) 22:30:15 ] nullがクラスになったらどういう事が出来るようになるの?
547 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 22:47:37 ] reflection とか型推論とか通常は値を返さない関数のように動くクロージャに必要って書いてあるけど、 よくわからん。
548 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 23:04:29 ] あ、判った。匿名クロージャは引数型は必要だけど戻り値型を書かなくていいらしい。 で匿名クロージャで return 文を書かずに、その匿名クロージャが中途完了する場合 (必ず例外投げる場合とか?)は戻り値型が null になるって事らしい。 正常完了する場合とか、引数無しの return がある場合は戻り値型 が void になるって書いてあった。
549 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 23:08:15 ] それって、戻り値が「必ず」nullになるんなら、nullじゃなくてvoidにしたらなんで駄目なんだろうか。
550 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 23:14:42 ] 戻り値が必ず null になる場合に void にしたら拙いじゃん。 Object closure() ってのがあって、 そのつもりで (){ return null; } って匿名クロージャ書いて 戻り値型を void にされたら適わん。
551 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 23:16:05 ] あれ? nullが型になるってことは、そういう場合は Null closure() って書かないといけないってことなのかと思ったんだけど。
552 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 23:20:07 ] よーするに、中途完了する匿名クロージャは、 値を返すクロージャと型の互換性が無いと拙いって事では無いかと。 値を返すメソッドを持った interface を書いて、 実際には必ず例外投げる匿名クラスを作りたいとする。 匿名クラスの場合は戻り値型があるから良いけど、 匿名クロージャは明示的に戻り値型を書けないっぽいので。 戻り値型を null にしておけば、どんな戻り値型のクロージャとも 互換性ができるのでは無いかと思う。たぶん。 仮にそーだとすると、null は void の上位クラスって感じになるのかな?
553 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 23:25:47 ] void の上位クラスっつーか、null は void と Object の上位クラスって感じか……
554 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 23:38:53 ] >>545 には、そんな難しい事書いてない。 値nullが存在する限り、値nullには型が必要ってだけ。 closureの文法では陽に書く場合があるので、これを機会に導入。 もともと型推論的には必要だったもの。
555 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 03:54:04 ] >>553 その辺はSubtypingのところに書いてあるな。 > A function type T is a subtype of function type U iff all of the following hold: > ・Either > ・The return type of T is either the same as the return type of U or > ・Both return types are reference types and the return type of T is a subtype of the return type of U, or > ・the return type of U is void. (以下、引数型や例外に関しての条件が続く) 以下の条件の全てをみたすなら関数型Tは関数型Uの下位型である。 ・以下の何れか ・Tの戻り型がUの戻り型と同じ ・二つの戻り型が共に参照型であり、Tの戻り型がUの戻り型の下位型である ・Uの戻り型がvoidである (以下、引数型や例外に関しての条件が続く)
556 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 04:20:12 ] Referencing names from the enclosing scope のところ見ると、 匿名クラスの時みたいに final 付けろって書いてあるね。
557 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 12:30:17 ] >>556 逆、逆。 匿名クラスのように、finalを*付けなくていい*と書いてある テキトーに訳してみると >> We do not propose a rule that requires referenced variables be final, >> as is currently required for anonymous class instances. 現在、匿名クラスのインスタンスに対して要求されているような、参照される 変数がfinalでなければならないという制約は提案しない >> The constraint on anonymous class instances is also relaxed to allow >> them to reference any local variable in scope. また、匿名クラスに対する制約も緩和され、スコープ内のどんなローカル変数も 参照できるようになる
558 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 12:35:56 ] >>545 > 例えば Runnable と似たようなインターフェイス > interface MyInterface{ void method(); } があったときに > void() closure = (){ System.out.println("test"); > Runnable r = closure; > MyInterface m = closure; > とかされた時どーすんのかな? とか思った。 closureをラップするクラスをそれぞれの代入に対して、自動生成すればいいんでない? Runnable r = new Runnable_closure_bridge(closure); MyInterface m = new MyInterface_closure_bridge(closure); みたいな感じで
559 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 19:35:52 ] >>557 あ、本当だ。嘘ついてすまん。 このスレの >>12 とかでも話題になってる変数の扱いとか、 どーなるんだろね? 後は VM に変更なしで実装できるんか?とか。
560 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 21:36:40 ] >>559 基本的には、ほとんどの機能はVMに変更なしで、コンパイラのみで 実装できると思う(ただし、クラスファイルフォーマットの変更は必要か?) ただ、クロージャの中からそれを囲む関数をreturnする機能 (Non-local transferの部分)はVM変更なしでやるのはつらそう 簡単に実装するには、例外を使えばいいだろうけど、それだと性能出ないだろうし
561 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 21:38:12 ] >>560 自己レス > クロージャの中からそれを囲む関数をreturnする機能 クロージャの中からそれを囲む関数の外側へreturnする機能、の間違いだ
562 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 22:11:08 ] Non-local transferは、p.5-6に記述がある。 その中でも>>560 が心配しているケースはUnmatchedNonlocalTranser例外になる。
563 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 17:50:22 ] journal.mycom.co.jp/articles/2006/08/23/java7closuer/ Javaにクロージャだって。
564 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 17:57:58 ] 上を見てみろ
565 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 18:05:27 ] ('A`)
566 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 18:49:28 ] 苦労じゃ
567 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 19:07:55 ] くだらん
568 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 19:49:51 ] で、結局このクロージャ内からローカル変数は参照できるの? それとも引数渡し?
569 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 22:18:36 ] 馬も出てないのになぜjdk7の仕様を気にするのか・・
570 名前:569 mailto:sage [2006/08/23(水) 22:23:10 ] あ、ごめんここ次世代スレだった スレ間違った
571 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 22:29:11 ] ん?なんでスレ違い?Java6はもうすぐ出るしここでもいいような・・・
572 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 00:48:51 ] Java6は、メンテナンスリリース色が高いからな。 今後も、偶数バージョンは小変更、奇数バージョンは大変更という感じになるみたい
573 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 01:01:50 ] だが、あいかわらず5.0update8でエンバグとかやらかしてるからなんとも・・・ Java2DのOpenGLがWin環境でもちゃんと動作するようになってるかが見もの
574 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 17:32:21 ] Java7でクロージャの導入か。 いまいちクロージャって理解できていないのだが、 「外側のメソッドのローカル変数にfinal がついていなくてもアクセス可能な匿名クラス」 が仮に認められたら、これはクロージャ?
575 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 20:48:36 ] >>574 ちょっと違うとおもう。 それよりもマルチスレッド下でローカル変数束縛するとスタック上の実体をコピーで解決するつもりだったらアウトだし ローカル環境を生かしておくとGCでメモリ断片化激しくなりそうとか厭な考えがよぎっちゃうんだけど、どういう風にするつもりなんだろう? HotSpotがSelf由来だと考えればなにか考慮されているのだろうけど、関連論文とか乗っかっている書き込みとか見かけた人いる?
576 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 21:00:11 ] スコープを変数化するのがクロージャって感じかな。 ECMAScript触ってると特にそう思う。
577 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 21:03:03 ] クロージャからのローカル変数のアクセスは暗黙的に排他すんじゃないの? それよりスレッドにクロージャを渡すような使い方は俺はしたくねーな
578 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 21:19:25 ] スタックを保存してヒープにもってくとかそんな感じ?よーわからんなぁ。 スクリプトだとthisの扱いがいつでもmixinって感じで使いにくいから クロージャ使わないとデリゲートにならないんだよな
579 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 21:52:28 ] 文書読んでみたが、並行性については特に何もやる気ないみたいだね 必要なら今まで同様プログラマが対処しろって感じ
580 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 22:47:06 ] Java in the BoxさんとこにJava 6では 「Server VM と Client VM の動的な変更」がサポートされるとあるんだけど これってSwingとかで文字列置換メソッドは Server VMでJITコンパイルできるとかそんなん?
581 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 23:46:44 ] クロージャはifやforの{}が引数と戻り値持った感じだと思う >>577 Rubyやってると割と普通な気がするんだが、どの辺がいやなの?
582 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 00:13:18 ] 匿名クラスでコンストラクタ定義できればそれだけでいいんだけどな。
583 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 00:23:38 ] そんなことより、Genericsの仕様、 さらなる変化は無いのか? パラメタライズドクラスを作るのが大変なんだが。 タイプセーフなため、配列と違って、List<Integer>はList<Number>のサブクラスにはできんし。 <>の中にさらに<>を入れ子に書いてとクラス設計が難しい。 パラメタライズされたクラスの継承でのパラメータの扱いといい、 慣れるのが大変。
584 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 01:32:15 ] 解ってないんだけど、ローカル変数ってもともとスレッド毎でしょ? マルチスレッドで、何の問題があるの? スコープ抜けたときにスタックからヒープにコピーすればいいだけじゃん?
585 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 03:48:23 ] クロージャってC++にも追加されるんでしょ? 流行ってるね
586 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 06:38:13 ] >>584 そのスレッドで、Runnableなオブジェクトを作って クロージャを引き渡したらどうなると思う? そういうこと。 また、今のListener系のような使い方をした場合、 マルチスレッドになるのは目に見えてる。 ただ、先の文書ではそこらへんは保証しないみたい。 主張を読むと、そういう場合は、今まで通り匿名クラスを使うか、 Javaで既に用意されてる並行性の仕組みを使えってこと。 なぜなら、そんなのを必要としない大多数の開発者には パフォーマンスが落ちるだけで有り難迷惑だから。
587 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 06:47:06 ] >>583 つワイルドカード List<Integer> ints = new ArrayList<Integer>(); ... List<? extends Number> nums = ints; //OK
588 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 10:19:17 ] >>587 List<T extends Number> nums = ints; はだめなのか
589 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 10:25:11 ] >>588 public <T> void aMethod() { List<T extends Number> nums; // } とかならTが型パラメータと分かるので可能だが、そうでなく唐突に Tが出ても未定義シンボルになる。
590 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 10:26:20 ] と思ったら出来なかったorz
591 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 10:45:45 ] >>582 いや、普通にできるが。
592 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 21:40:02 ] インスタンスイニシャライザではダメなんですたぶん
593 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 21:52:34 ] >>589 うーむ。Tの定義ってメソッドの頭かクラス宣言の後だったんだね。 継承使うとき、どうりで変だと思った class A<T> implements SuperA {} という表記はうまくいっても class A implements SuperA<T> {} はうまくいかず未定義といわれる。 当然、 class A implements SuperA<T extends Number> { は怒られる class A implements SuperA<?> { も怒られる。
594 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 23:08:22 ] 変なのはおまいの頭だと思うよ…
595 名前:デフォルトの名無しさん [2006/08/25(金) 23:21:55 ] いきなりむかつくこといいやがったなおめえ。 確かにgenericsにはまだまだ慣れていないが、 情報が少なすぎていつもGenericsで悪戦苦闘して こっちは大変なんだよ。 しかし、Genericsでパラメタライズされたクラスを 作ってる奴は少ないんだな。 2chでも稀なほうか。 C++Templateとは似てるようで違うためか、 使いこなせない奴も多いもんだな。
596 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 23:34:05 ] >>595 情報とか言う以前に仕様書を読めよ。 あと class A implements SuperA<T> {} なんか A を使うときにどうやって T が型パラメタか 普通のクラスか見分けるんだよ。少なくとも class A<T> implements SuperA<T> {} とやらないとパラメタ指定できないだろ。