1 名前:テンプレ(1/3) mailto:sage [2009/11/21(土) 17:58:46 ] プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 ttp://pc11.2ch.net/hp/ Webプログラミング ttp://pc11.2ch.net/php/ をご利用下さい。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 ttp://www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド ★★Java質問・相談スレッド133★★ pc12.2ch.net/test/read.cgi/tech/1253376151/ 次スレは>>950 あたりで。 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 ttp://www.wikiroom.com/java/
708 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 21:17:29 ] >>700 ゲームが作りたいのではなくて、Javaが使えるようになるために とっつき易いゲームを選ぼうとしているだけです。 アマゾンでは >javaの本ではなくゲームプログラミングの本なのでこの本でjavaを勉強したいという人にはオススメできません とコメントされているようです・・・。 一度立ち読みでもしてみます。 ありがとうございました。
709 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 22:11:25 ] Javaのシステムってスレッドを多重化することでパフォーマンスがあがるといいますが、 CPUは数個しかないと思うので、100スレッド多重としてもあまり意味がないと思います。 何多重にすればよいのかは、どういう計算で求めるとよいのですか?
710 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 22:11:31 ] >>677 それは他言語で実務経験があるとはいわない。 VB.netに手が馴染まなかったのなら、java,c#ともやっても馴染まないだろう。 どの実務があるか知らないけど、最新PCを買ってlinux(virtualpcとかでも)のcでopenglやgtk+をやるといいと思うよ。 javaなら英語のチュートリアルだけど、もし読めないなら5年以上この業界にいるのに英語も読めないのだからもうあきらめた方がいい。
711 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 22:16:46 ] ベンチマークして求めればいい
712 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 22:25:17 ] >>709 何かの本にはCPUの数+1くらいと書いてあった
713 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 22:29:36 ] javaでゲームとか言い出しても実際はjoglだしね。 c#だとdirectxでこれも使う言語に関係ないし。
714 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 22:48:00 ] >>710 は何で偉そうなの?
715 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 22:59:27 ] >>703 JavaのCloneableは失敗作 コピーコンストラクタでおk 詳しくはEffective Javaを参照
716 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 23:04:06 ] 英語すら読めないならjavaなんぞ無理だな
717 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 23:07:57 ] 海外で暮らしてた俺ならJavaは余裕ってことか?
718 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 23:11:16 ] アフリカ辺りですか?
719 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 23:12:40 ] いや。韓国ですOrz
720 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 23:36:39 ] ・・・
721 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 23:59:27 ] 英語できるような賢い子がなんで底辺プログラマなんてやってんの?
722 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 00:02:59 ] でも辞書引きながらでも英語よまないと情報全然足りないじゃん
723 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 00:04:10 ] アメリカ行けば英語できるのに底辺の仕事やってる奴が掃いて捨てるほどいるぞ。
724 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 00:05:09 ] 今時、英語も読めないんなら底辺プログラマーすらやってられないのよ。
725 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 00:06:12 ] その前に日本語勉強して下さい^^;
726 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 00:07:10 ] >>718 イギリスです
727 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 00:14:26 ] >>724 で、英語も出来て月給はいくらもらえるんですか?
728 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 00:25:53 ] >>699 メソッドはクラスがロードされる時だろうね。
729 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 00:46:37 ] >>708 ゲームって(もちろんものによるけど)結構特殊なので、Javaを学ぶ目的には あまり適してないと思うんだけどね。 例えばゲームループって呼ばれる手法、WindowsSDKを生で使う場合には 普通にGUIのアプリを作るにも似たようなことするんだけど、 Javaで同じことする場合にはライブラリが隠蔽してくれてるので気にする必要なかったりとか。 で、入門書にはそういうゲームに特化したテクニックはあまり書いてないだろうし、 普通のJavaの使い方はそれとは別に覚える必要があると思うし。
730 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 00:54:40 ] >>704 CommonsのLangにそういうのあるみたいね。使った事ないけど。 commons.apache.org/lang/api-release/org/apache/commons/lang/SerializationUtils.html#clone (java.io.Serializable)
731 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 00:56:49 ] ゲームってのは、言語+英語+数学がある程度できないと無理。 javaとかc#とかライブラリ的なところはあまり重要でない。
732 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 00:58:29 ] 何故英語?
733 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 01:02:53 ] 英語英語言う奴とコミュ力コミュ力という奴の中身はだいたい同じ
734 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 01:02:56 ] ゲームのテクはほとんど英語で書いてある。 実際は、業務アプリの数十倍の努力が必要。
735 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 01:10:22 ] まあ、英語に比べれば Java なんて 1000倍易しいな。 で、Java に馴れるには、まずは List や Map をごちゃごちゃとこねくり回すような題材がいいな。
736 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 01:14:14 ] で、数十倍の努力してお幾ら稼いでるんですかね。
737 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 01:15:09 ] 海外のサイトから情報が汲み取れないバカのためにここがある
738 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 01:15:15 ] Javaはチュートリアル(英語)で挫折するかどうかだろ。 それで挫折するようなら見込みないし素直にC#(かVB)にしろ。
739 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 01:18:08 ] 英語英語言ってる奴が日本語読めない事はわかった
740 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 01:19:18 ] オブジェクト指向の本はJAVAの方が揃っているから JAVAのほうがいいと思う
741 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 01:20:58 ] 低学歴+底辺無能+日本人は、C#(マイクロソフト)を使ってIT土方として一生汗を流してればよろし。
742 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 01:22:36 ] 僻みっぽいスレだな
743 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 01:30:13 ] >>741 在日乙
744 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 01:37:11 ] >>741 みたいな奴って、どの板にもいるね ゴキブリみたいにいっぱい繁殖してるの?
745 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 02:08:16 ] >>705 すみません。よくわかりません。 Object型にキャストしたところでObject#cloneはprotectedだし、なんらかのcloneを呼べる型にしないとダメなのでは >>707 それも同等の問題でできあませんね >>706 Shapeならそれで済みますね。new Area(Shape型)で >>715 失敗作ですか・・・今回のディープコピーでの手こずりでJavaをちょっと嫌いになりました。好きだったのに・・・ 皆さんありがとうございました。 結局今回は、インスタンスの型がある程度絞られていたのでめんどかったけど、>>703 の方法で実装しました。
746 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 02:11:09 ] >>744 ゴキブリにはコンバットがよく効く コンバット置いてから俺の部屋でゴキブリを見たことがない
747 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 02:58:46 ] >>715 見てEffectiveJava読み直したんだけど、コンパイル時に型が決まってないと駄目だとか protectedだからリフレクションで云々とか、正に>>703 が直面してる問題がそのものだね。 ちなみにリフレクション使うんだったらやりたいことはこうかな? Method method = Object.class.getDeclaredMethod("clone", new Class[] {}); method.setAccessible(true); Shape cloned = (Shape) method.invoke(shape, new Object[]{});
748 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 03:45:21 ] PHPでは $className = "Foo"; $obj = new $className(); とするとFooインスタンスを作成することができるのですが Javaで同じようなことをしたい場合どうしたらいいのでしょう? String className = "Foo"; Foo obj = new className(); //これでは当然無理です
749 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 04:26:42 ] String className = "Foo"; でString型の"Foo"という文字列を持ったインスタンスが生成される んだけどPHP知らないからすごい別次元臭がする
750 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 05:38:41 ] >>748 Class.forName("Foo").newInstance();
751 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 06:14:37 ] www.klab.ai.kyutech.ac.jp/~yatti/sunspot/index.php?%E5%8A%A0%E9%80%9F%E5%BA%A6%E3%82%BB%E3%83%B3%E3%82%B5%E3%82%92%E4%BD%BF%E3%81%86 こっちのSunSpotの加速度センサのプログラムを少し変えたのですが、うまく動きません。 Stateクラス、 public class State { int state = 5; public void setState(int state){ this.state = state; } public void callState(){ //このstateが1と0になり続ける状態を作りたい… System.out.println("come :"+state); } } を作って、LEDが点灯している、していない状態を管理したいのです。 ↑のWikiのLEDFlash.javaの public void thresholdExceeded(IAccelerometer3D accel, int axis, double val, boolean relative) { //閾値より高い値ならばLEDを青色に点滅させる 以降のif文の前者がLEDを点灯させる、else以降がLEDを消灯させるプログラムです。 これは閾値を超えた時だけ呼び出されます。 このifの点灯させる所にst.setState(1);消灯させる所にst.setState(0);を書いても、超えてる時はちゃんと1と0になってるんですが、 放置したら(閾値を超えてない状態)デフォルトの数値のままになってしまいます。(つまり5) 確認はAccelerometerTest.javaクラスの加速度の測定をしているスレッドでst.callState();をして確認をしています。 AccelerometerTest.java、LEDFlash.java、どちらのクラスでもState st = new State(); と書いてるのがマズいんでしょうか…だとしたらどうしたら良いんでしょうか?
752 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 07:04:47 ] 2000年頃から英語やれって云う人はいた。 ttp://piza.2ch.net/test/read.cgi/tech/971960169/132 今は入門書もあり出版や校正する人以外はどうでもいいかな。 >>751 のような制御は知らん。
753 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 07:24:46 ] >>750 すげー
754 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 09:13:30 ] 基本の演算処理ですけど int a =5; int b =12が宣言されているのですが (a<=b),(a<b)&(a>b),(b%a),(a!=b),(++a)*bの実行結果を求めたいのです。
755 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 09:50:29 ] 勝手に求めてくださいよそのの程度
756 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 12:36:14 ] >>751 > 放置したら(閾値を超えてない状態)デフォルトの数値のままになってしまいます。(つまり5) つまり放置しなければいい もしくは放置したことを感知できればいい やりかたはしらない
757 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 12:45:10 ] >>751 わかったかな?
758 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 13:21:14 ] >>751 wikiじゃなくて発売元に聞いてサポート受けたら?
759 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 13:55:00 ] >>751 コンストラクタで現在の状態(0か1)を初期値として与える必要があるんじゃないの? 言葉通りしきい値超えないとコールバックされないんでしょ
760 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 14:02:55 ] >>751 もしも〜し
761 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 14:05:21 ] > thresholdExceededメソッド > 加速度センサが閾値を超えたときに呼ばれるメソッド. ってあるからStateの初期値は閾値を超えてない状態を与える必要があるのでは。 てか5って何か意味あるの?
762 名前:デフォルトの名無しさん [2009/12/21(月) 18:43:44 ] >>751 どうなの?
763 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 18:56:53 ] ここってサーブレットの話題とかでもおkですか?
764 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 19:01:57 ] ばっちこーい
765 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 19:03:59 ] ぬふぅ
766 名前:デフォルトの名無しさん [2009/12/21(月) 19:06:44 ] >>679 ほとんど英語のドキュメントとチュートリアルで覚えましたね
767 名前:デフォルトの名無しさん [2009/12/21(月) 19:07:46 ] >>763 OK 専門分野にしてる人多いです
768 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 19:09:29 ] EE6のCDIについて草案ではなく、リリース状態の仕様でチュートリアルを書いてるサイトはないですか?
769 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 00:15:43 ] 引数に「Hoge.class」とClassを渡す事がありますが 何に使っているんですかね? 型の比較?
770 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 00:32:00 ] >>769 ・インスタンス化を遅延。(newInstance/getConstructor) ・リフレクションで動的にメソッドを呼び出し/フィールドアクセス。(getMethod/getField) ・クラスオブジェクトをキーにしてファクトリを選択。(Mapで対応付け) ・クラス名やパッケージ名を文字列でげっと。 とかかな。割と頻繁に使ってる。
771 名前:デフォルトの名無しさん [2009/12/22(火) 01:58:09 ] >>746
772 名前:769 mailto:sage [2009/12/22(火) 09:59:47 ] >>770 thx
773 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 10:21:29 ] javax.accessibilityって何をやるクラスなんですかね? javadocを読んでもパッと来ないんですが
774 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 11:17:19 ] 目が見えない人用のスクリーンリ−ダーとか点字ディスプレイとか音声入力とかなんかそういう類の 詳しくは知らん
775 名前:172 mailto:sage [2009/12/22(火) 11:35:57 ] >>773 私も初めて見たのですが。 普通アクセシビリティっていうと、障害者の操作補助とかそういうイメージ。 目の見えない人のための音声読み上げ機能とか。 普段画面で行う入出力(テキストを読む、リンクをクリックする、みたいな)を 別の手段で提供するための標準化インタフェースだったりヘルパクラスだったりする、のかな? mediacast.sun.com/users/akihito/media/Java_Accessibility.pdf に日本語の資料ありますね。
776 名前:773 mailto:sage [2009/12/22(火) 12:04:26 ] AccessibleContextってクラスがあるんですが、このクラスが属しているパッケージなので気になりました JLabel#setText()を読んでいたらAccessibleContextが出てきたのですが、さっぱりわかりませんでした このインスタンスはJComponentのフィールドにprotectedで宣言されています
777 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 14:18:10 ] 障害者用の補助装置をjavaから制御する場合の話だからそういう開発者以外関係ない。 AWTに口だけ公開しときますよって話だと思えばいい。
778 名前:デフォルトの名無しさん [2009/12/22(火) 15:37:36 ] >>746
779 名前:デフォルトの名無しさん [2009/12/23(水) 00:46:54 ] java.awt.DesktopでDesktop.getDesktop().browse(homePageUrl);を使いたいのですが、 java.netURIにおいて、String型のテキストをURL型もしくはURI型に 追加するには何を使えばいいのでしょうか? homepage.jp/ というURI型のものに、 abcd というString型の文字列を変換したものをくっつけて、 homepage.jp/abcd という表示をbrowse(homePageUrl)で行いたいのです。 そのString型→URI型の変換でつまづいています…。 よろしくお願いします。
780 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 00:58:26 ] 普通に new URL(filename+"abcd"); でムリ?
781 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 02:39:06 ] URI クラスの resolve(String) を使うのかな?多分
782 名前:デフォルトの名無しさん [2009/12/23(水) 09:36:34 ] terai.xrea.jp/Swing/MidiSystem.html 同じPCでこれが鳴る場合と鳴らない場合があるんですが...
783 名前:デフォルトの名無しさん [2009/12/23(水) 10:05:50 ] >>780 ムリみたいです…。 >>781
784 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 10:56:57 ] >>779 URI a = new URI("www.google.co.jp/ "); URI b = new URI(a + "search?q=java"); Desktop.getDesktop().browse(b); ふつうにいけないか?
785 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 11:11:14 ] >>779 URI uri = new URI("homepage.jp/ "); URI newuri = new URI(uri.getScheme(),uri.getHost(),"/abcd",uri.getFragment()); System.out.println(newuri.toString()); という意味?
786 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 12:12:14 ] ( ^ω^)大量
787 名前:デフォルトの名無しさん [2009/12/23(水) 16:38:55 ] >>779 ですが、 お答えくださってありがとうございました。 >>781 さんのヒントから色々探してみました。 URL型でURL取得するのでURL取得→.toURI→.resolve(string)で解決できました! resolveだけに…w どうもありがとうございました^^
788 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 23:20:55 ] いくつかの重い処理をするにあたって、割り込みするコードについて質問です。 現在では、Threadのrunメソッドで、 try{ 重い処理1 if(interrupted())throw new InterruptedException(); 重い処理2 if(interrupted())throw new InterruptedException(); 重い処理3 } catch (InterruptedException e){ } という感じにしているんですが、結局ジャンプ処理なので汚いコードだと感じています。 こういう場合にはどうするべきでしょうか? よろしくお願いします。
789 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 23:59:05 ] JComponent#setOpaque()のソース public void setOpaque(boolean isOpaque) { boolean oldValue = getFlag(IS_OPAQUE); setFlag(IS_OPAQUE, isOpaque); setFlag(OPAQUE_SET, true); firePropertyChange("opaque", oldValue, isOpaque); } なんで、firePropertyChange("opaque", oldValue, isOpaque);と書く必要があるのですか? firePropetyChange()でイベントを発生させなくても、普通にメソッドを呼び出した方が楽じゃないですか
790 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 00:14:04 ] うん? addPropertyChangeListenerで登録されたリスナ全員にプロパティの変化を伝えなきゃいけないからでは? 普通にって、何のメソッドを呼ぶの?
791 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 01:30:41 ] >>782 ローカルにjar保存してコマンドプロンプトから実行してみれば? 例外とか出てるの見れば理由わかるのでは。 >>788 自分だったらコマンドパターン適用するかも。 重い処理Xをそれぞれ別クラスにして、それらの共通スーパクラスで重い処理メソッド呼んでその後中断判定する。
792 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 02:27:31 ] アクセス修飾詞なんですけど、どういう状況で使い分けたらいいかわかりません 教えてください
793 名前:デフォルトの名無しさん [2009/12/24(木) 02:43:40 ] アプレットのプログラムについて質問です。 内容はボールを反射させて動かす(ピンボールのような)プログラムです。 g.setColor(Color.red); g.fillOval((int)(this.x2-3),(int)(this.y2-3),6,6); このようなプログラムが組まれており意味してるものは動かすボールの色と大きさを指定しているのは理解できるのですがこれでなぜ色と大きさが指定できているのか細かい部分がよくわかりません。 なぜこれで色と大きさを指定できるのでしょうか?
794 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 02:57:21 ] まさにそういう用途のメソッドだと思うのだけれど。 java.sun.com/javase/ja/6/docs/ja/api/java/awt/Graphics.html#setColor (java.awt.Color) java.sun.com/javase/ja/6/docs/ja/api/java/awt/Graphics.html#fillOval (int, int, int, int)
795 名前:デフォルトの名無しさん [2009/12/24(木) 03:08:15 ] このサイトに書いてあるアルゴリズムを教えていただけないでしょうか…? お願いします
796 名前:デフォルトの名無しさん [2009/12/24(木) 03:31:33 ] すいません、サイトを貼るの忘れてました oraclesqlpuzzle.hp.infoseek.co.jp/java/java-3-6.html お願いしますm(_ _)m
797 名前:デフォルトの名無しさん [2009/12/24(木) 03:48:41 ] >>793 gの色をセットします(赤色に) ってのは理解できるべ? g.fillOval(〜,〜,〜,〜) ってのは www.tohwa-u.ac.jp/~kodama/java/3_oval.html みてみよ。 というか、そういうものだ、ってここは思わないと進めないレベルだぞ。 とりあえず、.setColorで色決めて、.fillOvalで塗りつぶされた円を描くコマンドだと思いなさい。
798 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 04:30:27 ] >>795 ただの総当たりにみえますが。 2回目以降は前回の手数を 越えるものは総当たり条件から外してるみたいだけど これで最適手順が見つかる保証は 無いでしょうね。
799 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 04:35:20 ] あ、最適解云々は勘違いしてたので忘れて
800 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 06:09:34 ] >>788 ジャンプするためだけに例外を投げるのが邪道ってこと? try-catch の中身をメソッドとして独立させてみては /** * @return 中断されずに処理を終えたかどうか */ void process() { 重い処理1 if (interrupted()) return false; 重い処理2 if (interrupted()) return false; 重い処理3 return true; }
801 名前:800 mailto:sage [2009/12/24(木) 06:13:33 ] >>788 を読み返してみたら 質問の意図と違ってたかもしれん すまん
802 名前:782 mailto:sage [2009/12/24(木) 08:47:31 ] >>791 jarファイルをコマンドプロンプトから実行しても特に例外などは出ませんでした。 ちょっと>>782 の説明が足りませんでしたので補足しますと JREのインストールフォルダ内にある\lib\audioフォルダにsoundbank.gmがあると 音は鳴るんですが変な音質なんです。 逆にsoundbank.gmが無い場合は、正常な音質で鳴る場合と全く鳴らない場合がありますが、 確実に正常に鳴らす方法はありますでしょうか。
803 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 10:11:02 ] ありますとよいですね。
804 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 10:37:46 ] >>802 とりあえず MidiSystem#getMidiDeviceInfo() で取得できる 全 MidiDevice の名前を書いてくれ。 lib/sound.propertiesのコメントでない行も書いてくれ。 WindowsのJREなら少なくともシンセ2つが繋がっているはず。 (Java独自のシンセサイザとWindows内蔵のシンセサイザ) どっちが使われてるかは把握してる? 何度読んでもMIDI関係のAPIは納得いかんとこが多いな…
805 名前:782 mailto:sage [2009/12/24(木) 10:51:48 ] >>804 MidiDeviceの一覧は下記の通りです Microsoft MIDI ?}?b Windows MIDI_MAPPER false Microsoft GS Wavetable SW Synth Internal software synthesizer false Real Time Sequencer Software sequencer false Java Sound Synthesizer Software wavetable synthesizer and receiver true それぞれの3行目のtrue/falseは System.out.println(MidiSystem.getMidiDevice(i) instanceof Synthesizer) の実行結果で、一番最後の「Java Sound Synthesizer」がデフォルトと思います また、lib/sound.propertiesは全てコメント「#」で始まっています
806 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 11:21:42 ] >>792 可能な限り狭いものを使っていれば問題ない。 まずprivateで済ませること。どうしてもダメならprotectedに拡張、そ れでも足りないなら無指定、publicはfinal以外では使わない。
807 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 11:29:31 ] >>792 隠したいなら private 公開したいなら public 設計ミスの継ぎはぎには protected サンプルプログラム用に字数減らしたい場合は無指定で package private
808 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 11:32:05 ] >>806 デフォルトアクセスとprotectedだとデフォルトアクセスの方が制限きつい。
809 名前:804 mailto:sage [2009/12/24(木) 12:05:04 ] >>805 あー…、MicrosoftGS音源のSynthesizerって出てこないんだ… それどころか本物のMIDI音源実機(Roland)も出てこないよー。 Sequencer使わずに自前でReceiverにMIDI信号投げてたんで気づかなかった。すまん。 Sequencerの音色がSynthesizerに依存している以上、JavaSoundしか選べそうにないね。 soundbank.gmってのはJavaSoundのデフォルト音源だと思う。 消しちゃダメー。書き換えるのもたぶんダメー。 Synthesizer.loadAllInstruments()で別の音源と差し替えることは可能と思う。
810 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 12:23:31 ] javaで画像処理って定番は何になるのでしょうか? CだとOpenCVやImageMagicがありますが
811 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 12:48:52 ] >>809 あまり関係ないとおもうけど、確か公式で高音質盤のサウンドバンクが提供されてたよ デフォルトで含まれているの最低音質で、3段階くらいあったとおもう。
812 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 13:19:22 ] >>805 MidiSystem.getSequencer()で得られるシーケンサはデフォルトシーケンサだからデバイスの取得から自分でやってみれば? プラットフォーム側で無効化されてるデバイスも叩き起こせる仕様だから自分でデバイス拾って開けばいい。
813 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 14:19:45 ] >>810 普通ならそれをjni,jna
814 名前:782 mailto:sage [2009/12/24(木) 14:58:33 ] >>812 「Real Time Sequencer」にしましたが soundbank.gmがあっても音が全く鳴らなくなりました。 「Microsoft MIDI ?}?b」は認識されず 「Microsoft GS Wavetable SW Synth」 はClassCastExceptionが発生しました。
815 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 15:41:08 ] >>806 >publicはfinal以外では使わない そういうものなんですか? これって割と常識として知られてること?
816 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 15:42:22 ] メソッドの話?
817 名前:782 mailto:sage [2009/12/24(木) 15:52:15 ] 別バージョンのJREを何回か再インストールしているうちに いつの間にか正常に音が鳴るようになりました。 音が鳴らなかった真の原因は未だに分かりません...。
818 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 15:54:51 ] >>815 >>806 はでたらめなので心配御無用
819 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 16:22:17 ] java.util.prefs.Preferencesで、userNodeには問題なくキーとデータを登録できるのに、 systemNodeには登録できず警告が出る。OSはWin。 という症状が、特定マシン上だけで起きるのだけど、どんな原因が考えられますかね? 自分や知り合いのマシンでは問題無いのに、知らない人のマシンでは起きているのです。 それからJREを再インストールしてもこの問題は解決しない。
820 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 16:25:11 ] アクセス指定子はクラスの場合、メソッドの場合、フィールドの場合で ずいぶん事情が違う。 >>806 はフィールドの場合に見える。
821 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 16:54:40 ] public fieldが許されるのは小学生までだよねー(AA略
822 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 16:59:27 ] >>810 JREにもれなく付いてくるJava2Dでは不足?
823 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 17:06:04 ] >>819 その方、レジストリの管理権限はあるのかしら。 HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs に読み書き可能なのか、レジストリエディタかなんかで確認した方が
824 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 18:23:37 ] >>823 嫌です
825 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 18:36:28 ] >>817 シーケンサに命令溜めた後ちゃんとシンセサイザに送ってる?
826 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 19:30:07 ] >>823 アカウントの権限を確認してもらったけど、Adminとのことでした。
827 名前:782 mailto:sage [2009/12/24(木) 19:40:09 ] >>825 Javaのmidiに関しては殆ど詳しくないので ソースを挙げて頂ければ有り難いです
828 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 19:50:38 ] >802 そもそも「変な音質」とか「正常な音質」ってどういう話なんだ。 たとえば拾い物のYAMAHA用MIDIファイルを別音源で聞いて、それが変か正常かは主観レベルの話なんだが。
829 名前:782 mailto:sage [2009/12/24(木) 20:50:05 ] >>828 「変な音質」というのは誤解を招く書き方でしたね、訂正いたします 他のプレイヤーで聞いた場合と同じかどうかということです
830 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 21:14:10 ] 情報小出しウザイ そろそろ失せろ
831 名前:デフォルトの名無しさん [2009/12/24(木) 22:52:35 ] >>830 イブで女の子と一緒に過ごせないからってカッカすんなよwww
832 名前:デフォルトの名無しさん [2009/12/25(金) 00:04:14 ] イブで女の子と一緒? 外国の宗教とはいえ神様に失礼すぎw
833 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 01:38:21 ] 今年のクリスマスは中止になったって聞いてたけど MIDIってのは環境とかプレイヤーによって音が変わるものじゃないのか。
834 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 01:39:53 ] 変わるよ
835 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 01:50:19 ] 昔のwin95の音源はひどかった なつかしい
836 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 02:01:38 ] むしろFM音源のほうが好きだった
837 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 11:05:40 ] だな
838 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 13:34:19 ] MIDIはWindows98あたりから Windows標準でサポートされたが Windowsのがあまりに低音質だったので 避けられるようになったのは有名 それ以前からあったWinGrooveとかのほうがマシだった
839 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 14:03:48 ] 打楽器やベースは結構使える音だと思うけどなー
840 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 14:28:42 ] あの楽器?
841 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 15:44:12 ] FM音源が好きなんだが
842 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 17:10:01 ] YAMAHA万歳
843 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 17:13:14 ] FM音源とかファミコン音源とかが好きなんだが
844 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 17:19:21 ] スーパーファンファジーゾーンは神
845 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 17:21:18 ] FM音源の楽器音声の再現度はほぼ無いから、再現という使い方は出来ないんだろうけど FM音源の音が俺は好きだ
846 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 20:00:39 ] FM音源は確かに好きだけど、FM音源を流用したおざなりなMIDI再生はいただけない。 PC9801-86とSoundBlaster16の両方ともドライバの出来は良くなかったな。 ドライバでどうこうなる話でもないのかも知れないが。
847 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 20:05:01 ] javadocの特殊な文字化けについての質問です。 マルチバイト文字を値に持つ定数のjavadocに{@value}を使用したところ、 作成したjavadocのvalue部分がutfのコード表記に化けてしまいます。 -encoding -charsetの指定は効果なしでした。 解決策を御存じの方がいらっしゃいましたらご教示ください。 例 [ソース] /** 定数 {@value} */ public static final String HOGE = "ほげ"; [javadocの表示例] 定数 ("/uaafd/u7ca2/u42ce") [期待する出力] 定数 ("ほげ")
848 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 00:51:25 ] OpenTypeFontを読みたいのですが、うまくいかないので教えていただければ幸いです。 OpenTypeはTrueTypeの一部ということで次のようにしましたが例外がでます。 Font.createFont(Font.TRUETYPE_FONT, new File("***.otf")); 当然といえば当然なんですが。どうやって読み込めばいいんでしょう。
849 名前:デフォルトの名無しさん [2009/12/26(土) 05:06:51 ] JAR内の /a/b/SapmleClass.class から 同じJAR内の /resources/image.gif にアクセスしたいのですが、 SapmleClass.class.getResource("../../resources/image.gif") だとnullが返ってきます。 取り方が間違っているでしょうか?
850 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 06:00:41 ] java soundもあるしアクセスは用意されてるよね。 それならOSSでプロジェクト組んで新音源を開発してもいいんじゃない? いくらソフト音源だとしても、実装はsse,gpuとか使うからJavaにはあまり関係ないけど。 コーディック開発とはまた違った意味で面白いんじゃないか。
851 名前:デフォルトの名無しさん [2009/12/26(土) 10:14:17 ] JARのルートからのパスでアクセスできました。 SapmleClass.class.getResource("/resources/image.gif")
852 名前:デフォルトの名無しさん [2009/12/26(土) 12:32:11 ] いくつかのWindowsアプリケーションに、「右クリックメニュー」というものが 実装されていますが、あれはSwingでは(JMenuなどと違い)サポートされていないのでしょうか。
853 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 12:35:27 ] JComponent#setComponentPopupMenu
854 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 12:45:49 ] Adobeの次はJava。GENOウイルスの第二波が来るぞー(^o^)ノ tsushima.2ch.net/test/read.cgi/news/1261786925/
855 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 13:03:38 ] >>853 ありがとうございます。
856 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 13:05:17 ] >>855 俺へのお礼レスはいらない
857 名前:デフォルトの名無しさん [2009/12/26(土) 13:14:49 ] >>842
858 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 13:30:09 ] >>851 よそ様のパッケージも使うつもりがあるなら/resourcesは使わない方がいいぞー。 /a/b/resourcesじゃだめ?
859 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 14:49:22 ] struts2のconventionプラグインって import com.opensymphony.xwork2.ActionSupport; ってやらなくても命名規約さえ○○Actionになって○○actionsっていうパッケージにはいってれば 見つけてくれるんだと認識してたけど実際はしてくれない xwork2.ActionSupportをインポートしないと認識してくれない conventionプラグインは結局これインポートしないといけないの?
860 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 15:18:26 ] >>859 △△もっとStruts2の良さを教えてくださいSsssion6 pc12.2ch.net/test/read.cgi/tech/1217536023/
861 名前:849 mailto:sage [2009/12/26(土) 20:55:35 ] >>858 アドバイスありがとうございます。 使ってる他のJARにも/resourcesがあると、どっちか特定できないということでしょうか? /a/resourcesに変えることにします。
862 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 11:34:32 ] 同名のリソースが複数あると最初に見つかったURLが返ってくるので、かぶりらないような名称にした方がいいよ
863 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 12:48:45 ] >>856 ケッ
864 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 14:39:01 ] 以上、暇人でしたっ
865 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 15:17:50 ] まじなんかすごい時代だよな 色々と 天才達の手によってここまできたが すごい話だぜ
866 名前:デフォルトの名無しさん [2009/12/27(日) 16:14:17 ] >>865 まあ僕たち天才が行うべき使命ですので凄いとかはあまり意識していないのですが
867 名前:デフォルトの名無しさん [2009/12/27(日) 16:15:46 ] 何が凄くて何が時代の? で、何の天才で例えば誰のこと?
868 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 16:30:28 ] そういう疲れる話し方やめてくれる?
869 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 16:33:07 ] >>865-868 年末だしとりあえず金くれ
870 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 16:34:43 ] 俺にもおくれ
871 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:41:16 ] 質問させてください。 JavaSE6のjavax.xml.bind.SchemaOutputResolverクラスの Javadoc(下記URL参照)を読んでいたら、こんな記述を見つけました。 「互換性を損なうことなく将来のバージョンを発展させることができるようにするため、 これはインタフェースではなくクラスになっています。」 java.sun.com/javase/ja/6/docs/ja/api/javax/xml/bind/SchemaOutputResolver.html 「互換性を(〜中略〜)にするため」とありますが、インターフェースを定義し、 将来のバージョンでも同インターフェースを必ず実装することにより 互換性が維持できると個人的に思い込んでいるため、納得できません。 クラスでなければならなかった理由をご教授ください。 よろしくお願いします。
872 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:43:42 ] 将来的なバージョンでインターフェースにメソッドが増えた場合の事じゃない? インターフェースだったら、自分で実装してるクラス全部書き換えるけど、 継承元がクラスだったら、自分で実装してるクラスは書き換えなくてもすむかもしれない。
873 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:45:58 ] 最初のバージョンで次のようなインタフェースを定義しました interface A { void foo(); } そこでとあるアプリケーションがこのインタフェースを実装して使うことにしました class B implements A { public void foo() { ほにゃらら } } 新しいバージョンでインタフェースが拡張されメソッドが増えました interface A { void foo(); void bar(); } 先ほどのアプリケーションを新しいバージョンで実行すると bar() が定義されていないので NoSuchMethodError
874 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 00:11:56 ] wait と Thread.sleep ってどう違うの?
875 名前:871 mailto:sage [2009/12/28(月) 00:14:34 ] >>872-873 回答ありがとうございます。 将来のバージョンで新しい(非抽象)メソッドが追加された場合は、 追加実装が不要なため、インターフェースよりクラスの方がたしかに有利ですね。 以下、チラ裏 ただ、多重実装ができなくなるなど、 クラスで設計したことによるデメリットと比較すると微妙な気がします。 となると、どちらを選択するかはケースバイケースになるのでしょうか? そうなると、今回の「ケース」は何と表現(説明)すればいいのでしょうか?
876 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 00:20:52 ] まだ完成度が低いなと思ったらクラス 既存のクラスに付け加える可能性が高いなと思ったらインターフェース どっちもと思ったら、天秤にかけるしかないんじゃないかなあ
877 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 00:25:05 ] いや、使うときに、 TypeABC hoge; この左側を、Interfaceで使う場合がおおいか、 実装クラス名で使う場合がおおいか、 じゃねーか?
878 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 00:25:42 ] 本当は実装したいことがあるのでinterfaceじゃないんだけど、 時間がなくて実装できてません。 今の姿を見ればinterfaceで良いように見えるんだけど、真の姿はこんなんじゃないんです。 ということが言いたいんじゃ。
879 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 00:26:35 ] interface A { } class A001 implements A { } class B { } class B001 extends B { } A MyA として使うなら、Interface B001 MyB として使うなら、クラス じゃん
880 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 00:27:38 ] >>878 おお、それだ! だから、本質はクラスなんだよって事だね。
881 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 00:28:11 ] リファクタリングしていって interface になる、ってことは結構あるけど、 リファクタリングしていくと interface がなくなるなんてことはあるんかしらん。
882 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 00:29:29 ] >>874 waitはnotifyで起こせる sleepはnotifyで起こせない interruptを使えばどちらも起こせるが、起こしたい対象のwait/sleep以外でも ところ構わず起こしてしまうので使い方が難しい ところ構わず起こしたい場合には便利 あとwaitはspurious wakeup してしまうことがある
883 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 00:44:15 ] >>874 Thread.sleepは、目覚まし時計を用意して、自分で寝て、自分で起きる。 基本的に自スレッドが時刻と同期するために使用する。 waitは、モーニングコールを依頼して、自分が寝て、他人(別スレッド)に起こしてもらう (誰にも起こしてもらえなかった場合に、タイマーで自力で起きることも可能)。 基本的に自スレッドが別スレッドと同期するために使用する。
884 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 00:56:12 ] >>883 モーニングコールって、普通は時刻を指定して依頼するから、 目覚ましをセットするのと変わらないんじゃ。 「そっちの仕事が終わったら起こしてね」と伝えてから寝る、 といったたとえのほうが正確かも。 重箱の隅みたいですまんね。
885 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 01:32:28 ] >882-884 なるほど。 notifyを使う場合はwait Timerみたいな場合はThread.sleepって感じなんだな ありがとう
886 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 01:58:58 ] >>885 俺へのお礼レスはいらないって…
887 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 02:05:38 ] ?
888 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 03:38:25 ] 使われ方を想定せずにインタフェースの粒度なんて決められるわけない。 ライブラリのインタフェースはエスパーと妥協の産物
889 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 07:55:07 ] >>873 というよりも、abstract class とか使ったことないでしょ。
890 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 08:01:30 ] >>883 You should wake up from your deely sleeping.
891 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 14:35:34 ] ?
892 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 16:09:46 ] You have to shave up you are sheep or theaf
893 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 22:34:22 ] 何語だ?米語?deely? theaf? deeplyかなぁ?
894 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 07:39:51 ] >>893 それ、指摘するまでまったく気にしてないで読んでたw
895 名前:デフォルトの名無しさん [2009/12/29(火) 08:33:31 ] $ appletveiwereer HalloJava & そんなコマンドはありませんorz
896 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 08:55:35 ] なにそのイェェェェァァァ系コマンドw
897 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 09:00:00 ] 根っからの江戸人ならやりそうw
898 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 10:11:23 ] explorereとかkonquaroroとかbashだとコマンドしにくいよね。
899 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 12:48:05 ] しにくいですね。
900 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 13:33:06 ] 最近Javaの Domain Driven Designってどのフレームワークが流行りなの?
901 名前:デフォルトの名無しさん [2009/12/29(火) 15:02:45 ] ................. どのフレームワークが流行りなの!?
902 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 15:27:09 ] 俺はドメインモデル懐疑論者だからシラネ
903 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 15:29:03 ] ドメインモデル VS トランザクションスクリプト pc11.2ch.net/test/read.cgi/php/1241341332/ こっちへどうぞ。
904 名前:デフォルトの名無しさん [2009/12/29(火) 16:30:21 ] 【言語比較】2chではCとC++>>JAVAって人が多い。しかし本当にそうか?ちなみに2chはperlが使われてる tsushima.2ch.net/test/read.cgi/news/1262071701/ ニュース速報に立った
905 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 17:09:45 ] ん?昔はread.cだったと思ったが?
906 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 17:38:16 ] CとC++を別にしてデータとったらどうなんだろうな
907 名前:デフォルトの名無しさん [2009/12/29(火) 21:11:30 ] >>746
908 名前:デフォルトの名無しさん [2009/12/30(水) 00:11:17 ] 【言語比較】2chではCとC++>>JAVAって人が多い。しかし本当にそうか?ちなみに2chはperlが使われてる tsushima.2ch.net/test/read.cgi/news/1262071701/ ニュース速報板です
909 名前:デフォルトの名無しさん [2009/12/30(水) 01:00:00 ] アイちゃんは大丈夫か!? 【生物】ニホンザル謎の死、京大霊長研で相次ぎ15頭 gimpo.2ch.net/test/read.cgi/scienceplus/1262001115/
910 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 01:36:23 ] ┌─┐ ┌─┐ │●│ │●│ └─┤ └─┤ ∧∧ ∩ ∧∧ ∩ Java! ( =゚-゚)彡 ( =゚-゚)彡 Java! ┌─┬⊂彡┌─┬⊂彡 |●| |●| └─┘ └─┘
911 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 13:26:22 ] 整数値を読み込んで5で割れるか判定するコードなんですが いろいろグダグダなんですが bの代入のところでエラーになる理由がわからないです。 後半のifが変なのは無視してください。 // 整数値を読み込み5で割り切れるか判定する。正以外の数値にはコメントをだす。 import java.util.Scanner; class En35 { public static void main(String[] args) { Scanner stdin = new Scanner(System.in); System.out.print("正の整数値:"); int a = stdin.nextInt(); int b = a % 5; if (b == 0) System.out.println("その値は5で割り切れます"); else if(b != 0) System.out.println("その値は5で割り切れません"); else System.out.println("正でない値が入力されました"); } }
912 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 13:32:18 ] >>911 事故解決しました。 >>1 にある全角スペース〜 でした。
913 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 16:22:03 ] 結局、JDK7ではクロージャーが導入されるみたいですが クロージャーとラムダ式って何が違うんですかね?
914 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 18:01:55 ] >>913 俺も理解が乏しいんで一応書いてみたが、間違ってたら訂正してください クロージャもラムダも関数を変数の値にできることを前提とした機能だけど クロージャーは関数内で定義、生成するもので、定義、生成された関数内のローカル変数を参照できるって機能が強調されるイメージ この参照できるっていうのは関数から抜けた後にもローカル変数のメモリが開放されないまま残り、実行時に参照できるってこと ラムダ式は関数を値のように扱えて、例えば 関数の引数に関数を渡す 関数の引数を決めたものを変数の値にする 関数を合成したものを変数の値にする(関数a.bを合成すると実行時b(a())と実行したことになる) みたいな機能があることが強調される
915 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 18:08:50 ] きもい
916 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 18:17:22 ] わからないからですね^^; わかります^^;
917 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 18:22:51 ] 違いは知っていましたが、面白そうだから質問してみました。 それでは皆様、また逢いましょう
918 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 20:21:11 ] もう来なくていいよ^^
919 名前:デフォルトの名無しさん [2009/12/30(水) 20:22:14 ] >>910 >>909
920 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 22:38:51 ] クロージャはエンクロージングな関数で ラムダは変数置換と関数定義をそれぞれ一つのみ持つ関数。ただし自分を含む関数を定義できない。 つまり両方あればY(F) = F(Y(F))が表現できる。 が、不完全性定理があるのでequals(lamda, lamda)は表せない。
921 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 22:40:21 ] CでできることはJAVAでもできるのですか。 友人が言うには、「劣化Cだからやんないほうがいい。ジャバでできる特徴的なことは風呂釜掃除くらい」 というのですが。 ポインタが参照になってる メモリの開放と確保は言語レベルでよろしゅうやってくれる Cに比べて実行速度が遅い というのは ググッて分かりました しかしメモリいじりをしなければならないので、最低でもCのようにメモリをいじる必要があります
922 名前:デフォルトの名無しさん [2009/12/30(水) 22:47:20 ] すなおにdotnet(C#)やれ
923 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 22:59:58 ] >>921 > しかしメモリいじりをしなければならないので、最低でもCのようにメモリをいじる必要があります それなら C をやるしかない。
924 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 23:01:55 ] 前半部分が大昔にあった改変コピペだぞ
925 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 23:04:22 ] アセンブラコードを別に用意してJavaから呼び出すことできなかったっけ?
926 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 23:07:28 ] Javaは情報工学やってた人へのプレゼントだな こんなに手っ取り早く完璧な実装のライブラリを呼び出せる言語はない
927 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 23:17:07 ] >>925 JNIですね。C言語とJava に精通していないと使いこなすのは難しいです。 Microsoft の JavaVM はその点は簡単ですけどね。
928 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 23:18:33 ] >>927 JNA使えばいいじゃんPosix遵守だから 大抵動くぞ
929 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 23:19:18 ] JNAもJNIもよくわからんが一緒だろ
930 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 23:43:09 ] JNAはJNI使ってるっていうだけで一緒じゃないよ。 JNAだととてつもなく簡単にネイティブライブラリにアクセスできる。 型の変換もある程度してくれるし、結構事足りるよ
931 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 23:45:53 ] 安全なスレッディング メモリ操作 これが好きな奴が使う
932 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 23:50:08 ] ほとんどは、OSのAPI呼びたいとき使うんじゃないの?
933 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 00:36:04 ] え?
934 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 10:53:29 ] システムコール?
935 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 12:49:17 ] Java本体から呼んでないやつはJavaのスレッド管理外、メモリ管理外なので 自分でケアしないと痛い目を見る ので、そういうことが好きな奴でないと扱えないと
936 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 13:00:31 ] 禁忌事項も多いもんなぁ。 www.ibm.com/developerworks/jp/java/library/j-jni/index.html
937 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 13:08:54 ] >>935 そうでもないんじゃね??
938 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 13:20:11 ] >>935 そうでもないそうですよ
939 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 13:32:56 ] >>937-938 嘘つきはよくないなぁ
940 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 13:34:12 ] 俺は全然ケアなんて考えずに使ってるぜ 裏でどうなってるか知らんが
941 名前:デフォルトの名無しさん [2009/12/31(木) 14:00:35 ] jni,jnaを使うならjavaじゃなくてdotnet(VB)にしろ。 そもそもそのアプリは、PCしか考えてないんだろうからdotnetで十分。
942 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 14:29:34 ] なんで、javaはC++を敵視してるんだろ? しかも、速度的な面で
943 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 14:36:02 ] それはお前の脳内設定。
944 名前:デフォルトの名無しさん [2009/12/31(木) 15:11:26 ] linux使ってると分かるけど、monoがある程度実用的になってきたからdotnetでもある程度はいける。 MSとノベルはそれで提携したし。 ただPCだけじゃなくて携帯(グーグル)もいれるならjavaやっとくのをお奨めするが。
945 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 15:44:16 ] MSのOS依存の形態じゃやっぱ使い物になりませんよね
946 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 16:03:35 ] GoogleはGoogle依存の形態で全てやろうとしているからなあ。 オープンで囲い込みですが何か?って感じ。
947 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 17:29:34 ] >>946 gglは共産主義者だし 今EUとアメリカでほぼ黒確定の 独禁法違反になるから無視しておけ
948 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 17:58:30 ] Google 依存が強いところは、気をつけておいたほうがいいだろうな。
949 名前:デフォルトの名無しさん [2009/12/31(木) 18:23:34 ] ニュースサイトにロボット埋め込んで、街は許可なく勝手に撮影、本は勝手にスキャン、コードは盗み放題。 それもただの商業利用でしょ。 国民から徴収してアンテナ立てたりコンテンツ作ってるのに、それを2次販売して商業的な利益を上げてるNTTやNHKみたいなもんじゃないの?
950 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 18:27:42 ] googleは検索以外だとgmail(hotmail)ぐらいしか思い浮かばないし依存になることもないと思うんだが、googleは依存になりそうなサービスを提供してたか?
951 名前:デフォルトの名無しさん [2009/12/31(木) 18:32:18 ] アンドロイドは思ったほどでもないですしね
952 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 18:39:18 ] グーグルの、サンタクロース追跡に便乗した商売にはかなり引いた。 日本、中国(アジア)としてはそういう宗教的(伝説的)なところは理解できない。
953 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 20:37:46 ] enumってなんでfinalないの?設計ミスじゃね?
954 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 20:45:13 ] ミスかもね
955 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 20:45:53 ] >>953 enum のどの部分の事言ってるのかわからんが暗黙で final 扱いになってね?
956 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 20:57:04 ] ほんとだ・・・extendsって書いたときのコンパイルエラーが変だから継承できるかと思ってたすまぬ
957 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 21:25:41 ] 謝ったから許してやる
958 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 21:27:10 ] ああもう年末だ・・・ いいから金くれ
959 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 23:26:41 ] enum enum 人間って enum
960 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 00:10:53 ] おっイーナムってよんでんのかー
961 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 00:12:20 ] なぜJDKドキュメントにはEnum#values()が載っていないのだ?
962 名前:デフォルトの名無しさん [2010/01/01(金) 00:26:01 ] おっ新年だ お年玉くれ てかおみくじどうやるんだっけ?
963 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 00:28:16 ] >>961 ソース読んでご覧。valuesってメソッドないから。 自動生成されるんかねぇ
964 名前: 【898円】 【大吉】 [2010/01/01(金) 00:34:32 ] ナムナム 金くれ
965 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 19:05:37 ] 高校の宿題で、サーバー役とクライアント役に分けて、プログラム作って、簡易チャットを作っているのですが、分からない点があります。 client1 とclient2が接続されてるとして、server側でclient1が発言したのを、client2側の画面に反映する方法がわからない。(client2の出力ストリームに流し込む方法が・・・分かりません) よろしけれあ、ご教授願えないでしょうか?
966 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 19:13:18 ] 何処の高校?
967 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 19:47:03 ] サーバプッシュでぐぐりなさい 最悪client2からのポーリングでもできるが
968 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 20:20:52 ] >>966 勘弁してくださいorz >>967 軽く調べてみましたが、どちらも難しそうですね。。。 しかし、ポーリングのほうがそれでも簡単な気がするので、掘り進めてみます。
969 名前:デフォルトの名無しさん [2010/01/02(土) 20:38:45 ] PHPの、PEAR::Net_UserAgent_Mobileに相当するライブラリなどはありますでしょうか? まぁ、「大体振り分けられればOK」ならそれほど難しくもなくできるとは解っているのですが、もしメジャーなライブラリなどがあるのならそちらを使った方がいいかと思いまして・・・。 何かご存知の方がいらっしゃれば、情報をいただければ幸いです。よろしくお願いします。
970 名前:965 mailto:sage [2010/01/03(日) 10:24:24 ] なにやら、宿題関係の質問はスレ違だったことに気付いたので、java宿題スレに移動します。申し訳ありません。
971 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 15:27:15 ] hello,worldの次に何作れば良いですか? ステップアップ式にお題出してるサイトとか無い?
972 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 15:37:45 ] 1.とりあえず一冊買う 2.とほほのjava 3.javaの道
973 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 16:03:02 ] 画像について質問です。 巨大なBufferedImageに図形などを描画してそれをImageIOでファイルに書き出したいんですが 画像サイズがデスクトップサイズを超え始めたぐらいからOutOfMemoryが出て生成に失敗してしまいます。 大きい画像を使いたい場合何か方法はありますか? jdkは1.6です。 //そういえばImageIOでjpgを保存すると色にセピアみたいになる変換掛かりますよね?どうすれば治るんでしょうか・・・
974 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 16:14:43 ] >>973 VM引数に -Xmx512m とかつけて最大ヒープサイズを大きく取るとか。
975 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 16:36:56 ] デスクトップサイズって巨大かなぁ? 1920x1200x3[byte]として6,912,000[byte]。7MB弱だし。 どっかメモリリークしてないか?
976 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 17:01:27 ] public static void main(String[] args) throws Exception { BufferedImage im = new BufferedImage(1920*2,1200*2, BufferedImage.TYPE_INT_RGB); Graphics2D g = im.createGraphics(); for (int x=0; x<im.getWidth(); x+=10) { for (int y=0; y<im.getHeight(); y+=10) { Color c = new Color((int)(Math.random()*256) ,(int)(Math.random()*256) ,(int)(Math.random()*256)); g.setColor(c); g.drawLine(0, 0, x, y); } } g.dispose(); OutputStream out = new FileOutputStream("test.jpg"); ImageOutputStream ios = ImageIO.createImageOutputStream(out); ImageWriter iw = (ImageWriter)ImageIO .getImageWritersByFormatName("jpeg").next(); iw.setOutput(ios); iw.write(im); out.close(); } これとか問題出る?
977 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 17:20:08 ] >>976 大丈夫でした! どうやら、画像以外にもいろいろやってるからそれらがメモリを圧迫しているようです。 ちなみに出力部分のところはImageIO.write(im,"jpeg","test.jpeg");と何か違うんでしょうか?
978 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 20:17:28 ] >>977 ImageIO.java見ると分かるけど、実はほぼ同じ。 ImageIO.getImageWritersByFormatName("jpeg") がサービスプロバイダの イテレータなので複数の実装があったときに使い分けられる程度。
979 名前: ◆QZaw55cn4c mailto:sage [2010/01/03(日) 21:42:10 ] java.text.SimpleDateFormat の質問です。 codepad.org/n24uZLFz のようなエラーが発生するのですが、何が悪いのでしょうか?
980 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 21:52:15 ] そのエラーメッセージが理解できないという事は、 Javaの言語仕様をきちんと読んでいないだろ。
981 名前: ◆QZaw55cn4c mailto:sage [2010/01/03(日) 21:56:33 ] >>980 なにぶん初学者で、テキストの範囲をちょっと逸脱するとこうなってしまいます。 もうちょっと我慢して教科書を読んでいきます。
982 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 22:12:21 ] 「スローするにはキャッチまたは、スロー宣言をしなければなりません。」 と丁寧に教えてくれてるもんな。頑張ってこの意味を理解しようね。 俺は面倒がってExceptionでスロー宣言しまくりだけどなー。(小言は聞こえない)
983 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 22:20:58 ] >俺は面倒がってExceptionでスロー宣言しまくりだけどなー。(小言は聞こえない) catch して捨てるよりはまし。 >>979 みたいな、サンプルプログラムでは、 throw Exception しちゃうのが 結局、一番合理的な解じゃないかな。 catch しても printStackTrac()ぐらいしかできることないっしょ。 コードが読みにくくなるだけで、実用上のメリットがさしてない、 ただ、初心者が、「どこでも throw Exception すればいい」 と思い込んだらちょっとまずいってだけで、
984 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 22:30:44 ] 一番正しいのは契約プログラミング的な考え方で、前提条件は全て事前チェック しておいて、それに引っかからないモノはそれこそ例外として扱うことじゃないかと 思ってるんだがどうかな?
985 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 22:35:06 ] 最初は、throw Exceptionされているメソッドを呼び出すときは、呼び出し元もthrow Exception定義しましょうでもかまわないと思う だんだん勉強して、例外についての理解も進めば、throwかcatchかどっちがいいか分かるようになるでしょ ところでそろそろ次スレたてるね
986 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 22:38:55 ] 次 ★★Java質問・相談スレッド135★★ pc12.2ch.net/test/read.cgi/tech/1262525781/
987 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 22:47:54 ] でも例外に関するエラーメッセージは解りづらい気がする 例外って常用的な日本語だから、慣れないうちはスペルミスでもあるのかと思ってしまう。 さらにExceptionがソースをいくら検索してもみつからないって混乱したり
988 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 23:03:13 ] JAVAをはじめてまだ1週間程の初心者なんですが、 kitten.ace.nitech.ac.jp/ichilab/mech/software/gate/ ここで公開されているアプリと似たものを作りたいと思っています。 それでこのアプリのソースコードが見てみたいんですが、 ソースコードが公開されていないアプリのソースコードを見る方法ってありますか? 馬鹿な質問かもしれませんが教えていただきたいです。 よろしくお願いします。
989 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 23:19:06 ] >>988 >>91 これで一応見ることができる
990 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 23:36:33 ] >>989 ありがとうございます! やってみます。
991 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 10:31:42 ] C/C++での「配列のある要素のポインタを関数に渡す」みたいな処理はどうやるのでしょうか? void func(int n, int a[]); int main(void){ int a[] = {1,2,3,4,5}; func(3, a+2); //これの「a+2」 }