1 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 06:27:39.32 ] プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 pc11.2ch.net/hp/ Webプログラミング pc11.2ch.net/php/ をご利用下さい。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 (p)ttp://www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド ★★Java質問・相談スレッド152★★ toro.2ch.net/test/read.cgi/tech/1329715551/
577 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 11:12:45.03 ] 全部をcatchせずにcloseするか判断するところまでthrowして、 そこでcatchしたらfinally内でcloseの方がすっきりしそう。 ライブラリやAPIの類が例外だしたらインスタンスの再利用はできないことが多いしw
578 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 12:46:42.40 ] >>576->>577 ありがとうございます 作ってるアプリのいくつかの機能で共通点が多かったので サブルーチンのようなprivateメソッドを作って メソッド1〜3はできるだけシンプルになるようA〜D内で完結させようとしてたんですが アドバイス読んで、まとめて受けるようにしてみました。 昔ちょっとC言語で遊んだだけだったので「例外出さずにfalseやnullで返してくれたら楽なのに」って思ってたんだけど 逆にそうされたらそこで毎回チェックしてクローズ処理しなきゃいけないわけで、まとめて受けられる例外の方が便利ですよね でもgotoっぽい性質もあって怖そうですね クラス修正前{ 機能1(){A;C;} 機能2(){A;B;} private サブルーチンA(){処理、例外処理} private サブルーチンB(){処理、例外処理} private サブルーチンC(){処理、例外処理} } クラス修正後{ 機能1(){try{ A;C; }catch(){ どこかでエラー発生 }finally{ クローズ処理 } } 機能2(){try{ A;B; }catch(){ どこかでエラー発生 }finally{ クローズ処理 } } private サブルーチンA()throw e{処理} private サブルーチンB()throw e{処理} private サブルーチンC()throw e{処理} private クローズ処理(){try{close()}catch{}} }
579 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 13:00:59.04 ] >>578 キャッチなしのtry{}finally{}を一つ入れるとキレイになりそう。
580 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 14:10:27.96 ] JDK 1.7 がインストールできません。 @Windows7(x64) Ultimate jdk-7u4-windows-x64.exe をD/L してダブルクリックしても インストーラのダイアログが表示されません。 jdk-6u31-windows-x64.exe だと、問題なくインストールされます。 jre-7u4-windows-x64.exe をインストールしてパスを通したりしてますが 状況は変わりません。 どなたかお助けを。
581 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 14:16:48.07 ] もう一回ダウンロード
582 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 14:31:40.15 ] >>581 ありがとうございます。 ダウンロードし直してみましたが、ダメでした。 ※1回目と2回目のファイルは同一でした。 困りました。
583 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 15:38:53.68 ] あきらめないで!
584 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 18:05:42.44 ] 質問です。以下の文をもっとスマートに書く方法ってありますか? swich文のcaseごとに同じメソッドを重複して書くのがちょっと微妙な気がするのです。 private void doWork(int stage) { switch (stage) { case 0 : break; case 1 : method_1(); break; case 2 : method_1(); method_2(); break; case 3 : method_1(); method_2(); method_3(); break; case 4 : method_1(); method_2(); method_4(); break; default : break; } }
585 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 18:12:30.28 ] >>584 なんか設計からして変な気がする。 のはさておき、重複して書くのは常に悪というわけではない。 読み易さのためなら有る程度の重複は許される。 スマートってのは読み易いということだ。 君がこれからやろうとしている事はコードゴルフの類いなので、 僕のスマートの定義ではこれ以上のスマートな書き方は無い。 むしろ設計を見直す。
586 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 18:13:48.87 ] 他に思いついたのは以下ですが、これも微妙な気がして。 private void doWork(int stage) { if (stage == 0) break; if (stage > 0) method_1(); if (stage > 1) method_2(); if (stage == 3) method_3(); if (stage == 4) method_4(); }
587 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 18:17:13.52 ] >>585 設計が変ですかね。確かに読みやすい気はしますが 記述的に無駄が多い気がして。
588 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 18:22:36.42 ] ほうら、スマートだろう? private void doWork(int stage) throws Exception { getClass().getMethod("method_" + stage).invoke(this); }
589 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 18:47:58.16 ] >>588 うーん、見た目スマートですけど コレジャナイ感がします。 設計が変というのはint stageごとにmethod()作れってことですかね
590 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 18:49:39.21 ] >>586 の方が良いだろ。 あと、ここに書くときは半角スペース2個を、全角スペース1個に置換しといて! private void doWork(int stage) { switch (stage) { case 0 : break; case 1 : method_1(); break; case 2 : method_1(); method_2(); break; case 3 : method_1(); method_2(); method_3(); break; case 4 : method_1(); method_2(); method_4(); break; default : break; } }
591 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 19:00:54.25 ] 頭の中でのイメージは、代入させるint stageの値によって doWork()内での処理ブロックの通過のさせ方を変えるような書き方をしたいんです。 たとえば、stageに4が代入されれば、method_1()を通過、method_2()を通過、 method_3()を飛ばしてmethod_4()を通過という処理をさせたいんですが、 これを視覚的にわかりやすく書けないものかとおもいまして。
592 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 19:36:16.90 ] ステートマシンだろ? どうせ複雑になったらわかんなくなるからステートマシン図をちゃんと描いて保存しておいて ソースの見やすさなんて無視でいいよ
593 名前: ◆b.MfON/oOo mailto:sage [2012/05/06(日) 19:39:51.48 ] >>591 どぅ? private void doWork(int stage) { if (stage == 0) break; if (stage > 0) method_1(); if (stage > 1) method_2(); if (stage >= 3){ if (stage == 3) { method_3(); } else { method_4(); } } }
594 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 19:42:31.76 ] int[] t = { 0, 1, 3, 7, 11 }; int x = t[stage]; if ((x & 1) != 0) method_1(); if ((x & 2) != 0) method_2(); if ((x & 4) != 0) method_3(); if ((x & 8) != 0) method_4();
595 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 19:54:54.81 ] >>588 > >>584 =>>590 > >>586 ≒ >>593 >> >>594 メンテする視点で考えんと
596 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 19:56:45.23 ] ナに言ってんだかw
597 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 19:58:06.49 ] Javaは>>594 みたいなことをする言語じゃないなとは思った。
598 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:03:19.01 ] >>592 画像のレイヤー表示的なことをしたいんです。でも同じようなもんですよね。 >>593 ああ、これは見やすいかもです。 >>594 う、頭から煙が。苦手な分野です。 またひとつ思いつきましたけど、いけてない気がします。 private void doWork(boolean flag_1, boolean flag_2, boolean flag_3, boolean flag_4) { if (flag_1) method_1(); if (flag_2) method_2(); if (flag_3) method_3(); if (flag_4) method_4(); }
599 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:06:38.47 ] そんなんならbooleanの配列でいいじゃん
600 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:11:31.57 ] >あと、ここに書くときは半角スペース2個を、全角スペース1個に置換しといて! なんで?
601 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:26:47.18 ] >>599 こうですか?わかりません。 private static boolean[][] stage = { //mth1 //mth2 //mth3 //mth4 { false, false, false, false },//stage 0 { true, false, false, false },//stage 1 { true, true, false, false },//stage 2 { true, true, true, false },//stage 3 { true, true, false, true } //stage 4 }; private void doWork(boolean[] flag_) { if (flag_[0]) method_1(); if (flag_[1]) method_2(); if (flag_[2]) method_3(); if (flag_[3]) method_4(); }
602 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:32:18.63 ] クズコード化プロジェクト?
603 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:35:27.09 ] >>602 ああ、、そんな気がしてきましたorz
604 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:36:03.79 ] どんな案が出てきたところで>>584 がメモリを少々食いつつも もっとも高速で実行できるということで良いですか?
605 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:43:03.77 ] 高速? 求めてたのはスマートな書き方じゃなかった?
606 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:46:17.41 ] そうだな。 コードゴルフではなく、>>591 は 「視覚的にわかりやすく書けないものか」 と言っている。
607 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:48:38.93 ] >>604 は私ではないですが、 見た目重複が少なく、視覚的にわかりやすい書き方を求めてます。 かつ、できれば処理的にも軽いほうがいいです。
608 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:50:03.22 ] 馬鹿には無理
609 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:57:16.37 ] >>608 そうでしょうか。 では>>585 でFAということにしようと思います。 お付き合いありがとうございました。
610 名前:デフォルトの名無しさん [2012/05/06(日) 20:57:23.54 ] \u3010 の形式を普通の文字にしたいのですが、 どうやるのが一般的なんでしょうか? \u除いてparseIntで文字コードに変換まではできたのですが、 そこからStringに戻すとこで躓いてます。 そもそもそんなめんどくさいことしなくても、 一発で変換できるような関数があるのでしょうか?
611 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:58:40.74 ] >>590 の条件はともかくステートマシンならこんな感じで作るわ // State間の情報は、Contextのオブジェクトで管理 Context context = new Context(); Stage1 stage1 = new Stage1( context ); Stage2 stage2 = new Stage2( context ); Stage3 stage3 = new Stage3( context ); // 各Stateが、doを実行した際返すStateを指定する。 // 例えば、doの結果が成功した場合の次のStateは、SuccessStateで指定し、 // doの結果がゲームオーバーした場合の次のStateは、GameOverStateで指定する。 stage1.setSuccessState( stage2 ); stage1.setGameOverState( stage3 ): // クラスによってどんなset〜Stateを持ってるかはバラバラ。この場合だと、実行完了後に必ずstate1に戻る stage2.setNextState( state1 ); stage3.setNextState( state1 ); // ステートの実行は、こんなループやら、イベントを使って実行する。 State state = stage1; while( null != state ) { state = state.do(); }
612 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 21:04:53.37 ] そういや、doって予約語だったな。うかつだった。
613 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:04:28.04 ] ステートをオブジェクトとして扱う必要あるか? それならもうストラテジーやコマンド使って設計したほうが綺麗だと思う。 ていうかなんのコードだっけ?ゲーム?
614 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:09:09.66 ] オブジェクトにする理由はこんな感じか 1.ステートの中にもステートが存在するし、ステート自体にも固有状態が存在する。 2.典型的なステートの再利用が可能になる。また、クラス追加による拡張が可能になる。 あと、基本構造はコマンドパターンだな。
615 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:18:01.48 ] >>613 匿名クラスが追加されてからは、メソッド内に 処理を埋め込めたりするんで記述がやや楽。 private State state1; private State state2; private State state3; state1 = new State{ public State action(){ return state2; } }; state2 = new State{ public State action(){ return state3; } }; state3 = new State{ public State action(){ return state1; } };
616 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:04:25.02 ] 何が求められているコードなのかにもよる メモリなのか速度なのか
617 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:06:29.55 ] そういうのはコードそのものの美しさなんかより文書や図と機械的に対応してるほうが重要だと思う
618 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:09:07.43 ] >>616 パフォーマンスなんて作ってからでいいだろ
619 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:12:37.75 ] (ノ∀`) アチャー
620 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:20:56.91 ] >>618 それはSI屋の発想な気がする。
621 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:21:14.06 ] え?
622 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:25:22.54 ] パフォーマンスなんて作ってからでいい (キリッ
623 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:34:08.56 ] >>619 =622 ? >>620 do you know "premature optimization is the root of all evil" ?
624 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:50:00.61 ] >>623 一年生かなんかだろ。そういう時期もあるさ
625 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:51:37.98 ] >>601 ↓ private void doWork(int stage) { boolean[][] flag_ = { { false, false, false, false }, { true, false, false, false }, { true, true, false, false }, { true, true, true, false }, { true, true, false, true } }; if (flag_[stage][0]) method_1(); if (flag_[stage][1]) method_2(); if (flag_[stage][2]) method_3(); if (flag_[stage][3]) method_4(); } ↓ >>594
626 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:53:54.24 ] >>624 無駄に速度に拘ってプログラム完成させられないやつって初心者〜中級者に多いよな
627 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:55:44.05 ] ありがちだわな
628 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 00:00:49.77 ] パフォーマンス改善しました! →ほとんど誰も使わない機能でした パフォーマンス改善しました! →計画が変わってリリースされませんでした パフォーマンス改善しました! →「どの位速くなったの?」「さあ、わかりません」
629 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 00:01:48.02 ] パフォーマンス改善しました! →コードが汚すぎてメンテ出来ません
630 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 00:06:01.55 ] プログラミング言語 Java のコンセプトを考えれば分かる罠
631 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 00:12:22.11 ] 最初から最適化意識しなきゃならん状況ならC++つかうわな サーバーサイドだってサーブレットなんて使わずfcgi使うだろうし
632 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 00:17:35.13 ] 速度にこだわるならjava使うのやめましょう
633 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 00:19:33.84 ] Javaは充分速いだろ たしかに最速じゃないけど確実に上位だ。
634 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 00:27:31.79 ] 言語レベルの問題じゃなくて、ライブラリモデル(アルゴリズム)の問題なんだけどな C++と大体似たコード書いて、newとか動的確保を最小限に抑えれば、C++に近い速度は出る ただ、普通に使うとStringを始めライブラリがnewした領域に値をコピーするスタイルを取ってるもんで、 文字列やコンテナの一部をイテレーターで保持しとけばいいだけというケースでは大きく速度を引き離される 極力無駄なコピーを減らせばいいが、そんな事をすればJavaの標準ライブラリが逆に足かせになってしまう
635 名前:デフォルトの名無しさん [2012/05/07(月) 00:41:59.70 ] private <A, B, java.lang.String> void test(List<java.lang.String> l){ } なんでメソッドの定義でだけjava.lang.Stringって書けないんですか? 引数のList<java.lang.String>はエラーが出ません private <A, B, String extends java.lang.String> void test(List<String> l){ } とかしておけばいいんですか?
636 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 01:57:26.50 ] 型パラメータにクラス使われたらワケワカメだろ
637 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 04:36:35.47 ] ステートマシンの実装ならinvokeDynamic使うのもいいぜ
638 名前:デフォルトの名無しさん [2012/05/07(月) 15:45:18.41 ] Forte for Java ってどうなったんですか? フリーの統合開発環境でこれDLしなさいと言われたのですが、名称が変わったのでしょうか?
639 名前:638 [2012/05/07(月) 15:47:16.93 ] ちなみにWindows7 Enterprise 32ビット版です 他にお勧めなのとかあったら教えてください
640 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 15:55:30.44 ] 他にじゃなくてeclipse一択
641 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 17:27:13.20 ] >>638 ja.wikipedia.org/wiki/NetBeans#.E6.AD.B4.E5.8F.B2
642 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 17:37:30.95 ] Javaでエンジニアやってる派遣です。 某自動車メーカーに派遣切りされて生きていく希望がありません。 派遣会社からも全然新しい配属先を紹介していただけません。 どうすればいいでしょうか?
643 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 17:46:40.52 ] さあ おれに質問されてもなあ…
644 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 17:49:30.47 ] いたちがい
645 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 17:58:02.04 ] >>640 NetBeansもあるだろ。 ま、ここで質問する奴にはEclipseの方が向いてそうだからいいけど。
646 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 18:28:31.53 ] >>643 ,644 質問じゃなくて相談してるのです!スレタイに相談ってかいてあるじゃないですか!
647 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 18:28:55.41 ] >>640 >>641 ありがとうございました
648 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 19:23:55.74 ] ttp://sunjava.seesaa.net/category/3648259-1.html ここを参考に勉強中なのですが以下のようなエラーが出て行き詰っています。 自分なりにぐぐってみたりはしてるのですが解決策が見つからず困っています。 AccessのODBCドライバが32bitしかないようでしたので、odbcad32.exeからデータソースは登録されています。 どなたかご助言を頂けないでしょうか。 別スレで質問したのですがこちらのスレの方が適切だと思いましたので、改めて宜しくお願いします。 環境:Win7 64bit Java SE6 エラー内容:[Microsoft][ODBC Driver Manager] 指定された DSNには、ドライバーとアプリケーションとのアーキテクチャの不一致が含まれています
649 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 19:54:23.55 ] ウインドーズ環境なのでマイクロソフトの有料サポートに電話をすれば解決します。
650 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 20:20:59.41 ] 口周りは青くて顎鬚は濃かったよ
651 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 20:29:46.67 ] Windows2000のマシンにJava runtimeを入れたいのですが、Version 6 Update 32 は サポート対象から外れたのか、インストールに失敗してしまいます。 Version6 の最初の方のUpdateはインストール出来たと思うのですが、Windows2000を サポートしている最後のJava runtimeのUpdateは何でしょうか?
652 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 20:49:19.61 ] Windows 2000マシンは結局ウインドーズ環境ですよね? マイクロソフトのジャバ部門に電話して有料サポートを受けましたか?
653 名前:デフォルトの名無しさん [2012/05/07(月) 21:26:13.26 ] >>651 javaSE6リリースノート-サポート対象のシステム構成[java.sun.com/javase/ja/6/webnotes/install/system-configurations.html] を見ると、Windows2000SP3とSP4でサポート対象になってるみたいですよ。
654 名前:デフォルトの名無しさん [2012/05/07(月) 21:47:23.98 ] >>651 ここから前のバージョンへ遡って実際にいれて試したらどうですか? www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html
655 名前:デフォルトの名無しさん [2012/05/07(月) 23:49:02.49 ] 初心者ですが、失礼します。 データベースからデータ読み込むためにSQL文で select*from テーブル名 where 主キーの列名 ? and ?; として、バインド変数の?の部分には主キーの最初の行の値と最後の値を 入れて、すべての行を順に取り出すことは可能ですか? 可能だとしたら、どのように?の値を設定すればよいのでしょうか? 最初の行と最後の行が特定できる状況で、その値をそのまま指定するのはなしで お願いします。
656 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:51:50.90 ] select * from テーブル名 where 主キー between ? and ? order by 主キー こんな感じ?
657 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:52:28.73 ] PreparedStatementでググれ 最近これ使ってるの見ないけど
658 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:58:20.06 ] テーブル内のすべての行を条件無しで取りたいっていう意味なら select * from テーブル名 だけでおk
659 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 00:04:07.71 ] 質問嫁
660 名前:デフォルトの名無しさん [2012/05/08(火) 00:07:18.24 ] >>658 select*fromテーブル名 だと、一気にすべての行が取り出されるということはないでしょうか? 1行ずつ取り出すたびに処理を行ってから次の行という感じで回したいのですが・・・。 条件を指定する例や挿入の例はググると多いのですが、無条件の例が見当たりません。 最初の行と最後の行の値を(変数のような方法?で)指定できないでしょうか?
661 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 00:13:00.57 ] whereで全範囲を指定しても同じだぞ だって意味的に同じだし
662 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 01:02:08.13 ] どんなググり方したのかお兄さんに教えてごらん
663 名前:デフォルトの名無しさん [2012/05/08(火) 01:21:37.45 ] なるほど。 言われてみれば意味的には同じですね…。 手元にデータないんで明日試してみます! >>662 バインド変数 条件値 パラメータ 値の設定 PreparedStatement.set などでググってたんですけど力及ばずでした。
664 名前:デフォルトの名無しさん [2012/05/08(火) 10:57:26.80 ] GoogleによるJava著作権侵害裁判、ほぼOracleの勝ちが確定、崖っぷちAndroid、どうするコマンド? engawa.2ch.net/test/read.cgi/poverty/1336439613/
665 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 11:18:31.35 ] グーグルが関わって作ったサービス(グーグルアプリ)って結構終了しちゃったよね。 ワールドワイドで優秀なプログラマー集めていた割には、三年以上持ちこたえてるサービスってグーグルマップかユーチューブとか買収したのだけになっちゃったね。
666 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 11:21:43.94 ] j++(だったか?)が駄目ならandroidも当然駄目でしょ
667 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 11:47:41.06 ] いろいろな意味でグーグルはそのうちフェイスブックに買収されるんじゃないのかなぁ。 せっかく手に入れたのにモトローラーどうするんだろう・・・
668 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 12:13:04.82 ] Dalvik仮想マシン(VM)も Java も改変しちゃったらアウトだろw
669 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 12:23:26.90 ] >>664 そのすれ、ソニー(psp, ps vita, ps3(mono))のステマがいるみたいだけど、最近のソニーの開発部門はc# monoのマーケチングに力入れることにしたの?
670 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 16:05:09.80 ] ちゃんと金払ってJVM版のAndroid作ればいいんじゃね。 Googleにその金があるか分からんけど
671 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 16:19:41.76 ] document.write('<param name="movie" value="index.swf' + n + '" />'); きれいなスライドショーサイトのソースを見たらこうなってたんですが index.swf' + n + '" 'ってどういう意味ですか
672 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 17:01:31.32 ] WindowsでSwingでマウスを使ったゲームを作りたいのですが、 マウスカーソルを指定位置に移動させるにはどうすればいいでしょうか?
673 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 17:15:51.48 ] java.awt.Robotクラスを調べろ
674 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 17:17:19.50 ] >>671 それjavascript しかも、nはソース書いた奴に聞け。
675 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 18:28:10.63 ] そうですか ありがとうございます
676 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:01:03.17 ] >>669 vita以降の開発環境がmonoで対応プラットフォームがvitaとPlayStation Suiteだから営業が頑張ってるんだよ。 PSSはせっかくdalvik捨てたのにH/W制限して遅いしAPIもUIもAndroidと大差ないよ。 mono自体HotSpot比べられるもんじゃないし。あとマルチバイト文字通らない。 vitaの市販ゲームはC#ネイティブだから別の話だけど。
677 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:13:25.05 ] ていうかAIPが問題なんじゃなくてVMに互換性がないことが問題なのになんでoracleはそこ主張しないんだ。
678 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:18:30.08 ] 使用料をケチるより、もっとあくどいコト考えてそうだな > Google
679 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:35:33.91 ] >>678 そのすれにポツンと書いてあるからもう知ってる人多いんじゃないの?
680 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:47:43.94 ] >>679 kwsk
681 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:51:24.26 ] >>677 APIに著作権があるかとかのこと? というかそれ、知らない人向けのIT,WEB技術系向けのネタだし、もっと騒いでもらって新聞やテレビなど一般人向けでもっともっと取り上げられて 「オラクル」「ジャバ」の商標とか(クライアント・グーイ向け)プラットフォームを一般人に広く公知できれば十分○○のもとがとれる。
682 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:05:35.36 ] >>680 Google 「API は著作権保護対象ではない」 ↓ 「Google製の Java互換言語!」 と主張できて、Google(゚д゚)ウマー!!
683 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:13:37.31 ] J++ってのは、++がさらに増えてJ#に進化して今じゃ.NETの一つなんですよね?
684 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:28:24.53 ] >>681 oracle:APIはプロプラエタリでsunから買ったからgoogleが侵害してる。 google:javaの商標や権利は買い取ったけどAPI買ったわけじゃないだろ。 googleの証人sunの元CEO:javaはオープンソースだからAPIはプロプラエタリじゃない。GPLコードだ。 oracle:TimSort.javaの配列の範囲チェックする9行が一致してる。特許侵害だ。 Timsort書いた人:PythonのTimSort移植してOpenJDKに寄与した後にandroidに関わったから範囲チェックも似てるかもしれない oracle:ほら認めたぞ。金払え。 googleの弁護士:特許侵害だとするAPI作ったのはJCPだけどJCPはどこにも対価要求してないよね? 8週間かけてこういう事やってる。
685 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:36:43.83 ] >>683 J++が進化したのはC# J#は独自拡張の多いJ++とは全く違って.NET上にほぼ純粋なJavaを実装したもの
686 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 21:24:43.62 ] >>684 DOCOMO(テレホン大手), SONY(コンテンツ大手), IBM(インテグレート大手)などは、サン(元オラクル)にジャバのライセンスを支払ってるけど、グーグル(広告大手)は支払ってないでしょ。それについて両者は何ていってるの?
687 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 21:37:44.30 ] >>684 APIを実装したライブラリなら著作権が働くのは解るが、 API自体に著作権って効果あったのか? Wineとか、GPLによるAPI実装がマズくならね?
688 名前:デフォルトの名無しさん [2012/05/08(火) 22:43:58.27 ] >>655 「すべての行を順に取り出すこと」をしたいなら ttp://idocsq.net/page/428 とか?
689 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 22:45:46.06 ] >>686 元々javaの商標を商用利用して実行環境提供する時に商標使う金と互換テスト用のTCK使用料があって、 商業として実行環境に対しjavaの名とコーヒカップとDuke使うのに金払う必要があったんであってjavaの実装と Dukeはオープン化したから実装使うことに問題はないしsunは有料サポートと組み込みに載せることで収益化してたから Sunがjava持ってた頃は何も言わなかった。 そもそもandroid自体harmonyベースだしdalvik VMは仕様も実装も自前でコードはApacheとGPLでカーネルはlinuxだから問題ないんだけど、 goslingが言語はjavaでもTCK通ってないから実行環境に互換性がなくてSEもMEも動かないことに怒ってたくらい。 これがoracleはライセンス料をスルーする手段だと主張したけど、googleは自分たちがjavaを持つ手段を模索してandroid買収したから ライセンス云々のためじゃない。(gPhoneにjava載せるためにクリーン実装してライセンス料払うか考えたけど丁度androidがあった) oracleはJavaFX phoneがコケたから特許を主張して金取ろうとしてるだけだと平行線。(当時はNokiaがトップでnokia端末にFX載せてた) だからgoogleがフェアユースかどうかがまだ決まってない。 それに加えてoracleはjavaを買い取った時に全てを買い取ったからAPIも含まれて、それは特許に守られてるから金払えと主張してる。 それに対してAPIはoracleが持ってる特許に含まれないとgoogleが主張して平行線。 今の論点はオープンソースコードがプロプラエタリで独占的で特許も発生するか揉めてるところ。 そこでドキュメンテーションにコピーライトが書いてあるからAPIも特許に含まれると主張してるのがoracleなんだけど、 仕様と実装を挿げ替えてるわけだから論点が噛み合ってないまま持ち越し。 >>687 んでこれを踏まえてAPIは特許で守られてるのか陪審員が決めかねてるからそれをこれから決める。 要するにOSI認証ライセンスが特許で覆されるかどうかの争いになってるからいま騒ぎになってる。 javaのAPI使って実装されてるJVM言語が全部ダメにからそっち界外じゃ脅威だよ。OpenJDKのクラスパス例外も根本から破堤する。 googleが負けたらOSI認証ライセンスが役に立たなくなるからWineとか訴えられて全部ダメになる可能性もあってそっち方面も騒いでるよ。
690 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 22:49:41.02 ] 改行ヘタ杉
691 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 22:56:11.48 ] javaが本当に出始めたときに心配したことが、まさに今問題になってるってことか。
692 名前:195 mailto:sage [2012/05/08(火) 23:06:06.64 ] >>207 ありがとうございます。! staticブロックは目からうろこでした。
693 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 23:12:15.82 ] いえいえ
694 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 23:14:23.02 ] >>673 ありがとうございます。 FPSみたいなもの作っているのですが、もしかしてJavaには無いんじゃないかとヒヤヒヤしてました。
695 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 23:34:51.71 ] >>689 著作権と特許権は別物ですよ。 とくに創作・著作物についての権利と侵害のクレームのための権原は、特許権と違ってどこかに申請してレジストするようなものではありません。 長文をグダグダ書いてみても、法律をしっかりと勉強したこともない一般人と同じくあなた自身もよく分かってないようなので、このネタを追いかけるとしてもこれ以上の議論に踏み込むのはあなたの知的レベルじゃちょっと難しいんじゃないですかね。
696 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 23:38:50.86 ] この一連の訴訟と APIは特許じゃないのが業界の共通認識 って話がどう関わってるか今ひとつわからん。 そんなんをOracleが訴えても負けるの明らかだろうから 本質はもっと別のところにあるんだよね?
697 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 00:03:35.94 ] グダグダそのまま行くとグーグル弁護団の術中にまんまとはまっちゃうと思いますよ。
698 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 00:55:37.49 ] >>696 著作権侵害の方は一部認められたけど特許侵害が認められなくて応戦してるってのもあるんじゃないの? API仕様が技術盗用と言ってるから特許ってことにしたいんだろうし7件特許侵害で攻めるところを2件で攻めることになったし。 その共通認識に関わる裁判で著作権で喧嘩売ったことはあっても特許で喧嘩売ったことはなかったからネタにされてるのもあると思う。
699 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 08:17:37.44 ] GoogleとOracleがいつまでも喧嘩していると、 Java以外の陣営に塩送っているようなもんだと思うけど… どっちも協力しようなんて気はないんだろうな。
700 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 08:38:50.92 ] >>699 Oracleも十分儲かってるのに、ちょいとがめつい感じするな。
701 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 11:24:42.11 ] >>693 またお前か
702 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 11:39:54.78 ] PC等 [プログラム] 【License】ライセンス総合【利用許諾】 toro.2ch.net/test/read.cgi/tech/1266247461/
703 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 21:02:38.73 ] 質問。packageは、開いているか閉じているか? どっちよ? ・開いている・・・既存のpackageにいくらでもclassやらinterfaceを追加してよい ・閉じている・・・一度リリースしたpackageには何も追加してはいけない どっちでとらえるかによってpackageスコープの意味が変わるよねぇ。
704 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 21:05:13.31 ] 誤解を招きそうなので訂正 ・開いている・・・既存のpackageにいくらでもclassやらinterfaceを追加してよい ・閉じている・・・既存のpackageには何も追加してはいけない
705 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 22:09:30.86 ] packageにクラス追加していいか否か決めるのはJARファイル提供者でなかったっけ。 確かMANIFESTファイルで指定する。 それとは別の倫理的な面で、package利用のライセンスの確認は必要。
706 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 22:17:22.94 ] 「既存のpackage」 って言ってるのに・・・
707 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 23:54:49.64 ] 既存パッケージのJARファイルのManifestにシールが張ってなければ、 既存のパッケージの名前空間にあとからユニットテストクラスとか追加し放題だったような
708 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 00:37:06.77 ] 最近勉強始めて、やさしいJava3版が中古で売ってたんで買おうと思うんですが、あんまり古い教材だとよろしくないですか?
709 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 01:03:24.38 ] 入門書なら古い新しいはどうでもいいだろ 知識がつけばググって最新版の機能を補完できるようになる それより、入門書としてまともかどうかが大事 最新でも嘘だらけのクソ本じゃ意味ない むしろJavaが無名だった頃の方がしっかりしてる事もある 当時のパイオニアが書いてるからな
710 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 01:13:29.18 ] >>707 シール機能があること初めて知った。 なるほどね。逆を言えば、シールしてなければ追加しても構わない という意思表示もできるわけか。(シール使ってる人ほとんど居なそうだけど) 社内で複数jar作る場合とか、分散可能なパッケージか 分散しちゃいけないパッケージかって管理できるわけだ。
711 名前:デフォルトの名無しさん [2012/05/10(木) 01:25:29.57 ] >>709 ありがとうございます!
712 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 07:30:44.63 ] >>710 泥棒に入られたくないために鍵があるのか、 なら鍵がかかっていなければ泥棒されてもいいって意思表示なんだな。 飛躍してね?
713 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 07:59:16.63 ] native2asciiの質問なんですが、あれってサロゲート領域の文字に対して何か 気をつけることってありましたっけ? 中国のU+21300の文字をUTF-8で埋め込んでnative2asciiすると\ud844\udf00と処理 されて、サロゲートに変換しているようなんですが これにnative2ascii -reverseをすると、そのまま\ud844\udf00が返ってきてしまいます。
714 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 08:01:32.29 ] そもそも、自分のパッケージじゃないのに追加する意味がわからん。
715 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 11:43:41.13 ] ウェブサイトに掲載されているプログラムで解らないことがあるのですが、ここで質問してもいいですか?
716 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 11:44:50.22 ] まかせろ
717 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 13:32:05.40 ] 簡単なことなら誰かが答えてくれる 難しいことはスルーされる
718 名前:715 [2012/05/10(木) 14:27:58.12 ] class Kanzen { public static void main(String args[]) { int n; for(n=2; n<1000; n++) if (Test(n)) ・・・@ System.out.println("完全数 : " + n); } static boolean Test(int n)・・・A { int i,k; for(k=0,i=n/2; i>0; i--) if (n%i==0) k+= i; if (n==k) return true;・・・B return false; ・・・C //else return false; } } プログラム超初心者です。 2〜1000までの完全数を計算するプログラムで 計算内容は理解できるのですが、プログラムの構造と流れが理解できません。 @〜Cがどういった役割をするのかと処理の流れを教えてください。
719 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 14:39:31.93 ] 関数とかメソッドでググれ どうでもいいけどC脳すぎるだろあんまり当てにしないほうがいいぞそれ Cにしたってkをforの中で初期化する意味がわからん
720 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 15:02:15.09 ] s=0; for(k=0; k<10; ++k) s+=k+1; assert s==55; 最新のjdk(java7)の言語機能や提供ライブラリを使っても、1から10までの和(有限個数のsum)はこの古典的なfor loopの方法しかないのでしょうか?
721 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 15:11:52.73 ] 小学校か中学校、 最悪でも高校では数列の和について何か習うんじゃね?
722 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 15:16:34.63 ] 完全数ってなんだ?
723 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 15:31:56.52 ] 公式が使えるならわざわざプログラムなんかしません。 本当は内積(級数)や加算集合、外部イテレーションの論点なんですけど簡単に書きすぎたので逆に何の分からないですね。 本当はfuncの定義は任意で、例えば簡単にx+1とすると1..10の和と同等ですが。 func=(int x)->x+1; s=0; for (k=0; k<10; ++k) s+=func(k); assert s==55; 最新のjdk(java7)の言語機能や提供ライブラリを使っても、1から10までの和(有限個数のsum)はこの古典的なfor loopの方法しかないのでしょうか?
724 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 15:36:32.97 ] >自然数nの約数の和S(n)が2nとなるとき、nは完全数であるといわれる。たとえば、6や28は完全数である。なぜなら > > 2・6=1+2+3+6 > > 2・28=1+2+4+7+14+28 > >だからである。S(n)が2nより大きいときは過剰数、S(n)がnより小さいときは不足数とよばれる。
725 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 15:38:22.12 ] >>723 "珠玉のプログラミング"と言う本の最初のエピソードを読め。
726 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 15:47:30.17 ] Programming Pearls, Second Edition by Jon Bentley. Addison-Wesley, Inc., 2000. [new] What's new on this web site? From The Book Table of Contents Preface Part I: Preliminaries Column 1: Cracking the Oyster Column 2: Aha! Algorithms [Sketch] Column 4: Writing Correct Programs [Sketch] Column 5: A Small Matter of Programming [Sketch] Part II: Performance Column 7: The Back of the Envelope Column 8: Algorithm Design Techniques [Sketch] Part III: The Product Column 14: Heaps [Sketch] Column 15: Strings of Pearls Epilog to the First Edition Epilog to the Second Edition Appendix 2: An Estimation Quiz Appendix 3: Cost Models for Time and Space Appendix 4: Rules for Code Tuning Solutions for Column 1 Column 5 Column 7 Column 15 Index
727 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 18:54:37.05 ] 日本でアルゴの第一人者(著名人)の一人言えば奥村先生だから、奥村先生あたりがこういうたぐいのムック本やアルゴ・チップス記事や連載コラムを執筆してくると、日本語のままで安心して知識を吸収できるんだけどな。 読者が現場やプロレベルだと、新聞・雑誌コラム感覚で書いてみても数学の月刊誌とちがってわざわざ毎月お金だしてまで情報を得ようと思わないから、広告付きブログとか、書籍・ムック本しかないんじゃないかな。 著名カリスマな「フォトショップ達人が伝授する○○」のテクニック本みたいなのとおなじ。 それよりも、奥村先生のJavaによるアルゴは本がボロボロになるほど読んだので、次というか続編はJavaによるパラレルアルゴの現代的計算方法とトポロジーやグラフ・多重化など比較的新しいデータ紹介や海外論文手法(辞典)をそろそろ読んでみたいなあなんて思います。
728 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 19:22:37.61 ] >>722 奥村先生。2chで宣伝してないで仕事してください
729 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 22:30:19.97 ] >>712 他人のパッケージに追加って話じゃなくて、 俺のシールしてないパッケージは拡張していいよって 自分で拡張許可を示すのに使えるって言ってるの >>714 赤の他人じゃなくて、社内とか自分一人とかの範囲の話。 配布するとき、自分が持ってるライブラリをフルセットで 配布する理由じゃなく、必要な分だけ小分けして配布するじゃん。 その時、jar毎にパッケージが閉じてたら、同じパッケージにあるべき クラスやインターフェースを別のパッケージに置かなきゃいけないでしょ。 例えば、Model用のパッケージを用意するとして、 com.example.x.model、com.example.y.modelとjar毎に分けるより Modelは全部com.example.modelの下に配置した方が パッケージスコープも生かせるし便利でしょ。
730 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 22:50:31.23 ] >>718 わかりづらいのは括弧を使わない書き方だからなのかと思って、冗長かもしれないけど中括弧と適宜追加した。 計算内容は理解できるってことだからコメントもいらなさそうだけど書いといた。 入門編がクリア出来ればいつの間にかサクサクできるようになってるさ。 ttp://ideone.com/9O3pd
731 名前:デフォルトの名無しさん [2012/05/11(金) 00:02:48.36 ] >>730 質問者ではないのですがhttp://ideone.com/9O3pdを見させてもらいました。 なるほどと思いました。 初心者にも優しい方がいて嬉しいです。
732 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 00:24:10.34 ] >>730 マイクロソフトでびんぐれば誰でも六十秒以内に答えにたどりつけるので、あなた自身がコーディングやアップロードなどそういうどうでもいいことに六十秒以上の時間を掛けることは親切というよりもむしろ余計なお世話だと思いますよ。
733 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 12:22:11.36 ] 2chコピペブログ管理人が集まるスレ26 toro.2ch.net/test/read.cgi/blog/1329800848/
734 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 13:55:58.00 ] PatternとMatcherの動作についてわからないことがあるので質問させてください public static void main(String[] args) { Pattern pattern = Pattern.compile("^・"); Matcher matcher; matcher = pattern.matcher("・あ"); boolean m = matcher.matches(); System.out.println(m); } これでfalseが出力されるのは何故なんでしょうか?
735 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 13:58:00.22 ] 自己解決しました
736 名前:デフォルトの名無しさん [2012/05/11(金) 13:59:27.58 ] 素直に思いやりの心を尊しと思う
737 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 14:43:58.53 ] 素直に馬鹿だと思う