[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 03/12 09:33 / Filesize : 268 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

 【初心者】Java質問・相談スレッド118【歓迎】



1 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 18:21:51 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    pc11.2ch.net/hp/
Webプログラミング pc11.2ch.net/php/
をご利用下さい。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
【初心者】Java質問・相談スレッド116【歓迎】
pc11.2ch.net/test/read.cgi/tech/1213347130/
次スレは>>990あたりで。

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/


930 名前:デフォルトの名無しさん [2008/09/01(月) 23:25:14 ]
>>929それはboolean

931 名前:デフォルトの名無しさん [2008/09/01(月) 23:29:51 ]
妄想ならせめて旧帝大レベルじゃないとだめだろ。といっても、この前の東工大の学生は、左手腕に刺青みたいな模様をさらけ出してて、危ないやっちゃなと思ったけど、東工大は旧帝レベルだから少しは聞いてやったw
その話の真意よりも、たぶん自宅警備員候補だろうし、人生苦労する奴なんだろうなと思った。

932 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 23:30:17 ]
>>926
そんな場合だからといってready()を使う必要なんてないよ。

10年ぐらいJava触ってて一度もready()を使ったことないけど、「入力が
なければ他の処理をする」という感じの疑似マルチスレッドぐらいしか
用途が思い付かない。で、そういうときは素直にマルチスレッドにする。



933 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 23:32:10 ]
雑談したいなら他行け。

>>926
そうか?
標準入力を使うのは、その元が手入力だろうがファイルだろうがttyだろうがとにかく
何かが送られてくるのを受けたいだけだからだろう。
ファイルからだから ready を使うとか考えるのは違うんじゃないか。

934 名前:デフォルトの名無しさん [2008/09/01(月) 23:35:41 ]
つまり、>>915の説明はString/StringBufferの違いを本質的に指摘してないってことですね。実はそんな風に思ってましたがスッキリしました!

935 名前:デフォルトの名無しさん [2008/09/01(月) 23:39:39 ]
文系のITジャーナリストってのは、堀江豚と友達だったメガネで蝶ネクタイの30代ぐらいでキモイ奴か?
あいつは正に素早く死んで欲しい。いつもおれは、寝る前には必ず神棚で手を合わせて「早く死んでくれって」祈ってるぐらいだし。

936 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 23:41:15 ]
それそろすれ違い

937 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 23:55:54 ]
>932, 933
リダイレクトで渡せば EOF が取れないだろうから ready() の出番・・・と思ったのですが、書き込んでから試したらきちんと EOF になりました(阿呆です)
何か根本的に道を間違えているようです。
標準入力 + ready() というキーワードにこだわり過ぎているのでしょうか。
(その辺りを離れて単純に ready() の使い道を考えるのであれば、932 さんの仰るような nio っぽい使い方が一番の使い所であるような気がします。)


938 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 00:03:55 ]
Stringをだな。阿呆みたいに+=で連結しまくってるコードがあったんだ。
あんまりにもあんまりだと思って、StringBufferで書き換えてみたんだ。
でもベンチマークを取ってみると、1msも変わらなくてだな。
そのメソッドのほんの数行、DBをアクセスしてる部分が、処理時間の99%
以上を持っていってたんだ……。




939 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 00:15:58 ]
つまりStringBufferの利用価値は自己満足が大半ってことですね?

940 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 00:18:38 ]
それで結局StringとStringBufferの違いは何?

941 名前:デフォルトの名無しさん [2008/09/02(火) 00:19:36 ]
Bufferって付いてるか付いてないか

942 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 00:20:07 ]
確かによほど下手なことせん限り大差ないよな。でも演算途中でnew,new,new....ってのは気持ち悪い・・・

943 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 00:22:33 ]
もう夏は終わったんだぜ?


944 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 00:23:20 ]
でたでたでた。

945 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 00:23:47 ]
ちなみにStringBufferとStringBuilderとかHashTableとHashMapとかだと
実際の所どの程度速度に影響するもの?

946 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 00:33:23 ]
>>916
夏の終わりの駆け込みかと思ってたけど、オマエ、本気なんじゃないのか?

947 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 00:34:48 ]
>>926
間違ってるな。

948 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 00:36:48 ]
>>945
そいつらへのアクセスが処理の多くを占めてたら、それなりに効いてくるんじゃないか?
特にマルチコア/マルチCPUだと、synchronizedの部分でメモリの同期化が行われるから、それなりに馬鹿にならないコストがかかるような気がする。
とは言え、Java7あたりだと、JITコンパイラが不要なロックを省略するような最適化をぶちかましてくれるらしいからな……。



949 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 00:36:50 ]
>>945
それは自分でやってみれば分かる事じゃん・・・

950 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 01:19:11 ]
String:不変オブジェクト
StringBuffer:可変オブジェクト
っていう教科書にありそうなのではどうだw

951 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 03:03:11 ]
>>945
今となっては多分そんなには変わらない。


952 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 03:14:15 ]
まだやってんのか。違いは、効率じゃないんだよね。

953 名前:デフォルトの名無しさん [2008/09/02(火) 03:27:17 ]
ぼくらはreadyなんかなくても幸せ!

954 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 09:35:52 ]
RandomAccessFileは、ソースを見てもnativeばかりですが、
実際(実装上)のところ多少はバッファがきいているから、BufferedInputStreamと同じように考えてよいのでしょうか。
他に気になるところはありますか?

955 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 09:39:19 ]
EclipseってJavaでできてるみたいですが
Eclipseはexeにするのに何使ってるんですかね?

956 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 10:48:08 ]
>>954
どうしてバッファされていると期待できるのかが理解できない。
ソースは見てないけど、バッファされないと思うぞ。バッファリングと
ランダムアクセスは相性悪いから。


957 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 10:53:37 ]
いや、逆にバッファされていないと考える方がおかしいんだけど…
問題はバッファされているか・いないかじゃなくて、実用上問題ないかどうかだと思うが?

それと、ランダムアクセスとバッファが相性悪いのはどの辺りに根拠があるの?

958 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 11:07:42 ]
相性とかそういうレベルの話でVMが作られてたら笑えるw



959 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 11:09:37 ]
いつも通り>>956の思い込みが根拠じゃね?

960 名前:デフォルトの名無しさん [2008/09/02(火) 11:17:54 ]
>>958
そろそろ死んだ方がいいんじゃないか?人生疲れただろ。

961 名前:デフォルトの名無しさん [2008/09/02(火) 11:21:53 ]
そうだよな…なんで俺は生きてるんだろう…

962 名前:デフォルトの名無しさん [2008/09/02(火) 13:09:56 ]
ぼくらはEclipseなんかなくても幸せ!

963 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 16:01:00 ]
ローカルでグラフィック描画する時は
Graphics gr = img.getGraphics();
gr.drawLine(x1,y1,x2,y2);
gr.dispose();
と毎回設定して廃棄しますが

グローバルで
Graphics gr = img.getGraphics();
としておいて、ローカルで
gr.drawLine(x1,y1,x2,y2);
だけで、ずっとgrを使いまわしてはだめですか?

964 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 16:23:10 ]
いいよ
ずっと同じimgに描画するのなら

965 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 16:26:23 ]
そうですか

966 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 17:39:54 ]
ぼくはJCPADだよ!
みんな何使ってるの?

967 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 17:42:07 ]
eclipse

968 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 17:43:36 ]
今JCPADからEclipseに変えたとこ
閉じるのがいいね



969 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 23:22:31 ]
30過ぎてJava覚えてJavaの資格とったらプログラマーの就職先見つかりまつか?

970 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 23:27:10 ]
ちょっとの学歴あれば30ならまだ余裕で就けるよ

971 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:00:03 ]
>>969
おでも三十で就職目指してます。
お互い頑張りましょう。

972 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:06:21 ]
2つの別のクラスで同じ値を共有したいと思っています
ClassA、ClassBはループさせていて常に結果を出力しています。

ClassA{
if(hoge>0)
ClassF.setX(true);
else
ClassF.setX(false);
}

ClassB{
test.setEnable(ClassF.getX());
}

ClassF{
static boolean f;
static void setX(boolean bl){
 f = bl;
}
static boolean getX(){
 return f;
}
}

こんな感じのプログラムを書いたんですが、ClassBに反映されません
どこが間違っているんでしょうか?
それとも、別のクラスで同じ値を共有するのは無理なのでしょうか?

973 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:19:08 ]
もうちょっと意図が分かるように書けよ。
ClassBに反映されないってどういう意味だ?
test.SetEnabledで思った値が取れてないってことか?

こんな擬似コードじゃ分からんけど、
もしループとやらが複数スレッドで同時に回し続けてるって意味なら、
ClassF.fへのアクセスを同期化する必要がある。
volatileにするかメソッドにsynchronizedつける。


974 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:19:34 ]
>>972
別スレッドならsynchronizedかvolatile必須だぞ。
要素が1個かつJava5.0以上なら、AtomicBoolean等でもいい。

975 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:24:53 ]
大量のUDPパケットを受信して、処理したいんですが、
どうしても、幾つかのパケットを取りこぼします。
何か、効率良く処理できる方法はありませんか?


976 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:32:18 ]
>>973-974
ありがとうございます。
volatile static boolean f;
で望み度通りの結果を出すことができました。

977 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:37:50 ]
>>975
どーやってんだ

978 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:44:18 ]
>>976
変数が1個ならそれでいいけど、複数個ある場合はちゃんと同期取らないと変更途中のデータが読み出される可能性があるぞ。
詳しくは、マルチスレッドプログラミングに関する本を読んどけ。



979 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:46:00 ]
>>975
UDPならパケットが取れないことがあるのは前提じゃないのか

980 名前:975 [2008/09/03(水) 00:46:50 ]
DatagramSocketを使って、普通にポートを開いて受信しています。

981 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 01:26:19 ]
>>979
答えは、UDPを使わないってことだな・・・

982 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 01:56:38 ]
>>980
効率良くポートを開いて効率良く受信しろ

983 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 02:23:25 ]
動的なキャストはどうやるんでしょうか?
windows95/98のプラットフォーム向けのアプリなんでjdk1.2相当なんですが。
よろしくお願いします。


984 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 02:26:08 ]
動的キャストは、

Object obj;
...
val=(???)obj

ですが、???がコンパイル時未定の時のキャストです。

985 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 03:03:37 ]
で、それに何の意味があるの?
???が未定なのにキャストした後でどうやって使うわけ?


986 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 03:15:12 ]
>>984
valの型にキャスト

987 名前:デフォルトの名無しさん [2008/09/03(水) 03:34:55 ]

jdk1.5にある、val.getClass().cast(obj)

といった方が早いですね。これを1.2でやるにはどういうコードになるんでしょうか。


988 名前:デフォルトの名無しさん [2008/09/03(水) 03:46:03 ]
最近プログラムを勉強しはじめてわからないことだらけなのですが
キャストとパースの違いがよくわかりません
どなたか教えてください



989 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 04:35:02 ]
>>987
>>985 >>986 は無視かい・・・
Class#cast() は
>public T cast(Object obj) {
>if (obj != null && !isInstance(obj))
>throw new ClassCastException();
>return (T) obj;
>}
となってるから generic が無いと無理なんだと思っとけ。
それよりもこれを使うようなのは相当面相なプログラムだと思うが、
これを使わないですむようにするほうが後々の為になると思うぞ。

990 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 04:49:15 ]
無視というより、val=val.getClass().cast(obj) 程度で分かりませんでしたか。

使わないで済むように方法を探したんですけど、後々のためというより、ももともとターゲットが古くてこれしかないので聞いてるんですが?

知らないなら無理に御答えにならなくて結構ですけど、あなたはだいぶ妄想好きなんですねw

他に良い施策はありませんか?


991 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 04:59:34 ]
>>984
val=(???)objのあと、valをどう使うつもりなの?
型が決まっていなければvalのメソッドとかを呼び出すコードもvalを他のクラスに渡すコードも書けないんじゃない?
というかval自体の型はval=(???)objの前でどう宣言しているの?
objになりうるクラス共通にインタフェースを実装させて、そのインタフェースにキャストするとか、
全体のクラス設計を見直した方がいいと思う。

992 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 05:01:45 ]
単なるキチガイだったのか……

993 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 05:03:36 ]
>>990
お前の問題だから自分で捜せ
そんな態度じゃまともな人のレスも付かないよ

994 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 05:07:05 ]
そう思うんだけど、このスレの態度の方が酷くない。正しく真正糞スレだと思うが?

995 名前:デフォルトの名無しさん [2008/09/03(水) 05:09:42 ]
次スレ?

996 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 05:13:02 ]
>>991
あなたは、答えらず、それにたいした能力もないのに、そんなに人の庭が好きなんですか?

その設計とやらを知って、あなたは手伝ってくれるんですかねw
一つ忠告しておけば、首突っ込むのは程ほどにした方がいいですよ。

997 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 05:16:24 ]
>>998>>988に答えてやって>>999は次スレ立てて誘導>>1000は俺が踏む

998 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 06:02:25 ]
ジェネリクスは静的処理...
コンパイル時に決定できない型は、キャストするのも代入するのも不可能也。

パース...parse...castに似ている部分もあるのか...

【初心者】Java質問・相談スレッド119【歓迎】
pc11.2ch.net/test/read.cgi/tech/1220388885/



999 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 07:51:27 ]
999

1000 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 07:53:53 ]
1000get!

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<268KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef