- 1 名前:デフォルトの名無しさん [2007/07/27(金) 08:46:32 ]
- プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/ これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、 wikiからのリンクをおたどりください。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド103【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1182896607/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝なく存じます。 次スレは>>980あたりで。
- 82 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 18:56:44 ]
- absは阿部さんの略
- 83 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 19:12:25 ]
- つーかjavadoc嫁よ屑
- 84 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 19:44:07 ]
- >>82
つまんねぇんだよカス
- 85 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 19:48:11 ]
- ご、ごめん
- 86 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 19:55:48 ]
- 質問させていただきます。
ArrayList を Iterator で順序アクセスした場合、この順序はもとのリストの順序と一致しないのでしょうか?
- 87 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 20:30:05 ]
- 一致する
- 88 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 20:43:36 ]
- てか順序が一致しないListってあるの?
Setと違って並びありきなクラスだと思うんだけど。
- 89 名前:デフォルトの名無しさん [2007/07/31(火) 21:05:26 ]
- 一致しないとまずすぎるだろ常考・・・
- 90 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 21:11:38 ]
- >>88
no
- 91 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 21:13:29 ]
- セックル中?
- 92 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 21:16:09 ]
- 回答ありがとうございます。
自分もそう思って、 for (int i=0; i < list.size(); i++) { // list.get(i) を処理 } を for (Object obj: list) { // obj を処理 } のように書き換えたら問題がおきたのです。 他の問題があったのかな。
- 93 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 21:31:13 ]
- どんな問題が起きたんだよw
ClassCastExceptionとかNullPoだったら氏ね
- 94 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 21:39:48 ]
- >>78
最初にExecutors.newHogeHoge の標準ファクトリメソッドで生成されるものを使うのが推奨されている。 それでダメならばカスタマイズ汁 で、こんな場所で質問しているヤシはマルチスレッドなんかに手を出すべきじゃない
- 95 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 21:46:57 ]
- こんな場所で質問しているヤシはJavaなんかに手を出すべきじゃない
- 96 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 22:23:16 ]
- じゃあどの言語がいいんだよ
- 97 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 22:53:34 ]
- >>96
それをこんな場所で質問しているヤシはプログラムなんかに手を出すべきじゃない
- 98 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 23:09:41 ]
- じゃあこのスレにいるやつらはなんなんだよw
- 99 名前:デフォルトの名無しさん [2007/07/31(火) 23:31:39 ]
- 質問があるんですが,アプレットで文字とかを描画するときに,
paintメソッドで,Graphics gとかを引数にとっていると思うのですが, gが良くわかりません. 他のクラスから,アプレットのメソッドを呼び出したりして, アプレットに文字列を描画したいのですが,gのところをどうすればよいかわかりません. どなたか詳しい方教えてください
- 100 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 23:43:30 ]
- >>99
もしかして、paintを自分から呼び出して描画処理を行おうとしていない? paintには描画したい内容を記述して、 それを呼び出すのはjavaの処理系が再描画すべき時点でやってくれる。 もし自分から描画させたい場合はpaintを直接呼び出さず、 repaintなどの再描画を促すメソッドを呼び出せばいい。 こちらからアクティブに描画する方法もあるが、 初心者のうちはこういうパッシブ描画でがまんしておけ。
- 101 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 23:43:40 ]
- >>99
gは大事にしてね。 引数渡しするかキャンバスクラスに実装して使い回せばおk
- 102 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:16:19 ]
- >>101
使いまわしたら生きてるか死んでるかの確認と再生成を自力でやらなきゃいけなくない?
- 103 名前:デフォルトの名無しさん [2007/08/01(水) 00:34:08 ]
- すみません、自力では限界なので誰か教えてください。
当方、専門学校の選択でJAVAを取った1年生です。 Eclipseを使ってJAVAをやっているのですが import model.product; の行で「インポートされた model は見つかりません。」とエラーが表示され、先に進めず困っています。 このぐらい自力で解決しろ、と思われますが、 検索をかけても解るものがヒットしないのです、どうか宜しくお願いします。 …教諭がソース(コメント、解説無し)のプリントを配布するだけで質問に答えてくれないんです。
- 104 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:55:35 ]
- パッケージを理解しろ。「java パッケージ」でぐぐれ。
srcフォルダの下に、model/product っていうディレクトリはあるのか? 専門学校ってEclipseとかやるんだ。
- 105 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 01:37:05 ]
- 専門学校でツール使うばあい、ツール教える側が理解してなくてカオスってるときがあるけどな。
それでサポやらされる身にもなってみろ。
- 106 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 01:51:48 ]
- じゃあやめちまえ
- 107 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 02:26:30 ]
- >>103
>質問に答えてくれないんです 嘘つくな
- 108 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 02:32:44 ]
- int test[]={80,43,43,32,84};
- 109 名前:デフォルトの名無しさん [2007/08/01(水) 02:40:44 ]
- >>103
どこの学校か教えてくれたら、完全な解説を書きます。
- 110 名前:103 mailto:sage [2007/08/01(水) 06:19:13 ]
- >104
回答有難う御座います、srcというフォルダ自体がありません。 Wikipediaでパッケージというものがどういうものか、一応は理解できたつもりです。 プリントの中に package model.Product; と書かれたソースファイルが無いです… >105 多分その通りかと…とても若い人で出欠取ったらどこかへ行ってしまいます。 >106 辞めてもいいのですが単位が… >107 授業中に質問ができなく、職員室に突撃して聞いても「自分で調べろ」の一点張りで… >109 日本工学院です
- 111 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 07:55:06 ]
- >授業中に質問ができなく、職員室に突撃して聞いても「自分で調べろ」の一点張りで…
質問に答えるとボロが出るからな
- 112 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 11:27:37 ]
- >>110
model.product なんてクラスが必要なければそんな import 文は単に消しちまうか、 どっかで使われてるなら model パッケージを作って product クラスを適当にでっちあげればいいんでない。
- 113 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 15:00:44 ]
- >>103
エラーメッセージをググる事を覚えるといいかも。 例えば「インポートされた は見つかりません」 固有部分を抜いて検索してみるのね。
- 114 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 18:11:16 ]
- 配列のソートがよくわからん。
誰かおせーて。
- 115 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 18:12:34 ]
- >>114
www.geocities.jp/ky_webid/algorithm/index.html ここら辺の話?
- 116 名前:デフォルトの名無しさん [2007/08/01(水) 18:43:30 ]
- >>114
Arrays.sort で出来るよ
- 117 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 19:18:47 ]
- 専門学校の教師に聞いた話だが、2年制とかになると早めに辞めさせてしまう方が評価が高いらしい
下手に全員が進級すると教室が足りないんだってw
- 118 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 20:07:32 ]
- >>117
教室と言うか教室の中にある設備機材のほうだなw だから講師が生徒潰しにかかって、それに触発されて生徒間も潰し合いし出して マジで頭おかしくなって精神科・心療内科行く奴が増えて そっち系の知識が豊富になりつつ、潰し合いに生き残った者たちはどんどん専門学校に洗脳されて外でワケワカメな事言いだすんじゃないか。 そもそも、コンピュータ系専門に常駐してる講師なんて業界の底辺から溢れて食ってけないから講師をry それを補うためにたまに外部からプロ呼ぶんだろうが。
- 119 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 21:48:40 ]
- >>118
まるでヒューマ○みたいな専門学校だなww もっとツールを使わないで一から作る技術を身につけたほうが いいんだろうけど。
- 120 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 22:08:50 ]
- ツール類の環境を整えてるのが売りなんじゃ?
まあ、今は学生書があれば激安で一式そろえれるから今は独学でも勉強が。 仕事で使うような自社ライブラリとかはそもそも入手できないし。 仕事で使う数十万から100万するモデリングツールや動画編集ソフト類も無理だろうし。
- 121 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 23:09:58 ]
- JMSのことが詳しくのってる本かサイトはありませんかね?
できれば日本語希望です。
- 122 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 23:16:50 ]
- JMSなりActiveMQでぐぐって、最初のリストに出てくるサイトの中に無ければないんじゃね?
- 123 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 01:38:04 ]
- struts関連の事ですので、多少スレ違いかも知れませんが
ご容赦下さい。 環境:JDK1.5 apache+tomcat struts winXP (+Exlipse3.2 All in One) アクセスログ出力の為、RequestProcessorを拡張する事に なりました。(Actionのexecute発行前後でログを出す) で、今回画面項目のチェック等でvalidationを使用する為、 TilesPluginとTilesRequestProcessorを使用しています。 (参考www.atmarkit.co.jp/fsecurity/rensai/struts03/struts03.html) 上記サイトを参考にし、TilesRequestProcessorをextendsした クラスをstruts-config.xmlのcontroller processorClass に 指定していますが、何の反応も有りません。 (ロジックを通っていない、エラーも特に起きない) ((エラーが起きる様なロジックをわざと用意しても同様)) で、PukiWiki様の説明によると、TilesPlugin使用時には TilesRequestProcessorが自動的に指定される、との事でした ので、ワザとcontroller processorClassに変なクラスを 指定してみたりもしたのですが・・・・やはり何も起きません。 上記の結果、controller processorClass指定時は。 他の設定ファイル(web.xml等)も設定が必要なのでは? 他に設定が無い限り、TilesRequestProcessoの自動指定 が外れないのでは無いか?と疑っているのですが、何か ご存知の方、他に設定が必要でしたらお教え下さい。 お願い致します。
- 124 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 08:07:54 ]
- www.atmarkit.co.jp/fsecurity/rensai/struts03/struts01.html
www.atmarkit.co.jp/fsecurity/rensai/struts03/struts02.html
- 125 名前:デフォルトの名無しさん [2007/08/02(木) 11:15:57 ]
- 統計ライブラリは何を使ってますか
フリーのものでお勧めのがあればご紹介ください
- 126 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 12:17:49 ]
- setColorでRGB値で色を作ろうとした時に、
色を格納している変数の名前をr,g,bにしていたところ、 hoge.java:18: シンボルを見つけられません。 シンボル: コンストラクタ Color(int,java.awt.Graphics,int) 場所 : java.awt.Color の クラス g.setColor(new Color(r,g,b)); というエラーが出たのですが、これどういうことでしょうか? 変数名をred,green,blueに変えたらコンパイルちゃんと通ったのですが、 引数に禁止されてる変数名とかあるのですか?
- 127 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 12:33:40 ]
- >>126
gの型は何のつもりなんすか。int or Graphics?
- 128 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 12:39:59 ]
- >>127
あ…Graphics gを引数で受け取ってて、 記憶域の都合で関数外でint r,g,bを宣言してたから 名前が被ってた…orz Javaは昨日からだけどC/C++は2年くらいやってるのに 何をこんな間違いを…orz ちょっと吊って来ます。
- 129 名前:質問です mailto:sage [2007/08/02(木) 12:47:08 BE:9069034-2BP(6)]
- java で特定の日時を保存するには何のクラスを使えば適切なのでしょうか?
- 130 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 12:56:48 ]
- >>129
君の言ってる保存って何? ファイルに出力する事?
- 131 名前:質問です mailto:sage [2007/08/02(木) 13:15:19 BE:11335853-2BP(6)]
- >>129
あ。すいません。 メモリー上で保持することです。JavaPlatform SE 6でお願いします。 Dateかと思ったんですが、ドキュメントをみるとメンバー関数に 推奨されてない的なことが沢山あったので別にあるのかなと思って質問いたしました。
- 132 名前:質問です mailto:sage [2007/08/02(木) 13:42:15 ]
- int i;
for (int j = 1 ; j <= 9 ; j++){ i = 2 * j; System.out.println("2 × " + j + " = " + i); for文なんですが、出力部分の"+"の意味がわかりません。 どういう意味なんでしょうか?
- 133 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 13:45:34 ]
- >>131
yyyy年MM月dd日 hh時mm分ss秒のDateインスタンスを作りたいってことね。 java.util.Calendarを使うこと。例えば今日の日付ならこうなる。 Calendar cal = Calendar.getInstance(); cal.set(2007, 7, 2, 13, 32, 40); // 2007年8月2日 13時32分40秒 Date today = cal.getTime(); Calendar#set()の第二引数は月の指定だが、0スタートなので注意。 詳しくはjavadoc参照。
- 134 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 13:49:37 ]
- >>132
System.out.println("aaa"+"bbb"); 表示されるのは「aaabbb」 int x=5; System.out.println("aaa"+"x"); 表示されるのは「aaax」 int x=5; System.out.println("aaa"+x); 表示されるのは「aaa5」
- 135 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 13:50:26 ]
- >>132
+は文字列同士の連結の意味 iとかjはintだけど文字列に自動で変換されたあとで連結される たとえばj=3,i=6の場合、 System.out.println("2 × " + j + " = " + i); ↓ System.out.println("2 × " + "3" + " = " + "6"); ↓ System.out.println("2 × 3 = 6"); になる
- 136 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 13:50:35 ]
- >>132
なんだ、足し算教えろっていってるのか?
- 137 名前:デフォルトの名無しさん [2007/08/02(木) 13:51:45 ]
- >>132
文字同士の連結 文字通りの足し算だね
- 138 名前:質問です mailto:sage [2007/08/02(木) 13:52:10 BE:31739876-2BP(6)]
- >>133
おおお、詳しくありがとうございます(ノ∀`) 参考になりました
- 139 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 13:57:15 ]
- さすがに千葉工業大学だなw
つりもレベル低いや
- 140 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 20:23:37 ]
- よくわかったね
- 141 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 21:20:10 ]
- よくわかるも何も自己紹介してるじゃん
- 142 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 21:23:20 ]
- Be付けて恥さらし(笑)
- 143 名前:質問です mailto:sage [2007/08/02(木) 21:35:16 BE:7557252-2BP(6)]
- >>142
ニセ者をニセ物と見抜けないおまいも(略
- 144 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 21:44:49 ]
- やってることが恥晒しってことだろ
- 145 名前:デフォルトの名無しさん [2007/08/03(金) 10:03:28 ]
- JTextAreaで表示するテキストの行間の間隔を変えたいのですが、それっぽい設定が見つかりませんorz
どこをいじれば良いのでしょうか・・
- 146 名前:145 mailto:sage [2007/08/03(金) 12:02:22 ]
- 自己解決しました。
- 147 名前:デフォルトの名無しさん [2007/08/03(金) 12:32:27 ]
- してないです。
- 148 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 13:07:38 ]
- test
- 149 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 14:09:41 ]
- メゾッド内で引数に与えられたboolean型の値の変更をするために
Boolean型を使おうと思っているのですが、使い方がよくわかりません。 private void _found_error(Boolean error_frag) { error_frag = Boolean.valueOf(true); } public void readFormData() { // 初期値はfalse Boolean error_frag = Boolean.valueOf(false); // 内部でtrueにしているはずなのに _found_error(error_frag); if(error_frag.booleanValue()) { // なぜかここが実行されない } } 何が悪いのか教えてください
- 150 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 14:32:02 ]
- _found_error の error_frag が指す先を別のオブジェクトに変えても、
readFromData の error_frag が指す先は変わらないから。
- 151 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 14:33:43 ]
- >>149
Boolean はimmutableなのでインスタンスの状態の変更はできない。 そしてJavaは全て値渡し。 error_frag の参照値がコピーされて _found_error に渡され、 _found_error ではコピーされた参照値をBoolean.valueOf(true) が戻す参照値で上書きする。 その際、readFromData の error_frag は影響を受けない。 解決法としてはインスタンスメソッドなら error_frag をインスタンス変数にする、 それが嫌なら boolean[] やら class MyBoolean{ boolean flag; } を使うなどして インスタンスの状態を変更できるものを使う。
- 152 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 14:38:54 ]
- 考えてみれば
error_frag = Boolean.valueOf(true); ではerror_fragの実体の指す先が変わってしまいますよね、失礼しました。 値を変えたいboolean型をこれらのメゾッドの関数が含まれるクラスのメンバー変数にして 解決することにしました。 どうもありがとうございます。
- 153 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 15:10:46 ]
- 連絡がありません。いいかげんな対応をされては困ります。あと一週間以内に何も連絡が無い場合、
落札者都合で削除すると同時に悪い評価が付きます。
- 154 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 15:42:52 ]
- ServerSocket.accept()や、BufferedReader.readLine()のような
入力がある、終わるまで待機するような方法を探しているのですが、スレッドを使って値を
- 155 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 15:45:24 ]
- 途中で書き込んでしまったorz
ServerSocket.accept()や、BufferedReader.readLine()のような 入力がある、終わるまで待機するような方法を探しているのですが、スレッドを使って値を 監視する、以外に方法はないでしょうか?なんかこれだとCPUの無駄遣いのような気がしますし もっと効率のいい方法がないかなと。
- 156 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 16:05:35 ]
- 何を待ちたいのかわからないが、
自スレッドを Object#wait で寝かせて、他のスレッドから #notify もしくは #notifyAll で起こすことはできる
- 157 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 16:09:32 ]
- それか、複数のソケットを同時に待ちたいってことなら、Selector を使うと幸せかもしれない。
ぜんぜん違う話なら、もっとくわしく・・・
- 158 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 18:22:06 ]
- 初期状態の時にJListが描画(表示)されません。
中央の"set"の下らへんをクリックするとJListが初めて描画される感じです。 これを簡単に解決したいんですが、どうしたらいいでしょうか? やはり、上の描画部分はCanvasで下はボタン等のパネルにすべきでしょうか? up.spawn.jp/file/up39072.txt
- 159 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 18:22:51 ]
- すいません、"set"じゃなくて"m"です。とりあえず中央のボタンの下らへんにJListがあります。
- 160 名前:デフォルトの名無しさん [2007/08/03(金) 19:00:50 ]
- thread内でDBにSELECTしたりINERTしたりする時ってデッドロックって起きる?
同じテーブルの同じレコードに同時にINSERTしたりしたら起きるんかな?
- 161 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:01:20 ]
- >>159
まあ、SwingというかAWTから勉強した方が良い。
- 162 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:12:21 ]
- >>158
とりあえず super.paint(g); レイアウトマネージャとか、AWTとSwingを混ぜるなとか、色々あるけど、まぁね。がんばれ。。
- 163 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:18:01 ]
- そもそもprintConponent()な。
- 164 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:20:08 ]
- paintComponentじゃね?
- 165 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:25:51 ]
- >>157
Jinputを使ってgamepadからの入力を受け付けるんですけど Jinputだといわゆるイベント(keyEvent)とかを発行しないんです。 だから現状はいつボタンが押されたか常にスレッドで〜msごとに どのボタンが押されてるかチェックしてるんですが、 もっと効率よくイベント発行するタイミング(ボタンおされた時)を調べるにはどうしたらいいかなと。
- 166 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 00:33:16 ]
- jinputなんか知りまへん・・・と言いたいが、そのうち自分も使いたくなるかもしれないから調べてみる。
・・・・・・ だめっぽいね。 一定時間ごとに poll するしかなさそうです。 よく考えたら DirectInput も joyGetPos も自分で取りに行くしかないっけか。。。 結論 → むり
- 167 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 09:28:53 ]
- ソースコード上に書いたクラスのフィールドやメソッドの順番って、
コンパイル後やHotSpotコンパイラがネイティブコンパイルした後も維持されますか? どのVMならというのではなくて、言語仕様としてどうなのかなと。
- 168 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 10:37:28 ]
- ソースの字面出現順にメモリにアラインメントされるかってこと?
それなんて構造体? javaはレジスタすら動的に配置して定期的にメモリ内容かわってるのに。 ていうか配列すら最適化のために連続しておかれる保証はないのに。
- 169 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 11:24:42 ]
- >>155
Swingとかでの話か? 1文字入力がある度に、KeyEventListenerで拾って処理するってのが定石 お前さんが思うほど不可はかからない もしくは、フォーカスが外れたタイミングで処理する CUIとかでの話であれば、System.in.read() 等はブロックする筈
- 170 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 11:54:11 ]
- 自作classの使用方法についての質問です。
次のような構造でDBにアクセスするプログラムを作成しています。 (Console)--[入力取得と出力]--[データ加工]--[DBAHelperImpl implements DataStoreAccessHelper]--(MySQL) 注 [xxx]:自作Javaクラス、(xxx):システム外部を表します [DataStoreAccessHelper]は、情報の取得、情報の保存、取得した情報からオブジェクトを作成、 取得した情報をjava.util.Listで戻す、などのメソッドを宣言したインタフェースです。 [DBAHelperImpl]は、そのインタフェースをMySQL用に実装したクラスです。 ここで、[DBAHelperImpl]を使用する方法について調べたところ、3通りの方法が見つかりました。 (1) DBAHelperImplをnewして使用する (2) DBAHelperImpl内にstaticなインスタンスを作成し、 作成したインスタンスをDataStoreAccessHelperとして戻すメソッドを通じて使用する (3) DBAHelperImplをDataStoreAccessHelperとして作成して戻すクラスを新たに作り、 そのクラス経由で取得、使用する 私は(1)の方法で使用していたのですが、(1)の方法はあまり勧められないとの記述があり、迷っています。 諸兄のご意見をお聞かせください。
- 171 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 12:03:26 ]
- >>168
> 配列すら最適化のために連続しておかれる保証はない まじでか。まあデカイ配列で落ちられても困るから有りだけど。
- 172 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 12:34:34 ]
- >>170
(1)の方法で勧められない理由は何か説明できる? 説明できないならば、(1)の方法でも何も問題ない。 (2)は結局はImplがどれかを知らなければならないので(1)と何も変わらない (3)はいわゆるFactoryクラスを作るパターンだが、Implを状況に応じて使い分ける必要がないならばただのオナヌー
- 173 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 12:42:55 ]
- (2)は後のリファクタリングを意識した冗長設計だな。
シングルトンにしたほうが都合が良いなら、内部でそうすればいいし、 DBAHelperImplに致命的なバグがあり、 工数的に他所のDAOをラップして返した方が都合が良い場合もある。
- 174 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 12:49:43 ]
- >>167
フィールドは並び替えられているという話を読んだ覚えがある。 char a; int b; char c; みたいなのを順番どおり並べると隙間が出来て無駄なんで int b; char a; char c; に並び替えて隙間を詰める。
- 175 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 13:17:36 ]
- 低レイヤーの話をするのは無意味。Cじゃないし。
- 176 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 13:23:32 ]
- >>171
javaの配列が短形でなくて良いのはどうせ最適化されて実行時に都合の良いように再配置され凸凹になるから。 メモリアドレスで言えば番地が連続している訳ではないし、その必要も無い。 配列要素nがあったとして番地的にn+1の要素が隣の番地にあるとは限らない。 だからjavaの配列は順次アクセスが早いとは限らない。
- 177 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 13:27:36 ]
- まあこのくらいの問題なら自分でアラインするより
よっぽどスマートなメモリの使い方する(文字列以外)から気にしたら負け。
- 178 名前:デフォルトの名無しさん [2007/08/04(土) 14:58:42 ]
- javaで構造体(みたいなもの)を定義してその中のある要素でソートするにはどうしたらいいですか?
たとえば 名前、身長、体重のデータからなる構造体を身長の高い順から表示するようなプログラムを作りたいんですが。
- 179 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 15:30:54 ]
- compareTo
- 180 名前:デフォルトの名無しさん [2007/08/04(土) 15:31:04 ]
- OSのシステム言語を英語にするとコンソールの日本語が文字化けしてしまうのですが
システム言語に関係なく日本語を文字化けさせないためには、どのようにすればよいのでしょうか? ロケールなどを設定してもダメでした…
- 181 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 15:32:07 ]
- 仕様です
- 182 名前:170 mailto:sage [2007/08/04(土) 15:45:23 ]
- お答えありがとうございます。
現時点では(1)を否定する理由が思いつかないため、(1)でいこうと思います。 その後いろいろ調べてみました。 (2)を採用する理由は、実装クラスの内部的な変更に強くなる(インタフェースのメソッドのみを使用している限り、利用する側の修正がない)。 (3)を採用する理由は、実装クラスそのものが別のクラスに変更されることに強くなる(データストアがWeb、Fileなどに変わっても使える)。 このように理解したのですが、これで問題ないでしょうか。
|

|