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


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

★★Java質問・相談スレッド153★★



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

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

前スレッド
★★Java質問・相談スレッド152★★
toro.2ch.net/test/read.cgi/tech/1329715551/

2 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 06:29:05.19 ]
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing & JavaFX 10
toro.2ch.net/test/read.cgi/tech/1316592884/
■ SWT は --
Java 高速GUI SWT 3
hibari.2ch.net/test/read.cgi/tech/1164877399/

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part22
hibari.2ch.net/test/read.cgi/tech/1295766416/
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 9
hibari.2ch.net/test/read.cgi/tech/1249357352/
■ Androidアプリの作成は --
Androidプログラミング質問スレ Part20
toro.2ch.net/test/read.cgi/tech/1332229701/

■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 71 ★★
hibari.2ch.net/test/read.cgi/tech/1309076891/

■ NetBeansに関する雑談は --
NetBeans Part6
hibari.2ch.net/test/read.cgi/tech/1273665879/
■ Eclipseに関する雑談は --
Eclipse統合M32【Java/C++/Ruby/Python/Perl】
toro.2ch.net/test/read.cgi/tech/1320318310/

**** 開発環境、実行環境は ****
■ Java SE Downloads
www.oracle.com/technetwork/java/javase/downloads/index.html

3 名前:デフォルトの名無しさん [2012/04/15(日) 21:25:43.42 ]
>>1
乙です


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

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

4 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 21:34:36.66 ]
どうであれ、使わなければ関係ない

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

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

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

具体的に何ですか?

8 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 13:46:01.50 ]
javaを習得したいんだがおすすめの参考書ってある?

9 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 13:51:56.15 ]
>>8
The Java Programming Language

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

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



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

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

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

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

業務用ならJava5じゃね?

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

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


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

15 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 21:14:51.33 ]
>>13
{@link docs.oracle.com/javase/specs/jls/se5.0/html/arrays.html#10.7} あたりかねぇ?

16 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 21:18:14.40 ]
>>15
{@link}ってそーゆー使い方できたっけか?

17 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 21:23:12.21 ]
>>16
無理だったか。じゃ無理だわな。

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

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


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

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

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

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

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



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

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

23 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 23:40:35.49 ]
toro.2ch.net/test/read.cgi/tech/1266247461/
ここじゃね

24 名前:12 mailto:sage [2012/04/16(月) 23:47:07.19 ]
>>14 サンクス!

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

25 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 00:27:46.22 ]
なんでわざわざそんな古いEclipse使うの?

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

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

28 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 08:31:42.55 ]
どれでも読め。
どれを読んでもハズレ。

29 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 10:25:15.10 ]
>>23
ありがとうございます

30 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 13:36:08.30 ]
いえいえ



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

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

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

34 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 20:17:40.30 ]
Beans bindingはこちらでいいですか?

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

35 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 20:21:09.38 ]
>>31
thx
今日入門書買ってきた
がんばるよ

36 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:01:13.74 ]
実践編はコレ!
www.amazon.co.jp/dp/4798117153

37 名前: ◆QZaw55cn4c mailto:sage [2012/04/17(火) 23:19:28.05 ]
>>36
独習はおすすめしない。

38 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:34:08.68 ]
知ったか乙

39 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:35:55.13 ]
>>36
持ってるけど入門編でしょそれ

40 名前: ◆QZaw55cn4c mailto:sage [2012/04/17(火) 23:37:41.83 ]
>>38
背伸びして叩かれるのもときにはいいものだ。
で、独習のどこがいいの?読んだの?



41 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:41:39.61 ]
背伸びして叩かれてろw

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

43 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 13:04:10.21 ]
EOLだw

44 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 13:07:17.40 ]
>>41

45 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 13:11:02.26 ]
1.4.2 for buisinessってもうサポートされないんだっけか?

46 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 16:14:25.48 ]
>>33
ありがとうございます。

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

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

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

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

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

50 名前:47 mailto:sage [2012/04/19(木) 16:25:00.27 ]
>>48
ありがとうございます。
試してみます。



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

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

52 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 16:55:59.35 ]
~/.emacs とか書いたほうがわかりやすいんじゃね?

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

54 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 17:07:50.09 ]
%USERPROFILE% じゃね?

55 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 17:32:56.34 ]
MacOSXは
~/Library/Application Support/
とかが一般的だったりする。

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

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

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

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

58 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 18:05:00.65 ]
ISO8859_1と日本語って混在できたっけか?

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

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



61 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 18:56:02.26 ]
>>58
ISO2022JPならなんとかならん?

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

62 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 18:59:10.42 ]
そろそろスレ違い

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

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

65 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 20:28:39.15 ]
スレちがい
toro.2ch.net/test/read.cgi/tech/1332822023/

66 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 20:34:12.52 ]
>>65
すみません  そちらにいきます

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

68 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 21:18:04.33 ]
スレち
toro.2ch.net/test/read.cgi/tech/1320318310/

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

70 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 21:25:06.06 ]
そう思うならID表示に汁



71 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 21:33:08.20 ]
>>61
切り替え方式でも8859_1との混在は無理だろ

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

73 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 22:43:01.36 ]
自治厨 = 中二

74 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 23:29:37.84 ]
↑自己紹介

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

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


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

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

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

79 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 09:41:05.64 ]
やらかしたのは自分だろ

80 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 11:20:43.41 ]
馬鹿には無理



81 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 14:53:45.95 ]
だなw

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

83 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 21:41:07.70 ]
馬鹿はC#だろw

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

85 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 22:56:52.73 ]
javaしかできない馬鹿には無理

86 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:00:14.30 ]
馬鹿にはおっぱい言語を勧める

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


88 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:04:58.75 ]
と全角が申しております

89 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:51:47.70 ]
Cでは0はナル文字(終端文字)



91 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 00:00:07.07 ]
馬鹿には無理

92 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 05:59:14.73 ]
馬鹿には無理

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

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

94 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 12:25:34.75 ]
java1.7環境だと、実行可能jarは2バイト文字が含まれるディレクトリ配下だと起動できない
これって意図的なの?

96 名前:89 mailto:sage [2012/04/21(土) 14:02:17.14 ]
>>90>>93>>94
普通の文字ではなかったんですね。ありがとうございました。

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

97 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 14:06:13.29 ]
残業代が基本給を超えるって1日何時間残業してるんだ?

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

99 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 15:43:49.97 ]
Cがわかってるなら「入門書」は必要ない

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



101 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 20:39:15.69 ]
何もわからんのに
かじったとか言う方が悪い

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

103 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 21:27:37.12 ]
>>102
禿同

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

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

105 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 21:41:49.15 ]
解らないところが出てきたら
source読むようになるぐらい。

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

107 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 22:03:38.97 ]
馬鹿には無理

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

109 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 23:09:25.39 ]
こんな糞スレで質問しようと思う馬鹿には無理

110 名前:デフォルトの名無しさん mailto:sage [2012/04/22(日) 00:26:22.82 ]
for (::)
System.out.println("馬鹿");



111 名前:デフォルトの名無しさん mailto:sage [2012/04/22(日) 07:50:11.13 ]
下級戦士はよく吠えるな

112 名前:デフォルトの名無しさん mailto:sage [2012/04/22(日) 08:29:18.08 ]

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

113 名前:デフォルトの名無しさん mailto:sage [2012/04/22(日) 10:23:06.27 ]
馬鹿には無理

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



115 名前:デフォルトの名無しさん mailto:sage [2012/04/22(日) 13:03:52.85 ]
安価ミスったww


116 名前:デフォルトの名無しさん mailto:sage [2012/04/22(日) 13:40:08.80 ]
なら、入門書なんか読んでもつまんねーよ。

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

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

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

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

119 名前:ora! [2012/04/22(日) 15:03:03.94 ]
>>98
[Java / プログラミングセミナー]はどうでしょう?
www.acroquest.co.jp/webworkshop/index.html

120 名前:ora! [2012/04/22(日) 15:26:55.65 ]
>>98
[Javaチュートリアル]とか?
docs.oracle.com/cd/E26537_01/tutorial/index.html



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

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

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

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

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

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

125 名前:デフォルトの名無しさん mailto:sage [2012/04/22(日) 21:45:27.30 ]
まさに馬鹿には無理w

126 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/22(日) 22:27:22.13 ]
覚え始めなんだけれども
どんなものから作っていったらいい?
少しづつステップアップしていきたい

128 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/22(日) 23:17:24.31 ]
>>127
どんなものを作りたいと思ってJavaを勉強しはじめたの?

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



131 名前:デフォルトの名無しさん mailto:sage [2012/04/23(月) 00:38:44.52 ]
初心者は自分のレベルをまず説明しよう。

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

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

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

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

134 名前:デフォルトの名無しさん mailto:sage [2012/04/23(月) 13:43:37.88 ]
>>133
java.text.DecimalFormat
java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/text/DecimalFormat.html

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

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

136 名前:デフォルトの名無しさん mailto:sage [2012/04/23(月) 16:41:56.11 ]
>>134
>>135
ありが10


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

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

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

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

目的の実行結果

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




141 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/23(月) 23:23:17.34 ]
凄い釣り師がキタ!

143 名前:デフォルトの名無しさん mailto:sage [2012/04/24(火) 00:01:08.84 ]
>>137
助かりました、本当にありがとうございます。


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

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

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

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

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

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

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

149 名前:デフォルトの名無しさん mailto:sage [2012/04/24(火) 01:54:57.18 ]
>>140
Javaは始めて3日くらいだけど、こんなもんでいいのか?
pastebin.com/V1zMcE84

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

150 名前:デフォルトの名無しさん mailto:sage [2012/04/24(火) 06:00:35.05 ]
うざい



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

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

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

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

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


155 名前:デフォルトの名無しさん mailto:sage [2012/04/24(火) 16:57:24.35 ]
誰か助けて・・・

156 名前:デフォルトの名無しさん mailto:sage [2012/04/24(火) 17:04:02.20 ]
知らんがな

157 名前:デフォルトの名無しさん mailto:sage [2012/04/24(火) 18:53:41.48 ]
漏れは自分のドメイン名は恥ずかしいので付けてない

158 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/24(火) 20:54:00.95 ]
○ JarファイルA、B、Xがが有ったとして、

160 名前:デフォルトの名無しさん mailto:sage [2012/04/24(火) 21:21:32.44 ]
ggrks



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

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

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

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

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

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

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

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

165 名前:デフォルトの名無しさん mailto:sage [2012/04/25(水) 06:52:14.81 ]
死ねよ雑魚が

166 名前:デフォルトの名無しさん mailto:sage [2012/04/25(水) 08:52:47.69 ]
自殺宣言?

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

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

169 名前:デフォルトの名無しさん mailto:sage [2012/04/25(水) 12:50:03.47 ]
断る

170 名前:デフォルトの名無しさん mailto:sage [2012/04/25(水) 14:15:45.83 ]
あ゛?なめてんのか?



171 名前:デフォルトの名無しさん mailto:sage [2012/04/25(水) 14:58:43.99 ]
>>162
シングルトン
インスタンスの数を常に1つにしたい場合に使う

172 名前:デフォルトの名無しさん [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/25(水) 15:16:58.70 ]
過去と互換性のあるレイヤではパラメタ型全部消えるのでerasure。

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

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

175 名前:デフォルトの名無しさん mailto:sage [2012/04/25(水) 18:46:45.00 ]
java6 update16ください

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

177 名前:ora! [2012/04/25(水) 19:52:13.02 ]
>>175
[Java の旧バージョンと関連文書の入手先]
www.java.com/ja/download/faq/other_jreversions.xml

178 名前:デフォルトの名無しさん mailto:sage [2012/04/25(水) 20:07:39.23 ]
>>167
死ねよ

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

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



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

182 名前:デフォルトの名無しさん mailto:sage [2012/04/26(木) 02:14:23.87 ]
抽象戦隊!イレイジャー!

よし覚えた。

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

184 名前:デフォルトの名無しさん mailto:sage [2012/04/26(木) 12:32:33.55 ]
わからない
俺にきくなよ

185 名前:デフォルトの名無しさん mailto:sage [2012/04/26(木) 13:07:39.15 ]
知らないならレスしないでください
うざいだけです

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



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

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

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

190 名前:デフォルトの名無しさん mailto:sage [2012/04/26(木) 22:27:00.05 ]
だなw



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

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

194 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 00:39:51.99 ]
意味がわからん
ラムダ使った並列化はMIMDだろ

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

public class SubClass extends SuperClass{
}

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

196 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 06:51:13.43 ]
>>193
        > 9年ぶりに言語仕様を改訂予定
ja.wikipedia.org/wiki/Java#Java_SE_8

197 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 08:59:40.72 ]
>>197
あらかじめ使えるカードの一覧を作っておいて使用済みのチェックを入れる。

199 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 09:54:25.99 ]
>>196
間違いだから削除した

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



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

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

202 名前:デフォルトの名無しさん [2012/04/27(金) 11:21:12.39 ]
>>197
sasuke.main.jp/java.htmlに「トランプのシャッフル」ってのがある

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

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

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

204 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 14:36:48.75 ]
>>203

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

205 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 16:13:09.20 ]
Java7u4 Java6u32 リリース

206 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 17:48:04.46 ]
>>204
ありがとうございます、

207 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 18:46:54.53 ]
>>206
いえいえ

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



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

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



211 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 19:47:39.74 ]
>>209
出来合いのなら→>>202のやつ
sasuke.main.jp/toranpu.html


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

213 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 20:49:12.14 ]
馬鹿には無理

214 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 22:35:00.08 ]
馬鹿にも限度があります><

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

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

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

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

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

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

218 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 02:14:40.50 ]
ふーん

219 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 09:59:28.02 ]
なんだこの役に立たないサンプルは



221 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 10:58:35.94 ]
配列の添え字が0になるのがそんなに嫌か

222 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 11:20:25.29 ]
何言ってんだコイツw

223 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 11:45:58.54 ]
なにこのドヤ顔ww

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

225 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 12:36:48.51 ]
意味不明

226 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 13:20:59.29 ]
あいかわらずアホなスレですな

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

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

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


229 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 15:14:28.47 ]
>>227  そう。

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

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



231 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 15:23:33.56 ]
>>229
ありがとうございます!

232 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 15:23:33.56 ]
屁理屈乙

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

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

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

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

236 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 15:36:50.64 ]
そうそう

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

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

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

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

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



241 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 16:23:26.61 ]
初心者にドヤ顔www

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

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

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

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

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

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

248 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 16:58:32.40 ]
ツマラン

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

250 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 17:00:14.50 ]
×  C$
○  C#



251 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 17:03:22.49 ]
ところでC++のベテランさんは得意のC++で何ができるんですか?

252 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 17:03:36.69 ]
ハンガーwwww どう見てもブーメランだろwwww

253 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 17:03:53.43 ]
MMDが作れる

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

255 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 17:06:40.03 ]
>>254
>仕様が頻繁に変わる言語

kwsk

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

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

257 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 17:12:31.79 ]
サンクス!

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

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

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



261 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 17:45:24.57 ]
実質は、1.2 〜 1.7 だし・・・

262 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 17:49:45.25 ]
推奨されないメソッドを使わなければそんなに困らないよね

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

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

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

266 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 23:13:23.04 ]
enumくらいだろ

267 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 23:20:00.45 ]
C++ のベテラン必死w

268 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 23:21:18.63 ]
assert

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

270 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 23:35:36.89 ]
>>269
うん違う



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

272 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 23:51:51.56 ]
>>270
ありがと

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

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



274 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 23:58:00.33 ]
assertが追加された予約語と感じる奴が
いったいどれだけいるのか

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

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

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

278 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 00:06:05.86 ]
そういやキーワードという言い方があったな

279 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 00:06:44.95 ]
今日のキーワードは…

280 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 00:10:24.73 ]
予約語!



281 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 00:10:50.81 ]
おまえらassert使ってる?

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

283 名前: ◆QZaw55cn4c mailto:sage [2012/04/29(日) 00:24:31.72 ]
>>282
アサーションを使わないというのは、ちょっと考えにくいのですけれどもね

284 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 00:29:04.29 ]
アサーションする=assert使う
とは限らないだろ

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

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

287 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 01:11:35.59 ]
いつか来た道

288 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 01:11:52.28 ]
enumの話しならともかく
assertはライブラリでも出来るだろ

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

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



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

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

293 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 01:35:05.85 ]
>>267

294 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 01:42:53.14 ]
assertをlibraryって、えっと議論する必要あるの?

295 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 01:44:06.30 ]
馬鹿には無理

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

297 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 01:51:26.53 ]
外す必要が無いならassertなんて要らないだろ

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

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

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



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

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

303 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 02:04:03.57 ]
commonsがC臭いってどの辺りだろ?

304 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 02:13:19.25 ]
java8でmodule仕様が入るので改善されますよ。

305 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 02:27:06.43 ]
でざぱた

307 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 02:28:48.51 ]
馬鹿には無理w

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

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

309 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 02:32:05.40 ]
javaではsingletonとstaticって相性が悪いんですか?

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



311 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 02:33:36.16 ]
>>305
Validatorはそうなってなかったっけ?

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

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

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

315 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 02:38:37.03 ]
>>312
そこは"hello"と"goodbye"をキーにしてi18nだろjk…

316 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 02:38:51.14 ]
sayをうちまちがえたハズカチ

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


318 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 02:41:52.09 ]
>>315
ああいいね。
それ見てこんなの思い出したわ

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

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

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

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

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



321 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 02:51:50.76 ]
バグ♥

322 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 02:51:58.25 ]
>>251

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

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

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

326 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 03:13:25.84 ]
>>324
interfaceにsayもたせたら、直接呼ばれちゃうぞ

327 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 03:15:48.27 ]
>>326
何か問題が有る?

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

329 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 03:22:52.89 ]
あぶすとらくと

330 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 03:26:03.06 ]
>>246



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


332 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 03:39:29.36 ]
ん?設計意図がわからん
breakup→sayの順で呼んで初めて話してくれるのか?
どうなんだろう

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

335 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 04:26:13.71 ]
Command japaneseSayHello = new JapaneseSayHello();
japaneseSayHello.execute();

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

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

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

337 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 05:10:41.89 ]
ゆとり乙

338 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 05:14:36.97 ]
finalつけたのに残念だったね

339 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 06:02:21.56 ]
勉強になるわー

340 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 06:45:05.55 ]
ゆとり乙



341 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 07:38:13.41 ]
ゆとりにはjavaしか無理

342 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 07:51:25.26 ]
馬鹿がんがれ

343 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 11:55:51.62 ]
>>111-112

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

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

346 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 16:27:24.65 ]
Project Lambdaって結局クロージャ使えるの?クロージャもどきなの?

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

348 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 17:28:17.58 ]
クロージャもどきってなんね

349 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 18:23:20.50 ]
exceptionって
イグゼプション?
エグゼプション?
エクスセプション?

350 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 18:28:07.67 ]
いっくしょんぺ



351 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 18:32:32.69 ]
エクセプションっぽ

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

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

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



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

354 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 00:34:58.52 ]
>>353
すいません、説明不足でした!

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

355 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 00:52:09.01 ]
配列を使わずにArrayListなどを使いましょう

356 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 00:55:55.20 ]
なぜListなんだ
なぜ

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

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

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

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

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

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

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

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



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

362 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 01:53:34.09 ]
>>359
伝わりにくくてすいません

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

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

363 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 03:25:13.10 ]
>>346
クロージャは使えない。ラムダ式は使える。

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

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

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


365 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 03:50:56.46 ]
>>360

366 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 04:18:30.23 ]
Java+Swingによる2chブラウザ V2C_R50
anago.2ch.net/test/read.cgi/software/1334228672/

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

日経ソフトウェア
itpro.nikkeibp.co.jp/NSW/

368 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 04:25:45.63 ]
>>364
なんでもつくれます

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

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



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

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

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

374 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 05:01:48.65 ]
>>372
昔のSUN vs MS訴訟の結果と同じで、AndroidはJavaではありません。
しかも旧SUN(Oracle)からJavaのライセンスも得てません。

376 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 05:49:47.62 ]
>>372
少し遅いとか妄想で語るな

377 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 06:35:44.34 ]
>>372

>>263

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

379 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 08:05:22.37 ]
Javaは最速に近い

380 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 08:08:57.54 ]
問題にならないならそれでじゃないですか



381 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 08:09:22.29 ]
問題にならないならそれでいいじゃないですか

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

383 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 08:35:26.85 ]
言語?

384 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 09:13:07.19 ]
AndroidはJavaではありません(キリッ

385 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 09:18:23.23 ]
>>372

386 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 09:49:27.25 ]
Java APIのサイトに繋がらないのは自分だけですか?

387 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 09:58:16.11 ]
あ、SE7のページなら繋がりました。お騒がせしました。

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

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

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



391 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 11:56:20.59 ]
ベンチマーク嫁

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

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

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

395 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 12:15:20.82 ]
>>267

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

397 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 12:25:05.90 ]
お前がなwww

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

399 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 12:31:19.56 ]
たぶんそうです
Javaも例外ではありません

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



401 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 12:36:15.74 ]
スレチ

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

403 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 12:43:27.28 ]
コンパイラーの出来しだいだな。

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

405 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 12:52:21.44 ]
だな

406 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 14:24:11.23 ]
こんなコードなんですけど
ja.pastebin.ca/2142153

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

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

408 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 14:32:14.63 ]
406
すんません、理由をそえておながいします

409 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 14:45:13.66 ]
まず必要な理由を言ってみてもらわないと

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



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

412 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 15:50:48.28 ]
呼べたりはしないでしょ

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

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

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

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

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

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

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

416 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 17:35:58.76 ]
hoge4
無駄なものを書く必要はない

417 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 17:38:53.28 ]
>>415
public abstract ここ非推奨な書き方だろ

418 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 17:47:45.55 ]
うむ

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

420 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 19:47:21.25 ]
一番下に決まってるだろ



421 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 20:11:25.51 ]
句読点省略するような奴は省略するって事か。

422 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 20:20:06.51 ]
ちがうよ
推奨が一番下なんだよ

423 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 20:24:32.67 ]
コーディング規約による

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

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

424 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 20:46:38.46 ]
 redundantly specify っちゅうこっちゃ!

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

427 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 21:06:40.58 ]
googleさんのコード見たらhoge4だった

428 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 21:10:36.06 ]
エディタと勘違いしてるアホがいますなw

429 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 21:11:00.74 ]
public abstract
interfaceのこれってそのうち廃止になるんじゃないの?

430 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 21:11:41.92 ]
ピントずれた意見だな



431 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 21:12:04.48 ]
挟まったか

432 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 21:15:08.69 ]
>>429
廃止にメリットあんの?

433 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 21:16:32.70 ]
っ It is permitted, but …

434 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 21:17:04.35 ]
>>432
コンパイルプロセスの単純化

435 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 21:17:38.40 ]
>>434
他にないって事か。

436 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 21:20:13.52 ]
Javaスクリプトさんが現れました

438 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 21:20:45.84 ]
>>436
Web製作板へいけ

439 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 21:21:08.43 ]
>>435
ないよ。ただ他の言語じゃよくやってるじゃん。

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

440 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 21:22:31.30 ]
>>432
小汚いコードを見なくて済むようになる



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

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

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

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

445 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 22:14:22.93 ]
そんなことよりSAMタイプについて語ろう

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

447 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 22:19:32.58 ]
¥はうち間違い。無視して。

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

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

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

450 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 22:34:39.09 ]
>>424
そもそも、これ何で非推奨にしたんだろ?

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



451 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 22:36:12.41 ]
JLS2ndの時には既に非推奨だったな。

452 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 22:37:24.91 ]
JLS1stからすでに非推奨だったりする。

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

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

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

456 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 23:41:56.42 ]
新しく作るなら、だからJDKの古いこーは問題ない

457 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 23:42:11.20 ]
コードは

458 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 00:20:59.51 ]
>>406
www.javapractices.com/topic/TopicAction.do?Id=49

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

459 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 00:28:00.78 ]
ダメな記事引用するな

460 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 00:28:24.06 ]
不可分じゃなけりゃ理屈上要らんけどな



461 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 00:35:23.92 ]
これ真似したらダメな悪例の典型だぞ

462 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 02:16:15.54 ]
406
すんません、なぜダメなのか理由をそえておながいします

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

464 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 02:37:20.66 ]
AtomicReference

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

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

467 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 03:41:42.34 ]
>>466
ガッ!

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

469 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 06:13:39.78 ]
ナニイッテンダ?

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



471 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 07:21:35.63 ]
>>471
舌かんでしね

473 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 07:34:11.39 ]
だなw

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

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

476 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 08:59:58.62 ]
お金持ってないようなのでお断りします

477 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 09:12:33.44 ]
ホントは知らないんでしょw

478 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 09:23:16.89 ]
>>475
無駄じゃないよ。synchronized必要
setterにsynchronizedを付けるならgetterにも付けないと不釣合いだろ
カッコ悪いだろ

ここを嫁
gee.cs.oswego.edu/dl/cpj/jmm.html

final class VFloat {
  private float value;

 final synchronized void set(float f) { value = f; }
 final synchronized float get() { return value; }
}

上記getメソッドにsynchronizedが無い場合、setメソッドでセットされたはずのvalueの値が
別コアで実行される別スレッドから読み出せないことが有りうるんだよ
なぜなら、高度に最適化された優秀で賢いコンパイラは変数をメモリーではなく
CPUのレジスターに割り当てたりすることもあるからだ
synchronizedの入口と出口でマルチコアCPUのコア間の不整合が解消されるしくみだ


479 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 09:30:28.34 ]
synchronizedつけさえすればいいと思ってるのはアホ

480 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 09:36:41.44 ]
別コアとかレジスターとか、C++なら気にする必要はあるでしょうけど・・・



481 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 09:46:42.75 ]
>>475
なぜ必要なのか説明してみ

482 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 09:48:21.77 ]
>>471
最初のsystem.outをコメントアウトすればわかる

483 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 11:38:51.38 ]
>>471
なぜファイル名も書くのかwww

484 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 11:49:12.15 ]
>>478
かっこいいなぁ 俺英語読めん
synchronizedの使い方もよくわからん
いつまでたっても初心者から抜けれんわ
「synchronized」とか解説してる入門書なくない?

485 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 11:55:48.41 ]
>>484
結城本嫁

486 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 11:57:55.80 ]
>>485
ありがとうございましゅ
結城さんの本はデザインパターンの本しか持ってなくて
それも5パターンぐらいまでしかまだ理解できてないや……
知識レベルがカスなことは自覚してるんだが上達したいなー

487 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 12:00:46.54 ]
馬鹿には無理

488 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 13:13:53.00 ]
>>475
何度も言うがgetの中身が不可分操作じゃないからつける必要がない
つけてしまえば速度が下がる
>>475 の話は、そもそもvolatileつけてたら関係ない
JavaのvolatileはC++のvolatileと違ってアトミック性を保証するためのものだ

489 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 13:31:36.73 ]
× >>475 の話は、そもそもvolatileつけてたら関係ない
>>478 の話は、そもそもvolatileつけてたら関係ない



490 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 15:46:10.43 ]
『Java並行処理プログラミング』わかりやすいからら読んどけ



491 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 16:15:43.10 ]
volatileはアトミックじゃないぞ。xとyが関連するならvolatileじゃ足りん。
それよりZahyoにsynchronized付けるんじゃなくてZahyoを使う方にsynchronized付けたほうがいいんじゃないの?

492 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 16:30:36.46 ]
>>491
xかyいずれかのset/getでアトミックが保たれてるから、話の流れとしては間違ってないんだよ。
結局Zahyoを使う側で同期をとるってのが正解。

493 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 16:41:37.32 ]
不変クラスにしよう

494 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 16:45:08.54 ]
>>406は実行環境のver次第でJMMが変わるから環境書け。
古いJMMならvolatileをsynchronizedするのは正しい。

495 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 16:50:06.99 ]
お前ら、稀なケースばかり考えるんじゃなく常識の範囲で考えろよ。
相手はどう考えても初心者だぞ。古いVMつかってるかどうかとか考える必要ないだろ。

496 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 16:58:20.23 ]
俺はこのネタついては既にスルーしてるw

497 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 16:59:32.24 ]
どっちにしてもZahyoインスタンスがリオーダーされたら意味ないから使う方のソースも見てみないと

498 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 17:03:11.27 ]
>>241

499 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 17:04:28.76 ]
たしか使う方のソースも付いてた

500 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 19:09:37.15 ]
>>474>>482
半角スペース使ったため見難くなってしまって申し訳ないです。
bufferreader周りを勉強し直してみます。
ありがとうございました



501 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 19:28:02.90 ]
synchronizedを付けようがつけまいがどのみち間違っているから好きな方でどうぞ

502 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 22:43:56.50 ]
>>492>>493>>501で終了〜

503 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 00:54:05.93 ]
カバにはリーム―

504 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 00:55:51.63 ]
メソッドの頭にシンクロつけるようなソース書くケースってあるのかな?
少なくともセッターゲッターにシンクロ宣言はつけないと思える
これはロックオブジェクトの概念を知れば理解できる

使う側から見た視点でタイミングを考えるべきに同意
それと同期、平行この2語を真に理解することはとても大事だと思う。

くどいけど セッターゲッター両方にシンクロ宣言つけたら
そのインスタンスに同時操作しようとするスレッドが、順序のない行列作っていろいろ面倒なことになる

505 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 01:02:33.45 ]
java.util.concurrent この下にあるやつ
API眺めるだけで大体理解できると思うよ

506 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 01:41:20.46 ]
実際get/setみたいな粒度の同期化なんてほとんど意味無いよ
利用する側は大抵もっと大きい単位でロックする必要がある

507 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 09:30:21.78 ]
使う側で同期で答えでたやん

508 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 11:04:09.57 ]
スレッドAで
sync(o){
o.ijiiji
}

スレッドBで
o.ijiiji

ってするとスレッドAがoをいじいじしている間は
スレッドBはoをいじいじできないの?


509 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 11:11:23.29 ]
スレッドBの方で排他制御してないなら自由に触れる。

510 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 14:52:58.95 ]
なにかを自作しようと思うとほとんどサンプルコードの改変になって悩んでます
自分で作った気がしないのですが……



511 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 15:02:48.96 ]
サンプルコードの改変で作れるようなものなんて、今更君が作らなくても既に遥かに優れたものが世の中にある
っていうか、普通にPC使っててこういうのが欲しいと思ったときに
まだ誰もそれを作ってないなんてことはまずありえないから、はっきり言って時間の無駄

512 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 15:06:15.34 ]
そうですよね
ではプログラミングはどのように勉強していけばいいのでしょうか?

513 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 15:20:45.67 ]
趣味ならAndroidでもやれば
GUIなら.NETやC++の方がいいしちょっとした作業の自動化ならスクリプト言語の方がいい

514 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 15:31:45.66 ]
何言ってんだ、コイツw

515 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 16:01:19.40 ]
>>511
このいいかたでは、
サンプルコードの改変がダメのようにきこえてしまうが、

ライブラリをべんきょうするとき、サンプルがあればたすかるね

516 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 16:01:42.73 ]
スマホアプリいいよ
PCではサンプルコードの改変レベルの糞アプリでもスマホで出せば評価される

517 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 16:54:11.08 ]
こういうのが欲しい!と思って無かったから作った人がここに

518 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 17:47:33.65 ]
public class Tc {
public Tc() {
}
}

Tc tc1; //@

クラスについて初歩的な質問なんですが
こういうふうにクラス宣言して主クラスの最初で@のように定義すると通るのですが
他の場所 onCreate()内 等で@の定義をすると
’ローカル変数 tc1 は読み取られません’とEclipseに怒られてしまい実際実行されません。
その他の場所で@の定義をするにはどうすればいいですか?

519 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 17:54:52.81 ]
それは意味ないローカル変数を宣言した時に出る

520 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 18:10:35.41 ]
>>518
言語仕様的なエラーじゃなくて、
プログラムミスの可能性が高いから警告にしたりエラーにしたりできるようになってる。

Window->Preferences->Java->Compiler->Errors/Warnings->Unnecessary code->Value of local variable isnot used
Project->Properties->Java Compiler->Errors/Warnings->Unnecessary code->Value of local variable isnot used
を ignore にすれば警告かエラーは消える。上はワークスペース全体の設定で下はプロジェクト固有の設定。
ignore にするのは推奨しないけど。



521 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 18:27:02.03 ]
>>518
ローカル変数を宣言しても、それを使っていなければ宣言した意味がないので、親切にも注意してくれているんだ
ちゃんと使えば文句言われない

522 名前:518 mailto:sage [2012/05/02(水) 18:33:02.52 ]
ローカル変数でなく class と宣言してるはずなんですが。

あと上の記述だとスルーだけになるのですが

Tc tc1 = new Tc();

こう書くとエラーになってしまいます。
これはどういうことでしょうか?

523 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 18:35:25.86 ]
だから、そのローカル変数 tc1 を、使ってないだろう?

524 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 18:38:25.42 ]
ああ、最初にグローバルで@の記述を必ずやらないと
途中から書いてもクラスとみなされないということですかね。
public 書いてるからどこからでも参照できると思ってました。

525 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 18:42:43.93 ]
あとローカル変数ならば
Tc tc1;
じゃなくて
int tc1;
とかじゃないでしょうか?

コンパイラはそういう判断かと思ったんですが。

526 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 18:43:42.30 ]
classを囲う{}の外に書いたら怒られるのは当たり前

527 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 18:47:10.73 ]
>>525
それは変数の型が違うだけだ (プリミティブ型 or クラス型)
ローカル変数かクラス変数かインスタンス変数かという変数の種類は変わらない

528 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 18:50:07.46 ]
変数とスコープを勉強しなおしてこい

529 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 18:55:31.98 ]
>>526
class内のmainで定義すればいいですかね。やってみます。

530 名前:518 mailto:sage [2012/05/02(水) 19:07:06.63 ]
ここまでで冒頭でやればいいとわかったのですが
最初にグローバルにクラス作るのでなく
途中から自由にクラスインスタンス作ったり外したりする方法はないのでしょうか?



531 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 19:12:27.46 ]
Tc tc1 = null;
tc1 = new Tc();
tc1 = null;
とか

532 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 19:25:51.30 ]
>>531
やってみます。

533 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 21:55:11.42 ]
Javaを初めて勉強するのにお勧めの教本とかってありますか?
プログラミング未経験です

534 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 21:56:04.90 ]
今までファイル読み込みが面倒なのでファイルをクラスに変換するマクロで、
クラス内にファイルの内容を直接埋め込んでいたのですが、
今日、少し大きなファイルを埋め込んでみたところ。
「static イニシャライザーのコードが 65535 バイトの制限を超えています」
まさかJava自体にこんな制限があったなんて…orz
うわーどうしよう。


535 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 21:59:32.35 ]
コード自動生成してるんなら適当にメソッド分けるようにすればいいだけじゃね

536 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 22:21:38.06 ]
もしものすごく膨大な定数を使いたかったら、ファイルにまとめて読み込まなければならないってこと?

537 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 22:26:39.16 ]
今はどんな言語でも、膨大な定数を自前で保持しないだろ。
昔はBASICのDATAにマシンコード持たせてたけどさ。

538 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 22:30:58.27 ]
ロードに時間かかるしなあ
Javaじゃ用途的にあんまり問題にならないだろうけど
クライアントアプリだととりあえず起動してなんか表示してからロードするほうが
ストレスを感じさせにくい

539 名前:534 mailto:sage [2012/05/02(水) 22:37:53.08 ]
画像ファイルをクラスにするくらい分けないと思ったのですが…。
とりあえずメソッドを分割してみます。お騒がせしました。

540 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 22:49:17.75 ]
ファイル添付できない上にコード量の制限があるBTSにバグ報告するとき
gzip + base64 で文字列化とかはやったな。



541 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 08:12:49.48 ]
日経ソフトウェア買って読んでみたら半分いや5分の1ぐらいしか理解できなかった
みんなこんな本ふむふむと読んで活用できるんでしょ? 尊敬させていただきます
入門書のあとみんなどうやって成長していってるの? 

542 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 08:30:12.61 ]
あなたのレベルではまだ早いってことですよ。
そのレベルで紙情報に対して毎月1000円だすつもりなら、オール日本語アイテー情報紙のPCfan(マイナビ)がいいんじゃないですか。

543 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 08:44:39.91 ]
レベルにあってないことがわかりました 自分では活用できそうにありません
1000円は勉強代ですね
ただPCfanはさすがに読んでてもつまらんです それにあれ休刊になったんじゃ?

544 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 09:05:36.23 ]
1000円の勉強代金を支払えば即すべてのスキルが得られるわけではありません。

545 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 09:17:42.67 ]
ゆとり(笑)

546 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 11:44:25.74 ]
日経ソフトウェアって、そもそも技術者が読むよーなのだっけ?
技術者じゃない人が読んで、理解した気になるための雑誌じゃなかった?

547 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 11:45:24.94 ]
あほやな
自分よりレベルの高い本を買ってわからなくても適当に読んでれば
知らないうちにレベルアップしてるのに
自分と同レベルの情報見ててどうすんだよw

548 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 11:52:10.90 ]
ステマ乙

549 名前: ◆QZaw55cn4c mailto:sage [2012/05/03(木) 12:08:18.68 ]
awabi.2ch.net/test/read.cgi/classical/1329658328/4


550 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 12:11:57.82 ]
間違って日経NETWORKというのを定期購読してしまって
なんとなく眺めてたらいつのまにかネスペが取得できてしまった。
ネスペ取得者にはこういう人が多い。



551 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 13:34:59.55 ]
日経ソフトウェアは中学生くらいが読むもんだけど本当に初歩の初歩から書いてあるから専門外の言語の雰囲気掴むにはいいよ。

552 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 14:03:32.98 ]
コードが書いてある雑誌って減っちゃったからなー
特にJavaとか紙面に乗せると文字数食うせいで
解説とかめちゃくちゃはしょってあるから分かりにくいとは思う


553 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 14:11:53.12 ]
分厚い技術書も大概だろ
コードで水増ししまくって内容がほとんどない

554 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 14:13:15.63 ]
内容がないよう・・・ぷぷっ

555 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 14:34:30.52 ]
日本の本はそうだな。海外のはコードはwebかCDに収めて解説がずらずらと書いてあって1000Pとかある

556 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 16:13:49.99 ]
日本語では簡潔に説明できることが英語では単語でものすごく水増しされたような文章になるからね。

557 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 16:15:07.48 ]
英語の本読んだことねーなら無理するな

558 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 16:27:25.03 ]
どうでもいい質問すみません
クラスの変数とメソッドの引数が同じ意味の場合、どう書き分けたら便利でしょう?
たとえば

class Human{
 int weight_1;

 public setTall(int weight_2){
  weight_1 = weight_2;
 }
 その他メソッド色々
}

というクラスを作ると、eclipseだとHuman#setTall()を呼び出すときの自動補完で
 human.setTall(weight_2)
と勝手にweight_2も含めて入力してくれるので、引数を一般的な単語にしたいんですが
そうするとクラスの変数をそうじゃない名前にしなきゃいけなくて
今度はHumanクラスを書く際にその変数名が面倒になってしまいます。

ネットを検索するとm_weightとかmWeightとか_Weightにするといいというのもありますが
それだとHumanクラスを書く際に補完機能が使いづらくなってしまいます
(たとえばm_tallとm_weightがあると、mで補完させると両方引っかかってしまう)

559 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 16:31:51.10 ]
>>558
this
あと、クラスの変数じゃないから。オレオレ定義で呼ぶな

560 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 16:33:00.25 ]
public setTall(int weight){
 this.weight = weight;
}
でいいじゃない



561 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 18:57:25.02 ]
フィールドを"_"で始まる名前にしておけばローカル変数と混同しなくて便利なのに

562 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 19:42:58.87 ]
スレッドをローカル変数だけに持ったままメソッドを抜けたらバグってワロタw

563 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 19:59:06.56 ]
日本語でおk

564 名前:デフォルトの名無しさん [2012/05/03(木) 22:15:25.77 ]
テキストボックス(textBox)に値が入力されたらボタン(searchButton)を有効にする
ということをしたくて以下のように書いてみました。

this.textBox.addChangeHandler(new ChangeHandler(){
@Override
public void onChange(ChangeEvent event) {
if(!textBox.getValue().equals("")){
searchButton.setEnabled(true);
}
else{
searchButton.setEnabled(false);
}
}
});
これでも動作することはするのですが、テキストボックスからフォーカスを外さないとイベントが発生しません。
そうではなくテキストボックス入力中にボタンの有効・無効切り替えをできるようにしたいです。
KeyDownハンドラを使おうかとも思いましたが、一番キレイに実装するにはどうすればいいでしょうか?

565 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 22:25:28.27 ]
そんなサンプルそこらに落ちてるだろ。あほか

566 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 23:58:30.87 ]
チョンうぜぇ

567 名前:デフォルトの名無しさん [2012/05/04(金) 05:16:24.46 ]
private static final なメンバは普通実行時に変わらないけど
GWTとかでJSからオブジェクトを受け取る場合は変える事も出来るんだろうか?

568 名前:567 [2012/05/04(金) 05:26:05.20 ]
transientとfinalのキーワードを持つフィールドは送受信されない。

という記述が見つかった。
finalなフィールドを外部から書き換える事は出来ないようだ

569 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 09:53:52.99 ]
ヒント: const

570 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 12:32:44.07 ]
Stringをbyte配列に変換するときに、
下記のように文字コードが指定できますが、
>byte charArray[] = target.getBytes("MS932");

byteって1バイトなので、文字コード指定したところで帰ってくる配列って変わらないんじゃないですか?
intなら各文字コードのマルチバイト文字の区切りで切り取るとかもできそうですが。

shift-jis読み取りのために一応つけてるんですが、これって意味がありますか?



571 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 12:34:37.79 ]
データ列だからバイト配列なだけだ
1byte=1文字ではない

572 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 12:42:13.46 ]
>>570
String s = "あ";
byte[] a = s.getBytes("MS932");
byte[] b = s.getBytes("EUC-JP");
byte[] c = s.getBytes("UTF-8");
System.out.println(Arrays.toString(a)); // → [-126, -96]
System.out.println(Arrays.toString(b)); // → [-92, -94]
System.out.println(Arrays.toString(c)); // → [-29, -127, -126]
指定した文字コードによって返ってくる配列ちゃんと変わるぞ

573 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 13:10:10.71 ]
>>572
サンクスです。ファイルから読み込んだ場合と混同してました。
そうか、Stringから変換した場合、内部で文字コード変換が走るんですね、納得です。

574 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 13:12:16.67 ]
たぶんわかってないなこれ

575 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 09:09:01.77 ]
質問です。インターネットアクセスするコードの
01 URL url = new URL("http://〜〜〜〜");
02 HttpURLConnection connection = (HttpURLConnection)url.openConnection();  ※throws IOException
03 InputStream is = conn.getInputStream();      ※throws IOException
04 InputStreamReader isr = new InputStreamReader(is, "MS932");  ※throws UnsupportedEncodingException
05 BufferedReader br = new BufferedReader(isr);
06 String s = br.readLine();                   ※throws IOException
07 conn.disconnect();
08 br.close();         ※throws IOException
という流れで

(1)
03のconn.getInputStream()にてIOExceptionが投げられた場合、conn.disconnect()の必要はありますか?

(2)
06のbr.readLine()にてIOExceptionが投げられた場合、
(A)conn.disconnect()の必要はありますか?
(B)br.close()の必要はありますか?


(1)はHttpURLConnectionのメソッドがエラー出してるんだしdisconnectされてて当然だろうと思うし
(2)はBufferedReaderのメソッドがエラー出してるんだしcloseされてて当然だろうと思ってしまいます。
特に(2)で仮にbr.closeしようと思ったらIOExceptionのcatch中さらにIOExceptionのcatchをするわけで
すごく変なコードになる気がします。

576 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 10:26:12.67 ]
disconnect はそもそもまったく呼ばなくてもいいものなので必要あるかといわれればない
close は呼ぶべき
例外は回復不能なエラーばかりとは限らないから自動的に close されたりはしない・・・例えば SocketTimeoutException とか
変なコードは Java 7 からの新しい try-with-resources を使えば解決

577 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 11:12:45.03 ]
全部をcatchせずにcloseするか判断するところまでthrowして、
そこでcatchしたらfinally内でcloseの方がすっきりしそう。
ライブラリやAPIの類が例外だしたらインスタンスの再利用はできないことが多いしw

578 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 12:46:42.40 ]
>>576->>577
ありがとうございます

作ってるアプリのいくつかの機能で共通点が多かったので
サブルーチンのようなprivateメソッドを作って
メソッド1〜3はできるだけシンプルになるようA〜D内で完結させようとしてたんですが
アドバイス読んで、まとめて受けるようにしてみました。

昔ちょっとC言語で遊んだだけだったので「例外出さずにfalseやnullで返してくれたら楽なのに」って思ってたんだけど
逆にそうされたらそこで毎回チェックしてクローズ処理しなきゃいけないわけで、まとめて受けられる例外の方が便利ですよね
でもgotoっぽい性質もあって怖そうですね

クラス修正前{
 機能1(){A;C;}
 機能2(){A;B;}

 private サブルーチンA(){処理、例外処理}
 private サブルーチンB(){処理、例外処理}
 private サブルーチンC(){処理、例外処理}



クラス修正後{
 機能1(){try{ A;C; }catch(){ どこかでエラー発生 }finally{ クローズ処理 } }
 機能2(){try{ A;B; }catch(){ どこかでエラー発生 }finally{ クローズ処理 } }

 private サブルーチンA()throw e{処理}
 private サブルーチンB()throw e{処理}
 private サブルーチンC()throw e{処理}
 private クローズ処理(){try{close()}catch{}}


579 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 13:00:59.04 ]
>>578
キャッチなしのtry{}finally{}を一つ入れるとキレイになりそう。

580 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 14:10:27.96 ]
JDK 1.7 がインストールできません。
@Windows7(x64) Ultimate
jdk-7u4-windows-x64.exe をD/L してダブルクリックしても
インストーラのダイアログが表示されません。
jdk-6u31-windows-x64.exe だと、問題なくインストールされます。
jre-7u4-windows-x64.exe をインストールしてパスを通したりしてますが
状況は変わりません。

どなたかお助けを。



581 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 14:16:48.07 ]
もう一回ダウンロード

582 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 14:31:40.15 ]
>>581
ありがとうございます。
ダウンロードし直してみましたが、ダメでした。
※1回目と2回目のファイルは同一でした。

困りました。

583 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 15:38:53.68 ]
あきらめないで!

584 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 18:05:42.44 ]
質問です。以下の文をもっとスマートに書く方法ってありますか?
swich文のcaseごとに同じメソッドを重複して書くのがちょっと微妙な気がするのです。

private void doWork(int stage) {
switch (stage) {
case 0 :
break;
case 1 :
method_1();
break;
case 2 :
method_1();
method_2();
break;
case 3 :
method_1();
method_2();
method_3();
break;
case 4 :
method_1();
method_2();
method_4();
break;
default :
break;
}
}


585 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 18:12:30.28 ]
>>584
なんか設計からして変な気がする。

のはさておき、重複して書くのは常に悪というわけではない。
読み易さのためなら有る程度の重複は許される。
スマートってのは読み易いということだ。
君がこれからやろうとしている事はコードゴルフの類いなので、
僕のスマートの定義ではこれ以上のスマートな書き方は無い。

むしろ設計を見直す。

586 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 18:13:48.87 ]
他に思いついたのは以下ですが、これも微妙な気がして。

private void doWork(int stage) {
if (stage == 0) break;
if (stage > 0) method_1();
if (stage > 1) method_2();
if (stage == 3) method_3();
if (stage == 4) method_4();
}

587 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 18:17:13.52 ]
>>585
設計が変ですかね。確かに読みやすい気はしますが
記述的に無駄が多い気がして。

588 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 18:22:36.42 ]
ほうら、スマートだろう?

private void doWork(int stage) throws Exception {
 getClass().getMethod("method_" + stage).invoke(this);
}


589 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 18:47:58.16 ]
>>588
うーん、見た目スマートですけど
コレジャナイ感がします。
設計が変というのはint stageごとにmethod()作れってことですかね

590 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 18:49:39.21 ]
>>586 の方が良いだろ。

あと、ここに書くときは半角スペース2個を、全角スペース1個に置換しといて!
private void doWork(int stage) {
  switch (stage) {
    case 0 :
      break;
    case 1 :
      method_1();
      break;
    case 2 :
      method_1();
      method_2();
      break;
    case 3 :
      method_1();
      method_2();
      method_3();
      break;
    case 4 :
      method_1();
      method_2();
      method_4();
      break;
    default :
      break;
  }
}



591 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 19:00:54.25 ]
頭の中でのイメージは、代入させるint stageの値によって
doWork()内での処理ブロックの通過のさせ方を変えるような書き方をしたいんです。
たとえば、stageに4が代入されれば、method_1()を通過、method_2()を通過、
method_3()を飛ばしてmethod_4()を通過という処理をさせたいんですが、
これを視覚的にわかりやすく書けないものかとおもいまして。


592 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 19:36:16.90 ]
ステートマシンだろ?
どうせ複雑になったらわかんなくなるからステートマシン図をちゃんと描いて保存しておいて
ソースの見やすさなんて無視でいいよ

593 名前: ◆b.MfON/oOo mailto:sage [2012/05/06(日) 19:39:51.48 ]
>>591 どぅ?

private void doWork(int stage) {
  if (stage == 0) break;
  if (stage > 0) method_1();
  if (stage > 1) method_2();
  if (stage >= 3){
    if (stage == 3) {
      method_3();
    } else {
      method_4();
    }
  }
}

594 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 19:42:31.76 ]
int[] t = { 0, 1, 3, 7, 11 };
int x = t[stage];
if ((x & 1) != 0) method_1();
if ((x & 2) != 0) method_2();
if ((x & 4) != 0) method_3();
if ((x & 8) != 0) method_4();

595 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 19:54:54.81 ]
>>588>>584>>590>>586>>593 >> >>594

メンテする視点で考えんと

596 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 19:56:45.23 ]
ナに言ってんだかw

597 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 19:58:06.49 ]
Javaは>>594みたいなことをする言語じゃないなとは思った。

598 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:03:19.01 ]
>>592
画像のレイヤー表示的なことをしたいんです。でも同じようなもんですよね。

>>593
ああ、これは見やすいかもです。

>>594
う、頭から煙が。苦手な分野です。


またひとつ思いつきましたけど、いけてない気がします。
private void doWork(boolean flag_1, boolean flag_2, boolean flag_3, boolean flag_4) {
  if (flag_1) method_1();
  if (flag_2) method_2();
  if (flag_3) method_3();
  if (flag_4) method_4();
}

599 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:06:38.47 ]
そんなんならbooleanの配列でいいじゃん

600 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:11:31.57 ]
>あと、ここに書くときは半角スペース2個を、全角スペース1個に置換しといて!

なんで?



601 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:26:47.18 ]
>>599
こうですか?わかりません。

private static boolean[][] stage =
  { //mth1 //mth2 //mth3 //mth4
    { false, false, false, false },//stage 0
    { true, false, false, false },//stage 1
    { true, true, false, false },//stage 2
    { true, true, true, false },//stage 3
    { true, true, false, true } //stage 4
  };

private void doWork(boolean[] flag_) {
  if (flag_[0]) method_1();
  if (flag_[1]) method_2();
  if (flag_[2]) method_3();
  if (flag_[3]) method_4();
}

602 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:32:18.63 ]
クズコード化プロジェクト?

603 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:35:27.09 ]
>>602
ああ、、そんな気がしてきましたorz

604 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:36:03.79 ]
どんな案が出てきたところで>>584がメモリを少々食いつつも
もっとも高速で実行できるということで良いですか?

605 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:43:03.77 ]
高速?
求めてたのはスマートな書き方じゃなかった?

606 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:46:17.41 ]
そうだな。
コードゴルフではなく、>>591 は 「視覚的にわかりやすく書けないものか」 と言っている。

607 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:48:38.93 ]
>>604は私ではないですが、
見た目重複が少なく、視覚的にわかりやすい書き方を求めてます。
かつ、できれば処理的にも軽いほうがいいです。

608 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:50:03.22 ]
馬鹿には無理

609 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:57:16.37 ]
>>608
そうでしょうか。
では>>585でFAということにしようと思います。
お付き合いありがとうございました。

610 名前:デフォルトの名無しさん [2012/05/06(日) 20:57:23.54 ]
\u3010 の形式を普通の文字にしたいのですが、
どうやるのが一般的なんでしょうか?
\u除いてparseIntで文字コードに変換まではできたのですが、
そこからStringに戻すとこで躓いてます。
そもそもそんなめんどくさいことしなくても、
一発で変換できるような関数があるのでしょうか?



611 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 20:58:40.74 ]
>>590の条件はともかくステートマシンならこんな感じで作るわ

// State間の情報は、Contextのオブジェクトで管理
Context context = new Context();
Stage1 stage1 = new Stage1( context );
Stage2 stage2 = new Stage2( context );
Stage3 stage3 = new Stage3( context );

// 各Stateが、doを実行した際返すStateを指定する。
// 例えば、doの結果が成功した場合の次のStateは、SuccessStateで指定し、
// doの結果がゲームオーバーした場合の次のStateは、GameOverStateで指定する。
stage1.setSuccessState( stage2 );
stage1.setGameOverState( stage3 ):
// クラスによってどんなset〜Stateを持ってるかはバラバラ。この場合だと、実行完了後に必ずstate1に戻る
stage2.setNextState( state1 );
stage3.setNextState( state1 );

// ステートの実行は、こんなループやら、イベントを使って実行する。
State state = stage1;
while( null != state )
{
  state = state.do();
}

612 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 21:04:53.37 ]
そういや、doって予約語だったな。うかつだった。

613 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:04:28.04 ]
ステートをオブジェクトとして扱う必要あるか?
それならもうストラテジーやコマンド使って設計したほうが綺麗だと思う。

ていうかなんのコードだっけ?ゲーム?

614 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:09:09.66 ]
オブジェクトにする理由はこんな感じか
1.ステートの中にもステートが存在するし、ステート自体にも固有状態が存在する。
2.典型的なステートの再利用が可能になる。また、クラス追加による拡張が可能になる。
あと、基本構造はコマンドパターンだな。

615 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:18:01.48 ]
>>613
匿名クラスが追加されてからは、メソッド内に
処理を埋め込めたりするんで記述がやや楽。

private State state1;
private State state2;
private State state3;

state1 = new State{ public State action(){ return state2; } };
state2 = new State{ public State action(){ return state3; } };
state3 = new State{ public State action(){ return state1; } };



616 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:04:25.02 ]
何が求められているコードなのかにもよる
メモリなのか速度なのか

617 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:06:29.55 ]
そういうのはコードそのものの美しさなんかより文書や図と機械的に対応してるほうが重要だと思う

618 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:09:07.43 ]
>>616
パフォーマンスなんて作ってからでいいだろ


619 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:12:37.75 ]
(ノ∀`) アチャー

620 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:20:56.91 ]
>>618
それはSI屋の発想な気がする。



621 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:21:14.06 ]
え?

622 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:25:22.54 ]
パフォーマンスなんて作ってからでいい (キリッ

623 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:34:08.56 ]
>>619=622 ?

>>620
do you know "premature optimization is the root of all evil" ?

624 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:50:00.61 ]
>>623
一年生かなんかだろ。そういう時期もあるさ

625 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:51:37.98 ]
>>601



private void doWork(int stage) {
boolean[][] flag_ = {
{ false, false, false, false },
{ true, false, false, false },
{ true, true, false, false },
{ true, true, true, false },
{ true, true, false, true }
};
if (flag_[stage][0]) method_1();
if (flag_[stage][1]) method_2();
if (flag_[stage][2]) method_3();
if (flag_[stage][3]) method_4();
}



>>594

626 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:53:54.24 ]
>>624
無駄に速度に拘ってプログラム完成させられないやつって初心者〜中級者に多いよな

627 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:55:44.05 ]
ありがちだわな

628 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 00:00:49.77 ]
パフォーマンス改善しました!
→ほとんど誰も使わない機能でした

パフォーマンス改善しました!
→計画が変わってリリースされませんでした

パフォーマンス改善しました!
→「どの位速くなったの?」「さあ、わかりません」


629 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 00:01:48.02 ]
パフォーマンス改善しました!
→コードが汚すぎてメンテ出来ません

630 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 00:06:01.55 ]
プログラミング言語 Java のコンセプトを考えれば分かる罠



631 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 00:12:22.11 ]
最初から最適化意識しなきゃならん状況ならC++つかうわな
サーバーサイドだってサーブレットなんて使わずfcgi使うだろうし

632 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 00:17:35.13 ]
速度にこだわるならjava使うのやめましょう

633 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 00:19:33.84 ]
Javaは充分速いだろ
たしかに最速じゃないけど確実に上位だ。

634 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 00:27:31.79 ]
言語レベルの問題じゃなくて、ライブラリモデル(アルゴリズム)の問題なんだけどな
C++と大体似たコード書いて、newとか動的確保を最小限に抑えれば、C++に近い速度は出る
ただ、普通に使うとStringを始めライブラリがnewした領域に値をコピーするスタイルを取ってるもんで、
文字列やコンテナの一部をイテレーターで保持しとけばいいだけというケースでは大きく速度を引き離される

極力無駄なコピーを減らせばいいが、そんな事をすればJavaの標準ライブラリが逆に足かせになってしまう



635 名前:デフォルトの名無しさん [2012/05/07(月) 00:41:59.70 ]
private <A, B, java.lang.String> void test(List<java.lang.String> l){

}

なんでメソッドの定義でだけjava.lang.Stringって書けないんですか?
引数のList<java.lang.String>はエラーが出ません

private <A, B, String extends java.lang.String> void test(List<String> l){

}

とかしておけばいいんですか?

636 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 01:57:26.50 ]
型パラメータにクラス使われたらワケワカメだろ

637 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 04:36:35.47 ]
ステートマシンの実装ならinvokeDynamic使うのもいいぜ

638 名前:デフォルトの名無しさん [2012/05/07(月) 15:45:18.41 ]
Forte for Java ってどうなったんですか?
フリーの統合開発環境でこれDLしなさいと言われたのですが、名称が変わったのでしょうか?

639 名前:638 [2012/05/07(月) 15:47:16.93 ]
ちなみにWindows7 Enterprise 32ビット版です
他にお勧めなのとかあったら教えてください

640 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 15:55:30.44 ]
他にじゃなくてeclipse一択



641 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 17:27:13.20 ]
>>638
ja.wikipedia.org/wiki/NetBeans#.E6.AD.B4.E5.8F.B2

642 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 17:37:30.95 ]
Javaでエンジニアやってる派遣です。
某自動車メーカーに派遣切りされて生きていく希望がありません。
派遣会社からも全然新しい配属先を紹介していただけません。
どうすればいいでしょうか?

643 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 17:46:40.52 ]
さあ
おれに質問されてもなあ…

644 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 17:49:30.47 ]
いたちがい

645 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 17:58:02.04 ]
>>640
NetBeansもあるだろ。
ま、ここで質問する奴にはEclipseの方が向いてそうだからいいけど。

646 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 18:28:31.53 ]
>>643,644
質問じゃなくて相談してるのです!スレタイに相談ってかいてあるじゃないですか!

647 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 18:28:55.41 ]
>>640>>641
ありがとうございました

648 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 19:23:55.74 ]
ttp://sunjava.seesaa.net/category/3648259-1.html
ここを参考に勉強中なのですが以下のようなエラーが出て行き詰っています。
自分なりにぐぐってみたりはしてるのですが解決策が見つからず困っています。
AccessのODBCドライバが32bitしかないようでしたので、odbcad32.exeからデータソースは登録されています。
どなたかご助言を頂けないでしょうか。
別スレで質問したのですがこちらのスレの方が適切だと思いましたので、改めて宜しくお願いします。

環境:Win7 64bit Java SE6
エラー内容:[Microsoft][ODBC Driver Manager] 指定された DSNには、ドライバーとアプリケーションとのアーキテクチャの不一致が含まれています

649 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 19:54:23.55 ]
ウインドーズ環境なのでマイクロソフトの有料サポートに電話をすれば解決します。

650 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 20:20:59.41 ]
口周りは青くて顎鬚は濃かったよ



651 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 20:29:46.67 ]
Windows2000のマシンにJava runtimeを入れたいのですが、Version 6 Update 32 は
サポート対象から外れたのか、インストールに失敗してしまいます。
Version6 の最初の方のUpdateはインストール出来たと思うのですが、Windows2000を
サポートしている最後のJava runtimeのUpdateは何でしょうか?

652 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 20:49:19.61 ]
Windows 2000マシンは結局ウインドーズ環境ですよね?
マイクロソフトのジャバ部門に電話して有料サポートを受けましたか?

653 名前:デフォルトの名無しさん [2012/05/07(月) 21:26:13.26 ]
>>651
javaSE6リリースノート-サポート対象のシステム構成[java.sun.com/javase/ja/6/webnotes/install/system-configurations.html]を見ると、Windows2000SP3とSP4でサポート対象になってるみたいですよ。

654 名前:デフォルトの名無しさん [2012/05/07(月) 21:47:23.98 ]
>>651
ここから前のバージョンへ遡って実際にいれて試したらどうですか?
www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html

655 名前:デフォルトの名無しさん [2012/05/07(月) 23:49:02.49 ]
初心者ですが、失礼します。
データベースからデータ読み込むためにSQL文で
select*from テーブル名 where 主キーの列名 ? and ?;
として、バインド変数の?の部分には主キーの最初の行の値と最後の値を
入れて、すべての行を順に取り出すことは可能ですか?
可能だとしたら、どのように?の値を設定すればよいのでしょうか?
最初の行と最後の行が特定できる状況で、その値をそのまま指定するのはなしで
お願いします。

656 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:51:50.90 ]
select * from テーブル名 where 主キー between ? and ? order by 主キー
こんな感じ?

657 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:52:28.73 ]
PreparedStatementでググれ
最近これ使ってるの見ないけど

658 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:58:20.06 ]
テーブル内のすべての行を条件無しで取りたいっていう意味なら
select * from テーブル名
だけでおk

659 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 00:04:07.71 ]
質問嫁

660 名前:デフォルトの名無しさん [2012/05/08(火) 00:07:18.24 ]
>>658
select*fromテーブル名
だと、一気にすべての行が取り出されるということはないでしょうか?
1行ずつ取り出すたびに処理を行ってから次の行という感じで回したいのですが・・・。

条件を指定する例や挿入の例はググると多いのですが、無条件の例が見当たりません。
最初の行と最後の行の値を(変数のような方法?で)指定できないでしょうか?



661 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 00:13:00.57 ]
whereで全範囲を指定しても同じだぞ
だって意味的に同じだし

662 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 01:02:08.13 ]
どんなググり方したのかお兄さんに教えてごらん

663 名前:デフォルトの名無しさん [2012/05/08(火) 01:21:37.45 ]
なるほど。
言われてみれば意味的には同じですね…。
手元にデータないんで明日試してみます!
>>662
バインド変数 条件値 パラメータ 値の設定 PreparedStatement.set
などでググってたんですけど力及ばずでした。


664 名前:デフォルトの名無しさん [2012/05/08(火) 10:57:26.80 ]
GoogleによるJava著作権侵害裁判、ほぼOracleの勝ちが確定、崖っぷちAndroid、どうするコマンド?
engawa.2ch.net/test/read.cgi/poverty/1336439613/

665 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 11:18:31.35 ]
グーグルが関わって作ったサービス(グーグルアプリ)って結構終了しちゃったよね。
ワールドワイドで優秀なプログラマー集めていた割には、三年以上持ちこたえてるサービスってグーグルマップかユーチューブとか買収したのだけになっちゃったね。

666 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 11:21:43.94 ]
j++(だったか?)が駄目ならandroidも当然駄目でしょ

667 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 11:47:41.06 ]
いろいろな意味でグーグルはそのうちフェイスブックに買収されるんじゃないのかなぁ。
せっかく手に入れたのにモトローラーどうするんだろう・・・

668 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 12:13:04.82 ]
Dalvik仮想マシン(VM)も Java も改変しちゃったらアウトだろw

669 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 12:23:26.90 ]
>>664
そのすれ、ソニー(psp, ps vita, ps3(mono))のステマがいるみたいだけど、最近のソニーの開発部門はc# monoのマーケチングに力入れることにしたの?

670 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 16:05:09.80 ]
ちゃんと金払ってJVM版のAndroid作ればいいんじゃね。
Googleにその金があるか分からんけど



671 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 16:19:41.76 ]
document.write('<param name="movie" value="index.swf' + n + '" />');

きれいなスライドショーサイトのソースを見たらこうなってたんですが
index.swf' + n + '" 'ってどういう意味ですか

672 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 17:01:31.32 ]
WindowsでSwingでマウスを使ったゲームを作りたいのですが、
マウスカーソルを指定位置に移動させるにはどうすればいいでしょうか?


673 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 17:15:51.48 ]
java.awt.Robotクラスを調べろ

674 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 17:17:19.50 ]
>>671
それjavascript
しかも、nはソース書いた奴に聞け。

675 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 18:28:10.63 ]
そうですか
ありがとうございます

676 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:01:03.17 ]
>>669
vita以降の開発環境がmonoで対応プラットフォームがvitaとPlayStation Suiteだから営業が頑張ってるんだよ。
PSSはせっかくdalvik捨てたのにH/W制限して遅いしAPIもUIもAndroidと大差ないよ。
mono自体HotSpot比べられるもんじゃないし。あとマルチバイト文字通らない。

vitaの市販ゲームはC#ネイティブだから別の話だけど。

677 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:13:25.05 ]
ていうかAIPが問題なんじゃなくてVMに互換性がないことが問題なのになんでoracleはそこ主張しないんだ。

678 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:18:30.08 ]
使用料をケチるより、もっとあくどいコト考えてそうだな  > Google

679 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:35:33.91 ]
>>678
そのすれにポツンと書いてあるからもう知ってる人多いんじゃないの?

680 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:47:43.94 ]
>>679
kwsk



681 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:51:24.26 ]
>>677
APIに著作権があるかとかのこと?
というかそれ、知らない人向けのIT,WEB技術系向けのネタだし、もっと騒いでもらって新聞やテレビなど一般人向けでもっともっと取り上げられて
「オラクル」「ジャバ」の商標とか(クライアント・グーイ向け)プラットフォームを一般人に広く公知できれば十分○○のもとがとれる。

682 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:05:35.36 ]
>>680
    Google 「API は著作権保護対象ではない」
                ↓
         「Google製の Java互換言語!」  と主張できて、Google(゚д゚)ウマー!!

683 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:13:37.31 ]
J++ってのは、++がさらに増えてJ#に進化して今じゃ.NETの一つなんですよね?

684 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:28:24.53 ]
>>681
oracle:APIはプロプラエタリでsunから買ったからgoogleが侵害してる。
google:javaの商標や権利は買い取ったけどAPI買ったわけじゃないだろ。
googleの証人sunの元CEO:javaはオープンソースだからAPIはプロプラエタリじゃない。GPLコードだ。
oracle:TimSort.javaの配列の範囲チェックする9行が一致してる。特許侵害だ。
Timsort書いた人:PythonのTimSort移植してOpenJDKに寄与した後にandroidに関わったから範囲チェックも似てるかもしれない
oracle:ほら認めたぞ。金払え。
googleの弁護士:特許侵害だとするAPI作ったのはJCPだけどJCPはどこにも対価要求してないよね?

8週間かけてこういう事やってる。

685 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:36:43.83 ]
>>683
J++が進化したのはC#
J#は独自拡張の多いJ++とは全く違って.NET上にほぼ純粋なJavaを実装したもの

686 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 21:24:43.62 ]
>>684
DOCOMO(テレホン大手), SONY(コンテンツ大手), IBM(インテグレート大手)などは、サン(元オラクル)にジャバのライセンスを支払ってるけど、グーグル(広告大手)は支払ってないでしょ。それについて両者は何ていってるの?

687 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 21:37:44.30 ]
>>684
APIを実装したライブラリなら著作権が働くのは解るが、
API自体に著作権って効果あったのか?
Wineとか、GPLによるAPI実装がマズくならね?

688 名前:デフォルトの名無しさん [2012/05/08(火) 22:43:58.27 ]
>>655
「すべての行を順に取り出すこと」をしたいなら
ttp://idocsq.net/page/428 とか?

689 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 22:45:46.06 ]
>>686
元々javaの商標を商用利用して実行環境提供する時に商標使う金と互換テスト用のTCK使用料があって、
商業として実行環境に対しjavaの名とコーヒカップとDuke使うのに金払う必要があったんであってjavaの実装と
Dukeはオープン化したから実装使うことに問題はないしsunは有料サポートと組み込みに載せることで収益化してたから
Sunがjava持ってた頃は何も言わなかった。

そもそもandroid自体harmonyベースだしdalvik VMは仕様も実装も自前でコードはApacheとGPLでカーネルはlinuxだから問題ないんだけど、
goslingが言語はjavaでもTCK通ってないから実行環境に互換性がなくてSEもMEも動かないことに怒ってたくらい。

これがoracleはライセンス料をスルーする手段だと主張したけど、googleは自分たちがjavaを持つ手段を模索してandroid買収したから
ライセンス云々のためじゃない。(gPhoneにjava載せるためにクリーン実装してライセンス料払うか考えたけど丁度androidがあった)
oracleはJavaFX phoneがコケたから特許を主張して金取ろうとしてるだけだと平行線。(当時はNokiaがトップでnokia端末にFX載せてた)
だからgoogleがフェアユースかどうかがまだ決まってない。

それに加えてoracleはjavaを買い取った時に全てを買い取ったからAPIも含まれて、それは特許に守られてるから金払えと主張してる。
それに対してAPIはoracleが持ってる特許に含まれないとgoogleが主張して平行線。
今の論点はオープンソースコードがプロプラエタリで独占的で特許も発生するか揉めてるところ。

そこでドキュメンテーションにコピーライトが書いてあるからAPIも特許に含まれると主張してるのがoracleなんだけど、
仕様と実装を挿げ替えてるわけだから論点が噛み合ってないまま持ち越し。

>>687
んでこれを踏まえてAPIは特許で守られてるのか陪審員が決めかねてるからそれをこれから決める。
要するにOSI認証ライセンスが特許で覆されるかどうかの争いになってるからいま騒ぎになってる。

javaのAPI使って実装されてるJVM言語が全部ダメにからそっち界外じゃ脅威だよ。OpenJDKのクラスパス例外も根本から破堤する。
googleが負けたらOSI認証ライセンスが役に立たなくなるからWineとか訴えられて全部ダメになる可能性もあってそっち方面も騒いでるよ。

690 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 22:49:41.02 ]
改行ヘタ杉



691 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 22:56:11.48 ]
javaが本当に出始めたときに心配したことが、まさに今問題になってるってことか。

692 名前:195 mailto:sage [2012/05/08(火) 23:06:06.64 ]
>>207
ありがとうございます。!
staticブロックは目からうろこでした。

693 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 23:12:15.82 ]
いえいえ

694 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 23:14:23.02 ]
>>673
ありがとうございます。
FPSみたいなもの作っているのですが、もしかしてJavaには無いんじゃないかとヒヤヒヤしてました。

695 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 23:34:51.71 ]
>>689
著作権と特許権は別物ですよ。
とくに創作・著作物についての権利と侵害のクレームのための権原は、特許権と違ってどこかに申請してレジストするようなものではありません。
長文をグダグダ書いてみても、法律をしっかりと勉強したこともない一般人と同じくあなた自身もよく分かってないようなので、このネタを追いかけるとしてもこれ以上の議論に踏み込むのはあなたの知的レベルじゃちょっと難しいんじゃないですかね。

696 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 23:38:50.86 ]
この一連の訴訟と
APIは特許じゃないのが業界の共通認識
って話がどう関わってるか今ひとつわからん。
そんなんをOracleが訴えても負けるの明らかだろうから
本質はもっと別のところにあるんだよね?



697 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 00:03:35.94 ]
グダグダそのまま行くとグーグル弁護団の術中にまんまとはまっちゃうと思いますよ。

698 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 00:55:37.49 ]
>>696
著作権侵害の方は一部認められたけど特許侵害が認められなくて応戦してるってのもあるんじゃないの?
API仕様が技術盗用と言ってるから特許ってことにしたいんだろうし7件特許侵害で攻めるところを2件で攻めることになったし。

その共通認識に関わる裁判で著作権で喧嘩売ったことはあっても特許で喧嘩売ったことはなかったからネタにされてるのもあると思う。

699 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 08:17:37.44 ]
GoogleとOracleがいつまでも喧嘩していると、
Java以外の陣営に塩送っているようなもんだと思うけど…
どっちも協力しようなんて気はないんだろうな。

700 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 08:38:50.92 ]
>>699
Oracleも十分儲かってるのに、ちょいとがめつい感じするな。



701 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 11:24:42.11 ]
>>693
またお前か

702 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 11:39:54.78 ]
PC等 [プログラム]
        【License】ライセンス総合【利用許諾】
toro.2ch.net/test/read.cgi/tech/1266247461/

703 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 21:02:38.73 ]
質問。packageは、開いているか閉じているか?
どっちよ?

・開いている・・・既存のpackageにいくらでもclassやらinterfaceを追加してよい
・閉じている・・・一度リリースしたpackageには何も追加してはいけない

どっちでとらえるかによってpackageスコープの意味が変わるよねぇ。

704 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 21:05:13.31 ]
誤解を招きそうなので訂正

・開いている・・・既存のpackageにいくらでもclassやらinterfaceを追加してよい
・閉じている・・・既存のpackageには何も追加してはいけない

705 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 22:09:30.86 ]
packageにクラス追加していいか否か決めるのはJARファイル提供者でなかったっけ。
確かMANIFESTファイルで指定する。

それとは別の倫理的な面で、package利用のライセンスの確認は必要。

706 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 22:17:22.94 ]
「既存のpackage」 って言ってるのに・・・

707 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 23:54:49.64 ]
既存パッケージのJARファイルのManifestにシールが張ってなければ、
既存のパッケージの名前空間にあとからユニットテストクラスとか追加し放題だったような

708 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 00:37:06.77 ]
最近勉強始めて、やさしいJava3版が中古で売ってたんで買おうと思うんですが、あんまり古い教材だとよろしくないですか?

709 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 01:03:24.38 ]
入門書なら古い新しいはどうでもいいだろ
知識がつけばググって最新版の機能を補完できるようになる
それより、入門書としてまともかどうかが大事
最新でも嘘だらけのクソ本じゃ意味ない
むしろJavaが無名だった頃の方がしっかりしてる事もある
当時のパイオニアが書いてるからな

710 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 01:13:29.18 ]
>>707
シール機能があること初めて知った。
なるほどね。逆を言えば、シールしてなければ追加しても構わない
という意思表示もできるわけか。(シール使ってる人ほとんど居なそうだけど)
社内で複数jar作る場合とか、分散可能なパッケージか
分散しちゃいけないパッケージかって管理できるわけだ。



711 名前:デフォルトの名無しさん [2012/05/10(木) 01:25:29.57 ]
>>709
ありがとうございます!

712 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 07:30:44.63 ]
>>710
泥棒に入られたくないために鍵があるのか、
なら鍵がかかっていなければ泥棒されてもいいって意思表示なんだな。

飛躍してね?

713 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 07:59:16.63 ]
native2asciiの質問なんですが、あれってサロゲート領域の文字に対して何か
気をつけることってありましたっけ?

中国のU+21300の文字をUTF-8で埋め込んでnative2asciiすると\ud844\udf00と処理
されて、サロゲートに変換しているようなんですが
これにnative2ascii -reverseをすると、そのまま\ud844\udf00が返ってきてしまいます。

714 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 08:01:32.29 ]
そもそも、自分のパッケージじゃないのに追加する意味がわからん。

715 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 11:43:41.13 ]
ウェブサイトに掲載されているプログラムで解らないことがあるのですが、ここで質問してもいいですか?

716 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 11:44:50.22 ]
まかせろ

717 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 13:32:05.40 ]
簡単なことなら誰かが答えてくれる
難しいことはスルーされる

718 名前:715 [2012/05/10(木) 14:27:58.12 ]
class Kanzen
{
  public static void main(String args[])
  { int n;
    for(n=2; n<1000; n++)
      if (Test(n)) ・・・@
        System.out.println("完全数 : " + n);
  }

  static boolean Test(int n)・・・A
  { int i,k;
    for(k=0,i=n/2; i>0; i--)
      if (n%i==0) k+= i;
     if (n==k) return true;・・・B
     return false; ・・・C
     //else return false;
  }
}

プログラム超初心者です。
2〜1000までの完全数を計算するプログラムで
計算内容は理解できるのですが、プログラムの構造と流れが理解できません。

@〜Cがどういった役割をするのかと処理の流れを教えてください。


719 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 14:39:31.93 ]
関数とかメソッドでググれ
どうでもいいけどC脳すぎるだろあんまり当てにしないほうがいいぞそれ
Cにしたってkをforの中で初期化する意味がわからん

720 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 15:02:15.09 ]
s=0;
for(k=0; k<10; ++k) s+=k+1;
assert s==55;

最新のjdk(java7)の言語機能や提供ライブラリを使っても、1から10までの和(有限個数のsum)はこの古典的なfor loopの方法しかないのでしょうか?



721 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 15:11:52.73 ]
小学校か中学校、
最悪でも高校では数列の和について何か習うんじゃね?

722 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 15:16:34.63 ]
完全数ってなんだ?

723 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 15:31:56.52 ]
公式が使えるならわざわざプログラムなんかしません。
本当は内積(級数)や加算集合、外部イテレーションの論点なんですけど簡単に書きすぎたので逆に何の分からないですね。
本当はfuncの定義は任意で、例えば簡単にx+1とすると1..10の和と同等ですが。

func=(int x)->x+1;
s=0;
for (k=0; k<10; ++k) s+=func(k);
assert s==55;

最新のjdk(java7)の言語機能や提供ライブラリを使っても、1から10までの和(有限個数のsum)はこの古典的なfor loopの方法しかないのでしょうか?

724 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 15:36:32.97 ]
>自然数nの約数の和S(n)が2nとなるとき、nは完全数であるといわれる。たとえば、6や28は完全数である。なぜなら
>
> 2・6=1+2+3+6
>
> 2・28=1+2+4+7+14+28
>
>だからである。S(n)が2nより大きいときは過剰数、S(n)がnより小さいときは不足数とよばれる。


725 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 15:38:22.12 ]
>>723
"珠玉のプログラミング"と言う本の最初のエピソードを読め。

726 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 15:47:30.17 ]
Programming Pearls, Second Edition by Jon Bentley.
Addison-Wesley, Inc., 2000.

[new] What's new on this web site?
From The Book
Table of Contents
Preface
Part I: Preliminaries
Column 1: Cracking the Oyster
Column 2: Aha! Algorithms [Sketch]
Column 4: Writing Correct Programs [Sketch]
Column 5: A Small Matter of Programming [Sketch]
Part II: Performance
Column 7: The Back of the Envelope
Column 8: Algorithm Design Techniques [Sketch]
Part III: The Product
Column 14: Heaps [Sketch]
Column 15: Strings of Pearls
Epilog to the First Edition
Epilog to the Second Edition
Appendix 2: An Estimation Quiz
Appendix 3: Cost Models for Time and Space
Appendix 4: Rules for Code Tuning
Solutions for Column 1 Column 5 Column 7 Column 15
Index

727 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 18:54:37.05 ]
日本でアルゴの第一人者(著名人)の一人言えば奥村先生だから、奥村先生あたりがこういうたぐいのムック本やアルゴ・チップス記事や連載コラムを執筆してくると、日本語のままで安心して知識を吸収できるんだけどな。
読者が現場やプロレベルだと、新聞・雑誌コラム感覚で書いてみても数学の月刊誌とちがってわざわざ毎月お金だしてまで情報を得ようと思わないから、広告付きブログとか、書籍・ムック本しかないんじゃないかな。
著名カリスマな「フォトショップ達人が伝授する○○」のテクニック本みたいなのとおなじ。
それよりも、奥村先生のJavaによるアルゴは本がボロボロになるほど読んだので、次というか続編はJavaによるパラレルアルゴの現代的計算方法とトポロジーやグラフ・多重化など比較的新しいデータ紹介や海外論文手法(辞典)をそろそろ読んでみたいなあなんて思います。

728 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 19:22:37.61 ]
>>722
奥村先生。2chで宣伝してないで仕事してください

729 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 22:30:19.97 ]
>>712
他人のパッケージに追加って話じゃなくて、
俺のシールしてないパッケージは拡張していいよって
自分で拡張許可を示すのに使えるって言ってるの

>>714
赤の他人じゃなくて、社内とか自分一人とかの範囲の話。
配布するとき、自分が持ってるライブラリをフルセットで
配布する理由じゃなく、必要な分だけ小分けして配布するじゃん。
その時、jar毎にパッケージが閉じてたら、同じパッケージにあるべき
クラスやインターフェースを別のパッケージに置かなきゃいけないでしょ。
例えば、Model用のパッケージを用意するとして、
com.example.x.model、com.example.y.modelとjar毎に分けるより
Modelは全部com.example.modelの下に配置した方が
パッケージスコープも生かせるし便利でしょ。

730 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 22:50:31.23 ]
>>718
わかりづらいのは括弧を使わない書き方だからなのかと思って、冗長かもしれないけど中括弧と適宜追加した。
計算内容は理解できるってことだからコメントもいらなさそうだけど書いといた。
入門編がクリア出来ればいつの間にかサクサクできるようになってるさ。

ttp://ideone.com/9O3pd



731 名前:デフォルトの名無しさん [2012/05/11(金) 00:02:48.36 ]
>>730
質問者ではないのですがhttp://ideone.com/9O3pdを見させてもらいました。
なるほどと思いました。
初心者にも優しい方がいて嬉しいです。


732 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 00:24:10.34 ]
>>730
マイクロソフトでびんぐれば誰でも六十秒以内に答えにたどりつけるので、あなた自身がコーディングやアップロードなどそういうどうでもいいことに六十秒以上の時間を掛けることは親切というよりもむしろ余計なお世話だと思いますよ。

733 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 12:22:11.36 ]
2chコピペブログ管理人が集まるスレ26
toro.2ch.net/test/read.cgi/blog/1329800848/

734 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 13:55:58.00 ]
PatternとMatcherの動作についてわからないことがあるので質問させてください

public static void main(String[] args) {
  Pattern pattern = Pattern.compile("^・");
  Matcher matcher;
matcher = pattern.matcher("・あ");
boolean m = matcher.matches();
System.out.println(m);
}

これでfalseが出力されるのは何故なんでしょうか?

735 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 13:58:00.22 ]
自己解決しました

736 名前:デフォルトの名無しさん [2012/05/11(金) 13:59:27.58 ]
素直に思いやりの心を尊しと思う

737 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 14:43:58.53 ]
素直に馬鹿だと思う






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

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

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