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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん

プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。

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

前スレッド
★★Java質問・相談スレッド138★★
http://pc12.2ch.net/test/read.cgi/tech/1272685619/

次スレは>>950あたりで。

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
2デフォルトの名無しさん:2010/07/20(火) 17:34:20
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 9
http://pc12.2ch.net/test/read.cgi/tech/1261232019/
■ SWT は --
Java 高速GUI SWT 3
http://pc12.2ch.net/test/read.cgi/tech/1164877399/

■ Java 3D APIは --
【徹底討論】Java3Dの可能性について考える
http://pc12.2ch.net/test/read.cgi/tech/1033703640/

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ)  Part21
http://pc12.2ch.net/test/read.cgi/tech/1276164970/
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 9
ttp://pc12.2ch.net/test/read.cgi/tech/1249357352/
■ Androidアプリの作成は --
【Google】Androidアプリ作成part5
http://pc12.2ch.net/test/read.cgi/tech/1279354196/

■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 69 ★★
http://pc12.2ch.net/test/read.cgi/tech/1267796762/
3デフォルトの名無しさん:2010/07/20(火) 17:42:39
■ NetBeansに関する雑談は --
NetBeans Part6
http://pc12.2ch.net/test/read.cgi/tech/1273665879/
■ Eclipseに関する雑談は --
Eclipse統合M29【Java/C++/Ruby/Python/Perl】
※dat落ちしてるのでとりあえずここでどうぞ
統合開発環境Eclipseプラグイン開発QA
http://pc12.2ch.net/test/read.cgi/tech/1081517094/


**** 開発環境が必要の場合は ****
■ J2SE 5.0 (1.5.0)
ttp://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
ttp://java.sun.com/javase/ja/6/

**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja
4デフォルトの名無しさん:2010/07/21(水) 22:30:58
http://www.javadrive.jp/install/jdk/index5.html

このサイトを見ながら環境設定をしているのですが、JAVA_HOMEの設定をして
コマンドプロント上でset JAVA_HOMEを実行させても
環境変数 JAVA_HOMEが定義されていません と表示されてしまいます。

システム環境設定で JAVA_HOME=c\java\jdk 1.6.0_21

と入力し、スペル間違いは無いはずなのですが。。
どなたか解決方法わかる方いませんでしょうか?
5デフォルトの名無しさん:2010/07/21(水) 22:35:16
デフォのインストール場所そこじゃないよ。
6デフォルトの名無しさん:2010/07/21(水) 22:40:47
>>5
このサイト見ながらやってもダメですか?
7デフォルトの名無しさん:2010/07/21(水) 22:48:12
(JDKをインストールしたディレクトリに合わせて変更して下さい)。
8デフォルトの名無しさん:2010/07/21(水) 22:56:07
>>7
ちゃんとインストールしたディレクトリに変更してあります。
ちなみにF:\Java\jdk 1.6.0_21に保存したのでその場所を指定しました
9デフォルトの名無しさん:2010/07/21(水) 22:56:26
多分、環境変数の変更がコマンドプロンプト側で読み込まれていないだけかと思う。
説明するのめんどうだから端的に、いっぺんログインしなおして試してみるといい。
10デフォルトの名無しさん:2010/07/21(水) 23:02:19
>>9
ありがとうございます
一度再起動してみようと思います
11デフォルトの名無しさん:2010/07/21(水) 23:02:45
ところで気になる事として、"jdk 1.6.0_21"と空白入れてるな。
今回の問題の次に、"F:\Java\jdk" というファイルが見つかりません、とか出るだろうと予言。
こういう場合に jdk のコマンドを使う際には
> "%JAVA_HOME%\bin\javac.exe" test.java
とか "" で囲む必要があったと思う。老婆心。
12デフォルトの名無しさん:2010/07/21(水) 23:06:25
ああ、このサイトの方法はPATHに書いておくのか。
11 は不要。問題ない。
13デフォルトの名無しさん:2010/07/21(水) 23:12:10
解決しました。ありがとうございました
>>11さんもあらかじめ次のトラブルの予想をしてくれたようで・・・
ありがとうございます。問題なく解決できました。

最後にこんな初歩の初歩のような質問をして申し訳ありませんでした。
私もこのスレ住人のように質問に答える事が出来るくらいにJavaを理解していきたいと思います
14デフォルトの名無しさん:2010/07/22(木) 04:19:01
このスレ立つ度に良くなってってないか
15デフォルトの名無しさん:2010/07/22(木) 04:57:56
良くなってますか
16デフォルトの名無しさん:2010/07/22(木) 10:50:49
悪い方に良くなってるといいたいんですね
17デフォルトの名無しさん:2010/07/22(木) 11:51:14
>>16
もうちょっと日本語上達させてから書き込もうな
18デフォルトの名無しさん:2010/07/22(木) 13:13:44
javaで、オブジェトの中身(変数、メソッド)を表示させる方法ありますか?
または、ライブラリはありますか?
inspect, describeなどは無いようですが?
19デフォルトの名無しさん:2010/07/22(木) 13:28:18
>>18
java.lang.reflect
20デフォルトの名無しさん:2010/07/22(木) 14:16:01
>>17
自演お疲れ様です
21デフォルトの名無しさん:2010/07/22(木) 16:38:59
ネット上の解説では、reflectはクラスの中を調べるとき使う例が多いですが、
オブジェクト(インスタンス)の中身でもOKですか?

デバックでは「インスタンスの中が現在どうなってるか」って場面多いと思うんだけど、
そんなとき、インスタンスの状態調べるライブラリあってもよさそうだけど、無いですか。
22デフォルトの名無しさん:2010/07/22(木) 17:16:23
kill -SIGQUIT <JVMのプロセスID>
23デフォルトの名無しさん:2010/07/22(木) 21:55:33
>>21
自分でAPIドキュメント調べろ。19の好意に甘えるな。
24デフォルトの名無しさん:2010/07/22(木) 22:02:31
インスタンスの中がどうなってるか俺が見てやるよ
25デフォルトの名無しさん:2010/07/22(木) 22:14:54
jmap jhat
26デフォルトの名無しさん:2010/07/22(木) 23:12:10
質問です。
flash使いで最近javaでandroid開発を始めたものですが、
文字列で変数にアクセスする方法を調べています。

たとえば(以下as3.0コード)

var i0:int = 0;//int変数作成
trace( this[ "i" + "0" ] );//上記のi0変数にアクセスして0が出力できる

みたいな事をjavaでしたいです。
色々調べたんですが探し方が悪いのか
見つからないので方法があれば教えていただきたいです。
27デフォルトの名無しさん:2010/07/22(木) 23:39:34
>>26
クラスのフィールド変数ならリフレクション使えば出来る

Class clazz = Class.forName(クラス名);
Field f = clazz.getDeclaredField("i0");
f.setAccessible(true); // privateなら
int i = f.getInt(取り出したいクラスのインスタンス);

メソッド内の変数なら無理かと
28デフォルトの名無しさん:2010/07/22(木) 23:40:56
1.6.0_21のServer VMで下記のコードを実行すると、
毎回結果が違うんですけど、変な風に最適化が働いてループ打ち切られてる?

public static void main(String[] args) {
int a = 0;
int b = 0;
for (int i = 0; i < 0x7FFFFFFF; i++) {
a += i % 360;
b++;
}
System.out.println(a);
System.out.println(b);
}
29デフォルトの名無しさん:2010/07/22(木) 23:55:29
>>27
おおー、これです
早速調べたんですが、なるほど、APIで提供されている訳ですね
初めての・・・みたな本に書いてない訳だ
大変勉強になりました。ありがとうございます
30デフォルトの名無しさん:2010/07/23(金) 01:40:29
>>28
Eclipse3.5同梱のJRE環境に限った話では、見た感じ問題なさそう。

-1073756799
2147483647

-1073756799
2147483647

-1073756799
2147483647

-1073756799
2147483647

-1073756799
2147483647

java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode)
サーバは知らない。
31デフォルトの名無しさん:2010/07/23(金) 08:03:54
>>28
んなわけねーだろ、言語仕様で決まってるんだからさ
と思って実行してみたら、本当に動作がおかしいでやんのワロタ
3231:2010/07/23(金) 08:22:20
これでも十分おかしいな
バグデータベースに報告ある?

public static void main(String[] args) {
int a = 0;
for (int i = 0; i < Integer.MAX_VALUE; i++) {
a = i;
}
System.out.println(a);
}
33デフォルトの名無しさん:2010/07/23(金) 11:16:38
ジエンオツ
34デフォルトの名無しさん:2010/07/23(金) 15:33:16
複数のクライアントと一つのサーバの間で、以下の機能をsocketプログラミングで作りたいと考えています。

クライアントがサーバにファイルをアップロードすると、
サーバは接続済みの全てのクライアントにそのファイルを流す。

これを実現するためのサーバ側のコードで悩んでいます。
まずアップロードされたファイルを受け取るためにソケットからinputStreamを取得しますが、
これを各ソケットのoutputStreamに流す時に、どのように実装すればいいのか分かりません。

一つのinputStreamをfor文で複数のoutputStreamに流そうとしても、最初のoutputStreamにしか流せないようです。
これはinputStreamが内部でどこまでデータを取り出したかを管理(?)してるからでしょうか。

他の案としては、一時的なファイルを作ってしまってそのファイルを複数のソケットが読めばできそうですが
どう考えても良いやり方とは思えません。

結局、巨大なbyte配列で一時的にデータを溜めるぐらいしか思いつきません。

何かよい方法は無いでしょうか。
35デフォルトの名無しさん:2010/07/23(金) 15:53:39
複数のクライアントが同時にファイルをUP状態でも全部メモリにおさめるつもり?
3634:2010/07/23(金) 16:07:30
>>35
返信ありがとうございます。

そこまで考えていませんでした。。
なるほど確かにメモリに溜めるのは無理がありますね。
ということは、ファイル化する方法は悪い方法ではないのでしょうか?
ファイル名管理したりなど少し手間がかかりそうですが。
37デフォルトの名無しさん:2010/07/23(金) 17:55:01
inputstreamから数キロバイトの配列に読み込んで、全部のoutputstreamへ送信
inputstreamから数キロバイトの配列に読み込んで、全部のoutputstreamへ送信
の繰り返しじゃいかんのん?
38デフォルトの名無しさん:2010/07/23(金) 18:05:08

ObjectAnalyzer
39デフォルトの名無しさん:2010/07/23(金) 18:18:42
>>34
恐ろしい
こんなコード書かれたらたまらんわ
4034:2010/07/23(金) 18:29:54
>>37
おおなるほど!これでいけそうです。

while (-1 != (n = inputStream.read(w))) {
outputStream.write(w, 0, size);
}
こんな感じのお決まりコードをコピペして使ってたから
出力部分はひと塊としか考えられていなかった。酷い頭の堅さだ。。
アドバイスありがとうございました。
41デフォルトの名無しさん:2010/07/23(金) 23:55:05
いえいえ
42デフォルトの名無しさん:2010/07/24(土) 13:13:07
こんにちは。

public class Parent {
  Child child;
}
public class Child {
  Parent parent;
}

こんなふうに相互に参照するとインスタンスを消しても、
参照が残ってしまってメモリリークするという噂を聞いたんですが、本当ですか?
43デフォルトの名無しさん:2010/07/24(土) 13:17:24
いいえ
44デフォルトの名無しさん:2010/07/24(土) 14:35:09
>>42
http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/ref/package-summary.html
の最後の到達可能性で言うならば、両インスタンス共に不可到達なだけなのでGCされる。
4542:2010/07/24(土) 14:37:12
どうもありがとうございます。
JavaのGCはそんなにアホではないですよね。
4644:2010/07/24(土) 14:38:24
あ、この項だけじゃ説明になってないな。スマン、なしなし。
47デフォルトの名無しさん:2010/07/24(土) 14:54:19
>>42
参考:Wikipedia ガベージコレクション
http://ja.wikipedia.org/wiki/%E3%82%AC%E3%83%99%E3%83%BC%E3%82%B8%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3#.E5.AE.9F.E8.A3.85
Java
http://ja.wikipedia.org/wiki/Java#.E3.82.AC.E3.83.99.E3.83.BC.E3.82.B8.E3.82.B3.E3.83.AC.E3.82.AF.E3.82.B7.E3.83.A7.E3.83.B3
参照カウント
http://ja.wikipedia.org/wiki/%E5%8F%82%E7%85%A7%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88#.E7.9F.AD.E6.89.80


参照カウント方式だと、リークするようにも書けてしまいますが、
Javaで採用しているマーク・アンド・スイープ方式(を利用する世代別ガベージコレクション)
だと、あるオブジェクトAが別のオブジェクトBを参照していた場合でも、
A自体がどこからも参照されていなければBもGC対象になります。
48デフォルトの名無しさん:2010/07/24(土) 15:05:30
>>34
Streamってそんなもん。1回読んだらそれっきり。
BufferedStrem(BufferedInputStream)使えば一度読んだところにも戻れるよ。

まあ、
> 巨大なbyte配列で一時的にデータを溜める
と考え方は同じだけど。
4942:2010/07/24(土) 15:06:24
参照カウント0のものを解放する方法だとリークするけど、
JavaのGCは到達不可能なものを解放する方法なので大丈夫ということですね。
どうもありがとうございます。
50デフォルトの名無しさん:2010/07/24(土) 16:41:23
new ClassA() {
//code
}

こういうふうに書かれるものってなんですか?キーワードを教えて下さい
51デフォルトの名無しさん:2010/07/24(土) 18:12:30
>>50
匿名内部クラス(Anonymous Inner Class)でござる。

ttp://milkyway.merseine.nu/100java/Java/Java045.html
52デフォルトの名無しさん:2010/07/24(土) 20:36:15
Eclipseでbuild.xml右クリックするとant実行って出てくるけど
そういう、特定のファイル名に対して外部アプリケーションを関連付けるっていうのは
どこで設定してるの?
変更・追加可能?
53デフォルトの名無しさん:2010/07/24(土) 20:44:11
ライブラリ類の配布アーカイブの中にjavadocって大抵同梱されてるけど
これってeclipseから参照されたりするの?
各クラスの説明としてポップアップしたりとか
54デフォルトの名無しさん:2010/07/24(土) 21:04:04
>>52
設定の「一般」「コンテンツ・タイプ」のXMLのAntビルドファイルかと思う。

>>53
するする。jarのプロパティにある、ソースとjavadocを指定する項目。
5553:2010/07/24(土) 21:56:05
今eclipseにEXT_LIBS_DIRっていう変数を作って、
複数プロジェクトで共通の外部ライブラリは同じフォルダにまとめて参照しようとしてるんだけど
外部ライブラリっていう単位でまとめるとjavadocのファイル名が被るんだよね
index.htmlとか

普通はどうするもの?
5653:2010/07/24(土) 21:57:59
書いた途端自己解決した
普通にさらにサブフォルダ作ればいけるわ
57デフォルトの名無しさん:2010/07/24(土) 22:13:37
http://media.itc.u-tokyo.ac.jp/jsim/src/jsim/graphic/api/jp/ac/nime/computer/grpsimulator/ImgPr/FFT.html
このクラスはどうやれば使えるのでしょうか。教えてください
58デフォルトの名無しさん:2010/07/25(日) 03:06:54
>>57
staticメンバしかないからインスタンス作らずに、
FFT.fft(xxxx);
で呼べます。
59デフォルトの名無しさん:2010/07/25(日) 18:52:18
エクリプスでパッケージエクスプローラーってあるけど
パッケージってどういう単位なの?
全く関係無いプロジェクトがパッケージエクスプローラーに並列に並んでるのっておかしいもの?
階層化したい気がしてきたんだが
60デフォルトの名無しさん:2010/07/25(日) 19:03:15
パッケージはいくつかのクラスを適当に (だいたいは機能別に) まとめたものです
java.lang とか java.util とか java.io とかがパッケージです
自分の作ったクラスを特にパッケージ化してないのなら、デフォルトパッケージとかいうのに入ってるはずです

プロジェクトを階層化というか何かグループ化したいのなら、ワーキングセットが役に立つかもしれません
61デフォルトの名無しさん:2010/07/25(日) 20:00:21
>>60
ワーキングセットが求めていたものだった
thx
62デフォルトの名無しさん:2010/07/25(日) 20:22:22
if (Math.random() > .5) {
return frogMan;
}

ドット5ってなに?
guiceのサンプルコードにあったんだけど
63デフォルトの名無しさん:2010/07/25(日) 20:30:31
0.5 のことです
64デフォルトの名無しさん:2010/07/25(日) 22:12:03
ubuntuでsynapticから入れた
gnu.getopt.Getoptを使いたいんですが、
ない言われます.
どなたか考えられる原因をエスパーして下さい
65デフォルトの名無しさん:2010/07/25(日) 22:18:03
たぶん、ないんじゃないかな
66デフォルトの名無しさん:2010/07/26(月) 01:39:57
>>64
パッケージ名からいってJavaのコアライブラリじゃない。
何かのjarファイルをCLASSPATHに含む必要があります。
67飛び出せ!名無しくん:2010/07/26(月) 02:32:06
Rクラスに以下を追加したら自動的に削除されました。
public static final class id {
public static final int label=0x7f050000;
}

そして、以下のメッセージが表示されました。
R.java was modified manually! Reverting to generated version!

なぜ手動で追加できないんですか?
68デフォルトの名無しさん:2010/07/26(月) 07:33:31
自動生成されるファイルだからです
手動で編集してもまたすぐに自動生成されたものに上書きされますので無駄です
69デフォルトの名無しさん:2010/07/26(月) 14:41:54
javaプログラムから他のプログラムを起動し終了するのが目的です
Runtimeを利用して
Runtime rt = Runtime.getRuntime();
rt.exec("hoge.exe");
として起動はできたのですがそのプログラムの終了の仕方がわかりません
ご教授ください
70デフォルトの名無しさん:2010/07/26(月) 16:51:14
>>69
Process proc = rt.exec("hoge.exe");
//強制終了したいなら
proc.destroy();
//終了を待ちたいなら
proc.waitFor();
71デフォルトの名無しさん:2010/07/26(月) 17:15:25
public class B extends A { とあって、Bを直列化する場合、
AだけにserialVersionUIDを明示すればよさそうに思うけど、
Bにも明示しなければいけないとある。
何故、serialVersionUIDはAに継承できないんですか?


72デフォルトの名無しさん:2010/07/26(月) 17:34:24
仮に public class B extends A implements Serializable {}
みたいにフィールド宣言してないから serialVersionUID は
A に宣言してあればよいのでは? という疑問だとする。

次のバージョンで B に
public class B extends A implements Serializable { private int field; }
みたいにフィールド追加によって直列化互換性を破壊する可能性があるんだから、
B 自体にも serialVersionUID は必要。
73デフォルトの名無しさん:2010/07/26(月) 18:26:01
>>58
ありがとうございます。

javaはパッケージを新しく追加しなきゃいけないものとデフォルトで使えるものをどう区別しているんですか?
74デフォルトの名無しさん:2010/07/26(月) 20:44:21
>>28>>32を1.6.0u21 で-serverつけて実行してみたけど特にへんな結果にはならず…
75デフォルトの名無しさん:2010/07/26(月) 20:54:17
>>73
> パッケージを新しく追加しなきゃいけないもの
ってimportしなくてもパッケージ名を省略してクラス名だけで利用できるものっていう意味?
それは言語仕様で決まってる。
http://www.nurs.or.jp/~sug/soft/java/java26.htm
76デフォルトの名無しさん:2010/07/26(月) 21:25:41
>>70
ありがとうございます!
77デフォルトの名無しさん:2010/07/26(月) 21:34:55
>>74
なんでだろw

OS: WindowsXP pro sp3
>java -server -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Server VM (build 17.0-b16, mixed mode)

>java -server Test
124278795
692451

>java -server Test
7564635
42211

>java -server Test
9223011
51427

>java -server Test
9401275
52451

>java -server Test
8854651
49379

>java Test
-1073756799
2147483647
7877:2010/07/26(月) 21:53:26
eclipseでコンパイルした物は変な結果になって、
jdkのjavacでコンパイルした物は正しい結果になったわ。

eclipseとjavacでコンパイルした物を、jadで逆コンパイルしても同じソースになったけど、
javapで逆アセンブルしたら、少し違うコードが出力されていた…けど俺には読めないw
79デフォルトの名無しさん:2010/07/26(月) 21:57:31
そんな時は黙ってZIPに固めて上げるものだ
8077:2010/07/26(月) 22:35:07
81デフォルトの名無しさん:2010/07/27(火) 01:49:03
昔からEclipseでビルドしたクラスの挙動がおかしいことはたまにありましたよ。
特にswitch文はSun(当時)の純正VMがJava言語仕様を踏み倒した実装だった
のでEclipse側が絶対こっちが正しいと主張して、既知の非互換になっていた。
eclipseのクラス出力パスとantのコンパイル出力先を違うパスにして、antの
javacタスクにfork="true"およびexecutable="javacのフルパス"を入れると、
ant経由なら必ずJDKでコンパイルされます。
82デフォルトの名無しさん:2010/07/27(火) 09:09:32
>>72
serialVersionUIDで互換性維持はわかるけど、 「B自体にもserialVersionUID が必要」がわからない。
BはAを継承してるけど、AのserialVersionUID は継承できないってこと?
(仕様がそうなっているのなら、何のために)

Aを継承するB, Bを継承するCがあった場合、A, B, CのそれぞれのフィールドにserialVersionUIDを
明示せず、Aのみに明示すればよい方法はありますか。IDは全部同じ。
83デフォルトの名無しさん:2010/07/27(火) 10:17:21
>>82
継承はできない。java.io.Serializableの仕様に従って
B、C にはコンパイル実装依存のserialVersionUIDが勝手に付加される。

警告黙らせるだけなら
javac -Xlint:-serial B.java C.java
IDEの警告黙らせたいなら使ってるIDEのヘルプ漁れ。
84デフォルトの名無しさん:2010/07/27(火) 10:18:40
×コンパイル実装依存
○コンパイラ実装依存
85デフォルトの名無しさん:2010/07/27(火) 10:48:15
>>83
継承はできない。java.io.Serializableの仕様に従って、だけど、
たしかに、マニュアルに「明示的に宣言」とある。

次の疑問は、その理由。継承させると、どのような問題を邪気させるというのだろうか。
86デフォルトの名無しさん:2010/07/27(火) 11:24:04
>>85
>>72に書いてあるけど、たとえば
//バージョン1
class A implements Serializable { public static final long serialVersionUID = 0; }
class B extends A implements Serializable { }

//バージョン2
class A implements Serializable { public static final long serialVersionUID = 0; }
class B extends A implements Serializable { private int field; }

で、BがAのserialVersionUIDを継承できたとする。
するとバージョン1のBを直列化したものとバージョン2のBを直列化したものには互換性がない、
にもかかわらずserialVersionUIDが同じという事態が発生する。

serialVersionUIDは大抵privateなので
継承元がserialVersionUIDを宣言しているかを一々確認するのは、
素直にBにserialVersionUIDをつけるより手間がかかる。
serialVersionUIDが付いているかどうかだけならコンパイラは簡単にチェックできるが
AのserialVersionUIDを継承できる場合にBがAのserialVersionUIDを継承しつつ、
前のバージョンからフィールドを追加したかまではコンパイラはチェックできない。
87デフォルトの名無しさん:2010/07/27(火) 11:47:31
いい話だなー
88デフォルトの名無しさん:2010/07/27(火) 14:29:22
>>86
72の意味が理解できなく。。。

互換性ね。でも、

1)serialVersionUID=1Lで、AのインスタンスをwriteObjectでファイルに保存し、
  その後、Aのフィールドにint fieldを追加してクラスAを変更してからでも、readObjectでdeserializeできるよね。
  変更の仕方によっては、互換性なくなると思うけど。

2)もちろん、フィールド変更しなくてもserialVersionUID変更すると、互換性はない。
89デフォルトの名無しさん:2010/07/27(火) 16:06:40
> その後、Aのフィールドにint fieldを追加してクラスAを変更してからでも、readObjectでdeserializeできるよね。
それはとりあえずエラーが出るか否かを気にしてるだけ。
互換性があるかどうかとは関係ないし、実装が変わればエラー出ても文句言えない。
90デフォルトの名無しさん:2010/07/27(火) 19:13:07
エクリプスで
実行→実行の構成→Javaアプリケーション
で新規作成して共通タブから実行/デバッグのお気に入りに表示するようにチェックしたんだけど
どこに出てくるの?これ
実行のとこ開いても、「サーバで実行」「Java Bean」の2つがあるだけなんだけど
ここの一覧に出てくるのかと思ってやったんだけど
9190:2010/07/27(火) 20:45:13
もしかしてヒストリーとごっちゃになって出てくるのかな?
92デフォルトの名無しさん:2010/07/27(火) 20:59:57
エクリプスのサポート係に電話して聞け
93デフォルトの名無しさん:2010/07/27(火) 21:35:55
public int compareTo(Object o) {
double h1 = this.height;
double h2 = ((Student)o).height;

return h1 > h2 ? 1 : -1;
}
tp://www.lcv.ne.jp/~kenmio/yomimono/yomimono105.htm

Student型をObject引数で受け取って、それもまたStudent型にキャストしてますが、
引数を最初からStudent型にはできないのですか。
それからStudent型の引数であれば、Object引数で受け取ったからといって
引数そのものが変わるわけでもないし、わざわざキャストしなくてもStudent型
のインスタンスだとコンパイラが判断できてもおかしくないと思うのですが。
スーパークラスのメソッドをサブクラスのインスタンスからアクセスできても
その逆はできないというきまりになっているようですが、この場合の引数は
Student型と決まっているのでそれはないと思うのですが。
94デフォルトの名無しさん:2010/07/27(火) 21:44:51
public int compareTo(Student o)

public int compareTo(Object o)
は別々の異なるメソッドですので、
public int compareTo(Student o)
を実装しても、Comparableを実装したことにはなりません。

引数がObjectなら、Student以外のObjectを渡すことも出来るので、
本当にStudentかどうかわかりません。
publicメソッドはどこからでも呼べますので、呼び出し元は不定です。
95デフォルトの名無しさん:2010/07/28(水) 01:17:44
netbeansの方がsun純正って意味で変な非互換を回避できたりするのかな
96デフォルトの名無しさん:2010/07/28(水) 14:25:17
>>95
Eclipseはそのまま使うとIBMのjavacやらJVMが使われるから、
何も考えずに使う分には、まあそうとも言える。

けどそれってほんの入り口だし、どのIDEを使うかを決めるのには
他にももっと判断すべきことがあると思う。
97デフォルトの名無しさん:2010/07/29(木) 05:50:42
メモリ使用量眺めてたら、netbeansの方がeclipseより軽かったけど
普及率でeclpseを使うしかなさげ
98デフォルトの名無しさん:2010/07/29(木) 12:04:17
$ java Test.class
Exception in thread "main" java.lang.NoClassDefFoundError: Test/class
Caused by: java.lang.ClassNotFoundException: .home.saruno.ドキュメント.JAVA.study.Test

at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: Test. Program will exit.

ubuntu10.04、コマンドプロンプトでTest.classをコンパイル後に実行すると上記のようなエラーが出てしまいます。
eclipse上ではコンパイルも実行も出来るのですが、どうすればコマンドプロンプトで実行できますか?

99デフォルトの名無しさん:2010/07/29(木) 12:51:27
$ java Test
100デフォルトの名無しさん:2010/07/29(木) 12:59:47
ああすいません、
$JAVA Test
でも駄目です
101デフォルトの名無しさん:2010/07/29(木) 13:04:32
なにかnamespace使ってる?
102デフォルトの名無しさん:2010/07/29(木) 13:11:54
$ java -classpath . Test
103デフォルトの名無しさん:2010/07/29(木) 13:34:14
我々には難しすぎるので別スレで質問してください
104デフォルトの名無しさん:2010/07/29(木) 14:17:52
$ジャヴァ Test
としてください。(空白は全角です。)
105デフォルトの名無しさん:2010/07/29(木) 14:33:28
package home.saruno.ドキュメント.JAVA.study;
とかやってるだろ?
106デフォルトの名無しさん:2010/07/29(木) 14:57:40
/sutudyに移動してコマンドで java Test とやったら出来ました、お騒がせしました。

jaba  /home/〜〜〜/Testのようにパスの指定しての実行については調べてみます
107デフォルトの名無しさん:2010/07/29(木) 15:11:21
回答者が優秀なのでどんどん難問が解決していきますな
108デフォルトの名無しさん:2010/07/29(木) 15:47:17
そんなことどうでもいいから金くれ
109デフォルトの名無しさん:2010/07/30(金) 16:44:17
データを貯める場所ってLucandraに貯めるべきでしょうか?
それともデータの本体はCassandraでインデックスのみLucandraに置くんでしょうか?
110デフォルトの名無しさん:2010/07/30(金) 22:05:25
>>93
 メソッドhungupがクラスTelephoneで定義されているからです。スーパーク
ラス(Telephone)で定義されているメソッド(hungup)を、そのサブクラス
(CellularPhineやFixedPhone)で上書きした場合、インスタンスの型
(CellularPhineやFixedPhone)でその振る舞いが上書きしたメソッドに従う
ということになります。これをポリモルフィズムと言います。
 一方、ObjectはStudentのスーパークラスですが、インスタンス変数height
は持っていません。Object型のインスタンス変数heightについて何かしようと
思えば当然エラーが出ます。さらにポリモルフィズムはインスタンス変数では
なく、メソッドの話です。
111デフォルトの名無しさん:2010/07/30(金) 22:45:51
ていうか、ThreadLocalとか初めて知ったわ
難しいなLucandra
112デフォルトの名無しさん:2010/07/31(土) 09:31:56
>>111
StrutsとかつかってWebアプリ作っていると馴染みは薄いね
でもたまーに使わないとできない要件とかあったりするよね
113デフォルトの名無しさん:2010/07/31(土) 13:00:13
>>112
Javaで全然仕事したことないから分からん
114デフォルトの名無しさん:2010/07/31(土) 13:29:55
J2EEでフレームワークとか使わずWebアプリ作ってる会社でバイトしたことあるけど
そういう事例って結構あるもんなのかな?
115デフォルトの名無しさん:2010/07/31(土) 23:52:36
データベースから静的htmlファイルを一括作成したいのだが、
どういうやり方が一般的?
ある程度htmlエディタでデザインを整えたhtmlファイルがあって、
それに表を挿入するパターンなのだが。
116デフォルトの名無しさん:2010/08/01(日) 00:01:21
xsltじゃね?
117デフォルトの名無しさん:2010/08/01(日) 03:21:38
>>115
FreeMarkerだべさ
118デフォルトの名無しさん:2010/08/01(日) 06:00:57
ファイル名が00,01,02…のような規則的なテキストファイルを順番に読み取って
ある行の内容が入力内容と一致したらそのファイル名を出力する
といったプログラムを書きたいのですが
うまくいきません

line = reader.radLine();
がうまく機能していないようで
試しに
System.out.println(line);
で表示したところ
□a□s□dd□
のようなよくわからない文字列を表示してよくわからなくなってしまました

どなたかご教授ください
119デフォルトの名無しさん:2010/08/01(日) 08:25:04
困った時のJISAutoDetect
120デフォルトの名無しさん:2010/08/01(日) 13:11:52
わからなくなってしまましたかそうですか
121デフォルトの名無しさん:2010/08/01(日) 14:38:15
わからない子はどんどんしまっちゃおうねぇ
122デフォルトの名無しさん:2010/08/01(日) 16:09:19
よくDAOで
Hoge select() {
try{
    PreparedStatement stmt=...;
    ResultSet rs=...;
    // ...
} finally{
    try{
        rs.close();
        stmt.close();
    } catch(SQLException e) {}
}
というプログラムを見るのですが、これだとrs.close()が例外を投げた場合
stmt.close()が呼び出されないのですが、rs.close()が失敗するとstmt.close()も
必ず失敗するという決まりがあるのでしょうか?
123デフォルトの名無しさん:2010/08/01(日) 16:47:43
>>122
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/sql/Statement.html#close()
rs.close()が失敗するとstmt.close()も失敗するかどうかは、jdbcドライバの実装によると思うが、
closeしなくてもガベージコレクションで自動的にcloseされるみたいですね。
124デフォルトの名無しさん:2010/08/01(日) 22:43:10
じゃば java というような
英語の文字列と日本語の文字列を区別することは可能でしょうか
125デフォルトの名無しさん:2010/08/01(日) 22:52:40
Character.UnicodeBlock.of メソッドを使えばそれぞれの文字の種類はわかりますので、
その文字列中の各文字を調べてひらがなとかが混じってれば日本語だと判定するとかでどうでしょうか。
126デフォルトの名無しさん:2010/08/01(日) 23:15:17
netbeansでJNIやろうとしてもうまくいかないんですがC/C++のほうがおかしいのかなあ。
英語でいろいろ問題があることが挙げられてるけどあれだけでも解決しない。
127デフォルトの名無しさん:2010/08/02(月) 07:00:02
ここにあるコードの62行目と76行目の { } にはどんな作用があるのでしょうか?
http://www.koders.com/java/fid2E7B27F41ADBE1E39D69A4A4AC071AF622510C80.aspx?s=140
あってもなくても何もかわらない気がするのですが…。
128デフォルトの名無しさん:2010/08/02(月) 07:27:49
>>127
boolean addPoint の有効範囲を制限してる。
もしくは書いた人の美意識を満足させてるんじゃないかと。
129デフォルトの名無しさん:2010/08/02(月) 16:12:37
IEでファイルのダウンロードをする部分で解決できずに困っていて質問です。
ファイルのダウンロードはすでに問題なく動作しており以下のようになっております。

HTML側
onclick="location.href='./OpenFile?file=' + hensu;"

Servlet側
strFile//受け取ったファイル名
ServletOutputStream out;
out = response.getOutputStream();
File inFile = new File(strFile);
InputStream in = new FileInputStream(inFile);
int data = -1;
long longCount = 0;
while ((data = in.read()) != -1){
out.write(data);
longCount++;
if(longCount % 200 == 0){
out.flush();
}
}
in.close();
out.close();
int dispCount= getFromDatabase('DispCount');
dispCount++;
setDatabase('DispCount', dispCount);
この状態でHTMLをクリックするとファイルのダウンロードダイアログが表示されます。ダイアログを表示した時点で「表示カウント」を
+1してDBに書き込んでいるのですがキャンセル時だけ+2されているようで困っています。原因をご存知の方いらっしゃいませんか?
IE6,7,8で同じ
tomcat-5.0.30
j2re1.4.2_08
130デフォルトの名無しさん:2010/08/02(月) 20:14:12
Strutsというものを学習しなければならなくなりました。
よろしければ、概要から発展まであるわかりやすいサイトがあれば教えてください。
131デフォルトの名無しさん:2010/08/02(月) 21:08:26
>>125
勉強になりました
ありがとうございました
132デフォルトの名無しさん:2010/08/02(月) 21:24:54
133デフォルトの名無しさん:2010/08/03(火) 02:20:51
>>128
変数の有効範囲が変わるんですね。
解説ありがとうございます。
134デフォルトの名無しさん:2010/08/03(火) 11:23:00
>>132
ありがとうございます。
よろしければ日本語のサイトもご存じであれば教えてください。
135デフォルトの名無しさん:2010/08/03(火) 15:50:49
ガスライティング
136デフォルトの名無しさん:2010/08/03(火) 18:15:00
わろた
137デフォルトの名無しさん:2010/08/03(火) 21:57:13
new Date(); で得た dd.getHours() を 変数a に入れるにはどうすればいいですか?

int a = dd.getHours();

ではダメなんですが・・・。
138デフォルトの名無しさん:2010/08/03(火) 22:15:21
>>137
普通にとれたけど。ddにnew Date()は代入している?
int a = new Date().getHours();
System.out.println(a);

ところでDate#getHoursは、@Deprecatedだからあまり使うべきじゃぁない。
139デフォルトの名無しさん:2010/08/03(火) 23:14:51
>>138
自己解決しました。

もう1つ質問させて頂きたいのですが、

dd = new Date();
date = dd.getDate();

として、dateに日を入れるようにしました。

次に、

<script language="JavaScript" src="./maru.pl"></script>
<script language="JavaScript">
<!--
document.write(date);   #####
// -->
</script>

上の#####のwrite( ) の中に変数(date)を入れたいのですが、
どうすれば変数扱いになるでしょうか。
140デフォルトの名無しさん:2010/08/03(火) 23:17:30
141デフォルトの名無しさん:2010/08/03(火) 23:26:05
JavaScriptワラタ
142デフォルトの名無しさん:2010/08/03(火) 23:29:43
maru.pl
これってパール?w
143デフォルトの名無しさん:2010/08/03(火) 23:31:16
JavScript=釣り、だろ
144デフォルトの名無しさん:2010/08/03(火) 23:40:08
// -->
今どきの釣りはこれだろw
145デフォルトの名無しさん:2010/08/03(火) 23:50:06
そんなことどうでもいいから金くれ
146デフォルトの名無しさん:2010/08/04(水) 02:16:36
完全に同時に実行される可能性のあるJavaアプリケーションで、
プロセス毎にユニークな(プロセスID的な)値を得る方法を教えてください。
最初は疑似乱数を使用する方法を考えたのですが、
この場合、シード自体がユニークな値の必要があります。

他に考えた方法
B. JNIもしくはJNAを使用してプロセスIDを取得する
C. GUID発行サーバを設置する
147デフォルトの名無しさん:2010/08/04(水) 03:12:26
VMIDってどうにかして取れないんだっけ?
148146:2010/08/04(水) 03:57:50
ありがとう。
適当な解説が見つかりました。

Get a unique identifier - Real's Java How-to
http://www.rgagnon.com/javadetails/java-0518.html
149デフォルトの名無しさん:2010/08/04(水) 06:28:56
複数行の文字列
text = "line1\nline2\nline3\nline4";
がある時に"line1\nline2\nline3" と "line4" を取得するために
以下のようなコードを書いてるんですが長すぎる気がします。
もっとスッキリした書き方はできないでしょうか?

String str1 = "";
String[] arr = text.split("\n");
for(int i = 0; i < arr.length - 1; i++){
 if (i == arr.length - 2) str1 += arr[i];
 else str1 += arr[i] + "\n";
}
String str2 = arr[arr.length -1];
150デフォルトの名無しさん:2010/08/04(水) 07:01:00
>>149
String text = "line1\nline2\nline3\nline4";
String str1 = text.substring(0, text.lastIndexOf("\n"));
String str2 = text.substring(text.lastIndexOf("\n") + 1);
151デフォルトの名無しさん:2010/08/04(水) 09:31:47
>>150
lastIndexOfなんて便利なメソッドがあったんですね。
ありがとうございます。
152デフォルトの名無しさん:2010/08/05(木) 09:04:45
画像のことで質問させてください。下記のように「starship_image」変数に
「starship_state01.png」画像を読み込み、その後、同じ
「starship_image」変数に「starship_state02.png」を
読み込むのは問題無いのでしょうか?

private Drawable starship_image;
.
.
starship_image = context.getResources().getDrawable(R.drawable.starship_state01);
starship_image.setBounds(x, y, theWidth, theHeight);
starship_image.draw(canvas);

starship_image = context.getResources().getDrawable(R.drawable.starship_state02);
starship_image.setBounds(x, y, theWidth, theHeight);
starship_image.draw(canvas);
153デフォルトの名無しさん:2010/08/05(木) 11:28:24
たぶん大丈夫だと思うけど、何が起こったら問題なん?
154デフォルトの名無しさん:2010/08/06(金) 00:26:58
Java習い始めたばかりなんですが、どなたか
九九の表の作成方法を教えてください。
155デフォルトの名無しさん:2010/08/06(金) 01:09:26
そんなレベルから人に聞いてはいけない
156152:2010/08/06(金) 01:32:27
>>153
レス、ありがとうございます。

他のプログラミング言語(Objective-c 等)では、他のイメージを同じ変数
に読み込む場合、一度メモリからリリースしておかないとメモリリークに
なってしまうので、Java では大丈夫なのかなと思い質問させてもらいました。

大丈夫なのですね。ありがとうございました。
157デフォルトの名無しさん:2010/08/06(金) 02:10:48
>>154
System.out.println("1 2 3 4 5 6 7 8 9");
System.out.println("2 4 6 8 10 12 14 16 18");
System.out.println("3 6 9 12 15 18 21 24 27");
System.out.println("4 8 12 16 20 24 28 32 36");
System.out.println("5 10 15 20 25 30 35 40 45");
System.out.println("6 12 18 24 30 36 42 48 54");
System.out.println("7 14 21 28 35 42 49 56 63");
System.out.println("8 16 24 32 40 48 56 23 72");
System.out.println("9 18 27 36 45 54 63 72 81");
158デフォルトの名無しさん:2010/08/06(金) 02:39:58
>>157
python最強伝説ですね?
159デフォルトの名無しさん:2010/08/06(金) 03:44:58
↓みたいなコードは安全でない可能性があると思ったのですがどうなんでしょうか?
synchronizedブロック実行中にobjectそのものにnullを突っ込まれたらNullPointerで落ちますよね?

privte static Hogerable object;
synchronized (object) {
if (object != null) {
return object.doHoge();
}
}
160デフォルトの名無しさん:2010/08/06(金) 08:58:47
リフレクション使わなけりゃprivateなフィールドに外部からアクセスできないんだから、
クラスの設計者がちゃんと作ってりゃ大丈夫じゃね?

てかそのコードだとsynchronizedの後のnullチェックが良くわからない。
objectがnullの場合synchronizedのところでぬるぽじゃね?
161デフォルトの名無しさん:2010/08/06(金) 11:09:32
synchonizedせずにobject触るようなエロいヤツがそのクラス弄れるって想定なんじゃないの?
162デフォルトの名無しさん:2010/08/06(金) 13:46:38
[ファイルMain.java]
public class Main {
public static void main(String[] args) {
Person x = new Person("太郎", 5);
x.who(); //@´
x.who("次郎"); //A´
x.who(10); //B´
x.who("次郎", 10); //C´
}
}
http://www.lcv.ne.jp/~kenmio/yomimono/yomimono11.htm

添付ファイル「Java謎+落とし穴」(前橋和弥)によると、下の場合だとメソッドオーバーロード
できないとのことですが、引数の型を自動選択するのがオーバーロード機能ではないですか?

class ShapeDraver {
Static void draw(Policyline policyline){略1}
Static void draw(Circle circle){略2}
Static void draw(Rectangle rectangle){略3}
}
void drawAllShapes(Drawable drawable){
for(int i=0 ; i<shapes.length ; i++){
ShapeDrawer.draw(shape[i]);
}
}
163デフォルトの名無しさん:2010/08/06(金) 14:03:46
>>162
オーバーロードはされる。
ただし、オーバーロードされたメソッドの中からどのメソッドを呼ぶかは、
コンパイル時に決定される。

実行時に解決したいなら
interface Shape { void draw(Renderable target); }
class Circle implements Shape { public void draw(Renderable target){ /*円を描く*/ } }
みたいにオーバーライドした方がいい。もしくは、
if (shapes[i] instanceof Circle) ShapeDrawer.draw((Circle)shapes[i]);
みたいに分岐するか。
164154:2010/08/06(金) 18:41:16
お願いします。

>>157 説明不足ですみません、単に表を表示させるのでなくて
プログラムに計算させてcmd上に表示させたいのです。
165デフォルトの名無しさん:2010/08/06(金) 18:43:16
>>160-161
質問が悪かったかもですが、つまりsyncronizedブロックは

・オブジェクト操作
・変数への代入そのもの
の両方をブロックしてくれんの?

という質問です。
166デフォルトの名無しさん:2010/08/06(金) 19:24:05
>>165
他のスレッドが synchronized (object) している間はブロックの中に入れないだけだぞ。
見た目が synchronized (object) であっても参照先が別のオブジェクトだったら素通しだし。
167デフォルトの名無しさん:2010/08/06(金) 21:09:10
なんかバグ入れそうな悪寒
168デフォルトの名無しさん:2010/08/07(土) 02:12:44
>>165
ロックを持ってるのは変数そのものじゃなくて、変数が指してる先のオブジェクトだということを理解しているか?
169デフォルトの名無しさん:2010/08/07(土) 07:25:11
ArrayList<Integer> を toArray を使って int[] にコピーしようとすると
「Object型は int型に変換できません。」というエラーが出てしまいました。
ArrayList が Integer であることを明示するにはどこに指定したらよいのでしょうか?
170デフォルトの名無しさん:2010/08/07(土) 08:05:56
> ArrayList が Integer であることを明示するにはどこに指定したらよいのでしょうか?
ArrayList<Integer>
171デフォルトの名無しさん:2010/08/07(土) 08:31:13
>>169
import static org.apache.commons.lang.ArrayUtils.toPrimitive;
:
:

@SuppressWarnings("serial")
ArrayList<Integer> arrayList = new ArrayList<Integer>(){{
add(1);
add(2);
add(3);
}};
Integer[] integers = arrayList.toArray(new Integer[0]);
for(int i : integers) System.out.println(i);

int[] ints = toPrimitive(arrayList.toArray(new Integer[0]));
for(int i : ints) System.out.println(i);
172デフォルトの名無しさん:2010/08/07(土) 09:07:19
Stringの変数をそのままif文のチェックに使いたいのですが、
どうすればよいでしょうか。

String test ="a1 > a2";
int a1 = 1;
int a2 = 2;

if(test){  //ここの条件チェックで、このままだとtestをBooleanにするか?と聞かれます
    System.out.println("OK");
else
〜〜〜
173デフォルトの名無しさん:2010/08/07(土) 09:21:54
>>172
ひょっとして、a1がa2より大きかったら、if文の中に入って欲しいのか?
そしたらjavax.script.ScriptEngineしかなさそう。
もしくはevalを実装しているライブラリを探すしかないと思う。
174デフォルトの名無しさん:2010/08/07(土) 09:33:53
マニフェストファイルを記述した実行可能jarファイルにおいて、ダブルクリックによって起動した時と、java -jar hoge.jar によって起動した時で
なにか制約の違い(おそらくマルチスレッドがらみ?)はあるんでしょうか。

全く同じ実行可能 jarファイル(antによってマニフェスト生成)を
・ダブルクリック(Windows Vista + java1.6.0_14-b08)によって起動
・コマンドラインからjava -jar hoge.jar (←クラス、クラスパスは記述せず、マニフェストを参照)

とした場合で動作が違うようなのです。
と、いうよりも前者のダブルクリック起動だとまともに動作しません。
現象としては2つ目のスレッドを発行すると動かず、ログすら出さずに消失します
(1つ目のスレッドは普通に動作します)。
もちろんeclipse上では完全に動きます。
175デフォルトの名無しさん:2010/08/07(土) 10:12:02
>>174 ですけど、暫定解決しました。
関連付けがjreでコマンドラインのパスはjdk/jreになってたのが原因くさいです・・
5時間もこんなことで;ORACLEめぇえええ・・もうすこし検証します;
176デフォルトの名無しさん:2010/08/07(土) 11:03:02
>>162
 javaの謎の6.1.1にもあるように、コンパイルの段階で、引数が異なる同名
のメソッド(この場合三つのdraw)は別メソッドとして扱うように変換される
ということです。これがオーバーロード。実行時に引数の個数や型によって、
どのメソッドが呼ばれるか判断されます。
 3.2.1のリストにあるように、配列shapesの型はShapeであって、あくまでコ
ンパイラはshapes[i]の型はShapeであるとみなします。その各要素にどのイン
スタンス(Polylineなのか、Circleなのか。。)が代入されるかは実行時でな
いと分かりません。よって、6.1.2のメソッドdrawの呼び出しでは、引数
shapes[i]のインスタンスの型がコンパイル時には判明しないので、上のどの
drawを呼び出すべきが決定できないということになります。つまりコンパイル
できないのでエラーになります。
177デフォルトの名無しさん:2010/08/07(土) 12:21:32
言語規定 5.3 メソッド呼出し変換
「メソッド呼出し文脈は,恒等変換(5.1.1), プリミティブ型拡大変換 (5.1.2),
又は参照型拡大変換 (5.1.4)を可能とする。」
は、参照型縮小変換は不可能とするという意味じゃない?
縮小変換ってごく特殊な場合を除いて実行時エラー起こすよな。
178デフォルトの名無しさん:2010/08/07(土) 13:50:12
>>171
int と Integer は別物なんですね。
同じものだと勘違いしていました、ありがとうございます。
179デフォルトの名無しさん:2010/08/07(土) 16:35:29
プリミティブ型を覚えるよろし
180デフォルトの名無しさん:2010/08/07(土) 21:41:27
>>173
ありがとうございます。
ヒントだけでも助かります。
調べてみますねー。
181デフォルトの名無しさん:2010/08/07(土) 23:25:22
Javaって完全に衰退気味なのに、皆さんは何が好きで使ってるんですか?
もう後戻りできないとか、他に取り柄が無いとかですかね?
182デフォルトの名無しさん:2010/08/07(土) 23:26:40
最近じゃObjective-Cにすら勢い抜かれてるらしいですし。。
Javaなんか使い続けてて仕事無くならないですかね?
183デフォルトの名無しさん:2010/08/07(土) 23:31:58
webと携帯のドカタ仕事でがんばります
184173:2010/08/07(土) 23:32:31
>>180
文字をif文の判断対象にするようなことは普通できないし、するべきじゃないと思う。
だけど、もし自分が「何とかしてJavaScriptのevalのようなことを実現しろっ!」って
すごまれたら、ScriptEngineで工夫して何とかしようとするかなぁ。といった感じ。
185デフォルトの名無しさん:2010/08/07(土) 23:45:55
>>181
>>182
正直、次から作るシステムはScalaで作りたいww
Javaが古めかしい言語であることに異論はない。でも言語の学習コストなんてたかが知れていると思うな。
LISPをしらない自分はScalaの文法は衝撃だったけど。まぁ慣れだよね。
186デフォルトの名無しさん:2010/08/07(土) 23:52:50
10年経っても.Netに追いつかれないJavaは大したものだと思う
187デフォルトの名無しさん:2010/08/07(土) 23:53:48
おい、やめろ
Javaの悪口hそっこまでだt
188デフォルトの名無しさん:2010/08/08(日) 00:14:53
>>182
いまだにコボラーのおっさんが幅きかせている世界もあるんだぜ
189デフォルトの名無しさん:2010/08/08(日) 00:18:25
tomcatだけ飯食ってる知り合いがいる。
プログラムは全く書かないらしいが、徹夜漬けの俺より給料高い。
190デフォルトの名無しさん:2010/08/08(日) 03:42:33
質問させてください。

Mirror API では

com.sun.mirror.declaration.AnnotationMirror.getElementValues

を使ってアノテーションのパラメータが、
明示的に与えられたものか、
default によって与えられたものかを
区別することができると思います。

リフレクションAPIを使ってこのような区別をしたいのですが可能でしょうか?
もし可能であればやり方を教えていただければと思います。
191デフォルトの名無しさん:2010/08/08(日) 09:09:43
>>184
一応出来ました。ありがとうございました。
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine se = sem.getEngineByName("js");
int a1 = 2;
int a2 = 1;
String judge = "a1 > a2";
String test = "var a1="+a1+";var a2="+a2+";if("+judge+"){println('ok');}else{println('ng');}";
se.eval(test);

この方法でどうしてもやれっていう訳ではなくて、
自分が今無理矢理やろうとしている事が、
どう実現出来るか判らないので、質問させてもらいました。

DBと連携させて、変数枠10個くらい毎回動的に入れたものを
条件値で分析調査したいと言った時に、
条件値も同じくDBに入れたとすればString値だし、
どういう実装方法がいいでしょうか。
a1 > a2 のときもあれば、a1 < a2 < a3 やら 1.1*a1 > a4
とかもあると思うんで。
192デフォルトの名無しさん:2010/08/08(日) 14:29:06
学生には衰退気味に見えるだろうな
でも俺の回りじゃまだまだjava案件だらけだぜ
193デフォルトの名無しさん:2010/08/08(日) 14:38:20
バージョン間やOS間、VMベンダー間の互換性が高いというメリットがあるからまだ10年はもつよ。
すくなくとも.NETやPHPで組まれたアプリよりJavaアプリのほうが、20年後も(保守担当者にJavaラー死ねよと愚痴られながら)動いてる可能性が高いだろう。
194デフォルトの名無しさん:2010/08/08(日) 23:28:32
自分が扱えない言語は廃れた事にしておかないと不安なエンジニアが世の中にはいるらしい
ただWindows系の言語と比べると覚えることが少ない(=簡単な)Javaを対象にしてるのが珍しい
195デフォルトの名無しさん:2010/08/10(火) 02:42:07
{1,2}を与えたら{{1,2},{2,1}}
{1,2,3}を与えたら{{1,2,3},{1,3,2},{2,1,3},{2,3,1},{3,1,2},{3,2,1}}
というように配列の要素を並び替えてできるすべての配列の配列を返すメソッドはどうやったら作ることができるのでしょうか?
196デフォルトの名無しさん:2010/08/10(火) 02:57:39
総当たりで全パターンやればいいじゃん。
どっちかというと算数の問題だろ。
197デフォルトの名無しさん:2010/08/10(火) 07:17:43
単純にロジック組めないということかな。
再帰的メソッドとかでやってみたらどうでしょう?
198デフォルトの名無しさん:2010/08/10(火) 07:35:32
組み合わせ取得とか、commons Mathとかに普通にありそうだな。
199デフォルトの名無しさん:2010/08/10(火) 08:03:31
このスレで解決した質問の数0
200デフォルトの名無しさん:2010/08/10(火) 20:12:31
Object o が null だったら、"ぬるl" という固定文字列を、
o が null じゃなかったらクラス名を、String className という変数に入れたい。

String className;
Object o = ....;
if (o == null) className = "ぬる"; else className = o.getClass().getName();

これは動く。

3項演算子にしたくて、
o == null ? className = "ぬる" : className = o.getClass().getName();
は、o == null のところでコンパイルエラーが出る。

・Eclipse で、o == null のところに赤線が出て、
 == にカーソルをマウスオーバーすると
 「トークン "==" に構文エラーがあります。AssignmentOperator 蛾無効です」とポップアップが出る。
・null にカーソルを合わせると、「型の不一致: null から boolean には変換できません」とポップアップが出る。

どうしてでしょうか?
o == null も式だと思うのですが・・・
201デフォルトの名無しさん:2010/08/10(火) 20:16:00
className = o == null ? "ぬる" : o.getClass().getName();
202200:2010/08/10(火) 20:22:02
>>201
動きました! どうもありがとうございます!

でもどうしてそれが正しいのかわからない。
http://itref.fc2web.com/java/operator.html

をみると、

条件式 ? 式1 : 式2
a > b ? max = a : max = b;

と解説されていますが、

className = o == null までは条件式になるのでしょうか?
203デフォルトの名無しさん:2010/08/10(火) 20:27:53
演算子なんだから演算してるんだよ。
「条件式 ? 式1 : 式2」ってのはまるごとまとめて「値 * 値」や「値 + 値」や「"あ" + "ほ"」と同じようなもん。
ソースの文中にポツッと書いただけじゃ何の意味もない。
なんかの変数やらに代入して初めて意味を持つ。
204200:2010/08/10(火) 20:32:31
なるほど、

int i = a + b;

で、 a + b の箇所で a と b を演算して、その結果を i に入れているわけですが、
同様に

className = o == null ? "ぬる" : o.getClass().getName();

とすると、三項演算子によって得られた結果("ぬる" か o.getClass().getName()) が
o に代入されるというわけですね。

すごくよくわかりました!

三項演算子の箇所全体が、なんらかの右辺(左辺でもいいか)に来ると覚えよう。]

余談までに、いきなり

1 + 1;

という行をボツっと書いたら、同様のコンパイルエラーになりました。

205デフォルトの名無しさん:2010/08/10(火) 20:33:17
>>202
言語仕様的に「文」になれる「式」の種類は決まってる。
条件式はその種類に含まれないから、そのままでは「文」になれない。
「文」になれるのは代入、インクリメント、デクリメント、メソッド呼び出し。

className = o == null ? "ぬる" : o.getClass().getName();
は、右辺が条件式、の代入なので「文」になれる。
206200:2010/08/10(火) 20:37:06
>>204 の誤記:

誤: o に代入されるというわけですね。
正: className

>>205 さんもどうもありがとうございました。
最近 Java から ruby をやっているのですが、ruby だと「それは式だ」みたいなことをよく言われますが、
あらためて Java での式とはなんぞや、を勉強しなければと思いました。
207デフォルトの名無しさん:2010/08/10(火) 20:43:21
>>204
>o に代入されるというわけですね。

oには代入されねぇよww
208デフォルトの名無しさん:2010/08/10(火) 20:48:53
>>202
そのページの
> a > b ? max = a : max = b;
自体が間違い。
検証もしてないようなコード書いてるページなんて捨ててしまえ。

何故エラーになるかというと、最大の問題は演算子の優先順位。
通常の演算子は全て?:より優先順位が高いけど、
代入演算子だけは?:より優先順位が低い。
だから、a > b ? max + a : max - b は、
(a > b) ? (max + a) : (max - b)と解釈されるが、
a > b ? max = a : max = b は、
((a > b) ? max) = (a : max) = b みたいな感じに解釈されて、
そもそも正しい式にならない。

よって、>>200は className = ... を (className = ...) のように
カッコでくくるとエラーじゃなくなる。

あと、代入無しで?:を直接書くのも間違いなので、その点でも>>202のページはNG。
コンパイラに「文ではありません。」 と怒られる。
209デフォルトの名無しさん:2010/08/10(火) 21:08:47
210デフォルトの名無しさん:2010/08/11(水) 12:00:11
JavaでWin32APIにあるメソッドを使いたいのですが、ありますか?

具体的にはWin32で用意されているPrintWindow()のようなメソッドを使って、指定したウィンドウのキャプチャをしたいのです。
最前面に出せばキャプチャ―はできるのですが、ツールバーに置いたままでもキャプチャ―する方法はありますでしょうか?
211デフォルトの名無しさん:2010/08/11(水) 13:25:59
JNA(Java Native Access)とか?
212デフォルトの名無しさん:2010/08/11(水) 14:07:42
あるいは JNI でんな。
213デフォルトの名無しさん:2010/08/11(水) 14:43:43
windowのキャプチャならjavaだけでできるけど
214デフォルトの名無しさん:2010/08/11(水) 16:22:46
>>213
> 最前面に出せば(java.awt.Robotで)キャプチャ―はできるのですが、
> 最小化されていたり他のウィンドウなどに隠れているウィンドウをキャプチャしたいです。
って感じな事を210は言ってるんじゃないのか?
215デフォルトの名無しさん:2010/08/11(水) 16:43:13
使ったこと無いんだけどnlinkってのはどうかねぇ
216210:2010/08/11(水) 17:08:39
>>214
その通りです。

Robotクラスを使えば、表示されている画面の情報は得られるんですが、タスクバーに入っていて、見えないアプリケーションの画面とか取れないものかと。
Visual C++ではhttp://msdn.microsoft.com/ja-jp/library/x51z0shh(VS.80).aspxのがあって、Javaにもあるのかなと探しましたが、
http://cs.nyu.edu/zilin/swt/API/org/eclipse/swt/internal/win32/OS.htmlにはりませんでした。。。

自分も使ったことがないのですが、nlinkとかJNIなら呼び出せるんですかね。
217デフォルトの名無しさん:2010/08/11(水) 17:45:50
オライリーの本を買おう思っても古いものばかりです。
バージョンの違いによる大きな変更点等を加味すると何年くらい前のものまで大丈夫ですか?
一応pythonの2〜3程度の変化なら許容範囲です。
218デフォルトの名無しさん:2010/08/11(水) 23:16:19
>>124
ゲームでスクリーンショット取るやり方だがそのフレームの一番うえのコンポーネントのGraphics2Dのスナップショットをとればいいんじゃない?
219デフォルトの名無しさん:2010/08/11(水) 23:24:51
>>218
Javaのウィンドウ以外の画面も取りたいんじゃね?
220デフォルトの名無しさん:2010/08/12(木) 00:06:30
このスレでそんな難しい質問しないでください
221210:2010/08/12(木) 04:21:34
はい、Javaのウィンドウ等ならいいのですが、例えばIEの画面もキャプチャしたいと思ったのです…
222デフォルトの名無しさん:2010/08/12(木) 04:47:21
>>211-212で答え出てるのに今まで何してたの?
223210:2010/08/12(木) 07:54:40
どうしても出来ないのなら、JNIでやってみようかと思いましたが、もう少しWin32.OSクラスの中身を調べてました。

ウィンドウを指定したり、最前面のキャプチャーはJavaでも出来るので、もしかしたらあるかなと。

JNIは使ったことないので、Javaのみで完結させたくて調べてましたが、無理そうですね。。。
224デフォルトの名無しさん:2010/08/12(木) 08:19:55
JNA使えば?
225210:2010/08/12(木) 08:35:36
>>224
そちらの方がいいですかね?

Visual C++では指定したウィンドウの画面イメージが取得できそうなので,JNIを使えばイメージ取得及び解析をしたあとにその結果だけJavaに返せるのかなと考えました。

今JNAを調べてみましたが、win32apiのファンクションをマッピングするJNAもあるみたいですね。そちらの方が簡単そうならそちらでやってみます。

ありがとうございます。
226デフォルトの名無しさん:2010/08/14(土) 13:17:17
ServletのFilterで
public final void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException
{
System.out.println("aaaaaaaaaaaaa");
chain.doFilter(req, resp);
}

だけしかない単純なフィルターでweb.xmlで
<filter-mapping>
<filter-name>RootFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
こんなふうにマッピングしてServletを
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>test.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
こんな感じで全ての*.htmlにマッピングし
http://ドメイン/
を表示するとconsoleにaaaaaaaaaaaaaが2回表示されます。
http://ドメイン/index.html
だと一回しか表示されません。なぜでしょうか?ちなみに、GAEの開発なのでjettyでテストしてます。
よろしくお願いします。
227デフォルトの名無しさん:2010/08/15(日) 16:36:21
Javaのオブジェクトの仮想マシン上でのバイナリ表現を得る方法ってありますか?
228227:2010/08/15(日) 16:39:48
ObjectOutputStreamだとjava.io.serializableを実装してないといけないし
Javaのオブジェクト全てをバイナリ化する方法があるかを知りたいんですが
229デフォルトの名無しさん:2010/08/16(月) 21:39:47
>>226
http://ドメイン/
にアクセスしたら
http://ドメイン/index.html
に飛ばされてるからじゃね
230デフォルトの名無しさん:2010/08/16(月) 23:34:51
class Mammal {
String name = "furry";
String makeNoise() {
return "generic noise";
}
}
class Zebra extends Mammal {
String name = "stripes" ;
String makeNoise () {
return "bray";
}
}
public class ZooKeeper {
public static void main(String[] args) {
new ZooKeeper().go();
}
void go() {
Mammal m = new Zebra();
System.out.println(m.name + m.makeNoise());
} }

このプログラムで実行したらfurry brayになるらしいけどなぜなんでしょう?
231デフォルトの名無しさん:2010/08/17(火) 00:10:33
そういう仕様だから仕方ない。makenoizeの中身をreturn name;にするとなお面白いな。
フィールドのオーバーライドは直感に反した動作をすることが多いのでどこのプロジェクトでも普通は禁じ手だ。
232デフォルトの名無しさん:2010/08/17(火) 04:06:34
>フィールドのオーバーライド
隠蔽だと思うんだが
233デフォルトの名無しさん:2010/08/17(火) 06:27:45
>>231
にひょんごでおk
234デフォルトの名無しさん:2010/08/17(火) 15:27:07
javaのゲームをするとこうなるのですがどう直せばよいのでしょうか・・・
http://iup.2ch-library.com/i/i0137958-1282026353.jpg
235デフォルトの名無しさん:2010/08/17(火) 22:39:53
>>234
PCを買い換える
236デフォルトの名無しさん:2010/08/17(火) 22:54:28
>>234
・JREを最新のものに入れ替えてみる。
・グラフィックカードのドライバを最新版や安定版にかえてみる。
・グラフィックカード買い替え。
・コマンドラインオプションつけれるなら
 -Dsun.java2d.noddraw=trueしてみる。

ぐらいか?
237デフォルトの名無しさん:2010/08/17(火) 23:39:10
GPUの対応が糞くらいしか思いつかんが板違いだな
238デフォルトの名無しさん:2010/08/18(水) 01:39:42
239デフォルトの名無しさん:2010/08/18(水) 23:22:29
String sql = "SELECT …";
PreparedStaetment ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while ( rs.next() ) {

}

こんな感じでSQLを実行していますが、
ps.executeQuery() の実行時間をログ出力したいです。

何か賢い方法をご教授願います。
#ps.executeQuery()の呼び元は数百か所あります。。。
240デフォルトの名無しさん:2010/08/19(木) 00:14:38
案だけど、 Connection と PrepareStatement と ResultSet をラップして名前
空間を java.sql 以外に置き換える。
そして中身は実体のインスタンスを委譲して実行時間計測。
元々のコードの修正は Connection 生成しているところをファクトリ化するのと
import 文だけ。

アスペクト指向?聞こえねーな。
241デフォルトの名無しさん:2010/08/19(木) 00:41:20
javaの動画をダウンロードしたいんですけど
何かいいソフトはありませんか
242デフォルトの名無しさん:2010/08/19(木) 00:47:58
>>240
正しい。以前Connectionをラップせにゃならん状況になったとき、AspectJでなんとかならんかと思って調べてみたら、ヘビー過ぎて心が挫けた。
結局Eclipseの移譲メソッド生成一発で済ませた。行数は酷いことになったが、手間は最小限だったw
243239:2010/08/20(金) 00:18:15
>240, 242

レス、ありがとうございます。

レス頂いた修正方針だと、
機械的な修正にはなりますが、修正ファイル数が多いな〜
と思っていたんですが、
これで行く決心がつきました。

Eclipseの移譲メソッド生成ってのが、便利そうですね。
調べてみます。

ありがとうございました。
244デフォルトの名無しさん:2010/08/20(金) 14:49:51
JAVAのアプリケーションからオラクルに接続するにはどのように実装するのでしょうか?
245デフォルトの名無しさん:2010/08/20(金) 15:53:59
DriverManager.getConnection
246デフォルトの名無しさん:2010/08/20(金) 20:05:04
集団ストーカー実行犯の見つけ方
駅の改札、エスカレーター、階段、交差点など人の流れが集中するところにいます。
その周辺で人の流れと逆向きに立ったり柱や壁を背にして、長時間人々を凝視している人間がいたらそうです。
247デフォルトの名無しさん:2010/08/21(土) 10:30:45
画面が実質1,2しかないWebアプリ(ページ内容の更新自体は頻繁)を作るのですが、
PHPやPerlじゃなくあえて勉強のためJavaにしようかと思っています。

生JSP(生サーブレット)でもいいかなーとおもったけどそれじゃなんなので、
こういう小規模ページをサクっとつくるのに向いたJavaフレームワークを探してますが
オススメはあるでしょうか?
248デフォルトの名無しさん:2010/08/21(土) 11:32:36
小規模ならvelosurfでいいと思う
249デフォルトの名無しさん:2010/08/21(土) 13:11:52
公開前提でJavaならGoogle App Engne + Slim3 って結構よくない?
お金掛からないし。
250デフォルトの名無しさん:2010/08/21(土) 13:20:45
Pythonとか入れるのが煩わしくない人ならありかもね。
でもサクッと作りたい人には明らかに不向きだね。
251デフォルトの名無しさん:2010/08/21(土) 13:27:46
GAEはJavaでやるならPython入れたりする必要なかったと思う。
まぁ、Eclipseにプラグインとか入れるのは煩わしい。
252忍者Perl ◆M5ZWRnXOj6 :2010/08/21(土) 13:36:19
きもいスレですね
253デフォルトの名無しさん:2010/08/21(土) 13:40:52
>>244
四の五の言わんとiBATIS使っとけ
254忍者Perl ◆M5ZWRnXOj6 :2010/08/21(土) 13:49:30
あんまり調子のってるとここのスレつぶすよ
255デフォルトの名無しさん:2010/08/21(土) 15:01:22
出来もしないのにww
256デフォルトの名無しさん:2010/08/21(土) 15:13:50
>>248
velosurfてWebてわけじゃなくてモデル層ですよね。
コントローラは?Strutsとか生サーブレットですか。

>>249
GAEは興味はあるけど、5年後メンテ不可能になっていかねない技術はちょっとパスですかねw
257デフォルトの名無しさん:2010/08/21(土) 15:19:17
>>256
GAEは単にWebアプリのプラットフォームだと思えばいい、Slim3はStrutsのミニマム版。
まぁ、とっかかりちょっと面倒かもしれないから無理強いはしないよ。
258デフォルトの名無しさん:2010/08/21(土) 15:52:05
>>256
いや、フルスタックだよ
"A simple example"を見て30分くらいいじればすぐにわかる

http://velosurf.sourceforge.net/overview.html
259デフォルトの名無しさん:2010/08/21(土) 16:05:53
おまえじゃ無理ww
260デフォルトの名無しさん:2010/08/21(土) 16:16:23
261デフォルトの名無しさん:2010/08/21(土) 16:34:18
>>258
ありがとう。Velocityは大昔に使ったことあったので試してみます。
でも日本語の情報少なすぎじゃないかなぁ。

いまApache Clickを調べてるけど、すぐ消えそうな感じがゾクゾクしていいですね
(いや消えるようなのは勘弁なんですがw)。
262デフォルトの名無しさん:2010/08/21(土) 17:36:16
ああClickも内部はvelocityなんですね。
velosurfは依存ライブラリ多くてちょっとどうなん?と思ってしまったのでしばらくClickいじってみます。
263デフォルトの名無しさん:2010/08/21(土) 17:59:13
>>254
死ねよ雑魚がww
264デフォルトの名無しさん:2010/08/21(土) 23:54:54
SJC-Pって今受験料どれくらい?
265デフォルトの名無しさん:2010/08/22(日) 01:13:47
9万
どうせ3回はいるだろ
266デフォルトの名無しさん:2010/08/22(日) 14:31:21
Twitterアプリ天才灘中「ニュー速の奴ら、頭残念すぎるだろ」★2
http://kamome.2ch.net/test/read.cgi/news/1282454634/
267デフォルトの名無しさん:2010/08/23(月) 11:55:50
>>261
Apache Clickのほうは日本語の情報が豊富なの?
268Perl忍者 ◆M5ZWRnXOj6 :2010/08/23(月) 23:59:49
javaやってるやつってクソスーツばっかだろ

クソ企業人がわいてそうですね

ゴミみたいなバカはせっせと死んでください
269デフォルトの名無しさん:2010/08/24(火) 00:11:09
クソスーツてなんですか?
270デフォルトの名無しさん:2010/08/24(火) 01:44:58
>>267
豊富じゃないけど、velosurfよりは多くないですか?と、いうより日本語のサイトでまともにvelosurfを紹介してるサイトってあります?
英語のページでもチュートリアル/FAQ系のサイトはClickの方が多い気がします。
271デフォルトの名無しさん:2010/08/24(火) 02:47:07
272Perl忍者 ◆M5ZWRnXOj6 :2010/08/24(火) 09:41:47
クソスーツもわからないの?
http://yuzuru.2ch.net/test/read.cgi/employee/1282452525/

クソスーツの特徴 まとめ

1、ツイッタのフォローリストがほぼ著名人w 孫正義などホリエや菅野をフォローw
2、FXや株など 経済用語が大好き だけど経済的に並〜貧乏
3、職業はサラリーマン、公務員、教員
4,自己紹介欄にTOEIC900点目指し勉強中w ←金目的
5、やることが浅い 深くやらない かじる程度
6、ブログはyahooやfc2
7、yahooの珍言袋が大好き
8、ジムに通う クソガリーマンはプールかエアロバイクw
9、プログラミング言語は java,VB,C++
10、PCは富士通 VAIO ソニー愛好者
11、子供の写真をブログに載せちゃう
273デフォルトの名無しさん:2010/08/24(火) 10:14:20
おまえみたいなゆとりのことか
274Perl忍者 ◆M5ZWRnXOj6 :2010/08/24(火) 10:26:46
ゆとりはこんな事しないよ^^;

経済オタな無様な大人の生き様みてきたから
275デフォルトの名無しさん:2010/08/24(火) 14:18:42
オブジェクトというか、プリミティブ型の配列の基本的な扱いについて
教えて下さい。

public class Test1 {
 private int[] oldParam = {0, 1, 2};

 public Test1(){
  int[] newParam = {4, 5, 6 };
  this.oldParam = newParam;
 }
}

このような、インスタンス生成時に、クラス変数の配列を
新しい変数の配列に書き換えたいのですが、

1.プリミティブ型の配列の場合、参照先はそのままで内容が
  変わるんでしょうか?

2.配列をオブジェクトの配列に変更した場合、oldParam の
  参照先がnewParamに変更されると思うのですが、その場合、
  元々oldParamが格納されていたメモリ領域は、GC対象に
  なるということでしょうか?
276デフォルトの名無しさん:2010/08/24(火) 17:33:53
>>275
それはプログラムを書くと調べられるのでは?
277デフォルトの名無しさん:2010/08/24(火) 17:35:43
プリミティブ型だろうがオブジェクトだろうが全く関係ない
参照先が変わるし古いのは使われなくなったらGC対象になる
278デフォルトの名無しさん:2010/08/25(水) 04:06:25
クラス変数じゃなくてインスタンス変数の配列だな。
279デフォルトの名無しさん:2010/08/25(水) 04:52:13
280275:2010/08/25(水) 09:10:21
>>276-277
コード書いていろいろ試してます。
デバッガの使い方の勉強を兼ねて。
使われなくなったものがGC対象になるという点も
納得できました。

ご教示、ありがとうございました。
281デフォルトの名無しさん:2010/08/25(水) 16:59:29
JDI(java debug interface)とJVMTI(Java Virtual Machine Tool Interface)の違いについて

指定したクラスの中で使われている変数の推移を、
JDIを用いて取得して表示するプログラムを作りました

JVMTIでも同じようなことが出来そうなのですが、
ちょっと調べただけでは意味不明でした

JDIとJVMTIは具体的にどう違うのでしょうか?
282デフォルトの名無しさん:2010/08/25(水) 23:45:57
↓の方が適切かと思ったのですが、人がいなさ過ぎだったため、こちらで質問します。
Java⇔RDBのMapping-Frameworkを語るスレ Vol.5
http://hibari.2ch.net/test/read.cgi/tech/1220671877/


テーブル名が"table01"、"table02"、"table03"・・・といった具合に、カラムは全く同じだけど
名前だけ違う、というテーブル群をOpenJPA1で操りたいと考えています。

Entityとテーブルをマッピングする際は、テーブルの名前が固定な場合は
@SecondaryTablesを使えばいけそうというところまでは分かりました。
ただ、テーブルの名前は固定したくありません。

例えばEntityに対して@Table(name = "table??")なんて指定が出来ればベストなんですが…

何か、良い方法はありませんでしょうか。
283デフォルトの名無しさん:2010/08/26(木) 15:12:27
284デフォルトの名無しさん:2010/08/26(木) 15:36:26
ゲームを作っているのですが、キー入力で同時に4つ以上の入力を受け付けてくれません。
またキーリピート?の間隔を0にする方法があったら
(キーを押しっぱなしでだ、、だだだだの入力をだだだだだ)教えてください。
285デフォルトの名無しさん:2010/08/26(木) 15:39:53
4つ以上のキー入力は解決しましたすいません
286デフォルトの名無しさん:2010/08/27(金) 01:57:46
>(キーを押しっぱなしでだ、、だだだだの入力をだだだだだ)
秘孔穿いてるようにしか聞こえん。
287デフォルトの名無しさん:2010/08/27(金) 21:44:45
Version 6 Update 21っていつ更新されたのか
教えてください
288デフォルトの名無しさん:2010/08/27(金) 22:58:08
289デフォルトの名無しさん:2010/08/27(金) 23:03:04
sunのサイトには日付書いてあったがoracleが消した
ような気がしないでもない
290デフォルトの名無しさん:2010/08/27(金) 23:11:00
OracleになってからJavaのサイトが使いにくくなった気がするんだが。
旧版のJDKめっちゃ探し回ったぞ。
291デフォルトの名無しさん:2010/08/27(金) 23:13:34
292デフォルトの名無しさん:2010/08/29(日) 18:26:11
>>258
> >>256
> いや、フルスタックだよ
> "A simple example"を見て30分くらいいじればすぐにわかる
>
> http://velosurf.sourceforge.net/overview.html

これより簡単なJavaのフルスタックWebアプリFWってないですかね?
293デフォルトの名無しさん:2010/08/29(日) 22:54:57
>>291
u21でベンダ名をSunからOracleに変更したらEclipse起動しなくなっちゃった
ていうので一回差し戻しがあった。
これが原因かどうかわからんけど。
294デフォルトの名無しさん:2010/08/29(日) 23:03:39
>>282
ちょっと何言ってるんだかわからないんだけど、
tableXXを要素が空のクラスにマッピングして、共通のスーパクラスで実体を定義、
@InheritanceでTABLE_PER_CLASSにすれば?

> Entityに対して@Table(name = "table??")
てのが実現できるのでは。
295デフォルトの名無しさん:2010/08/29(日) 23:13:12
296デフォルトの名無しさん:2010/08/30(月) 17:43:20
グラフックを配列データ化して描画する場合。
VB,VCでは配列化してデータを書き込んで配列をグラフックに戻す命令で
はじめて描画されます。
しかしjavaの場合
((DataBufferInt)img.getRaster().getDataBuffer()).getData();
これで配列化したあと配列にデータ書き込むだけで戻さなくても描画されてしまう。
これはどういうことなんでしょうか?
297デフォルトの名無しさん:2010/08/30(月) 18:25:26
>VB,VCでは配列化してデータを書き込んで配列をグラフックに戻す命令ではじめて描画されます。
それは誰かがそういう風にしたから

>これで配列化したあと配列にデータ書き込むだけで戻さなくても描画されてしまう。
それは誰かがそういう風にしたから
298デフォルトの名無しさん:2010/08/30(月) 18:30:05
1データの書き換えでも変わるというのは配列とグラフックがリンクされた状態と考えていいんでしょうか。
299デフォルトの名無しさん:2010/08/30(月) 20:20:19
いいんじゃね?

仕様上もそうか、と聞かれるとドキュメントに書いてないから確定的な事は言えんけど、
getRaster も getDataBuffer も getData もゲッターしかないから、
仕様上もそうだと考える方が妥当じゃないかと。
300296:2010/08/30(月) 20:28:26
ですか
301デフォルトの名無しさん:2010/08/30(月) 20:59:27
PixelGrabberは使わないんだ
302デフォルトの名無しさん:2010/08/31(火) 21:34:07
配列の中から任意のデータを検索するものがあったら教えてください
303デフォルトの名無しさん:2010/08/31(火) 22:27:54
java.util.Comparator
304デフォルトの名無しさん:2010/09/01(水) 11:39:32
スレッドごとまたはクラスローダごとにjavaのデフォルトエンコーディングを設定することは可能でしょうか?
305デフォルトの名無しさん:2010/09/01(水) 13:33:14
「javaのデフォルトエンコーディング」とは?
306デフォルトの名無しさん:2010/09/01(水) 15:16:21
>>304
システムプロパティの file.encoding の事を言ってるなら、
java.lang.System をクラスローダ毎に切り替えるのは無理。
スレッド毎に切り替えるのも無理。

クラス読み込み時にクラス変数に
file.encoding の内容を記録してるクラスなんかだと、
System.setProperty("file.encoding", "UTF-8");
とかやっても無視される。
例えば java.io.OutputStreamWriter あたり。
307デフォルトの名無しさん:2010/09/01(水) 18:30:27
GAEとかは、user.dirとかレンサバ契約者ごとに異なるシステムプロパティ環境が
同一VMに同居してるっぽいとこが不思議なんだよなあ。

System.getPropertiy実装を改造してもいいのなら難しい話でもないのだが
308デフォルトの名無しさん:2010/09/01(水) 19:00:12
サーブレットやjsp使えるレンサバ増えたの?
いまレンサバ幾らぐらい?
309デフォルトの名無しさん:2010/09/01(水) 21:36:56
神様
ファイルのアクセス日時を取得/設定する方法を教えてください。
310デフォルトの名無しさん:2010/09/01(水) 21:47:22
>>308
Fileもスレッド生成も必要ないなら、GoogleAppEngineがタダだよ
ここひと月は、さくらVPS(¥980)にTomcat乗せる人柱さんを様子見だな
311デフォルトの名無しさん:2010/09/01(水) 21:50:17
レンサバに頼るより、ドメインを月100円で取得して自分のストレージ・サーバに転送すればいいかなって思う。
312デフォルトの名無しさん:2010/09/01(水) 21:50:57
java.util.Comparator を使って
配列の中から任意のデータを検索する方法を教えてください
313デフォルトの名無しさん:2010/09/01(水) 22:52:32
314デフォルトの名無しさん:2010/09/02(木) 08:18:34
任意のデータって何なんだよ。
char配列からメールアドレスを抽出するとか言う話じゃないだろうね?
315デフォルトの名無しさん:2010/09/02(木) 09:47:10
>>314
Comparator ってそういうことに使うものなの?
例としてヘンテコ過ぎるだろ
316デフォルトの名無しさん:2010/09/02(木) 10:17:55
「Comparatorで素数を検索します!ありがとうございました!」
とかいう展開にならないといいけれど。いや、>312 ならありうる。

そもそも >302 の書きっぷりをみるからに、
一意に順序づけられるデータの質問とは思えないんだがなあ…
317デフォルトの名無しさん:2010/09/02(木) 10:21:19
コンパレータは、普通はソートだけどソートのときしか利用しちゃダメって分けじゃないからそういう使いかたもいいんじゃないか。
318デフォルトの名無しさん:2010/09/02(木) 12:07:26
検索は比較処理も含むわけだから。
>>302はComparatorを検索処理の中の比較の部分に
使えないかと考えたんじゃね?
319デフォルトの名無しさん:2010/09/02(木) 12:51:57
素数探すのは検索じゃないってか?

というわけで >302 よ。
釣でないなら「任意のデータ」とやらをもう少し詳しくな。
とりあえず、要素を探してるのか要素並びを探してるのかだけでも。
コンパラトール云々はそれからだ
320デフォルトの名無しさん:2010/09/02(木) 12:57:05
コンパラトール?
一見なんだか分からなかったけどそんな読み方もあったかww
321デフォルトの名無しさん:2010/09/02(木) 14:17:41
>>316
>>318
>>319

なんで比較とか順序付けとか並びとか質問からそれた話ばっかしてるんだ?
>>312が質問してるのは一致のはなしだろ
322デフォルトの名無しさん:2010/09/02(木) 15:08:00
比較しなきゃ一致してるか分からないだろksg
323デフォルトの名無しさん:2010/09/02(木) 17:25:54
当たり前の話だが、>>312は Comparator クラスの compare メソッドの使い方くらいは
百も承知だろう。どちらかと言うと Comparator クラスでつまづくのは equal メソッドの使い方だな、
って気づかないのは Comparator クラスを使ったこともないドシロウト。
324デフォルトの名無しさん:2010/09/02(木) 18:52:45
質問です.

Eclipse3.6 でプラグイン開発の勉強をしています.
既にEclipseにインストールされているプラグインからクラスローダをとってきて,
ワークスペース上にある Java クラスをそのクラスローダでロードすることは可能でしょうか?

例えばワークスペースにあるJavaプロジェクト上に Hoge クラスがあるとき,
プラグイン側で

Bundle bundle = <そのプラグインの Plugin クラス>.getDefault().getBundle();
Class cl = bundle.load(<ワークスペース上にあるクラスのクラス名>);
Object obj = cl.newInstance();

として Hoge のインスタンスを入手したいのですが,
クラスパスをプラグイン側に動的に追加する手段が無く,また ClassLoader.defineClass()にあたるメソッドが
OSGi の Bundle クラスに見当たらないため,困っています.

どなたかお手数ですがアドバイスをいただければ幸いです.
325デフォルトの名無しさん:2010/09/02(木) 21:22:56
素数を検索するComparator、かなりムズくないか?
binarySearchを使おうというのがすでに破綻してるのか。
326デフォルトの名無しさん:2010/09/02(木) 22:13:57
java.util.Comparatorクラスのequalメソッドを使って
配列の中から条件にあったデータを探し出す方法を教えてください
327デフォルトの名無しさん:2010/09/02(木) 22:20:24
データがどういうデータなのか
条件がどういう条件なのか

これくらいは言ってくれないと出来る出来ないも言えない。
328デフォルトの名無しさん:2010/09/02(木) 22:51:09
出来るか出来ないかは言えるはずだけどな ( ´,_ゝ`)プッ
329デフォルトの名無しさん:2010/09/02(木) 23:38:13
>>326
Comparatorはクラスじゃなくてインターフェースだしequalメソッドなんか
無いしequalsメソッドはComparator自身を比較するものであって他の何かを
比較するものじゃないからそんな用途には使えない。
http://java.sun.com/javase/ja/6/docs/ja/api/java/util/Comparator.html
330デフォルトの名無しさん:2010/09/02(木) 23:57:29
おまえらいい加減定期的に出てくる一行レス荒しだということに気づけ。
331デフォルトの名無しさん:2010/09/03(金) 00:45:34
いいかおまいら
equalsメソッドを実装したら、hashCodeも実装しないとダメだぞ?
話はそれからだ
332デフォルトの名無しさん:2010/09/03(金) 05:55:29
荒らしに全力で回答するのがオレのジャスティス!

これでも使え。
つ org.apache.commons.collections.Predicate
333デフォルトの名無しさん:2010/09/03(金) 07:08:03
>>328
すこしはジャ場を勉強したら?
なんか寒いよ
334デフォルトの名無しさん:2010/09/03(金) 07:21:19
ホームページへの大量アクセス事件 岡崎市立中央図書館の弁明に異論相次ぐ
J-CASTニュース 9月2日(木)21時12分配信

報道によると、男性は3〜4月、自作プログラムを使って、新着図書のリストに自動的にアクセスして、それをコピペすることを14日間3万3000回繰り返していた。これがサイバー攻撃とみなされたわけで、名古屋地検岡崎支部が6月、男性を起訴猶予処分にしていた。
ところが、男性がアクセスしたのは、1秒間に1回程度だったため、ソフトに詳しいネットユーザーらを中心に、男性逮捕への疑問が相次いだ。

中央図書館の総務班では、「ソフトの不具合については、認識していません」
「通常の利用ではないから、ああいう事態が起こったということです。うちとしては、通常の利用しか想定していません」
「メーカーに聞かないと分かりませんが、うちのソフトに不具合があったとは聞いていません。メーカーは、ちゃんと対応したと思っています」
「うちは図書館でありシステム会社ではないので、専門的なことはわかりません。大量アクセスについては、メーカーで対応してもらっています。図書館の対応には、問題はないと思っています」と話した。

朝日の記事によると、ソフトを提供した三菱電機インフォメーションシステムズ(MDIS)
335デフォルトの名無しさん:2010/09/03(金) 10:23:23
>>306
そうですよね…
ありがとうございます。

とにかくバイトの変換系処理では常に文字コードを指定しないといけないですよね…
なんかコードがうるさくなっていやですが仕方ないですね…
336デフォルトの名無しさん:2010/09/03(金) 11:20:23
ComparatorはClosure的な使い方をするのがオシャレだと思う
337デフォルトの名無しさん:2010/09/03(金) 14:54:51
>>334
DB周りが糞で検索すると負荷が異常で舐め終わる前にタイムアウトしてエラー吐くシステムがどうしたって?
338デフォルトの名無しさん:2010/09/04(土) 00:40:30
Velocity使ってる画面でjQueryを使おうとしたら、$.()とかでエラー出るんですけどどうしたらええのん・・・?
339デフォルトの名無しさん:2010/09/04(土) 00:51:44
1.4.2のsun.rmi.transport.tcp.TCPTransport.javaのソースコードが見たいんですが、
どっからダウンロードすればよいですか?

SDKに付属のsrc.zipには入ってなかった。。。
というかそもそも、標準APIに入ってないsunパッケージって何なの?
340デフォルトの名無しさん:2010/09/04(土) 01:09:11
341デフォルトの名無しさん:2010/09/04(土) 03:37:57
波紋の絵を描きたいので少し教えて下さいませんか?
3D波紋のJavaというのを見かけました
あの波紋の高低差を地図のような灰色のグラデーションにして
自分のパソコン上で動かすにはどうしたらいいですか??
342デフォルトの名無しさん:2010/09/04(土) 04:00:10
なにいってんだおまえ
343デフォルトの名無しさん:2010/09/04(土) 07:51:31
http://up3.viploader.net/ippan/src/vlippan142316.jpg
↑こういう感じなんだ・・・
いや、波を3Dで作ろうとしたらうまくいかなくて
それでいろいろ検索したら3D波紋っていうのがあって
波紋を自分でシミュレーションしてみたくて・・・
344デフォルトの名無しさん:2010/09/04(土) 07:51:43
>>339
オラクルのJavaSE Downloadsのページからダウンロードできるだろ。
「Previous Releases」ってとこな。

買収後初めてSEのページ見に来たが、思いっきり日本語情報排除されてるなあ。
大丈夫なのか日本オラクル

SE1.6や1.7のAPI日本語化はとっくにボランティアベースに移行したんだっけ?
345デフォルトの名無しさん:2010/09/04(土) 08:01:23
>>341
import java.awt.*;import java.awt.image.*;class W{public static void main(
String[]a){new Frame(){int T=6,W=64,F=255,i,j;float r=1.414f;byte[]q=new byte[
W*W];float[]p=new float[W*W],v=new float[W*W];Image m;{byte d=(byte)-128;while
(i<F+1){q[j=((d++)&F)*3]=q[j+1]=(byte)i;q[2+3*i++]=(byte)F;}MemoryImageSource
s=new MemoryImageSource(W,W,new IndexColorModel(8,256,q,0,0<0),q,0,W);resize(W
*T,W*T);s.setAnimated(true);m=createImage(s);show();try{for(repaint();;Thread.
sleep(33)){for(i=W+1;i<W*W-W-1;i++){v[i]+=(p[i-W]+p[i-1]+p[i+1]+p[i+W]+(p[i-1-
W]+p[i+1-W]+p[i-1+W]+p[i+1+W])/r-p[i]*2*(2+r))/4;if(v[i]>1/32f)v[i]=1/32f;p[i-
W-1]+=v[i-W-1];q[i]=(byte)((p[i-W-1]-p[i])*F);}s.newPixels();}}catch(Exception
e){}}public void update(Graphics g){g.drawImage(m,0,0,W*T,W*T,this);}public
boolean mouseDown(Event e,int x,int y){v[x/T+y/T*W]-=.5;return 0<1;}};}}
346デフォルトの名無しさん:2010/09/04(土) 08:09:12
public boolean mouseDown(Event e,int x,int y)

ほんとかよw
347デフォルトの名無しさん:2010/09/04(土) 09:19:48
>>343
3D波紋でぐぐって一番最初にでてきたのは、いわゆるwater effectだね。
water effectなら、ぐぐれば幾らでもソース出てくると思う。
348デフォルトの名無しさん:2010/09/04(土) 12:10:41
349デフォルトの名無しさん:2010/09/04(土) 12:53:18
350デフォルトの名無しさん:2010/09/04(土) 16:05:03
特定のフォルダから.jpgのファイルのリストを表示しようとしています。

この.jpgのファイルのファイル名一覧を作成するにあたって
listFiles()を使用してそのフォルダ内の全ファイルのFileをループで判別して行っても良いのですが、
勉強としてはFilterを使ってみたいと思い調べたところ。

list(FilenameFilter filter)

を使用して .jpg だけtrueを返すFilenameFilterを実装れば良いかと思ったのですが、
FilenameFilterだとファイル名での判別しか出来ないので、xxx.jpg と言うディレクトリがあればそれも含んでしまいます。

かと言って、

listFiles(FileFilter filter)

だと、戻りがFile[]なので結局、その配列をループでまわして
files.getName()
とかやる事になると思っており、当初のループで組んでも変わらないダサさな気がします。

何故、
list(FileFilter filter)
が無いんだろう。。。

無いから無いと言われてしまえばそれまでですが、もっとすっきり書ける方法があるのでしょうか?
351デフォルトの名無しさん:2010/09/04(土) 16:27:55
list(FilenameFilter) だって戻り値 String[] じゃね
352デフォルトの名無しさん:2010/09/04(土) 18:46:21
javaで作られたちゃんと構文のある(lisp系やstack系以外)言語って何がありますか
ソースコード参考にしたいので、
C言語のサブセットぐらいのを探しています

Jthon/JRuby/Quercus ちょっと大きすぎる
djava リンク切れ
prolog prologがわからない
ttp://www.okisoft.co.jp/esc/prolog/in-java.html
353デフォルトの名無しさん:2010/09/04(土) 21:54:10
今からプログラム勉強したいんだけどjavaとjavascriptのどっちを学んだらいいの?

簡単さとか実用性を重視してほしいです。
354デフォルトの名無しさん:2010/09/04(土) 23:05:43
簡単さならJavaScript、実用性ならJava

JavaScript
 開発環境が不要、コンパイル作業不要
 基本的にはブラウザ上じゃないと動かない(ほんとは違うが)
 変数に何でも入れられる、ゆるい感じ
Java
 開発環境のインストール作業が必要
 プログラムを書くごとにコンパイル作業をする必要がある
 変数には型があり、決まったものしか入らない、堅い感じ
 単体で動くソフトウェアが作れる

どちらもオブジェクト指向言語
JavaScriptのオブジェクトはしょぼいがJavaのほうはしっかりしてる
JavaScriptは関数型言語的にも使える。Javaは次のバージョンで対応するかもしれない
355デフォルトの名無しさん:2010/09/04(土) 23:12:50
>>345
ごめんなさい。
まず何をどうすればいいですか?
・・・・OTL

>343
water effectでググったけど何が何だか・・・
まずは何をどうすればいいですか
・・・OTL
356間違えたので書き直します:2010/09/04(土) 23:15:00
>>355=>>343=>>341
>>345
ごめんなさい。
まず何をどうすればいいですか?
・・・・OTL

>347
water effectでググったけど何が何だか・・・
まずは何をどうすればいいですか
・・・OTL
357デフォルトの名無しさん:2010/09/04(土) 23:33:39
Javaでウインドウ出して波を描画したいの?
それともアプレット?

つかJavaでプログラミングの知識どれくらいあんのあ?
358デフォルトの名無しさん:2010/09/05(日) 00:42:06
質問内容から見ても初心者だろうね。
359341:2010/09/05(日) 01:16:31
Javaのプログラミングの知識はまったくありません。
プログラミングはビジュアルのつかないCとBASICをかじった事があるだけです。

>Javaでウインドウ出して波を描画したいの?
>それともアプレット?
この二つの違いすらわかりません。
360デフォルトの名無しさん:2010/09/05(日) 01:37:05
波紋みたいな表現をどう使えるようにしたいのか具体的に書けば、
何をどう勉強して何ヶ月くらいかかるかくらいは教えてやれるぞ
361デフォルトの名無しさん:2010/09/05(日) 05:20:27
変なマスクでもつけるのかな
362デフォルトの名無しさん:2010/09/05(日) 05:25:30
虎のマスクがいいな
363デフォルトの名無しさん:2010/09/05(日) 05:35:48
水をプリンのように固めたいんです!
364341:2010/09/05(日) 10:00:55
http://up3.viploader.net/ippan/src/vlippan143277.jpg
えーと白黒画像から標高差を判断して3D化してくれるソフトがあって
それを使って水の波紋を作りたいんです。
右のカラーの画像が以前作ったけどうまく波紋が作れなかった画像です。

その白黒画像データを作りたいんです。
365デフォルトの名無しさん:2010/09/05(日) 12:25:56
 _, ,_
( ゚д゚ )
366デフォルトの名無しさん:2010/09/05(日) 13:25:40
日本語の勉強からやり直してきてくれ
367デフォルトの名無しさん:2010/09/05(日) 13:37:02
白黒画像から標高差を判断して3D化してくれるソフトで作った水の波紋の画像を
白黒画像にしたいってこと?
368デフォルトの名無しさん:2010/09/05(日) 13:57:19
// とりあえずこの↓メソッドで得られたColorで全ピクセルを埋めろ。
// フォトショかなんかでこれを回しながら3回イメージコピーすれば完成
// RATIOが1.0だと100px15Hzぐらいの波紋だろうから適当に調整

Color getPixColor(int x, int y){
 double distance = Math.hypot(x, y);
 double power = Math.sin(distance * RATIO);
 float rgb = (float)( (power+1.0) / 2.0 );
 return new Color(rgb, rgb, rgb);
}
369デフォルトの名無しさん:2010/09/05(日) 14:00:19
heightmapがほしい、でいいのか?
ぐぐれば出てきそうな感じもするけど。
370341:2010/09/05(日) 14:02:37
えーと、うまく説明できなくてごめんなさい。

Javaでしたいこと:
3D波紋(Javaでいいのかな)かなにかで波の形をシミュレートさせて
シュミレート結果の高低差を白黒で表示させて
スクリーンショットか何かで白黒画像を保存したい


使用目的:
白黒画像から標高差を判断して3D化してくれるソフトで
3Dの水の波紋をつくる

です。すいません

371デフォルトの名無しさん:2010/09/05(日) 14:06:03
シミュレートとシュミレートの違いは?
372341:2010/09/05(日) 14:07:09
シミュレートが正しい言い方でシュミレートは間違いです
373デフォルトの名無しさん:2010/09/05(日) 14:11:45
ImageMagic使え
終了
374デフォルトの名無しさん:2010/09/05(日) 14:21:51
>>370

>3D波紋(Javaでいいのかな)かなにかで波の形をシミュレートさせて

まずこれだけやってみたら?
375デフォルトの名無しさん:2010/09/05(日) 14:24:52
波の画像用意して3Dでプロット・・・かね
376デフォルトの名無しさん:2010/09/05(日) 15:50:35
ゲームを作ってるんだけど、

while(){
描画
thread.sleep
}

で描画が終わる前にスリープしちゃうのを直すにはどうすればいいですか?
377デフォルトの名無しさん:2010/09/05(日) 17:02:33
アクティブレンダリングでぐぐってみるとか
378デフォルトの名無しさん:2010/09/05(日) 17:17:22
助かった
379339:2010/09/06(月) 13:01:55
>>344

「Previous Releases」ってとこは当然分かってるけど、
TCPTransport.javaは見つからない。。。
380デフォルトの名無しさん:2010/09/06(月) 18:33:34
>379
てけとーな回答でスマンかった。本当に1.4以前のソース(VMとかのソースも入ってる奴ね)が
見つからないや。
どうなってんだOracle。
381デフォルトの名無しさん:2010/09/06(月) 20:13:12
>>380
OpenJDKできたから、1.4とかのSCSLで公開してたのってやめたんじゃなかったっけか?
Oracle前からダウンロードできなくなってた気が……
382デフォルトの名無しさん:2010/09/06(月) 22:33:28
Exceptionって Serializable だけど、
これって、例外をチェーンすると内部的に使用している例外も漏洩するってこと?
つまり、互換性を維持しようとすると、
内部で使用しているだけのプライベートな例外クラスも変更できなくなるってこと?
しかし、これを嫌ってチェーンをしないと、スタックトレースが途切れて間違いの出所が分からなくなるし。
それとも、例外に関しては普通はSerializable関係の互換性は保たなくてOKなの?
383デフォルトの名無しさん:2010/09/06(月) 23:37:04
何語かよく分からんかったがソースうpってる海外サイトあるぞ。
解説付で・・・。
384デフォルトの名無しさん:2010/09/07(火) 00:08:39
>>382
Serializableだからといって何が何でも互換性を保たないといけない理由はないぞ。
ネットワーク越しの相手がいるときとか、オブジェクトを二次記憶に格納してるときといった、
バージョンをまたいでデータ構造を維持しないといけないときだけで、生存期間がプロセス
の寿命以下であることが明らかなら全く気にする必要はない。
385デフォルトの名無しさん:2010/09/07(火) 08:29:22
シリアライズ対応してない例外クラスを自動認識したコンパイラが
警告出すこともあるのが気分悪いんだよなー。

なので、例外クラス定義の前に

@SuppressWarnings("serial")

を入れとくのが吉。
386デフォルトの名無しさん:2010/09/07(火) 12:40:26
アーキテクチャから見直すべきレベルのシステム
Javaだからどうこうという話ではない
387デフォルトの名無しさん:2010/09/07(火) 19:23:49
>>382
例外を永続化する奴なんてそうそういないと思うし、あれはリモートコールとかしたときに
サーバ上で発生した例外をクライアント側に送って投げなおしたりするためのものかと思いますよ
388デフォルトの名無しさん:2010/09/07(火) 19:36:48
Hoge hoge = new Hoge();
Graphics g = hoge.getGraphics();
g.dispose();
hoge.dispose(); //エラー

hogeの方の開放はどう行えばいいのでしょう。
389デフォルトの名無しさん:2010/09/07(火) 19:40:51
行わなくてよいです。
390388:2010/09/07(火) 19:52:45
>>389
頻繁に使うメソッドとかだと気になってしまいます。
これまではstaticやシングルトンでやっていたんですが、
通常のやり方でやってみたく質問しました。
391デフォルトの名無しさん:2010/09/07(火) 20:19:33
何もせずに放置しておき、GCに任せるのが通常のやり方です。
凝ったやり方は、Hogeがなにか非常に巨大だとか、複雑な処理が必要で構築に時間がかかるだとかいった、特別な事情がある場合だけでよいです。
392388:2010/09/07(火) 20:38:26
>>391
まだそこまで進んでいませんが、
画面のスクロールの時のバックバッファとか心配です。

その凝ったやり方というのはどうやればいいのでしょう。
System.gc()やSystem.runFinalization()ぐらいしか見つかりませんでした。
GCにこのオブジェクトは必要ないと教えられれば、
その後のgcとかが有効になりそうですが。
393388:2010/09/07(火) 21:16:16
連書きすみません。
nullを代入するのが、簡単で有効なやり方みたいですね。
確実ではなくても、破棄の優先度は上がってくれるみたいです。
394デフォルトの名無しさん:2010/09/07(火) 21:27:44
典型的な間違い
395388:2010/09/07(火) 22:35:07
>>394
確保や破棄に負担がかかるからでしょうか。
↓のFoo.rand()でbarにnullを代入しなければ、
Foo.rand()の2回目以降の呼び出しでは、
1回目にnewしたBarが使いまわされ、負担が少ないとかでしょうか。

public Hoge(){
 Foo foo = new Foo();
 foo.rand();
 foo.rand();
}

public class Foo{
 public int rand(){
 int r;
 Bar bar = new Bar();
 r = bar.rand();
 //bar = null;
 return r;
}}
396デフォルトの名無しさん:2010/09/07(火) 22:49:19
なにがしたいんだ?
397デフォルトの名無しさん:2010/09/07(火) 23:27:51
よくhogeとかhageとかクラス、メソッド名で使うけどふざけてるんですか?
398388:2010/09/07(火) 23:30:42
>>396
始めはC系でのfreeやdeleteをjavaではどうやるか知りたかったです。
ただそれはなく、null代入で擬似的になら行えるっぽいのですが、
>>394氏のそれによる副作用的なのが分かりません。

>>395のは同じクラスを頻繁にnewする場合の例で、
後処理にnullを代入するのとしないので、どう変わるかという質問です。
Barをnewした時、前のがあるならnewせず、負担が減るとか想像しました。

newで作られ続けるなら、nullで削除し続けるのと負担回数は変わらないので、
ならメモリ使用量の減る、削除をし続けるnull代入の方がいいかなと思いました。
399デフォルトの名無しさん:2010/09/07(火) 23:34:29
nullを入れるとjavaではガーベジコレクションされるよ
あと変数を値渡しか参照渡しのどちらかしたあととか
正直参照渡しと値渡しの違いはわかるけどどういうときがどっちになるかいまいちわからん
400388:2010/09/07(火) 23:38:37
>>397
すみません、Hoge>Foo>Barと呼び出し順を表す意味もありました。
ちゃんとした名前の方が少しは分かりやすかったかもしれません。

>>398
間違えました、nullで削除し続けると、
newで作られ続ける分と合わせて2倍になりますね・・
401デフォルトの名無しさん:2010/09/07(火) 23:39:12
そろそろうざい
402デフォルトの名無しさん:2010/09/07(火) 23:40:49
Javaではメモリのことは考えないでいいよ
リークしたら再起動すればいいし
403388:2010/09/07(火) 23:45:10
すみません、さらに長引きそうなのでスレを立ててそちらでやります。
教えてくださった皆様、ありがとうございました。
404デフォルトの名無しさん:2010/09/07(火) 23:52:21
>>402
長時間使うアプリだと命取りになるよ。
full gcが延々と動き続けてアプリが動かなくなる。

Apache Axis2がメモリリークしてて、
それに気付くまでどれだけ苦労したことか…
405デフォルトの名無しさん:2010/09/08(水) 07:07:11
↓のSQLite 使うとき「コネクション単位でスレッドセーフ」ということなん
ttp://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC
だけど、これの意味するところは Connection オブジェクトをスレッド間で
共有しなければスレッドセーフという解釈でいいんでしょうか?
要はThreadLocalでConnection持てば無問題と?
406デフォルトの名無しさん:2010/09/08(水) 11:27:32
読んでないけどその解釈でいいと思います
使うたびに接続・切断するとか、グローバルなコネクションプールを作るとかいった方法の方が一般的な気もしますが
ThreadLocalにするなら状況にもよるでしょうけれどSoftReferenceで包んだ方がいいかもしれません
DB使わなくなってもそのスレッドが生きてる限り接続しっぱなしで残り続けるのはあまり嬉しくないので
ThreadLocal<SoftReference<Connection>> みたいな感じで
407デフォルトの名無しさん:2010/09/08(水) 16:59:08
String,Date,Integer等、基本型のクラスを含んだHashMapのシリアライズ、デシリアライズは
JDK1.1〜1.6の間で問題なくデータ交換できるでしょうか?
408デフォルトの名無しさん:2010/09/08(水) 17:04:14
>>407
JDK1.1にはHashMapないから無理。
409デフォルトの名無しさん:2010/09/08(水) 17:42:50
javaって数値計算から自然言語処理まで
ありとあやゆる分野のlibraryがそろってるけど
なんでこんな充実してるの?

Cとperlに次ぐ豊富さだよね
410デフォルトの名無しさん:2010/09/08(水) 17:57:40
>>408
1.2〜1.6は問題ないですかね?
またこれからの1.7以降の保障はされるのでしょうか?
411デフォルトの名無しさん:2010/09/08(水) 21:58:01
>>410
HashMapクラスのserialVersionUID調べたら?
412デフォルトの名無しさん:2010/09/08(水) 22:16:49
>>407
とりあえず「基本型」とやらの内訳を出してもらおうか。
Threadの復元とかは無理だよ?
413デフォルトの名無しさん:2010/09/09(木) 06:49:47
javaでのアルゴリズムを学ぶのにオススメの本は無いでしょうか?

java+アルゴリズムと題名に入ったものはけっこうたくさんあるようですが・・
414デフォルトの名無しさん:2010/09/09(木) 07:11:08
明解Javaによるアルゴリズムとデータ構造
柴田望洋
出版社: ソフトバンククリエイティブ
415デフォルトの名無しさん:2010/09/09(木) 10:38:20
>>412
基本型改め、以下のクラスです。

・プリミティブに対応するクラス
・String
・ArrayList ※中味はここで上げたものしか含まずを想定
・MashMap ※中味はここで上げたものしか含まずを想定
・Date
416デフォルトの名無しさん:2010/09/09(木) 13:24:28
ArrayListとHashMapは1.2から。
それ以外にも基本的なレベルから隔たりがありすぎるので、さすがに1.1は切るしかない。
417デフォルトの名無しさん:2010/09/09(木) 14:50:03
>>415
Date, ArrayList, HashMap は writeObject の仕様が明記されてるから、
それにそった実装になってれば大丈夫なはず。
プリミティブ型のラッパは値一個しかもってないから問題出る可能性極めて少ない。
Stringは特別扱いでシリアライズ機構自体がStringのシリアライズ、デシリアライズを保障する。
そうでないとクラス名すら通らなくなる。
418デフォルトの名無しさん:2010/09/09(木) 18:22:01
Javaでselectが使えるようになったみたいですが、
selectで外部プロセスと通信(tcpやudpやunixドメインソケット)するだけでなく、
同一プログラムのthread間の通信も行うことできますか?

あるスレッドで外部との通信と他スレッドからの要求を、いっしょに処理できると
すごくプログラミングが楽になるのですが、なかなかjavaのselectの仕様が難しくて。

参考になるサイトかサンプルがあったら教えてください。
419デフォルトの名無しさん:2010/09/09(木) 18:33:46
Vector, Hastableを使えば問題ない。
java1.1からあるけど、別に遅いってわけでも使いにくいってわけでもない。
たまにVectorにめくじらたててる人がいるけど、そういう人に限って実際は癖でStringBufferばかり使ってStringBuilder使ってないし。
420デフォルトの名無しさん:2010/09/09(木) 18:50:18
>>414

ありがとうございます。amazonでも評価高いみたいですね
購入を検討します
421デフォルトの名無しさん:2010/09/09(木) 18:56:30
>>418
そもそも unix ドメインソケットは作れないので tcp と udp しかないけど、まぁできますよ
およそこんな感じです

SelectorProvider provider = SelectorProvider.open();
Selector selector = provider.openSelector();
SocketChannel channel = provider.openSocketChannel();
channel.connect(new InetSocketAddress("localhost", 12345));
channel.configureBlocking(false);
channel.register(selector, SelectionKey.OP_READ | SelectionKey.OP_WRITE);
for (;;) {
selector.select();
Set<SelectionKey> keys = selector.selectedKeys();
for (SelectionKey key: keys) {
Channel c = key.channel();
if (key.isReadable()) { c.read( ... ); }
if (key.isWritable()) { c.write( ... ); }
}
keys.clear();
}
422デフォルトの名無しさん:2010/09/09(木) 20:29:34
引数チェックにおける例外とアサーションの使い分けがわかんね
原則、public method の引数チェックには例外を使うというのは理解できるのだが

あるメソッドへの委譲メソッドが多くある場合は、
委譲先が private でもそこで引数チェックしないとコード中が引数チェックばっかりになる。

また、コンストラクタ等で防御的コピーを行う場合は、
コピー後にチェックしないとダメだけど(したがって、コピー前のチェックは無意味だけど)
コンストラクタまで引数チェックができないってことになると
public methodの境界で例外による引数チェックを行えば十分て話ではなくなる。
かといって、
「もう防御的コピーしてチェックしましたから、コンストラクタではそのままフィールドに入れて使ってね」
などということをすると、オブジェクトの整合性を保つためにクラスの外の協力が必要になることになり、
何のためのオブジェクト指向なのか良く分からない。

また、private なクラスだからといって、コンストラクタでアサーションを使っていると、
extends して publicにされた場合、親クラスのコンストラクタの前に例外によるチェックを入れるのが難しい
(そもそも、防御的コピーしてたら無駄)。
かといって、内部でしか使わないと分かっているちょっとしたクラスに対して
わざわざ例外によるチェックを入れるのも、馬鹿らしいほど無駄な作業に思えてくる。
拡張可能なパッケージプライベートのクラスのコンストラクタは、
そのパッケージ内で終始するのか、publicなサブクラスを作るかを決めないと
どっちを使えばいいのか判断できないってことか?

また、内部的にしか使わないprivateなinterfaceはその引数はpublicだが、
原則に従うと、その実装では例外による引数チェックが必要なのか?

臨機応変にチェックの方法を変えればいいということになると、
例外によるチェックがロジックの経路にちゃんと入ってるかどうかを手続き的に判断するって
難しいし、それって何てオブジェクト指向?もう、わけわかめ
423デフォルトの名無しさん:2010/09/09(木) 20:45:33
public class Calculate
{
public static void main(String [] args)
{


System.out.println("あ");
System.out.println("り");
System.out.println("が");
System.out.println("と");
}
}

できました
424デフォルトの名無しさん:2010/09/09(木) 21:03:23
>>422
にほんごでおけ
425デフォルトの名無しさん:2010/09/09(木) 23:36:26
>>421

サンキュウです。
thread間でもtcp/udpになるんすか...

C、というかUnixならプロセス間やスレッド間でもpipe使って通信できるし、
それを受けるのはselectで統一出来るんですけどねえ。

Javaでメッセージパッシング的なプログラミングってどうやるんだろ?
スレッド間、他プログラム間で縦横無尽にメッセージを送り合うようなプログラム。
426デフォルトの名無しさん:2010/09/10(金) 09:13:24
Java SEにアプリケーション間通信の仕組みあったっけ?
427デフォルトの名無しさん:2010/09/10(金) 09:59:11
>>406
ロングパスですがありがとうございます。
SoftReference ってものがあるんですねぇ
428デフォルトの名無しさん:2010/09/10(金) 10:17:41
>>425
スレッドAは専用のLinkedBlockingQueueを持ち、そこからメッセージを受け取って、何か処理をする
スレッドBはソケットからデータを受信し、それをJavaのメッセージに変換してスレッドAのLinkedBlockingQueueに放り込む
スレッドCは専用のLinkedBlockingQueueを持ち、スレッドAとかからメッセージを受け取りバイト列に変換してソケットから送信する

これでいいと思います
429デフォルトの名無しさん:2010/09/10(金) 13:17:11
Javaアプリで質問です。
最初にmainの中で作るアプリ本体の
インスタンスは、どういう理屈で
GCの対象とならないのでしょうか。
ググっても見つけられません。
430デフォルトの名無しさん:2010/09/10(金) 13:26:12
実行中のスレッドのローカル変数 (thisとか) から辿れると思います
431デフォルトの名無しさん:2010/09/10(金) 13:50:57
「アプリ本体」ってのがなんだか解らんが
GC-rootからJFrameまで、どうオブジェクト参照が繋がっているのかという話かな。

デーモンスレッド → イベントディスパッチャ → JFrame

とこんな繋がりじゃないかな。

デーモンスレッド全部殺せばJFrameも回収されるよ、たぶん。
432デフォルトの名無しさん:2010/09/10(金) 13:52:14
javaファイルからクラス図とシーケンス図を生成したいのですが
どんな手段が考えられますか?

クラス図の場合
クラス名やメソッド名はリフレクションで取得できそう。
ただ、関連の取得をどうすればいいのかわかりません。
433デフォルトの名無しさん:2010/09/10(金) 14:02:49
フィールドの名前と型もリフレクションで取得できるのでそれを関連ということにすればいいと思います
シーケンス図は実際に動作させたものをトレースするんでもなければかなり無理があるかと
434デフォルトの名無しさん:2010/09/10(金) 14:07:47
>>433
ありがとうございます。
確かにフィールド取得すれば集約の関係はできそうですね。
シーケンス図は字句解析して構文解析してがんばらないと難しそうですかね。
435デフォルトの名無しさん:2010/09/10(金) 14:17:26
>>426
ServerPort
436デフォルトの名無しさん:2010/09/10(金) 14:30:38
>>434
バイトコードインストゥルメンテーションの手法を使って各メソッドの入口と出口にログを埋め込み、
それを実際にJavaVM上で実行して、得たログから図を描けばいいんじゃない
437デフォルトの名無しさん:2010/09/10(金) 14:39:13
>>436
バイトコードインスツルメンテーションという手法があるのですか。初めて聞きました。
JavaVM上で実行してログを取るというのでイメージがつかめました。ありがとうございます。

ちょっとぐぐってきます。
438428:2010/09/10(金) 19:14:24
こういう例です。
http://allabout.co.jp/gm/gc/80716/
インスタンスを生成したあと
mainは抜けてしまいますが、
何故GCはsampleappのインスタンスを
回収しにかからないのでしょうか。
439429:2010/09/10(金) 19:15:25
428ではなくて429です。すみません。
440デフォルトの名無しさん:2010/09/10(金) 19:39:48
JFrameをsetVisible(true)で表示した時点で、そのJFrameインスタンスはAWT/Swingの中から参照されるようになるから
システムの中からであろうと参照されている限り回収されない
441デフォルトの名無しさん:2010/09/10(金) 21:12:05
なるほど...SwingやAWTですか。
ありがとうございます。
442デフォルトの名無しさん:2010/09/11(土) 00:21:43
>>426
RMI
443デフォルトの名無しさん:2010/09/11(土) 00:36:16
インタフェースに記述された契約のうち、メソッドが返すオブジェクトに対する契約について、
それを呼び出した側は、その契約が守られていることを盲目的に信じていいの?
たぶん、そんな楽観的なことはダメだと思うが、呼び出し側は自分を守るためにどう対処すればいいの?
AssertionErrorでも投げておけばOK?

例えば、ThreadFactoryのnewThreadメソッドはnullを返す可能性があることが明示されているが、
もし、これが必ず何らかのThreadを返すという契約だった場合、
これを使う側は、そのメソッドの返却値に対して、
盲目的にnullでないと考えて、例えばそのままスレッドプールの中に入れて良いのか、
(契約で縛っているのに)nullチェックをするべきなのか
そしてnullチェックをした場合に契約が破られていることを発見した場合どうするのか。

ワーニングでもログに残して何事も無かったかのように処理が進めるように使う側を設計するのか
(契約しているのに縛っているのに!)。
RuntimeExceptionの何らかのサブクラスでも投げるか。
でも、RuntimeExceptionのサブクラスなら、それを投げる可能性のあるメソッドは
それを契約として明示しておく必要があると思うが、
内部ロジックの深いところでnewTheradメソッドが使われていた場合、
例外の記述を発生する可能性の経路をたどって金太郎飴のように複数のメソッドの対して記述するの?
それも馬鹿馬鹿しいから、Errorのサブクラスでも投げておけばいいのかな。
444デフォルトの名無しさん:2010/09/11(土) 01:11:22
にほんごでおけ
445339:2010/09/11(土) 02:46:37
>>383
どこそれ?
446デフォルトの名無しさん:2010/09/11(土) 03:14:27
>>443
どのぐらい堅固にしたいかによる。
すべての可能性を追っていたらdでもないことになる。
447デフォルトの名無しさん:2010/09/11(土) 12:42:17
RubyのRailsみたいなフルスタックWebアプリフレームワークってJavaにはないですかね?
448デフォルトの名無しさん:2010/09/11(土) 15:00:11
groovyのGrailsは?
449デフォルトの名無しさん:2010/09/11(土) 15:16:46
Spring Roo
450デフォルトの名無しさん:2010/09/11(土) 16:17:05
>>447
Play!
451デフォルトの名無しさん:2010/09/11(土) 17:48:08
なんでJavaのフレームワークについて聞いてる人にGroovyとか言っちゃうの
452デフォルトの名無しさん:2010/09/11(土) 17:50:30
いや
もう.NETでいい
453デフォルトの名無しさん:2010/09/11(土) 22:36:44
>>449-450
どちらかに絞ってください
454デフォルトの名無しさん:2010/09/12(日) 02:46:38
Spring Rooってフルスタック?
455デフォルトの名無しさん:2010/09/12(日) 11:00:10
AWTでFrameにFrameをaddしてもFrameの中に子Frameが作られないで
独立して親Frameに束縛されないで子Frameが表示されるんだけどバグなの?死ぬの?
456デフォルトの名無しさん:2010/09/12(日) 11:42:18
>>455
http://java.sun.com/javase/ja/6/docs/ja/api/java/awt/Container.html#addImpl(java.awt.Component,%20java.lang.Object,%20int)
> IllegalArgumentException - ウィンドウをコンテナに追加しようとしている場合
457455:2010/09/12(日) 12:55:22
>>456
なるほど・・・d

でもこれって継承関係上すごい気持ち悪いな・・・

お前Componentじゃん?!Componentじゃん!!
458デフォルトの名無しさん:2010/09/12(日) 15:09:17
バグなの?死ぬの?
お前Componentじゃん?!Componentじゃん!!
459デフォルトの名無しさん:2010/09/12(日) 18:21:16
>>454
Spring Framework + Roo
460455:2010/09/12(日) 18:26:10
Java Java Java Java♪
461デフォルトの名無しさん:2010/09/13(月) 15:45:51
>>459
Spring Framework と Roo はどういう関係?
あとSpring Frameworkにもいろいろあるよね?
462デフォルトの名無しさん:2010/09/13(月) 18:44:41
463デフォルトの名無しさん:2010/09/13(月) 18:47:46
文法→GUI→テトリスやマリオっぽい何か→デザインパターン

と勉強してきて、次に取り組むべきもん面白いもんを何か頼む
464デフォルトの名無しさん:2010/09/13(月) 19:56:36
ネットワーク
RSSリーダーとかどう
新しいニュースがあったら画面の上らへんにテロップ流してくれるようなの
465デフォルトの名無しさん:2010/09/13(月) 20:43:14
GWTかAndroidアプリ開発とかどうでしょ
466デフォルトの名無しさん:2010/09/13(月) 22:15:00
物理シミュレーション
467デフォルトの名無しさん:2010/09/13(月) 22:35:22
検索エンジン
468デフォルトの名無しさん:2010/09/13(月) 23:23:30
>>463
ライブラリ集めて自分でフレームワーク作るとか。

凝り性の人は結構はまる。
469デフォルトの名無しさん:2010/09/13(月) 23:26:27
try-catchについて質問します。
以下の場合、A()の中で、BExceptionが発生した場合、
Aの処理がされるのでしょうか?
A()でthrows AExceptionと指定して、AException以外が起きた時の動作が
知りたいのです。

public static void main(String args[]) {
 try {
  try {
    A();
   } catch (AException) {
     System.out.println(A); …@
   }
  } catch (BException) {
   System.out.println(B); …A
 }
}

public void A() throws AException {
...
}
470デフォルトの名無しさん:2010/09/13(月) 23:39:38
>>469
A()でBExceptionが発生すればAを通るだろ。
「throws AException」の意味についてはチェック済み例外、非チェック例外でググレ
471469:2010/09/13(月) 23:48:47
>>470
ありがとうございます。
ググってみました。
感謝します。
472デフォルトの名無しさん:2010/09/13(月) 23:51:40
Javaフレームワーク開発入門 [大型本]
木村 聡 (著)

この本どう?
フレームワークに興味あって本を漁ろうにも
古いのばかりだったりで・・・。
473デフォルトの名無しさん:2010/09/13(月) 23:59:37
javaでファイルに参照ロック、および更新ロックをかける方法ってありますか?
474デフォルトの名無しさん:2010/09/14(火) 00:02:25
>>472
イラストの女の子がこわい
475デフォルトの名無しさん:2010/09/14(火) 00:23:22
amazonでサンプル見れるね。
リアル系なんだか萌えなんだかよく分からん絵がらだな。
476デフォルトの名無しさん:2010/09/14(火) 00:26:47
>>472
その本は自分も興味あるなあ
経験者の評価が聞きたいな。
477デフォルトの名無しさん:2010/09/14(火) 00:38:16
アーキテクトしてるけどamazonnのサンプル見た限りは良さそう。
基本的なレベルから説明してるから、新人に読ませたいな。
経験者にとっては当たり前すぎる内容で微妙だとおもた。
478デフォルトの名無しさん:2010/09/14(火) 00:50:11
おれも係長補佐代理見習いやってる
479デフォルトの名無しさん:2010/09/14(火) 00:52:25
俺サブリーダーやってる。
合計二名のプロジェクトだけどな!
480デフォルトの名無しさん:2010/09/14(火) 01:09:43
API仕様を見てて思ったのですが、Javaでサイズの大きなファイル(2GB以上)を扱う場合、
ランダムアクセスは無理(intの正値で絶対アドレスを指定する必要があるから)で、
シーケンシャルアクセスなら一応OSやファイルシステムの制限に引っかかるまで読める、
って認識であってますか?
481デフォルトの名無しさん:2010/09/14(火) 04:28:09
FileChannel#position(long)とか
482デフォルトの名無しさん:2010/09/14(火) 07:37:54
フレームワークって何?

あとEffectiveJAVAと独習JAVAって内容似てるの?
483デフォルトの名無しさん:2010/09/14(火) 08:46:49
RandomAccessFile#seek(long) だって int の制限にはひっかからんし。

実際問題、int の制限に引っかかるのって、
MappedByteBuffer でメモリマップドファイル使うときぐらいだと思うが。
FileInputStream が markSupported() で true 返す場合は
mark(int), reset() skip(long) で擬似ランダムアクセスする時も int の制限にひっかかるかも? と思うぐらいで。
もっとも FileInputStream#markSupported() で true 返す実装って見た事ないけど。
484デフォルトの名無しさん:2010/09/14(火) 09:57:24
480が何のクラスのAPI仕様を見てたのかが気になるな
485デフォルトの名無しさん:2010/09/14(火) 10:02:57
FileChannelとnio.Buffer使ってコーディングしてるんだけど、
FileChannel.MapModeで取得したFileChannelとBufferを参照渡しして
渡した先でposition操作しても、渡し元には反映されないのね。
ByteBuffer.allocateを使った場合はそんなことないのに。
486デフォルトの名無しさん:2010/09/14(火) 10:17:08
単純にどこかでミスっただけだろ。
487211:2010/09/14(火) 10:30:25
はい
488デフォルトの名無しさん:2010/09/14(火) 11:08:06
>>485はポインタとインスタンスの概念がわかってない
489デフォルトの名無しさん:2010/09/14(火) 12:40:09
>>488
kwskおながい。
MapModeでバッファをマッピングする場合と
allocateでバッファを確保する場合の挙動の違いに
悩みまくり。

490デフォルトの名無しさん:2010/09/14(火) 13:01:10
>>464>>468

フレームワークの本探してみる、ども
491デフォルトの名無しさん:2010/09/14(火) 13:18:47
>>489
そういうのを知りたいならCをちゃんとやれ
492デフォルトの名無しさん:2010/09/14(火) 13:47:26
>>489
なにがわからないのか最小のコードで示してみれ
493デフォルトの名無しさん:2010/09/14(火) 18:45:41
情報系の専門学校ってJAVAに力を入れてるところがほとんどだって聞いたんだけど、
卒業するまでに何をやるの?何が出来るようになるの?
494デフォルトの名無しさん:2010/09/14(火) 19:09:56
>>493
学校による
495デフォルトの名無しさん:2010/09/14(火) 19:12:03
専門なんて>>494みたいな知恵遅れしかいない
496デフォルトの名無しさん:2010/09/14(火) 21:24:33
すみませんが、お知恵を。
javaで起動するプログラムがあって、同時に実行できるのは1つにしたい場合、
どのようにしたらいいのでしょうか?
どっかにlockファイルみたいのを作って、それがあったら起動しないとかって
手法ですかね?
環境はLinux、winを想定しています。

他になにかあったら教えていただきたいです。
497デフォルトの名無しさん:2010/09/14(火) 21:29:57
シングルトン
498デフォルトの名無しさん:2010/09/14(火) 21:41:33
>>481,483
ありがとうございました。やってみます。

>>484
Java.io.FileInputStreamとかそのあたりでした。
ググってみたんですが、JavaはLargeFileAwarenessが保障されないとか、
そういう話題しか見つけれなくて、最終的に
http://code.hammerpig.com/how-to-read-really-large-files-in-java.html
この辺を見て、シーケンシャルに読むのがいいのかなと思ったですよー。
499デフォルトの名無しさん:2010/09/14(火) 22:02:33
>>496
特定のポートでソケットをバインドしてみる
500デフォルトの名無しさん:2010/09/14(火) 22:18:46
>>498
>>480の、intの正値で絶対アドレス指定する必要がある、って
FileInputStreamのどのメソッドの事言ってんの?
501デフォルトの名無しさん:2010/09/14(火) 22:42:21
>>496
java 多重起動防止
とかでググれば分かるが、完全な方法はネイティブなAPIを呼ぶこと。
502デフォルトの名無しさん:2010/09/15(水) 01:08:29
JWSのAPI使っていいなら多重機動禁止あるけど
503デフォルトの名無しさん:2010/09/15(水) 05:53:06
>>497さんので正解です
504デフォルトの名無しさん:2010/09/15(水) 07:38:09
Javaでフレームワークって時代遅れだったりするの?
LL流行ってるっぽいけど
505デフォルトの名無しさん:2010/09/15(水) 08:54:42
>>504
使い方によるなぁ。
別にフレームワーク使っても問題ない。
506デフォルトの名無しさん:2010/09/15(水) 09:02:52
フレームワークって一口に言ってもなあ
swing自体だって広義のフレームワークだ
507デフォルトの名無しさん:2010/09/15(水) 10:13:47
LL流ってなんですか?
508デフォルトの名無しさん:2010/09/15(水) 10:56:29
漢字読めない子か
509デフォルトの名無しさん:2010/09/15(水) 11:00:18
1.5から実行中の全スレッドのスタックとレースが取得できるようになりましたが、
本来スタックにつまれているであろうローカル変数も合わせてダンプすることは出来ないものでしょうか?
510デフォルトの名無しさん:2010/09/15(水) 14:35:51
>>509
jmap
511デフォルトの名無しさん:2010/09/15(水) 15:11:38
便乗して…

任意のオブジェクトがどこのクラスの変数に参照されているかを調べることは出来ますか?
512デフォルトの名無しさん:2010/09/15(水) 15:13:00
Javaを今週から始めました
Androidのアプリ開発がしたいです
いきなりどのような道順で勉強したらいいでしょうか?
ifとかswtichなどの基本文法は習得しました
513デフォルトの名無しさん:2010/09/15(水) 15:26:26
HashtableとHashmapの違いが分からん
514デフォルトの名無しさん:2010/09/15(水) 17:04:44
>>511
jhatでも使ってみては
515デフォルトの名無しさん:2010/09/15(水) 17:08:06
>>513
Hashtableは同期化(synchronized)されている
HashMapは同期化されていない
516デフォルトの名無しさん:2010/09/15(水) 17:11:46
>>512
とにかく色々いじってみたら? わからないところは調べながら
まずは Eclipse と Android SDK をダウンロードしてインストール
517デフォルトの名無しさん:2010/09/15(水) 18:50:45
>>515
ども
518496:2010/09/15(水) 22:05:30
では、>>497さんの方法で・・・うそです。

>>499,501
ありがとうございました。
519デフォルトの名無しさん:2010/09/15(水) 22:12:18
サーバー版の独習JAVAの評判ってどう?
520デフォルトの名無しさん:2010/09/15(水) 22:20:07
MSDN の Code Recipe のJAVA版みたいなものってありませんか?
521デフォルトの名無しさん:2010/09/15(水) 22:26:05
>>519
ありがとうございます。頑張って勉強します
522デフォルトの名無しさん:2010/09/16(木) 15:37:46
javaのプログラムを先輩から引き継いで改良中なのですが
Applicationで「マウスクリックでウインドウを開く」という動作で
クリック連打してウインドウをたくさん出現させるとウインドウを全て消した後に
ウインドウが開かなくなってしまうというバグが起きます。
これは解決できるものなのでしょうか?
523デフォルトの名無しさん:2010/09/16(木) 15:56:17
ウィンドウをすべて消したらクリックする場所が無くなるからじゃね
524デフォルトの名無しさん:2010/09/16(木) 16:03:55
クリックする場所はあるのですが・・・
アプリケーションにボタンがあってそれをクリックすると新たにウインドウが出る
というマウスイベントでそのウインドウをクリック連打でたくさん出すと
アプリケーション以外のウインドウを消した後にボタンをクリックしてもウインドウがでないというバグです。
525デフォルトの名無しさん:2010/09/16(木) 16:27:53
ソースコードも何もなけりゃ推測でしか答えられんが
ウィンドウを消したつもりでも実は非表示なだけで残ってて、それがメモリを食いつぶしてメモリ不足で新しいのを開けないとか
526デフォルトの名無しさん:2010/09/16(木) 16:46:52
なるほど・・・その可能性もあるのでもう少し調べてみます。ありがとうございました!
527デフォルトの名無しさん:2010/09/16(木) 18:13:51
就職の際にどんな業務でどういったシステムをどの言語なり分野なりで作っているのか分からん
とりあえずJAVAやC#を使ってるところをメインに就活してるけど・・・
大雑把にネットワークやらデータベースを避けてるだけっていう
528デフォルトの名無しさん:2010/09/16(木) 18:49:00
>>527
JAVAやC#は手段で、ネットワークやDBは目的。
そこをはっきりさせてから就活した方がいいかも。

俺ネットワーク関係のソフト作ってるけど、言語はJAVAやねん。
529デフォルトの名無しさん:2010/09/16(木) 18:54:13
ネットワーク関係のソフトを ”作ってる” と ”使ってる” じゃえらい違いだ

>>528
自分がその会社に入る前に読んだ本や身につけた技術の分野なりためになりそうな経験なりを教えてくれ
530デフォルトの名無しさん:2010/09/16(木) 19:50:12
こりゃだめだWW
531デフォルトの名無しさん:2010/09/16(木) 19:58:49
とりあえずその錯乱状態を何とかしろ。
会社の業務内容はその会社に訊け。
自分が何をやりたいかは自分に訊け。
他人に相談したいなら板違いだ。
532デフォルトの名無しさん:2010/09/16(木) 20:06:47
ところで専門学生って何をどんだけ学んでんだ?
JAVAをメインで教えてるとは聞いたが
533デフォルトの名無しさん:2010/09/16(木) 23:29:40
勘だけどStrutsの使い方だと思うよ
534デフォルトの名無しさん:2010/09/16(木) 23:42:35
専門学校→言語やライブラリの使い方
情報系大学→アルゴリズムや開発モデルなどのいわゆるソフトウェア工学
と思ってるんだけど,専門でもアルゴリズムとかソフトウェア工学までやるのだろうか?
535デフォルトの名無しさん:2010/09/17(金) 00:01:40
専門学校でそんなことやってんのか。
就職するためというよりはフリープログラマになるための講義だなそれじゃ。
536デフォルトの名無しさん:2010/09/17(金) 09:01:59
JavaやC#使う会社に就職したいのに、
ネットワークとDB避けるって、どんだけだよw
少なくとも、Webとメール関係のプロトコルや
オープンソースのRDBくらいは抑えておかないと仕事にならん。

最近は、Java屋にもJavaScript(jQueryとか)のスキルが
求められるし。
537デフォルトの名無しさん:2010/09/17(金) 09:10:40
大学ってプログラムの授業なんてほぼ皆無じゃないか?私Aランだけど
538デフォルトの名無しさん:2010/09/17(金) 09:13:06
>>536
それが出来る状態で卒業する専門学生ってたぶん1割も居ないと思う。
実際8割が使いものにならないガーベジコレクト対象者、残りがまだなんとか出来る奴、こんなもん。

いや勝手な想像なんですけどね
539デフォルトの名無しさん:2010/09/17(金) 09:17:57
>>538
まぁそんなもんだよね。

でも中には、学生だけどオープンソースのコミッタやってます
なんていう、珍しい人も応募してきたりする。
ブログの書き方とか、成果物のソース見れば、どんな人かとか
スキルセットの見当なども概ね把握できるから、そういう人は逃さず採用。

いやほんと、中にはスゴイ人いるよ。
入社してもらった後も、転職されないように待遇面とかモチベーションを
維持できる環境づくりとか、こっちも責任感じちまう。
ただでさえ、IT系とかSIerってだけで学生からは敬遠される時代に
なってしまったからな。
(というか、この業界自らが招いた結果的状況だけど)
540デフォルトの名無しさん:2010/09/17(金) 10:21:32
質問です、JAVAの開発環境を整えるためにシステムのPathの変数値を変更したいのですが、テキストの表記法が曖昧でイマイチ良く分かりません。
以下はテキストの写しです。

Cこの変数値の末尾に「;」記号をつけ、その後に以下のようにテキストを追記してOKします。
%JAVA_HOME%\bin;(青字)

図1.13
    _____________________________________________
変数値 |%JAVA_HOME%;\bin;C:\Program Files\Java\lib\j|―――ここにCのテキストを追記する。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

って書かれてるのですが、一番右端のこれは見切れているのでしょうか?
あと、追記するのって結局青字の部分なのか、枠内全体なのでしょうか……。
宜しければご教授下さい。
541デフォルトの名無しさん:2010/09/17(金) 10:26:30
見切れるというのは見えてはいけないものが見えてしまうこと
542デフォルトの名無しさん:2010/09/17(金) 10:33:40
枠が・・・orz

見やすいように画像うpします。
http://iup.2ch-library.com/i/i0152963-1284687144.jpg
543デフォルトの名無しさん:2010/09/17(金) 10:46:40
まず、システムPATHがどういう意味を持つものなのかを
理解した方がいいと思う。
544デフォルトの名無しさん:2010/09/17(金) 10:56:28
>>543
コマンド検索パスの指定、でいいんだよね?
545デフォルトの名無しさん:2010/09/17(金) 12:03:47
本だけに頼るからそんな疑問が沸くんだ
PCで追いながら試せばええじゃん
546デフォルトの名無しさん:2010/09/17(金) 16:16:45
このスレって回答者は専門卒もしくは専門の奴がほとんどだと思ってたよ
547デフォルトの名無しさん:2010/09/17(金) 18:42:51
javaからマウスの左クリックや移動の操作ってできますか?
548デフォルトの名無しさん:2010/09/17(金) 18:46:46
見つかりました
java.awt.Robot
549デフォルトの名無しさん:2010/09/17(金) 19:40:09
よかったね
550デフォルトの名無しさん:2010/09/17(金) 19:53:47
めでたいな
551デフォルトの名無しさん:2010/09/17(金) 20:14:27
今日は赤飯か。
552デフォルトの名無しさん:2010/09/17(金) 21:32:09
おい専門卒の奴、学生の時に何を学んだか教えろください
553デフォルトの名無しさん:2010/09/17(金) 21:57:12
なにこいつw
恐い
554デフォルトの名無しさん:2010/09/17(金) 23:08:16
Java!!!!!
555デフォルトの名無しさん:2010/09/18(土) 04:26:05
次世代Javaっていつ頃リリースされそう?
556デフォルトの名無しさん:2010/09/18(土) 08:13:53
>>537
あってもコピペ提出か宿題スレかYahooだべ

趣味でやってるヤツぐらいしかコードは書けないね
557デフォルトの名無しさん:2010/09/18(土) 10:32:18
switchでIntegerがcaseのとこにつかえないんだけど
どうすればいいの?
558デフォルトの名無しさん:2010/09/18(土) 11:37:37
>>557
ソースみせて
559デフォルトの名無しさん:2010/09/18(土) 11:53:00
そりゃIntegerだと定数じゃないからだろ
560デフォルトの名無しさん:2010/09/18(土) 11:55:44
>>559
俺もそう解釈してたんだけど、なんかの条件満たすとIntegerでも使える気がする。
リファクタリングでコード移したら同じIntegerなのにエラーになった。
static finalとか?
561デフォルトの名無しさん:2010/09/18(土) 12:43:34
awtってあうとって読むの?素直にエーダブリュティーって読むの?
562デフォルトの名無しさん:2010/09/18(土) 12:46:08
>>561
えーだぶるちー
563デフォルトの名無しさん:2010/09/18(土) 20:03:51
>>561
あぶすとらくとういんどうつーるきっと
面倒なときはえいだぶりゅてー
564デフォルトの名無しさん:2010/09/18(土) 23:34:26
domで、
<body xmlns:ns="http://example/">
<sample name="ns:hello">
のxmlを読み込むとして、
"ns:hello"の"ns"だけを読み込む方法
てありますか?
565デフォルトの名無しさん:2010/09/19(日) 01:25:36
なんでjavaのimportってあんなに長いの?jp.co.・・・みたいなやつ。
おかげで無駄に階層が深くてアクセスしにくい。
566デフォルトの名無しさん:2010/09/19(日) 01:59:28
>>565
何と比較して長いの?
あれってインターネットのURLみたいなもんだろ
そう思えば、長いとも思わないのだが
567デフォルトの名無しさん:2010/09/19(日) 02:56:30
>>560
intは行けるがIntegerの所でコンパイルエラーが出る
Integerで行けるコード希望w

public class Hoge {
  private static final Integer STATIC_FIELD_INTEGER = 0;
  private static final int STATIC_FIELD_INT = 1;
  private final Integer FIELD_INTEGER = 2;
  private final int FIELD_INT = 3;
  
  void hoge() {
    final Integer LOCAL_INTEGER = 4;
    final int LOCAL_INT = 5;
    
    switch((int) (Math.random() * 6)) {
      case STATIC_FIELD_INTEGER: System.out.println(STATIC_FIELD_INTEGER); break;
      case STATIC_FIELD_INT: System.out.println(STATIC_FIELD_INT); break;
      case FIELD_INTEGER: System.out.println(FIELD_INTEGER); break;
      case FIELD_INT: System.out.println(FIELD_INT); break;
      case LOCAL_INTEGER: System.out.println(LOCAL_INTEGER); break;
      case LOCAL_INT: System.out.println(LOCAL_INT); break;
    }
  }
}
568デフォルトの名無しさん:2010/09/19(日) 03:04:29
>>567
enum 使いなよ
569559=567:2010/09/19(日) 03:37:27
いや、俺は557じゃないです。
560がIntegerで使える気がするって言うから、どういうコードならいけるのかな?と
570デフォルトの名無しさん:2010/09/19(日) 11:41:28
Visual Editorで画像貼り付けるにはどうしたらいいの?
あとプロパティ > icon > プロジェクトから選択
でなんでsrcフォルダ以下しか選択できないの?
571570:2010/09/19(日) 14:26:34
自己解決
javaのグラフィックスの仕組みがようやくわかったわ
572570:2010/09/19(日) 19:12:40
Java Java♪
やっぱJavaだわ
573デフォルトの名無しさん:2010/09/19(日) 20:57:15
皆さんはJavaでどういうの創っています?
574デフォルトの名無しさん:2010/09/19(日) 21:55:14
最初、踊るドクターという副題とヒガシ主演と聞いて侮ってました

どうもすいませんでした(´・ω・`)
575デフォルトの名無しさん:2010/09/19(日) 22:37:26
Javaで仕事してきて、
血迷ってプログラミング言語Javaを買って読み始めたけど、これけっこうムズいww
意気消沈wwwww
576339:2010/09/20(月) 03:50:54
>>383
もう一回聞かせて。
どこそれ?
577デフォルトの名無しさん:2010/09/20(月) 12:19:29
質問なのですが
インクリメント・デクリメント
って1増やしたり1減らしたりの動作ですが
この動作ってどういうところで使われるのか教えてください
578デフォルトの名無しさん:2010/09/20(月) 12:34:57
>>577
数を数えるところ
579デフォルトの名無しさん:2010/09/20(月) 17:38:01
JAVA便利なのにやっぱり重いから一部の時代に取り残された低スペから物凄く嫌われてるよね(´・ω・`)
580デフォルトの名無しさん:2010/09/20(月) 17:55:05
(´・ω・`)しばくぞこら
581デフォルトの名無しさん:2010/09/20(月) 17:56:25
>>579
(´・ω・`)やんのかこら
582デフォルトの名無しさん:2010/09/20(月) 18:36:09
>>579
昔のJavaはすっごく重かったから、その頃のだけ使って、今は使ってないような人は
よくそういうこと言うよね。
583デフォルトの名無しさん:2010/09/20(月) 18:45:50
JavaのWebアプリとか最強に速いよな

584デフォルトの名無しさん:2010/09/20(月) 19:01:17
マーチ卒以上のプログラマってこのスレに居るの?
585582:2010/09/20(月) 19:28:28
>>583
(´・ω・`)照れ
586デフォルトの名無しさん:2010/09/20(月) 22:04:12
僕のサブPCのpen3だとJAVAはとても重いよ。アプレットによってはブラクラさ(´・ω・`)
でもそんな化石使ってる人滅多にいないし、メインPCならサクサクさ(´・ω・`)
JAVA万歳(´・ω・`)
587デフォルトの名無しさん:2010/09/21(火) 00:16:24
Java steady state
ってなんですか?
588デフォルトの名無しさん:2010/09/21(火) 01:02:15
(´・ω・`)あ?
589デフォルトの名無しさん:2010/09/21(火) 02:01:57
vb6の後継者java
590デフォルトの名無しさん:2010/09/21(火) 09:24:38
Javaワールドってクラスライブラリやフレームワークの利用者に対して
それらの作成者と同等のオブジェクト指向に対する理解を要求するよね
それが全く現実に即してないから余計に糞コードが量産される
591デフォルトの名無しさん:2010/09/21(火) 10:48:08
それはJavaに限らんと思うが
592デフォルトの名無しさん:2010/09/21(火) 13:54:23
有名Webサイトからコピペしてきたコードが動きません。
$ java -classpath /usr/share/java/jogl.jar SimpleCube
Exception in thread "main" java.lang.NoClassDefFoundError: SimpleCube
Caused by: java.lang.ClassNotFoundException: SimpleCube
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: SimpleCube. Program will exit.

エラーめっサージが何を言っているのかさっぱりなのですが、何が悪いのでしょうか
ヒントだけでもいいので教えてください。とっかかりさえつかめません
593デフォルトの名無しさん:2010/09/21(火) 13:58:24
SimpleCubeクラスが見つからないと言っています。
クラスパスを指定しているので、カレントディレクトリがクラスパスでなくなったためではないでしょうか。
カレントディレクトリもクラスパスに含めればいいと思われ。
java -classpath .:/usr/share/java/jogl.jar SimpleCube
594592:2010/09/21(火) 14:03:53
>>593
$ java -classpath .:/usr/share/java/jogl.jar SimpleCube
動いた\(^o^)/

なるほどカレントディレクトリもクラスパスにないといけないのですね。
まだまだ先は長い

595デフォルトの名無しさん:2010/09/21(火) 15:46:47
(´・ω・`)あ?
596デフォルトの名無しさん:2010/09/21(火) 18:10:51
javaを勉強するのにオススメの本をおしてえください
597デフォルトの名無しさん:2010/09/21(火) 18:15:27
(´・ω・`)あ?
598デフォルトの名無しさん:2010/09/21(火) 21:15:01
静的メソッドとインスタンスメソッドの違いでつまづいています。
class Sample {
  public static void main(String[] args) {
    String s = "125";
//    Integer obj1 = Integer(125); // NG
    Integer obj2 = new Integer(125); // OK
    Integer obj3 = Integer.valueOf(s); // OK
//    Integer obj4 = new Integer.valueOf(s); // NG
    int i = obj2.intValue();
    i += 10;
    System.out.println(i);
  }
}
/* end */
NG となる行、特に new valueOf() が NG なのが把握できないでいます。
static Integer valueOf(String s) では、内部で Integer クラスのオブジェクトが生成されると考えていいのでしょうか。
よろしくお願いいたします。
599デフォルトの名無しさん:2010/09/21(火) 21:39:06
静的メソッドはインスタンスを必要としないメソッドなので
> static Integer valueOf(String s) では、内部で Integer クラスのオブジェクトが生成される
というのは間違い。

newっていうのはそのクラスのインスタンスを作るためのしるしだと考えればいい。

> Integer(125); // NG
新しいインスタンスを作成したいのでnewが必要。

> new Integer.valueOf(s); // NG
これはIntegerの内部静的クラスvalueOfのインスタンスを作成する構文。
当然Integerクラスの内部クラスにvalueOfクラスが定義されていないのでエラーになる。
600598:2010/09/21(火) 22:06:14
>>599
初歩の質問にお付き合いくだり、ありがとうございます。
言葉の問題だけかもしれませんが、では、

Integer obj3 = Integer.valueOf("123");

で obj3 が参照しているのは、なにになるのでしょうか?

Integer obj1 = Integer.valueOf("123");
Integer obj2 = Integer.valueOf("123");
Integer obj3 = Integer.valueOf("123");

と、おなじ引数で、異なるなる変数に valueOf() の結果を渡した場合、
obj1, obj2, obj3 の値は同じものでしょうか、別のものでしょうか、それともこの質問は意味のないものでしょうか?
601デフォルトの名無しさん:2010/09/21(火) 22:27:20
valueOfメソッドの実装について聞きたいの?それともJava一般で?
valueOfにはなんか罠があった気がするんだが忘れた。
602デフォルトの名無しさん:2010/09/21(火) 23:02:42
IntegerCache.cache[261]
603デフォルトの名無しさん:2010/09/21(火) 23:05:26
>>601
Java 一般で、で、お願いいたします。
たとえば、
int a = Integer.parseInt("123");
は納得できるのですが、おおざっぱに書いたとして、
SomethingClass obj = SomethingClass.StaticMethod();
に抵抗を感じました。
C++ の感覚をひきずっているだけなのかもしれません。
604デフォルトの名無しさん:2010/09/21(火) 23:08:01
>>603
staticメソッド内でnewしているケースがほとんど。
605デフォルトの名無しさん:2010/09/21(火) 23:09:47
IntegerCache.cache[251]だったorz
606598:2010/09/21(火) 23:11:46
>>604
ありがとうございます。その線でしばらく学習を続けてみます。
607デフォルトの名無しさん:2010/09/21(火) 23:12:38
>>603
Integer.valueOfの場合はともかくとして一般的な場合で言うと
SomethingClass obj = SomethingClass.StaticMethod();
としておけばobjのはSomethingClass自身でもSomethingClassを継承したクラスでも良いというメリットがある。
608デフォルトの名無しさん:2010/09/21(火) 23:15:09
>>594
まてまてまて。
. で動いたのは、もしかして動かした場所の下に SimpleCube.class が置いてあるからとかじゃないのか?

jar コマンドで /usr/share/java/jogl.jar はちゃんと作った?
http://java.sun.com/javase/ja/6/docs/ja/technotes/tools/solaris/jar.html
609デフォルトの名無しさん:2010/09/21(火) 23:20:35
>>603
>SomethingClass obj = SomethingClass.StaticMethod();
>に抵抗を感じました。

命名の問題な気がします。
HogeClass hoge = HogeClass.newInstance();
だったら抵抗なくね?
610デフォルトの名無しさん:2010/09/21(火) 23:24:45
>>596
「Head First Java 頭とからだで覚えるJavaの基本」

いいよ(´・ω・`)
611デフォルトの名無しさん:2010/09/21(火) 23:29:57
>>610
それアメリカ版amazonだとかなり評判いいよね、レビュー3桁
612606:2010/09/21(火) 23:43:02
>>609
そうですね。まったくないです。delete とか書きそうです。^^);;
613デフォルトの名無しさん:2010/09/22(水) 00:29:53
そういえばstlはつかいづらいですよね。iostreamとか
614デフォルトの名無しさん:2010/09/22(水) 07:04:04
Cygwin32でgcjを使って次のプログラムをコンパイルしようとしているのですが
エラーが出て出来ません。
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
gcj -O2 -o Hello --main=Hello Hello.java
デフォルトでライブラリのパスが通ってないのでしょうか。
よくわかりません。教えてください。よろしくお願いします。
615デフォルトの名無しさん:2010/09/22(水) 08:15:32
>>614
ソースファイル名は?
616デフォルトの名無しさん:2010/09/22(水) 08:18:49
Hello.javaです。
617デフォルトの名無しさん:2010/09/22(水) 11:06:06
>>614
調べてみた
どうやら ecj.jar を手動でダウンロードしなければならんらしい
ftp://sourceware.org/pub/java/ecj-latest.jar をダウンロードして ecj.jar にリネームして /usr/share/java/ に置く
詳細は /usr/share/doc/Cygwin/gcc4.README を参照
618デフォルトの名無しさん:2010/09/22(水) 11:54:52
SUNのjavacでやるほうが簡単そうなのでそうします。
619デフォルトの名無しさん:2010/09/22(水) 11:57:10
そうしてください
620デフォルトの名無しさん:2010/09/22(水) 14:17:59
一人相撲スレはここですか?
621デフォルトの名無しさん:2010/09/22(水) 18:34:33
はいじゃないが
622デフォルトの名無しさん:2010/09/22(水) 19:12:30
うっほほ〜
623デフォルトの名無しさん:2010/09/23(木) 03:27:48
基本すっとばしてswingに手出して後悔してるおーどっからとりこぼしたかわかんねぇ死ぬ
624デフォルトの名無しさん:2010/09/23(木) 07:55:38
>>541
写真の画面からはみだしてしまった人をさす。
http://dic.yahoo.co.jp/newword?ref=1&p=%E8%A6%8B%E5%88%87%E3%82%8C%E3%82%8B&index=2006000009
625デフォルトの名無しさん:2010/09/23(木) 15:40:03
ajaxって流行ってんの?何をするときに使ってんの?
626デフォルトの名無しさん:2010/09/23(木) 15:58:22
private static Map map = new HashMap();

ってよく書くけど

private static Map map = new Map();

じゃ駄目な理由って何?
627デフォルトの名無しさん:2010/09/23(木) 16:07:18
interfaceはインスタンス作れない、と言語仕様で決まってる。
628デフォルトの名無しさん:2010/09/23(木) 17:16:07
>>626
すべてのメソッドがAbstractなクラスだと思えばいい。
つまり自身は実装したくなくて、文字通りインタフェースだけ定義したいんだよ。
629デフォルトの名無しさん:2010/09/23(木) 17:59:37
初心者でごめんなさい。
HPで画像をランダムで表セルの中に表示したいんだけど
表セルの中に表示するのはどうすればいいの?
630デフォルトの名無しさん:2010/09/23(木) 18:07:12
>>628
ちょっと違う気がする
631デフォルトの名無しさん:2010/09/23(木) 18:27:57
>>629
String[] imgs = new String[]{"image-url1", "image-url2", "image-url3"};
Random rnd = new Random();

public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");

PrintWriter out = res.getWriter();

out.print("<td><img src=\"");
out.print(imgs[rnd.nextInt(imgs.length)]);
out.println("\"></td>");

out.flush();

}
632デフォルトの名無しさん:2010/09/23(木) 20:05:54
(´・ω・`)。。。
633デフォルトの名無しさん:2010/09/23(木) 20:57:19
JavaScriptでやったほうが簡単な気がする(´・ω・`)
サーブレットじゃないとダメなのかな。だったらごめんね。(´・ω・`)
634デフォルトの名無しさん:2010/09/23(木) 21:14:40
>>631
ありがとう
初心者のせいか細部があまり理解できなかった…ごめん

>>633
JavaScriptでやったらどうなります?
635デフォルトの名無しさん:2010/09/23(木) 21:39:49
フレームワークでメジャーなものを何個か教えてくれ
636デフォルトの名無しさん:2010/09/23(木) 21:43:16
暗にスレチ指摘なわけだが

>JavaScript, Ajaxの質問は、ここでは受け付けていません。
>Web製作管理    http://pc11.2ch.net/hp/
>Webプログラミング http://pc11.2ch.net/php/

>>634
google に「jquery イメージ ランダム」とでも聞いてみれ
637デフォルトの名無しさん:2010/09/23(木) 21:48:16
>>636
スレ違いだったのか
ごめん
638デフォルトの名無しさん:2010/09/23(木) 22:14:14
ECLIPSEで
import javax.swing.*;

としてもエラーとなります.
JAVAX.のあとで自動選択メニューにswingが含まれてないのです.

どうしたらよいでしょうか。
639デフォルトの名無しさん:2010/09/23(木) 22:15:52
>>638
エラーメッセージを読んで理解してみるとか
640デフォルトの名無しさん:2010/09/23(木) 22:18:08
答える気ない奴は出てけ
641デフォルトの名無しさん:2010/09/23(木) 22:29:16
じゃあ、エラーメッセージを読んでみるとか
642638:2010/09/23(木) 22:36:39
640は俺じゃないので.

昨日からパスをいじり倒してたけど出来なかった.
で、今もう一回1から確認したら出来ました!自己解決、お騒がせしました.
643デフォルトの名無しさん:2010/09/23(木) 22:39:18
JavaWebStartで、jnlpファイルにresourcesでライブラリのファイル名を書きますが、
アプリケーションのアップデートで使用ライブラリが増減した場合に起動に失敗するようです。

おそらくデスクトップに出来るショートカットなどを叩いた場合、ローカルのjnlpが使用されるからではないかと思います。
一般的なJavaWebStartアプリケーションはこのあたりどのようにしてるんでしょう?

ライブラリは自作(というよりアプリ本体の複数jarファイル)と、apacheとかのライブラリを含みます
(他のライブラリを含む場合、ファイル名のバージョン番号などは消すべき?)。
644デフォルトの名無しさん:2010/09/23(木) 22:45:34
プログラミング言語Javaの練習問題難しすぎるんですけど
この本を褒めてる人たちって練習問題解いたんでしょうか?
645デフォルトの名無しさん:2010/09/23(木) 22:50:05
練習問題がないと何も出来ないのかお前は
646デフォルトの名無しさん:2010/09/23(木) 23:45:19
エクリプすでこんなエラーが出る.解決法教えてください

Internal Error (classFileParser.cpp:3161), pid=5756, tid=2096
Error: ShouldNotReachHere()

VM Arguments:
jvm_args: -Dfile.encoding=MS932 -Xbootclasspath/p:
D:\data\Documents\eclipse\android-sdk-windows\platforms\android-8\android.jar
java_command: jp.tuyano.eclipsebook3.SampleApp
Launcher Type: SUN_STANDARD

Environment Variables:
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_21
CLASSPATH=.;C:\Program Files\Java\jdk1.6.0_21\lib\dt.jar;
C:\Program Files\Java\jdk1.6.0_21\lib\tools.jar

PATH=C:/Program Files/Java/jre6/bin/client;C:/Program Files/Java/jre6/bin;
C:/Program Files/Java/jre6/lib/i386;
C:\Windows\system32;
C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;
.;C:\Program Files\Java\jdk1.6.0_21\lib\tools.jar;
C:\Program Files\Java\jdk1.6.0_21\bin
USERNAME=t
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 6 Model 37 Stepping 2, GenuineIntel
647デフォルトの名無しさん:2010/09/23(木) 23:55:59
踏んではいけないdefault文とかをC++で踏んじゃった感じだなぁ。
648646:2010/09/24(金) 00:07:12
JAVAの本に載ってたこんな簡単なサンプルなんだけど。。。

package jp.tuyano.eclipsebook3;

import javax.swing.JFrame;
public class SampleApp {



/**
* @param args
*/

public static void main(String[] args) {
JFrame f = new JFrame();
f.setSize(300,200);
f.setVisible(true);
// TODO 自動生成されたメソッド・スタブ
System.out.println("HELLO!!!!!");

}

}
649デフォルトの名無しさん:2010/09/24(金) 01:20:00
Javaで作成するとしたらどっち?

1:GUI
2:サーバーサイド
3:携帯アプリ
4:アプレット
650デフォルトの名無しさん:2010/09/24(金) 01:30:57
君が決めろ
651デフォルトの名無しさん:2010/09/24(金) 02:56:29
JPA2.0でcreateQueryやったら、どんなに簡単なクエリーでもSyntaxエラーになる。
正直使えない。
652デフォルトの名無しさん:2010/09/24(金) 06:23:27
>>649
かってにしろw
653デフォルトの名無しさん:2010/09/24(金) 07:12:09
AndroidにSwingがあるわけないだろ。
Androidがまったく想定してないことしてブートストラップライブラリ辺りをクラッシュさせた感じか?
654デフォルトの名無しさん:2010/09/24(金) 07:13:40
Androidって法律違反なんでしょ?
655646:2010/09/24(金) 07:45:25
>>653
ファイル、新規、クラス
で、新規JAVAクラス で作ってるし、ANDROIDプロジェクトは選択してないんだが。
656デフォルトの名無しさん:2010/09/24(金) 07:51:20
ならeclipseを入れなおせとしか
657デフォルトの名無しさん:2010/09/24(金) 09:12:04
>>651
そんなことないんだが、使ってる実装なによ?
658651:2010/09/24(金) 16:41:05
>>657
実装といわれてもピンとこない。netBeans6.9.1をインストールしたまま使ってる。
createNamedQueryは使えるから、そのクエリーを直接こぴぺしてcreateQueryしてみたらSyntaxエラーにならなかった。
コマンドプロンプトでは正常なクエリーでも、createQueryではSyntaxエラーになるものもあるから、かなりしんどいな。
659デフォルトの名無しさん:2010/09/24(金) 16:49:45
うざい死ね
660デフォルトの名無しさん:2010/09/24(金) 17:23:10
このスレ眺めてみると、かなりイライラしている奴が多いな
相当切羽詰っているんだろうなw
なんかすげー笑ったwww
661デフォルトの名無しさん:2010/09/24(金) 17:24:05
だってプログラマって基本低学歴(ry
662デフォルトの名無しさん:2010/09/24(金) 17:24:23
public class mtest{

public static void main(String[] args){
System.out.println("空きメモリ:"+
Runtime.getRuntime().freeMemory() );

DataSet[] data = new DataSet[100];

for(int i = 0; i < 100; i++){
data[i] = new DataSet();
System.out.println("生成済みインスタンス数:"+ (i + 1) + " 空きメモリ:"+Runtime.getRuntime().freeMemory());

}}}
class DataSet{
int x;
int y;  }   実行すると空きメモリが全く減らないのですがどうしてでしょう?
663デフォルトの名無しさん:2010/09/24(金) 17:36:41
664デフォルトの名無しさん:2010/09/24(金) 17:45:02
>>662
メモリ確保のオーバーヘッドを減らすために、最初にある程度大きめのメモリブロックを確保して、それを細切れに各インスタンスに割り当てていくから
-XX:-UseTLAB オプションを付ければその機能が無効になる
665デフォルトの名無しさん:2010/09/24(金) 17:50:30
そういえばエスケーポ解析は結局どうなったの?
666デフォルトの名無しさん:2010/09/24(金) 18:00:33
-XX:+DoEscapeAnalysis というオプションがあるらしい
667デフォルトの名無しさん:2010/09/24(金) 18:00:44
>>664
ありがとう 調べてみます
668658:2010/09/24(金) 18:40:52
netBeans6.9.1で自動生成されるNamedQueryを参考にしながら、createQuery用のクエリーを作ったら、シンタックスエラーは出なくなった。
正直めんどくさいけど、まあいいや。ありがとう。
669デフォルトの名無しさん:2010/09/24(金) 20:01:31
文法GUI→テトリスやマリオっぽい何か→デザインパターン→ジェネリックやアノテーション等の復習
→フレームワークの基礎→Strutsを触ってみる

ウェブ系以外で次になんかない?
本でも何でもいいから取っ付きを・・・
670デフォルトの名無しさん:2010/09/24(金) 20:03:44
ajaxやTomcat以外でという意味です、あとAndroid方面も。
671デフォルトの名無しさん:2010/09/24(金) 20:16:55
RSSリーダー・・・・って前も言った気がするな
じゃあJOGLで3Dとかどう
672デフォルトの名無しさん:2010/09/24(金) 20:20:36
>>671
前も聞きましたすいません、RSSリーダーもいまいちピンと来なくて・・・。
673デフォルトの名無しさん:2010/09/24(金) 20:25:02
674デフォルトの名無しさん:2010/09/24(金) 21:18:46
Style.class == Style.BOLD.getClass()
Style.class == Style.BOLD.getDeclaringClass()

両者の違いは何ですか?
675デフォルトの名無しさん:2010/09/24(金) 21:27:58
型が違う
Style.BOLD.getClass() ・・・ Class<?>
Style.BOLD.getDeclaringClass() ・・・ Class<Style>
676デフォルトの名無しさん:2010/09/24(金) 21:29:51
どもです
677デフォルトの名無しさん:2010/09/24(金) 21:35:24
enum Style {
BOLD,
ITALIC{}
}
Style.class == Style.BOLD.getClass()
Style.class == Style.BOLD.getDeclaringClass()
Style.class != Style.ITALIC.getClass()
Style.class == Style.ITALIC.getDeclaringClass()
678デフォルトの名無しさん:2010/09/24(金) 22:50:26
文字入力だとimport java.util.Scannerとやったりして
メソッド利用の際の名前短縮してるけど
Mathクラスの円周率とかは直接Math.PIで参照できるのはフィールドだから?
何言ってるか自分でもよくわかってないのですが…
679デフォルトの名無しさん:2010/09/24(金) 23:28:45
>>678
Mathはjava.langパッケージのクラスだから。
680デフォルトの名無しさん:2010/09/25(土) 00:42:24
>>678
ファイルの先頭に import java.lang.*; が自動的に付くんだと思ってくれ
681デフォルトの名無しさん:2010/09/25(土) 02:06:20
jakarta commons とかを自作アプリに使いたい場合って、jarのまま使うのですか?
それともソースを混ぜて自ソースと一緒にjarにしてしまう?

後者の場合ライセンスとか問題ないんでしょうか?
682デフォルトの名無しさん:2010/09/25(土) 02:15:09
>>681
フリーソフトを自分で使う場合ライセンスが関わることは無いでしょう。
誰かに使わせたいけど、ライセンスを読みたくない場合は、使わせるのをあきらめましょう。
683デフォルトの名無しさん:2010/09/25(土) 02:34:07
>>682
いや、Apacheライセンスがゆるゆるなライセンスなことは知ってるんですが、
ソースからコンパイルしてソースを混ぜてしまうと、ソースに書いてある著作権表記とかは消えるわけですよね。

マニュアルとかREADMEファイルとかに「commons使ってるよーん」と表記するだけで良いようにも読めますが
これであってますか?
684デフォルトの名無しさん:2010/09/25(土) 02:59:44
>>683
ものによっては、license.txtをどっかにおいとけばいいいんだぜっ!ってやつなかったっけ?
685デフォルトの名無しさん:2010/09/25(土) 04:10:58
>>684
うん
686デフォルトの名無しさん:2010/09/25(土) 09:11:00
>>684
APL2.0ってそれじゃなかった?うろ覚えだけど
687デフォルトの名無しさん:2010/09/25(土) 11:53:28
Struts2で良書ない?てか本自体少ないんだが
688デフォルトの名無しさん:2010/09/25(土) 17:22:38
>>686
わかった
689デフォルトの名無しさん:2010/09/25(土) 20:17:35
Javaで音楽CDの再生はできますか?
できるようであればどのクラスを使用するかも教えてください。
690デフォルトの名無しさん:2010/09/25(土) 20:41:08
アイコン自体にD&Dする事で機能するクライアントアプリを
作成しJarからMac用にApp化したいのですが不可能でしょうか?
Jar BundlerでApp作ったのですがダメでした。
691デフォルトの名無しさん:2010/09/25(土) 20:55:21
>>687
ドキュメントを印刷すればいいだけ
692デフォルトの名無しさん:2010/09/25(土) 21:06:22
既存のプログラムの改良ってどんな風に行うの?
JAVA入門書とりあえず1冊読んだけど、ソースプログラムみてもわけわかめで
手が出せない。 演習的な本やったほうが良いのかな 
693デフォルトの名無しさん:2010/09/25(土) 21:16:29
それは、単に読んだだけで、内容を理解できてないってこと?
その入門書に載ってるソースプログラムもわけわからんの?
694デフォルトの名無しさん:2010/09/25(土) 21:57:13
>>692みたいに質問もろくにできない奴って相当頭悪いと思う
695デフォルトの名無しさん:2010/09/25(土) 22:01:05
696デフォルトの名無しさん:2010/09/25(土) 22:06:20
おまえじゃ無理
もう諦めろ
697デフォルトの名無しさん:2010/09/25(土) 22:41:05
本読んだだけでスキル習得とかゲームじゃねーんだぞ
698デフォルトの名無しさん:2010/09/25(土) 23:28:07
書かなきゃ上達しない派とできるだけ多くのソースコードを読め派が居るけど、
俺は後者の方が効率がいい気がしてならない
699デフォルトの名無しさん:2010/09/25(土) 23:30:09
>>692
入門書読んだだけでは確実に内容を隅々まで理解できていないので
色々と細かい点を変えたり試行錯誤して学習したほうがいいよ
700デフォルトの名無しさん:2010/09/25(土) 23:42:09
誰かJNIかJNAやっている人いる?
701デフォルトの名無しさん:2010/09/25(土) 23:54:39
ライブラリを使いこなせ派が最強
702デフォルトの名無しさん:2010/09/26(日) 00:09:07
JNIなら昔仕事で
703デフォルトの名無しさん:2010/09/26(日) 00:50:00
>>698
両方。わけもわからず書いても上達しないし、
読んだだけでは重要なところをスルーしかねない。
(CPUになったつもりで1ステップずつ追いかけるなら別)

やりたいことに似たコードをexampleとかから探してきて、
写経してデバッガで追っかけるとかやってるな。
704デフォルトの名無しさん:2010/09/26(日) 01:46:27
>>698
おれはオプソいろいろ読んで、似たコードを実際かいてみて練習。がいいと思う。いろいろやったがこれが一番上達した気がする。
初心者は、ソースの美醜が分かるようになると上達が速そう。
何年たっても上達しない人は、あまりキレイじゃないソースを「分かりやすくていい」とか言ったりする人が多い気がする。
705デフォルトの名無しさん:2010/09/26(日) 02:29:24
最初はとにかく書け,動くものをどんどん書け
自分の思い通りに書けるようになったら
他人のソースを読んでいろんな書き方を盗め
706デフォルトの名無しさん:2010/09/26(日) 02:41:49
誰か助けてくれいや助けて下さい

「任意の長さの、要素が全て600未満の整数値である配列 A[n] に色々な数値が入っているとして、
 A[n]の中の1個からn個までの要素を抜き出し、足し合わせて 結果が550になる組み合わせを列挙したい。
 ただし、400と320を加算する等して結果が600以上になった場合、加算結果を2で割らなければならない。
 すなわちただの合計値だけでなく、加算する順番も考慮しなければならない。」

こんな感じの内容を実現したいんだけど、どう計算させれば良いんだろうか?
{ 50, 50, 100, 150, 240, 260, 300, 500 } という配列が入力されたらば
{ { 50, 500 }, { 50, 240, 260 }, { 50, 50, 150, 300 }, ........って感じの二次元配列を返すように作りたい。

課題とか仕事とかじゃないんで期限納期がどうこうは無いんだけど
昨日から丸一日考えてもどう作れば良いかサッパリわかんね。あたまわるい自分に誰か教えておくれ
707デフォルトの名無しさん:2010/09/26(日) 02:45:14
ごめん書き忘れ

> 400と320を加算する等して結果が600以上になった場合、加算結果を2で割らなければならない
ここで、片方が奇数、片方が偶数だった場合は ***.5になるけど、これは小数点を切り捨てる、としたい。
708デフォルトの名無しさん:2010/09/26(日) 02:46:43
>ただし、400と320を加算する等して結果が600以上になった場合、加算結果を2で割らなければならない。
がよくわからない
2で割った結果が550となればいいってこと?(つまり合計値が1100でもいいの?)
709デフォルトの名無しさん:2010/09/26(日) 02:51:54
すべての組合せを生成して、条件をチェックしてみたら?
つまり、nビットの二進数を数え上げて、1が立っている位置に対応する要素を
調べるようにする。
710デフォルトの名無しさん:2010/09/26(日) 02:55:51
javaというかアルゴリズムの問題だよね
ざっとこんな感じかな

配列Aをソート
1:Aを大きい方から足していく
2:既定値となったら結果リストに追加して,最後に選んだ値を除く
3:既定値を超えたら,選んだ中で一番小さい値を除いて加算を続ける
4:最小値まで到達したらAから最大値を除いて再び1:から行う
711デフォルトの名無しさん:2010/09/26(日) 03:12:51
こんな夜中にみんなありがとう
>>708
400と320を足したら620、これは600以上である為、620/2 = 310 として扱われる、って事。
で、その後に240を足せば550になるな、って感じ

>>709
そもそも全ての組み合わせをどう作ったものか、って段階でかなり(自分の頭が)怪しいし
それに全部列挙するとなると仮に配列長が40あったとしたら、40 + 40*39 + 40*39*38 ... と、えらい数にならない?

>>710
ソートしてから大きいほうから足して行くのは、ただの加算だけなら良いんだけれども
大きい数字同士は 600以上になったら【その時点で】1/2するって約束が辛くない?
例えば { 50, 100, 150, 300, 800 } だと、要件を満たしてしまうから演算が止められない
712デフォルトの名無しさん:2010/09/26(日) 03:13:45
配列長はどのくらいなの
713デフォルトの名無しさん:2010/09/26(日) 03:16:35
連投ごめん、見返したら最初からキチンと書いてなかった
600以上になったら 2で割るって所、【越えた時点で2で割る】って事なんだ。
{ 200, 300, 300, 500} だったら
まず200と300を足して500、これは600未満だからそのまま
次に500と300を足して800、これは600以上だから2で割って400
更に400と500を足して900、これは600以上だから2で割って450
で、結論が450になる、そんな感じ。

書いててもう頭いっぱいになってまいりました
714デフォルトの名無しさん:2010/09/26(日) 03:20:31
>>712
任意の長さとして特に決めてはいないんだけれども……
真面目にやると凄い計算回数になるし、配列長 30個までが出来れば良いなと思ってます。
でも30の階乗とかもう数字じゃないわ
715デフォルトの名無しさん:2010/09/26(日) 03:22:13
(50, 50, 150, 300) と (50, 50, 300, 150) が両方出てもいいのかい
716デフォルトの名無しさん:2010/09/26(日) 03:23:53
独自の例外を、
Exceptionのサブクラスではなく、Throwableのサブクラスとして
定義した商用のパッケージを見かけました。(1.4です)

Throwableのサブクラスとすることに、どのような利点が考えられるでしょうか?
717デフォルトの名無しさん:2010/09/26(日) 03:26:08
>>715
問題無しです。気になったら最後の方で重複チェックすれば良いし
【超えた時点で2で割る】ルールがあるからnCmじゃなくnPm必須になるし……
718デフォルトの名無しさん:2010/09/26(日) 03:33:55
>>716
Exceptionだとキャッチできなかったんだろ。その商用パッケージ。
719710:2010/09/26(日) 03:38:44
>>711
組み合わせの候補リストを追加すればいけると思う
720716:2010/09/26(日) 03:40:20
>>718
すみません、自分の頭だと発言の意図するところを読み取れないです。。
もう少し、かみくだいていただけないでしょうか?
721デフォルトの名無しさん:2010/09/26(日) 04:34:55
>>711
40個だったら、40bitの整数を1から1ずつ増やしていけば2^40-1個全部数え上げられるよ。
やりたいことって、ナップザック問題の解の列挙だから、効率よく解けたら神レベル。
なので、安心して効率の悪いプログラミングに没頭できるよね。
もし、ちょっとだけ効率よくしたければ、ローカルサーチとかググればちょっと良くなるかも。
722デフォルトの名無しさん:2010/09/26(日) 04:50:16
>>720
ThrowableのサブクラスにErrorとかExceptionがあるのはOKだろ?
で、そのパッケージの該当箇所は、Error系ものをキャッチ→ハンドルしたかったんじゃない?ってこと。
723デフォルトの名無しさん:2010/09/26(日) 11:09:52
catch(Exception) とか書いてなんでもかんでもキャッチ・無視しちゃうダメプログラマ用の対策じゃね?
724デフォルトの名無しさん:2010/09/26(日) 11:35:41
SpringだかなんかのDIライブラリでErrorを投げる場合があった気がする。
global exceptionにErrorを書かなくちゃいけなかったりの。
たぶんそういうのを考慮して統一したんじゃないか。

>>723
プログラマは例外は基本キャッチしない方針で作ってるフレームワークだと思う。
725デフォルトの名無しさん:2010/09/26(日) 11:56:28
>>472の本、信じられないくらい不親切な入門書で笑った。

Strutsを使うとも明確に書いてないし(一応それでちょこちょこやってる)、バージョンすら書いてない。
しかもどこのどれに何を書くの「どこ」と「どれ」がないんだぜ・・・?
これで入門って冗談よせよ。
726デフォルトの名無しさん:2010/09/26(日) 13:20:08
>>719(710)
ごめん候補リストが何を意図してるか考えてたら寝てしまっていた

>>721
あああああああナップザック問題か!そう言われれば似てる!
わかったこの辺のアルゴリズム勉強して効率良いのを応用出来んか考えてみるよ
おれはかみになるんだ!
727デフォルトの名無しさん:2010/09/26(日) 15:11:26
文字出力するときにprintln("配列a[" + i + "]の値は" + a[i]);
こんな風にやらないと駄目?
C言語ではたしか後ろの部分に引数云々出来たけどjavaは出来ない?
728デフォルトの名無しさん:2010/09/26(日) 15:35:11
>>722-724
ありがとうございます。

ちなみに先に書くべきだったんですが、
class FooException extends Throwable
class FooApplicationException extends FooException
という感じで定義されています。
ユーザ側でアドオンのプログラム書けるパッケージでして、
アドオン作ってるときに、ふと疑問に思って質問しました。

>>722
Errorをハンドル、っていう可能性を全然考えていませんでした。
説明ありがとうございました。

>>723
ダメプログラマがcatch(Exception)と書くと、そこキャッチできなくなるので、
余計にマズいような気がします。
私も最初似たような理由なのかと考えたのですが、どうも違うような気がしています。

>>724
>例外は基本キャッチしない方針
おっしゃる通りだと思います。
「設計上エラーと例外を同じように扱いたいケースがあるため」
ということになるんでしょうか。
729デフォルトの名無しさん:2010/09/26(日) 15:43:05
>>727
System.out.printf
730716:2010/09/26(日) 15:44:43
>>727
printfメソッド(1.5から)があるみたいですが、これはどうですか?
731716:2010/09/26(日) 15:46:26
やべ、人に親切にされたから、自分も親切にしようと思ったら、被ったw
732デフォルトの名無しさん:2010/09/26(日) 15:53:35
>>728
雑魚の分際で死ねよ
733デフォルトの名無しさん:2010/09/26(日) 16:12:24
window.Hoge = {};
っていうのはnamespaceですか?
734733:2010/09/26(日) 16:13:04
すみません
JavaScriptスレと間違えた
735727:2010/09/26(日) 16:24:13
有難うございます
736デフォルトの名無しさん:2010/09/26(日) 16:32:31
>>704にあるような、コピーにおすすめのオプソを教えてくださいませんか。
737デフォルトの名無しさん:2010/09/26(日) 17:52:22
>>736
Tomcat

規模の小さいのがいいならcommons langとか。
これをジェネリスク対応にしていくw
738デフォルトの名無しさん:2010/09/26(日) 18:00:24
JAVA=ajax Tomcat みたいになってるよね最近
C#=.netみたいに
739デフォルトの名無しさん:2010/09/26(日) 18:26:54
JNAどうやって使うの?
740デフォルトの名無しさん:2010/09/26(日) 18:40:51
<>は何か特別な意味があるのでしょうか? 
プログラムを読み進めているのですが数行目で分からなくなりました。

Shell<DHT<String>> stdioShell = null;
の部分は Shell<DHT<String>>クラスをstdioShellで宣言してnullを代入している?などと考えたのですが、
そもそもクラスの宣言は Shell<DHT<String>> stdioShell = new Shell<DHT<String>> (引数)
のはずなので間違っている。上記の部分は何をしているんでしょう?
提示する情報が不足している場合はご指摘お願いします。

EclipceにおいてShell<DHT<String>>にマウスポインタを当てたところ、
Shell<DHT<String>>はow.tool.util.shellframework.Shell<DHT<String>>を指しているということがわかったので
該当のファイルを開いたところ、public final class Shell<T> implements Runnable, Interruptible {
といったクラスはあったのですが、Shell<DHT<String>>は見当たりませんでした。

プログラム一部

public static void main(String[] args) {
(new Main()).start(args);
}

protected void start(String[] args) {
Shell<DHT<String>> stdioShell = null;

stdioShell = this.init(args, System.in, System.out, true);
if (stdioShell != null) {
stdioShell.run(); // this call is blocked
}
}

ow.tool.util.shellframework.Shell<DHT<String>>
741デフォルトの名無しさん:2010/09/26(日) 18:45:31
>>740
ジェネリック
742デフォルトの名無しさん:2010/09/26(日) 18:56:10
素早い回答有難うございます。
ジェネリックスについて勉強します。
743デフォルトの名無しさん:2010/09/26(日) 19:41:51
Class<System> clazz = System.class;

の.classは何をしているメソッドなんですか?
ttp://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Class.html
↑での調べ方もよく分かっていませんが、それについてもお願いします
744デフォルトの名無しさん:2010/09/26(日) 19:52:30
何をお願いしますんだ?w
745デフォルトの名無しさん:2010/09/26(日) 20:13:19
>>743
メソッドではなくてクラスリテラルといいます
Systemクラスを表すClassオブジェクトが欲しいときにSystem.classと書きます
746デフォルトの名無しさん:2010/09/26(日) 20:34:16
ありがとうございました
747デフォルトの名無しさん:2010/09/26(日) 23:34:32
複数のクライアントと一つのサーバの間で、以下の機能をsocketプログラミングで作りたいと考えています。

クライアントがサーバにファイルをアップロードすると、
サーバは接続済みの全てのクライアントにそのファイルを流す。

これを実現するためのサーバ側のコードで悩んでいます。
まずアップロードされたファイルを受け取るためにソケットからinputStreamを取得しますが、
これを各ソケットのoutputStreamに流す時に、どのように実装すればいいのか分かりません。

一つのinputStreamをfor文で複数のoutputStreamに流そうとしても、最初のoutputStreamにしか流せないようです。
これはinputStreamが内部でどこまでデータを取り出したかを管理(?)してるからでしょうか。

他の案としては、一時的なファイルを作ってしまってそのファイルを複数のソケットが読めばできそうですが
どう考えても良いやり方とは思えません。

結局、巨大なbyte配列で一時的にデータを溜めるぐらいしか思いつきません。

何かよい方法は無いでしょうか。
748デフォルトの名無しさん:2010/09/26(日) 23:49:04
既視感わらた
749デフォルトの名無しさん:2010/09/27(月) 00:17:38
>結局、巨大なbyte配列で一時的にデータを溜めるぐらいしか思いつきません。
が1番スマートじゃないの?
配列長は巨大にする必要ないけど
750デフォルトの名無しさん:2010/09/27(月) 00:24:34
なにこいつw
やっぱ「ゆとり」は違うわw
751デフォルトの名無しさん:2010/09/27(月) 00:51:13
ゆとり
ゆとりま
ゆとらごん
752デフォルトの名無しさん:2010/09/27(月) 01:09:43
イオナデン
753デフォルトの名無しさん:2010/09/27(月) 01:12:12
754デフォルトの名無しさん:2010/09/27(月) 01:34:57
int ≠ ちんこ
755デフォルトの名無しさん:2010/09/27(月) 01:42:19
String ≒ ちんこ
756デフォルトの名無しさん:2010/09/27(月) 02:22:36
velocity でリストを逆順にループする方法ってなんかありますか?
$hoge.reverse($hogeList) みたいのを探したんだけどないお・・
757デフォルトの名無しさん:2010/09/27(月) 10:30:15
>>756
when postfixed to a column name the DESC keyword means descending order.
http://velosurf.sourceforge.net/vtl-reference.html#entity.order
758デフォルトの名無しさん:2010/09/27(月) 11:11:51
ジャバをちゃんとやるには英語が出来た方がいいんですか?
ウンコとかチンコじゃダメなんですか?
759デフォルトの名無しさん:2010/09/27(月) 11:38:27
ウンコとかチンコでいいですよ
760デフォルトの名無しさん:2010/09/27(月) 13:26:03
実際ウンコとかチンコと変わらんよ
プログラミング関連の英語なんか英語というより記号みたいなもん
ドキュメントとかは慣れれば英語そんなにわからなくても十分読める
761デフォルトの名無しさん:2010/09/27(月) 14:08:16
>>760を呼んで希望がわいてきたもうちょっと生きようと思ふ
762デフォルトの名無しさん:2010/09/27(月) 14:15:21
じゃあマイクロソフトは巻き糞とかチンカスとかでいいですか?
MSDN日本語版の説明はいつも意味不明ですよね?
763デフォルトの名無しさん:2010/09/27(月) 14:15:53
将棋の駒の動きはどんなコードを書いたらできるんでしょ?
764デフォルトの名無しさん:2010/09/27(月) 15:16:16
>>762
あるだけマシ
Javaのはもともと解説一行だから丁寧に訳せるんだよ
765デフォルトの名無しさん:2010/09/27(月) 18:07:44
理系AランTOEIC750ですが英語で読むのきついです
766デフォルトの名無しさん:2010/09/27(月) 18:08:34
C#とJAVAの強み弱み大きな違いを教えろ
767デフォルトの名無しさん:2010/09/27(月) 18:42:27
>>766
死ねよチンカス
768デフォルトの名無しさん:2010/09/27(月) 19:32:40
ttp://www.yahoo.co.jp/
Yahooのトップページの各枠を1つのMVCとして実装し、
各枠のhtml生成が終わったのちに、テンプレートを基にしたhtmlに出力するような
フレームワークってないでしょうか?
(枠の数はDBの設定等により動的に変わります)

Strutsのtilesを調べたのですが、各枠用のJSPが固定なため
いまいちです(状況によりhtmlを変更したい)

なにかおすすめありましたら教えてください
769デフォルトの名無しさん:2010/09/27(月) 19:53:18
770デフォルトの名無しさん:2010/09/27(月) 19:56:08
771デフォルトの名無しさん:2010/09/27(月) 20:15:03
>>768
wicket,xmlc
772デフォルトの名無しさん:2010/09/27(月) 21:06:51
>>757
師匠!それはvelosurfです!
それにSQLにDesc書けばおk、とかじゃなくて単純に逆順ループをしたいでござうr
773757:2010/09/27(月) 21:27:05
>>772
じゃあSortTool
774デフォルトの名無しさん:2010/09/27(月) 21:37:52
やっぱ「ゆとり」は違うわw
775デフォルトの名無しさん:2010/09/27(月) 22:11:50
もうめちゃくちゃ
776デフォルトの名無しさん:2010/09/27(月) 23:56:50
めちゃくちゃにしてえっ・・・!
777デフォルトの名無しさん:2010/09/28(火) 00:28:26
>>773
ソートじゃねぇ、逆順にしたいだけなんだ・・!
もう自作のReverseToolつくったは・・
778デフォルトの名無しさん:2010/09/28(火) 04:55:14
確かに逆順は自分で作った方が質の良いものができそうだな。
779デフォルトの名無しさん:2010/09/28(火) 10:13:53
作ったと言っても、中身はjava.util.Stackに出し入れするだけの単純なものだろ?
780デフォルトの名無しさん:2010/09/28(火) 11:10:26
jdbcのbatch処理で1000件のinsertを送っても、バッファエラーが起きずに成功するものでしょうか?
またその辺の仕様の取り決めってあったりするでしょうか?
781デフォルトの名無しさん:2010/09/28(火) 11:22:26
仕様は特に無さそうな気がする
心配ならSQLExceptionとOutOfMemoryErrorをキャッチしてバッチあきらめ処理に切り替えておけば大抵大丈夫なんじゃないか
782デフォルトの名無しさん:2010/09/28(火) 17:12:19
Javaでx^2-2x-3=0の解をニュートン法で求めたいのですがどういうプログラム書けば良いのですか?
783デフォルトの名無しさん:2010/09/28(火) 17:26:07
まずニュートン法はどこまで理解していて、どこからわからないのか。すべて理解しているのか。
Javaはどこまで理解しているのか、どこがわからないのか。
あなたのいっているプログラムでどこまでできてどこがわからないのか。
具体的に書かないと、ぐぐってきた、テキトーなサンプルを貼り付けられておしまいですよ
784782:2010/09/28(火) 17:39:46
Javaはまったくの初心者です;
785デフォルトの名無しさん:2010/09/28(火) 17:50:49
じゃぁニュートン法は理解しているものとして、
http://d.hatena.ne.jp/thilogane/20100227/p2
あたりみて、Java的にわからない箇所があったら「ここがわからん。」っていうと回答しやすいんじゃない?
リンクは、あなたが問題にしている式と似た2次方程式だからやり方もほとんど同じになると思います。
786デフォルトの名無しさん:2010/09/28(火) 18:02:29
>>782
ヤフれ
787782:2010/09/28(火) 18:19:43
うーん・・さっぱりわからない・・・
788デフォルトの名無しさん:2010/09/28(火) 18:24:55
>>780
普通なら1000件のinsertくらいでエラーは起きない
789デフォルトの名無しさん:2010/09/28(火) 18:29:49
DBのエラーって、そもそもどういう時に起こるんだ?
バッファエラーってのは、Java側?DB側のチューニングの問題?
790785:2010/09/28(火) 18:31:13
>>782
あ、リンク、3次方程式だった。。

リンク先がさっぱりわからないのなら、
ニュートン法を理解していないのか、Javaがまったく読めないのか。と推察します。
仮に「Javaがまったく読めない」のだったらJavaの基礎的なところを解説したサイトがあるのでそちらを参考にするとよいかと思います。
791デフォルトの名無しさん:2010/09/28(火) 19:11:33
swingのツリーの任意のノードにアプリケーション側からクリックイベントを発生させたいのですが方法はありますか?
792デフォルトの名無しさん:2010/09/28(火) 19:23:52
あれをcloseしてなくて1000件くらいでエラーになることはあるoracleとか
793デフォルトの名無しさん:2010/09/28(火) 19:56:38
ニュートン法かどうか解らんけど
java.awt.QuadCurve2D に二次方程式解かせることできるよー。
三次は CubicCurve2D ね。

なんでjava.lang.Mathに無いのかはよくしらん。
最近のGPUは方程式解く機能があるんだっけ?
794デフォルトの名無しさん:2010/09/28(火) 20:01:45
java.awt.geomだったゴメン
795デフォルトの名無しさん:2010/09/28(火) 20:02:23
ライブラリ主義コンプリートってのが典型的ジャバ信者
796デフォルトの名無しさん:2010/09/28(火) 20:46:17
>>791
「任意のノードとやらに相当するTreePathを作ってあげて
JTreeのfireTree***()に渡してあげるジョブ」を
イベントディスパッチスレッドに投入するといいんでないかい?
Javaの超初心者です。
ご教示の程よろしくお願いします。
(本文が長すぎるようなので、2度に分けて投稿します)

入門書を参考にして以下の2クラスを作成しました。
transferメソッドの第一引数は「型+変数」なので教科書どおりで理解できるのですが、
第二引数が「クラス名+インスタンス名」となっています。
なぜ、このような書き方が可能なのでしょうか?
(いろいろな文献にあたったのですが、このような書き方についての解説が見つかりませんでした)


public class OOPSample {

    public static void main(String[] args) {
        Account fromAccount = new Account(12345, 10000);
        Account toAccount = new Account(67890, 10000);
        fromAccount.transfer(1000, toAccount);
    }

}
public class Account {
    int id;
    int balance;
    
    Account(int id, int balance){
        this.id = id;
        this.balance = balance;
    }
    
    String info() {
        return "口座番号:" + this.id + "残高:" + this.balance + "円";
    }

    void transfer(int amount, Account toAccount){
        this.balance -= amount;
        toAccount.balance += amount;
        System.out.println("送信金額:" + amount + "円");
        System.out.println("送信元 " + this.info());
        System.out.println("送信先 " + toAccount.info());
    }
    
}
799デフォルトの名無しさん:2010/09/28(火) 22:02:49
そんなところでつまずいてるんじゃそもそも向いてないんだろう
800デフォルトの名無しさん:2010/09/28(火) 22:08:14
void transfer(int amount, Account toAccount)

ここか?
変数宣言のときも
Account toAccount;
って書くから、値がインスタンスってのは言語のルールでしょ
801デフォルトの名無しさん:2010/09/28(火) 22:18:09
>>797
クラスも型なのでクラス名は型名です
インスタンス名というものは無く、それはインスタンスを指しているだけのただの変数です
従って Account toAccount というのは、Accout 型の toAccount という変数です
おk?
皆さん、ご教示とご意見、ありがとうございます。

>>799
勉強を始めてから未だ3日目なので適性判定はご容赦を。
Javaの初仕事が目前に迫っているので、どうしても習得せねばならないのです。
当方、COBOLとPL/Iなら得意なのですが、オープン系の言語は初めてでして…

>>800
そこです。
値がインスタンスというのはJava言語のルールなのでしょうか。
済みませんが、いま一つ分かりません。
しかし、余りにも基礎的なことのようなので、もう少し参考書類を探してみます。

>>801
クラスも型なのでしょうか。
当方が持っている参考書では、変数の型とは「データをメモリに記憶する方法を定めたもの」であり、
int,long,float,double,char,boolean,Stringが一覧表で示されています。
教えていただいた内容は、ちょっと禅問答のような感じです。

いずれにせよ、皆さん、貴重な時間を割いていただいて、どうもありがとうございました。
いろいろなヒントを教えていただいたと思います。
感謝!
803デフォルトの名無しさん:2010/09/28(火) 22:43:24
>>802
それなら1年ぐらいロムってたらどうですか?
804デフォルトの名無しさん:2010/09/28(火) 22:47:45
オープン系の言語ってなんだよw
Javaはオラクルが全権掌握してるから単に言語としてはCOBOLの方がオープンだよ
805デフォルトの名無しさん:2010/09/28(火) 22:54:12
当方、COBOLとPL/Iなら得意なのですが、オープン系の言語は初めてでして…
806デフォルトの名無しさん:2010/09/28(火) 22:55:28
富士銀行系ですから
>>803
ご意見ありがとうございます。

しかし、突然Javaの仕事をすることになってしまい、
なるべく早く習得しなければならない羽目になっています。
それで、焦燥感に駆られて質問を書き込んでしまいました。
1年は待ってられない感じなんです。
「値がインスタンス」とか「インスタンスを指しているだけのただの変数です
従って Account toAccount というのは、Accout 型の toAccount という変数」
の意味が分かるような解説書やWebサイトをもしご存知でしょうか?
ご存知でしたら、是非ともお教えください。
808デフォルトの名無しさん:2010/09/28(火) 22:59:14
>>802
>int,long,float,double,char,boolean,Stringが一覧表で示されています。

Stringはクラスだよな?
809デフォルトの名無しさん:2010/09/28(火) 23:01:52
「データをメモリに記憶する方法を定めたもの」という意味ではクラスも型
静的言語でクラスを型と呼ぶのは結構一般的
810デフォルトの名無しさん:2010/09/28(火) 23:06:25
Javaの初仕事が目前に迫っているので、どうしても習得せねばならないのです。
インスタンスの意味を理解すればその文章の意味も分かるんじゃないかな
812デフォルトの名無しさん:2010/09/28(火) 23:09:31
PL/Iが本当に得意ならJavaやオブジェクト指向なんかは一週間あれば余裕で習得できますよ
813デフォルトの名無しさん:2010/09/28(火) 23:11:05
勉強を始めてから未だ3日目なので適性判定はご容赦を。
いつの間にか、たくさんの方にコメントをいただいてしまいました。
ありがとうございます。

>>808
さっそく参考書を調べたところ、「Stringクラスは、char型の配列をフィールとして
持つクラスです」との一文がありました。
とりあえず、この付近の文章を読んでみます。

>>809
禅問答っぽいですが、ヒントになりそうです。
(クラスなる言葉が出てくる言語は初めてなもので…)
いただいたコメントを何度も読んで、噛締め、咀嚼してみます。
815デフォルトの名無しさん:2010/09/28(火) 23:13:02
じゃあコツを教えよう
クラスは関数の飾り。インスタンスメンバは使うな。変数もメソッドも全部staticにしろ。
基本型以外は使うな。入出力はおまじないだから余計なことは考えず参考書からコピペしろ。
たくさんのコメントありがとうございます。

>>811
クラスは「ある処理に関するデータと処理内容をまとめて定義した設計書のようなもの」で
インスタンスは、その実体、という認識です。
しかし、まだ本当には理解しきれていないのでしょう。

>>812
励まし、ありがとうございます。
確かにCOBOLと比べればPL/Iの方がJavaに似た感じです(ぱっと見た目の話ですが)。
ですが、まだまだJavaの本質が「掴めていない」ように思います。

>>815
アドバイス、ありがとうございます。
まだまだピンと来ないJava用語が多いので、勉強します。
817デフォルトの名無しさん:2010/09/28(火) 23:41:36
個人的な事情をいちいち書いて言い訳がましい感じになるとうざがられるだけ
ですよ。
あとやたらへりくだる慇懃無礼な感じとかもね。
818デフォルトの名無しさん:2010/09/28(火) 23:41:50
引数の型で悩んだことないなぁ

Cとかやったら発狂しそうだな 関数のポインタとかで。
>>817
了解。
確かにそうでした。
820デフォルトの名無しさん:2010/09/29(水) 00:17:04
付け焼き刃でいくなら >>815
ただし後々痛い目に遭うこと間違いなし
821デフォルトの名無しさん:2010/09/29(水) 00:26:48
COBOLは文字型しかないとは聞いたことがあるが、
3日掛けて型と変数がわからないってレベルのそんなかけ離れた言語だったのか。
822デフォルトの名無しさん:2010/09/29(水) 00:31:12
java VB COBOL
823デフォルトの名無しさん:2010/09/29(水) 01:15:07
>>821
そんなことないよ。
かなりきめ細かく指定できる。

<数字はすべて十進1けたを1バイトの数字で表現する属性>
 PIC XXX 英数字3文字(3バイト)
 PIC X(256) 英数字256文字(256バイト)
 PIC 9(5) 数字5文字で十進5けたの符号なし整数を表す(5バイト)
 PIC 999V99 数字5文字で十進整数部3けた、小数部2けたの符号なし数を表す(5バイト)
 PIC 999PPP 数字3文字でその下に3けたの仮想的なゼロを補った数値を表す(3バイト)
 PIC Z(7)9 8けたまでで先頭のゼロをサプレスした符号なし整数(8バイト)
 PIC ZZZ9.9999 整数部4けた(ゼロサプレス)+小数点のピリオド+小数部4けた(9バイト)
 PIC -----9 5けたまでの符号付整数をゼロサプレスしたうえで先頭に符号を付与する(6バイト)

<バイナリや浮動小数点のデータ型…下記のUSAGE句を指定>
 USAGE BINARY 2の補数表現のバイナリ PICTURE句でけた数を指定
 USAGE PACKED-DECIMAL 1バイトで十進2けたを表現する PICTURE句でけた数を指定
 USAGE COMP-1 単精度浮動小数点 PICTURE句不要
 USAGE COMP-2 倍精度浮動小数点 PICTURE句不要
 USAGE COMP-3 PACKED-DECIMALと同義 PICTURE句でけた数を指定
 USAGE COMP-4 BINARYと同義 PICTURE句でけた数を指定
824デフォルトの名無しさん:2010/09/29(水) 02:15:02
>>819
Javaの絵本を適当に読んで
適当な入門サイトに載ってるプログラムをいくつか動かしてみる
そしたら電卓もどき程度は作れるようになるので
そこまで行けば後は脳が勝手に覚えてく
嘘じゃない
825デフォルトの名無しさん:2010/09/29(水) 08:01:31
nioにpipeがあったのでchannelとselectつかってスレッド間でデータを送受信するプログラムをつくってみましたが、
データの取りこぼしがでてしまいます。writerスレッドからlongで10から100までの数字をreaderスレッドに送ります。
どこが悪いのでしょうか。他にやりかたはあるでしょうか。

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.*;
public class Test {
static Selector selector;
static Pipe pipe;
static SelectableChannel writeChannel, readChannel;

public static void main(String[] args) {
try {
selector = Selector.open();
pipe = Pipe.open();
writeChannel = pipe.sink(); readChannel = pipe.source();
writeChannel.configureBlocking(false);
readChannel.configureBlocking(false);
// writeChannel.register(selector, SelectionKey.OP_WRITE);
readChannel.register(selector, SelectionKey.OP_READ);
}
catch(IOException e) {;}

new reader(selector, (ReadableByteChannel)readChannel).start();
new writer((WritableByteChannel)writeChannel).start();
}
}
826デフォルトの名無しさん:2010/09/29(水) 08:02:40
つづきです
class reader extends Thread {
Selector selector; ReadableByteChannel readChannel;
byte[] Buf; ByteBuffer Buffer;

public reader(Selector selector, ReadableByteChannel readChannel) {
this.Buf = new byte[32]; this.Buffer = ByteBuffer.wrap(Buf);
this.selector = selector; this.readChannel = readChannel;
}
public void run() {
while (true) {
try { selector.select();} catch(IOException e) {;};
for (SelectionKey selectionKey: selector.selectedKeys()) {
if (selectionKey.isReadable()) {
Buffer.clear();
readChannel = (ReadableByteChannel)selectionKey.channel();
try {
readChannel.read(Buffer); Buffer.flip();
System.out.println("Receive: " + Buffer.getLong());
}
catch (IOException e) {;}
}
}
}
}
}
827デフォルトの名無しさん:2010/09/29(水) 08:05:03
最後です
class writer extends Thread {
WritableByteChannel writeChannel;
byte[] Buf; ByteBuffer Buffer;

public writer(WritableByteChannel writeChannel) {
this.Buf = new byte[32]; this.Buffer = ByteBuffer.wrap(Buf);
this.writeChannel = writeChannel;
}
public void run() {
int i = 0;
while (i++ < 10) {
/// try { Thread.sleep(0);} catch(InterruptedException e) {;}
Buffer.clear();
Buffer.putLong(i*10);
Buffer.flip();
try {
writeChannel.write(Buffer);
}
catch (IOException e) {;}
}
}
}
828デフォルトの名無しさん:2010/09/29(水) 09:34:28
勉強を始めてから未だ3日目なので適性判定はご容赦を。
Javaの初仕事が目前に迫っているので、どうしても習得せねばならないのです。
829デフォルトの名無しさん:2010/09/29(水) 09:35:48
>>819
キモイおっさん死ねよ
830デフォルトの名無しさん:2010/09/29(水) 09:39:57
コボラーってさ、sin,cosなんか一度も使ったことないんだろうね。
831デフォルトの名無しさん:2010/09/29(水) 09:47:15
今ならJavaプログラマなんて履いて捨てるほどいるのに
なぜコボラーを使おうとするのか
832デフォルトの名無しさん:2010/09/29(水) 09:56:54
オブジェクト指向の代表といわれるJavaも結局はプログラミング言語ですよ。
もしCOBOLを言語としてちゃんと理解していたならJavaを習得するのだってそんなに苦労はないと思います。
833デフォルトの名無しさん:2010/09/29(水) 09:57:43
コネやコミュ力も実力の内だからなあ。
ネット上の教えて君みたいな人の方が現実世界では案外と上手に生きて行けるもんだ。
いくら頭がよくてもコミュ障害気味のお前らよりは仕事出来るだろうな。
834デフォルトの名無しさん:2010/09/29(水) 09:58:20
>>831
ええ?どうしてか分からないんですか?
「メソッドの引数としてクラス名とインスタンス名を使用」だからですよ
835デフォルトの名無しさん:2010/09/29(水) 10:00:38
>>833
1年は待ってられない感じなんです。
ご存知でしたら、是非ともお教えください。
836デフォルトの名無しさん:2010/09/29(水) 10:07:28
COBOLはしらんけど変数と変数名とスコープが分かってないことは分かった
837デフォルトの名無しさん:2010/09/29(水) 10:11:40
基礎が理解できていないのに、とりあえず急ぐからと
やっていくと、納品近くなって壊滅的な被害が出るんだよな。
838デフォルトの名無しさん:2010/09/29(水) 10:13:20
プログラミング言語では
age = age + years(C言語などでは age += yearsのように略記できる)
と書かれるが、COBOLでは
ADD YEARS TO AGE (英語でそのまま「年数を年齢に加える」)
となる。このように、数学やアルゴリズムの知識がほとんど無くとも構文上の約束事(全て現在形、語尾変化なしなど)さえ憶えて、
英語による理路整然とした記述ができれば、COBOLのプログラムを取り扱うことができるようになっている。
つまり事務処理の手順を逐一細かく(英語で)記述していけば事務処理が電算自動化できるという、工程的利点が存在する。
さらにプログラムのコードそのものがプログラムの機能を説明する仕組みになっているので、コードをそのまま「読む」ことができるという利点もある。
839デフォルトの名無しさん:2010/09/29(水) 10:14:32
>>837
しかし、突然Javaの仕事をすることになってしまい、
なるべく早く習得しなければならない羽目になっています。
840デフォルトの名無しさん:2010/09/29(水) 10:18:18
でも今はコネやコミュ力があっても失業中のJavaプログラマいっぱいいるよ。
ないから失業してるっていうかもしれないけど、そんなことはなくて
実力のないコボラーでもたまたまJavaプログラマを探すのが面倒と
思ってしまっている顧客に雇ってもらえてる人もたくさん居る。
だから顧客には勇気を持って取り替えてほしい。
今がよい機会だよ。
841デフォルトの名無しさん:2010/09/29(水) 10:23:14
>>839
1つ言えるなら、とにかく人の作ったソースを読みまくれ。
昔と違って、javaの基礎の解説サイトなんて唸るほどある。

手っ取り早く「(できればコードを)教えてくれ」って言いたい気持ちは解るが、
それに固執していたら、進むモノも進まなくなるよ。
今苦労するのが、後で身をたすく。
842デフォルトの名無しさん:2010/09/29(水) 10:30:25
このスレには失業中のjavaPGしかいないんだから難しい質問は遠慮してください
843デフォルトの名無しさん:2010/09/29(水) 10:35:15
>>825
32バイトのバッファに読み込んでlong1個(8バイト)しか表示してないから
読み込んだデータは全部表示しなきゃ、そりゃ取りこぼしたようにも見える
844デフォルトの名無しさん:2010/09/29(水) 10:42:57
>>837,841
勉強を始めてから未だ3日目なので適性判定はご容赦を。
845デフォルトの名無しさん:2010/09/29(水) 10:48:06
COBOLの人はアセンブラとかx86とかjvmとか行番号で処理を羅列していくような構文の言語の方が馴染みやすいと思う。
846デフォルトの名無しさん:2010/09/29(水) 11:00:39
Lispとかに比べりゃコボルもJavaも似たようなもんだろ
847デフォルトの名無しさん:2010/09/29(水) 11:08:05
>>814
いただいたコメントを何度も読んで、噛締め、咀嚼してみます。
848デフォルトの名無しさん:2010/09/29(水) 11:22:16
なんみょう〜だ〜
なんみょう〜だ〜
849デフォルトの名無しさん:2010/09/29(水) 11:38:33
ここで質問すべきか迷いましたが…。

言語をJavaで、Webプログラミングしようとしたら、
今時なトレンドは、どんなスタイルなのでしょうか?
今もStrutsとかがメインだったりするんでしょうか?
850デフォルトの名無しさん:2010/09/29(水) 11:47:19
Servlet+JSPがトレンド
851デフォルトの名無しさん:2010/09/29(水) 11:50:42
今の流行りはRailsモドキとVelosurf
852デフォルトの名無しさん:2010/09/29(水) 12:04:49
853デフォルトの名無しさん:2010/09/29(水) 12:23:26
>>823

PL/I JAPAN

HELLO:PROC OPTIONS(MAIN);
DCL HELLO1 CHAR(12) INIT('HELLO WORLD!');
DCL 1 HELLO2,
2 * CHAR(12) INIT('HELLO WORLD!');
DISPLAY('HELLO WORLD!');
DISPLAY(HELLO1);
DISPLAY(HELLO2);
END HELLO;
854デフォルトの名無しさん:2010/09/29(水) 13:49:23
私もコボラーだったけど、Javaの本を10冊位読んで、APIマニュアルを精読して、自分でサンプルプログラム書きまくったらJavaでプログラムできるようになったよ。
がんばって。
855デフォルトの名無しさん:2010/09/29(水) 13:57:48
1から習得するより楽でしょ
856デフォルトの名無しさん:2010/09/29(水) 14:01:08
1年は待ってられない感じなんです。
857デフォルトの名無しさん:2010/09/29(水) 14:04:54
もう許してあげて
858デフォルトの名無しさん:2010/09/29(水) 14:12:36
859デフォルトの名無しさん:2010/09/29(水) 16:01:43
>>843
どうもありがとうございます。
そうなんです。Cでいうところのflush的なものがないので困っているのです。

対処療法としてみつけたのがsleep(0)を挟み込むことで、
827のwriterでコメントアウトしているsleep(0)を実行するだけでも取りこぼしは無くなります。
try { Thread.sleep(0);} catch(InterruptedException e) {;}
しかし、これで確実にデータを渡せるとはとても思えないので困っているところです。

860デフォルトの名無しさん:2010/09/29(水) 16:17:29
>>859
いやいやいやいや、flush関係ないし
読み込んだものを表示してないだけだって言ってるじゃん
こうするんだよ
if (selectionKey.isReadable()) {
readChannel = (ReadableByteChannel) selectionKey.channel();
try {
readChannel.read(Buffer);
Buffer.flip();
while (Buffer.remaining() >= 8) {
System.out.println("Receive: " + Buffer.getLong());
}
Buffer.compact();
} catch (IOException e) {;}
}
861デフォルトの名無しさん:2010/09/29(水) 16:27:52
>>860
たびたびありがとうございます。

書いたプログラムは実験用で、実際は送るデータ長は不定なんです。8バイトとは限りません。
そういう場合はどうすればよいのでしょうか。
862デフォルトの名無しさん:2010/09/29(水) 16:30:40
861つづき
java.nio.channels.spi.AbstractInterruptibleChannel
のbegin,endが関係あるのかと思って
try {
writeChannel.begin();
writeChannel.write();
} finally {writeChannel.end(true);}
などやってみましたが、
begin() has protected access in java.nio.channels.spi.AbstractInterruptibleChannel
こんなエラーメッセージでつまっているところです。
863デフォルトの名無しさん:2010/09/29(水) 16:31:46
>>861
最初にデータ長を送るか、改行・空白等で区切る
ファイルの読み書きと同じだと思え
不定長のデータを何の情報もなしに区切れるわけない
864デフォルトの名無しさん:2010/09/29(水) 16:37:49
>>860
今、レス書き込んだ直後に思ったのですが、
書き込みスレッドも読み込みスレッドも1つづつで、送受信の混信はないと仮定できるので(別々のスレッドからのデータが混じることはない)

書き込み/読み込みを2段階にわけ、
(1)最初4バイトで次に送るデータ長を送信、
(2)本当のデータを送信
とすることは可能ですね。汚い実装ですが。

できれば、pipeのchannelでデータを確実に送る方法で実装したいです。
pipeはもともとstreamだから、そもそもメッセージを送るという場面では使わないのかもしれないのですが。
channelだとByteBufferが使えるので楽なのと、
selectionKeyが使えるのがやはり楽だったり後で多重化できるのが利点です。
865デフォルトの名無しさん:2010/09/30(木) 02:32:33
サーブレットの中でスレッドをnewしてnewしたスレッドの中で処理をさせることって可能ですか?
スレッドをスタートさせた後、サーブレットの処理は無限ループさせ、スレッドが終了するまで1秒スリープしてはスレッドの実行状態と経過時間を確認を行ないます。
そして、20秒過ぎてもスレッドが実行中心ならタイムアウトとしてスレッドをストップ、またはストップさせないでループを抜ける。そんな処理を書きたいのです。
866デフォルトの名無しさん:2010/09/30(木) 09:08:58
できる
867デフォルトの名無しさん:2010/09/30(木) 10:42:52
>>866
回答ありがとうございます。
書いてみたのですが上手くいかなかったので、もしかしてダメなのかと思って質問させていただきました。
ソースをもう少し見直してみます。
868デフォルトの名無しさん:2010/09/30(木) 11:02:53
pseudo code だけどこんな感じじゃね?
class さーぶれっと {
volatile boolean fin_heavy = false; // 重い処理終わったよフラグ

略 onGet(略) {

Thread worker = new Thread(new Runnable() {
public void run() {
// 重い処理
fin_heavy = true;
}
});
worker.start();

// worker 監視部分
while (true) {
sleep(1000);
if (fin_heavy)
break; // 重い処理終了
if (isTimeout())
break; // 重い処理終わらずにタイムアウト
}
}
}
869デフォルトの名無しさん:2010/09/30(木) 11:11:59
サーブレットはマルチスレッドで呼ばれるからフィールドにフラグ持つのはまずい
Executor楽でおすすめ

static ExecutorService executor = Executors.newCachedThreadPool();
void doGet(〜) {

Future<?> f = executor.submit(new Runnable(){
public void run() {
〜重い処理〜
}
});
f.get(20, SECONDS);

}
870デフォルトの名無しさん:2010/09/30(木) 12:11:46
>>868さん
レスありがとうございます。
そんな感じに書いているつもりなんですが、一回目はキチンと正常終了しているのにF5でブラウザリロードすると1秒でタイムアウトしてしまってまして><

>>869さん
助言ありがとうございます。
サーブレットのクラス変数はダメなんですよね、サーブレットのメソッドの中でnewしているクラス変数もマズいですか?
とりあえずexecutorぐぐってきます。
871デフォルトの名無しさん:2010/09/30(木) 12:23:23
>>868
なかなかの名プログラム
872デフォルトの名無しさん:2010/09/30(木) 13:15:24
>>869
そういえばタイムアウト付きFutureがあった
確かにフィールドはまずいですなorz

>>870
タイムアウトカウンタをフィールド持ちしてるとか
さくっと書ける >>869 の実装がお勧め

>>871
むしろ迷orz
873デフォルトの名無しさん:2010/09/30(木) 17:46:03
class Tes {
public static void main (String args[]) {
int x = (int)(Math.random() *9);
System.out.println(x);

if ( x == 0 || x == 1 || x == 2) {
System.out.println(1);
}
if ( x == 3 || x ==4 || x == 5) {
System.out.println(2);
}
if ( x == 6 || x ==7 || x == 8) {
System.out.println(3);
}
}

}

このような1〜3を出力するプログラムがあったとして、その出力された数字を今度は足したり引いたり計算をさせるにはどうやって書けばいいでしょうか?
874デフォルトの名無しさん:2010/09/30(木) 17:54:45
>>873
int y = 0;
if ( x == 0 || x == 1 || x == 2) {
y = 1;
}
if ( x == 3 || x ==4 || x == 5) {
y = 2;
}
if ( x == 6 || x ==7 || x == 8) {
y = 3;
}
のようにして、それからyを足したり引いたり計算をすればいいです
875デフォルトの名無しさん:2010/09/30(木) 17:56:59
というか、
if ( x < 3) とかじゃダメなのかな?
876デフォルトの名無しさん:2010/09/30(木) 18:02:07
というか,
y = x / 3 じゃダメなのかな?
877デフォルトの名無しさん:2010/09/30(木) 18:08:15
>>874
あっどうです^^

>>875
こういう事ですよね?

if ( x <=2 ) {
System.out.println(1);
}
if ( x <=3 || x >=5) {
System.out.println(2);
}
if ( x <=6 || x >= 8) {
System.out.println(3);


これだと、>>873にならない出力結果になってしまうんですよ(TT)
878デフォルトの名無しさん:2010/09/30(木) 18:08:44
というか、
そもそも計算してどうするのかな?
879デフォルトの名無しさん:2010/09/30(木) 18:09:40
>>877
>if ( x <=3 || x >=5) {

不等号の向きがおかしいぜ
880デフォルトの名無しさん:2010/09/30(木) 18:11:11
>>877

if ( x < 3) {
y = 1;
}
else if ( x < 6) {
y = 2;
}
else if ( x < 9) {
y = 3;
}

単純にこうじゃないの?
881デフォルトの名無しさん:2010/09/30(木) 18:20:51
>>878

ランダム値の値が
0〜2の時、1点
3〜5の時、2点
6〜8の時、3点

でこれを数回繰り返し合計点を計算するプログラムを作りたかったんです。
882デフォルトの名無しさん:2010/09/30(木) 18:27:09
>>881

int sum = 0;
int loop = 数回

for (int i=0;i < loop;i++) {
int x = 0〜8のランダム値を返すよ();
int point = (x / 3) + 1;
sum += point;
System.out.printf("%d 回目 らんだむ=%d ぽいんと=%d 合計=%d%n", i+1, x, point, sum);
}
883デフォルトの名無しさん:2010/09/30(木) 18:28:14
||と&&を勘違いしてないか
884デフォルトの名無しさん:2010/09/30(木) 18:30:16
int sum = 0;
int loop = 数回
int[] point_tbl = new int[]{1,1,1,2,2,2,3,3,3};

for (int i=0;i < loop;i++) {
int x = 0〜8のランダム値を返すよ();
int point = point_tbl[x];
sum += point;
System.out.printf("%d 回目 らんだむ=%d ぽいんと=%d 合計=%d%n", i+1, x, point, sum);
}
885デフォルトの名無しさん:2010/09/30(木) 18:51:51
エラーが出てしまいます><;
886デフォルトの名無しさん:2010/09/30(木) 19:16:21
質問してやってるんだから回答者はちゃんとコンパイル通って動作確認すんだものだけ載せるように!
887デフォルトの名無しさん:2010/09/30(木) 19:19:35
そして誰も (回答者が) いなくなった・・・
888デフォルトの名無しさん:2010/09/30(木) 21:26:34
javaでexcelファイルをPDFに変換することは出来るでしょうか?
889デフォルトの名無しさん:2010/09/30(木) 22:07:29
お前には無理
890デフォルトの名無しさん:2010/09/30(木) 22:08:37
>>888
POI使う
891デフォルトの名無しさん:2010/09/30(木) 22:26:07
COM使える言語で作って別プロセスとして呼んだほうが早い
892デフォルトの名無しさん:2010/09/30(木) 22:32:15
>>888
オープンオフィスのライブラリを使うべし
893デフォルトの名無しさん:2010/09/30(木) 23:06:12
お前には無理
894デフォルトの名無しさん:2010/09/30(木) 23:15:10
お前なら出来る
895デフォルトの名無しさん:2010/10/01(金) 00:37:34
お前しかいない
896デフォルトの名無しさん:2010/10/01(金) 10:01:00
Yes.you can!
897デフォルトの名無しさん:2010/10/01(金) 12:34:26
Head first Javaの第2版ってもう内容的に古いですか?
898デフォルトの名無しさん:2010/10/01(金) 16:11:30
1.6以後に出てなかったっけ?
899デフォルトの名無しさん:2010/10/01(金) 22:46:10
今月の日経ソフトウェアでjavaに関する、大きな記事が載っていた
factoryパターンを使ってmysql,postgresqlの、どっちにも対応させようってコードがあったと思う

本当にそんな事して意味あんのか?
ありえねー事をサンプルにしているなんて無駄としか思えない
900デフォルトの名無しさん:2010/10/01(金) 22:46:32
新しいの出てるよ。邦訳は知らんが。
901デフォルトの名無しさん:2010/10/01(金) 23:24:02
>>898-900
ありがとう。
第3版出てますか?
だったら訳書出るまで待ったほうが良いよね。
902デフォルトの名無しさん:2010/10/01(金) 23:26:49
orマッパのメリットを教えてください
903デフォルトの名無しさん:2010/10/01(金) 23:28:32
SQLを書かなくていい
でも俺はSQLを書く方が好き
904デフォルトの名無しさん:2010/10/01(金) 23:39:53
mysql,postgresqlの、どっちにも対応させることに意味はあまり無いだろうが
factoryパターンの例題としてならば十分意味がある
905デフォルトの名無しさん:2010/10/02(土) 00:00:21
ありえねーと言ったらサンプルより現場の方がそうだったりする
906デフォルトの名無しさん:2010/10/02(土) 01:04:01
最近mysqlからポスグレに移行したけど、
元々JPA使ってたから苦労ほとんどなかった。

一部の型がうまく移行できなかったとかあったけど、1時間で解決したな。
907デフォルトの名無しさん:2010/10/02(土) 01:05:15
わざわざどうして移行したんですか?
908デフォルトの名無しさん:2010/10/02(土) 01:16:27
ライセンス問題。
909デフォルトの名無しさん:2010/10/02(土) 01:24:36
ですよね
910デフォルトの名無しさん:2010/10/02(土) 09:23:38
ストアドだらけのシステムだとストアド移植するのが大変で
DB移行なんて無理
911デフォルトの名無しさん:2010/10/02(土) 10:59:45
>>910
でもさ、業務アプリケーションはスピード出すためにストアドばっかり使うよね
912デフォルトの名無しさん:2010/10/02(土) 11:29:50
>>908
スレ違いだけどmysql(community editionだと思うが)にライセンス問題なんて発生するの?
913デフォルトの名無しさん:2010/10/02(土) 14:37:02
Oracleになったからだろ。
ウチの会社でもmysqlもよく使われてたけど最近はほぼpostgres一本になった。
914デフォルトの名無しさん:2010/10/02(土) 16:42:57
それはオラクル営業部隊に対する反抗心からじゃないの?
915デフォルトの名無しさん:2010/10/02(土) 17:17:41
JPAで再帰クエリーって可能?SQLを書かないと無理?
916デフォルトの名無しさん:2010/10/02(土) 20:57:52
>>625
画面遷移を伴わないブラウザ-サーバ通信。
SwingからWebアプリに移ると、これが無いとやっていけん。
917デフォルトの名無しさん:2010/10/03(日) 00:07:31
>>911
そう?1テーブル1億レコード程度までなら、普通にJavaから実行している。
APサーバとDBサーバの間の帯域がダメダメな場合は、ひょっとしたらストアドプロシージャつかうかもだけど。
帯域がちゃんとしている場合ってそんなに処理スピードかわるの?
918デフォルトの名無しさん:2010/10/03(日) 00:17:59
昔の人はストアド使いたがるよね
完全に時代遅れ
919デフォルトの名無しさん:2010/10/03(日) 00:22:47
>>913
Oracleになったことでどんなライセンス問題が発生するの?
920デフォルトの名無しさん:2010/10/03(日) 01:04:04
>>919
フリー版が無くなる可能性がある。
921デフォルトの名無しさん:2010/10/03(日) 07:53:45
将来性が不安だから早めに移行してしまおうってのならわからんでもないけど、
ライセンス問題ってのは違うよね。
今使ってるフリー版が使えなくなるわけじゃなし。
922デフォルトの名無しさん:2010/10/03(日) 08:01:15
JavaMEのライセンス料が入らなくなるから、Androidから徴収しようってのがひとつの理由らしいね。
Javaコミュニティそのものを攻撃しているというのは全くのデマ。
むしろOracleはSun以上にJavaFXを発展させる意思があるから、頼もしいくらいだよ。

SpringSourceの人が言ってるが「Oracleは信頼されていない」ってのは克服すべきだけど。
923デフォルトの名無しさん:2010/10/03(日) 09:16:09
クライアントにも力入れてる姿勢を見せとかないと乞食コミュニティがうるさいからな
924デフォルトの名無しさん:2010/10/03(日) 16:37:19
末端からすると言語多すぎるからちょっとぐらい淘汰されるのも良いけど
925デフォルトの名無しさん:2010/10/03(日) 16:52:06
SQLは第一に淘汰されるべき
926デフォルトの名無しさん:2010/10/03(日) 17:04:56
JavaFX Scriptは淘汰されたね
927デフォルトの名無しさん:2010/10/03(日) 17:18:01
>>926
たぶん気のせい
928デフォルトの名無しさん:2010/10/03(日) 17:41:13
>>747
前に質問してた人だよね?俺回答したと思うんだけど試した?
929デフォルトの名無しさん:2010/10/03(日) 19:07:05
>>923
Oracleはコミュニティなんか見てないだろ。
930デフォルトの名無しさん:2010/10/03(日) 19:42:15
Swingが生まれてからもう何年も経つのに、未だに開発環境のデファクトスタンダードどころか泡沫環境ばかりだというのは驚くほかない
931デフォルトの名無しさん:2010/10/03(日) 19:46:24
結局サーバー屋の道具だったってこと
932デフォルトの名無しさん:2010/10/03(日) 23:05:16
Windows + Java6

ProcessBuilder pb = new ProcessBuilder("hoge.cmd");
Process process = pb.start();

この時に、プロント画面を表示させたいんだけど、何か方法あるでしょうか?
933デフォルトの名無しさん:2010/10/04(月) 00:10:46
プロトンKR
934デフォルトの名無しさん:2010/10/04(月) 00:42:14
プログラミングって一文字間違えたらおしまいの世界なのに、
こう、おもしろ用語がどんどん生まれるって、やっぱり向いてない人が
無理しなければならない状況がいっぱいなのかな?
935デフォルトの名無しさん:2010/10/04(月) 01:11:52
Hoge hoge = method(Hoge.class, foo);

のように、引数1にキャストしたいクラス、引数2にキャストしたいオブジェクトを入れ
fooをクラスHogeにキャストしてくれるようなメソッドを作ることは出来ますか?
ジェネリクスを使えば出来そうかと思い、下記のようにしたのですが出来ませんでした。

public <T> T method(T _class,Object hoge){
return (T)hoge;
}
936デフォルトの名無しさん:2010/10/04(月) 01:27:42
>>935
ん、出来てるんじゃね。
937デフォルトの名無しさん:2010/10/04(月) 01:35:31
出来てねぇよ

public <T> T method(T clazz, Object obj){
  return clazz.cast(obj);
}
938デフォルトの名無しさん:2010/10/04(月) 03:34:48
>>937
T clazzじゃなくてClass<T> clazzだな。
939935:2010/10/04(月) 03:47:17
>>938
ありがとうございます、成功しました。
半ば諦めていたので、助かりました。
940デフォルトの名無しさん:2010/10/04(月) 08:31:27
clazzって何ですか?
941デフォルトの名無しさん:2010/10/04(月) 08:33:32
classは予約語なので変数名として使えないから。
942デフォルトの名無しさん:2010/10/04(月) 09:27:53
慣用句っていうのかな。Class<?> clazzとかはイディオムですね。
943デフォルトの名無しさん:2010/10/04(月) 09:30:37
clathのほうが発音は近いのに
crassはクレイスになるけど日本人的なのに
とか>>942を見て思った
944デフォルトの名無しさん:2010/10/04(月) 10:05:39
Sun製のソースだと「klass」も多いよな
945デフォルトの名無しさん:2010/10/04(月) 10:39:47
cls も使う
946デフォルトの名無しさん:2010/10/04(月) 11:57:27
orzも使う
947デフォルトの名無しさん:2010/10/04(月) 12:09:20
Or2 =3
948デフォルトの名無しさん:2010/10/04(月) 12:54:51
object resize zero
949デフォルトの名無しさん:2010/10/04(月) 14:20:52
>>935
実質何の意味もないよそれ
(Hoge)(Object)foo と同じ
950デフォルトの名無しさん:2010/10/04(月) 14:29:02
そんなこと聞いてません
951デフォルトの名無しさん:2010/10/04(月) 15:49:01
JRE1.6u19からアプレットでapache-commons系のライブラリを使用するとセキュリティ警告が表示されるようになりました。
何でも混合モードというものに引っかかったらしいです。
アプレット用のjarは自身のキーで署名しましたが、ライブラリjarは署名していないため、この形態は危険だっと認識されたようです。

アプレットの設定でこれを警告にしない設定をすれば回避できますが、
この設定をせずに、警告を出さず署名済みアプレットでapache-commons系のライブラリを使用させることは出来るでしょうか?
952デフォルトの名無しさん:2010/10/04(月) 20:56:00
commonsにも署名すればいんじゃね
953デフォルトの名無しさん:2010/10/05(火) 10:32:28
>>952
同じキーで署名したのですが、警告ダイアログは依然出てしまいます。
ライブラリを全て解凍し、アプレット用のjarひとつにまとめましたが、それでも警告が出ます。
954デフォルトの名無しさん:2010/10/05(火) 11:46:24
>>953
マニフェストファイルに何か書けっていうの見つけたよ。
ttp://download.oracle.com/javase/6/docs/technotes/guides/jweb/mixed_code.html
955デフォルトの名無しさん:2010/10/05(火) 13:35:43
ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/1038.java
このプログラムの画面のサイズを変更するのはどうしたらいいんでしょうか?
956デフォルトの名無しさん:2010/10/05(火) 13:45:17
//<applet code="A.class" width="600" height="300"></applet>
たしか、この部分をアプレットのテスト実行機能(appletviewer.exe)が読んでる。
実際にWebページに貼り付ける時と同じサイズにしとこう。
957デフォルトの名無しさん:2010/10/05(火) 13:51:01
>>956
widthとheightの数値を変えればいいのですか?
958デフォルトの名無しさん:2010/10/05(火) 13:53:26
>>956
あ。html側の設定を変えたらよかったんですね。理解しました.
ありがとうございます
959デフォルトの名無しさん:2010/10/05(火) 13:53:54
そんなもん実際に試してダメだったときに聞けよ。
Javaの初心者はともかく、質問の初心者はお断り。
960デフォルトの名無しさん:2010/10/05(火) 14:20:19
お断りだ。
961デフォルトの名無しさん:2010/10/05(火) 17:01:53
JPanelでダブルクリックで展開・格納できる機能を実装したいのですが展開・格納はどのクラスを使ったら良いでしょうか?
イメージとしては

Item → Item
      メモ 
      重要度

のようにダブルクリックで項目が展開されるものです。
962デフォルトの名無しさん:2010/10/05(火) 17:06:46
JTreeじゃダメなの?SwingにどんなUIがあるか一度調べたら?
963デフォルトの名無しさん:2010/10/05(火) 17:18:05
JTree で気に食わないなら自作するしかないね。
964デフォルトの名無しさん:2010/10/05(火) 19:31:04
質問です。
コンストラクタの引数にthisが入ってる場合、これって何を指してるのでしょうか。

Test t = new Test(this);
965デフォルトの名無しさん:2010/10/05(火) 19:32:24
呼び出し元のクラスのインスタンス自身。
966デフォルトの名無しさん:2010/10/05(火) 19:55:13
むぅ・・・いまいちピンと来ないです。;
下の場合、HomeAppliのインスタンスを引っ張ってきてるってことで良いのでしょうか。

public class HomeAppli {
MList nameList;

public void start() {
nameList = new MList(this);
}
}
967デフォルトの名無しさん:2010/10/05(火) 20:17:16
tに聞いて見るのが一番よ
968デフォルトの名無しさん:2010/10/05(火) 20:47:54
良いですよ
969デフォルトの名無しさん:2010/10/05(火) 21:11:58
>>966
start()はHomeAppliクラスのインスタンスメソッドだから、
それを呼び出すためにはHomeAppliのインスタンスが必要。
new MList(this)のthisはそのstart()を呼び出すのに利用したインスタンスへの参照を表す。
970デフォルトの名無しさん:2010/10/05(火) 21:13:15
ありがとうございました。
ちゃんと調べてたら>>966の通りで合ってました。

しかし、携帯アプリのソースコードは煩雑で読みにくい・・・。
(サンプルソースがクソなだけなのかもしれませんが。)
971デフォルトの名無しさん:2010/10/05(火) 21:14:23
>>970
おまえの糞はこんがり臭そうだ
972デフォルトの名無しさん:2010/10/05(火) 21:19:33
他人のコードにケチつけるレベルじゃないだろ
973デフォルトの名無しさん:2010/10/05(火) 23:14:45
>>930
日本語で
974デフォルトの名無しさん:2010/10/05(火) 23:54:50
>>962
>>963
IDは変わってしまいましたがありがとうございます!
JTreeというものがあるんですね・・・当方javaを始めたばかりで知らないクラスばかりでした。
早速試してみます!本当にありがとうございました!
975デフォルトの名無しさん:2010/10/06(水) 00:36:21
ム板でIDとな
976デフォルトの名無しさん:2010/10/06(水) 00:53:09
977デフォルトの名無しさん:2010/10/06(水) 11:18:20
OracleからダウンロードしたJDKってデバッグオプションなしでコンパイルされたものですか?
978デフォルトの名無しさん:2010/10/06(水) 11:20:52
>>970
確かに携帯Javaは速度出すためにクラス数制限して可読性損なったりするけど
お前さんの場合は多分勉強不足よ
979デフォルトの名無しさん:2010/10/06(水) 12:00:48
わたってきたObject型が任意のクラスの配列型であるかの判断はどうすればいいですか?
980デフォルトの名無しさん:2010/10/06(水) 12:05:37
if (obj instanceof Foo[]) {
}

で判断できない?
何か悪い設計してそうだ。
981デフォルトの名無しさん:2010/10/06(水) 12:13:24
if(obj.getClass().isArray()){
}
982デフォルトの名無しさん:2010/10/06(水) 12:55:17
どうしてJavaにはconstがないんですか?
気持ち悪いです
983デフォルトの名無しさん:2010/10/06(水) 13:16:08
知らん。そもそもfinal修飾子があるから要らない。
finalはコンストラクタ内の変数操作を許すから、constとは違うけどね。
984デフォルトの名無しさん:2010/10/06(水) 13:42:56
配列クラスって元々何のために動的に作られるのかな?
したのメソッドを実行してふと考え込んでしまった…

new String[]{"aaa", "bbb"}.getClass().getDeclaredConstructors(); → 空
new String[]{"aaa", "bbb"}.getClass().getDeclaredFields(); → 空
new String[]{"aaa", "bbb"}.getClass().getDeclaredMethods(); → 空
985デフォルトの名無しさん:2010/10/06(水) 13:48:12
知らん。たぶんヒープに持ってくためのプレースホルダだろ。
986デフォルトの名無しさん:2010/10/06(水) 13:50:46
知らないなら黙っててもらえますか?
はっきり言って邪魔です
987デフォルトの名無しさん:2010/10/06(水) 13:53:19
お前は相手がホントに理解して回答を返してくれると思ってるのかと
988デフォルトの名無しさん:2010/10/06(水) 14:10:15
回答者のレベルを考えて

 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」

以外の質問は控えてください
989デフォルトの名無しさん:2010/10/06(水) 14:49:31
>>984
ちなみに、配列のオーバフローをチェックするに当たるメソッドがgetDeclaredMethodsで出てくると思って期待していたんですが…
990デフォルトの名無しさん:2010/10/06(水) 15:13:44
>>987
おまえはなにさまのつもりだ
991デフォルトの名無しさん:2010/10/06(水) 15:19:06
>>989
getDeclaredFields()で配列のlengthが取れないほうが問題のような気もするが。
992デフォルトの名無しさん:2010/10/06(水) 15:30:30
じすれうめ
993デフォルトの名無しさん:2010/10/06(水) 16:02:29
lengthがフィールドだと思ってるやつw
994デフォルトの名無しさん:2010/10/06(水) 16:13:46
まぁいちおうJava言語仕様にはフィールドって書いてあるんだけどな

http://java.sun.com/docs/books/jls/third_edition/html/arrays.html#64347
> The public final field length, which contains the number of components of the array (length may be positive or zero).
995デフォルトの名無しさん:2010/10/06(水) 16:19:26
ジャヴァも出来てトーイックも900点だなんてすんごいんですね!
それで年収いくらになるんですか?
996デフォルトの名無しさん:2010/10/06(水) 16:20:16
年収400万です
997デフォルトの名無しさん:2010/10/06(水) 16:32:04
>>976
こんなアプリもあるんですね・・・ソースコードも載っているのでとてもためになります!
ありがとうございます!
998デフォルトの名無しさん:2010/10/06(水) 16:42:20
日本のIT系エンジニーアの年収は、たとえトーイック900点であっても年収400万円なのが現実なのです
999デフォルトの名無しさん:2010/10/06(水) 16:44:23
今、全俺が泣いた'(T_T
1000デフォルトの名無しさん:2010/10/06(水) 16:45:20
じすれおつ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。