★★Java質問・相談スレッド153★★at TECH
★★Java質問・相談スレッド153★★ - 暇つぶし2ch1:デフォルトの名無しさん
12/04/15 06:27:39.32
プログラミング言語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質問・相談スレッド152★★
スレリンク(tech板)

2:デフォルトの名無しさん
12/04/15 06:29:05.19
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing & JavaFX 10
スレリンク(tech板)
■ SWT は --
Java 高速GUI SWT 3
スレリンク(tech板)

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part22
スレリンク(tech板)
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 9
スレリンク(tech板)
■ Androidアプリの作成は --
Androidプログラミング質問スレ Part20
スレリンク(tech板)

■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 71 ★★
スレリンク(tech板)

■ NetBeansに関する雑談は --
NetBeans Part6
スレリンク(tech板)
■ Eclipseに関する雑談は --
Eclipse統合M32【Java/C++/Ruby/Python/Perl】
スレリンク(tech板)

**** 開発環境、実行環境は ****
■ Java SE Downloads
URLリンク(www.oracle.com)

3:デフォルトの名無しさん
12/04/15 21:25:43.42
>>1
乙です


Javaにおけるジェネリックスのメリットって、コンパイル時やIDE上でエラーチェックができることぐらいですか?
型推論のある言語だとそこから更に効果あるらしいんですけど・・・

MapとかListにジェネリックスを使うと見た目がかなりゴチャゴチャするので、
そのぐらいのメリットしかないなら、使いたくないんですが

4:デフォルトの名無しさん
12/04/15 21:34:36.66
どうであれ、使わなければ関係ない

5:デフォルトの名無しさん
12/04/15 22:27:24.72
実行時型検査のキャストでゴチャゴチャしたいか
コンパイル時型検査の型宣言でゴチャゴチャしたいかの二択だな。

6:デフォルトの名無しさん
12/04/16 01:18:25.90
ちがうだろ
ライブラリ書く奴が苦労するか
ライブラリ使う奴が苦労するか
の違いだ
プロならどちらを選ぶかは自明

7:デフォルトの名無しさん
12/04/16 10:00:27.13
型推論のある言語だとそこから更に効果あるらしいんですけど・

具体的に何ですか?

8:デフォルトの名無しさん
12/04/16 13:46:01.50
javaを習得したいんだがおすすめの参考書ってある?

9:デフォルトの名無しさん
12/04/16 13:51:56.15
>>8
The Java Programming Language

10:質問です
12/04/16 14:07:55.80
JFrame を new して setVisible(true) する時は、
EventQueue.invokeLater() 使って EDT(Event Dispatch Thread) 側でやれって事のようですが、
java.awt.Frame の場合もそうするべきなのでしょうか?
ザックリとググッてみたのですが Swingネタばかりで…
一応、main() で古典的なべた書きパターンで作ってみて問題は今の所発生はしてないのですが。

エロい人、よろしくお願い致します。

11:デフォルトの名無しさん
12/04/16 19:15:58.45
マルチスレッドにちょっぴり対応しているかもとかいう都合のいいことは考えない方が安全

12:デフォルトの名無しさん
12/04/16 19:29:50.06
今から Java開発環境をつくるなら、Java/Eclipse の
バージョンの組み合わせは、どんなのがベストでしょうか?

13:デフォルトの名無しさん
12/04/16 20:19:55.98
Javadocで、Listなら {@link List#size()} と書くように、
配列のlengthフィールドへのリンクを書きたいんだけど、どうすればいいですか?

14:デフォルトの名無しさん
12/04/16 20:34:31.07
>>12
自分用・勉強用なら、Java7 + Eclipse 3.7.2(だっけ? Java7対応のやつ)。
ダイアモンド演算子とリソース解放付きtryがすさまじく便利。

業務用ならJava5じゃね?

業務用だと、いまだにJava1.4が主流だと聞いたけど、
1.4はジェネリクスがないから、コレクションがまともに使えなくて、
誰かがコレクション捨てて配列使って書き始めて、全体的にぐだぐだになる。

Java5でジェネリクス使って、生の配列を使わないように書くとすごく楽。


……と俺は思ってるんだけど、他の人の意見も聞きたい。

15:デフォルトの名無しさん
12/04/16 21:14:51.33
>>13
{@link URLリンク(docs.oracle.com) あたりかねぇ?

16:デフォルトの名無しさん
12/04/16 21:18:14.40
>>15
{@link}ってそーゆー使い方できたっけか?

17:デフォルトの名無しさん
12/04/16 21:23:12.21
>>16
無理だったか。じゃ無理だわな。

それでも諦めないならHTML直書きするか、カスタムタグ定義してリンクに変換するか。

18:デフォルトの名無しさん
12/04/16 21:44:18.92
>>15-17
ありがとう。
素直に書くことはできないっぽいですね。
お手数おかけしましたが、「配列長がxxのとき―」とベタ書きの文章で書くことにします。


というか、自分でも調べてたんだけど、
配列#length フィールドのJavadoc、というか定義文自体が存在しない?
そもそも 配列#length ってフィールドじゃないのか…?

19:デフォルトの名無しさん
12/04/16 22:11:19.22
APIの一部じゃないのでAPI仕様というかjavadocには記述されてないだけ。
言語仕様には記述されてる。

あと言語仕様的にはフィールドだけど、
java.lang.reflect.Field で取ってこれない特別なフィールド。

20:デフォルトの名無しさん
12/04/16 22:44:49.39
>>19
あー。「API」じゃないのか、言語仕様なのか…。
配列が特別扱いなせいで、色々なところで「配列用の特別なコード」が書かれてるんだよなぁ。
ジェネリックとも親和しないしなぁ…。

うまくAPIに織り込めなかったのかね。
それか、Javascriptみたいに「世界はすべて(連想)配列だ!」くらい割り切ってくれてたらなあ…。

21:>>10
12/04/16 23:05:22.56
>>11
レスありがとうございます。
そうですね、結局の所、別スレッドと強調するのは必然でしょうしね…

22:デフォルトの名無しさん
12/04/16 23:34:02.78
すいません
ライセンスの質問などはどこのスレッドでさせてもらえますか?

23:デフォルトの名無しさん
12/04/16 23:40:35.49
スレリンク(tech板)
ここじゃね

24:12
12/04/16 23:47:07.19
>>14 サンクス!

とりあえず、書籍の付録CDにあった Java5(TIGER) & Eclipse3.1.1
で、開発環境を作ってみます。

25:デフォルトの名無しさん
12/04/17 00:27:46.22
なんでわざわざそんな古いEclipse使うの?

26:デフォルトの名無しさん
12/04/17 01:29:31.75
Pleiadesでいいじゃんな。javaもとりあえず1.5-1.7が入ってるし、
アップデートによって、自分で入れ替えればいい。

27:デフォルトの名無しさん
12/04/17 08:12:44.65
javaの入門書ってどれがおすすめ?
プログラミング経験はCをかじった程度

28:デフォルトの名無しさん
12/04/17 08:31:42.55
どれでも読め。
どれを読んでもハズレ。

29:デフォルトの名無しさん
12/04/17 10:25:15.10
>>23
ありがとうございます

30:デフォルトの名無しさん
12/04/17 13:36:08.30
いえいえ

31:デフォルトの名無しさん
12/04/17 14:34:08.47
Cの習熟度次第じゃないの?Cでバリバリソフト作れるぐらいならネット検索だけで十分だと思うけど。不安なら何か初心者向けの本一冊買ってあとは適時買い足せばいいと思う

32:デフォルトの名無しさん
12/04/17 17:41:49.86
起動しているjavaの現在使用メモリ及びMAXメモリを確認する方法はあるでしょうか?

33:デフォルトの名無しさん
12/04/17 17:58:55.74
内部からだったら java.lang.Runtime の maxMemory() freeMemory() あたり。
外部からなら jconsole みたいなモニタリングツール使えば。

34:デフォルトの名無しさん
12/04/17 20:17:40.30
Beans bindingはこちらでいいですか?

MVC構築に使える無料のライブラリ
を探して見つけたのですが、オススメ
とかやめとけとか、皆さんの評価を
聞かせてください。

35:デフォルトの名無しさん
12/04/17 20:21:09.38
>>31
thx
今日入門書買ってきた
がんばるよ

36:デフォルトの名無しさん
12/04/17 23:01:13.74
実践編はコレ!
URLリンク(www.amazon.co.jp)

37: ◆QZaw55cn4c
12/04/17 23:19:28.05
>>36
独習はおすすめしない。

38:デフォルトの名無しさん
12/04/17 23:34:08.68
知ったか乙

39:デフォルトの名無しさん
12/04/17 23:35:55.13
>>36
持ってるけど入門編でしょそれ

40: ◆QZaw55cn4c
12/04/17 23:37:41.83
>>38
背伸びして叩かれるのもときにはいいものだ。
で、独習のどこがいいの?読んだの?

41:デフォルトの名無しさん
12/04/17 23:41:39.61
背伸びして叩かれてろw

42:デフォルトの名無しさん
12/04/18 13:03:48.44
>>14
EOF過ぎたバージョンを業務で使うキチガイは流石にいないぞw

43:デフォルトの名無しさん
12/04/18 13:04:10.21
EOLだw

44:デフォルトの名無しさん
12/04/18 13:07:17.40
>>41

45:デフォルトの名無しさん
12/04/18 13:11:02.26
1.4.2 for buisinessってもうサポートされないんだっけか?

46:デフォルトの名無しさん
12/04/18 16:14:25.48
>>33
ありがとうございます。

外部からCtrl-Breakでスレッドダンプを出せとよしゃっと思いましたが、メモリは出ていないですね…
残念

47:デフォルトの名無しさん
12/04/19 15:48:29.23
javaでプログラム作る場合、アプリケーションの共通設定やユーザの設定ってどこでやるように想定されてるんでしょうか?
マルチプラットフォームだから、ウィンドウズのレジストリは論外としても、環境変数も必ず共通で使えるわけじゃないですよね。
OSや環境に応じていちいち別処理にするんでしょうか? 結局環境依存のプログラムになるような。

48:デフォルトの名無しさん
12/04/19 16:00:51.85
java.util.prefs.Preferences 使ってもいいし、
System.getProperty("user.home") に .aplicationName みたいな設定ファイル作ってもいいし。

49:デフォルトの名無しさん
12/04/19 16:05:57.55
>System.getProperty("user.home") に .aplicationName みたいな設定ファイル

は初耳ですね。どこかに出典はあるんですか?

50:47
12/04/19 16:25:00.27
>>48
ありがとうございます。
試してみます。

51:デフォルトの名無しさん
12/04/19 16:28:48.94
>>49
*nixアプリの伝統的な設定保存方法の一つ。
.emacs とか .vi とか見たことあるでしょ。

*nixでjava.util.prefs.Preferences使うと、その方法使うんじゃなかったか?

52:デフォルトの名無しさん
12/04/19 16:55:59.35
~/.emacs とか書いたほうがわかりやすいんじゃね?

53:デフォルトの名無しさん
12/04/19 17:03:18.92
user.homeプロパティーは、linuxだと普通は~/ですけど、windowsでリアルだと普通はどこになるんですか?

54:デフォルトの名無しさん
12/04/19 17:07:50.09
%USERPROFILE% じゃね?

55:デフォルトの名無しさん
12/04/19 17:32:56.34
MacOSXは
~/Library/Application Support/
とかが一般的だったりする。

窓付きアプリはあまり~/直下にもの置かないような気がするな

56:デフォルトの名無しさん
12/04/19 17:47:10.32
eclipseもnetbeansも~/.eclipse ~/.netbeansってディレクトリ掘るし、
jeditなんかも同じだな。

macではどうなるか知らんけど。

57:デフォルトの名無しさん
12/04/19 17:54:52.64
既に設定ファイルにもus-ascii,88591だけでなく日本語など混在しているのでvi,emacsなどのレガシーはもう使ってません。
さらにx起動しないときの(tty)コンソールがbash --helpの時でも日本語表示できないので、vi,emacsを極める理由もありません。

58:デフォルトの名無しさん
12/04/19 18:05:00.65
ISO8859_1と日本語って混在できたっけか?

59:デフォルトの名無しさん
12/04/19 18:20:32.87
設定ファイルの説明部分に日本語でコメントを残しておくので、設定ファイルの種類は8859_1,utf8,eucjpなどが混在します。
prefsなら別ですが、home.userに置くような設定ファイルはテキストじゃなくてバイナリーと考えた方がいいんじゃないですかね。

60:デフォルトの名無しさん
12/04/19 18:50:48.43
そんなもんディレクトリ作って別ファイルにしてもいいし、お好きなように。

61:デフォルトの名無しさん
12/04/19 18:56:02.26
>>58
ISO2022JPならなんとかならん?

複数のファイルであっても複数の文字コード混在させないだろ、普通。
設定ファイルなんてユーザには直に弄らせないんだから統一するの楽だし。

62:デフォルトの名無しさん
12/04/19 18:59:10.42
そろそろスレ違い

63:デフォルトの名無しさん
12/04/19 20:18:30.09
JavaFx Scene BuilderのツールバーのEditが開かない。

64:デフォルトの名無しさん
12/04/19 20:22:13.26
BASICはfor next や if文など、基本的なものはまぁまぁわかっているつもりなんですが、
javaをはじめるにあたって本か何かで身に着けたいと思います。
おすすめの本ありますか?

65:デフォルトの名無しさん
12/04/19 20:28:39.15
スレちがい
スレリンク(tech板)

66:デフォルトの名無しさん
12/04/19 20:34:12.52
>>65
すみません  そちらにいきます

67:デフォルトの名無しさん
12/04/19 21:12:31.12
Eclipseで実行やデバッグを押したら自動的に保存されるようにする設定のやり方を教えてくれ

68:デフォルトの名無しさん
12/04/19 21:18:04.33
スレち
スレリンク(tech板)

69:デフォルトの名無しさん
12/04/19 21:22:32.22
自治厨の屁の役にも立たないレスで1レス消費するのもどうかと思うけどな

70:デフォルトの名無しさん
12/04/19 21:25:06.06
そう思うならID表示に汁

71:デフォルトの名無しさん
12/04/19 21:33:08.20
>>61
切り替え方式でも8859_1との混在は無理だろ

72:デフォルトの名無しさん
12/04/19 21:40:57.74
wikipedia見てみたら2022-JP-2 (RFC1554 1993years)から混在できるって書いてあった。

73:デフォルトの名無しさん
12/04/19 22:43:01.36
自治厨 = 中二

74:デフォルトの名無しさん
12/04/19 23:29:37.84
↑自己紹介

75:デフォルトの名無しさん
12/04/19 23:52:50.18
java自体の質問じゃないんですが、java総合スレってないんでしょうか?

76:デフォルトの名無しさん
12/04/20 01:53:37.94
javaが見れないのでjavaをアンインストールして新しいのをインストールしようとして
コントロールパネルでJava(TM) 6 Update29をアンインストールしたところ
何故かJava(TM) 6 Update20 のアンインストールが始まった挙句
「この Windows インストーラ パッケージに問題があります」と出て行き詰ってしまいます
どなたか解決法を教えて頂けないでしょうか?


77:デフォルトの名無しさん
12/04/20 02:52:28.27
Java(TM) 6 Update20を拾って来て
上書きインストールして
アンインストールする

78:デフォルトの名無しさん
12/04/20 07:12:39.57
エラーメッセージでググればなんか出てきたよ

気のせいかMicrosoftInstaller(MSI)やInstallShieldのトラブルを目にするな最近。
検証不足のセキュリティソフトがなにかやらかしたのか

79:デフォルトの名無しさん
12/04/20 09:41:05.64
やらかしたのは自分だろ

80:デフォルトの名無しさん
12/04/20 11:20:43.41
馬鹿には無理

81:デフォルトの名無しさん
12/04/20 14:53:45.95
だなw

82:デフォルトの名無しさん
12/04/20 21:26:25.25
「馬鹿はjavaやれ」と言われこのスレでは「馬鹿には無理」といわれます><

83:デフォルトの名無しさん
12/04/20 21:41:07.70
馬鹿はC#だろw

84:デフォルトの名無しさん
12/04/20 22:09:03.09
C#も後出しだけあって、作りやすさは相当なもんだな
C#というよりVB#って感じだけど。

85:デフォルトの名無しさん
12/04/20 22:56:52.73
javaしかできない馬鹿には無理

86:デフォルトの名無しさん
12/04/20 23:00:14.30
馬鹿にはおっぱい言語を勧める

87:デフォルトの名無しさん
12/04/20 23:03:12.85
おまえらどうせDBからデーター引っ張ってHTML出力する程度のプログラムしか書けないんだからjavaで十分じゃん


88:デフォルトの名無しさん
12/04/20 23:04:58.75
と全角が申しております

89:デフォルトの名無しさん
12/04/20 23:43:39.01
charの0の意味について質問します。
普段ならnullかどうかで分ける事を考える様な場所で、charを返すメソッドを使用して場合わけをしようと考えています。
そこで、charは0以上しか取らないことがわかったので、0を返したときに別の動きをするようにしようと考えた時に疑問がわきました。
普通のcharに0を代入するとどのような文字に対応しているのでしょうか?

char c = (char)0
if(c == ' ') { System..out.println("aa")}
System..out.println(String.valueof(c))

としても何も表示されず悩んでいます。教えていただけないでしょうか?

90:デフォルトの名無しさん
12/04/20 23:51:47.70
Cでは0はナル文字(終端文字)

91:デフォルトの名無しさん
12/04/21 00:00:07.07
馬鹿には無理

92:デフォルトの名無しさん
12/04/21 05:59:14.73
馬鹿には無理

93:デフォルトの名無しさん
12/04/21 11:08:40.72
>>89
>>90の言うとおり0はNULL文字で、改行コードやTabと同じ制御文字。
制御文字だから見えないし、エスケープシーケンス無しには書けない。

場合分けには、charの65535が不正な文字コードだから、これ使えば?

94:デフォルトの名無しさん
12/04/21 12:06:53.36
>>89
> if(c == '') { System..out.println("aa")}
if(c == '\0') { System..out.println("aa")}

> System..out.println(String.valueof(c))
不可視文字の確認したいなら
System..out.printf("U+%04X%n", (int)c);
とかした方が。

95:デフォルトの名無しさん
12/04/21 12:25:34.75
java1.7環境だと、実行可能jarは2バイト文字が含まれるディレクトリ配下だと起動できない
これって意図的なの?

96:89
12/04/21 14:02:17.14
>>90>>93>>94
普通の文字ではなかったんですね。ありがとうございました。

場合わけには65535使いたいと思います!

97:デフォルトの名無しさん
12/04/21 14:06:13.29
残業代が基本給を超えるって1日何時間残業してるんだ?

98:デフォルトの名無しさん
12/04/21 15:08:16.80
javaの入門書でおすすめ教えてください。
プログラミングはcを少しかじったくらい。

99:デフォルトの名無しさん
12/04/21 15:43:49.97
Cがわかってるなら「入門書」は必要ない

100:デフォルトの名無しさん
12/04/21 20:34:03.44
少しかじったくらい
としか書いてないのに馬鹿は日本語も読めないのか

101:デフォルトの名無しさん
12/04/21 20:39:15.69
何もわからんのに
かじったとか言う方が悪い

102:デフォルトの名無しさん
12/04/21 21:06:45.55
>>100
Cをかじった程度ってことは、とりあえず文法や構造体、ポインタの扱い方は理解してて
ソースファイルの分割も出来るってことだろ
その程度も出来ないんだったら「まったくわかりません」って書いてくれないと

103:デフォルトの名無しさん
12/04/21 21:27:37.12
>>102
禿同

104:デフォルトの名無しさん
12/04/21 21:31:43.47
オレはかじったことあるっていう言葉に受ける印象は
配列が使えたり単純なソートができたり程度という感覚かな。

ちなみにお前ら的にjavaだとどの程度のレベルがかじったなの?

105:デフォルトの名無しさん
12/04/21 21:41:49.15
解らないところが出てきたら
source読むようになるぐらい。

106:デフォルトの名無しさん
12/04/21 21:44:54.65
ソートとか以前に
・nullと"null"の違い
・空文字列って?
は理解しといてもらいたいかな。
こんなことも知らない派遣クンとJava知らない主任が組んだら
あ~ら最凶のプロジェクトに・・・
って事例が現在進行中。

107:デフォルトの名無しさん
12/04/21 22:03:38.97
馬鹿には無理

108:デフォルトの名無しさん
12/04/21 22:09:40.34
>>104
Javaに限らないけど、基本的なアルゴリズムとデータ構造を自分で実装できるレベルなら
かじったと言ってもいいんじゃね

109:デフォルトの名無しさん
12/04/21 23:09:25.39
こんな糞スレで質問しようと思う馬鹿には無理

110:デフォルトの名無しさん
12/04/22 00:26:22.82
for (::)
System.out.println("馬鹿");

111:デフォルトの名無しさん
12/04/22 07:50:11.13
下級戦士はよく吠えるな

112:デフォルトの名無しさん
12/04/22 08:29:18.08

           ∧_∧        >>107
    (( ~/⌒<丶`Д´>  >>109
        (/ーし'ー-J       >>110

113:デフォルトの名無しさん
12/04/22 10:23:06.27
馬鹿には無理

114:デフォルトの名無しさん
12/04/22 13:02:50.58
〉〉98だけど説明不足でした
cは〉〉102の言うことは理解してるくらいのレベルです



115:デフォルトの名無しさん
12/04/22 13:03:52.85
安価ミスったww


116:デフォルトの名無しさん
12/04/22 13:40:08.80
なら、入門書なんか読んでもつまんねーよ。

「変数は箱です」からはじまって、うだうだやって、
ディレクトリの再帰検索やって終わり、で2000円。

解説サイト読んでから言語仕様読んで、
そしたら、Apache Commons Langあたりの適当なライブラリの
ソースコードDLして読めばいいよ。

117:デフォルトの名無しさん
12/04/22 13:53:26.64
このスレ転載して、おすすめの本の広告つけようとしてるアフィサイトなんじゃね?

118:ora!
12/04/22 13:57:42.66
>>76
[Windows ベースのコンピューターでプログラムをインストールまたはアンインストールする際の問題のトラブルシューティング方法]ってのは参考にならないかな?
URLリンク(support.microsoft.com)

119:ora!
12/04/22 15:03:03.94
>>98
[Java / プログラミングセミナー]はどうでしょう?
URLリンク(www.acroquest.co.jp)

120:ora!
12/04/22 15:26:55.65
>>98
[Javaチュートリアル]とか?
URLリンク(docs.oracle.com)

121:デフォルトの名無しさん
12/04/22 19:03:51.74
C言語でfwrite((char*)ptr,sizeof(double),1,fp)
で書きだしたバイナリの8バイトを
JavaでDataInputStream::readDoubleあるいはreadFloat
で読もうとしているのですが、成功しません。(ハードウェアは同じです)
・数値のフォーマットをあわせる
・ファイル末尾に改行がないと読み込みエラーが出る
の2点について、Java側で何とかしないといけないのですが、どのへんを調べれば分かりますか?

122:デフォルトの名無しさん
12/04/22 19:30:41.31
>>121
エンディアン間違ってるだけなら、
value = in.readDouble();
value = Double.longBitsToDouble(Long.reverseBytes(Double.doubleToLongBits(value)));
で変換できる。最初から正しいエンディアンで読み込む方が楽だろうけど。
C言語のdoubleはフォーマットは処理系依存だったような気がするから、
そっちも調べてみるべきかも。NaNとか無限大も変換したいなら特に。

ファイル末尾に改行云々は何したいのかわからん。
改行を発見できないとエラーにするプログラムが書きたいのか、
意図しない「改行が発見できないよエラー」が出て困ってるのか。

123:デフォルトの名無しさん
12/04/22 19:50:45.47
>>122
ありがとうございます!動きました。
エンディアンって、Cで単純なダンプをすると逆になってるってことですか?
これだとjavaに負荷がかかりそうですね。

java.io.EOFExceptionが最後にトラップされてるのですが、
すみません、改行かどうかは分かりません。
例外処理のしかたがよくわからないもので、とりあえず放置します。

124:デフォルトの名無しさん
12/04/22 19:54:52.02
少し調べましたが、C側のエンディアンが環境依存なんですね。
こんな基本的なところでズレているとは・・・

125:デフォルトの名無しさん
12/04/22 21:45:27.30
まさに馬鹿には無理w

126:デフォルトの名無しさん
12/04/22 21:49:17.19
質問です。

HttpURLConnectionを使ったサイトの取得時に
InputStream、InputStreamReader、BufferedReaderを使って処理しているのですが
処理中にエラー(ネット接続が切れたor処理のバグ)が起きたときにきちんと閉じる処理をしようとしたら
閉じる処理自体にもtry-catchが必要とeclipseさんに言われてこんな感じになってしまいました。

try{
  処理省略
}catch(Exception e){
  httpURLConnection.disconnect();

  try {
    inputStream.close();
  } catch (Exception e2) {
  }

  try {
    inputStreamReader.close();
  } catch (Exception e3) {
  }

  try {
    bufferedReader.close();
  } catch (Exception e4) {
  }
}
自分でもおかしいと思うのですが閉じる処理は
httpURLConnection、inputStream、inputStreamReader、bufferedReader
のうちどれかだけをすればいいのでしょうか?やっぱり全部必要でしょうか?

127:デフォルトの名無しさん
12/04/22 22:27:22.13
覚え始めなんだけれども
どんなものから作っていったらいい?
少しづつステップアップしていきたい

128:デフォルトの名無しさん
12/04/22 22:27:56.63
>>126
jdk1.7以降がターゲットなら、素直に try with resources 使った方がいい。
try (InputStream in = connection.getInputStream()) {
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
//処理
}
みたいな奴。

1.6以前もターゲットの場合は、
public static void closeQuietly(Closeable c) {
try { c.close(); } catch (IOException e) { /*無視する*/ }
}
みたいなメソッド作っておいて呼ぶと、いくらかスッキリする。

あと、close は基本的に連鎖的に close するのでイチイチ全部呼ぶ必要はない。
どうしても close の連鎖が切れるのが心配なら
大元の(というか直接リソース握ってる)InputStream だけを close しときゃいい。

129:デフォルトの名無しさん
12/04/22 23:17:24.31
>>127
どんなものを作りたいと思ってJavaを勉強しはじめたの?

130:デフォルトの名無しさん
12/04/22 23:56:30.36
>>127
自分がよく使うソフトか、よく使う作業の補助になるようなので、出来るだけ小さいプログラムがいい。
毎日そのプログラムに触るぐらいじゃないと良くならないし、何度も作り直せるぐらい小さくないと、設計が上達しない。

131:デフォルトの名無しさん
12/04/23 00:38:44.52
初心者は自分のレベルをまず説明しよう。

(他のプログラム言語はバリバリやってるけど)javaは初心者。
プログラム自体初心者。

まぁ、他の言語でも今まで作ってきたんならこんな質問はしないと思うけど、
そうすると別にjavaの質問ではないしな。

132:デフォルトの名無しさん
12/04/23 02:36:25.90
<td class="abc" align="center">food</td>
のfood部分のみをJsoup取り出したいのですが...
どなたかご教授お願いします。

133:デフォルトの名無しさん
12/04/23 09:33:32.53
小数点以下2桁までで切り捨てるにはどうすればいいでしょうか?

134:デフォルトの名無しさん
12/04/23 13:43:37.88
>>133
java.text.DecimalFormat
URLリンク(java.sun.com)

135:デフォルトの名無しさん
12/04/23 16:11:59.04
>>133
負の値や精度考慮しない手抜きでいいなら
value = Math.floor(value * 100) / 100;

自前部分のコード量減らしたいなら
BigDecimal val = new BigDecimal(value).setScale(2, BigDecimal.ROUND_DOWN);

136:デフォルトの名無しさん
12/04/23 16:41:56.11
>>134
>>135
ありが10


137:デフォルトの名無しさん
12/04/23 17:41:13.95
>>132
for (Element node : document.select("td.abc[align=center]")) {
System.out.println(node.ownText());
}

138:デフォルトの名無しさん
12/04/23 20:07:39.92
>>129
最終的には簡単なゲーム
>>130
なるほど
ランチャーとかファイラーみたいなのつくってみます、何ヶ月かかるか分からんけど

139:デフォルトの名無しさん
12/04/23 21:13:21.86
ゲームならそんなの作らずに「android ゲーム 作る」とかで検索して解説してあるとおりに適当に作ってみればいいよ

140:デフォルトの名無しさん
12/04/23 23:18:59.76
質問です。
目的の実行結果のように,
・英語,数学,国語の各科目の試験受験者数をキーボード入力
・各科目の受験者の名前と点数をキーボード入力
・各科目の入力データ,平均点,最高点,最高点獲得者の出力
を行うソースファイルを作成してください.

目的の実行結果

C:\
[英語の受験者数を入力してください] > 2
[数学の受験者数を入力してください] > 2
[国語の受験者数を入力してください] > 4
[英語の1人目の受験者の名前を入力してください] > 鈴木
[鈴木さんの英語の点数を入力してください] > 95
[英語の2人目の受験者の名前を入力してください] > 三枝
[三枝さんの英語の点数を入力してください] > 80
[数学の1人目の受験者の名前を入力してください] > 西田


141:デフォルトの名無しさん
12/04/23 23:19:21.45
続き
  [西田さんの数学の点数を入力してください] > 88
[数学の2人目の受験者の名前を入力してください] > 野田
[野田さんの数学の点数を入力してください] > 95
[国語の1人目の受験者の名前を入力してください] > 鈴木
[鈴木さんの国語の点数を入力してください] > 92
[国語の2人目の受験者の名前を入力してください] > 三枝
[三枝さんの国語の点数を入力してください] > 95
[国語の3人目の受験者の名前を入力してください] > 西田
[西田さんの国語の点数を入力してください] > 95
[国語の4人目の受験者の名前を入力してください] > 野田
[野田さんの国語の点数を入力してください] > 87
入力された試験結果は以下のとおりです
英語鈴木さん:95点三枝さん:80点
英語の平均点は87.5点です
英語の最高点は95点です
英語の最高点獲得者は鈴木さんです
数学西田さん:88点野田さん:95点
数学の平均点は91.5点です
数学の最高点は95点です
数学の最高点獲得者は野田さんです
国語鈴木さん:92点三枝さん:95点西田さん:95点野田さん:87点
国語の平均点は92.25点です
国語の最高点は95点です
国語の最高点獲得者は三枝さんと西田さんです


142:デフォルトの名無しさん
12/04/23 23:23:17.34
凄い釣り師がキタ!

143:デフォルトの名無しさん
12/04/24 00:01:08.84
>>137
助かりました、本当にありがとうございます。


144:デフォルトの名無しさん
12/04/24 00:05:11.91
俺も>>127みたいな感じなんだけど、
minecraftのmodを作りたいという変な理由でjava勉強し始めたんだけど、

最初どういうふうに勉強して、どういうふうにプログラムを作っていけばいいのか教えて下さい。

145:デフォルトの名無しさん
12/04/24 00:36:56.47
とりあえず文法を憶えたらググってMODの作り方を勉強
あとは他のMODのソースとかあればそれを参考にしたり試行錯誤で作っていく

146:デフォルトの名無しさん
12/04/24 00:59:10.37
>>144
最初は他の言語の方がいいと思うけどね。
正直javaはあんまり言語仕様やとりまく環境としては良くないから。

147:デフォルトの名無しさん
12/04/24 01:05:49.73
>>145
他のMODのソース見るのは勉強になりそうかな? やってみます。

>>146
学校ではBASICやってます。 java難しいです。

148:デフォルトの名無しさん
12/04/24 01:29:22.11
環境とか言語仕様とか言ってたら、
なにも出来ないと思うけどな。
あ、だからなにも出来てないのか。

149:デフォルトの名無しさん
12/04/24 01:54:57.18
>>140
Javaは始めて3日くらいだけど、こんなもんでいいのか?
URLリンク(pastebin.com)

もっといい書き方誰か教えてください

150:デフォルトの名無しさん
12/04/24 06:00:35.05
うざい

151:デフォルトの名無しさん
12/04/24 13:54:18.80
パッケージ名なんですが、みなさんどんな感じでわけてます?
どんなに小規模のアプリケーションでも、
[自分のドメイン名].[アプリケーションの名前].[クラス]ってやってます?
それとも
[自分のドメイン名].[アプリケーションの名前のクラス]みたいにいきなり置いてます?

152:デフォルトの名無しさん
12/04/24 14:10:56.76
「アプリケーションの名前」 っつーか、用途じゃね?

153:デフォルトの名無しさん
12/04/24 14:11:30.22
クラスファイル1個ぐらいの小規模アプリだったらデフォルトパッケージに置いとく。

154:デフォルトの名無しさん
12/04/24 14:15:42.24
>>152
あ、なんか書き方おかしかったですが、パッケージをそのアプリケーション専用の作るか、作らないかって質問でした。

>>153
ありがとうございます。
よく考えたら、全部が全部パッケージに分類しなくてもいいのか。


155:デフォルトの名無しさん
12/04/24 16:57:24.35
誰か助けて・・・

156:デフォルトの名無しさん
12/04/24 17:04:02.20
知らんがな

157:デフォルトの名無しさん
12/04/24 18:53:41.48
漏れは自分のドメイン名は恥ずかしいので付けてない

158:デフォルトの名無しさん
12/04/24 20:53:26.36
JarファイルA、B、Cが有ったとして、
AはX-1.0でないと動かない。
BはX-2.0で無いと動かない。
X-1.0とX-2.0の仕様は部分的に非互換で部分的に互換。
つまり似ている部分は有るが共存はできない。
こういう場合はどうすれば…

159:デフォルトの名無しさん
12/04/24 20:54:00.95
○ JarファイルA、B、Xがが有ったとして、

160:デフォルトの名無しさん
12/04/24 21:21:32.44
ggrks

161:デフォルトの名無しさん
12/04/24 22:17:17.07
複数のXでAとBの開発・テストを平行して行いたいのならMaven覚えればいい

A,B両方を使うDがどっちのXを参照すべきかは他人に判断できない問題

162:デフォルトの名無しさん
12/04/24 22:48:16.33
よくFactoryでもなければ、ClassでもないのにstaticでnewInstance();を定義しているクラスがありますが、
あれは何の意義があるんでしょうか?new Type();と比べ何のメリットがあるんでしょう?

163:デフォルトの名無しさん
12/04/24 22:51:36.32
1 今後変えていくかもしれんのでnewでインスタンスつくんなおという願い
2 やってみたかっただけ
3 知能に問題がある人が書いた

164:デフォルトの名無しさん
12/04/25 06:08:05.14
>>163
> 1 今後変えていくかもしれんのでnewでインスタンスつくんなおという願い
なら、コンストラクタ不可視にすんだろ。

> 2 やってみたかっただけ
> 3 知能に問題がある人が書いた
これはあるある

4 内部でうまいことキャッシュしてやるからnewInstance使え。キャッシュとか
   別にいらねーなら勝手にnewしろ。そのかわり自分で面倒見ろよ

大抵は3か4だろう。2は殴れ。3は殴るな後が怖い。

165:デフォルトの名無しさん
12/04/25 06:52:14.81
死ねよ雑魚が

166:デフォルトの名無しさん
12/04/25 08:52:47.69
自殺宣言?

167:デフォルトの名無しさん
12/04/25 11:52:19.93
「自分は頭が良くて詳しいです」的な自己満足レスの典型だぞ。
相手は超初心者なんだからもう少し優しく教えてあげないと。
さもなくばスルーでOK

168:デフォルトの名無しさん
12/04/25 12:08:04.14
>>162
staticファクトリーメソッドで調べてごらん

169:デフォルトの名無しさん
12/04/25 12:50:03.47
断る

170:デフォルトの名無しさん
12/04/25 14:15:45.83
あ゛?なめてんのか?

171:デフォルトの名無しさん
12/04/25 14:58:43.99
>>162
シングルトン
インスタンスの数を常に1つにしたい場合に使う

172:デフォルトの名無しさん
12/04/25 15:00:37.73
Java6u31の総称型の質問です。

class Foo<T extends Hoge> {
public int insert(List<T> entitylist) { /* ... */ }
public int insert(List<Long> primaryKeyList) { /* ... */ }
}

とあるとき、java.lang.LongはHogeのサブクラスではないのに同じメソッドイレイジャだとコンパイルエラーになります。
総称型のextendsによる限定は考慮されない仕様なのでしょうか。

173:デフォルトの名無しさん
12/04/25 15:16:58.70
過去と互換性のあるレイヤではパラメタ型全部消えるのでerasure。

174:デフォルトの名無しさん
12/04/25 16:18:00.39
コンパイルの過程で総称型の情報が消えてしまい、
List<Foo>もList<Baa>もただのListとなるから同じとみなされるわけですね。

erasureの動きが少し理解できました。
ありがとうございました。

175:デフォルトの名無しさん
12/04/25 18:46:45.00
java6 update16ください

176:デフォルトの名無しさん
12/04/25 19:27:17.23
>>171
シングルトンはnewInstance()なんて名前普通つかわんだろ

177:ora!
12/04/25 19:52:13.02
>>175
[Java の旧バージョンと関連文書の入手先]
URLリンク(www.java.com)

178:デフォルトの名無しさん
12/04/25 20:07:39.23
>>167
死ねよ

179:デフォルトの名無しさん
12/04/26 00:27:03.13
シングルトンはgetInstance()だな
>>162がよく見るソースコード見てみたいものだ

180:デフォルトの名無しさん
12/04/26 00:37:19.91
5 今後プリミティブ型廃止の流れがきた際にnew演算子を使っていた不幸な人たちを少しでも減らしたい願いの表れ

181:デフォルトの名無しさん
12/04/26 01:10:26.08
>>172
Javaの型パラメータは、コンパイル時に除去されてObject型になってしまうのだよ。
この性質のことをイレイジャという。
そんなわけで、おまえさんが例示した2つのメソッドは同じシグネチャになってしまいコンパイルエラーになるわけだ。

182:デフォルトの名無しさん
12/04/26 02:14:23.87
抽象戦隊!イレイジャー!

よし覚えた。

183:デフォルトの名無しさん
12/04/26 03:54:24.16
私的用プログラムを高速化したいので、javaからsse1,sse2(amd64)にアクセスしたいんですが、JNI,JNAを使ってCでブリッジを書かないとやっぱり無理でしょうか。

184:デフォルトの名無しさん
12/04/26 12:32:33.55
わからない
俺にきくなよ

185:デフォルトの名無しさん
12/04/26 13:07:39.15
知らないならレスしないでください
うざいだけです

186:デフォルトの名無しさん
12/04/26 18:33:31.14
JNI,JNAを使ってCでブリッジを書けばsse1,sse2(amd64)にアクセスできますよ



187:デフォルトの名無しさん
12/04/26 21:43:41.28
sseの高速化メリットよりメソッド呼び出すコストの方が高そうだな

188:デフォルトの名無しさん
12/04/26 21:45:54.50
>>168
調べましたけど何でstaticなんでしょうね。
インスタンスメソッドにしたって大したコストにならないでしょうに。

189:デフォルトの名無しさん
12/04/26 22:10:27.71
>>187
アーキテクチャにもよるけど、JNI1回で10-50msぐらいかかる。
SSE使うだけのジョークアプリになるね。

190:デフォルトの名無しさん
12/04/26 22:27:00.05
だなw

191:デフォルトの名無しさん
12/04/26 22:43:23.68
今のJVMって最適化オプションでSSE使ってくれるだろ
あくまで俺が使ったときの一例の話だけどgccの自動ベクトル化より速かった

192:デフォルトの名無しさん
12/04/27 00:07:33.40
Romeを利用してRSSを配信したいのですが、enclosureタグが出力できません。

List<SyndEnclosure> enclist = new ArrayList<SyndEnclosure>();
SyndEnclosure enc = new SyndEnclosureImpl();

enc.setUrl(image_path.toString());
enc.setType("image/jpeg");
enc.setLength(image_file.length());
enclist.add(enc);
entry.setEnclosures(enclist);

どこか問題ありますでしょうか・・・

193:デフォルトの名無しさん
12/04/27 00:08:54.32
sse(mmx),amd64は、java8で実装される予定のラムダとbulk dataを利用して使おうと考えてます。
java8からはmulticoreの活用はもちろん基本的に内部イテレータ仕様がメインになるようなので、java5 generics typeの時と同じく次回の改訂はjava languagesのパラダイムシフトになるかなと思います。

194:デフォルトの名無しさん
12/04/27 00:39:51.99
意味がわからん
ラムダ使った並列化はMIMDだろ

195:デフォルトの名無しさん
12/04/27 01:06:27.15
起動したクラスって取得できますか?
public class SuperClass{
public static void main(String[] args){
}
}

public class SubClass extends SuperClass{
}

こんな感じで、SubClassで起動した場合に
mainの中で起動したクラス(SubClass)を取得したいのです。

196:デフォルトの名無しさん
12/04/27 06:51:13.43
>>193
        > 9年ぶりに言語仕様を改訂予定
URLリンク(ja.wikipedia.org)

197:デフォルトの名無しさん
12/04/27 08:57:14.77
↓の状態で実行すると数字の重複をしてしまいます。
乱数の重複を防ぎたいのですがどうすれば良いですか?
ネットでいろいろな方法を調べたのですが、どれも上手くいきませんでした。

import lib.Input;

public class Sample1{
public static void main(String[] args){
int a = Input.getInt("何人に配りますか?(2~5)");
for (int i=1;i<=a;i++){
System.out.println(i+"人目の手札は以下のとおりです.");
System.out.println(cards()+""+cards()+""+cards()+""+cards()+""+cards());
}
}
public static String cards(){
String[] a = {"ハート","クラブ","ダイヤ","スペード"};
int b= (int)((Math.random()*13)+1);
int c= (int)(Math.random()*4);
int c_b = (int)(Math.random()*53);
String d = a[c] + "の" + b +" ";
if(c_b==0){
d="ジョーカー";
}



return d;
}
}

198:デフォルトの名無しさん
12/04/27 08:59:40.72
>>197
あらかじめ使えるカードの一覧を作っておいて使用済みのチェックを入れる。

199:デフォルトの名無しさん
12/04/27 09:54:25.99
>>196
間違いだから削除した

200:デフォルトの名無しさん
12/04/27 11:08:27.44
>>197
配列に52枚のカードを入れて、それをランダムにシャッフルして、先頭から順にめくっていく

201:デフォルトの名無しさん
12/04/27 11:21:05.05
>>197
重複しない膨大な整数系列を高速省メモリで吐いてくれるアルゴリズムの
疑似乱数クラスは、探せばある。

トランプにはオーバースペックか。

202:デフォルトの名無しさん
12/04/27 11:21:12.39
>>197
URLリンク(sasuke.main.jp)に「トランプのシャッフル」ってのがある

203:デフォルトの名無しさん
12/04/27 12:36:20.05
Javaを勉強し始めたばかりで用語について混乱しているので教えて下さい。

クラスをコントラクトすること=インスタンス化(クラス名 変数名=new クラス名();)
インスタンス化された変数をインスタンス
メソッドや変数をまとめて1つのクラスとして独立させることをカプセル化

このような解釈であってますでしょうか。。。
初歩的な質問で申し訳ないのですがサイトなどでの説明がわかりにくかったもので、
誤った理解をしていればご指摘頂ければ幸いです。

204:デフォルトの名無しさん
12/04/27 14:36:48.75
>>203

【インスタンス化】
● クラスからオブジェクトを作ること。
● コンストラクタの呼び出しによって、メモリ上に、新たに生成される
    オブジェクト用のメモリの領域を確保すること。
【カプセル化】
● クラスの外部からはフィールドを直接操作できないようにして、必ずメソッドを
    経由してフィールドを間接的に操作するようにすること。

205:デフォルトの名無しさん
12/04/27 16:13:09.20
Java7u4 Java6u32 リリース

206:デフォルトの名無しさん
12/04/27 17:48:04.46
>>204
ありがとうございます、

207:デフォルトの名無しさん
12/04/27 18:13:03.93
>>195
public class SuperClass {
static Class subclass=SuperClass.class;
public static void main(String[] args) {
System.out.println(subclass.getName());
}
}

public class SubClass extends SuperClass{
static {
subclass = SubClass.class;
}
}

もしくは
public class SuperClass {
public static void main(String[] args) {
todo(SuperClass.class);
}
public static void todo(Class subclass){
System.out.println(subclass.getName());
}
}

public class SubClass extends SuperClass {
public static void main(String[] args) {
todo(SubClass.class);
}
}

208:デフォルトの名無しさん
12/04/27 18:46:54.53
>>206
いえいえ

209:デフォルトの名無しさん
12/04/27 19:14:47.21
>>198
>>200
理論的には分かりやすい説明ですが、ググったりしたのですが具体的なやり方がぜんぜんわかりません。



210:デフォルトの名無しさん
12/04/27 19:42:56.25
1.カードの枚数分の配列を作る。
2.乱数を2つ発生させて、2つの数字の指し示す配列の中身を入れ替える。
3.気が済むまで2を繰り返す。

とかなら簡単じゃないかな

211:デフォルトの名無しさん
12/04/27 19:47:39.74
>>209
出来合いのなら→>>202のやつ
URLリンク(sasuke.main.jp)


212:デフォルトの名無しさん
12/04/27 20:13:07.35
ArrayListに突っ込んでCollections#shuffle()を使えばいいんじゃね

213:デフォルトの名無しさん
12/04/27 20:49:12.14
馬鹿には無理

214:デフォルトの名無しさん
12/04/27 22:35:00.08
馬鹿にも限度があります><

215:デフォルトの名無しさん
12/04/28 00:21:40.44
トランプの性質上、ジョーカーは例外として
同じものがないのだよ
java.utilで使えそうなインタフェースがSet

こんな感じで、作るものの本質を知ることからはじめるのがプログラミング
制御したい物をどのように組み立てるのか、よく考えるところからはじめよう

これは言語云々の話じゃないけど、心の片隅にでもとりあえず置いてほしい

フィールドとしてSet<Card> cardSet = new 何とかSet<Card>();
cardSetから取り出されたものもさらに別のSetにぶち込む
そのときにコレクション.ソート機能をつかってコンパレートする
イメージは伝わったかな

216:デフォルトの名無しさん
12/04/28 00:27:37.12
ちなみにCardは
int number
enum Type {
スペード("スペードマーク")、ダイヤ("ダイヤ");
final String マーク;
Type (String マーク) {
初期化
}
}
必要があればenumコンストラクタのフィールドをどんどん追加すればいいのかな
enum内にstatic なメソッドも持たせられるのでいろいろ使い道があると思う

217:デフォルトの名無しさん
12/04/28 00:34:03.06
Listを2つ用意(A,Bとする)してAに1~52を格納,Bは空
0~51の乱数を発生させ得られた数番目の要素をAから削除しBに追加
乱数の範囲を1減らして↑を繰り返す

218:デフォルトの名無しさん
12/04/28 02:14:40.50
ふーん

219:デフォルトの名無しさん
12/04/28 09:50:03.85
>>197
>>200の方法をとるのは後ろからになってるけどざっと実装してみた。参考にどうぞ。
import java.util.Random;
import java.util.Arrays;
public class RandomSet{
public static void main(String[] args){
//0 ~ LIMIT-1 の重複しないint配列を用意
int LIMIT = 52;
int[] rand = new int[LIMIT];
for(int i=0;i<LIMIT;i++){
rand[i] = i;
}
//配列をシャッフルする
Random r = new Random();
int temp = -1;
for(int i=LIMIT;i>0;i--){
int index = r.nextInt(i);
temp = rand[index];
rand[index] = rand[i-1];
rand[i-1] = temp;
}
//出力
System.out.println("0 ~ "+(LIMIT-1)+" までの重複しない乱数列");
for(int i=1;i<=LIMIT;i++){
System.out.printf("%3d",rand[i-1]);
if(i%10==0){
System.out.println();
}
}
System.out.println();
}
}

220:デフォルトの名無しさん
12/04/28 09:59:28.02
なんだこの役に立たないサンプルは

221:デフォルトの名無しさん
12/04/28 10:58:35.94
配列の添え字が0になるのがそんなに嫌か

222:デフォルトの名無しさん
12/04/28 11:20:25.29
何言ってんだコイツw

223:デフォルトの名無しさん
12/04/28 11:45:58.54
なにこのドヤ顔ww

224:デフォルトの名無しさん
12/04/28 12:17:46.13
重複しない乱数をどうやって実装するかによって性格が分かりそうだなww

225:デフォルトの名無しさん
12/04/28 12:36:48.51
意味不明

226:デフォルトの名無しさん
12/04/28 13:20:59.29
あいかわらずアホなスレですな

227:デフォルトの名無しさん
12/04/28 15:01:48.46
すみません、用語についての質問です。
セッター、ゲッターについては以下のような解釈であってますでしょうか。

セッター:異なるクラスのprivateな変数に対し値をセットするためのメソッド
ゲッター:異なるクラスのprivateな変数の値を取得するためのメソッド

228:デフォルトの名無しさん
12/04/28 15:09:56.20
>>227
ゲッター:主人公側のロボット
セッター:敵のロボット、実は主人公のオヤジが乗ってた


229:デフォルトの名無しさん
12/04/28 15:14:28.47
>>227  そう。

フィールド自身は private 宣言で、
フィールドアクセス用のメソッド は public 宣言だよ。

230:デフォルトの名無しさん
12/04/28 15:19:59.70
>>229
必ずしもそうとは限らんけどな
Set/Getはprotectedかもしれないし、
Set/Getのあるクラス内にフィールドが存在しないかもしれない。

231:デフォルトの名無しさん
12/04/28 15:23:33.56
>>229
ありがとうございます!

232:デフォルトの名無しさん
12/04/28 15:23:33.56
屁理屈乙

233:デフォルトの名無しさん
12/04/28 15:28:20.83
>>230
>Set/Getはprotectedかもしれない
例えば、パッケージが1つの場合などはSet/Getは”privateでなければ良い”いう解釈ができるということでしょうか?

>Set/Getのあるクラス内にフィールドが存在しないかもしれない
これについては良くわからないのですが、フィールドが存在しないクラスにSet/Getを用意する必要性が出てくることもあるということでしょうか>

234:デフォルトの名無しさん
12/04/28 15:30:50.94
常に単純にフィールドの読み書きをするだけだったらpublicフィールドでいい。
わざわざメソッドを通すなんて面倒なことをするのは、
後で実装を変更するため。
直接フィールドを持たないような実装に変更することもありうる。

235:デフォルトの名無しさん
12/04/28 15:35:09.45
例えば日時を管理するクラスに曜日フィールドはなくてもいいが、
日時から曜日を計算して返す曜日ゲッターがあってもいい。

236:デフォルトの名無しさん
12/04/28 15:36:50.64
そうそう

>>233    >>230 の後半はカン違いと思われ…

237:デフォルトの名無しさん
12/04/28 15:44:33.90
>>234
Set/Getがメソッドである本質は、物理的なコードの書き換えというより
継承での実行時書き換えのためだろ。

>>233
下についてだが、どこまで素人かしらんけど、
Javaがある程度解るならこんな感じ。
DelivedBはExampleBaseを使える様に
getValue()を用意してるけど、DelivedBとしては
100以外返す必要がないないんで、フィールドをもたない。

interface ExampleBase
{
   int getValue();
}
class DelivedA implements ExampleBase
{
   private int value;
   public int getValue()
   {
      return value;
   }
}
class DelivedB implements ExampleBase
{
   public int getValue()
   {
      return 100;
   }
}


238:デフォルトの名無しさん
12/04/28 15:48:43.47
>>233
>例えば、パッケージが1つの場合などはSet/Getは”privateでなければ良い”いう解釈ができるということでしょうか?
いや、アクセス権限は関係ないというはなし。別にprivateにしたってset~()/get~という形でメソッド定義してりゃ
セッター、ゲッターと呼ばれる。アクセッサーと呼ばれるかどうかは知らんけどな。

239:デフォルトの名無しさん
12/04/28 16:07:23.94
皆さんたくさんのご意見ありがとうございます。
私はVC、VBの経験はありますがJAVA(オブジェクト指向)はまだ記述方法等を順に学んでいる段階のため理解が浅く、
ご教授頂いた内容を理解しきれない部分があります。

とりあえず今の段階ではset~()、get~()とネーミングされた、値を設定・取得するためのメソッドという理解に留めておこうと思います。

240:デフォルトの名無しさん
12/04/28 16:11:27.67
>>239
蛇足だが、現実でVCの経験があると言うのは控えた方がいい。
VCでC言語をやっていたぐらいにしておかないと
ハイレベルな作業頼まれてトラブる事が有るぞ

241:デフォルトの名無しさん
12/04/28 16:23:26.61
初心者にドヤ顔www

242:デフォルトの名無しさん
12/04/28 16:24:51.27
そんなにマイクロソフトに染まっちゃているならいっそのことドットネットの方をやったらどうですか?

243:デフォルトの名無しさん
12/04/28 16:37:35.10
だよなぁ
普通VCやってたって言ったら日本では最高レベルのプログラマの称号だし。
VCを本当にやってた人間ならJavaなんて学ぶことなく使えるし

244:デフォルトの名無しさん
12/04/28 16:42:33.31
日本で最高に苦労していたプログラマって意味ですよね?

245:デフォルトの名無しさん
12/04/28 16:46:59.66
C++つかってる様な仕事で締切りに追われて苦労してるようなとこあんの?
うちとか約1年ぐらい掛けてゆっくり1つの製品作ってたりするけど。
C++で製品開発はあっても、受注なんてほとんど無くね?

246:デフォルトの名無しさん
12/04/28 16:48:27.94
VC++とC++(gcc)はまったく別物ですよ。

247:デフォルトの名無しさん
12/04/28 16:52:37.34
>VC++とC++(gcc)
そもそも、この書き方がおかしい
Microsoft (R) C/C++ Optimizing Compilerとgccを比較してるのか?
統合開発環境全体とgccというコンパイラ比較してんのか?

248:デフォルトの名無しさん
12/04/28 16:58:32.40
ツマラン

249:デフォルトの名無しさん
12/04/28 16:58:51.29
>>245
C++ のベテランには、C$ は使うが Java は意地でも使わないって人もいるね。

250:デフォルトの名無しさん
12/04/28 17:00:14.50
×  C$
○  C#

251:デフォルトの名無しさん
12/04/28 17:03:22.49
ところでC++のベテランさんは得意のC++で何ができるんですか?

252:デフォルトの名無しさん
12/04/28 17:03:36.69
ハンガーwwww どう見てもブーメランだろwwww

253:デフォルトの名無しさん
12/04/28 17:03:53.43
MMDが作れる

254:デフォルトの名無しさん
12/04/28 17:04:39.30
>>249
俺逆にC#の方をあんまり使わないわ
仕様が頻繁に変わる言語は追従するのが面倒といより、
今まで書いたコードがゴミになりそうで嫌。
そういういみで、PerlとかPHPも苦手。
使い捨て用にしか使わん。

255:デフォルトの名無しさん
12/04/28 17:06:40.03
>>254
>仕様が頻繁に変わる言語

kwsk

256:デフォルトの名無しさん
12/04/28 17:10:49.80
>>255
C#はC++が03から11になる間に4もバージョン上がったろ

ついでだがPerlは、Perl5からPerl6になって互換性なくなった
PHPはclassが予約語になった

257:デフォルトの名無しさん
12/04/28 17:12:31.79
サンクス!

258:デフォルトの名無しさん
12/04/28 17:17:31.11
どの言語でもだが予約語の追加は勘弁して欲しい
予約語ついかする言語とは深い付き合いしたくない

259:デフォルトの名無しさん
12/04/28 17:32:13.51
>>256
javaだと2003あたりから2011(java7)まででいくつ上がったんでしたっけ?

260:デフォルトの名無しさん
12/04/28 17:42:46.61
>>259
ライブラリや言語外はそれなりに更新されたけど、
言語自体はそんなに頻繁に更新されたか?
Java2からJava7の間で目立った変更があったのって
5のあたりぐらいじゃないか?

261:デフォルトの名無しさん
12/04/28 17:45:24.57
実質は、1.2 ~ 1.7 だし・・・

262:デフォルトの名無しさん
12/04/28 17:49:45.25
推奨されないメソッドを使わなければそんなに困らないよね

263:デフォルトの名無しさん
12/04/28 17:59:48.54
>>260
こんなチンコすれでドヤ顔なんかしてないで、もうちょっといろいろ勉強した方がいいと思いますよ。

264:デフォルトの名無しさん
12/04/28 20:58:40.49
もうちょっといろいろ勉強した方がいいと思いますよ(ドヤ

265:デフォルトの名無しさん
12/04/28 22:22:00.42
>>258
C#はコンテキストキーワード上等だからキーワード増えても予約語は増えず基本的に互換性は保たれる
Javaは予約語の追加をやった前例がある

266:デフォルトの名無しさん
12/04/28 23:13:23.04
enumくらいだろ

267:デフォルトの名無しさん
12/04/28 23:20:00.45
C++ のベテラン必死w

268:デフォルトの名無しさん
12/04/28 23:21:18.63
assert

269:デフォルトの名無しさん
12/04/28 23:27:20.34
enumとassertって実装前はconstと同じ予約じゃなかったんだっけ?

270:デフォルトの名無しさん
12/04/28 23:35:36.89
>>269
うん違う

271:デフォルトの名無しさん
12/04/28 23:37:34.41
新しいキーワードを無効にするコンパイラーオプションとかあったよな
新規追加だよ

272:デフォルトの名無しさん
12/04/28 23:51:51.56
>>270
ありがと

273:デフォルトの名無しさん
12/04/28 23:56:19.89
予約語なんてパッケージや名前空間に入れてしまえばいいのにな
どの言語もしないな

java.import java.import;
import java.int;
import java.class;
とか。



274:デフォルトの名無しさん
12/04/28 23:58:00.33
assertが追加された予約語と感じる奴が
いったいどれだけいるのか

275:デフォルトの名無しさん
12/04/28 23:59:32.37
名前空間とか考えず使えるから予約語なんだろ

276:デフォルトの名無しさん
12/04/29 00:02:44.11
事実として予約語だからな
何と言おうが思いっきりbreaking changeだ

277:デフォルトの名無しさん
12/04/29 00:04:28.54
>>275
別にそこに拘る必要ないだろ
予約語と表現するのが嫌なら別の名前でかまわないだろうし

278:デフォルトの名無しさん
12/04/29 00:06:05.86
そういやキーワードという言い方があったな

279:デフォルトの名無しさん
12/04/29 00:06:44.95
今日のキーワードは…

280:デフォルトの名無しさん
12/04/29 00:10:24.73
予約語!

281:デフォルトの名無しさん
12/04/29 00:10:50.81
おまえらassert使ってる?

282:デフォルトの名無しさん
12/04/29 00:17:28.76
assertって何がしたかったんだろうな
融通利かなすぎだろ
結局のところ条件コンパイルなんだからC#のConditionalみたいなのにすればよかったのに

283: ◆QZaw55cn4c
12/04/29 00:24:31.72
>>282
アサーションを使わないというのは、ちょっと考えにくいのですけれどもね

284:デフォルトの名無しさん
12/04/29 00:29:04.29
アサーションする=assert使う
とは限らないだろ

285:デフォルトの名無しさん
12/04/29 00:31:18.92
開発環境やプロジェクトのポリシーと密接に関連してるからな
ライブラリでやるべきだった

286:デフォルトの名無しさん
12/04/29 01:07:04.26
ライブラリじゃ不可能だから言語構文に入ったんでしょ

287:デフォルトの名無しさん
12/04/29 01:11:35.59
いつか来た道

288:デフォルトの名無しさん
12/04/29 01:11:52.28
enumの話しならともかく
assertはライブラリでも出来るだろ

289:デフォルトの名無しさん
12/04/29 01:15:06.37
>>288
どうやって?
if文使ったりしたらデバッグモードじゃなくても判定が入るよ。

290:デフォルトの名無しさん
12/04/29 01:28:44.92
>>273
javaだとannotationとして似たようなものは既に実装されています。

291:デフォルトの名無しさん
12/04/29 01:30:47.88
浅学なおまえが思いつく程度に不十分な仕様なら、ネットにも大量に苦情が上がっている。
だから、おまえの不満はネットでは既に語り尽くされているか、全くの見当違いでしかない。

292:デフォルトの名無しさん
12/04/29 01:34:07.54
苦情が上がらないだけなら
単に見向きもされてないだけの可能性もあるから
論理的な解釈とはいえないな

293:デフォルトの名無しさん
12/04/29 01:35:05.85
>>267

294:デフォルトの名無しさん
12/04/29 01:42:53.14
assertをlibraryって、えっと議論する必要あるの?

295:デフォルトの名無しさん
12/04/29 01:44:06.30
馬鹿には無理

296:デフォルトの名無しさん
12/04/29 01:49:43.09
意味はあるだろ
そもそも外す必要なんか出るのかっていう根本からして

297:デフォルトの名無しさん
12/04/29 01:51:26.53
外す必要が無いならassertなんて要らないだろ

298:デフォルトの名無しさん
12/04/29 01:52:04.11
C#はライブラリでやってるぞ
アノテーション使ってコンパイルオプションで外せるメソッドが定義できる
あれパクればいいんだよ

299:デフォルトの名無しさん
12/04/29 01:57:07.57
assertだけ着脱できても正直小回り効かないよね
で、どうせ着脱しないしオーバロードたくさんある方が便利だよね
ってことでcommonsライブラリとかのassert使われちゃうっていう

300:デフォルトの名無しさん
12/04/29 01:58:18.61
C#でDirectX(とOpenGLも)がまともに使えるならC#がいくらキモくてもまだ活路があるんです

301:デフォルトの名無しさん
12/04/29 02:01:45.39
話それるがApache CommonsってJavaで書いててもC臭いから苦手。

302:デフォルトの名無しさん
12/04/29 02:02:16.69
条件コンパイルは絶対やらないっていうんならそれを貫いてVMレベルで実装すればよかったのにな
あっさり覆して中途半端に条件コンパイルに手を出したからおかしくなった
どうせ条件コンパイルやるんならC#のようなやり方した方がずっと綺麗で有用

303:デフォルトの名無しさん
12/04/29 02:04:03.57
commonsがC臭いってどの辺りだろ?

304:デフォルトの名無しさん
12/04/29 02:13:19.25
java8でmodule仕様が入るので改善されますよ。

305:デフォルトの名無しさん
12/04/29 02:24:14.37
>>303
Log4jやらCommons Validatorやら全般的に。
例えばLog4jならこんな感じ。メソッドでエラーレベルを変えてる。
Logger logger = Logger.getInstance(Sample.class.getName());
logger.info("This is info.");
logger.warn("This is warn.");
logger.error("This is error.");

メソッド固定なら、構造体と関数で書いたCのロガーと変わらないじゃん。
Javaでやるんだから、メソッドじゃなくオブジェクトでエラーレベルを変えてほしい。
オブジェクトを切り替えるだけでログレベルを一括で置き換えられるようになるでしょ。
Logger logger = InfoLogger.getInstance(Sample.class.getName());
logger.write("This is info.");
Logger logger = WarnLogger.getInstance(Sample.class.getName());
logger.write("This is warn.");
Logger logger = ErrorLogger.getInstance(Sample.class.getName());
logger.write("This is error.");

Validatorも似たような話で、mailValidate、tellValidateとかメソッドで別けるんじゃなく、
validateメソッドを持ったMailValidatorクラス、TellValidatorクラスという形で別ける方がJavaらしいと思う。

306:デフォルトの名無しさん
12/04/29 02:27:06.43
でざぱた

307:デフォルトの名無しさん
12/04/29 02:28:48.51
馬鹿には無理w

308:デフォルトの名無しさん
12/04/29 02:30:58.56
>>305
Loggerが何を抽象化してるか考えると、そのままでいいと思う

sayHelloとsayGoodbyを持つPersonクラスの代わりに
HelloPersonとGoodbyPersonを用意しよう
っていう位には奇妙に感じるんだが。。

309:デフォルトの名無しさん
12/04/29 02:32:05.40
javaではsingletonとstaticって相性が悪いんですか?

310:デフォルトの名無しさん
12/04/29 02:33:05.73
>>308
ちょっと例が良くないなsayHello、sayGoodbyだったらhelloとgoodbyを引数に回すもの。

311:デフォルトの名無しさん
12/04/29 02:33:36.16
>>305
Validatorはそうなってなかったっけ?

312:デフォルトの名無しさん
12/04/29 02:35:29.38
>>310
sayHelloであってるよ
インスタンスが日本人なら「こんにちわ」
インスタンスがアメリカ人なら「やあマイキー」
ってら言わせるんだから

313:デフォルトの名無しさん
12/04/29 02:36:02.80
>>308
java2d関係を使ったことがあるなら奇妙というほどでもない

314:デフォルトの名無しさん
12/04/29 02:37:52.20
>>312
man.sey( new Hello() );
man.sey( new Goodby() );
これでも行けるでしょ。

315:デフォルトの名無しさん
12/04/29 02:38:37.03
>>312
そこは"hello"と"goodbye"をキーにしてi18nだろjk…

316:デフォルトの名無しさん
12/04/29 02:38:51.14
sayをうちまちがえたハズカチ

317:デフォルトの名無しさん
12/04/29 02:41:31.22
>>314
それじゃ国際化するときに、HelloFactoryとGoodbyFactoryが必要になる
なにより凝集性がよろしくない


318:デフォルトの名無しさん
12/04/29 02:41:52.09
>>315
ああいいね。
それ見てこんなの思い出したわ

man.say( Hello.getInstance() );
man.say( Goodby.getInstance() );

台詞が決まってるなら
man.say( Words.HELLO );
man.say( Words.GOODBY );

319:デフォルトの名無しさん
12/04/29 02:42:54.68
>>317
台詞を言うのはmanのオブジェクトで、HelloやGoodbyは識別用だよ。

320:デフォルトの名無しさん
12/04/29 02:45:38.80
>>315
そっちでもいいかも。
ただ、
声だすついでに身体バンバンたたいたり
ハグ♥ってしたりが表現できないよね

>>319
sayメソッドの中身が悲惨なことにならないか?

321:デフォルトの名無しさん
12/04/29 02:51:50.76
バグ♥

322:デフォルトの名無しさん
12/04/29 02:51:58.25
>>251

323:デフォルトの名無しさん
12/04/29 02:54:49.41
定期的に脈絡なくC++にアンカー春奴は何かコンプレックスでもあるのかな?

324:デフォルトの名無しさん
12/04/29 03:04:23.46
>HelloPersonとGoodbyPersonを用意しよう
別にこれもいいと思うけどね。sayで何を言うか本人しだいじゃん。
単にPersonでもsayHelloやsayGoodbyじゃなくて、say持たせて、
meet、breakupメソッドを用意し、meet、breakupどっちが呼ばれたかで
sayの挙動を変えて上げた方が取り回しが効いていいと思う。
さらにinterfaceにsayを持たせておけば、meet、breakupを持ってる事が必須じゃなくなるしね。
他のメソッドでsayの挙動を変えてあげてもいい。

325:デフォルトの名無しさん
12/04/29 03:09:40.56
どうでもいいが要求次第
現実をシミュレートなんてしなくてええんやで

326:デフォルトの名無しさん
12/04/29 03:13:25.84
>>324
interfaceにsayもたせたら、直接呼ばれちゃうぞ

327:デフォルトの名無しさん
12/04/29 03:15:48.27
>>326
何か問題が有る?

328:デフォルトの名無しさん
12/04/29 03:19:54.37
Interfaceの型でうけたら、meetとbreckupがよべない
個別の型でうけたら、meetとbreackupが呼べるかわりに、sayまでみえちゃう
sayが外に見えてる以上は自分の都合だけでは書き換えられない
つまりmeetとbreakupの取り回しがしにくい

329:デフォルトの名無しさん
12/04/29 03:22:52.89
あぶすとらくと

330:デフォルトの名無しさん
12/04/29 03:26:03.06
>>246

331:デフォルトの名無しさん
12/04/29 03:29:40.47
public final void say(){
System.out.println("馬鹿には無理");
}


332:デフォルトの名無しさん
12/04/29 03:30:13.42
Japanese japanese = new Japanese();
japanese.meet();

Irish irish = new Irish();
irish.breakup():

Person person;
person = japanese;
person.say();

person = irish;
person.say();

実用上こまりはしないと思うけど。

333:デフォルトの名無しさん
12/04/29 03:39:29.36
ん?設計意図がわからん
breakup→sayの順で呼んで初めて話してくれるのか?
どうなんだろう

334:デフォルトの名無しさん
12/04/29 03:42:45.53
>>333
そうよ。breakupを呼ばなくても何らかの振る舞いはするでしょうけど。

335:デフォルトの名無しさん
12/04/29 04:26:13.71
Command japaneseSayHello = new JapaneseSayHello();
japaneseSayHello.execute();

( ・´ー・`)どや?
executeの実装だけ入れ替えれば何だって実行できる。
これがオブジェクト指向や!

などと使い方を想定せずに抽象化するのは
複雑さを助長するだけで百害あって一利なし

336:デフォルトの名無しさん
12/04/29 04:29:09.69
>>331
System.setOut(new PrintStream(new ByteArrayOutputStream()) {
public void println(String x) {
System. console().printf("誰でもできるよ(^-^)" );
}
});

337:デフォルトの名無しさん
12/04/29 05:10:41.89
ゆとり乙

338:デフォルトの名無しさん
12/04/29 05:14:36.97
finalつけたのに残念だったね

339:デフォルトの名無しさん
12/04/29 06:02:21.56
勉強になるわー

340:デフォルトの名無しさん
12/04/29 06:45:05.55
ゆとり乙

341:デフォルトの名無しさん
12/04/29 07:38:13.41
ゆとりにはjavaしか無理

342:デフォルトの名無しさん
12/04/29 07:51:25.26
馬鹿がんがれ

343:デフォルトの名無しさん
12/04/29 11:55:51.62
>>111-112

344:デフォルトの名無しさん
12/04/29 13:30:35.64
JOptionPane.showMessageDialog(null, "\"馬鹿\"って言った奴が馬鹿", "", JOptionPane.ERROR_MESSAGE);

345:デフォルトの名無しさん
12/04/29 13:42:43.77
>>335
ラムダとかそんな感じだよね。
用途は、使用する側次第。

346:デフォルトの名無しさん
12/04/29 16:27:24.65
Project Lambdaって結局クロージャ使えるの?クロージャもどきなの?

347:デフォルトの名無しさん
12/04/29 16:38:07.70
クロージャ使いたくなるのってほんとたまになんだよな
そのたまににできないと「糞がぁ」と思っちまうんだけど…

348:デフォルトの名無しさん
12/04/29 17:28:17.58
クロージャもどきってなんね

349:デフォルトの名無しさん
12/04/29 18:23:20.50
exceptionって
イグゼプション?
エグゼプション?
エクスセプション?

350:デフォルトの名無しさん
12/04/29 18:28:07.67
いっくしょんぺ

351:デフォルトの名無しさん
12/04/29 18:32:32.69
エクセプションっぽ

352:デフォルトの名無しさん
12/04/30 00:21:26.63
いまゲームを作ってるのですが、
ちょっとうまくいかないことがありまして、、、
質問させていただきます。

x軸方向y軸方向にそれぞれ異なった速度を持ったイメージがあって
それが画面左から出現してきて右に消えていくというのを作りました。
これを無限に行いたく、配列を使ってやってみたのですが、
配列には限りがありますよね??うーん、、、うまくいきません。

どうにかうまくいく方法はないですかね??



353:デフォルトの名無しさん
12/04/30 00:28:57.37
何がしたいのかよくわからんけど、右に消えていったイメージをまた左から出すようにすればいいんじゃないの?

354:デフォルトの名無しさん
12/04/30 00:34:58.52
>>353
すいません、説明不足でした!

シューティングゲームで自分が打った弾がイメージに当たったら消える
といった風にやりたいのです!

355:デフォルトの名無しさん
12/04/30 00:52:09.01
配列を使わずにArrayListなどを使いましょう

356:デフォルトの名無しさん
12/04/30 00:55:55.20
なぜListなんだ
なぜ

357:デフォルトの名無しさん
12/04/30 01:11:25.94
javaでopengl3(glsl3)以上とshade programmingを使いたいんですがどうすればいいのでしょうか?

358:デフォルトの名無しさん
12/04/30 01:37:20.31
これからjavaを勉強するにあたりさ(他言語経験があり)あどうするかと調べたところ
javaサーブレットjavaアプレットやら色々あるようなんですが、
巷の業務系javaプログラマ募集の求人でjava出来る人ってのは
java = javaサーブレットって事で良いのでしょうか?

Java出来ますと言えば:Javaサーブレット?
業務系:Javaサーブレット?
Web系:Javaサーブレット&Android?

会計やら物流やらもJavaサーブレットによるWebアプリって事になるのでしょうか?

359:デフォルトの名無しさん
12/04/30 01:40:17.82
>シューティングゲームで自分が打った弾がイメージに当たったら消える
>といった風にやりたいのです!
最終的にこれをしたいんだろうが・・・

>x軸方向y軸方向にそれぞれ異なった速度を持ったイメージがあって
>それが画面左から出現してきて右に消えていくというのを作りました。
ここは今理解できてる事だと解る

>これを無限に行いたく、配列を使ってやってみたのですが、
>配列には限りがありますよね??うーん、、、うまくいきません
でもこの一文で何がしたいのか解らん
玉を複数画面上に出したいが、配列に格納しきれないと言ってるのか?
ゲームなら普通上限決めて、一括で確保するぞ。

360:デフォルトの名無しさん
12/04/30 01:42:31.17
土方さんはもっと簡単なマイクロソフト・ドットネットやウインドウズ・メトロを勉強した方がいいと思います。

361:デフォルトの名無しさん
12/04/30 01:44:41.96
>>358
アプレットかサーブレットかと言えばサーブレット。
ただ、まんまサーブレット使うことは少ないと思うが。
あと、商用ならサービスとか、バッチ処理とか、
Webサーバー使わないものも結構有る。
最近の話かもしれないけど。

362:デフォルトの名無しさん
12/04/30 01:53:34.09
>>359
伝わりにくくてすいません

永遠と画面左から敵が出続けるんです。
そいつらを画面手前にいる自機から発射される攻撃でやっつけ続けるというゲームです。
そして攻撃されなかった敵は画面右へと消えていきます。

無限とはいったものの
制限時間をつけるなり、敵から攻撃を受けてゲームオーバーにするなりしようとおもうんです。
敵の数だけ配列をつくると大変なことになるのではないかと、、、

363:デフォルトの名無しさん
12/04/30 03:25:13.10
>>346
クロージャは使えない。ラムダ式は使える。

あくまでもSAMタイプのインタフェース(ひょっとしたら抽象クラスもOKかも)のインスタンスを作る時に
ラムダ式な書き方ができるようになるだけ。
相変わらず、親スコープの変数はfinalで読み込まないとイケない。

ちなみに文法はほぼC#のラムダ式だな。

364:デフォルトの名無しさん
12/04/30 03:39:20.31
初心者なんだが、実際どんなのが作れるんだ?
目標を立てるのに知りたい。


365:デフォルトの名無しさん
12/04/30 03:50:56.46
>>360

366:デフォルトの名無しさん
12/04/30 04:18:30.23
Java+Swingによる2chブラウザ V2C_R50
スレリンク(software板)

367:デフォルトの名無しさん
12/04/30 04:23:19.11
日経ソフトウェア、アクセスランキング2012年04月28日
① [1]JVM,API,言語仕様---Javaは三...
② [2]Java SE 7の新機能を読み解く
③ [4]クロージャやモジュール機構など,Java ...
Java新時代へ

日経ソフトウェア
URLリンク(itpro.nikkeibp.co.jp)

368:デフォルトの名無しさん
12/04/30 04:25:45.63
>>364
なんでもつくれます

369:デフォルトの名無しさん
12/04/30 04:30:03.14
>>368
どこでもそう言われる。
具体的にどんなのだか教えてくれ

370:デフォルトの名無しさん
12/04/30 04:37:51.19
>>367
そこ、登録しないと読めないし日経は有料サイトでウザいからリンク張るな

371:デフォルトの名無しさん
12/04/30 04:40:07.24
itは読んでるとイラッとするからgoogle
検索でもblack listに入れてる。

372:デフォルトの名無しさん
12/04/30 04:41:22.34
Java
 でちょっと前に話題になったARとか作れます.
 で作られたWebサーバとかめっちゃ使われてます.
 だけで作られたOSも、昔ちょっと話題になりました.
 はどこでも動きます.PCや携帯電話,Android,車載機器など.WindowsやLinux(組み込み系Linux),MacOSが動いていれば動かせます.もちろんWindowsで開発してMacで動かせます.
 は少し遅いです.遅い部分はJavaの利点から生まれるので,どうしても遅いと感じるならC畑へ行ってください.
 は様々なアドオンを自由に組み合わせられます.ちょっと複雑ですがパッケージやJNIを使えば何も恐れることはありません.Jnodeがそれを実証しています.

373:デフォルトの名無しさん
12/04/30 04:47:25.30
>>372
ほうほう。
なかなか便利ですなぁ。
ありです。

374:デフォルトの名無しさん
12/04/30 04:50:52.29
>櫻庭 祐一=Java in the Box 主筆
さんもitpro.nikkeibp.co.jp(日経)やatmarkit.co.jp(itmedia)に群がっているit土方相手にしないとやってけないなんて落ちたな
windows it土方に対してjavafxやswingなどjava se clientをいくら訴求しても理解できるはずないのにw

375:デフォルトの名無しさん
12/04/30 05:01:48.65
>>372
昔のSUN vs MS訴訟の結果と同じで、AndroidはJavaではありません。
しかも旧SUN(Oracle)からJavaのライセンスも得てません。

376:デフォルトの名無しさん
12/04/30 05:49:47.62
>>372
少し遅いとか妄想で語るな

377:デフォルトの名無しさん
12/04/30 06:35:44.34
>>372

>>263

378:デフォルトの名無しさん
12/04/30 07:41:47.15
[すこし遅い]んじゃなくて「とんでもなく遅い」な
SQLとなんかフレームワーク合わせただけのドカタ仕事なら問題にならないけど

379:デフォルトの名無しさん
12/04/30 08:05:22.37
Javaは最速に近い

380:デフォルトの名無しさん
12/04/30 08:08:57.54
問題にならないならそれでじゃないですか

381:デフォルトの名無しさん
12/04/30 08:09:22.29
問題にならないならそれでいいじゃないですか

382:デフォルトの名無しさん
12/04/30 08:24:23.71
遅いって何と比べてんだろ。
同等の機能を持った他の言語と比べないと意味ないよね。
マルチプラットフォームでOOPで、一定以上の普及率を持った
とんでもなく遅くはない言語知りたいな

383:デフォルトの名無しさん
12/04/30 08:35:26.85
言語?

384:デフォルトの名無しさん
12/04/30 09:13:07.19
AndroidはJavaではありません(キリッ

385:デフォルトの名無しさん
12/04/30 09:18:23.23
>>372

386:デフォルトの名無しさん
12/04/30 09:49:27.25
Java APIのサイトに繋がらないのは自分だけですか?

387:デフォルトの名無しさん
12/04/30 09:58:16.11
あ、SE7のページなら繋がりました。お騒がせしました。

388:デフォルトの名無しさん
12/04/30 10:01:12.20
Sunのページ死んでるのにGoogle先生いつまでも引用するんだぜ
ボケちゃったのかな・・・

389:デフォルトの名無しさん
12/04/30 11:46:06.52
>>382
有名どころだとC++か
NativeClient上で動かすかVM上で動かすかで
パフォーマンスが結構変わるけど

390:デフォルトの名無しさん
12/04/30 11:52:27.49
C++(RTTI付き)でコンパイルしたプログラムってそんなに早いんですか?

391:デフォルトの名無しさん
12/04/30 11:56:20.59
ベンチマーク嫁

392:デフォルトの名無しさん
12/04/30 12:00:46.62
RTTIはサイズが肥大するだけで速度関係ないだろ
速度的に言えば、SIMDが使えるのとハンドルを使わず直アクセスしてる点、
広域に最適化される点と、最初から最適化されてる分早い
仮想関数でJavaに負ける時もあるが、オブジェクトの実際の型が変わらないなら
親クラスで渡された時でも、派生クラスの持つ実際の関数をインライン展開する
コンパイラーが増えたんでそういうケースが問題になる事も減った。

393:デフォルトの名無しさん
12/04/30 12:08:14.22
現実問題として、大規模で速度が必要だったり複雑な処理して重いプログラムはだいたいC++で作られてるだろ。
それが答えだ。

394:デフォルトの名無しさん
12/04/30 12:12:52.44
ネイティブとの速度差の議論は、jvmではjitコンパイルを導入してc++にある程度追いつき、次にllvmのようなネイティブで利用可能なリソースに最適化したスマート・コンパイルがなされて、
今のjvm技術ではc++とほぼ同等、再コンパイルしてない古いc++プログラムなら追い越してるって聞いてますよ。

395:デフォルトの名無しさん
12/04/30 12:15:20.82
>>267

396:デフォルトの名無しさん
12/04/30 12:23:28.58
>>394
聞くのは勝手だが自分で試せ
あと、VMかNativeかは言語関係ない
VM用に吐いたバイナリーとネイティブ用に吐いたバイナリーを比較するなら
同じ言語で書いたVMコードと、ネイティブコードを比較しろ

397:デフォルトの名無しさん
12/04/30 12:25:05.90
お前がなwww

398:デフォルトの名無しさん
12/04/30 12:29:21.17
C++に取り付かれると人格だけじゃなく頭まで壊れちゃうって本当のことなんですかぁっ?!

399:デフォルトの名無しさん
12/04/30 12:31:19.56
たぶんそうです
Javaも例外ではありません

400:デフォルトの名無しさん
12/04/30 12:35:08.52
それならC#に行っちゃった人はどうですか?
C#はドットネット戦略の中心でありマイクロソフトの虎の子ですよ?!

401:デフォルトの名無しさん
12/04/30 12:36:15.74
スレチ

402:デフォルトの名無しさん
12/04/30 12:39:25.32
C++よりCの方が速えー速えー言うけど、実際はCの標準ライブラリと<algorithm>つかって
書いただけならC++の方が速いしな。型情報を元に最適化出来る場合は10倍以上速くなったりする。
実測有るのみだ。

403:デフォルトの名無しさん
12/04/30 12:43:27.28
コンパイラーの出来しだいだな。

404:デフォルトの名無しさん
12/04/30 12:45:13.16
ジャバでは、プログラムの速度がクリティカル・イシューな時はあまり使わず他の方法を検討します。

405:デフォルトの名無しさん
12/04/30 12:52:21.44
だな

406:デフォルトの名無しさん
12/04/30 14:24:11.23
こんなコードなんですけど
URLリンク(ja.pastebin.ca)

public synchronized int getX() { return x; } の 「synchronized」 って必要なんですか?

407:デフォルトの名無しさん
12/04/30 14:28:20.63
ないな。
それはともかく、ページの広告がウザすぎて開いた瞬間閉じようかと思った

408:デフォルトの名無しさん
12/04/30 14:32:14.63
406
すんません、理由をそえておながいします

409:デフォルトの名無しさん
12/04/30 14:45:13.66
まず必要な理由を言ってみてもらわないと

410:デフォルトの名無しさん
12/04/30 14:45:56.95
排他掛けるなら座標クラスを扱ってる箇所に掛ける必要が有るだろ
x, yを返すだけってレベルじゃ要らん。xとyの2つの値を設定してるような
不可分な操作にはつける必要が有るけど。

411:デフォルトの名無しさん
12/04/30 15:46:26.29
そのメソッドの処理中に他のスレッドから呼び出されたら困るならsynchronizedつければいい
>>406を見るとsetXY()している間にgetX()が呼べたりするから設計から間違ってる気がする

412:デフォルトの名無しさん
12/04/30 15:50:48.28
呼べたりはしないでしょ

413:デフォルトの名無しさん
12/04/30 16:53:14.10
synchronizedは異なるブロックでも同期するんだね
あまり使わないから知らなかった

でもgetX()してgetY()する前にsetXY()が呼ばれる可能性はあるね

414:デフォルトの名無しさん
12/04/30 17:23:09.24
俺ならZahyoクラスにsynchronizedなんて付けない。
そのかわり同期はZahyoクラスを使う側に任せる。

synchronized(zahyo){
 zahyo.set(x,y);
}

synchronized(zahyo){
 x = zahyo.getX();
 y = zahyo.getY();
}

415:デフォルトの名無しさん
12/04/30 17:33:16.09
みんなinterfaceってどう定義してんの?
自分はhoge1のように定義してるけど、皆さんの意見を聞いてみたいです。

interface test {
 public abstract void hoge1();
 public void hoge2();
 abstract void hoge3();
 void hoge4();
}

416:デフォルトの名無しさん
12/04/30 17:35:58.76
hoge4
無駄なものを書く必要はない

417:デフォルトの名無しさん
12/04/30 17:38:53.28
>>415
public abstract ここ非推奨な書き方だろ

418:デフォルトの名無しさん
12/04/30 17:47:45.55
うむ

419:デフォルトの名無しさん
12/04/30 19:43:41.75
>>415
一番上だな。
public abstract が暗黙かどうかいちいち頭切り替えて読み書きするの面倒だし。

420:デフォルトの名無しさん
12/04/30 19:47:21.25
一番下に決まってるだろ

421:デフォルトの名無しさん
12/04/30 20:11:25.51
句読点省略するような奴は省略するって事か。

422:デフォルトの名無しさん
12/04/30 20:20:06.51
ちがうよ
推奨が一番下なんだよ

423:デフォルトの名無しさん
12/04/30 20:24:32.67
コーディング規約による

とにかく書けるものは書け派(1)と書かなくても良いものは書くな派(2)にわかれる

駆け出しプログラマなら(1)の方が読みやすいかもしれない
それなりに訓練されたプログラマなら(1)は冗長で目障りだという
良く訓練されたプログラマなら(1)でも(2)でもどうでも良くなる

424:デフォルトの名無しさん
12/04/30 20:33:23.91
そんなとこで個性化してガラパゴス化する意味なんてないぞw
ほら本家から引用だ

The Java Language Specification
Java SE 7 Edition
9.4. Abstract Method Declarations
It is permitted, but discouraged as a matter of style, to redundantly specify the public and/or abstract modifier for a method declared in an interface.


425:デフォルトの名無しさん
12/04/30 20:46:38.46
 redundantly specify っちゅうこっちゃ!

426:デフォルトの名無しさん
12/04/30 20:58:59.18
そんなに権威がありがたいならSunのコーディング規約に則って8タブ4インデントにしてろ

427:デフォルトの名無しさん
12/04/30 21:06:40.58
googleさんのコード見たらhoge4だった

428:デフォルトの名無しさん
12/04/30 21:10:36.06
エディタと勘違いしてるアホがいますなw

429:デフォルトの名無しさん
12/04/30 21:11:00.74
public abstract
interfaceのこれってそのうち廃止になるんじゃないの?

430:デフォルトの名無しさん
12/04/30 21:11:41.92
ピントずれた意見だな

431:デフォルトの名無しさん
12/04/30 21:12:04.48
挟まったか

432:デフォルトの名無しさん
12/04/30 21:15:08.69
>>429
廃止にメリットあんの?

433:デフォルトの名無しさん
12/04/30 21:16:32.70
っ It is permitted, but …

434:デフォルトの名無しさん
12/04/30 21:17:04.35
>>432
コンパイルプロセスの単純化

435:デフォルトの名無しさん
12/04/30 21:17:38.40
>>434
他にないって事か。

436:デフォルトの名無しさん
12/04/30 21:18:47.21
<div class="btns"><a href="#" class="button">Clear</a><a href="#" class="button" onClick="document.getElementById('form').submit()">送信</a></div>

上のタグでメールフォームの送信、クリアを作成しているが、#の位置には何を入れるとメールがWEB上から上手く送信できるようになるのでしょうか?

そもそもこのスレで良いのかも判らないですが…、お教えいただけると助かります。

437:デフォルトの名無しさん
12/04/30 21:20:13.52
Javaスクリプトさんが現れました

438:デフォルトの名無しさん
12/04/30 21:20:45.84
>>436
Web製作板へいけ

439:デフォルトの名無しさん
12/04/30 21:21:08.43
>>435
ないよ。ただ他の言語じゃよくやってるじゃん。

interfaceで修飾子が無くなれば、interfaceブロックに入ってから
修飾子除去プロセスが不要になって若干速くなる。
あとコンパイラのinterfaceに対する特殊化部分も簡略化できるよね。
OpenJDK見ると無駄そうで仕方ない。

440:デフォルトの名無しさん
12/04/30 21:22:31.30
>>432
小汚いコードを見なくて済むようになる

441:デフォルトの名無しさん
12/04/30 22:03:29.69
>>439
普通にコンパイラ書いていれば、interfaceのメソッドに付けられる修飾子から
public と abstract のフラグを消すだけだから大した簡略化にはならないよ。

442:デフォルトの名無しさん
12/04/30 22:06:42.79
interfaceのメソッドに付けられる修飾子にはアノテーションが残っているから
って付け忘れた。まぁ、わざわざ書かなくても判ると思うけど。

443:デフォルトの名無しさん
12/04/30 22:07:39.74
OpenJDK見てみれば?
一部クラスと同じ処理呼び出してるけどアレ無駄だよ。
そのうえ、privateとか他のキーワードを弾く処理まで入ってんだから。

444:デフォルトの名無しさん
12/04/30 22:11:59.93
それ単にリファクタリングした方がいいってだけじゃね?
ぶっちゃけ簡略化しても焼け石に水でしょ。

445:デフォルトの名無しさん
12/04/30 22:14:22.93
そんなことよりSAMタイプについて語ろう

446:デフォルトの名無しさん
12/04/30 22:18:31.13
そうは言っても残しておくメリットなんて全然ないし。
JBossみたいな新しくコンパイラ作る際に¥は、クラスと同じ修飾子処理の部分外して、
全部public abstract属性固定にし、
privateとかのキーワードチェックだけにできる理由じゃん。

447:デフォルトの名無しさん
12/04/30 22:19:32.58
¥はうち間違い。無視して。

448:デフォルトの名無しさん
12/04/30 22:25:11.18
>>446
普通のコンパイラは>>441-442だからどうでもいい。

互換性問題になるから残すメリットはある。

449:デフォルトの名無しさん
12/04/30 22:32:00.20
自分の狭い用途や視野でしか見えないから
互換性なんて思いつかないんだろ。

450:デフォルトの名無しさん
12/04/30 22:34:39.09
>>424
そもそも、これ何で非推奨にしたんだろ?

implements @protected InterfaceName とかすると
protectedなメソッドの実装義務が発生するとかやりたかったのだろうか?
やっぱり違うな。

451:デフォルトの名無しさん
12/04/30 22:36:12.41
JLS2ndの時には既に非推奨だったな。

452:デフォルトの名無しさん
12/04/30 22:37:24.91
JLS1stからすでに非推奨だったりする。

453:デフォルトの名無しさん
12/04/30 22:48:00.72
>>448
だからもう非推奨なんだから無駄だし捨ててもいいんじゃねと言ってるだけ。
互換性なくなるのは解ってるよ。それでも既存のキーワードを廃止する言語はあるんだから。

454:デフォルトの名無しさん
12/04/30 22:57:50.59
互換性を上回るメリットを提示できないと廃止は難しいんじゃね?

455:デフォルトの名無しさん
12/04/30 23:14:22.82
>>453
非推奨って言っても全然守られてない非推奨だからなぁ。
JDKのソースにすら public つけてるコードが大量にあるし。

456:デフォルトの名無しさん
12/04/30 23:41:56.42
新しく作るなら、だからJDKの古いこーは問題ない

457:デフォルトの名無しさん
12/04/30 23:42:11.20
コードは

458:デフォルトの名無しさん
12/05/01 00:20:59.51
>>406
URLリンク(www.javapractices.com)

set が syhchronized なら 当然 get も synchronized でないといけない

459:デフォルトの名無しさん
12/05/01 00:28:00.78
ダメな記事引用するな

460:デフォルトの名無しさん
12/05/01 00:28:24.06
不可分じゃなけりゃ理屈上要らんけどな

461:デフォルトの名無しさん
12/05/01 00:35:23.92
これ真似したらダメな悪例の典型だぞ

462:デフォルトの名無しさん
12/05/01 02:16:15.54
406
すんません、なぜダメなのか理由をそえておながいします

463:デフォルトの名無しさん
12/05/01 02:30:36.22
synchronizedは必要だぜ
マルチスレッド プログラミングの常識だろ
複数のコアをもつプロセッサでは、あるプロセッサが変更した値を
別のプロセッサからも見えるようにする必要があるわけ
javaではsynchronizedブロックがこの役割を果たしている
「java メモリーの可視性」 でググればたくさん出てくるぜ

464:デフォルトの名無しさん
12/05/01 02:37:20.66
AtomicReference

465:デフォルトの名無しさん
12/05/01 02:40:51.60
>>462
不可分操作でなく無駄だから
同期プリミティブを理解してないバカに見えるから

466:デフォルトの名無しさん
12/05/01 02:56:00.41
ぬるぽ → ガッ ってあるじゃん
俺ついこないだまで「ガッ」ってようするにcatchすることだと思ってたんだけど
wikiみたら 「殴る」だったため」という説と「Javaの例外(エラー)なので見つけたら叩くのはあたりまえ」という説の2つが挙げられている
なんだとさ
みんな知ってた?

467:デフォルトの名無しさん
12/05/01 03:41:42.34
>>466
ガッ!

468:デフォルトの名無しさん
12/05/01 05:44:29.77
C++のベテランさん(unmaneged windows,linux,gnome,kde)たちはGUI Tool Kitは何使ってるのかはいくら調べても出てこないので、C++さんはモーダンなUser InterfaceつまりUI作ったことないしUXに関心もなければMVCなどGUI設計の方法論も知らないのかなって思ってます。

469:デフォルトの名無しさん
12/05/01 06:13:39.78
ナニイッテンダ?

470:デフォルトの名無しさん
12/05/01 06:35:39.20
最近C++のベテランさんがよく出没するのでTKは何使ってるのか聞いてみたかっただけです。

471:デフォルトの名無しさん
12/05/01 07:15:35.60
自分のポンコツ脳だと理解できない事態なので助力をお願いしたいです。

hoge1.java
public class hoge1
main
String st = "hogehoge";
hoge2 hoge2 = new hoge2(st);
hoge2.run();

hoge2.java
public class hoge2 implements Runnable
BufferedReader reader;
public hoge2(String st)
reader = new BufferedReader(new StringReader(st));
try { System.out.println(reader.readLine()); } catch (IOException e) {}
public void run()
try { String line = reader.readLine();//lineがNullになる
System.out.println(reader.readLine()); } catch (IOException e) {}

runメソッドでlineにreaderを代入?したいのですが、nullになってしまいます。
hoge2メソッドの方でのSystem.out.println(reader.readLine())は
stの内容が出力されるので書き方はあっているような気がするのですがそれ以上の事が解りません。
恐らく無知故の基本的な間違いだと思うのですが、どうすればいいでしょうか。

472:デフォルトの名無しさん
12/05/01 07:21:35.63
>>471
舌かんでしね

473:デフォルトの名無しさん
12/05/01 07:34:11.39
だなw

474:デフォルトの名無しさん
12/05/01 08:38:23.67
わざと読みにくいようにして貼り付けたのか?
BufferedReader#readLine()はそれが正しい動作だからちゃんと勉強しろ

475:デフォルトの名無しさん
12/05/01 08:55:51.26
>>465
「なぜ無駄なのか」
そこがいちばん知りたいんです。
理由をおしえてくださいませんか。


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