★★Java質問・相談スレッド161★★at TECH
★★Java質問・相談スレッド161★★ - 暇つぶし2ch1:デフォルトの名無しさん
13/03/23 11:43:57.99
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    URLリンク(pc11.2ch.net)
Webプログラミング URLリンク(pc11.2ch.net)
をご利用下さい。

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

前スレッド
★★Java質問・相談スレッド160★★
スレリンク(tech板)

2:デフォルトの名無しさん
13/03/23 18:42:22.38
< `∀´>ニダー

3:デフォルトの名無しさん
13/03/24 03:19:47.47
Eclipse Community Forums: CDT ≫ Redirect Input and Output
URLリンク(www.eclipse.org)

ここ見るとリダイレクトできるとか書いてあるが
引数の設定のとこに <hoge.txt とか >hoge.txt を書けとか
試してないから本当に出来るかは知らんけど

4:デフォルトの名無しさん
13/03/24 03:22:36.02
>>3
CDTって書いてあるけどjavaでもいけんのか?

5:デフォルトの名無しさん
13/03/24 03:25:10.64
スレリンク(tech板:995番)
これつかって試してみればええねん

6:デフォルトの名無しさん
13/03/24 04:38:29.96
Eclipseというのを入れてみたが糞重すぎてワロタ
ネットブックに入れるのは流石に無理かw
NetBeansってのはどうなんだろか

7:デフォルトの名無しさん
13/03/24 05:07:00.49
>>4
できないよ

8:デフォルトの名無しさん
13/03/24 07:14:46.17
前スレで気になったんだけど

for(;;)

ってどういう意味ですか?こういう特殊な書き方は名称を知らないとなかなかggってもヒットしなくて困りました

9:デフォルトの名無しさん
13/03/24 07:26:15.69
for文で、ループの継続条件が省略された場合は、常にループを継続
for(;;) {...} は while(true) {...} と同じ

10:デフォルトの名無しさん
13/03/24 07:30:50.42
>>9
どうもです
ちなみにforで書く場合とwhileで書く場合とでは何か違ってくるのですか?何かを意識した書き方とかあるのかな

11:デフォルトの名無しさん
13/03/24 08:08:22.10
それを話し始めると不毛な論争に突入する的なもの
ちなみに俺は while(true) 派

12:デフォルトの名無しさん
13/03/24 08:58:50.79
SoundAPIについて質問なのですが、ShotMessage.NOTE_ONを送信して1秒音を鳴らしたい場合、どのように書くのが普通ですか?
例えば

receiver.send(new ShortMessage(ShortMessage.NOTE_ON, 0, 60, 120), -1);
Thread.sleep(1000);
receiver.send(new ShortMessage(ShortMessage.NOTE_ON, 0, 60, 0), -1);

のように、ドの音をベロシティ120で送信し、Threadを1秒sleepさせ、その後ベロシティ0で再度送信する書き方をネットで見つけたのですが、このような書き方が普通なのですか?
これじゃ音はならないにせよドの音がベロシティ0で鳴り続けているような気がします・・・。
「何秒間鳴らす」をしたい場合、精度と処理速度を考えるとどのように書くべきなのでしょうか

13:デフォルトの名無しさん
13/03/24 10:51:59.22
0HzなPCM音もヴェロシティゼロなMIDI音も、音圧ゼロと同じ事だと思うんだが

14:デフォルトの名無しさん
13/03/24 10:57:25.75
>>13
音が鳴らないという点で同じであって他は違うんじゃ?

15:デフォルトの名無しさん
13/03/24 11:04:15.73
AC'97チップやHD Audioチップにバックグラウンドで音波データ流し込んでいる
ソフトシンセか何かがVM内かドライバ内にいるんだろうが、気に病むことはない。

それでも心配なら外付けMIDI音源買おう。

16:デフォルトの名無しさん
13/03/24 11:18:28.16
>>12
ベロシティゼロのノートオンはノートオフと同じ扱いと聞いた覚えがあるけれど
気になるならノートオフを送ればいいんじゃない
精度とかは送るタイミングを自分でうまいこと調整するしかない

17:デフォルトの名無しさん
13/03/24 11:21:01.83
>>16
了解しました

18:デフォルトの名無しさん
13/03/24 12:48:55.31
JAVAは、本買ってさらっとしか勉強しなかったんですが。
あらためて質問さして下さい。
以下のようなソース
public class Test01 {
public static void main(String[] args) {
byte b1 = 1;
byte b2 = 2;
コンパイルエラー // byte b3 = b1 *b2;
byte b3 = (byte) (b1 * b2);
System.out.print(b3);
}}
で、b1*b2がint型で返すという事ですが
となるとJAVAのメモリーレイアウトは、4バイトで
char,boolean,byte,shortは、それぞれ4バイトの領域をメモリー上にもっている
と思って良いですか?
どなたか、ご教示を。

19:デフォルトの名無しさん
13/03/24 12:50:20.31
違う。演算が4バイトに昇格されて行われる場合があるだけ。

20:デフォルトの名無しさん
13/03/24 13:22:31.73
馬鹿だけど自信満々

21:デフォルトの名無しさん
13/03/24 15:29:26.32
>>6
javacとed使ってろ。

22:デフォルトの名無しさん
13/03/24 17:12:40.06
>>10
1兆回ループ回したらwhile(true)のが0.13秒早かった

23:デフォルトの名無しさん
13/03/24 18:54:58.20
>>10
for自体がwhileのよくあるパターンを構文化しただけじゃないの。そのパターンに当てはまらない無限ループはwhileの方が読み易いと思う。

24:デフォルトの名無しさん
13/03/24 19:01:41.33
for文は配列専用
while文はList専用

と使い分けている

25:デフォルトの名無しさん
13/03/24 19:11:19.30
その使い分けの意図はよく解らない。

26:デフォルトの名無しさん
13/03/24 19:19:11.51
昔から配列操作といえばfor文だったから
初期化子が中にあるというのが

ただしfor(:)の場合は例外

27:デフォルトの名無しさん
13/03/24 19:20:50.20
反復回数が一定の処理ならfor文のほうがパッと見でソースが分かりやすい
反復子?って奴の変化が単調ならfor文、ループ内の処理次第で変わるならwhile

28:デフォルトの名無しさん
13/03/24 19:21:27.25
>>24
iteratorの糖衣構文はforでしか使えないよなぁ。

29:デフォルトの名無しさん
13/03/24 19:36:11.65
くだらんこといってないでruby勉強しろ

30:デフォルトの名無しさん
13/03/24 19:46:00.45
はいはいrubyruby

31:デフォルトの名無しさん
13/03/24 19:56:55.80
forを使った方が反復子のスコープが小さいというのはある。

Iretator<String> i = list.iterator();
while(i.hasNext()){...}



for(Iretator<String> i = list.iterator(); i.haxNext();) {...}

ではiのスコープがループの外に出ないのでforの方が良いという場合はある。

32:デフォルトの名無しさん
13/03/24 20:11:55.74
馬鹿には無理

33:デフォルトの名無しさん
13/03/24 20:47:35.57
>>31
java6からだっけ、foreach使えるようになったらイテレータとか使わなくなった

34:デフォルトの名無しさん
13/03/24 22:09:54.96
remove使う場合など反復子そのものに用事があるときはforの糖衣構文ではなく
whileとか使う必要がある。

35:デフォルトの名無しさん
13/03/24 22:44:52.40
ループ条件に定数式使っただけで警告をもりもり吐く
お節介な「品質向上システム」とかがあってだな・・・

36:デフォルトの名無しさん
13/03/24 23:36:08.36
>>31
独習JavaだかEssential Javaだかにそんなことが載っていたような気がする

37:デフォルトの名無しさん
13/03/25 02:01:09.61
Iteratorや糖衣構文のfor-eachは使うには便利だが、
自前で実装するとなると面倒臭い。

hasNext()でカーソル進めて、
next()でカーソルが指すオブジェクトを取得。

の方がずっと楽なのに、なんであんな仕様なんだ?

38:デフォルトの名無しさん
13/03/25 02:03:27.80
Iteratorパターンってもともとそういうもんでしょ
わざとクラスを分割しているんだと

39:デフォルトの名無しさん
13/03/25 02:09:55.64
ListIteratorつかって

List#get(nextIndex())

40:デフォルトの名無しさん
13/03/25 02:55:26.55
>>39
配列や線形リストのIteratorなら自作でも割と簡単。

hasNext()で次のデータがあるか調べる(内部状態は変化しない)、
next()でデータを返す+カーソルを進める(データを返しつつ、内部状態も変化させる、だがremove()のために返したデータは記憶しておく)
っていうJavaのIteratorの仕様だと、

例えば、親ディレクトリを指定して、サブディレクトリを含む全ファイルを1つずつ返すIterator
なんてのを作るのがクソ面倒臭いのよ。

41:デフォルトの名無しさん
13/03/25 06:44:21.10
あまり難しい話は禁止ね
やめなさい

42:デフォルトの名無しさん
13/03/25 08:33:44.98
>>40
そもそも、Genericsの仕様が難儀だからなあ
Genericsを意識しなかったら簡単につくたりして

43:デフォルトの名無しさん
13/03/25 09:05:16.73
ArrayListのlistiteratorかiteratorでremoveがunsupportedで驚いた覚えが。
LinkedListを使えば良かったけど。

44:デフォルトの名無しさん
13/03/25 13:53:11.13
>>40
commonsかどっかに、子Iteratorを連結するIterator実装があったよ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch