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


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

【初心者】Java質問・相談スレッド113【大歓迎】



1 名前:デフォルトの名無しさん [2008/03/01(土) 18:16:51 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。pc10.2ch.net/hp/

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

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

前スレッド
【初心者】Java質問・相談スレッド112【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1202467704/

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝のう存じます。

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

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

672 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 22:42:30 ]
>>667
AES >  Blowfish > トリプルDES
ぐらいかなあ

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

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



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

674 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 23:04:12 ]
>>673
ない。Java は break と continue だけ。

675 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 23:07:24 ]
break => break
next => continue
retry = なし
redo = なし
かな。


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

677 名前:634 mailto:sage [2008/03/23(日) 23:09:18 ]
>>675さんもありがとうございます。

678 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 23:21:22 ]
>>671
javaw and shutdown hooks (referring to #4302814)
ttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4486580

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



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

681 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 00:26:17 ]
Ruby厨ってやつだろ

682 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 01:13:37 ]
>>676
retry や redo と同等の処理を記述することはそれほど難しくないから、
「出来ない」というのは語弊がある。

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

685 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 02:29:20 ]
畳の上の水練という言葉があってだな


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

687 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 03:26:34 ]
古い。



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

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

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

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

694 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:11:00 ]
「嫌で」「なんかでちゃう」
そんなとこなら諦めれ

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

696 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:26:40 ]
サーバでJavaのプロセスを起動し、Socket通信汁

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

698 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:44:13 ]
nohup じゃだめなの?

699 名前:693 mailto:sage [2008/03/24(月) 11:04:20 ]
>>698
勉強不足でnohupを知りませんでした。
それでやります!ありがとうございました!



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

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

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

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

704 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 12:55:12 ]
>>701
マルチスレッドで処理しろよw

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

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


706 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:12:19 ]
Collections.sort()

707 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:12:29 ]
つCollections.sort

708 名前:705 mailto:sage [2008/03/24(月) 17:17:03 ]
>>706-707
あ、やっぱりそれ用のがあったのですね
ありがとうございました


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



710 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:44:18 ]
>>710
JDKについてくるjava.awt.Colorあたりのソースで、intと
alpha, red, green, blueの各1バイトの換算をしているのが参考になると思う。

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



713 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:49:26 ]
>>711>>712
返信いただき、ありがとうございます。

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

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

714 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:51:26 ]
Javaでbyteがsignedってのはつくづく罠と思う。


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

716 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 23:32:34 ]
intが17bit以上の場合が考慮されていないけどいいのか?

717 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 00:57:08 ]
javaはバイナリの操作向いてないよ

718 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 01:30:50 ]
またおまえか

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



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

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

722 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 08:19:51 ]
APIじゃだめなの?

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

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

725 名前:719 mailto:sage [2008/03/25(火) 11:14:34 ]
静的って書いたのがまずかったのでしょうか
Math.なんちゃら〜 とか system.なんちゃら〜 みたいなもので
頻繁に使われるような物のリストを探しているのですが

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

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

727 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 12:16:29 ]
Mathのメソッドもそんなに頻繁に使うとは思えない

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

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





730 名前:719 mailto:sage [2008/03/25(火) 12:57:38 ]
java.lang, java.util. java.io以下のクラスですな
さっそく調べて覚えるよう様にするす
dクス!

731 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 12:59:22 ]
719が聞いてたのはstaticメソッドのことじゃないの?

732 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 16:20:26 ]
>>732
AudioSystem#getMixerInfo、AudioSystem#getMixer、Mixer#getTargetLineInfoあたりで
全部のターゲットラインをリストアップして、一覧から選ばせるってのはどうだろう・・・

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

735 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 17:56:49 ]
OSは?

736 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 17:57:07 ]
C:\Program Files\Java\jdk1.6.0_05\bin

737 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 17:57:13 ]
窓xp sp3です

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

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

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



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

741 名前:>>733 mailto:sage [2008/03/25(火) 18:51:09 ]
>>732
それしかないみたいですね。
そうします。ありがとうございました!!

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

743 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:08:09 ]
どんどん追加していけばいいだけ

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

745 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 23:17:31 ]
追加できるのか。ども。

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

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


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

749 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 12:11:17 ]
ありがとう。認識あらためます。




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

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

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

752 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 15:12:47 ]
C# と比較するとわかりやすいかも。

753 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 15:37:35 ]
C#しらねって奴多いんじゃない?

754 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 15:46:55 ]
C#いらねって奴多いんじゃない?

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

756 名前:デフォルトの名無しさん [2008/03/26(水) 21:12:25 ]
String str1 = "文字列";

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

757 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:21:35 ]
後者は無駄の極み

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

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

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



760 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:47:42 ]
上は str1 == str が true、下は str2 == str が false
従ってインスタンスが同じかどうかの違いがそのまま適用される。
たとえば synchronized(str1) と synchronized(str)

762 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 22:20:03 ]
誰か文字列の実体はプールで共有されてるって言ってやれよ。

763 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 22:34:46 ]
理由言わないとね・・・

764 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 22:36:15 ]
プールと言いたいだけの奴とは違うのだよ。

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

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

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

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

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



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

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






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<246KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef