【初心者】Java質問・相談スレッド113【大歓迎】at TECH
【初心者】Java質問・相談スレッド113【大歓迎】 - 暇つぶし2ch662:デフォルトの名無しさん
08/03/23 13:01:43
URLリンク(java.sun.com)

やっぱ輸出制限であってるかも。
制限解除したポリシーファイルだけダウンロードできるけど、
そもそも日本はダウンロードOKな国なのか??


663:デフォルトの名無しさん
08/03/23 13:20:33
>>662
URLリンク(ascii24.com)
2000年で撤廃されてるらしいから、日本ならダウンロードOK。

664:デフォルトの名無しさん
08/03/23 13:37:07
URLリンク(java.sun.com)
> 関係があるのは、作成するアプリケーションが、政府により暗号化制限の課された国に
> 輸出される可能性があり、アプリケーションをその制限に適合させる必要がある場合だけです。

とあるので制限は解除されているものかと思ったら、128bit で制限かかるあたりからしてこれみたいですね orz
解除の試行錯誤でもしてみるか orz

665:デフォルトの名無しさん
08/03/23 13:43:15
SUNから解除用ファイルダウンロードしてファイル1個置き換えるだけだよ。


666:デフォルトの名無しさん
08/03/23 13:45:59
URLリンク(java.sun.com) の下の方の

その他のダウンロード
Java Cryptography Extension (JCE) 無制限強度の管轄ポリシーファイル 6

てやつ。


667:デフォルトの名無しさん
08/03/23 14:08:47
どうもご丁寧にありがとうございます m(_ _)m

ちなみに対照鍵暗号のアルゴリズム的な強さの現状ってこんな感じで良いんですかね。

AES ≒ Blowfish >> トリプルDES > [解読可能の壁] > DES

668:デフォルトの名無しさん
08/03/23 20:02:41
SwingでWindowsのLook&Feelを用いたとき
Windowsのネイティブな部品のように
「コピー」「貼り付け」などのメニューが自動で表示されるようにはできないでしょうか?

AWTを用いればWindowsの部品として自動で表示されるようですが、
Swingの場合、自分でそれらの処理を実装しなければならないのでしょうか?

669:デフォルトの名無しさん
08/03/23 20:07:03
はい

670:デフォルトの名無しさん
08/03/23 20:43:04
Swingならハンドラ実装するだけ

671:デフォルトの名無しさん
08/03/23 22:07:16
今までGUIの終了時処理はWindowListenerを登録して行っていたのですが終了時処理であれば
RuntimeのaddShutdownHook()
の方が適切なのでしょうか?
一般的なGUIアプリケーションでの終了時処理でこの方法を用いているものを見かけたことがなかったので、何か理由があるのかと思い質問させていただきました。

672:デフォルトの名無しさん
08/03/23 22:42:30
>>667
AES >  Blowfish > トリプルDES
ぐらいかなあ

・トリプルDESはDESの強化版なので実績という観点からは評価が高いが、
さすがにいいかげん古い。あと低速

・一般にブロック長が大きいほうが強度もより高くなるので
AES(ブロック長128ビット)はBlowfish(ブロック長64ビット)より強いはず
実際、最近考案された暗号はどれも128ビット以上のブロック長を採用している
(Blowfishの設計者が新しく考案したTwofishもブロック長128ビット)



673:デフォルトの名無しさん
08/03/23 22:55:05
繰り返しの構文について質問なのですが、
rubyのredoの役割を果たすものってjavaには無いのでしょうか?

674:デフォルトの名無しさん
08/03/23 23:04:12
>>673
ない。Java は break と continue だけ。

675:デフォルトの名無しさん
08/03/23 23:07:24
break => break
next => continue
retry = なし
redo = なし
かな。


676:634
08/03/23 23:08:36
>>674
ありがとうございます。
スクリプトに出来てjavaに出来ないことがあるってのは意外ですね。

677:634
08/03/23 23:09:18
>>675さんもありがとうございます。

678:デフォルトの名無しさん
08/03/23 23:21:22
>>671
javaw and shutdown hooks (referring to #4302814)
URLリンク(bugs.sun.com)

679:デフォルトの名無しさん
08/03/24 00:11:04
>676
そうか?
redo とか retry とかRubyでも偶にしか使わんし、他の言語を見てもある言語は少ないかと。

680:デフォルトの名無しさん
08/03/24 00:22:23
>>676
>スクリプトに出来てjavaに出来ないことがあるってのは意外ですね。
なんか解釈が間違っている気がする

681:デフォルトの名無しさん
08/03/24 00:26:17
Ruby厨ってやつだろ

682:デフォルトの名無しさん
08/03/24 00:45:54
FileInputStreamからFileChannelを取得し、そのFileChannelでmap()を実行すると、ストリームやチャネルをクローズしても元ファイル(FileInputStreamのソース)を削除できません。
原因はMappedByteBufferによって使用中になってしまうからという単純なものなのですが、解決策が
FileInputStream fis = new FileInputStream(input);
FileChannel fc = fis.getChannel();
ByteBuffer buf = fc.map();
....
buf = null;
System.gc();
input.delete();

これくらいしか思いつきませんでした。
何かいい方法はないでしょうか?

683:デフォルトの名無しさん
08/03/24 01:13:37
>>676
retry や redo と同等の処理を記述することはそれほど難しくないから、
「出来ない」というのは語弊がある。

684:デフォルトの名無しさん
08/03/24 02:09:59
やさしいJavaを読み終わり基礎中の基礎?の構文を覚え
今結城浩氏のデザパタの本を読んでいるのですが、実務経験が無いため
それらのパターンをどの様な時に使えばいいか想像がつきません。
Struts等を使ったシステム開発業務に興味があるのですが、
Web系ではどのようなパターンが使われているのでしょうか?
重ねて質問ですが、最初はどのようなパターンから覚えていけば良いでしょうか?
よろしくお願いいたします。

685:デフォルトの名無しさん
08/03/24 02:29:20
畳の上の水練という言葉があってだな


686:684
08/03/24 02:43:57
>>685
分かってはいるつもりでしたが・・・
デザパタの存在自体が面白くて、どうしても勉強したかったのです。
何かツールでも作りながら地道に覚えていきます。

687:デフォルトの名無しさん
08/03/24 03:00:42
Vector vec = new Vector();
System.out.println("----追加----");
String obj1 = new String("Hello World!");
StringBuffer obj2 = new StringBuffer("こんにちは、世界!");
vec.addElement(obj1);

上記をコンパイルすると最後の行でコンパイルエラーが発生します。
jdk5.0を使っているのですが、何を行えば正常にコンパイルできますか?

688:デフォルトの名無しさん
08/03/24 03:13:14
うちでは
注:Hoge.java の操作は、未チェックまたは安全ではありません。
注:詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてください。
と警告が出るだけでコンパイルされるんだが。

単にコンパイル警告をなくしたいなら javac -source 1.4 オプションを付ける。

もし>>687のコードが教科書どおりならその教科書は古い。
VectorのようなコレクションはJDK1.5以降Generics対応なので、
Vector<String> vec = new Vector<String>();
のように型を明示して使うのが基本。というかVector自体(ry




689:デフォルトの名無しさん
08/03/24 03:26:34
古い。

690:デフォルトの名無しさん
08/03/24 08:01:33
>>682
FileChannel の JavaDoc にも GC されるまでマッピングは有効って書かれているから
おそらくそれくらいしか方法は無い。
なんでこういう仕様なのか、俺も問いただしたい気持ちでいっぱいだ。

691:デフォルトの名無しさん
08/03/24 09:13:02
>>690
やはりそうでしたか。
破棄してくれる手段を一つくらい提供してくれてもよさそうですけどね。
諦めてgcすることにします。

692:デフォルトの名無しさん
08/03/24 09:40:50
解っているとは思うが、System.gc()を実行してもGCされるわけじゃないぞ

693:デフォルトの名無しさん
08/03/24 10:01:06
サーバプログラム書いてるんですけど、
inetdとかスーパーサーバからの起動だとプロセス毎にフォークしちゃうから
嫌で、そのへんをスレッドでやりたいんですけど、
その時ってどうやって起動すればいいんでしょうか?
普通にシェルからjavaをバックグラウンドで起動しちゃうとなんか思わぬ影響がでちゃうとか書籍にかいてありました。

694:デフォルトの名無しさん
08/03/24 10:11:00
「嫌で」「なんかでちゃう」
そんなとこなら諦めれ

695:693
08/03/24 10:23:28
>>694
inetdからサーバを呼び出すと、
1クライアントに対してforkとexecを実行するのでCPU時間が増大してしまいます。
それを防ぐために1クライアントに1スレッドを割り当てたいと考えています。
しかし書籍を調べましても起動時にどうすれば良いのか分かりません。
もしよろしければご教授願えませんでしょうか?

696:デフォルトの名無しさん
08/03/24 10:26:40
サーバでJavaのプロセスを起動し、Socket通信汁

697:693
08/03/24 10:32:54
>>696
そのプログラムは書いたのですが、
単に端末からバックグラウンドでプログラムを起動しただけでは、
開始した端末セッションからプロセスを切り離せません。
ではどうすればプロセスを切り離して起動できるのでしょうか?

698:デフォルトの名無しさん
08/03/24 10:44:13
nohup じゃだめなの?

699:693
08/03/24 11:04:20
>>698
勉強不足でnohupを知りませんでした。
それでやります!ありがとうございました!

700:デフォルトの名無しさん
08/03/24 11:38:55
そもそもクライアント毎にサーバープロセスを起動するのがナンセンスかと

701:デフォルトの名無しさん
08/03/24 11:59:15
でもタスクをキューにためてそれを逐次処理するのは遅いのでは?

702:デフォルトの名無しさん
08/03/24 12:02:46
いやきっとクライアント毎に起動するのはスレッドでしょ。
inetdみたいなデーモンをコンソールから起動すると、端末から切り離せない、
って悩んでただけで。
最終的には、inetd自身のように、/etc/init.d/に起動スクリプト置いてほげほげ、
ってするのが正しい姿なんだろうけど。

703:デフォルトの名無しさん
08/03/24 12:07:14
そうですよね。
でもサーバが落ちた時に自動起動しないのが難点なくらいで、
他に困るようなことが思いつかなかったので、nohupでもいいかなって思いました。

704:デフォルトの名無しさん
08/03/24 12:55:12
>>701
マルチスレッドで処理しろよw

705:デフォルトの名無しさん
08/03/24 17:09:28
ArrayList<Integer>って型に入ってるデータをソートしたいんだけど
どういうやり方が良いんでしょう?
今はArrays.sort()にtoArrayでObject[]にしたものと
Comparatorを実装したクラスのオブジェクトを渡しています

ほかに良い方法があれば教えてください


706:デフォルトの名無しさん
08/03/24 17:12:19
Collections.sort()

707:デフォルトの名無しさん
08/03/24 17:12:29
つCollections.sort

708:705
08/03/24 17:17:03
>>706-707
あ、やっぱりそれ用のがあったのですね
ありがとうございました


709:デフォルトの名無しさん
08/03/24 20:47:39
>>697
$ ./hogehoge > stdout.log 2>stderr.log < /dev/null &
とかやればシェルから切り離せるけど、そういうことを言ってるわけ?
バックグランドプロセスがあるとシェルが閉じれないのは
シェルが用意した stdin, stdout, stderr を持っているからで、
それを別に用意すればOKなんだけど。

710:デフォルトの名無しさん
08/03/24 22:37:59
とても初歩的な質問でお恥ずかしいのですが、
自分の出した答えに自信がないため、質問させていただきます。

int型の変数を2byteの配列に格納(その後取り出し)したいのですが、
ビット演算の理解がつたないため、下記のようなやり方しか思いつきませんでした。

正しいやり方をご存知の方がおりましたら、
教えていただきたく、よろしくお願いいたします。

byte[] data = new data[2];
int num = 128;

//格納
data[0] = (byte)(num >> 7);
data[1] = (byte)((num << 25) >> 25);

//取り出し
num = data[0] << 7;
num += data[1];

711:デフォルトの名無しさん
08/03/24 22:42:30
data[0] = (byte)((num >> 8) & 0xFF);
data[1] = (byte)((num >> 0) & 0xFF);

num = ((data[0] & 0xFF) << 8) | ((data[1] & 0xFF) << 0);

712:デフォルトの名無しさん
08/03/24 22:44:18
>>710
JDKについてくるjava.awt.Colorあたりのソースで、intと
alpha, red, green, blueの各1バイトの換算をしているのが参考になると思う。

intは4バイトだから、厳密に言えばサイズ2のバイト配列には入りきらない。
シフト量は24, 16, 8, 0な。



713:デフォルトの名無しさん
08/03/24 22:49:26
>>711>>712
返信いただき、ありがとうございます。

教えていただいたコードと参考資料を元に、
ビット演算の知識を深めたいと思います。

自分ではどうしてもわからなかったため、
とても助かりました。
本当にありがとうございました。

714:デフォルトの名無しさん
08/03/24 22:51:26
Javaでbyteがsignedってのはつくづく罠と思う。


715:デフォルトの名無しさん
08/03/24 22:53:37
だよなー
おかげでバイナリの扱いがとてもしにくい・・・

716:デフォルトの名無しさん
08/03/24 23:32:34
intが17bit以上の場合が考慮されていないけどいいのか?

717:デフォルトの名無しさん
08/03/25 00:57:08
javaはバイナリの操作向いてないよ

718:デフォルトの名無しさん
08/03/25 01:30:50
またおまえか

719:デフォルトの名無しさん
08/03/25 08:02:38
覚えておいたほうがよい
静的メソッドや変数などのリストの一覧的なものってどこにありますでしょうか

720:デフォルトの名無しさん
08/03/25 08:15:00
MathクラスとかSystemクラスとか他によく使用されるものの一覧を探しています

721:デフォルトの名無しさん
08/03/25 08:17:15
そんなものはない。静的メソッドは必要に応じて都度クラスに付いてるから
静的メソッドだけ一覧的に覚えること自体に意味がない。

722:デフォルトの名無しさん
08/03/25 08:19:51
APIじゃだめなの?

723:デフォルトの名無しさん
08/03/25 09:15:54
>>719
>>3
java.lang, java.util. java.io パッケージ群のそれぞれのクラス、仕組みは
押さえてしかるべき、と主張する人も居るね(逃

724:デフォルトの名無しさん
08/03/25 09:43:16
公開鍵証明書を作るクラスって標準でないの? keytool 使うしかない?

725:719
08/03/25 11:14:34
静的って書いたのがまずかったのでしょうか
Math.なんちゃら~ とか system.なんちゃら~ みたいなもので
頻繁に使われるような物のリストを探しているのですが

まとめてあるサイトは見つかったのですがあまり使わないようなものが大量にあったり
どれがよくつかわれるものなのかわからないので
これは覚えておいたほうが良いというものを集めてリストになっているサイトなどありましたら教えてください

726:デフォルトの名無しさん
08/03/25 11:16:31
何が必要かなんて、分野によって違ってくるのが当たり前。
とりあえず、ArraysとかCollectionsをあげておくけど、
自分で見つけるのが一番いいと思うよ。

727:デフォルトの名無しさん
08/03/25 12:16:29
Mathのメソッドもそんなに頻繁に使うとは思えない

728:デフォルトの名無しさん
08/03/25 12:33:40
>>723みたいに、java.lang, java.util. java.io以下のクラスは押さえて、
あとはJavadocでその都度確認、ってのでいいんじゃね。

729:デフォルトの名無しさん
08/03/25 12:35:03
>>724
証明書を発行するAPIというのは標準にはなかったと思う。



730:719
08/03/25 12:57:38
java.lang, java.util. java.io以下のクラスですな
さっそく調べて覚えるよう様にするす
㌧クス!

731:デフォルトの名無しさん
08/03/25 12:59:22
719が聞いてたのはstaticメソッドのことじゃないの?

732:デフォルトの名無しさん
08/03/25 15:40:34
Sound APIについて質問です。
DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
TargetDataLine target = (TargetDataLine)AudioSystem.getLine(info);
これで取得したターゲットラインを録音すると、コンピュータ上の音(スピーカーから通常出る音)が録音されました。
これをマイクからの入力に変えるにはどうすればよいのでしょうか?
Port.Info.MICROPHONEを情報としてPortを取得して・・・とするのでしょうけれでもその先が分かりません。

733:デフォルトの名無しさん
08/03/25 16:20:26
>>732
AudioSystem#getMixerInfo、AudioSystem#getMixer、Mixer#getTargetLineInfoあたりで
全部のターゲットラインをリストアップして、一覧から選ばせるってのはどうだろう・・・

734:デフォルトの名無しさん
08/03/25 17:55:04
javaのコンパイラのパスを要求されたらどこを指定すればいいのでしょうか
j2sdkを普通にインストールしました

735:デフォルトの名無しさん
08/03/25 17:56:49
OSは?

736:デフォルトの名無しさん
08/03/25 17:57:07
C:\Program Files\Java\jdk1.6.0_05\bin

737:デフォルトの名無しさん
08/03/25 17:57:13
窓xp sp3です

738:デフォルトの名無しさん
08/03/25 18:01:46
>>736
そこらへんで見つかりました
ありがとうございます

ずっとjreの方を見てました

739:デフォルトの名無しさん
08/03/25 18:10:39
JDKを入れるのが初めてなら落とすときにインストール手順を読まないのだろうか

740:デフォルトの名無しさん
08/03/25 18:15:00
世の中にはマニュアル類を読まない人間が結構いるらしいよ

741:>>733
08/03/25 18:51:09
>>732
それしかないみたいですね。
そうします。ありがとうございました!!

742:デフォルトの名無しさん
08/03/25 22:03:55
PATHって、違う言語をコンパイルするときには毎回変えないといけないの?
今Cの設定なんだが。

743:デフォルトの名無しさん
08/03/25 22:08:09
どんどん追加していけばいいだけ

744:デフォルトの名無しさん
08/03/25 22:14:55
基本的に同じ PC 上で同じ言語 (コンパイラ) の違うバージョンを使い分ける場合だけ気をつければ良い。

745:デフォルトの名無しさん
08/03/25 23:17:31
追加できるのか。ども。

746: [―{}@{}@{}-] デフォルトの名無しさん
08/03/26 10:56:16
javac の -g:<キーワード> で sources,lines,vars のデバッグオプションが
指定できますが、デバッグ情報が載らない(載せない)と言う点以外の影響
(性能劣化等)はあるのでしょうか。class ファイルが大きくなるだけでしょうか。

747:デフォルトの名無しさん
08/03/26 12:03:56
サブクラスのインスタンスから「スーパクラスのメソッド」呼び出した時、
スーパクラスのメソッド内で、「サブクラスでオーバライドしたメソッド」を使ってた場合に
動的バインドでオーバライドした方のメソッドが呼び出されるのって
単純に気をつけるしかないんでしょか?


748:デフォルトの名無しさん
08/03/26 12:09:07
>>747
当然の話。むしろ呼んでくれないと困る。
それを「気をつける」と認識する方が問題。

749:デフォルトの名無しさん
08/03/26 12:11:17
ありがとう。認識あらためます。


750:デフォルトの名無しさん
08/03/26 12:14:40
>>747
オーバーライド(上書き)とはそういうもの。
公開したいけど、上書きされるのが困るのならば、final を付けてしまいましょう。
公開する必要が無いならば、private にしましょう。
そもそも継承されることを望んでいないなら、class を final にしてしまいましょう。

751:デフォルトの名無しさん
08/03/26 13:04:04
言い方を変えれば、上書きしたメソッドを呼んで欲しいからサブクラスで上書きするわけで、読んで欲しくないならばオーバーライドする必要がない

ただ、「意図せずにスーパークラスのメソッドをオーバーライドしてしまった」とか「意図せずにサブクラスで定義されているメソッドと同名のメソッドをスーパークラスに定義してしまった」というケースはある。
解決策はfinalもあるが、@Override無のオーバーライドはコンパイルエラーとする、という方が柔軟ではある。

752:デフォルトの名無しさん
08/03/26 15:12:47
C# と比較するとわかりやすいかも。

753:デフォルトの名無しさん
08/03/26 15:37:35
C#しらねって奴多いんじゃない?

754:デフォルトの名無しさん
08/03/26 15:46:55
C#いらねって奴多いんじゃない?

755:デフォルトの名無しさん
08/03/26 17:26:04
最近になってJavaが無謀な拡張されまくってるのはC#のせいだからな

756:デフォルトの名無しさん
08/03/26 21:12:25
String str1 = "文字列";

String str = new String("文字列");
って何が違うのでしょうか?

757:デフォルトの名無しさん
08/03/26 21:21:35
後者は無駄の極み

758:デフォルトの名無しさん
08/03/26 21:27:04
上はどこかにある "文字列" という文字列の参照を str1 に代入されるだけ。
下は "文字列" という内容の新しい文字列オブジェクトが毎回作られてから、その参照が str1 に代入される。

759:デフォルトの名無しさん
08/03/26 21:39:02
すみません、str1じゃなくてstrでした。

では、前者と後者で目に見える違いが出ることはあるのですか?
まら、両者を使い分けたりする必要はあるのでしょうか?

760:デフォルトの名無しさん
08/03/26 21:44:10
public class Test {
    public static final void main(String[] args) {
        String s = "Hello, world";
        System.out.println(s == "Hello, world");
        System.out.println(s == new String("Hello, world"));
    }
}
--------
true
false
--------


761:デフォルトの名無しさん
08/03/26 21:47:42
上は str1 == str が true、下は str2 == str が false
従ってインスタンスが同じかどうかの違いがそのまま適用される。
たとえば synchronized(str1) と synchronized(str)

762:デフォルトの名無しさん
08/03/26 22:20:03
誰か文字列の実体はプールで共有されてるって言ってやれよ。

763:デフォルトの名無しさん
08/03/26 22:34:46
理由言わないとね・・・

764:デフォルトの名無しさん
08/03/26 22:36:15
プールと言いたいだけの奴とは違うのだよ。

765:デフォルトの名無しさん
08/03/26 23:16:55
>>762
intern()しないと共有されないぞ。文字列リテラルは暗黙で共有されるが。

766:デフォルトの名無しさん
08/03/26 23:20:24
>>756に対する答えは、
String str = new String("文字列");
は絶対に使うな、でいいじゃないか。
理由はこの際どうでもいい。

767:デフォルトの名無しさん
08/03/26 23:27:48
理由がどうでもいいとか思うやつって技術者としてどうなんだ。

768:デフォルトの名無しさん
08/03/26 23:29:40
理由を押し付けて初心者を混乱させるのって人間としてどうなんだ。

769:デフォルトの名無しさん
08/03/26 23:31:49
動けば良い系の人じゃね。
安易に絶対とか使うのも技術屋じゃねーし。

770:デフォルトの名無しさん
08/03/26 23:31:50
俺も*とりあえずは*使うな、って方針には賛成
必要になってから知ればいいんじゃないかな

771:デフォルトの名無しさん
08/03/27 00:00:19
小学生に教える時に中学高校で扱う内容にまでふれて
説明した方が良い/悪い論争

772:sage
08/03/27 00:10:51
1 if (XXX == XXX) ってのはそのオブジェクトの参照が同じかチェックしている?
2 String str = new String("XXX") は新しくメモリに確保(インスタンスを作成)すること?
3 String str = "XXX" の扱いはVMが管理している?

773:デフォルトの名無しさん
08/03/27 00:19:45
ブッ 理解までにそんな大きなステップが必要なほどのネタなのかよw
すぐには不要でも、キーワードだけでも与えておけば必要になった時の理解度が違う。
将来の期待もなく「理由不問、絶対やるな集」だけで育てられたお前に合わせる必要はねぇべ。

774:デフォルトの名無しさん
08/03/27 00:21:07
>>772
まあ、全てYESと言っても良いかと。
ただ、貴方と私で、其の文を見て、違う状況を想定してる可能性は否めないが。

15.21.3 参照型等価演算子 == 及び !=
URLリンク(www.y-adagio.com)
3.10.5 文字列リテラル
URLリンク(www.y-adagio.com)

775:デフォルトの名無しさん
08/03/27 00:24:58
SJC-P310-035の試験を今度受けるんですが、黒本の仕上げ問題で61問中51問正解
だったんですが、こんなレベルでももう合格できますか?

776:デフォルトの名無しさん
08/03/27 00:47:48
とりあえず忘れろに賛同かな
バイト配列から文字列を生成したいような場合にnewは使うが、new String(String str) を使うケースはほとんどない、と教えてる。
どっちかといえば、equalsで比較しろのが重要な話しだし。

>>775
スレ違い

777:デフォルトの名無しさん
08/03/27 01:03:18
>equalsで比較しろ
これの方が遙かに重要だな

778:デフォルトの名無しさん
08/03/27 03:52:21
Javaのライブラリに変数の詳しい情報をダンプしてくれるような奴ってありませんか?
PHPでいうvar_dump的なものを使いたいんですが

779:デフォルトの名無しさん
08/03/27 08:30:48
>>778
用途がわからんのだが、開発中ならたいていのIDEのデバッガについてる
変数watch系機能で間に合いそうな。
それとも運用中に必要な機能?



780:デフォルトの名無しさん
08/03/27 08:33:27
commons langのToStringBuilderとか大がかり杉?


781:デフォルトの名無しさん
08/03/27 08:43:02
ねぇよ下駄言語と一緒にするなと言えば済む話では。

782:デフォルトの名無しさん
08/03/27 11:45:34
JITコンパイルされた後のアセンブリコードを見るには、どうすれば良いですか?

783:デフォルトの名無しさん
08/03/27 11:46:42
心眼

784:デフォルトの名無しさん
08/03/27 12:17:19
>>779
普通のテキストエディタでやってる人間なもんで…

>>780
ToStringBuilderちょっと見てみます

785:デフォルトの名無しさん
08/03/27 12:41:38
Soundbankに新たなInstrumentをロードしたい場合どのようにすればよいでしょうか?
デフォルトのシンセサイザーをMidiSystemで取得してloadInstrumentでロードしたいのですが、同じInstrumentでもHeadspaceInstrumentじゃないと読み込めないらしいのです。
他にもいろいろ実装しなおさなければいけないのでしょうか?

786:デフォルトの名無しさん
08/03/27 12:56:38
>>785
URLリンク(www.jsresources.org)

787:デフォルトの名無しさん
08/03/27 13:34:49
うわーSynthesizer実装しないといけないんですね。
分かりました。諦めます。

788:デフォルトの名無しさん
08/03/27 15:15:38
オーバーロードに関して質問なのですが
class unko {
  public void hoge(List<List<A>>) {
  }
  public void hoge(List<A>) {
  }
}

これって何で出来ないんですか?
微妙に型というか違うと思うのですが

789:デフォルトの名無しさん
08/03/27 15:19:23
Javaのジェネリクスは、コンパイル後に消えるから、どちらも同じ型とみなされる。
だからNG

790:デフォルトの名無しさん
08/03/27 15:30:01
>>789
なるほど・・・


791:デフォルトの名無しさん
08/03/27 16:53:01
List< List<A> >ならOK

792:デフォルトの名無しさん
08/03/27 16:57:04
>>791
C++と勘違いしてないか?

793:デフォルトの名無しさん
08/03/27 17:00:59
>>792
うん。

794:デフォルトの名無しさん
08/03/27 17:13:52
なんだ釣りか。

795:772
08/03/27 22:42:03
>>774
文字列連結でもOKなのは、まったく分かっていませんでした。
さらに、実行時に解決?計算される文字列は、異なるもなのですね。
そもそもinternなんてメソッドがあるなんて知りませんでした。

全く分かっていなかったけど、そのサイトかなり勉強になりました。
理解できればの話ですが。


796:デフォルトの名無しさん
08/03/28 01:03:18
フィールド名の先頭を_(アンダーバー)にしているコードを見かけるのですが、
どのような意味でそのようにしているのですか?

797:デフォルトの名無しさん
08/03/28 01:18:31
フィールドとそうでないものとを区別するため

798:デフォルトの名無しさん
08/03/28 01:22:10
アンダースコアが正しい読み方

799:デフォルトの名無しさん
08/03/28 07:58:59
>>798
通じるし、そこは許容範囲だろ。
「Unicode的にはローラインだ」とか、不毛だろ?

800:デフォルトの名無しさん
08/03/28 08:27:03
_1つで始まる識別子って、グローバルな空間では全部予約済みなんだよな。
構造体フィールドならいいけど。


801:デフォルトの名無しさん
08/03/28 08:28:05
む、そりはC/C++だ。


802:デフォルトの名無しさん
08/03/28 08:44:57
Cでコンパイルするとリンカ上の名前が_付になる。のような気がした。

803:デフォルトの名無しさん
08/03/28 09:06:25
800は791か。

804:デフォルトの名無しさん
08/03/28 11:35:10
変数a b c があるとしてこの中で中央値を求めるにはどういう方法がありますか?
変数は何が入るかわからないという場合です。
if文の練習問題なのですが、答えがのってなくて

805:デフォルトの名無しさん
08/03/28 11:41:43
int[] array = new int[]{a, b, c};
Arrays.sort(array);
System.out.println(array[1]);

806:デフォルトの名無しさん
08/03/28 11:43:00
>>805
if文使えw

807:デフォルトの名無しさん
08/03/28 11:47:12
説明が悪かったです、すみません
例えば a=1 b=2 c=3 なら bが出力 a=2 b=1 c=3 なら aが出力
みたいに何の数値を入れても真ん中の数値が出力するということです。

808:デフォルトの名無しさん
08/03/28 11:48:59
いや>>805で合ってるよw
if(a<b){ if(b<c)答=b; else 答=max(a,c); }
else{ if(c<b)答= b; else 答=min(a,c); }

809:デフォルトの名無しさん
08/03/28 11:56:18
全然わからないんですが、maxとminはどうすればいいですか?

810:デフォルトの名無しさん
08/03/28 12:00:54
maxは渡された引数の大きいほうを、
minは小さいほうを返すだけ。
これくらいは自力で書けないと、将来つらいよ?

811:デフォルトの名無しさん
08/03/28 12:08:52
>806
数が増えた時に汎用的に使えるのはソートじゃね?

>809
日常生活にも支障ありそうだなw

812:デフォルトの名無しさん
08/03/28 12:15:12
ありがとうございます、しかし多分maxとminはまだ参考書に出てきてないので使わない方法なんだと思います。
あとは自力で考えます、ありがとうございました。

813:デフォルトの名無しさん
08/03/28 12:21:46
>>811
if文つかってやれよw

814:デフォルトの名無しさん
08/03/28 12:21:53
すみません、勘違いしてたようです。
maxとminは別に何でもいいんですね、引数ってのを使えば楽ってことはわかりました。

815:デフォルトの名無しさん
08/03/28 12:25:04
っ Math.min、Math.max

816:デフォルトの名無しさん
08/03/28 12:30:10
あ、Math.min Math.max調べたらやっぱりminとmaxじゃないとだめみたいでした。

817:デフォルトの名無しさん
08/03/28 12:35:51
min(l,r)は if(l<r)答=l; else 答=r;
max(l,r)は if(l>r)答=l;else 答=r;

818:デフォルトの名無しさん
08/03/28 15:51:54
>>803
ちげーよ馬鹿。
俺は決してsageたりしない。

819:デフォルトの名無しさん
08/03/28 16:04:25
一つ助けてくれ。

JOGLのデモにあるcgGL_vertex_exampleとruntime_ogl_vertex_fragmentがjogl_cg.dllが見つからないって
UnsatisfiedLinkErrorが出るんだけど利用してるjreにjogl_cg.dllは置いてあるんだけど
-Djava.library.path指定しても解決できない、どうすれば良いか分かる人居る?

JOGLのパッケージ以外に何か必要だったりする?

820:デフォルトの名無しさん
08/03/28 16:07:32
system32に放り込め。

821:デフォルトの名無しさん
08/03/28 18:09:32
>>819
cgのランタイムが必要とかかな・・・?
そのjogl_cg.dllのインポートテーブルを見てみると何かわかるかも

822:デフォルトの名無しさん
08/03/28 21:03:25
最近Javaを勉強し始めた者です。
当方JavaScriptを今までやっており、ちょっとサブルーチンを使う程度で
あとはとにかくつらつらと書き連ねていくようなプログラムの書き方に慣れてしまいました。
まだJava関係の書籍は買っておらず、様々な入門サイトを見て勉強しているのですが、
いちいちメソッドを呼び出し合ったりメソッド毎に細かく処理を分けたりする、
オブジェクト指向の具体的な使い方やメリット等がいまいち理解できません。
自分で適当にメソッドやクラスを分けたりしてオブジェクト指向をしてる気にはなってみても、
「こんなんで良いのだろうか?」と言う感じがしてしまい、
色んな処理を同じメソッドに詰め込んでしまいがちです。
なので、文法の解説ではなくオブジェクト指向の解説をメインにした
参考書があれば買おうと思うのですが、どの書籍が良いのでしょうか?
回答よろしくお願いします。

823:デフォルトの名無しさん
08/03/28 21:21:23
>>822
デザパタ

824:デフォルトの名無しさん
08/03/28 22:11:01
>>822
結城浩という名前を覚えておくと、困った時に助かるかも

825:デフォルトの名無しさん
08/03/28 22:27:08
まあ、片っ端から10冊ぐらい読め。将来を考えたらたいした投資じゃない。

826:デフォルトの名無しさん
08/03/28 23:02:24
>>825
必要ない人には必要ないだろ 勝手に将来を妄想するな

>>824にあるけど、結城さんの本は取り組みやすいから、
デザインパターンの入門にしろ、Javaの入門にしろ、1冊目としておすすめ

827:デフォルトの名無しさん
08/03/28 23:04:19
総称クラスのインスタンスを作成することは出来るでしょうか?

public class TempT <T>{
public T makeT(){
return new T();
}
}
ということをやりたかったのですがコンパイルが通らないようです。
総称クラスの名前だけでもわかれば、
URLリンク(blog.xole.net)
で何とかなると思うのですが……。

828:デフォルトの名無しさん
08/03/28 23:09:29
>>826
勧められた本だけ読んで結城先生信者ですかwさすがゆとりですな

829:デフォルトの名無しさん
08/03/28 23:16:03
>>827
できないんだったかな
public T makeT(Factory<T> factory) { return factory.create(); }
みたいにするのが正攻法なんじゃないの
使うときはTに指定する型ごとにFactory<T>をいちいち実装しないといけないけど

830:デフォルトの名無しさん
08/03/28 23:17:25
>>827
ジェネリクスはコンパイル処理。
コンパイル後は、普通のキャストと変数の型に展開されて、情報は残りません。

何がやりたいのか…何かが出来そうで試してるだけなのかな

汎用的に便利なクラスなんてものは、まず作れないと思ったほうが良い。
それをするなら、今の仕組みが便利に判りやすくなるクラスを作りましょう。

831:デフォルトの名無しさん
08/03/28 23:22:26
C#だと「引数無しのコンストラクタを持つ」制約が付けられるからあっさり実現できるんだけどね

832:デフォルトの名無しさん
08/03/28 23:39:55
>>822
>いちいちメソッドを呼び出し合ったりメソッド毎に細かく処理を分けたりする、
>オブジェクト指向の具体的な使い方やメリット等がいまいち理解できません。

オブジェクト指向とか、デザパタとかいう話じゃないだろ。
マーチンファウラーのリファクタリングが指針になるかも。

833:827
08/03/29 00:36:28
>>828-830
早速のお返事、有難うございます。
>何かが出来そうで試してるだけなのかな
正直、半分はそんなところです。
getDeclaredFieldsあたりのリフレクションとcommons.beanutils、commons.dbutilsを組み合わせて、ごく簡単なO/Rマッパが作れないかなと思ったんですがね。
……やっぱ素直にHibernateとかS2Daoを使っておいたほうがいいのか。 ・・・でも大げさすぎるんだよなぁw

834:デフォルトの名無しさん
08/03/29 09:58:12
newInstance使ってキャストって手もあるが

835:デフォルトの名無しさん
08/03/29 10:56:37
いまは
T Class<T>#newInstance()
だからキャスト不要。

例外は捕捉する必要あるけど。




836:デフォルトの名無しさん
08/03/29 12:53:04
どっちみちTからは直接取れないけどな

837:827
08/03/29 15:26:04
>>835
みたいですね。T.newInstance()って書き方もNGみたいです。
残念ですが諦めましょう。

838:デフォルトの名無しさん
08/03/29 15:39:36
こんなのどう?
public class TempT<T>{
 private Class<T> clazz;
 public TempT(T t) {
  clazz = (Class<T>) t.getClass();
 }
 public T create() throws Exception{
  return clazz.newInstance();
 }
}
コンストラクタ引数が無駄でヤな感じ。アイディア求む。

839:デフォルトの名無しさん
08/03/29 15:52:46
Class<T>を引数にした方が誤解を招かないんじゃね
それでも格好悪いけど

840:デフォルトの名無しさん
08/03/29 15:58:57
インスタンスの生成に関してジェネリクスでやろうって方針が無理
可能なのはキャストがいらねってくらいだよ

841:デフォルトの名無しさん
08/03/29 16:41:57
初心者ですみません、質問させてください

変数の型にfloatを使いたいのですが、コンパイル時にエラーが出ます。

精度が落ちている可能性
検出値 double
期待値 float
a=3.6
^

と表示されてます。
本を買って勉強始めたばっかりで、本の通りに書いたと思うのですが、
自力解決出来ません。doubleで書くと上手く行ったのですが、原因が知りたくて。

842:デフォルトの名無しさん
08/03/29 16:46:10
3.6f

843:デフォルトの名無しさん
08/03/29 16:48:50
3.6 は倍精度浮動小数点の double。a は単精度浮動小数点の float。
代入するには精度を落とさなければならないが、それをコンパイラが勝手にやるとバグの元になる。
3.6 の方も float であると明示的に記述すれば良い。

a=3.6f;

844:デフォルトの名無しさん
08/03/29 16:55:19
doubleっていう、「基本があってその倍」な名前のほうが
デフォなのがややこしいな。


845:デフォルトの名無しさん
08/03/29 16:57:16
なるほど、ありがとうございます!



846:デフォルトの名無しさん
08/03/29 19:29:15
質問です。

現在、mainクラスのガベージコレクションを、
多重継承されたインスタンスからコントロールしています。

ただ、Heap領域にアクセスする場合について、
そのコレクションフレームワークからマルチスレッド化させると、
ローカルにremoveしようとしても同期的な排他制御が取れません。
やはりラッパークラスのプリミティブ型は、エレメントのイテレータもhasNext()メソッドもどきで
volatile修飾子のシリアライゼーションをさせるのが絶対条件なのでしょうか。

ちなみに、もしコマンドライン引数によってJava.langのStringBufferまでimportしたとしても、
SetインターフェースのisEmptyメソッドにするとなぜかStackOverflowErrorの例外が発生します。
staticなyield()メソッドを汎用させるため、
throwsで例外ハンドラをコンストラクタなアサーションをしているのですが・・・。

C言語が腐るほど考えたのですが、
バイナリでのファイル操作がなかなかまとまらないため質問した次第ですので、
どうかお答えお願いします。

847:デフォルトの名無しさん
08/03/29 19:46:09
「日本語でおk」ってこういうときに使うの?

Javaで多重継承かー。


848:デフォルトの名無しさん
08/03/29 19:47:33
C言語腐っちゃったよ~ どうしよ~

849:デフォルトの名無しさん
08/03/29 20:39:39
Javaっぽい言語のVM実装しているのかねぇw

850:デフォルトの名無しさん
08/03/29 20:58:28
バカが何人釣られるか静観してようかと思ったが
コピペに w とか、もう見てらんない。

851:デフォルトの名無しさん
08/03/29 21:01:24
とりあえず>>846が池沼なのは確定だろ?

852:デフォルトの名無しさん
08/03/29 21:02:31
見てらんない = 結局釣られた

853:デフォルトの名無しさん
08/03/29 21:04:39
前スレあたりのコピペも知らんて、おまいら春休み参入者か?

854:デフォルトの名無しさん
08/03/29 21:08:43
何でこうネタやコピペすら嗅ぎ分けられない恥ずかしい奴多いんだろここ。

855:デフォルトの名無しさん
08/03/29 21:17:09
>>846とかマジ池沼じゃんw
何この春厨wwwww

856:827
08/03/29 22:00:37
>>838
アドバイス有難うございます。確かにヤな感じはするのですが、こうするより仕方ないようですね。

>>839
Class<T>を引数にする、というのは気がつきませんでした。御助言感謝です。

>>840
どーもすいません(苦笑)

857:デフォルトの名無しさん
08/03/30 01:06:30
スレに常時へばりついているってのも、どうかと

858:デフォルトの名無しさん
08/03/30 04:29:15
悔しそうですね。

859:デフォルトの名無しさん
08/03/30 11:03:54
Servlet+JSP+Strutsでアプリケーションを作成しています。

これで出力されたHTMLには余計な空行が出力されます。
(Strutsタグなどの位置により)

なるべくHTMLを小さくしたいので余計な空行やスペースは
削除したいのですが、なにかテクニックはないものでしょうか?

思いつくのはフィルターとか???

よろしくお願いいたします。

860:デフォルトの名無しさん
08/03/30 11:26:37
スーパークラスHogeの拡張クラスHogeA,HogeBが定義してあり
HogeAのカプセル化されたフィールドにα、HogeBのカプセル化されたフィールドにβが定義されてる状態で
Hogeにはアブストラクトのゲッターメソッド、セッターメソッドが定義されています

別のクラスDから
Hoge h = (Hoge)HogeA
or
Hoge h = (Hoge)HogeB

のような形で選択的にHogeを定義しゲッターメソッドから任意のα、βが抽出できるようにしたいのですが
現状うまく行きません

よい方法を教えてください

861:デフォルトの名無しさん
08/03/30 11:31:09
>>859
私の場合ははフィルターを作ってそこを通してデーターが得られるようにしてます

862:デフォルトの名無しさん
08/03/30 11:47:37
>>860
スーパークラスでαとβが宣言されてないからHogeのインスタンスとしている場合にアクセスできないのは当然です。
そのフィールドを使いたい場合はHogeA,HogeBでキャストしてやらなきゃ無理っす。

863:デフォルトの名無しさん
08/03/30 11:49:48
>>861
ありがとうございます。
私もfilterでやってみようと思います。

でもその前に、、、、そのフィルターください!orz



864:デフォルトの名無しさん
08/03/30 11:55:06
>>862
選択的キャストの方法としてどういう方法があるでしょうか

865:デフォルトの名無しさん
08/03/30 12:10:32
>>860
Hoge で定義した get/set メソッド宣言と、α、βの型を教えて欲しい。

866:デフォルトの名無しさん
08/03/30 12:18:32
>863
数100バイトの差は気にしないほうがいい。
携帯コンテンツとかならば、JSPを工夫するか、Servlet内で全部HTMLを書いて小さくするほうがいいかと。

867:デフォルトの名無しさん
08/03/30 12:19:57
>860
HogeにgetParam があったとしたら、
HogeA で getParam からαを取得、HogeBではβを取得
ってのが普通かと。

868:>>862
08/03/30 12:29:27
えらい勘違いしてました。
抽象クラスでgetter/setter宣言してたんですね。
その型が抽象クラスのgetter/setterの戻り値の型の子なら大丈夫です。

869:デフォルトの名無しさん
08/03/30 12:59:04
失礼
うまく行きました
他のことが原因してました

870:デフォルトの名無しさん
08/03/30 17:51:19
JSON-LIBを使おうと思い、
C:\Tomcat 6.0\lib
にjson-lib-2.2.1-jdk15.jarを入れたのですが、
java.lang.NoClassDefFoundErrorが出てしまいます。
C:\Tomcat 6.0\lib下ではクラスパス通らないのでしょうか?
それともjdk16環境下なのにこのJARを入れたのが失敗でしょうか。

871:デフォルトの名無しさん
08/03/30 21:04:39
JDK6ならjavascript使えば良いと思うんだが・・・

872:デフォルトの名無しさん
08/03/31 01:30:58
png画像の画像処理をしたいのですが質問です.

java.awt.image.PixelGraberのgrabPixels()で各ピクセルの情報を配列に取得し,
java.awt.ColorのgetRed()/getGreen()/getBlue()で各ピクセルのRGB値まではとれました.

ここから取得した配列のRGB値を取得したRGB値を元にして計算し
変更したいのですがどのようにすれば良いのでしょうか?

873:デフォルトの名無しさん
08/03/31 01:50:46
どう計算したいのかはお前以外には解らんw

874:デフォルトの名無しさん
08/03/31 02:24:02
どう計算するかは分からないけれど、ImageIO.readでpngをBufferedImageとして読み込んだ方がいろいろ変更の自由がきくよ。

875:デフォルトの名無しさん
08/03/31 02:24:57
あ,計算の話ではなくて

計算後にでた新しいRGB値をつかってpngを作り直したいんです.
日本語が変ですいません.

876:デフォルトの名無しさん
08/03/31 08:54:59
普通にやりたいことを言えよw
例えば元画像をグレースケールにしたいとかさ

877:デフォルトの名無しさん
08/03/31 10:17:07
単純に SSLSocketFactory から SSLSocket 作った場合ってどこの CA 証明書が使われてんの?
コントロールパネルの Java 設定にリストされているやつ?

878:デフォルトの名無しさん
08/03/31 11:41:55
>>158
肉で出来ています。

879:デフォルトの名無しさん
08/03/31 12:18:00
JNDIを使用『しないで』DataSourceを生成する方法を教えてください。
組み込みでH2 Databseを使おうと思ったのですが、アプリケーションサーバのJNDIを使って生成する方法しか検索できませんでした。
一応、↓でなんとか生成できたのですが、本当にこの為だけにCommons DBCPやCommons Poolを使わないとならないのでしょうか?
URLリンク(wiki.livedoor.jp)

880:デフォルトの名無しさん
08/03/31 12:26:10
JNDI 使わないってスタンドアロンで使うのか? なら接続しっぱなしにしときゃ良いじゃん。

881:デフォルトの名無しさん
08/03/31 12:36:20
>>879
"Using mock naming contexts for testing"
URLリンク(weblogs.java.net)

JNDI依存のロジックをコンテナ外でテストするためのテクニックだけど、
流用できると思う。

882:デフォルトの名無しさん
08/03/31 12:54:34
超初心者です。入力した整数値を読み込んで、小さいほうの数以上で大きいほうの数以下の全整数を小さいほうから順に
表示するプログラムを作りたいんですが、最後の整数が表示出来ません。アドバイスもらえませんか?作ったコードは下です。

System.out.print("整数1:");
int n = stdIn.nextInt();
System.out.print("整数2:");
int x = stdIn.nextInt();

do {
 if(n >= x)
  System.out.print(x++);
 else if(n <= x)
  System.out.print(n++);

  } while (n != x);
 }
}

883:デフォルトの名無しさん
08/03/31 13:01:39
素直にforでいいんじゃね?
for(int i = n; i <= x; i++){
 System.out.println(i);
}
それとも何かの課題?

884:デフォルトの名無しさん
08/03/31 13:07:56
System.out.print("整数1:");
int n = stdIn.nextInt();
System.out.print("整数2:");
int x = stdIn.nextInt();

do {
 if(n >= x)
  System.out.print(x++);
 else if(n <= x)
  System.out.print(n++);
  } while (n != x);
  System.out.print(n); //これを追加
 }
}
にするとか

明解javaの演習問題だね

885:デフォルトの名無しさん
08/03/31 13:09:22
>>883
for使うと簡単そうなんですが、練習問題を最初からやっていってる最中で
今はifとdoとwhile文のところなんで、一つずつ確実に使い方を覚えるためにもこれらの構文を使ってやりたいのです。

886:デフォルトの名無しさん
08/03/31 13:11:47
>>884
おぉ、出来ました!そうです、明解Javaをやってるんです。
この参考書答えがないので、超初心者な自分にはきついです。

887:デフォルトの名無しさん
08/03/31 13:12:39
>>884はifの条件式も変えないと駄目だわ

888:デフォルトの名無しさん
08/03/31 13:15:42
>>887
(n > x)と(n < x)でいいですかね?

889:デフォルトの名無しさん
08/03/31 13:17:31
おk

890:デフォルトの名無しさん
08/03/31 13:19:57
>>889
ありがとうございます、ずっと考えていたのがやっと解決して先に進めます。

891:デフォルトの名無しさん
08/03/31 13:20:13
ループの前にどちらが大きいかを判断して,
大きい方と小さい方それぞれ別の変数に入れといた方が綺麗に書けるよ

892:デフォルトの名無しさん
08/03/31 13:20:16
ゆとりは不等号を習わないんだって
おそるべしゆとり

893:デフォルトの名無しさん
08/03/31 13:25:50
>>891
ちょっと考えてみます。すみません、ほんとに初心者なもんで。

894:デフォルトの名無しさん
08/03/31 13:38:26
初心者初心者って連呼しすぎうぜえ

895:デフォルトの名無しさん
08/03/31 13:48:22
初心者は何をしても許されるべき

896:デフォルトの名無しさん
08/03/31 13:50:46
本人乙

897:デフォルトの名無しさん
08/03/31 13:57:01
ワロタ

898:デフォルトの名無しさん
08/03/31 15:28:46
じゃあ俺も初心者を名乗るから、何をしても許せ

899:デフォルトの名無しさん
08/03/31 15:49:26
おれもれも

900:デフォルトの名無しさん
08/03/31 15:51:31
「初心者だから仕方ないじゃないですか!
日本国では初心者が手厚く保護されているのです。
私は一生初心者であることに決めました。
初心者なんで気を遣って下さい!大目に見て下さい!」

そしてJavaに合格すると「なぁに、初心な言語は山ほどあるさ!」と。

901:デフォルトの名無しさん
08/03/31 15:55:37
次スレから初心者なしにしようぜ
【初心者】Java質問・相談スレッドxxx【立入禁止】

902:デフォルトの名無しさん
08/03/31 15:59:43
ここはひどいインターネッツですね

903:デフォルトの名無しさん
08/03/31 16:00:45
それは人来なくなるだろw
でも自分で初心者を名乗るほどの初心者はくだすれに行った方が良いよな。

904:デフォルトの名無しさん
08/03/31 16:05:03
初心者無視スレ時代も知らん連中が集まってんのか。

905:デフォルトの名無しさん
08/03/31 16:06:18
うん。

906:デフォルトの名無しさん
08/03/31 16:17:20
>>782
デバッグ版のJDKだと -XX:+PrintOptoAssembly オプション付きで起動すれば
出力できるらしいって URLリンク(d.hatena.ne.jp) に書いてある。

907:879
08/03/31 17:23:10
>>880
いや、まったくそのとおりなんですが、Commons DbUtilsがDataSourceないと使えんとですよ……。

>>881
ありがとうございます。が、これはこれでMockObjectに依存しているのですね。
同じ依存するならcommonsで統一しましょう。
……>>880の言うとおり、一つコネクション取って繋がりっぱなしでいいんですけどねぇ。
何でこんなコトしてるんだろ? Webで使うことしか考えてないのかな>Commons DbUtils

908:デフォルトの名無しさん
08/03/31 17:46:03
>>907
単一スレッドだけなら接続済みの Connection を 1 コ だけ持つ DataSource クラス作れば良いんでねーの。
必要なメソッド数なんて 10 もないでしょ。あ、close() をゴマかさにゃいかんか。

DbUtils って使ったことないけど、DataSource で受け渡したらトランザクションスコープもクソも
なくなるんだがそんなウンコチンチンな作りなのかな。どっかのプロジェクトで見たクソフレームワークみたいだな。

909:デフォルトの名無しさん
08/03/31 17:48:49
ここで908謹製の最強素敵フレームワークへのリンク

910:デフォルトの名無しさん
08/03/31 18:26:27
>>909
前世紀の終わりに作った奴は発想も方向性も今の Spring Framework とかなり似ている。
まぁまだフレームワークという言葉自体なかったし、周囲も OO 設計への理解度が皆無だったし。
他で作ってた、場当たり的な拡張で肥大化したクラスライブラリのようなものの方が 「多機能」
として受けが良かったのは悲しかった。

同じ頃にアプレット使って今の Ajax と同じことを提案してたよ。使われなかったけど。あれは特許も
提案したんだけどなぁ。あらためて思い出すと相当先行ってたな俺。

911:879
08/03/31 18:32:37
>>908
……申し訳ない。大勘違い。
<font size="+3">Commons DbUtilsでDataSourceは必須ではありません</font>
……googleセンセイで引いてくる例がことごとくDataSourceを使ってたもんだから完全に勘違いしてました。

以後メモ。
Commons DbUtilsでDataSourceを使わずにSQLを発行するのは、単にQueryRunnerのコンストラクタを引数なしで呼べばいいだけ。
その後、queryメソッドの第一引数にConnectionを指定すればOK。
Webで引ける例はQueryRunnerのコンストラクタにDataSourceをほとんど必ず指定しているが、DataSourceがないとQueryRunner=Commons DbUtilsが使えないわけではない。

以上、同じ間違いを繰り返す人が出ないことを祈りつつ恥を晒します(涙)

912:デフォルトの名無しさん
08/03/31 18:34:33
受けが良かったのは開発者じゃなくて上や営業向けにね。

913:デフォルトの名無しさん
08/03/31 20:57:05
ajaxなんてだれでも考えつく昔からある方法だろ。
単に最近になってウケただけ。

914:デフォルトの名無しさん
08/03/31 21:25:52
IE でまさに innerHTML やデータバインディングが実装された 4.0 の頃の話してんだが。
どこの昔からある方法だよ。

915:デフォルトの名無しさん
08/04/01 01:42:12
TestClass var = new TestClass();
TestInterface test = (TestInterface)var;
と言うふうにキャストすると、
TestClassがTestInterfaceをimplementsしていなくてもコンパイルが通りました。
キャストすればどんなインターフェイスにも代入できるのかと思ったんですが、
Stringはキャストすることができませんでした。
特定のInterfaceにキャスト可能な条件というのは何なんでしょうか?

916:デフォルトの名無しさん
08/04/01 01:54:18
コンパイルは通らないと思うが。本当に extends や implements してないのか?

917:915
08/04/01 01:59:09
コンパイルは通ったけど、実行したらClassCastExceptionが出ました。
ダメですね。。。

918:デフォルトの名無しさん
08/04/01 02:23:02
すまん勘違いしていた。

public class TestClass2 extends TestClass implements TestInterface{ ... }

というクラスがあるかもしれないから、キャスト時に元の型にそのインターフェースが implements
されていなくてもコンパイルは通る (型チェックは実行時にしかできない)。

TestClass var = new TestClass2();
TestInterface test = (TestInterface)var;

TestClass が final 宣言されていれば TestClass2 のようなサブクラスの存在は
ありえないのでコンパイル段階でエラーになる。

String のキャストに失敗するのは、Java では多重継承ができないから TestClass の
サブクラスであり String のサブクラスでもあるクラスというのはありえないから。

919:デフォルトの名無しさん
08/04/01 19:23:08
Java で作った PublicKey, PrivateKey を KeyStore で保存したいんだけど、
Certificate が必要なようだけどこれってどうやって作るの?

920:デフォルトの名無しさん
08/04/02 08:16:19

ユーザ認証を求められるwebサイトで、認証後の内容
つまりログイン状態後にアクセス可能になるコンテンツに、
javaプログラムでアクセスするためには、どういう方法をとればよいのでしょうか?


端的に言って、mixi のことなんですが....

javaプログラム側でどのような方法をとれば、mixiのログイン状態を実現できるのか、
知りたいのです。



921:デフォルトの名無しさん
08/04/02 08:43:50
>>920
javaプログラムでログインすればいいです。

922:デフォルトの名無しさん
08/04/02 09:22:17
>>920
HTTP通信のライブラリを使うと楽。
Apache HttpComponentsとかHttpUnitとかお薦め。

923:デフォルトの名無しさん
08/04/02 11:09:49
>>921
そのやり方僕にも教えて

ログイン時のパラメーターをどうやってJAVAからWEBサイト側に渡すのか
方法が分からん

924:デフォルトの名無しさん
08/04/02 11:18:15
URL と URLConnection で GET/POST リクエスト送る方法調べろ。

925:デフォルトの名無しさん
08/04/02 11:26:05
それだけなんだ


926:デフォルトの名無しさん
08/04/02 13:40:31
>>923
まずHTTPから勉強しなよ

927:デフォルトの名無しさん
08/04/02 14:44:22
Struts+JSPで親画面からwindows.openで子画面をポップアップで開き、子画面で選択した内容を親画面に戻しています。
親画面が縦長なので画面が一番上に戻ってしまいます。
一番上に戻らないようにしたいのですが、どうすれば良いでしょうか?


928:デフォルトの名無しさん
08/04/02 14:48:12
JavaScript で入力内容を親画面に設定しれ。リクエスト出すな。

929:デフォルトの名無しさん
08/04/02 15:37:59
入力した数字が素数か調べるにはどうすればいいですか?

930:デフォルトの名無しさん
08/04/02 15:42:51
>>929
その数字の約数を調べればいい
約数が1とその数字自身しかなければ素数

931:デフォルトの名無しさん
08/04/02 17:11:15
>>920
まずは Firefox と LiveHTTPHeaders を入れて、どんなことが起きてい
るのか調べるんだ。その上で、どんなAPIを使えば楽ができるのかを考える。


932:デフォルトの名無しさん
08/04/02 17:13:10
Eclipse の TCP/IP モニタで十分じゃん。

933:デフォルトの名無しさん
08/04/02 19:13:01
プログラミング初心者ですが、質問があります。
eclipseで以下のようなプログラムを書いて、それをjar形式でエクスポート
しました。
しかし、そのjarファイルをクリックして開こうとすると「could not find main class」
と出てききます。どうすればいいのでしょうか?
誰かわかる方助けてくださいお願いします。

import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;

import javax.imageio.ImageIO;
import javax.swing.JFrame;




934:デフォルトの名無しさん
08/04/02 19:13:57
public class GameTestMain {

/**
* @param args
*/
JFrame frame1;
BufferStrategy bstrategy;
int count = 0;
BufferedImage backimage1, backimage2;

GameTestMain() {
frame1 = new JFrame("ノベルゲーム");
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.setBackground(Color.WHITE);
frame1.setResizable(false);


935:デフォルトの名無しさん
08/04/02 19:15:13
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
GameTestMain gtm = new GameTestMain();
}


class MyTimerTask extends TimerTask {
public void run() {
Graphics g = bstrategy.getDrawGraphics();
if (bstrategy.contentsLost() == false) {
Insets insets = frame1.getInsets();
g.translate(insets.left, insets.top);

g.drawImage(backimage1, 0, 0, frame1);

g.setFont(new Font("Selif", Font.PLAIN, 40));
drawStringCenter("秒速1キロメートル", 100, g);


bstrategy.show();
g.dispose();
}
}
}



936:デフォルトの名無しさん
08/04/02 19:16:07
void drawStringCenter(String str, int y,Graphics g) {
int fw = frame1.getWidth() / 2;
FontMetrics fm = g.getFontMetrics();
int strw = fm.stringWidth(str) / 2;
g.drawString(str, fw-strw, y);
}

}


937:デフォルトの名無しさん
08/04/02 19:17:17
マニフェスト Main-Class でググレ

938:デフォルトの名無しさん
08/04/02 19:17:23
エクスポートするときにメインクラス指定した?

939:デフォルトの名無しさん
08/04/02 19:22:08
>>938
GameTestMainってのを選択しました。

940:デフォルトの名無しさん
08/04/02 19:30:00
>>933
jarを展開してMETA-INF/MANIFEST.MFファイルがあるか確認
その中にMain-Class: GameTestMainと書かれているか確認
必要なclassファイル (GameTestMain.classとかMyTimerTask.classとか) が全部入ってるか確認

941:デフォルトの名無しさん
08/04/02 19:53:56
それ以前にクラスパス通ってる?

942:デフォルトの名無しさん
08/04/02 20:42:01
そもそもデフォルトパッケージで JAR 起動できたんだっけか?

943:デフォルトの名無しさん
08/04/02 20:46:12
できるよー

944:デフォルトの名無しさん
08/04/02 22:53:45
>>932
どうやるんだ?

945:デフォルトの名無しさん
08/04/02 22:59:32
[Window]-[Show View]-[Other...]-[Debug]-[TCP/IP Monitor]
右上の ▽ の Properties... で実際の接続先を指定。
ブラウザのプロキシ設定で localhst:<local monitor port>

946:デフォルトの名無しさん
08/04/03 02:27:30
一つお伺いしたいのですが,java複数枚のjpegをmjpeg or wmv を作りたいのですが
どの様にすればよいのでしょうか?

947:デフォルトの名無しさん
08/04/03 02:38:51
java複数枚のjpegってなんだ?をが2つあるし

948:デフォルトの名無しさん
08/04/03 02:57:03
>>946
標準APIではメソッド一発で、みたいな便利なものはなさそうだから、
フレームになるjpegデータを読み込んで欲しい動画形式に従ってファイルに書き出していくしかなさそう。
標準でなければ動画を扱うライブラリとかでありそうだけど。

949:デフォルトの名無しさん
08/04/03 09:06:56
JMFってMotionJPEG対応してなかったっけ?

950:デフォルトの名無しさん
08/04/03 17:31:08
チャット作るのに JMS 使うのって鯵捌くのに斧振り回すみたいなもんかね?

951:デフォルトの名無しさん
08/04/03 22:19:06
文字列にそれまでと違う文字が出てくるindexってとれますか?
1111223111だったら4が取得できるといった感じの

952:デフォルトの名無しさん
08/04/03 22:27:52
>951
配列に展開してfor文でまわせばいいじゃん・・・

953:デフォルトの名無しさん
08/04/03 22:36:47
次すれから初心者出入禁止な

954:デフォルトの名無しさん
08/04/03 22:52:55
超初心者スレもあるのかな?
とりあえず、質問内容を理解できる日本語文が読みたいよ。

955:デフォルトの名無しさん
08/04/03 23:13:14
【初心者以前】Java質問隔離スレ【エスパー募集】とか?

956:デフォルトの名無しさん
08/04/03 23:27:59
くだすれでいんじゃね?

957:デフォルトの名無しさん
08/04/04 00:13:20
Javaから、Windows上のフォルダの書込権限を調べることは可能でしょうか?

Javaは1.4、Windowsは2000もしくはXPが対象です。

958:デフォルトの名無しさん
08/04/04 00:34:49
>>957
File.canWrite()



959:デフォルトの名無しさん
08/04/04 01:06:14
>>958
ありがとうございます。
1週間以上探しても見つからず、もはや不可能なのかと諦めかけていました。

960:デフォルトの名無しさん
08/04/04 01:15:01
>>951
String s = "1111223111";
String regex="(.)\\1*([^\\\\1])";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
if(m.find()) {
int i = m.group(0).length() - 1;
System.out.println(m.group(0));
System.out.println("index is " + i);
}
できたどー

961:デフォルトの名無しさん
08/04/04 04:03:24
どうやったらこれ探すのに1週間以上かかるんだw

962:960
08/04/04 06:25:46
String s = "1111223111";
String regex="(.)\\1+(.)";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
if(m.find())
if(!m.group(1).equals(m.group(2))) {
int i = m.group(0).length() - 1;
System.out.println(m.group(0));
System.out.println("index is " + i);
}
間違えてたどー


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