【初心者】Java質問・相談スレッド82【大歓迎】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/02/25(土) 23:38:06質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals を使え。
前スレッド
【初心者】Java質問・相談スレッド81【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1139654818/
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。
JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/
次スレは>>980あたりで。
0002デフォルトの名無しさん
2006/02/25(土) 23:41:500003デフォルトの名無しさん
2006/02/26(日) 00:06:090004デフォルトの名無しさん
2006/02/26(日) 00:08:200005デフォルトの名無しさん
2006/02/26(日) 03:04:100006デフォルトの名無しさん
2006/02/26(日) 03:07:20g.drawRect(20,20,40,40);
}
0007デフォルトの名無しさん
2006/02/26(日) 11:11:14MouseAdapterのmousePressedを使って、メニューの中にあるMenuItemをクリックしたのを
判断するには、どういった記述が正しいのですか?
if(e.getSource==item1){;}だと、item1のシンボルが見つからないとでます・・・
0008デフォルトの名無しさん
2006/02/26(日) 11:14:450009デフォルトの名無しさん
2006/02/26(日) 11:19:580010デフォルトの名無しさん
2006/02/26(日) 11:25:46JMenuItem 一個ずつに ActionListener 仕掛けとけ。
0011デフォルトの名無しさん
2006/02/26(日) 11:31:12サイトを巡って見つけたので、分かるのですが。MouseAdapterを使って判断する仕方が
探すことができなくて、、、
0012デフォルトの名無しさん
2006/02/26(日) 12:28:49前提が間違ってる。
コンポーネントをマウスで操作したときにMouseListener(MouseAdapter)が必要になるわけではない。
コンポーネントに対してマウスで行った動作をMouseListenerに通知するのである。
同じく、コンポーネントに対して行われた何らかのアクションをActionListenerに通知する。
これらの仕組みは、既に組み込まれており、常に動いているのである。
ユーザの動作を補足したい場合、Listenerをそのコンポーネント(今回はMenuItem)にあらかじめ登録(追加)する。
コレにより、通知がListenerに届き、登録された動作を実行するようになる。
0013デフォルトの名無しさん
2006/02/26(日) 12:31:18とかで出来そうじゃん。
0014デフォルトの名無しさん
2006/02/26(日) 12:36:40ですが、item1.addMouseListener(new myListener());であらかじめ登録していると
思っているのですが。
なぜシンボルが見つからないと出てしまうのでしょうか・・・
0015デフォルトの名無しさん
2006/02/26(日) 12:47:270016デフォルトの名無しさん
2006/02/26(日) 12:47:39シンボルが見つからないのは、import をミスってるか、
クラス名の書き間違い、だっけ?
0017デフォルトの名無しさん
2006/02/26(日) 13:01:10さんざんひっぱってすみませんでした、ありがとうです。
0018デフォルトの名無しさん
2006/02/26(日) 13:04:350019デフォルトの名無しさん
2006/02/26(日) 13:09:11違うクラスの変数を使おうとしただけじゃね?
まぁ、グローバルなんて何処の世界の住人だろうと思うが
0020デフォルトの名無しさん
2006/02/26(日) 13:58:540021デフォルトの名無しさん
2006/02/26(日) 14:03:13何が言いたいのかよくわからんが圧縮すればいいんでね?
0022デフォルトの名無しさん
2006/02/26(日) 14:05:31短いならそのまま↓あたりで。長かったらzip圧縮してあぷろだかな。
http://sourcepost.sytes.net/
0023デフォルトの名無しさん
2006/02/26(日) 15:12:42どうすればいいの?
0024デフォルトの名無しさん
2006/02/26(日) 15:20:54pdfみたいのでなんかない?
002621
2006/02/26(日) 15:27:51>25の書き込みは>21によるものです。
0027デフォルトの名無しさん
2006/02/26(日) 15:30:35っ<pre>
0028デフォルトの名無しさん
2006/02/26(日) 15:35:06どうすればよいのか教えてください!
002924
2006/02/26(日) 15:39:450030デフォルトの名無しさん
2006/02/26(日) 15:41:080031デフォルトの名無しさん
2006/02/26(日) 15:41:21Integer#toString()
0032デフォルトの名無しさん
2006/02/26(日) 15:43:07Eclipse使っているなら、Java2Html プラグインがある。
http://www.java2html.de/eclipse.html
>>28
String str = intObject.toString();
0033デフォルトの名無しさん
2006/02/26(日) 15:43:36作ればいいじゃん?
Web製作板へ。行っても蹴られそうだが
おそらく日本人だろうが、日本語の不自由さに哀れみすら感じる。
0034デフォルトの名無しさん
2006/02/26(日) 15:53:100035デフォルトの名無しさん
2006/02/26(日) 15:59:15コンピュータ弄って間もないうちにプログラミングなんかに手を出した結果がこれ。
003621
2006/02/26(日) 16:16:22>20が言う「pdfみたいなの」とはハイパーリンクのことだろう。
ハイパーリンクはHTMLでやるのが普通。
ただ>20にはHTMLの知識はおろかコンピュータに関する知識も危うい。
>20が何を公開するのか興味あるなあ。
003720翻訳
2006/02/26(日) 16:30:08どのようなファイル形式にするのが好ましいでしょうか?
ソースは自分のサイトに公開するのですが、
もしpdfに似たファイル形式があれば教えてください。
こんな具合だろう。
>29は拡張子のことを表現したかったと思われる。
0038デフォルトの名無しさん
2006/02/26(日) 16:35:35Javaのソースを自分のホームページに公開したいです。
JapaneseInterpretException
0039デフォルトの名無しさん
2006/02/26(日) 16:59:110040デフォルトの名無しさん
2006/02/26(日) 17:01:17意味が分からん。
0041デフォルトの名無しさん
2006/02/26(日) 17:04:330042デフォルトの名無しさん
2006/02/26(日) 17:07:36>37=>41だったらこの質問意味ないが。
0043デフォルトの名無しさん
2006/02/26(日) 17:10:53ソースを公開したいけどどうしたらいい? 以外に解釈のしようがあるのかと。
0044デフォルトの名無しさん
2006/02/26(日) 17:12:26>>41 はアンカー付けてくれ。
004540
2006/02/26(日) 17:24:24「pdfに似たファイル形式」とか「拡張子のことを表現したかった」って何が言いたいか分かる?
「pdfに似たファイル形式」っていう表現は目的語がないからよく分からないのよ。
"ソース"を「pdfに似たファイル形式」で公開するってこと?
もし"ソース"をだったとしたら、何でいちいちそんなめんどくさいことするのか分からん。
テキスト(*.txt)でアップするとかでいい。
「拡張子のことを表現したかった」はお手上げ。まったく分からん。
「>29は拡張子のことを表現したかった」って何?
0046デフォルトの名無しさん
2006/02/26(日) 17:31:45004740
2006/02/26(日) 17:34:57Λ||Λ
( / ⌒ヽ
| | |
∪ 亅|
| | |
∪∪
:
: 第三者に言われるならまだしも・・・
‐ニ三ニ‐
0048デフォルトの名無しさん
2006/02/26(日) 17:39:21Java DLセンターに
jdk-1_5_0_06-windows-i586-p.exe 59.86 MB
jdk-1_5_0_06-windows-i586-p-ifw.exe 237.81 KB
の2つがあるのですが
下のほうはなんか関係があるのですか?
0049デフォルトの名無しさん
2006/02/26(日) 17:48:230050デフォルトの名無しさん
2006/02/26(日) 17:49:49オフラインインストールと
オンラインインストール
後者はインストール時に必要なものを
ネット経由でとってくる。
0051デフォルトの名無しさん
2006/02/26(日) 17:50:50~~~~~~
オフライン版はインストーラーとインストールデータが入っている。
オンライン版はインストーラーだけで、インストールデータはインストールのときに取りに行く。
ディスク容量が切迫してて一時的にもオフライン版を置くのが厳しい場合や、開発環境を
整えるために皆に配る場合、雑誌の配布用 CD-ROM に入れたりだとかそんな用途だと思う。
0052デフォルトの名無しさん
2006/02/26(日) 18:02:24たとえば、どんな時に使えば良いのですか?
0053デフォルトの名無しさん
2006/02/26(日) 18:07:060054デフォルトの名無しさん
2006/02/26(日) 18:11:05ファイナライザをオーバーライドした中で、スーパークラスのファイナライザを呼び出す時。
0055デフォルトの名無しさん
2006/02/26(日) 18:12:04ピザでも食っ(ry
0056デフォルトの名無しさん
2006/02/26(日) 18:15:33Stringクラスのインスタンスが作られてそこに格納されるんでしょうか?
それともC言語のように裸の状態(?)で取り扱われるんですか?
0057デフォルトの名無しさん
2006/02/26(日) 18:17:41char(うにこーど
)の配列
0058デフォルトの名無しさん
2006/02/26(日) 18:18:40前者
"str".charAt(0);とかメソッドも呼べる。
0059デフォルトの名無しさん
2006/02/26(日) 18:21:35String クラスのインスタンス
だから "ABC".charAt(1) という書き方も出来る。
>>57
ボケか天然か分かりづらくて絡めないんだが…
0060デフォルトの名無しさん
2006/02/26(日) 18:22:43クラスに属さずに宙ぶらりんの状態では存在しない..ということですね
0061デフォルトの名無しさん
2006/02/26(日) 19:17:52「java script」と表示されるリンク先が
開けないのですがどうしたら良いのでしょうか?
0062デフォルトの名無しさん
2006/02/26(日) 19:19:530063デフォルトの名無しさん
2006/02/26(日) 19:20:02精神異常は消えろよ
ここはJavaスレだ 関係ない質問持ってくんなよ糞が
006461
2006/02/26(日) 19:23:14javaと表示されているのでjavaスレが適切なんだろうかと思ってました…
ご忠告ありがとうございます
0065デフォルトの名無しさん
2006/02/26(日) 19:25:03JavaかJavaScriptかどっちかはっきりしろよ低能
0066デフォルトの名無しさん
2006/02/26(日) 19:27:320067デフォルトの名無しさん
2006/02/26(日) 19:34:390068デフォルトの名無しさん
2006/02/26(日) 19:40:470069デフォルトの名無しさん
2006/02/26(日) 19:41:09氏ね
0070デフォルトの名無しさん
2006/02/26(日) 19:45:060071デフォルトの名無しさん
2006/02/26(日) 19:48:13起動後に特定フォルダ内にある特定拡張子(実質的には .classファイル)のファイルを読み込み、
それを基にしてメニュー項目を追加したりタブ項目を追加したり本体を改造したりしたいのですが・・・
0072デフォルトの名無しさん
2006/02/26(日) 19:51:13URLClassLoader
0073デフォルトの名無しさん
2006/02/26(日) 19:52:56ありがとうございます。
0074デフォルトの名無しさん
2006/02/26(日) 20:11:39ありがとうございます
0075デフォルトの名無しさん
2006/02/26(日) 20:13:57ありがとうございます。
0076デフォルトの名無しさん
2006/02/26(日) 20:19:500077デフォルトの名無しさん
2006/02/26(日) 21:59:390078デフォルトの名無しさん
2006/02/26(日) 22:41:36所々JavaScriptと取り扱いが似ている部分がありますね
オラ、なんだかわくわくしてきたぞ
0079デフォルトの名無しさん
2006/02/26(日) 22:43:34awt やらずにいきなり swing の勉強してるが今のところ特に問題ないです。
皆さんが言ってたとおり、必要な部分だけ awt 使って後は swing で出来る
感じですね。今のところなんでこの後はわかりませんが。
楽チンですな。
0080デフォルトの名無しさん
2006/02/26(日) 22:46:540081デフォルトの名無しさん
2006/02/26(日) 22:49:380082名無し募集中。。。
2006/02/26(日) 22:51:45awt やらない奴はぁ〜〜〜アウト(awt)!なんつって
0083デフォルトの名無しさん
2006/02/26(日) 23:05:02あっ、てめぇ、俺の発言パクるんじゃねーYO!
0084デフォルトの名無しさん
2006/02/26(日) 23:11:240086デフォルトの名無しさん
2006/02/26(日) 23:37:09javaのソースの公開はどうやればいいですか?ファイル形式ので。
↑いや、単純にこの言葉だけで何をどうしたいのか分かり辛いだろ
読解力じゃなくて、説明する側の説明不足だよ
なんならソースをまるごとアーカイバにしちゃった方が早いだろ
0087デフォルトの名無しさん
2006/02/26(日) 23:37:270088デフォルトの名無しさん
2006/02/26(日) 23:38:06阿呆の相手するな
0089デフォルトの名無しさん
2006/02/26(日) 23:42:12コミュニケーションランゲージなんてのは、結局人によって違ってくるんだし
そこを解決するために、プログラム言語に対してコンパイラがある
そのくらい物事が理解できなきゃ、プログラミングの腕も大したこたぁ〜ねぇな
なぁ、粘着>>20よ。自分の世界に入ってねーで、ちったぁインターネットの世界で良いから
海外に向けてみろや?な?
日頃使っている検索エンジンはなんだ?Yahoo!Japanか?
なら www.yahoo.com/ にしてみろ、な?世界が広がるぜ?
0090デフォルトの名無しさん
2006/02/26(日) 23:44:020091デフォルトの名無しさん
2006/02/26(日) 23:44:14なら途中に入れるコメントや注釈も英語で書いてみようぜ?
一文字2バイトも食っちまう全角なんてもったいないだろ?
ソースの無駄遣いだぜ?おっと、お好み焼きにはソースもマヨネーズも
けちけちしないけど適量でたのむぜ
0092デフォルトの名無しさん
2006/02/26(日) 23:45:28こんなのが日本の未来を担うなんて、日本は終わったな
まぁ、少子化問題は外国人労働者の導入で解決せざるを得ないだろうけど
0093デフォルトの名無しさん
2006/02/26(日) 23:50:580094デフォルトの名無しさん
2006/02/26(日) 23:51:54その歳でPGって大変だろ
0095デフォルトの名無しさん
2006/02/26(日) 23:54:07(×) とうり
(○) とおり
(×) 以外に
(○) 意外に
日本語に乏しいようですね。
0096デフォルトの名無しさん
2006/02/26(日) 23:54:39自分の浅はかな考えで相手を罵倒するとか、やれやれ・・・
>>20のプログラムは参考にならんから、アップすんなよ
どうせ悪さするウィルスだろw
0097デフォルトの名無しさん
2006/02/26(日) 23:55:51だからさぁ、キチガイ>>20は説明不足だっつってんのよ?
日本語に乏しいとかじゃなくてw
0098デフォルトの名無しさん
2006/02/26(日) 23:58:14javaのソースの公開はどうやればいいですか?ファイル形式ので。
↑明らかに説明不足。自分の状況が他人にも理解されないと切れるタイプ
0099デフォルトの名無しさん
2006/02/26(日) 23:59:130100デフォルトの名無しさん
2006/02/26(日) 23:59:36>>37のとうりです。他の人がvisual studioを使ってるのでそれでやります。
以外に読解力が乏しいひとが多いですね。
↑以外に自分の状況を説明できないひきこもりがいるみたいですねw
0101デフォルトの名無しさん
2006/02/27(月) 00:00:39はーい、まぁ、アホは自爆するだけだからね
相手を否定して自分を正当かしようとか
相手に落ち度があれば徹底的に責めて
最後に自分がつまらない失敗をしたことで大勢から攻められるんだよなw
0102デフォルトの名無しさん
2006/02/27(月) 00:03:01情けは人の為ならず、ではありませんが、
攻撃する時は細心の注意を払って行うようにしています。
自爆が一番怖いですなぁ
0103デフォルトの名無しさん
2006/02/27(月) 00:10:49ちゃちゃっと僕チンのためにテトリスとかフリーセルを作ってよー
0104デフォルトの名無しさん
2006/02/27(月) 00:12:15車輪の再発明はよろしくなくてよ
0105デフォルトの名無しさん
2006/02/27(月) 00:21:55テトリス
ttp://ikeda.gotdns.com/soft/
フリーセルはしらん
0106デフォルトの名無しさん
2006/02/27(月) 00:26:02リハビリ用にスレッド一つ立ってんだから
0107デフォルトの名無しさん
2006/02/27(月) 00:33:000108デフォルトの名無しさん
2006/02/27(月) 00:50:33国語の授業を倍くらいにしろよ。情緒的な美的感覚のないやつの書いた
プログラムってぐちゃぐちゃだし勘弁して。
0109デフォルトの名無しさん
2006/02/27(月) 00:51:29そこでコーディング規約ですよ
0110デフォルトの名無しさん
2006/02/27(月) 00:52:250111デフォルトの名無しさん
2006/02/27(月) 00:54:51Dateインスタンスの属性のうち、
YEAR/MONTH/DAY/HOURを残して
残りをすべて0に設定したいのですが、
以下のやり方でよいのでしょうか?
Calendar cal = Calendar.getInstance();
cal.setTime(d);
cal.set(MINUTE, 0);
cal.set(SECOND, 0);
d = cal.getTime();
よろしくお願いします。
0112111
2006/02/27(月) 01:03:18おたずねしたいのは、
calendarにSECONDより小さな属性は含まれていないのかということと、
何となく回りくどく見えるが、これがもっともストレートな記法なのかということです。
どうかよろしくお願いしますm(_ _)m
0113デフォルトの名無しさん
2006/02/27(月) 01:07:240114デフォルトの名無しさん
2006/02/27(月) 01:48:33CalendarのAPIにざっと目を通せば明らかだと思うんだが、
Calendar.MILLISECONDがある。
0115デフォルトの名無しさん
2006/02/27(月) 01:54:460116デフォルトの名無しさん
2006/02/27(月) 01:55:550117デフォルトの名無しさん
2006/02/27(月) 02:08:39Date sourceDate = new Date();
Calendar c1 = Calendar.getInstance();
c1.setTime(sourceDate);
Calendar c2 = new GregorianCalendar(c1.get(Calendar.YEAR), c1.get(Calendar.MONTH), c1.get(Calendar.DAY_OF_MONTH), c1.get(Calendar.HOUR), 0, 0);
Date resultDate = c2.getTime();
System.out.println(c1);
System.out.println(c2);
System.out.println(sourceDate);
System.out.println(resultDate);
0118デフォルトの名無しさん
2006/02/27(月) 02:13:55レスありがとうございます!!
> CalendarのAPIにざっと目を通せば明らかだと思うんだが
確かにありました!
お手数おかけしてすみません。
ということは
Calendar#getTime()を呼び出した際にmsecは
勝手に切り捨てられるわけですね。
何となく腑に落ちませんが、
無理矢理納得することにします(>_<)
0119デフォルトの名無しさん
2006/02/27(月) 02:15:530120デフォルトの名無しさん
2006/02/27(月) 02:23:40>Calendar#getTime()を呼び出した際にmsecは
>勝手に切り捨てられるわけですね。
DateもCalendarもミリ秒単位だから切捨ては起きないと思うが。
0121デフォルトの名無しさん
2006/02/27(月) 02:38:57ええ〜っ
Date#getMillisecond()は存在しないので
てっきりmsecはないものだと思ってました。
ありがとうございますm(_ _)m
>>117
ありがとうございます!
参考にさせて頂きます。
日付計算めんどくさいです、、、
getRange(開始日時(n時ぴったりを指定)、終了日時)
っていうインターフェースに
getRange(今日の3時、明日の5時)
って指定したいだけなのに、もうソースぐちゃぐちゃ、、、(T-T)
どなたか助けてください(>_<)
0122デフォルトの名無しさん
2006/02/27(月) 02:40:460123デフォルトの名無しさん
2006/02/27(月) 02:50:56おおお。
こんな感じのコードが山ほどです(>_<)
public class DateTest {
public static void main(String[] args) {
Date d = new Date();
Calendar today3 = Calendar.getInstance();
today3.setTime(d);
today3.set(HOUR, 3);
today3.set(MINUTE, 0);
today3.set(SECOND, 0);
today3.set(SECOND, 0);
Calendar tomorrow5 = Calendar.getInstance();
tomorrow5.setTime(d);
tomorrow5.add(DATE, 1);
tomorrow5.set(HOUR, 5);
tomorrow5.set(MINUTE, 0);
tomorrow5.set(SECOND, 0);
tomorrow5.set(SECOND, 0);
ArrayList<Hoge> hoges = Fugo.getRange(today3, tomorrow5);
}
}
0124デフォルトの名無しさん
2006/02/27(月) 02:51:54んでな、そのソースが「何の処理をする目的」かも分からんと
助言すら出来んのよ
0125デフォルトの名無しさん
2006/02/27(月) 02:52:34public class DateTest {
public static void main(String[] args) {
Date d = new Date();
Calendar today3 = Calendar.getInstance();
today3.setTime(d);
today3.set(HOUR, 3);
today3.set(MINUTE, 0);
today3.set(SECOND, 0);
today3.set(MILLISECOND, 0);
Calendar tomorrow5 = Calendar.getInstance();
tomorrow5.setTime(d);
tomorrow5.add(DATE, 1);
tomorrow5.set(HOUR, 5);
tomorrow5.set(MINUTE, 0);
tomorrow5.set(SECOND, 0);
tomorrow5.set(MILLISECOND, 0);
ArrayList<Hoge> hoges = Fugo.getRange(today3,getTime(), tomorrow5.getTime());
}
}
0126デフォルトの名無しさん
2006/02/27(月) 02:54:47日時の範囲を指定して、データを取得するコードです。
上記の場合、
今日の3時から明日の5時までのすべてのHogeを取得して
hogesに格納します。
0127デフォルトの名無しさん
2006/02/27(月) 02:55:010128デフォルトの名無しさん
2006/02/27(月) 03:02:57それか分・秒・ミリ秒を無視するSimpleDateFormatで文字列化して、それをもう一度parseしろ。
0129デフォルトの名無しさん
2006/02/27(月) 03:15:48レスありがとうございます!
長々とお付き合い頂きありがとうございます。
>>truncate
確認しました!少し楽にかけそうです。
ところで、いちいちCalendarが介在するために
ソースがだらだらしてしまうのではないかと思います。
もはやオブジェクト間で日付の受け渡しをする際は、
以下のように、Dateではなく、Calendarを用いるべきなのでしょうか?
fugo#getData(Date date) → fugo#getData(Calendar cal)
Dateの存在意義って、、、!?
0130デフォルトの名無しさん
2006/02/27(月) 03:21:19ゴメソ OTL せめて hage ならカツラを勧めてやるのだが
0131デフォルトの名無しさん
2006/02/27(月) 04:42:37Date の一行目を見よう。
ちなみに英語の Calendar に対応する日本語は暦である。
0132デフォルトの名無しさん
2006/02/27(月) 05:00:48あるスレッドがそのメソッドを実行中は他のスレッドは他の
synchronizedなメソッドを実行することは出来ますか?
分かりづらくてすみません。
一つのクラスの複数のsynchronizedなメソッドは同時に
ロックがかかるのかなと思ったんですがどうなんでしょうか?
0133デフォルトの名無しさん
2006/02/27(月) 05:14:21コレで理解できるはず。
http://www.y-adagio.com/public/standards/tr_javalang/8.doc.htm#55408
0134デフォルトの名無しさん
2006/02/27(月) 11:30:19ですか?randomをつかってもうまくいきません。
0135デフォルトの名無しさん
2006/02/27(月) 11:41:490136デフォルトの名無しさん
2006/02/27(月) 11:47:20(int) (random() * 700)
(int) (random() * 420) + 180
0137デフォルトの名無しさん
2006/02/27(月) 12:05:36ArrayListに追加した内容をVector配列に追加したいのですが普通にaddじゃで機内みたいなんですけど
どのようにしたらいいのでしょうか?
0138デフォルトの名無しさん
2006/02/27(月) 12:16:35・生成
ArrayList al = new ArrayList();
(なんやらかんやら)
Vector v = Vector(al); // そのまんまですな
・コピー
ArrayList al = new ArrayList();
(なんやらかんやら)
Vector v = Vector();
v.addAll(al);
ArrayListに入れてるのに、なんでVectorに入れなおすのかが意図不明。
もしかしたら、もっとすっきりしたコードになるかもよ。
0139デフォルトの名無しさん
2006/02/27(月) 12:31:12javaで作ったファイルを、exeファイル等で起動することはできませんか?
よければやり方を教えていただけませんか?
0140デフォルトの名無しさん
2006/02/27(月) 12:33:22JNI
0141デフォルトの名無しさん
2006/02/27(月) 12:33:34system("java hoge");
とか
0142デフォルトの名無しさん
2006/02/27(月) 12:45:27前スレでも似たようなのあったな。
VMあるという前提なら、exewrapとかで良いかと。
0143デフォルトの名無しさん
2006/02/27(月) 13:00:53String型の配列の、"配列の長さ"を調べる方法ってありますか?
String.length()じゃなくて、 new String[n]; のnを調べる方法です。
0144デフォルトの名無しさん
2006/02/27(月) 13:01:55System.out.println(array.length);
0145デフォルトの名無しさん
2006/02/27(月) 13:07:56Σ(・Д・;三・д・)
インデックス指定じゃなくて、配列の元からlength()かけると出るんですか。
ありがとうございます。
0146デフォルトの名無しさん
2006/02/27(月) 13:10:34配列はオブジェクト扱いだから。Stringの配列に限りませんね。
0147デフォルトの名無しさん
2006/02/27(月) 15:00:02Could not create the Java virtual machine.
と出て実行できません。
助けてください。
お願いします。
0148デフォルトの名無しさん
2006/02/27(月) 15:04:21http://www.google.co.jp/search?q=Could+not+create+the+Java+virtual+machine.&num=100&hl=ja&c2coff=1&rls=GGLD,GGLD:2005-04,GGLD:en&lr=lang_ja&sa=X&oi=lrtip8
0149147
2006/02/27(月) 15:13:24ググリましたがわからないので質問させていただきました。
よろしくお願いします。
0150デフォルトの名無しさん
2006/02/27(月) 15:19:33他にメッセージは無いのか?
0151147
2006/02/27(月) 15:29:46Could not create the Java virtual machine.
とでて実行できなくなりました。
-cp オプションつけずに実行しようとすると
Exception in thread "main" java.lang.NoClassDefFoundError:
ってでます(TT)
ググったらクラスパッチの設定が云々で〜と書いてあるのですが
何がダメなのでしょうか?
っていうか中小ITですが、一人ぼっちで早期出社研修とかありえなくないですか?
(TT)
0152デフォルトの名無しさん
2006/02/27(月) 15:32:18新卒かぁ、がんばれy
0153デフォルトの名無しさん
2006/02/27(月) 15:33:41VMというのは、なんの略ですか?
0154デフォルトの名無しさん
2006/02/27(月) 15:34:45噴いた
0155デフォルトの名無しさん
2006/02/27(月) 15:39:020156147
2006/02/27(月) 15:39:08クラスパッチではなく
クラスパスでした。
0157デフォルトの名無しさん
2006/02/27(月) 15:40:15チンコ晒したら即死
0158デフォルトの名無しさん
2006/02/27(月) 19:14:38今までのjava が走りっぱなしとか無いよな?
0159デフォルトの名無しさん
2006/02/27(月) 19:29:04私の調べたところ、このエラーが出る例で、メモリを過剰に割り当てているものが二つほど見ることができた。
一つは5分おきに実行していた場合である。
もう一つは、-Xmsに512や1024を指定した場合である。
よって、前者の状態に当てはまるのではないか、と推測したわけだが、どうだろうか。
0160デフォルトの名無しさん
2006/02/27(月) 19:33:500161デフォルトの名無しさん
2006/02/27(月) 19:42:360162デフォルトの名無しさん
2006/02/27(月) 20:01:42ローカル実行の場合にclassファイルがあるフルパスを取得するには
どうしたらよいのでしょうか。
(設定.iniを読み書きするのにパス名を知りたい)
よろしくお願いします。
0163デフォルトの名無しさん
2006/02/27(月) 20:02:540164デフォルトの名無しさん
2006/02/27(月) 20:04:35ResourceBundle
Preferences
System.getProprety("user.dir")
System.getProprety("user.home")
のどれかが君の願いをかなえてくれるでしょう。
0165デフォルトの名無しさん
2006/02/27(月) 20:11:04J2MEをお調べください。…身近な例では、厳密に組み込みと言えないかもしれませんが、携帯がJavaですよね。
0166デフォルトの名無しさん
2006/02/27(月) 20:13:27jarに固めたりするので、.classの場所=.iniファイルの場所にはならないかと。
>>164さんのいずれかの方法で対処するとか、いっそクラスローダーにまかせちゃうとか。
0167162
2006/02/27(月) 20:28:14ありがとうございます。
Win環境でですが、System.getProprety("user.dir") で意図したものが取得できました。
初心者なので前2つとかはよくわかりませんが、これから勉強していきたいと思います。
166さんもありがとう。
0168デフォルトの名無しさん
2006/02/27(月) 20:41:56サーブレットもEJBも解らない。
そもそも、Strutsっていきなりそれだけ勉強して理解できるものなの?
0169デフォルトの名無しさん
2006/02/27(月) 20:44:070170デフォルトの名無しさん
2006/02/27(月) 20:47:300171デフォルトの名無しさん
2006/02/27(月) 20:48:35とりあえず Struts に関する本を購入してください。
本は偉大です。
0172デフォルトの名無しさん
2006/02/27(月) 20:49:56本でどうにかなるのか、、、で結局Strutsの本だけである程度行けるってことかな。
とりあえず、会社の本使ってやってみるわ。
0173デフォルトの名無しさん
2006/02/27(月) 20:59:58大抵の本には、その本のターゲットになるレベルが書いてあるわけです。
それで、そこに書いてある単語が理解できなければ、その単語に関する本も
読めばいいという寸法です。
0174デフォルトの名無しさん
2006/02/27(月) 21:03:10ご親切にどうもありがとう。明日から暫く精進しますわ。
0175デフォルトの名無しさん
2006/02/27(月) 21:13:41public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_RIGHT : px=px+vpx; if(px > xmax-pl) px=xmax-pl; break;
case KeyEvent.VK_LEFT : px=px-vpx; if(px < xmin) px=xmin; break;
}
repaint();
}
/** キイが離されたときの処理 */
public void keyReleased(KeyEvent e) { }
/** キイが押して離されたときの処理 */
public void keyTyped(KeyEvent e) { }
}
最後の}にclassまたはinterfaceがありませんとでるのですが?
0176デフォルトの名無しさん
2006/02/27(月) 21:16:580177デフォルトの名無しさん
2006/02/27(月) 21:31:02波カッコ {} の対応を疑ってみよう
0178デフォルトの名無しさん
2006/02/27(月) 22:02:10それぞれ0から順にカウントされていくのですが、これって同一VM上ということには
ならないんですか?
互いに干渉し合うようにカウントしたいのですが
--Share.java--
public class Share {
public static int val = 0;
}
--Test1.java--
public class Test1 {
public static void main(String[] args) {
while(true)
Share.val++;
}
}
--Test2.java--
public class Test2 {
public static void main(String[] args) {
while(true)
Share.val++;
}
}
0179デフォルトの名無しさん
2006/02/27(月) 22:08:08>下のファイルをそれぞれTest1, Test2で同時に起動した時に、
同時に起動って 何?
0180デフォルトの名無しさん
2006/02/27(月) 22:09:030181デフォルトの名無しさん
2006/02/27(月) 22:14:14> 同一VM上ということにはならないんですか?
なりません。
> 互いに干渉し合うようにカウントしたいのですが
スレッド (Thread) について勉強してください。
0182デフォルトの名無しさん
2006/02/27(月) 22:26:51クライアントが2つ立ち上がった場合に、一つのクラスに対して同期を取りながら
アクセスをする方法はありませんか?
0183デフォルトの名無しさん
2006/02/27(月) 22:39:290184デフォルトの名無しさん
2006/02/27(月) 22:44:41インスタンスでもオブジェクトでもリソースでもいいんですが。
178のような方法ではムリだとはなんとなく分かりますが、
いわゆるクライアント−サーバのような機能を同一マシン上で実行するための
Java特有の機能(ツール?)のようなものはありませんか?
0185デフォルトの名無しさん
2006/02/27(月) 22:45:53なりません。別々のVMです。
したがってこのVM間の通信はスレッド間の通信に等しいことになります。
0186デフォルトの名無しさん
2006/02/27(月) 22:56:21これは同じVM上ではないのでしょうか?
それともメッセージ、もしくはソケット通信のようなことですか?
0187デフォルトの名無しさん
2006/02/27(月) 22:57:26すまん間違えた。
したがってこのVM間の通信はプロセス間の通信に等しいことになります。
0188デフォルトの名無しさん
2006/02/27(月) 22:58:46一応調べてはいるのですが、VMというのはmain()1つにつき1つということですか?
0189デフォルトの名無しさん
2006/02/27(月) 22:59:25なるほど、そういうことですか。
ありがとうございました。
0190デフォルトの名無しさん
2006/02/27(月) 23:08:23プロセス間通信をするなら、ソケットかRMIを使えばいいよ。
この辺に手頃な規模のサンプルがあるので参考になるかも。
ttp://www.hellohiro.com/
0191デフォルトの名無しさん
2006/02/27(月) 23:25:42ありがとうございます。
実現する機能をリモートと行うにはRMIというのを使えば良いようなことは検索で
分かりましたが、ローカルでテストする場合はどうするのかなと思ってました。
参考にさせて頂きます。
0192デフォルトの名無しさん
2006/02/28(火) 00:24:40JSPからサーブレットを二つ呼びたいのですが、そういった事は可能なのでしょうか?
例:まず一つ目のボタンで商品名と詳細用のボタンを出し、その後詳細用のボタンを別のサーブレットで処理する。
0193デフォルトの名無しさん
2006/02/28(火) 00:31:100194デフォルトの名無しさん
2006/02/28(火) 00:34:482つ呼んでるようには見えませんが。
1.まず一つ目のボタンで商品名と詳細用のボタンを出し(リクエストとレスポンス)
2.その後詳細用のボタンを別のサーブレットで処理する(リクエストとレスポンス)
1つのリクエストに1つのレスポンスですよね。単に1と2で表示するjspを1つにしたいなら、
そう書けばいいだけで…俺、なんか勘違いしてる?
あと、この手の話題はWebProg板にスレがあったと思います。
0195デフォルトの名無しさん
2006/02/28(火) 00:36:32二つ目のボタンを押したときのPOST先をサーブレットBにすりゃ
いいだけだけど。
0196デフォルトの名無しさん
2006/02/28(火) 05:17:360197デフォルトの名無しさん
2006/02/28(火) 11:08:19サーブレットなんですが、
ルータを挟んでいる場合のローカル端末(ブラウザを立ち上げた端末)のIPアドレスの取得方法を教えて下さい。
0198デフォルトの名無しさん
2006/02/28(火) 11:11:36ルータじゃなくてファイアウォールとかNATとかじゃないの?
ただのルータならHttpServletRequestからしかるべきフィールドがとれると思うんだが。
0199デフォルトの名無しさん
2006/02/28(火) 12:04:58それはHTTPの常識を打ち破る発明をしろと言うことなのだろうか?
0200デフォルトの名無しさん
2006/02/28(火) 12:13:320201199
2006/02/28(火) 12:17:41ルータでパケットのIPを書き換える前のIPを知りたい、ということなのか?
0202デフォルトの名無しさん
2006/02/28(火) 12:50:23ルータはその名の通り、交通整理が仕事。それはさておき。
>>197
直付けクライアントor最後の串は、ServletRequest(HttpServletRequestの親)のgetRemoteAddr()。
なんで相手側のIPが必要なんでしょう?相手がローカルアドレスでDHCPだったりすると、意味なくなること
多いんだけど、ブラウザ起動中ってことなのかな?それでもローカルアドレス取るのはあまり意味内希ガス
NATやIPマスカレードを通すとわかりにくくなるよね。JavascriptやアプレットでIP取れれば返せるけど。
0203デフォルトの名無しさん
2006/02/28(火) 14:30:06良いといわれています。
ですがServletのrequest.getParameter()で受け取った複数の値をそのままDBに
insertするようなSQL文をわざわざ他のクラス(Beans)で行うと、クラスの引数が
多くなってしまいあまりスマートではないような気がしています。
そのような処理もBeansで行うべきなのでしょうか?
0204デフォルトの名無しさん
2006/02/28(火) 14:54:37SQL発行をJavaBeans内でやるのは疑問ですが、それは本論と外れますね。
別にクラスの引数は多くなりませんよ。Beanだからnew Bean()で後はsetterを呼び出すだけ。
まあ、setter呼び出しが並ぶことには違いはありませんけど、たいていはO/Rマッピングツールで
やるのでコーディングは不要になったりします。
0205デフォルトの名無しさん
2006/02/28(火) 15:00:48ゲッターを使うということですね
勉強になりました
0206デフォルトの名無しさん
2006/02/28(火) 18:12:26アプリの設定を管理するSettingsクラスを起動時に new し、そのコンストラクタ内で
getClass().getResourceAsStream( 設定ファイル名 ) と Properties#load() で読み込んでます。
これをjarにして起動すると正しく動作するんですが、jwsで呼ぶと load() でぬるぽが出ます。
当然オレオレ署名はしてありますが、セキュリティ例外ならともかくぬるぽなのが謎です。
かなりエロい人、教えてください。 jreは1.5.0_06 です。
0207デフォルトの名無しさん
2006/02/28(火) 18:27:34設定ファイルはどこにある?jar内?jarの外のフォルダ?
0209デフォルトの名無しさん
2006/02/28(火) 18:48:020210デフォルトの名無しさん
2006/02/28(火) 19:05:55俺は意地悪なのでヒントだけあげよう。
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/javaws/developersguide/faq.html#211
「このクラスローダには、Class.forName が JNLP ファイルに定義されている
リソースを検索しないという残念な副作用があります。システムクラスローダ
(ClassLoader.getSystemClassLoader) を使用してリソースやクラスを検索
する場合も同様です。 」
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Class.html#getResourceAsStream(java.lang.String)
「このオブジェクトがブートストラップクラスローダによってロードされた場合、
メソッドは ClassLoader.getSystemResourceAsStream(java.lang.String) に
委譲されます。 」
外してたらスマン
0211206
2006/02/28(火) 19:10:10ダメでした orz
../../../〜 でダメだったんで、Settingsクラスと同じパッケージに置いてみてもダメでした。
相変わらずjar版は元気に動作します。
0212206
2006/02/28(火) 19:12:40クラスローダが怪しいなーという気はしてました。もしFAQだったら簡単に答えが
見つかっちゃったりなんかしちゃったりして、という淡い期待で聞いてみたんですが
やっぱりちゃんと嫁って感じですね。 >俺
読んでみます。 どうもです
0213206
2006/02/28(火) 19:51:58実はよく調べたら、クラスパス指定が間違ってたりキャッシュ残ってたりで
かなりヘボい状態でした。 orz 直せば出来そうです。 お騒がせしました。
jwsでのリソース取得について、結果はこんな感じ
System.getSystemResource() : ダメ
getClass().getResource()
ルートから : ダメ
相対パッケージ指定 : OK
getClass().getClassLoader().getResource()
ルートから : ダメ
相対パッケージ指定 : OK
Thread.currentthread().getContextClassLoader().getResource() : OK
皆様ありがとう。 物凄くエロいです。
0214デフォルトの名無しさん
2006/02/28(火) 20:00:00簡単に検索できると思ったのですがなかなか見つかりません。
すみませんが教えていただけないでしょうか
0215デフォルトの名無しさん
2006/02/28(火) 20:03:39tabindexかな
0216デフォルトの名無しさん
2006/02/28(火) 22:45:35APIドキュメントを見てもいい方法が見つかりませんでした(見落としてるかもしれません)
なにかいい方法をご存知の方がいらっしゃいましたらご教示ください。
0217デフォルトの名無しさん
2006/02/28(火) 22:49:031.4 じゃねぇな。
親スレッドから子スレッド起動するときに親側で例外一個作って渡しとけ。
0218217
2006/02/28(火) 22:50:110219デフォルトの名無しさん
2006/02/28(火) 23:06:22やっぱないですかorz
> 親スレッドから子スレッド起動するときに親側で例外一個作って渡しとけ。
それが出来れば簡単なんですが、プラグインを扱うシステムを作っていて、プラグインが生成したスレッドをシステム本体から監視したいので
問題のスレッドがどこで生成されるかを特定出来ないのです。設計見直すしかないでしょうか。
0220デフォルトの名無しさん
2006/02/28(火) 23:20:410221デフォルトの名無しさん
2006/02/28(火) 23:22:43知るかヴォケ、としか返しようがないレスを、今日見つけました。春はもうすぐですね。桜はまだでしょうか。
0222デフォルトの名無しさん
2006/02/28(火) 23:27:49メインループでプールされたスレッドの例外がないか監視していくとかなら精度は知らんが簡単
0223デフォルトの名無しさん
2006/02/28(火) 23:29:53春ですなぁ。花粉の恐怖がもうすぐそこにorz
それはさておき、>>220は宿題スレに誘導しておくのがいいのでは?俺?誘導なんかしませんよ。
0224デフォルトの名無しさん
2006/02/28(火) 23:49:38しているのですが、画像を使うファイルだった場合、classファイルと一緒に入れるのがよろしいのでしょうか?
jarコマンドの時に、画像を指定していれるのは、どのようなコマンドが必要なのでしょうか?
教えてください!><
0225デフォルトの名無しさん
2006/02/28(火) 23:51:33画像も JAR ファイルに入れとけ。
0226デフォルトの名無しさん
2006/02/28(火) 23:52:34設計見直すしかないです。あるいは 1.5 使ってください。
0227デフォルトの名無しさん
2006/03/01(水) 00:22:16Java1.5についてのサイトや参考書を教えて欲しいのですが。
0228デフォルトの名無しさん
2006/03/01(水) 00:25:31このページはいかがでしょうか。
Java 6.0 の情報もありまして。
Java in the Box
http://www.javainthebox.net/
0229デフォルトの名無しさん
2006/03/01(水) 00:39:12すごくよさそうですね。
じっくり見てみます。ありがとうございます。
0230デフォルトの名無しさん
2006/03/01(水) 02:43:56# 最近質問したきり帰ってこない人が居ますが
# 解決したのなら、その旨、書いていただければ
# その症状で困ってる他の人も嬉しくなります。
# 回答側の人にとっても、別のところでまた役に立つかもしれません
0231デフォルトの名無しさん
2006/03/01(水) 02:52:58本当にありがとうございました。
0232デフォルトの名無しさん
2006/03/01(水) 03:02:23本当にありがとうございました。
0233デフォルトの名無しさん
2006/03/01(水) 03:04:17ギャンブル運にも恵まれて、今ではちょっとした小金持ちw
本当にありがとうございました。
0234デフォルトの名無しさん
2006/03/01(水) 12:42:50Vector v = new Vector();
for(int i=0;i<listProduct.size();i++)
{
prd=(Product)listProduct.get(i);
System.out.print(prd.name+" ");
v.add(prd.name);
for(int x=0;x<v.size();x++)
{
System.out.println("今のvectorの中身"+v);
}
System.out.println("vectorの全内容"+v);
}
このような内容でArrayListの中身は適当にA〜Eとしてください。
このときにVectorを表示するときに
今のvectorの中身ABCDE
vectorの全内容ABCDE
と表示されてしまうのですが、
今のvectorの中身
A
B
C
D
E
vectorの全内容ABCDE
とVectorの中身を上書きせずに改行して表示したいのですがどのようにすればよいのでしょうか?
0235デフォルトの名無しさん
2006/03/01(水) 12:56:51System.out.printに変えてみるんだ。
0236デフォルトの名無しさん
2006/03/01(水) 13:00:27こうだね↓
System.out.println("今のvectorの中身");
for(int x=0;x<v.size();x++)
{
System.out.println(v.get(i));
}
System.out.println("vectorの全内容"+v);
0237デフォルトの名無しさん
2006/03/01(水) 13:16:51二つとも自分が作るプログラムです。一方が起動してなかったら起動して、起動してたらそれを使う。そしてデータを渡したり、そのためにメソッドを呼び出したりしたいんです。
0239デフォルトの名無しさん
2006/03/01(水) 13:43:02実行してみました、しかし、
vectorの中身
A
vectorの中身
B
B
vectorの中身
C
C
C
vectorの中身
D
D
D
D
vectorの全内容[A, B, C, D]
と言うふうに表示されてしまいました。できればこのような表示にしたいのですが、
今のvectorの中身 A
今のvectorの中身 B
今のvectorの中身 C
今のvectorの中身 D
今のvectorの中身 E
vectorの全内容ABCDE
どのようにしたら良いのでしょうか?
0240デフォルトの名無しさん
2006/03/01(水) 13:44:50PipeReader/PipeWriter とか。
あるいはデータ保持用の自作クラス作って
入出力は synchronized のメソッド使うとか。
0241239
2006/03/01(水) 13:48:54もしもこれで間違っていたら指摘してください。
System.out.println("vectorの中身");
for(int x=0;x<1;x++)
{
System.out.println(v.lastElement());
}
0242デフォルトの名無しさん
2006/03/01(水) 13:59:50それ、forの意味はあるのか?
0243デフォルトの名無しさん
2006/03/01(水) 14:11:36for(int x=0;x<v.size();x++)
{
System.out.println("今のvectorの中身"+v);
}
System.out.println("vectorの全内容"+v);
これの for のブロックの中のこれはなんだこれは?
System.out.println("今のvectorの中身"+v);
というか、Vecotor 全部出したいなら Enumeration 使え。
for (Enumeration e = v.elements(); e.hasMoreElements(); )
System.out.println(e.nextElement());
0244239
2006/03/01(水) 14:20:06えっとですね、改行して出したかったので自分なりにはこれで大丈夫かなって思ってたんです。
0245デフォルトの名無しさん
2006/03/01(水) 14:22:250246デフォルトの名無しさん
NGNG答えのソースを実行しても、Stackクラスを利用することができません。
ほかに何か設定が必要なのでしょうか?
コンパイラはEclipseのバージョン: 3.1.1で、
JDKは1.5.0_06です。
よろしくお願いします。
0247239
2006/03/01(水) 14:26:00改行したかのように見せたかっただけです(^_^;)
0248デフォルトの名無しさん
2006/03/01(水) 14:27:37独習JAVA第3版をここの住民みんなが持ってると思ってるのかー
0249デフォルトの名無しさん
2006/03/01(水) 14:28:340250デフォルトの名無しさん
NGNG別スレに誤爆してしまいました。
http://pc8.2ch.net/test/read.cgi/tech/1112760409/109-111
です。
0251デフォルトの名無しさん
2006/03/01(水) 14:32:14グルセンと言う仮想デバイス?をインストールしたのですが間違えてXP SP2用では無くただのXP用をインストールしてしまい
グルセンがどうやってもアンインストールできません
どうしたらアンインストールできますか?
XP用をダウンロードしたのは私ですがSP2用を再度ダウンロードしようと何度も試みましたが出来ません
何時も
グルセンは実行中です。タスクバー内にあるグルセンのアイコンを右クリックして「終了」選択してからRetryを押してください。
と出るだけでタスクバーには、終了のアイコンが出てきません。
どう言う事でしょうか何度か繰り返したらスタートにもグルセンが消えてもう無くプログラムでも削除を受け付けない為もう打つ手は、在りません。
マジで助けてください
0252デフォルトの名無しさん
2006/03/01(水) 14:35:090253デフォルトの名無しさん
2006/03/01(水) 14:52:45リカバリすれば?
いやしかし、どうしてこのスレに書いたのかな?
0254デフォルトの名無しさん
2006/03/01(水) 15:06:35ゴミ箱も自動で削除されてるしどうしたらいいんでしょうか?
0255デフォルトの名無しさん
2006/03/01(水) 15:18:240256デフォルトの名無しさん
2006/03/01(水) 15:35:04どんなエラーになるんだい?
0257デフォルトの名無しさん
2006/03/01(水) 15:38:17んなわけないな。なんか、ゲーム用らしいし。
0258デフォルトの名無しさん
2006/03/01(水) 15:42:42じゃあ Linux をインストールしろ。
完
0259デフォルトの名無しさん
NGNG「型 Stackのインスタンスを生成できません」です。
その結果、PopやPush、empty等が呼び出せません。
0260デフォルトの名無しさん
2006/03/01(水) 15:51:261.4にする
0261デフォルトの名無しさん
NGNG何をですか?
0262デフォルトの名無しさん
2006/03/01(水) 15:57:10これ
0263デフォルトの名無しさん
NGNG設定画面のJDK準拠画面の、
コンパイラー準拠レベルは1.4になっています。
というよりも、1.3、1.4、5.0しか選べないです。
0264デフォルトの名無しさん
2006/03/01(水) 16:09:52コピペしただけでちゃんと動くよん
0265デフォルトの名無しさん
2006/03/01(水) 16:21:38Eclipseを使う場合、Javaのバージョンが1.5以降だと上手くうごかない。
ちなみに俺は1.4をインストールしてEclipseの設定変えたら動いた。
理由は詳しい人に任せた。
0266デフォルトの名無しさん
NGNG今試してます。
0267デフォルトの名無しさん
NGNGやっぱりできませんでした。
http://java.sun.com/j2ee/1.4/download.html#sdk
ここの一番上で良いんですよね?
インストール後に、設定>インストール済みのJRE>検索してJDKの設定をする。
何か間違ってますか?
0268デフォルトの名無しさん
2006/03/01(水) 16:34:15j2se
0269デフォルトの名無しさん
2006/03/01(水) 16:35:530270デフォルトの名無しさん
2006/03/01(水) 16:36:580271デフォルトの名無しさん
2006/03/01(水) 16:38:47Eを使ったこの表現の意味がわかりません。
double8bytes±1.79769313486231570E+380〜±4.94065645841246544E-324
浮動小数の扱い方については一応理解しているつもりではいます。(符号部、小数部、
指数部であらわすということ)
スレ違いかとも思ったのですが、最適なスレが見つからないのでこちらで質問させていただきました。
0272デフォルトの名無しさん
2006/03/01(水) 16:42:480273デフォルトの名無しさん
2006/03/01(水) 16:45:59>>265は嘘。
0274デフォルトの名無しさん
2006/03/01(水) 16:47:37E+380は10^380
0275246
NGNGいったいどうしたら・・・。
0276デフォルトの名無しさん
2006/03/01(水) 17:17:38他のは動くんか?
0277デフォルトの名無しさん
2006/03/01(水) 17:18:07んなわけあるか。
0278271
2006/03/01(水) 17:20:091.79769313486231570E+380〜
というのは。
1.797(略) * 10^380〜
という風に理解していいんでしょうか。
0279デフォルトの名無しさん
NGNGStackクラスを利用しようとするとすべてコンパイルエラーになります。
ほかのものは大丈夫です。
もちろんThreadクラスも利用できました。
0280デフォルトの名無しさん
2006/03/01(水) 17:24:340281デフォルトの名無しさん
2006/03/01(水) 17:28:17いいお
0282デフォルトの名無しさん
2006/03/01(水) 17:34:03>>279
TaskクラスをTask.javaに書き、ResourceクラスをResource.javaに書いて、
Task.javaにだけimport java.util.*; と書き Resource.javaには書いてないとか。
両方のソースにimport宣言書いてる?
Eclipse使ってるなら、コンパイルエラーの箇所にカーソル置いて
Ctrl + 1 を押し、ポップアップからどれか選ぶとだいたい直る。
便利だが、最初のうちは余りこの機能に頼らないように。意味を理解しながら使ってね。
0284デフォルトの名無しさん
2006/03/01(水) 17:38:070285デフォルトの名無しさん
NGNGimport java.util.Stack;
この一文を入れたらコンパイル成功して実行できました。
import java.util.*;も書いているのに何でだろ?
0286デフォルトの名無しさん
2006/03/01(水) 18:01:13今javaをインストールしているのですが。(jse 5.0kit)
OSはウィンドウズ2000プロで、「このオペレーティングシステムはサポートされて
いません」みたいなことが出るんです。。。そのまま実行してインストールをしても
プロンプトでjavacを入れると、やっぱりインストールささってません;;
どうすれば、2000で出来ますか?
0287デフォルトの名無しさん
2006/03/01(水) 18:16:550288デフォルトの名無しさん
2006/03/01(水) 18:17:000289デフォルトの名無しさん
2006/03/01(水) 21:28:023.xからは1.5以降の環境が必要だと思ったけど。
2.xなら1.4以前でも動く。
0290デフォルトの名無しさん
2006/03/01(水) 21:32:39>3.xからは1.5以降の環境が必要だと思ったけど。
そんなことはございません。
0291デフォルトの名無しさん
2006/03/01(水) 21:35:43ほんとだ。すまんかった。
http://www.eclipsewiki.net/eclipse/?%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB#s1efe92d
3.xが1.4で、2.xは1.3か。
0292デフォルトの名無しさん
2006/03/01(水) 21:53:59【環境】
WindowsXPsp2
試したJDKのzipファイル
jdk-1_5_0-src-jrl.zip 55.6 MB (58,326,364 バイト)
jdk-1_5_0-src-scsl.zip 55.6 MB (58,338,869 バイト)
試したドキュメントソース
jdk-1_5_0-doc-ja.zip 45.2 MB (47,498,450 バイト)の解凍したもの
【症状】
はじめは順調に進みますが、53%のところ(j2se/src/share/classes/java/nio/X-Buffer.java)で
エラーと表示され、必ずとまってしまいます。
上記ファイルは解凍してみると問題なく終了します。
なにがいけないかさっぱりです。
どなたかアドバイスをいただけないでしょうか。
よろしくお願いします。
0293292
2006/03/01(水) 21:57:11日本語ドキュメントとJDKソースはともに5.0update6です。
よろしくお願いします。
0294デフォルトの名無しさん
2006/03/01(水) 21:59:010295デフォルトの名無しさん
2006/03/01(水) 22:06:03確かMergeDocってjarファイルが実行ファイルだったよね?
java -jar Mergedoc.jar
で警告・エラー時には何かメッセージ出してくれたように思うので
それ見て悩め。
0296デフォルトの名無しさん
2006/03/01(水) 22:33:31>>import java.util.*;も書いているのに何でだろ?
awt.*;
awt.event.*;
見たいな感じだろ。
0297デフォルトの名無しさん
2006/03/01(水) 23:43:03ファイル入出力とか、それなりに出来るようになったんで、
これからGUIのアプリケーション作ってみたいんですが、
SWTとSwing、どっちから始めたほうがいいとかってありますか?
0298デフォルトの名無しさん
2006/03/01(水) 23:49:420299デフォルトの名無しさん
2006/03/01(水) 23:51:43最後の最後でNo Java virtual machine was found ってでます。
コマンドプロンプトから
未来のcatalina_homeフォルダにCDしてjava -versionはできます。
ほかに原因があるのでしょうか。
0300デフォルトの名無しさん
2006/03/01(水) 23:53:260301デフォルトの名無しさん
2006/03/01(水) 23:53:33SWTは飽くまでEclipseのプラグイン用だよ
6.0からはSwingもよりネイティブルックに近づくしね
0302デフォルトの名無しさん
2006/03/01(水) 23:57:390303デフォルトの名無しさん
2006/03/01(水) 23:58:43DataSource はコネクションプールしてるだけと思えば良い。
0304299
2006/03/02(木) 00:07:08未来のcatalina_homeというか
F:\です。
zip版からやると
”-Djava.endorsed.dirs=”が見つかりません
みたいなエラーがでます。
今気づいたんですが、スレ違いでしょうか
0305デフォルトの名無しさん
2006/03/02(木) 08:53:20JTextField text に入力させた任意の文字をString型とint型の変数に格納することは可能なのでしょうか?Apiを見てもよくわからなかったので教えてください。
自分で作ってみたものですが、text の吸出しはできるのですが、変換の仕方がわからないのでよろしくお願いします。
import javax.swing.*;
import java.awt.event.*;
public class TextTest extends JFrame implements ActionListener{
JTextField text;
JLabel label;
public static void main(String[] args){
TextTest test = new TextTest("TextTest");
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
test.setVisible(true);
}
TextTest(String title){
setTitle(title);
setBounds( 10, 10, 300, 200);
text = new JTextField("Sample", 20);
JButton btn = new JButton("read");
btn.addActionListener(this);
label = new JLabel("テキストの値を表示");
JPanel p = new JPanel();
p.add(text);
p.add(btn);
p.add(label);
getContentPane().add(p);
}
public void actionPerformed(ActionEvent e){
label.setText(text.getText());
}
}
0306デフォルトの名無しさん
2006/03/02(木) 08:56:02Integerのメソッドを調べる
0307デフォルトの名無しさん
2006/03/02(木) 09:54:14int nText = Integer.parseInt(strText ) //intに型変換
0308デフォルトの名無しさん
2006/03/02(木) 11:14:10i-Studyのような、多肢選択の問題集のアプリケーションをSwingで作ってるんですけど、
決まったパターン( 問題文 解答群 正解番号 など)で、まとまった100コくらいのデータ を扱いたい場合に、
データを保存したり読み込んだりする定石はありますか?
今のところ、
BufferedReaderでテキストファイルから全部まとめて読み込んでそれを元にMondaiオブジェクトを生成するとか、
独自のMondaiオブジェクトをインスタンス化してから、配列にまとめて
オブジェクトストリームで別のファイルに格納しておくとかしか浮かびません。
XMLとかJDBCとか使ったほうがいいのでしょうか?
あいまいな質問で申し訳ありませんが、何かヒントいただけませんでしょうか。
0309デフォルトの名無しさん
2006/03/02(木) 11:19:04聞き逃げ厨氏ね
0310デフォルトの名無しさん
2006/03/02(木) 11:26:05生データの編集のしやすさで選ぶ場合、CSVが無難だと思う。
格納したデータの取り扱いを楽にしたいならDBを。
XMLは複数クライアントとサーバ間で、データのやり取りをする場合に。
ぶっちゃけ、実現可能な手段なら何でも良いのだが…
0311デフォルトの名無しさん
2006/03/02(木) 11:28:02EXCELで管理もできるし
0312デフォルトの名無しさん
2006/03/02(木) 11:40:07おお、早速のレスありがとうございます。
CSVで保存したものを読み込む方法を、いくつかググったところ、
java.util.regexパッケージのsplitメソッドの使い方を発見しました。
今までStringTokenizer しか知らなかったんでかなり役立ちそうです(まだわかりませんが…)
とりあえずCSVでいってみようと思います。
ありがとうございました。
0313312
2006/03/02(木) 11:51:11問題文データに、カンマを含む文章が多数あるため
CSVとして保存すると厄介なことになりそうです…orz
問題文データが、改行、スペース、カンマ等を含む文字列なのです。
DBで検討してみます。すんません。
行の初めに任意の数の長さのスペースが連続した文字列がほしんですけど、どうしたらいいですか。
自分の思いつくのは面倒くさくて非効率みたいです。
int length;
length = 5;//色々な値をとりうる。
StringBuffer buf = new StringBuffer();
for(int i = 0 ; i < length ; i++){
buf.append(' ');
}
String output = buf.toString() + "hello";
0315デフォルトの名無しさん
2006/03/02(木) 12:25:44String SPACEPOOL = " ";
int spaceindent = 5;
String aa = SPACEPOOL.substring(0,spaceindent)+"空白"+spaceindent+"個";
out.println(aa);
0316デフォルトの名無しさん
2006/03/02(木) 12:26:46SPACEPOOLは20個ぐらいの固定空白ね。
0317デフォルトの名無しさん
2006/03/02(木) 12:29:27目的による。
例えば 5.0 以降で右詰め表示や左詰め表示のための
埋め草にしたいのであれば System.out.printf() 使えば良い。
0318デフォルトの名無しさん
2006/03/02(木) 13:05:43public static String getPadSpaceStr(String arg,int length){
StringBuilder sBui = new StringBuilder(srg)
for(int i =0;i < length;i++){
sBui.append(" ");
}
return sBui.toString();
}
こうすれば、一つのメソッドで全てを補える。
0319デフォルトの名無しさん
2006/03/02(木) 13:09:570320デフォルトの名無しさん
2006/03/02(木) 13:11:43public static String getPadSpaceStr(String arg,int length){
StringBuilder sBui = new StringBuilder()
for(int i =0;i < length;i++){
sBui.append(" ");
}
return sBui.toString() + str;
}
0321デフォルトの名無しさん
2006/03/02(木) 13:12:16StringBuilder sBui = new StringBuilder(srg)
for(int i =0;i < length;i++){
sBui.append(" ");
}
return sBui.toString() + arg;
}
0322デフォルトの名無しさん
2006/03/02(木) 13:12:480323デフォルトの名無しさん
2006/03/02(木) 14:01:31public static String getPadSpaceStr(String arg,int length) {
StringBuilder buf = new StringBuilder(length);
for(int i =0;i < length;i++)
buf.append(' ');
return buf.append(arg).toString();
}
Java 5 ならこうだな。フォーマットの解釈で時間が掛かるかも知れないが。
public static String getPadSpaceStr(String arg,int length) {
return String.format("%" + length + "s", arg);
}
ていうか別関数にする意味はあまりなし。
0324323
2006/03/02(木) 14:02:54最初に length - arg.length() 求めてそれが1以上の場合にその数だけ
右にスペースを付けるようにしないとアレだ。
まあいいや。あとは自分で考えろ。
0325323
2006/03/02(木) 14:03:24さよなら。
0326デフォルトの名無しさん
2006/03/02(木) 14:14:510327314
2006/03/02(木) 14:16:00参考になりました。感謝。
0328デフォルトの名無しさん
2006/03/02(木) 17:02:11なぜそれをもってして「多態」と呼ぶのでしょうか。日本語の意味がよくわからないのです
「オブジェクトに応じた、多くの態度をとる性質」ですかね?
--
オブジェクト指向プログラミングにおいて,異なるオブジェクトに対して,同じメッセージを送った場合,そのオブジェクトに合わせて,異なる処理が適切になされること。多相性。
0329デフォルトの名無しさん
2006/03/02(木) 17:06:52すまんが、元の用語を英語で書いてくれねーと解らん
0330328
2006/03/02(木) 17:12:15http://dictionary.goo.ne.jp/search.php?MT=polymorphism&kind=ej&mode=0
らしいです。
0331デフォルトの名無しさん
2006/03/02(木) 17:14:06Javaで、システムの状態(メモリ使用量とCPU負荷、各タスクの経過時間)を
取得するにはどうしたらよいのでしょうか?
0332328
2006/03/02(木) 17:14:32”r”がないんです。
0333デフォルトの名無しさん
2006/03/02(木) 17:20:24ttp://ja.wikipedia.org/wiki/%E3%83%9D%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%95%E3%82%A3%E3%82%BA%E3%83%A0
0334デフォルトの名無しさん
2006/03/02(木) 17:29:58辞書でも引けばいいじゃない。国語でも漢和でも。
たい【態】
1. すがた。さま。ようす。
2. 心がまえ。身がまえ。
オブジェクトというのは、一つのクラスからも多くの「態」が生まれうる。
それを多態性と呼ぶんでしょ。
俺は名無しだが番号がついてて、レスをしたことで個性が生まれる。
お前は名無しクラスから生まれた>328オブジェクト。
俺は名無しクラスから生まれた>334オブジェクト。
だが、「やい、多態性の質問したやつ手を挙げろ」と言われても、
俺は質問してないので無視する。手を挙げるのは>328だろ?
0335デフォルトの名無しさん
2006/03/02(木) 17:46:50他のネイティブアプリの情報知りたいなら素直にJNI使うか、外部プロセス使って情報取るしかない。
6.0 からなら CPU負荷については
java.lang.management.ManagementFactory.getOperatingSystemMXBean().getSystemLoadAverage()
で取れる事になってる。自分のメモリ使用量についてなら Runtime で大雑把な情報取れるし、
5.0 以降にある MXBean 使えばもうちっと詳しい情報が取れる。
0337331
2006/03/02(木) 21:44:18する方法は無いでしょうか?
ちなみに、ディスク容量も求めることになったのですが、こちらは Java6 か
らしか使えないようです。
http://www.02.246.ne.jp/~torutk/javahow2/diskspace.html
それにしても JNI か。今ちょっと見ただけですが、結構大変そうだなあ。
http://www.ki.rim.or.jp/~kuro/Java/JNI/
0338デフォルトの名無しさん
2006/03/02(木) 21:46:56>オブジェクトというのは、一つのクラスからも多くの「態」が生まれうる。
>それを多態性と呼ぶんでしょ。
同一クラスから複数のインスタンスができることを「多態性」っていうんだっけ?
俺は継承関係のことを言ってるんだと思ってたんだけど。。
Student is a Person.
Teacher is a Person.
生徒も先生も同じ人ですよ、と。
0339デフォルトの名無しさん
2006/03/02(木) 22:24:01どうすればいいのでしょうか?
たとえば
「七人の侍〜わが青春に悔いなし」
「生まれてはみたけれど〜秋刀魚の味」
とあった場合
「〜」という文字列を指定して(「〜」は必ず一つしかない)
それよりも右にある文字列はすべて削除して
「七人の侍
「生まれてはみたけれど
としたいのですがご教授ください
0340デフォルトの名無しさん
2006/03/02(木) 22:27:55substringとindexOf使えば良いだろ
0341デフォルトの名無しさん
2006/03/02(木) 22:44:40すいません
詳しく教えてください
indexOfで文字列を指定するまではいいのですが
それより右を削除ってのがいまいちよく判りません
0342デフォルトの名無しさん
2006/03/02(木) 22:53:33だーかーらー。substring() の所を読めよ。
0343デフォルトの名無しさん
2006/03/02(木) 22:54:460344デフォルトの名無しさん
2006/03/02(木) 22:56:030345デフォルトの名無しさん
2006/03/02(木) 23:05:44>>300
誰か助けてください
0346デフォルトの名無しさん
2006/03/02(木) 23:07:22「Cannot create JDBC driver of class '' for connect URL 'null'」
tomcat/common/libには、postgresql用のjarファイルも置いてます。
tomcatのサーバーXMLの内容は↓な感じ。
<Resource name="jdbc/hoge" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://localhost:5432/hogedb"
username="postgres"
password=""
maxActive="4"
maxWait="5000"
maxIdle="2"
/>
どーしたら、このエラーなくなるんかしら、これが正解ってやつ教えてほっしーっす。
0347デフォルトの名無しさん
2006/03/02(木) 23:34:41Tomcat5系でも、5.0.xと5.5.xではコンテキスト記述子の書き方が違うらしい。
5.0.x
ttp://tomcat.apache.org/tomcat-5.0-doc/jndi-datasource-examples-howto.html#PostgreSQL
5.5.x
ttp://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html#PostgreSQL
0348デフォルトの名無しさん
2006/03/02(木) 23:36:05Hogeオブジェクトがあったとして
Hoge [] test = new Hoge [3];
test [0] = new Hoge();
test [1] = new Hoge();
と記述すると、test[0]とtest[1]にはHogeオブジェクトの参照が代入されますよね。
オブジェクトを生成してないtest[2]の値ってどうなっているんですかね・・・?
0349デフォルトの名無しさん
2006/03/02(木) 23:39:43Java言語仕様に従った初期値が入る
0350デフォルトの名無しさん
2006/03/02(木) 23:40:38null
何のオブジェクトも参照していない。
0351デフォルトの名無しさん
2006/03/02(木) 23:41:31つ System.out.println(test[2]);
どうなってるって、何が知りたいんだか…
0352デフォルトの名無しさん
2006/03/02(木) 23:43:05これは針が見えている釣りなのかしら?
0353デフォルトの名無しさん
2006/03/02(木) 23:46:23http://www.y-adagio.com/public/standards/tr_javalang2/typesValues.doc.html#96595
> 個々のクラス変数,インスタンス変数又は配列構成要素は,
> それを生成するときに デフォルト値(default value) に初期化する (15.9,15.10)。
> # すべての参照型 (4.3) については,デフォルト値は null とする。
0354348
2006/03/02(木) 23:52:020355デフォルトの名無しさん
2006/03/03(金) 00:05:45str = str.substring( 0 ,str.indexOf("〜"));
0356デフォルトの名無しさん
2006/03/03(金) 00:25:080357デフォルトの名無しさん
2006/03/03(金) 00:35:29int i = '胃';
System.out.println( Integer.toBinaryString(i));
こんなんでどうでしょう?
0358357
2006/03/03(金) 00:45:41String str = "東京特許許可局";
for (int i = 0; i < str.length(); i++){
System.out.println( Integer.toBinaryString(str.charAt(i)));
}
あとマルチポストイクナイ
0359デフォルトの名無しさん
2006/03/03(金) 00:47:20マルチプル・インスタンスも継承も、直接は多態性ではないよ。マルチプル・インスタンス自体は
多態性とはいっさい関係ないと思う。
本来の話で言えば、型のことは一切考えず、いろんなオブジェクトに全く同じメッセージ(たとえば
draw)を送ると、それぞれに応じた処理が動くことをいうよね。
いろんなオブジェクトがList内に入っているとき、構造化プログラムならまず種類をしらべて、種類に
応じた別の関数を呼ぶようにしないといけない。でもオブジェクト指向言語では、ともかく draw という
メッセージを送れば、それぞれのオブジェクトがそれぞれの処理を行ってくれる。同じ処理なのに、
送る先のオブジェクトが違えば動作も違うから「多態」でしょう。
Java的にいえばすべて同じDrawableオブジェクトなのに、draw()を呼ぶごとに(実クラスが何かに
応じて)動作が変わる。でも見た目上は、それらはDrawableオブジェクト。だから多態性、なんじゃない?
0360デフォルトの名無しさん
2006/03/03(金) 01:07:38わかりました!早速やってみます!!
0362デフォルトの名無しさん
2006/03/03(金) 03:24:48聞き逃げ厨 って言葉の響きにワロタ
0363デフォルトの名無しさん
2006/03/03(金) 05:10:590364デフォルトの名無しさん
2006/03/03(金) 05:14:490365デフォルトの名無しさん
2006/03/03(金) 05:17:23今 Brew より Java の方が多いんだっけ?
0366デフォルトの名無しさん
2006/03/03(金) 07:04:200367デフォルトの名無しさん
2006/03/03(金) 07:06:380368デフォルトの名無しさん
2006/03/03(金) 08:15:450369デフォルトの名無しさん
2006/03/03(金) 08:59:050371デフォルトの名無しさん
2006/03/03(金) 09:13:000372328
2006/03/03(金) 09:22:05>>334の説明を理解したうえで >>338 の指摘も考えてみたんですが。
よくある多態性の説明だと >>338 だと思うんですね。
・同一クラスから派生した複数のクラスのオブジェクトがある。
メッセージに対してクラスごとにそれぞれ異なる、「態」をなす。
>>334 さんの説明だと、同一クラスからインスタンス化された
複数のオブジェクトがそれぞれのオブジェクトの状態により異なった「態」をなす
っていう説明だと思うんですが、それも含めて多態性と呼んじゃって
いいもんなんでしょうかね。
もっとも>>334さんがナナシクラスとそこから派生したレス番号クラスっていう
意味で書いてたら僕の読み違いなんですが。
0373デフォルトの名無しさん
2006/03/03(金) 09:29:19HttpSessionインタフェースを持つオブジェクトを得られますよね。
このsessionインタフェースを持ったオブジェクトの実体って何なんでしょうか?
そういうことは考えちゃだめってこと?
0374デフォルトの名無しさん
2006/03/03(金) 09:50:02>>359 は読みましたか?
0375デフォルトの名無しさん
2006/03/03(金) 09:54:16その実装が何であるかまでを深く追求しないのはニュートンの時代からの科学的方法論です。
0377デフォルトの名無しさん
2006/03/03(金) 12:30:43それおれもワロタ
いつからかこのスレには聞き逃げ厨が
繁殖するようになったなw
0378デフォルトの名無しさん
2006/03/03(金) 13:02:490379デフォルトの名無しさん
2006/03/03(金) 13:05:290380デフォルトの名無しさん
2006/03/03(金) 13:12:350381デフォルトの名無しさん
2006/03/03(金) 13:44:020382デフォルトの名無しさん
2006/03/03(金) 14:00:27ところがたまに文字化けが起こるため、ブラウザ側ではメタタグでShift_JISを指定して受け取ってます。
これっていいんでしょうか?
Windows31JとShift_JISの関係を教えてもらえませんか?
0383デフォルトの名無しさん
2006/03/03(金) 14:04:12良いよ。
Content-Type の charset 属性と出力文字エンコーディングを分離できてない
サーブレットの仕様が糞なだけ。
0384デフォルトの名無しさん
2006/03/03(金) 14:08:40Windowsは正確にはWindows31J(拡張シフトJIS)という文字コードが標準。
JIS X 0208(第1水準・第2水準)に、NEC/IBM外字を加えたもの。
0385デフォルトの名無しさん
2006/03/03(金) 14:43:46ありませんか?
0386デフォルトの名無しさん
2006/03/03(金) 14:49:49新しいImageを作成することはできますか?
0387デフォルトの名無しさん
2006/03/03(金) 14:56:20BufferedImage
0388デフォルトの名無しさん
2006/03/03(金) 15:10:55JavaMail使って取り出すには、どうやればいいんでしょう?
0389デフォルトの名無しさん
2006/03/03(金) 15:17:12感謝
0390388
2006/03/03(金) 17:24:56ttp://www.rgagnon.com/javadetails/java-0458.html
0391デフォルトの名無しさん
2006/03/03(金) 17:31:160392デフォルトの名無しさん
2006/03/03(金) 17:34:00Judeで出来なかったっけ?
0393デフォルトの名無しさん
2006/03/03(金) 17:51:37いや、クラス図は作ってくれるけどオブジェクト図は無理。
オブジェクト図は実行時の動的な側面を持つものなので、
UMLツールで生成するのは無理じゃね?
プロファイリングツールの出番だと思う。
0394デフォルトの名無しさん
2006/03/03(金) 17:57:240395デフォルトの名無しさん
2006/03/03(金) 18:01:57ソースからUMLのシーケンス図を生成できるフリーのツールってありますか?
0396デフォルトの名無しさん
2006/03/03(金) 18:21:080397391
2006/03/03(金) 18:32:090398デフォルトの名無しさん
2006/03/03(金) 19:00:07int bb = 0;
bb = aa++;
out.println("aa++ bb="+bb);
aa = 3;
bb = 0;
bb = ++aa;
out.println("++aa bb="+bb);
0399デフォルトの名無しさん
2006/03/03(金) 19:26:17JListを使っているのですが、リストに入れた文字の大きさを変えるには
どうすればいいでしょうか?
modelもJListと一緒に使っています・・・
0400デフォルトの名無しさん
2006/03/03(金) 21:02:31メモリ上にずっと置いておけないぐらいのデータを扱うプログラムを書いているのですが
ある一定量を超えたらファイルに書き出してくれる(LRUとかでキャッシュしてくれるとなおよし)
ようなArrayListなどのコレクションってないでしょうか?
外部ライブラリとかでもかまいません。
ちょっと違うかもしれませんが、RubyのPstore(http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=PStore)のJava版
のようなライブラリでもOKです。
識者の方ご意見御願いします。
0401デフォルトの名無しさん
2006/03/03(金) 21:30:54やってくれるようなフレームワークはありませんか。
0402デフォルトの名無しさん
2006/03/03(金) 21:33:52ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/javax/swing/JList.html
JList#setCellRenderer()が使えるよ。
0404デフォルトの名無しさん
2006/03/03(金) 21:36:05○ >>399
0405404
2006/03/03(金) 21:36:41気づいておったか。
0406デフォルトの名無しさん
2006/03/03(金) 21:39:40トンクス!
だがものすごくこれに関する資料が少ないなw
0407デフォルトの名無しさん
2006/03/03(金) 22:30:11Dialogの例外処理ってどうしたらよいのでしょうか?
0408デフォルトの名無しさん
2006/03/03(金) 22:45:120409デフォルトの名無しさん
2006/03/03(金) 22:47:25Dialog で例外処理が必要になるプログラムを作らない。
0410デフォルトの名無しさん
2006/03/03(金) 23:44:10どなたかのアドバイス、ご指摘を頂ければと思い、書かせて頂きました。
内容としては、
文字入力待ち→何らかの文字列を入力してEnter→その文字列が表示されて
再び文字入力待ち→入力された文字列が「q」一文字の場合は表示せず終了
というものなのですが、コンパイルが通らずにいます。
public class WaitingAgain {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try{
String line = reader.readLine();
System.out.println(line);
if (line = reader.readLine() equals('q')) {
System.out.println();
}
} catch (IOException e) {
System.out.println(e);
}
}
}
}
0411410
2006/03/03(金) 23:47:18ご指摘があれば宜しくお願い申します。上のソースでは、うまく
改行されずに見にくくなってしまい、申し訳ありません。
0412デフォルトの名無しさん
2006/03/03(金) 23:53:570413デフォルトの名無しさん
2006/03/03(金) 23:58:13この最初の for 文はなんだ? args.length 回のループ? args.length の意味分かってないのか?
> BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
これは問題ない。
> if (line = reader.readLine() equals('q')) {
これダメ。既に line に1行読み込んでいるんだからそれと比較すればいいだけ。
if (line.equals("q")) { だ。 q はシングルクォーテーションで括ってはいけない。
ダブルクォーテーションだ。
ちなみに Java はダブルクォーテーションで括った文字列の定数は String
クラスのインスタンスだ。なので "abc".charAt(1) のような書き方も可能。
(この場合 'b' が返される)
で、"q" の入力により終るんだろ? "q" が来るまでは同じことを繰り返すん
だろ? だったら外側のループは無限ループにしてしまえ。for (;;) {...} か
while (true) {...} の形だ。で、line.qeuals("q") が true の時に break で
終りにさせろ。
以上。
0414デフォルトの名無しさん
2006/03/03(金) 23:58:29引数を使用するのか?
>if (line = reader.readLine() equals('q'))
if((line = reader.readLine()).equals("q"))
0415デフォルトの名無しさん
2006/03/04(土) 00:08:11よく見ろ。そこで readLine() しなくてもいいんだって。
0416デフォルトの名無しさん
2006/03/04(土) 00:16:180417デフォルトの名無しさん
2006/03/04(土) 00:25:48・readLine()で入力読み込み
・読み込んだものを表示
・読み込んだものを"q"と比較
・"q"なら改行
また読み込みに戻り繰り返し。
System.out.println()ってIOExceptionを引数に
取れたっけ?
0418デフォルトの名無しさん
2006/03/04(土) 00:30:00取れる。
参照型は Object の奴があるし、プリミティブ型のも全部用意されてるから
println は全ての型に対応してるよ。
0419デフォルトの名無しさん
2006/03/04(土) 00:33:280420デフォルトの名無しさん
2006/03/04(土) 00:37:520421410
2006/03/04(土) 01:08:26皆さん、わざわざ、夜中に様々なご指摘ありがとうございます。
大変有難く存じます。
特にwhileや”については、最近オブジェクト指向の事について
よく分からずにしているうちに大事な点忘れてきている様です。
皆さんの色々なレス、いい意味で刺激になります。m(__)m
0422デフォルトの名無しさん
2006/03/04(土) 01:10:43this.getClass().getName();
を呼び出すと、子クラスの名前が返ります。
で、ふと思ったんですが
これって、子をnewした段階で、
ファイルは別でも子と親はもはや同じファイルに記述されてるのと
意味的には一緒、と捉えても良いって事なんでしょうか
0423デフォルトの名無しさん
2006/03/04(土) 01:17:50> 意味的には一緒
ってのが何を言ってるのか良くわからんが
多態の事を言ってるなら、「〜と捉えても良い」ような気もする。
0424デフォルトの名無しさん
2006/03/04(土) 01:41:52コレで理解できるかもしれない。
8.4.8.5 例: 隠ぺいされたクラスメソッドの呼出し
http://www.y-adagio.com/public/standards/tr_javalang2/classes.doc.html#229207
> ファイルは別でも子と親はもはや同じファイルに記述されてるのと
> 意味的には一緒、と捉えても良いって事なんでしょうか
他人と意思の疎通が出来なくなるような世界を構築することは、
今後、学習を進める上で大いなる障害になるだろう。
0425デフォルトの名無しさん
2006/03/04(土) 02:31:05同じファイルに書くことと、継承することは意味が違うだろ。
親クラスに書いてあるthis.getClass()が子クラス自体を返すのは、
thisはどんなときでも、メソッド検索の最初のオブジェクト(この場合
子クラス)を指すからだ。まあ、子クラスのインスタンスが生成された
とたんに「俺様(this)」が生成され、それ以降ずっと、俺様は俺様って
ことだ。
0426デフォルトの名無しさん
2006/03/04(土) 03:43:55配列を宣言する時に私はString lpStr[];と記述しています。
しかし幾多の参考書や入門サイトではString[] lpStr;とも宣言しています。
どちらも意味的には同じですよね
0427デフォルトの名無しさん
2006/03/04(土) 03:46:48過去ログに出てたなぁ、というか俺が質問した内容でもあるんだがw
String[] lpStr; の方が一般的らしいよ
変数の方に[]をつけるのはCの名残みたいなもんとか
0428デフォルトの名無しさん
2006/03/04(土) 03:55:06デファクトスタンダードに則って配列はString[] 〜と宣言していく事にします。
ありがとうございました
0429デフォルトの名無しさん
2006/03/04(土) 04:11:14クラスAが定義されているとして
クラスAのメンバ変数は
int[] lpiFlags = {0,1,2,3,4};
String str = "ぬるぽ";
などと宣言されているとします。
そこで何が問題かというと次の様に宣言されている時に困ってしまいました
int []lpiFlags = {0,1,2,3,4};
String str = "lpiFlagsの要素の個数 "+lpiFlags.length;
クラスAのインスタンスが作成された時にこれら変数と初期化作業を行われる訳ですが、
Javaではこの変数の宣言と初期化作業の順番というのは厳密に定められているのですか?
もし定められてなければコンストラクタで初期化作業をしなくてはならないので・・
0430デフォルトの名無しさん
2006/03/04(土) 04:28:52そういう怪しいコードを書くと、3日後ぐらいには後悔するから。
さて、お決まりの言語規定からの引用
12.4.2 初期化手続きの詳細
http://www.y-adagio.com/public/standards/tr_javalang2/execution.doc.html#44630
8. 次に,クラス変数初期化子及びクラスの静的初期化子,又はインタフェースのフィールド初期化子の
いづれかを,記述してある順序に,それらが単一ブロックであるものとして実行する。ただし,例外として,
値がコンパイル時の定数であるfinalクラス変数及びインタフェースのフィールドは,最初に初期化するもの
とする(8.3.2.1, 9.3.1及び13.4.8)。
0431デフォルトの名無しさん
2006/03/04(土) 04:52:27日本語の言語規定もしっかりあるのですね
今一度しっかり読んできます
0432デフォルトの名無しさん
2006/03/04(土) 08:11:00ちょいとごめんなさいね。
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 /
0433デフォルトの名無しさん
2006/03/04(土) 08:49:01いい本ある?
0434デフォルトの名無しさん
2006/03/04(土) 08:51:46それぞれのボタンのJButtonオブジェクトを取得したいのですが、
どう取得するのが普通でしょうか。
一応こんな↓ムリヤリな方法では取得できたのですが・・・
JButton openButton = (JButton)((JPanel)((JPanel)getComponents()[2]).getComponents()[3]).getComponents()[0];
よろしくお願いします。
0435デフォルトの名無しさん
2006/03/04(土) 12:19:332. そのインスタンスのクラスがSerializableを実装していた
3. そのインスタンスをObjectOutputStreamとかでファイルに書き出した
そのとき
4. ObjectInputStreamでそのファイルからインスタンスを取り出す
ってのは可能ですか?
外部のJarファイルはクラスパスの外です。
0436435
2006/03/04(土) 13:29:15ClassNotFoundExceptionが出ますた
どうやって読み込んでやればよろしいでしょう
0437デフォルトの名無しさん
2006/03/04(土) 13:29:501 でインスタンスを作ったクラスローダの支配下にあるなら普通にできる。
そうでないなら ObjectInputStream#resolveClass(ObjectStreamClass) を上書きして
外部jarを読み込んだクラスローダを使って自力でクラスを解決してやればできるはず。
0438デフォルトの名無しさん
2006/03/04(土) 13:32:24Thank you!
0439デフォルトの名無しさん
2006/03/04(土) 13:32:59クラスパスが通って無いのに、最初のインスタンスを
どうやって生成したのだろう…
0440デフォルトの名無しさん
2006/03/04(土) 13:37:26URLClassLoaderです。
0441デフォルトの名無しさん
2006/03/04(土) 13:54:03なるほど。それで >>437 なのね。
0442デフォルトの名無しさん
2006/03/04(土) 18:04:030443デフォルトの名無しさん
2006/03/04(土) 18:06:348文字のどんなランダム文字列なのかを説明しなさいってばよ。
半角英数字でやるのと2バイト文字の全てとでは手法も違うよ
0444デフォルトの名無しさん
2006/03/04(土) 18:08:330445デフォルトの名無しさん
2006/03/04(土) 18:40:15せめて getComponent(2) とかにすれば?
0446デフォルトの名無しさん
2006/03/04(土) 18:41:57まぁいっか。5分くらいで作ったので性能のほどはシラネ
private static char[] hankaku =
("ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "abcdefghijklmnopqrstuvwxyz"
+ "0123456789").toCharArray();
private Random rand = new Random();
public String getRandomString(int length) {
char[] value = new char[length];
for (int i=0; i<length; i++) {
value[i] = hankaku[rand.nextInt(hankaku.length)];
}
return new String(value);
}
0447デフォルトの名無しさん
2006/03/04(土) 18:59:03for(int i=;i<10;i++){
String test_i
}
変数名の一部に変数名を使うというのは
例えばこれで、test_1、test_2・・・が10個宣言されるようなイメージです。
例えばの話です。
0448デフォルトの名無しさん
2006/03/04(土) 19:08:45そういう場合は配列がいいかと
String[] testArray = new String[10];
for(int i = 0; i < 10; ++i)
{
testArray[i] = "ぬるぽ";
}
0449デフォルトの名無しさん
2006/03/04(土) 19:14:20HashMap<String, String> map = new HashMap<String, String>();
for (int i=1; i<=10; i++) {
map.put("test_" + i, "String_" + i);
}
System.out.println(map.get("test_3"));
0450デフォルトの名無しさん
2006/03/04(土) 19:35:18getComponent()の引数なのですが、私の環境に
合わせて決め打ちとかしてしまってよいものなのでしょうか。
0451デフォルトの名無しさん
2006/03/04(土) 19:39:18コンストラクタのなかで特定しちゃいなよ
0452デフォルトの名無しさん
2006/03/04(土) 20:32:49その方法はちょっと考えたのですが、ボタンのテキストって
環境依存とかしないものなのでしょうか。
0453デフォルトの名無しさん
2006/03/04(土) 21:34:21setApproveButtonTextなんかでテキストを変えられるようだが。
0454デフォルトの名無しさん
2006/03/04(土) 22:21:28>>432
0455デフォルトの名無しさん
2006/03/05(日) 00:03:190〜0x1f はコントロールなので抜きな。
for (int i = 0; i < 8; i++)
System.out.print((char) (Math.random() * (0x10000 - 0x20) + 0x20));
System.out.println();
でも、本当はこれではダメ。というのはサロゲートな文字があって、
char 2 つないと1文字を表現できないから。
0456デフォルトの名無しさん
2006/03/05(日) 00:04:55半角文字? そりゃいかんな。Unicode 2.0 にはたしかに HALFWIDTH の
文字はある。あるのだがどちらにしろ環境依存だ。画面にどういった幅で
出るかは予想できない。
0457デフォルトの名無しさん
2006/03/05(日) 00:08:14お前それ自分で試した?
0458デフォルトの名無しさん
2006/03/05(日) 00:09:350459デフォルトの名無しさん
2006/03/05(日) 00:17:190460デフォルトの名無しさん
2006/03/05(日) 00:23:54手を動かすくらいならこれでいいじゃん。
ttp://jakarta.apache.org/commons/lang/api/org/apache/commons/lang/RandomStringUtils.html#random(int, java.lang.String)
0461デフォルトの名無しさん
2006/03/05(日) 01:09:26期待する動作はキー入力で文字が出る予定なんですけど。
コードは大体下のような感じです。長いんでかなり省略してます。
フレームにはボタンとリストが張り付いてます。
class MyFrame extends JFrame
{
コンストラクタ{
MyKeyAdapter ka = new MyKeyAdapter();
this.addKeyListner(ka);
}
}
private class MyKeyAdapter extends KeyAdapter
public void KeyPressed(KeyEvent e){
System.out.println("キーイベント");
}
0462デフォルトの名無しさん
2006/03/05(日) 01:17:39ボタンをクリックしたらラベルの色を変えて
2秒その色を維持してからまた色を変えたいのですが
以下のコードではうまくいきませんでした。
ボタンをクリックしてもラベルの色が赤にならず
ただ、2秒待ってから緑になるだけでした。
うまくいく方法を教えてください。お願いします。
class TestFram extends JFrame{
JLabel label1;
JButton button1;
public TestFram(){
//省略
button1.addActionListener(new
ActionListener(){
public void actionPerformed(ActionEvent event){
label1.setBackground( Color.RED);
try{
Thread.sleep( 2000 );
}catch (InterruptedException e) {
System.out.println(e);
}
label1.setBackground( Color.GREEN );
}
});
//省略
}
}
0463デフォルトの名無しさん
2006/03/05(日) 01:22:09正解は「Threadに投げる」です。
0464デフォルトの名無しさん
2006/03/05(日) 01:26:41ありがとうございます。できそうです。
0465デフォルトの名無しさん
2006/03/05(日) 02:04:46×KeyPressed
○keyPressed
0466461
2006/03/05(日) 02:22:57指摘どうもです。
自分のやり方だとキーイベントを取得できるのが、キーボードフォーカスを
持っているもののみだそうで。JFrameはキーボードフォーカスを持てない
のでイベントが送られてこない様です。
どうしたものか。
0467デフォルトの名無しさん
2006/03/05(日) 02:42:390468デフォルトの名無しさん
2006/03/05(日) 03:25:23ありがとうございます。
isFocusableをオーバーライドしてtrueを返すようにしたら
初回表示時はキーイベントを取得できました。
しかし、JFrameに貼り付けてるボタンや、リストを一度選択
するとJFrameにはフォーカスを戻すことができません。
後、特定のキーはフォーカスがボタン、パネル関係なしに
JFrameで処理させたいんですがどのような方法が考えられますか?
0469デフォルトの名無しさん
2006/03/05(日) 04:20:43上位のコンポーネントにキーイベントが伝わるはず。
0470デフォルトの名無しさん
2006/03/05(日) 04:28:39遅くにありがとうございます。近いうちに試したいと思います。
0471デフォルトの名無しさん
2006/03/05(日) 09:34:17特定のキーのキーボードストロークを取得して、
ActionMap と、InputMap をWHEN_IN_FOCUSED_WINDOW
で関連付ければいい。
0472デフォルトの名無しさん
2006/03/05(日) 11:00:150473デフォルトの名無しさん
2006/03/05(日) 11:03:560474デフォルトの名無しさん
2006/03/05(日) 11:37:55実際のサーバー上で実行してみたいんですが、サーバーにはFTPでクラスファイルを
送ればいいんですか?
0475デフォルトの名無しさん
2006/03/05(日) 11:42:20おまいの使ってるサーバはサーブレット動くの?
サーブレットやJSPが動くところなぞ、そうないぞ。
0476デフォルトの名無しさん
2006/03/05(日) 12:17:38それ以前にJavaが実行できるサーバがないかと。
>>474
だから自前で用意してるサーバと仮定して、FTPでもなんでもいいです。
要はwebアプリケーションの階層構造とアクセス権がそのままならいいので。
.warファイルなら、Tomcatのwebappに放り込むだけ。
0477デフォルトの名無しさん
2006/03/05(日) 12:34:20サイバーテロでも起こす気か?
0478デフォルトの名無しさん
2006/03/05(日) 12:47:07idで識別しとけ。
0479デフォルトの名無しさん
2006/03/05(日) 12:51:12感じで良いのでしょうか?
クライアント(クラスA) →(RMI呼出) リモートクラス(クラスB) →(Socket通信) サーバ(クラスC)
クライアントからクラスBのメソッドを呼び出し、Socket作成してクラスCと通信。
サーバ(クラスC)内で要求待ち無限ループを行い、要求があれば処理して結果を返却する。
0480デフォルトの名無しさん
2006/03/05(日) 14:20:18private Vector<Element> elements;
public void paint(Graphics g) {
for(Element e : elements) {
e.draw(g);
}
}
こんなかんじで各要素を描画してるんだけど、
elementsの要素が増えてくると重くなるのはわかるんだが
さらに増えると急に動作が軽くなるのは何で?
Vectorクラスの特性?Graphicsの特性?
0481デフォルトの名無しさん
2006/03/05(日) 14:22:550482デフォルトの名無しさん
2006/03/05(日) 14:24:00Graphicsのせいだけど
そんなに描画するならBufferedImageのレイヤーにしたほうがいいよ
JLabelをクリックさせたりするなら別かもしれんけど
てかSwingでpaintをオーバーライドすんなや
0483デフォルトの名無しさん
2006/03/05(日) 14:30:32トンクス
>てかSwingでpaintをオーバーライドすんなや
なんてリスナー(?)使ったらいいのか教えてくださいませ
0484デフォルトの名無しさん
2006/03/05(日) 14:31:160485デフォルトの名無しさん
2006/03/05(日) 14:38:14ありがと〜
0486デフォルトの名無しさん
2006/03/05(日) 15:29:15http://pcweb.mycom.co.jp/news/2006/03/03/341.html
0487デフォルトの名無しさん
2006/03/05(日) 16:28:450488デフォルトの名無しさん
2006/03/05(日) 16:39:57確認してみたところ、
Notice: We're Offline for System Upgrades
だってさ。
0489デフォルトの名無しさん
2006/03/05(日) 19:42:22ものすごくめんどくさいコードにならない?
0490489
2006/03/05(日) 19:59:16new Vector<Rectangle>();
を、Vector.classとRectangle.classと
Class.newInstance()を使って書くとどうなりますか?
0491デフォルトの名無しさん
2006/03/05(日) 20:45:34BitSet b = 00111110(2)
であるときaが全てbに含まれていると証明できる高速な演算はありますでしょうか
実際にはもっと馬鹿でかいbit配列なのですが、下記のコードでは実用に耐えられませんでした
BitSet c = (BitSet) b.close();
c.and(a);
return b.equals(c);
0492デフォルトの名無しさん
2006/03/05(日) 21:17:540493デフォルトの名無しさん
2006/03/05(日) 21:21:161101000
0001000
でtrueになるはず
0494デフォルトの名無しさん
2006/03/05(日) 22:32:07その馬鹿でかいbit配列は何ビットくらいなの?
0495デフォルトの名無しさん
2006/03/05(日) 22:38:320496デフォルトの名無しさん
2006/03/05(日) 22:41:410497デフォルトの名無しさん
2006/03/05(日) 22:41:59Javaマルチスレッドのサンプルコード説明などを見ると、以下のようなカウンタクラス(Count)において、
カウンタの値(count)を スレッドセーフにするには、 countUp()をsyncronized宣言する。もしくは、
countUpメソッドの内部をsyncronizedブロックで囲むといった 説明がされているように思います。
public class Counter {
public static int count;
public static void countUp() {
int n = count;
何らかの処理;
count = n + 1;
}
}
たしかに、上記を1000スレッドから実行し、実行後のcountの値を参照すると、期待される結果(1000)
では無く、もっと少ない値が返されます。
同期処理の定跡に従って、countUpをsyncronized宣言すると、最終的なcountは1000になってくれるので、
それはそれで良いのですが、一方で、 加算処理をインクリメント演算子に書き換えると、syncronized
宣言するまでもなく、countは期待通りに1000になってくれます。
public class Counter {
public static int count;
public static void countUp() {
++count;
}
}
インクリメント演算子の実態は、count = count + 1 といった処理なのだと思いますが、このような1行処理であれば、
syncronizedを宣言するまでも無く、スレッドセーフになってしまうものなのでしょうか?
0498デフォルトの名無しさん
2006/03/05(日) 22:48:441.
> int n = count;
> 何らかの処理;
> count = n + 1;
2.
> ++count;
2は count = count + 1 になる。
1は count = n + 1 と見えるのだが。
0499デフォルトの名無しさん
2006/03/05(日) 22:50:22全てフラグですので間違ってはいないかと。
new boolean[255]より高速に出来て欲しいのです。
0500デフォルトの名無しさん
2006/03/05(日) 22:53:46レスありがとうございます。
1の場合、変数nと変数countの実体は別。
2の場合、変数countの実体は同じもの。
同じ変数を操作しているので、2の場合は問題は生じない。
と考えればよいのでしょうか?それとも的外れですかね。。
0501デフォルトの名無しさん
2006/03/05(日) 22:56:38そりゃ、メモリを犠牲にすれば早くもなるだろう
0502デフォルトの名無しさん
2006/03/05(日) 22:58:55どっちも消費メモリは同じくらいでは?
boolean[255]とlong[4]の違いですよ
0503デフォルトの名無しさん
2006/03/05(日) 23:05:23現在のIPアドレスといえば、8bitを4ブロックに分けた32bitってのがあるが
値にして約43億。その値だけでもかなりのものなのに
0504デフォルトの名無しさん
2006/03/05(日) 23:08:110505デフォルトの名無しさん
NGNG例えばAを実行している時に違うウィンドウでAを実行するようなことなのですが。
0506デフォルトの名無しさん
2006/03/05(日) 23:19:54そもそも消費メモリの話しをしてるのになぜ値になるのかと。
別に491は255bitのフラグを扱うだけで255bitの整数を扱うと言ってる訳じゃないし
0507デフォルトの名無しさん
2006/03/05(日) 23:59:16BitSetのソースを見る限りでは、それほど遅い処理には思えませんでした。
BitSetを継承して、期待する処理を行うメソッドを追加するのはどうでしょうか?
>>500
実装依存だと思うので、明示的に同期処理をしたほうが無難だと思います。
# 2の演算がアトミックであれば、問題ない
0508デフォルトの名無しさん
2006/03/06(月) 00:15:46俺も一応試してみたけど別に遅いとは感じなかったけど…
499が言ってた実用に耐えられないというのはこれぐらいの処理時間で?
long start = System.currentTimeMillis();
while(count < 10000){
//ランダムに生成した500ビットのフラグa,bの比較
BitSet c = (BitSet)a.clone();
c.and(b);
if(a.equals(c)) break;
count++;
}
System.out.println(count + "回処理を実行しました \n1回の処理時間: " + ((double)( System.currentTimeMillis() - start ) / count) + "ms" );
出力(例)
10000回処理を実行しました
1回の処理時間: 0.0016ms
0509デフォルトの名無しさん
2006/03/06(月) 00:22:47疑問ついでに、同期処理関連でvolatile演算子について調べていたのですが、
参考になるサイトがありました。結局、volatile演算子もあてにはならない
ようなので、507さんのおっしゃるとおり、明示的に同期処理すべきとのこと
でした。
http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000466.html
0510デフォルトの名無しさん
2006/03/06(月) 00:37:201000000ループで使っていました。
その後もいろいろ試してみたのですが
下記のコードの効率が良さそうでした。
a.xor(b);
boolean result = !a.intersects(b);
a.xor(b);
return result;
これ以上は本格的にビット演算学ばないと向上しなさそうですね
ともあれありがとうございました。
0511デフォルトの名無しさん
2006/03/06(月) 00:45:50class A extends Thread {
または
class A implements Runnable {
としておいて
A a = new A();
a.run();
じゃだめなの?
0512デフォルトの名無しさん
2006/03/06(月) 00:49:09return b.and(a).xor(a).isEmpty();
とどっちが速い?
0513デフォルトの名無しさん
2006/03/06(月) 00:51:43おせっかいな細かい訂正を。
volatileは、演算子ではなく、(フィールド)修飾子です。以上。
0514デフォルトの名無しさん
2006/03/06(月) 01:02:25xorを2度すると元に戻るという法則でcloneを避けたほうが効率的
ビット演算そのものより、newをさせない手法のが結果的に高速
0515デフォルトの名無しさん
2006/03/06(月) 02:15:48> カウンタの値(count)を スレッドセーフにするには、 countUp()をsyncronized宣言する。もしくは、
> countUpメソッドの内部をsyncronizedブロックで囲む
半分しかあってない。public なフィールドが不気味
同期には、排他制御の他に原子性や可視性に注意する。
>>507
> 結局、volatile演算子もあてにはならない
言語仕様 ver.3 (Java 5.0 以降)では、
volatile や finel 等のメモリモデルの改善がなされているので注意する。
> http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000466.html
> volatileは実際には実装されていない場合があり、その場合は機能しない。
そんなの Java じゃないクマー
0516デフォルトの名無しさん
2006/03/06(月) 02:43:34publicのままだと、他のクラスからcountを書き換えることができるから、
まずいかもしれないということでしょうか。
private static int count;
public static getValue() {
return count;
}
とすることで、原子性と
0517デフォルトの名無しさん
2006/03/06(月) 02:44:49publicのままだと、他のクラスからcountを書き換えることができるから、
まずいかもしれないということでしょうか。
そうすると、、、
private static int count;
public static getValue() {
return count;
}
とすることで、原子性と可視性に気をつけたことになるのかな?
0518515
2006/03/06(月) 02:44:49> http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000466.html
volatile 修飾子つけると、++ や -- が排他的に演算できると書いてあるが、
そうだったっけ?
0519デフォルトの名無しさん
2006/03/06(月) 02:59:43簡単にフォーリングっぽく言うと、
原子性は、double と long はとにかく同期しないとだめということ。
2バイトで構成されるであろうこれらは、
1バイトだけ変化したとんでもないモノが読めてしまう可能性がある。
可視性は、読み取り側も同期しないといけないこと。
ここで、同じオブジェクトのロックを取得することが重要。
static メソッドの synchronized は
そのクラスオブジェクトのロックを取得するシンタックスシュガー
0520デフォルトの名無しさん
2006/03/06(月) 03:00:55>簡単にフォーリングっぽく言うと、
フィーリングだ フォーリングってなんだorz もう寝る
0521デフォルトの名無しさん
2006/03/06(月) 03:10:01そうすると、countがlongの場合、こうなのだろうか。。
private static long count;
public static syncronized long getValue() {
return count;
}
マルチスレッドで動作する読み取り側は、
以下のようにカウンタ値を操作すればよい?
Counter.countUp(); // カウンタを上げる
long l = Counter.getValue(); // カウンタ値を取得する。
0522デフォルトの名無しさん
2006/03/06(月) 03:48:40long でなくとも、countUp および getValue は synchronized にし、
フィールドは直接触れないようにするべき。
ただし、例えば GUI 上に進捗状況を表示するために読み取るなど
遅延がそれほどクリティカルではない場合は、
(long や double でない限り)読み取り側の同期をせずスループットを優先する
という方法もあるかもしれないが、
まあ、そんな微妙な(危険な)方法はプロファイラを見てからの話だろう。
要は、
>>497
>たしかに、上記を1000スレッドから実行し、実行後のcountの値を参照すると
どうやって参照してるかいな と突っ込みを入れたかっただけ
0523デフォルトの名無しさん
2006/03/06(月) 08:50:14> 原子性は、double と long はとにかく同期しないとだめということ。
> 2バイトで構成されるであろうこれらは、
2バイトじゃないぞ。
0524デフォルトの名無しさん
2006/03/06(月) 10:06:46じゃあ、intの読み取りは必ずアトミック?16bitのVMでも?
0525デフォルトの名無しさん
2006/03/06(月) 10:19:370526デフォルトの名無しさん
2006/03/06(月) 10:27:0316bitのVMがあってもいいけどintの読み書きがアトミックじゃないと違反する
0527デフォルトの名無しさん
2006/03/06(月) 10:27:51http://www.y-adagio.com/public/standards/tr_javalang2/memory.doc.html#28733
0528デフォルトの名無しさん
2006/03/06(月) 14:39:411回の処理で書けてるかな?
まあでもそのうち 128 bit CPU なんて出てきたら 64 ビットは
一回で書けてもあまり効率よくなくなっちゃうんだろうなあ。
0529デフォルトの名無しさん
2006/03/06(月) 16:07:39CからJAVAをJAVAからCを呼ぶようなプログラムは可能ですか?
JAVAとCをクロスして呼ぶとJNIの関数で異常終了を起こしてしまうので
宜しくお願いします。
0530529
2006/03/06(月) 16:14:50JAVA側でnative宣言したC側の関数を実行し、C側ではCall***Method関数で
JAVA側を呼ぶという事をすると異常終了しまいます。
0531デフォルトの名無しさん
2006/03/06(月) 16:18:08C 側で UTF-8 ⇔ Shift_JIS 変換する必要があったって面倒なので Java のメソッド読んだ。
0532デフォルトの名無しさん
2006/03/06(月) 16:18:34普通に呼べる。
★お前らJavaはJNIで組もうぜ★
http://pc8.2ch.net/test/read.cgi/tech/1033795664/
0533デフォルトの名無しさん
2006/03/06(月) 17:05:30同じ組み合わせでやってる人いますか?
インデックス作成対象のファイルがSJIS以外の場合の検索って、
どうすんだろ・・・?
0534533
2006/03/06(月) 17:21:080535デフォルトの名無しさん
2006/03/06(月) 20:19:09Java VM: Java HotSpot(TM) Client VM (1.5.0_06-b05 mixed mode, sharing)
0536デフォルトの名無しさん
2006/03/06(月) 20:34:07とりあえず '?' を入力してみな。ヘルプ出ると思うから。
0537535
2006/03/06(月) 20:45:01vを押すとhs_err_pidXXX.txt(XXXは毎回異なる数字)というファイルがデスクトップに作成されます。
ブラウザ起動から1度もAppletを使用していないときにコンソールでvを押すと強制終了するみたいです。
0538デフォルトの名無しさん
2006/03/06(月) 20:54:37xmlファイルを作るプログラムを作っています。
jre1.3だとちゃんと動作するのですが、
jre1.4で実行した時、下記のようなエラーが発生してしまいます。
java.lang.NoClassDefFoundError: org/apache/xerces/framework/XMLParser
xmlを作成・更新するクラスの中で、jre1.3とjre1.4で使えるクラスに差があるのでしょうか?
あと、両方で動作するようにするにはどうすればいいのでしょうか?
0539デフォルトの名無しさん
2006/03/06(月) 21:13:32>xmlを作成・更新するクラスの中で、jre1.3とjre1.4で使えるクラスに差があるのでしょうか?
大きな声で、Y e s !
1.3→1.4のとき、XMLパーサが組み込みになりました。ただしXMLライブラリは、crimsonというものです。
エラーメッセージではXerces-Jを要求しているみたいですね。
たぶんCLASSPATHに指定されているのでしょうが、残念ながら組み込みが優先されてしまいます。
そのようなときは、「-Djava.endorsed.dirs=Xercesを置いたディレクトリ」をjavaコマンドの引数に
つけてください。
0540デフォルトの名無しさん
2006/03/06(月) 21:18:34あれ? 違ったかな? 'h' かも知れない。
ていうか、ヘルプを出すには何かを押せっていうのが Java Console の上の方に出てない?
0541デフォルトの名無しさん
2006/03/06(月) 21:29:16[]←これ全然使わない。
後々何か追加したい時があるかもしれないってどうしても思うでしょ。
よっぽど変更は無いって自信がない限り []←これ使わないでしょみんな?
0542デフォルトの名無しさん
2006/03/06(月) 21:32:04ものによるな。
0543デフォルトの名無しさん
2006/03/06(月) 21:33:350544デフォルトの名無しさん
2006/03/06(月) 21:35:56ゲームとかだとCollectionはHashMapくらいしか使わなくなる
逆にアプリとかだとプリミティブはintとbooleanくらいしか使わない
0545デフォルトの名無しさん
2006/03/06(月) 21:40:57おれも。
ArrayListも無理やり[]にして回す。
0546デフォルトの名無しさん
2006/03/06(月) 21:43:55何の必要があって?
0547デフォルトの名無しさん
2006/03/06(月) 21:47:12Exception in thread "main" java.lang.NoClassDefFoundError: Loop
ってでる
import java.util.BitSet;
public class Loop {
public static void main (String args[]){
Loop l = new Loop();
l.Loop2();
}
public void Loop2(){
〜508の処理〜
}
}
0548デフォルトの名無しさん
2006/03/06(月) 21:55:14これの意味を冷静に考えてみてくれたまえ。
> java.lang.NoClassDefFoundError: Loop
0549デフォルトの名無しさん
2006/03/06(月) 22:26:07データを消さずにやりたいのですが、どうすればいいでしょうか?
alter table でできないでしょうか?
0550538
2006/03/06(月) 22:42:02レスありがとうございます。
jre1.4で実行した場合、
読み込むXMLパーサーとしてcrimsonとxercesがあり、
必要とされるのがxercesであるにもかかわらず
crimsonが優先されて実行されてしまうのでエラーが起こったということですね?
そこで、「-Djava.endorsed.dirs=Xercesを置いたディレクトリ」とすることで、
明示的に読み込むXMLパーサーをxercesにすればいい、ということでしょうか?
0551デフォルトの名無しさん
2006/03/06(月) 23:47:20その理解でいいかも。詳しくお知りになりたければ、JDKのドキュメントにendorsedについて載ってます。
でもアプレットでどうやるかは、私は知りません(´・ω・`)
0552デフォルトの名無しさん
2006/03/06(月) 23:58:10・クラスらはあるビーンズクラスをそれぞれの形で生成できる
・ビーンズクラスはインタフェースの引数に使われる
こんな条件でコーディングをしたいのですが
interfaceはstaticを宣言できないそうなので共通化に苦慮しています
abstract classにimplementsしたものをクラスらが継承するのが望ましいのでしょうか?
0553デフォルトの名無しさん
2006/03/07(火) 00:05:40どうして共通化にstaticが必要なの?
0554デフォルトの名無しさん
2006/03/07(火) 00:07:070555デフォルトの名無しさん
2006/03/07(火) 00:27:14何がやりたいのか分からないが、言語規格にまで反するならば、
設計を見直すべき。
そもそも beans と static は相性悪いからなぁ
場合によっては、Javaという枠組みでやること自体、考え直したほうが良いのかも。
0556デフォルトの名無しさん
2006/03/07(火) 00:29:53public static Bean createBean(int n) {
throw new UnsupportedOperationException("タダでは使わせんぞ、小僧。");
}
}
邪道?
0557デフォルトの名無しさん
2006/03/07(火) 01:05:42渡されたメソッドの戻り値を同じクラス変数名で受け取りたいのですが
なんか奇妙に感じるのですが、きれいな方法ってありますでしょうか?
クラス変数A = メソッドA(クラス変数A);
---------------------
メソッドA(クラス変数A);
return クラス変数A
---------------------
0558デフォルトの名無しさん
2006/03/07(火) 01:08:08>>424 のリンク先を見れば載ってるけれど、
staticは上書きできませんのでアシカラズ。
0559デフォルトの名無しさん
2006/03/07(火) 01:14:16クラス変数というのはstaticフィールドのことだろうか?
値を変更することを前提にメソッドを作っているならば、
メソッドの中で書き換えればよろしいかと。
0560デフォルトの名無しさん
2006/03/07(火) 01:25:36エスパーに挑戦してみる。
要するに abstract factory を作りたいに違いない
0561デフォルトの名無しさん
2006/03/07(火) 03:05:42そういうのは Java ではクラスを介してやるしかない。
たとえば文字列でいいなら StringBuffer のインスタンスの参照を
渡せば渡した側と渡された側は同じインスタンスを参照しているので
渡された側での書き変えがそのまま反映する。
例
呼出し側
StringBuffer buf = new StringBuffer();
methodA(buf);
System.out.print(buf); // ここで methodA() で書き変えた内容が出る。
呼び出される側
void methodA(StringBuffer buf) {
buf.append("Hello");
}
その他の場合も考え方は同じで、内容を書き変え可能になっているクラスの
インスタンスを渡して渡された側で内容を書き変えるという方法を使う。
望みの型がなければ自作する。(しかし int 型一つなどの場合は一々クラスを
new するコストの方が高く付くのでやらない方がいいと思う)。
0562デフォルトの名無しさん
2006/03/07(火) 08:13:40あるサーブレットで次の方法でセッションの有無を
確かめてました。
if(request.getSession(false)==null)
これでnullの場合タイムアウトの画面に
遷移させるという風にしてたのですが…
何も無い状態からこのサーブレットを呼ぶと
タイムアウト画面に遷移してくれるのですが、
最初にJSPの別画面を表示させた後、POSTメソッド等で
このサーブレットを実行するとsessionオブジェクトが
帰ってきてしまいます。
JSPを起動すると自動的にセッションが開始されると
言うことなのでしょうか?
0563デフォルトの名無しさん
2006/03/07(火) 08:17:170564デフォルトの名無しさん
2006/03/07(火) 08:31:12http://www.atmarkit.co.jp/fjava/javafaq/jsp/jsp06.html
0565デフォルトの名無しさん
2006/03/07(火) 10:06:52Eqlips3.0.2に対応したストラッツのバージョンが判らなくて困っています
どなたかご教授いただけないでしょうか?
0566デフォルトの名無しさん
2006/03/07(火) 10:13:33リンクを張ったのですが、ブラウザ内にバイナリコードが表示されてしまいます。
ネットで調査してみたところMIMEタイプの設定をしなければならないとの事でしたので
web.xmlで下記の(*1)のコードを他のマイムタイプマッピングと同様に宣言してみました。
ところが、相変わらずエクセルファイルとして表示してくれません。
同じような症状を体験したかたいらっしゃらないでしょうか
TOMCATのバージョンは4.1.31です。
(*1)
<mime-mapping>
<extension>xls</extension>
<mime-type>application/x-excel</mime-type>
</mime-mapping>
0567566
2006/03/07(火) 10:20:050568デフォルトの名無しさん
2006/03/07(火) 10:27:06そういうのはStrutsプラグインによるので何ともかんとも。
これは1.2対応らしい。
ttp://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi?page=StrutsIDE
Strutsプラグイン使わないなら、1.2でも1.3でも使えるよ。
0569デフォルトの名無しさん
2006/03/07(火) 10:29:08ありがとうございます、やってみます。
0570デフォルトの名無しさん
2006/03/07(火) 11:55:49とりあえず↓を読んでいるんですが…
http://www.ingrid.org/jajakarta/servletapi/servletapi-4.0/docs-ja/index.html
0571デフォルトの名無しさん
2006/03/07(火) 12:15:280572デフォルトの名無しさん
2006/03/07(火) 15:21:14進んでいくと分かるようになりますか?
0573デフォルトの名無しさん
2006/03/07(火) 15:22:32分る人間には分る
0574デフォルトの名無しさん
2006/03/07(火) 15:24:52いちいちコレクションに詰めるわけにもいかんしな。
0575デフォルトの名無しさん
2006/03/07(火) 15:36:33同じ意味の値の集合を扱いたい場合に必要となる (順序に意味がある
場合にも使える)。もちろん配列クラスを使わないで ArrayList や Vector
クラスでやってもいいが、Java の場合は配列が言語レベルでサポート
されているため無駄が少ない。
で、具体的にどういう時に使うのかというと、たとえば何かの棒グラフや
折れ線グラフを作る時の元の値の並びを入れておくのに使える。テストの
点数を一つづつ並べて入れておいて後で表示したり平均点を計算するとかに
使える。表計算プログラムを作る時や、表計算プログラムで作られた表を
扱う時に、各セルの状態を入れておくのに使える。
0576デフォルトの名無しさん
2006/03/07(火) 15:41:51なった List を使うんだよなぁ…
ガクブル
0577デフォルトの名無しさん
2006/03/07(火) 15:47:44配列がなかったら… 配列クラスを自作して肝心な所は
native でやるしかないかな?
0578デフォルトの名無しさん
2006/03/07(火) 15:48:46アクセスの仕方によっては無駄が多そうだが。
0579デフォルトの名無しさん
2006/03/07(火) 15:52:230580デフォルトの名無しさん
2006/03/07(火) 16:17:170581デフォルトの名無しさん
2006/03/07(火) 16:21:210582デフォルトの名無しさん
2006/03/07(火) 16:53:12eclipseでやってたらこんなエラー出てきたんすけど
これって何?
0583デフォルトの名無しさん
2006/03/07(火) 16:54:280584デフォルトの名無しさん
2006/03/07(火) 17:02:08extends IndexOutOfBoundsException
不正なインデックスを使って配列がアクセスされたことを示すためにスローされます。
つまり、インデックスが負または、配列のサイズ以上の場合です。
0585デフォルトの名無しさん
2006/03/07(火) 17:10:20java.lang.ArrayIndexOutOfBoundsException
↓
ArrayIndexOutOfBoundsException
↓
Array Index Out Of Bounds Exception
↓
array 配列
index インデックス(添字)
out of bounds 範囲外
exception 例外
0586デフォルトの名無しさん
2006/03/07(火) 17:41:46お時間ある方、下のコード実行してみてもらえないでしょうか?
*/
String[] array = new String[1000000];
ArrayList arrayList = new ArrayList();
for(int i = 0; i < array.length; i++){
array[i] = "a";
arrayList.add("a");
}
System.gc();
System.out.println("wait 5 seconds...");
try{
Thread.sleep(5000);
} catch(InterruptedException ie){}
/*
0587586
2006/03/07(火) 17:42:17*/
String tmp;
long time = System.currentTimeMillis();
for(int i = 0; i < array.length; i++){
tmp = array[i];
}
System.out.println("Array : " + (System.currentTimeMillis() - time) + " ms");
time = System.currentTimeMillis();
for(int i = 0; i < arrayList.size(); i++){
tmp = (String)arrayList.get(i);
}
System.out.println("ArrayList : " + (System.currentTimeMillis() - time) + " ms");
time = System.currentTimeMillis();
String[] tmpArray = new String[arrayList.size()];
arrayList.toArray(tmpArray);
for(int i = 0; i < tmpArray.length; i++){
tmp = tmpArray[i];
}
System.out.println("toArray : " + (System.currentTimeMillis() - time) + " ms");
0588586
2006/03/07(火) 17:44:25圧倒的に配列が速いのは知っていたのですが、
そのため、わざわざtoArrayして回していたのです。
ためしに上記コードを実行してみたら、
ArrayListとtoArrayがほとんど同じ速度です・・・・
皆さんのPCでも同じような結果でしょうか?
0589535
2006/03/07(火) 17:59:40PentiumM1.2GHz メモリ512MB Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)
Array : 0 ms
ArrayList : 47 ms
toArray : 110 ms
0590デフォルトの名無しさん
2006/03/07(火) 18:02:35JDKのバージョンが抜けてますよ?
0591589
2006/03/07(火) 18:03:360592586
2006/03/07(火) 18:45:21失礼しました。
C:\j2sdk1.4.2_11\bin\java -server Test
wait 5 seconds...
Array : 30 ms
ArrayList : 190 ms
toArray : 150 ms
C:\j2sdk1.4.2_11\bin\java -client Test
wait 5 seconds...
Array : 20 ms
ArrayList : 80 ms
toArray : 220 ms
C:\jrockit-j2sdk1.4.2_08\jre\bin\java -server Test
wait 5 seconds...
Array : 10 ms
ArrayList : 100 ms
toArray : 111 ms
C:\jrockit-j2sdk1.4.2_08\jre\bin\java -client Test
wait 5 seconds...
Array : 10 ms
ArrayList : 70 ms
toArray : 211 ms
この辺りでやってみました。
Pentium3 700MHz 512M です。
0593デフォルトの名無しさん
2006/03/07(火) 20:59:49(home)>java -Xms192M -Xmx192M -showversion String9
java version "1.5.0_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_03-b07)
Java HotSpot(TM) Client VM (build 1.5.0_03-b07, mixed mode, sharing)
wait 5 seconds...
Array : 101 ms
ArrayList : 320 ms
toArray : 311 ms
>>588
>ArrayListと配列を比べた場合、
>圧倒的に配列が速いのは知っていたのですが、
単にArrayList#toArray()のオーバーヘッドで相殺されただけじゃね。
単純にArrayListと配列の速度比較したら配列が遅いかもしれんが、
だからって「ArrayListが遅い」わけじゃない。
99.9%の場面でArrayListのスピードで十分。
「配列と比べたArrayListの速度」が問題になるようなの極々わずか。
0594デフォルトの名無しさん
2006/03/07(火) 21:59:34この場合もinitialSize設定しとけば、差はかなり縮まるはず。
0595デフォルトの名無しさん
2006/03/07(火) 22:07:09インデクサや関数呼び出しのオーバーヘッドの差かな?
0596デフォルトの名無しさん
2006/03/07(火) 22:21:48jrockitはWebLogicのBEAのやつなん。
速度はすごく速い。
でも、地味にバグを見つけてしまった・・・・
0597デフォルトの名無しさん
2006/03/07(火) 23:06:12最近のVMだとそのへんの最適化が進んでるって話だし。
0598デフォルトの名無しさん
2006/03/07(火) 23:17:37戻り値を明確にして、分かりやすいコードを書くために
以下のように、メソッドの引数と同じ変数名で戻り値を受け取るのは
よくないのでしょうか?
呼出し側
StringBuffer buf = new StringBuffer();
buf = methodA(buf);
System.out.print(buf); // ここで methodA() で書き変えた内容が出る。
呼び出される側
StringBuffer methodA(StringBuffer buf) {
buf.append("Hello");
retrun buf;
}
0599デフォルトの名無しさん
2006/03/07(火) 23:24:21↓これでも同じ動作だろ?
呼出し側
StringBuffer buf = new StringBuffer();
methodA(buf);
System.out.print(buf); // ここで methodA() で書き変えた内容が出る。
0600デフォルトの名無しさん
2006/03/07(火) 23:27:48呼び出し側からは、methodA の引数と戻り値が同じインスタンスなのか
判別できません。
# 個人的にはオカシイと思う点が少なくても二箇所あります。
# 自分向けの表現では気持ち悪い、気味が悪いかな
0601デフォルトの名無しさん
2006/03/08(水) 00:28:32>>StringBuffer buf = new StringBuffer();
>>buf = methodA(buf);
おい!!
0602エスパー
2006/03/08(水) 01:17:54ちょっと変か
0603デフォルトの名無しさん
2006/03/08(水) 01:54:22メソッド引数と、その戻り値を受け取る変数が同じなんてことはざらに
あるぞ。別におかしくともなんともないだろ。
たとえば、ある文字列を渡すと、後ろに「hoge」とくっつけるメソッドが
あるとしたら
String testStr = "test";
testStr = appendHoge( testStr);
System.out.println( testStr);
って普通のコードだと思うけど?
ただな、StringBufferを引数で渡して、そのStringBufferを戻り値で返すって、
いったい何がしたいんだよ。俺も>>599と同じように思った。
0604デフォルトの名無しさん
2006/03/08(水) 02:09:07返されるかも知れないし、返されないかも知れない。
0605デフォルトの名無しさん
2006/03/08(水) 03:02:20StringBufffer sb = new StringBuffer().append( 1 ).append( -1.3 ).append( "hoge" );
例えばこういった append の連続使用は多いケースだろ。
0606デフォルトの名無しさん
2006/03/08(水) 03:36:17それ「StringBufferを引数で渡して」るわけじゃないし。
0607デフォルトの名無しさん
2006/03/08(水) 06:11:02toArray(Object[] nArray) の場合は、引数である配列の要素数が足りなかったとき、
メソッド内部で新しい配列を生成するので、違うインスタンスが返される。
足りてれば問題ない。
ただし、この場合にも、引数と戻り値は別物として扱ったほうが無難だと思う。
# 変数名の再利用はバグの温床になるからである。
>>605
appendの場合は、目的がハッキリしている。
返って>>598の場合は、「戻り値を明確に」するという目的はあるものの、
その目的とソースが一致していない。
目的を達成するためにそのように記述する必然性が全く無い。
0608デフォルトの名無しさん
2006/03/08(水) 12:44:48ドライバーマネージャーを使った接続でもJTAを適応できるでしょうか?
JTAに関する説明のサイトを見るとほとんどがデータソースを使っているので…
0609デフォルトの名無しさん
2006/03/08(水) 13:29:02バージョンや環境でえらく差が出るような。
こっちで実行した結果を挙げとく。
(ハードは PowerPC G4 800MHz, 640MBの iBook G4)
$ uname -a
Darwin xxxxx.local 8.5.0 Darwin Kernel Version 8.5.0: Sun Jan 22 10:38:46 PST 2006; root:xnu-792.6.61.obj~1/RELEASE_PPC Power Macintosh powerpc
$ java -Xms192M -Xmx192M -showversion ss
java version "1.4.2_09"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_09-232)
Java HotSpot(TM) Client VM (build 1.4.2-54, mixed mode)
wait 5 seconds...
Array : 47 ms
ArrayList : 174 ms
toArray : 99 ms
0610デフォルトの名無しさん
2006/03/08(水) 15:29:09いじってるんだけど、なかなか良い感じ。
ttps://simple-log.dev.java.net/
ライセンスは、Apache License 2.0。
Log4jとの比較情報とかもある。
ttps://simple-log.dev.java.net/log4jComparison.html
簡単なオブジェクトダンプとかもやってくれるんで便利。
試しにネストさせたArrayListとかを放り込んでみたら、
ちゃんとネストしてログ出力されたス。
名前通り、設定もシンプル。
0611デフォルトの名無しさん
2006/03/08(水) 16:07:03専門用語ばかり使ってて、お前ら初心者がプログラミングなんかやるのは100年早ぇんだよ
ってな空気プンプン漂ってない?
分かりやすく理解できるような参考書って無いよね
0612デフォルトの名無しさん
2006/03/08(水) 16:09:22バカが近寄らないようにしてるだけ
2chはバカばっかりじゃねーかってツッコミは無しな
0613デフォルトの名無しさん
2006/03/08(水) 16:13:570614デフォルトの名無しさん
2006/03/08(水) 16:22:130615デフォルトの名無しさん
2006/03/08(水) 16:29:400616デフォルトの名無しさん
2006/03/08(水) 16:38:57始めからオブジェクト指向に慣れたほうが。
0617デフォルトの名無しさん
2006/03/08(水) 17:35:18プリンターの用紙・トレイ一覧を取得する際、以下のような処理でMediaアトリビュートを
取得できるのですが、これの名称の取得をするにはどのようにすればよいのでしょうか?
(特に、MediaTrayの定数に無いものの名称が知りたいです)
Media[] media= (Media[])PrinterJob.getPrinterJob().getPrintService().getSupportedAttributeValues(Media.class,null,null);
javaのダイアログでは「トレイ1」といった名称が出ているので、取得できそうなのですが
方法がわかりません・・・・
よろしくお願いいたします。
0618デフォルトの名無しさん
2006/03/08(水) 17:44:52と
double a = Double.parseDouble(args[0]);
の違いってなんですか?
0619デフォルトの名無しさん
2006/03/08(水) 18:06:05なんでそんなことが気になるのかわからんが…
前者はDoubleのインスタンスが生成されてて、後者は生成されない。
0620デフォルトの名無しさん
2006/03/08(水) 18:11:09チョイ待て。後者だってDoubleのインスタンスは作られないだろ。
0621デフォルトの名無しさん
2006/03/08(水) 18:11:400622デフォルトの名無しさん
2006/03/08(水) 18:15:32好き嫌い
0623デフォルトの名無しさん
2006/03/08(水) 18:25:09後者を使うべし
0624デフォルトの名無しさん
2006/03/08(水) 19:08:32プギャー
0625デフォルトの名無しさん
2006/03/08(水) 19:20:32ところで↓こういうコード知ってる?
public static double parseDouble(String s) throws NumberFormatException {
return FloatingDecimal.readJavaFormatString(s).doubleValue();
}
0626デフォルトの名無しさん
2006/03/08(水) 19:37:38実装上の都合が、漏洩しているのが良くないのだろう。
0627デフォルトの名無しさん
2006/03/08(水) 19:41:190628デフォルトの名無しさん
2006/03/08(水) 21:05:43日本語でおk
0629デフォルトの名無しさん
2006/03/08(水) 22:28:16Eclipseスレにまで同じ質問しただろ。
コピペすんな馬鹿
0630デフォルトの名無しさん
2006/03/08(水) 22:29:18え、1年のときからJavaを教わることができる東大は馬鹿なのか?
うちは三流大で未だにCでやってる
0631デフォルトの名無しさん
2006/03/08(水) 22:31:27Javaをはじめようと思ってます。
Cはある程度できるけど、Web系のシステムは全然やったことありません。
どの本からはじめたらいいでしょうか。あるいは勉強法など。
※Sunのオンラインチュートリアルを途中まで進めましたが、
英語なのでやはり時間がかかってしまい。
0632デフォルトの名無しさん
2006/03/08(水) 22:38:15いいじゃないか、C。
Cでスタックとヒープのメモリ管理の仕方を覚えておくと、
JavaやC#に移行したときに原理が解っていいぞ。
0633デフォルトの名無しさん
2006/03/09(木) 01:59:40クラス名の先頭は大文字にしろや!!!
0634デフォルトの名無しさん
2006/03/09(木) 02:14:18Cをやることは大いに構わないと言うか
お勧めするが、それしかやらないのは非常にいたい。
オブジェクト指向一つ理解できないのが情報工学科を
卒業するなんて恥ずかしい。
0635デフォルトの名無しさん
2006/03/09(木) 02:17:020636デフォルトの名無しさん
2006/03/09(木) 10:06:51SQLを発行して、コネクションをクローズした場合、発行したSQLはコミットされますか?
--
Connection con = コネクション取得処理
con.setAutoCommit(false);
//con に対してINSERTなどのSQL発行
con.close();
0637デフォルトの名無しさん
2006/03/09(木) 10:28:090638636
2006/03/09(木) 11:08:16質問しといてアレなんですが、実際に確かめてみたらコミットされるようでした。
(Oracle10g)
下記によると、DBによって異なるが必ずコミットかロールバックされる様ですね。
http://akimoto-jp.com/java/Database/Jdbc-api/Connection.html
0639デフォルトの名無しさん
2006/03/09(木) 11:18:10俺もされないと思ってた。
参考になった。サンクス。
0640デフォルトの名無しさん
2006/03/09(木) 11:20:150641デフォルトの名無しさん
2006/03/09(木) 11:21:240642636
2006/03/09(木) 11:37:54ところで、データベースアクセスエラー時の動作検証などみなさんどうやって行ってますか?
僕の場合、SQL発行してるところでLANケーブル抜いてみる
->ただし、この場合コネクションオブジェクトごと壊れるみたいで、クローズもロールバックもきかない
ソースコード中にエラーが起こるようなコードを書く
->書き換えたコードを元に戻さないと大変なことになる
やってて、どうもスマートじゃないなぁと思う今日この頃です。
0643デフォルトの名無しさん
2006/03/09(木) 11:48:54スゴスwwwwwwww
0644デフォルトの名無しさん
2006/03/09(木) 12:14:15うちのテストも似たようなものです。スマートじゃなくてもいいんじゃない?
直接関連する部分は広くない(例外あげりゃいい)し、そういうところは使いまわしてるし。
0645デフォルトの名無しさん
2006/03/09(木) 12:39:02出来なきゃちょっと辛いでしょ。大体いつも設定ファイルの記述でデータソースと
JDBC ドライバ直呼びと選択できるよう設計するし。
0646637
2006/03/09(木) 13:04:560647デフォルトの名無しさん
2006/03/09(木) 15:33:35例外処理を書かなければコンパイルを通らない場合と、例額処理を書かなくても
コンパイルを通る場合があるようですが、これは何がちがうんでしょうか?
public class TryTest
{
public static void main(String[] args)
{
ExThrowSQL();//これは例外を書かないといけないが
ExThrowOutBounds();//こっちは例外を書かなくてもコンパイルできる
}
public static void ExThrowSQL() throws SQLException
{
;
}
public static void ExThrowOutBounds() throws ArrayIndexOutOfBoundsException
{
;
}
}
0648647
2006/03/09(木) 15:34:38あるthrows句もつメソッド⇒あるthriows句をもつメソッド
例額処理⇒例外処理
です
0649デフォルトの名無しさん
2006/03/09(木) 15:40:02( ´・ω・`)?
0650デフォルトの名無しさん
2006/03/09(木) 15:43:57http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/RuntimeException.html
0651デフォルトの名無しさん
2006/03/09(木) 15:48:100652デフォルトの名無しさん
2006/03/09(木) 15:50:51ありがとうございました。
0653デフォルトの名無しさん
2006/03/09(木) 15:53:51JAVAの特徴の一つとして、よくマルチプラットフォームがあげられますが
それだった,NetmowrsoujaNpaidesukak fwfwqうえwwwwwwwwwd
0654デフォルトの名無しさん
2006/03/09(木) 15:55:580655デフォルトの名無しさん
2006/03/09(木) 15:58:30ここは質問Wofesuresfzyanaidenasdうえeeawwwwwwwww
0656名無し募集中。。。
2006/03/09(木) 16:02:320657653,655
2006/03/09(木) 16:08:25正直すまんかった。
今では反seiSiterwurwreうえwaawwweefr
0658デフォルトの名無しさん
2006/03/09(木) 16:11:390659デフォルトの名無しさん
2006/03/09(木) 16:50:070660デフォルトの名無しさん
2006/03/09(木) 22:07:20int number = 2;
do{
boolean prime = true;
for(int i = 2; i < number / 2 + 1; i++){
if((number % i) == 0) prime = false;
}
if(prime == true){
System.out.print(number + " ");
++count;
}
++number;
}while (count < 10);
System.out.println("");
素数を書き出すプログラムなんですが、これの
for(int i = 2; i < number / 2 + 1; i++)
この部分で何をやってるのかよく分からないのですが…
0661デフォルトの名無しさん
2006/03/09(木) 22:16:300662デフォルトの名無しさん
2006/03/09(木) 23:16:090663デフォルトの名無しさん
2006/03/09(木) 23:18:430664デフォルトの名無しさん
2006/03/10(金) 00:25:17サンプルってどこかにないでしょうか?
0665デフォルトの名無しさん
2006/03/10(金) 00:48:07何からクライアントにダウンロードするのか
話はそれからだ
0666デフォルトの名無しさん
2006/03/10(金) 00:56:52サーバ側でファイル作ったらFileOutputStreamで保存しておいて、クライアントの要求によって
それをstreamに書き出せばいい。
クライアントってぐらいだから、多分ネットワーク経由でデータを流したいんだろうけど
それはsocketからoutputStreamを読めばいいだけの事。 別に特別な事はない。
I/O関係とネットワーク関係のサンプル見れば解る。
0667デフォルトの名無しさん
2006/03/10(金) 03:29:49float型の扱いに困っています。VC++で出力されたfloatの値は
4バイトで出力されますが、Javaでは8バイトで読み込まないと
いけないのですが、どう対処すればよいでしょうか?
0668デフォルトの名無しさん
2006/03/10(金) 03:45:53どうやって読み込んでるの?
0669デフォルトの名無しさん
2006/03/10(金) 03:54:150670デフォルトの名無しさん
2006/03/10(金) 04:00:07次にJava に対しても同じようにチェックし、
両者の違いがないこと、または、違いを吸収できるような仕掛けを考える。
大抵は、IEEEのなんたらに「準拠」しているっぽい?が、
あまり、「だいたい上手く動く」というアプリケーションは使いたくない。
0671デフォルトの名無しさん
2006/03/10(金) 04:20:05VC++限定でいいならfloatはJavaと同じIEEE 数値規格っぽいな。
>public static float Float#intBitsToFloat(int)
これってint読んでるんだから4byteじゃね?
0672デフォルトの名無しさん
2006/03/10(金) 10:29:44http://www.nurs.or.jp/~sug/soft/java/java32.htm
文中の…
アクセスを禁止したい基底クラスのメソッドは、「委譲」されたクラスで定義しなければ、呼び出されようがないのである。
という意味がさっぱりわからないのですが、教えていただけないでしょうか。
0673デフォルトの名無しさん
2006/03/10(金) 10:40:240674デフォルトの名無しさん
2006/03/10(金) 10:41:36具体的に付けたいプロパティは、swing.defaultlaf。
欲を言えば、JNI_CreateJavaVMで起動されるJVM全て、
無理なら、java.exe、javaw.exeのような、プラットフォーム毎のjvm起動コマンドで
作られるJVM。
環境変数とかで、なんとかなりそうなんですが。
0675672
2006/03/10(金) 10:59:18委譲における
「基底クラス」って何なのかがわからないんです。
↓の場合Aが基底クラス?それともB?
class A{
B b = new B();
A.meth1()
{
b.meth1()
}
}
Class B{
public int meth1(){
......
}
}
0676デフォルトの名無しさん
2006/03/10(金) 11:13:10基底クラスの意味を間違えてる。
クラス:Tabemono
↓
Tabemonoを継承して クラス:Kudamonoを作ったとする
↓
Kudamonoを継承して クラス:Apple とクラス:Orangeを作ったとする
この場合、Tabemonoが基底クラスとなるわけだ。
0677デフォルトの名無しさん
2006/03/10(金) 13:40:48フォールスルーを使わずに移ることはできないのでしょうか?
0678デフォルトの名無しさん
2006/03/10(金) 14:26:45無理。 C# だと goto できるけど。
0679デフォルトの名無しさん
2006/03/10(金) 15:48:230680デフォルトの名無しさん
2006/03/10(金) 15:54:570681デフォルトの名無しさん
2006/03/10(金) 16:01:220682デフォルトの名無しさん
2006/03/10(金) 16:11:060683デフォルトの名無しさん
2006/03/10(金) 17:58:42って釣られた?
0684デフォルトの名無しさん
2006/03/10(金) 18:12:39律儀に java.beans.context 使ってるフレームワークとか見たことないんだが。
0685デフォルトの名無しさん
2006/03/10(金) 18:14:48ブラウザみたいに非同期に表示するのは
どうすればいいっすか?
下記みたいな昔ながらの方法だとHTTPのURLしか使えないし。
好きな入力ストリームを使いたいっす。(ZipStreamで展開しながらとかいろいろ)
//これだとHTTPしかできないから駄目
public class JImgPanel extends JPanel {
private Image image;
public void setImageURL(String url) {
try {
image = getToolkit().getImage(new URL(url));
} catch (MalformedURLException e) {
e.printStackTrace();
}
repaint();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
if (image != null) {
g.drawImage(image, 0, 0, this);
}
}
}
0686685
2006/03/10(金) 18:16:11ためしにこんなふうにしてみたけど
やっぱり非同期にはなってないっぽいです。
InputStream is = ほげほげ;
Iterator readers = ImageIO.getImageReadersBySuffix("jpg");
if (readers.hasNext()) {
ImageReader reader = (ImageReader)readers.next();
ImageInputStream stream = ImageIO.createImageInputStream(is);
reader.setInput(stream);
image = reader.read(0);
reader.dispose();
}else{
image = null;
}
repaint();
0687デフォルトの名無しさん
2006/03/10(金) 18:18:11Toolkit.createImage() には色々な引数を取るやつが…
0688デフォルトの名無しさん
2006/03/10(金) 18:19:570689デフォルトの名無しさん
2006/03/10(金) 18:20:25独自プロトコルでやりたいなら非同期ロードを自作するより URLStreamHanderFactory を
自作するとかの方が良いかも。どっちにしても大変だけど。
0690685
2006/03/10(金) 21:41:33ストリームを引数にするやつはなかったです。
唯一使えそうなのが
public abstract Image createImage(ImageProducer producer)
だけど、イメージプロデューサーを1から自作するのはツライっす
ていうか俺はJPG展開処理なんか書けナイッス。
>>688
スレッドで解決するならいくらでもスレッドnew する用意はあるんですけど
問題は image = reader.read(0); が
画像読みきるまで処理が帰ってこないっぽいんですよ。
>>689
独自プロトコルっていうかj
本当はakartaのHttpClientを使ってみたいだけなんですけどね。
こっちのほうがkeepAliveとか、プロキシとかいろいろできるんで、、
独自プロトコルとなるとHttpClientを自分で
自作するのと変わらないわけで、、、
ImageIOってそもそも
従来のImageProducer ImageConsumer 的な
非同期はサポートしてないんでしょうか。
0691デフォルトの名無しさん
2006/03/10(金) 21:44:13>アクセスを禁止したい基底クラスのメソッドは、
>「委譲」されたクラスで定義しなければ、呼び出されようがないのである。
基底クラスのメソッドでアクセスを禁止したいものがあったとする。
その場合は、継承でなく委譲を使うと良い。
なぜなら、基底クラスのメソッドは、委譲されたクラスで定義されなければ、
委譲されたクラスを経由して基底クラスのメソッドを呼び出すことができようがない。
の超略とエスパーしてみる。
(そもそも委譲されるクラスを、基底クラスってよんだっけ?)
その後、この web ページに
>これは基底クラスのメソッドを整理し、アクセス制限をする有効な手段である。
>これは Facade として知られている。
とか書いてあるが、Facade は
高レベルのインタフェースを用意するのが目的のデザインパターンなので、
騙されないようにw
0692691
2006/03/10(金) 21:51:02クラス A がクラス B へ委譲するとき、
A が「委譲するクラス」
B が「委譲されるクラス」=継承における「基底クラス」
という日本語の使い方が正しいのかな。
>なぜなら、基底クラスのメソッドは、委譲されたクラスで定義されなければ、
>委譲されたクラスを経由して基底クラスのメソッドを呼び出すことができようがない。
(書き直し)
なぜなら、基底クラスのメソッドは、委譲するクラスで定義されなければ、
委譲するクラスを経由して基底クラスのメソッドを呼び出すことができようがない。
0693デフォルトの名無しさん
2006/03/10(金) 21:56:48現在のクラスがどういうパッケージ階層に位置しているのかを、文字列として返してくれる
ような便利なメソッドってありますでしょうか?
0694デフォルトの名無しさん
2006/03/10(金) 22:00:41this.getClass().getName()
0695デフォルトの名無しさん
2006/03/10(金) 22:01:34this.getClass().getName()
0696デフォルトの名無しさん
2006/03/10(金) 22:04:48this.getClass().getName()
0697デフォルトの名無しさん
2006/03/10(金) 22:14:23ありがとうございます!
0698デフォルトの名無しさん
2006/03/10(金) 22:53:39double plussed=0;
for(int i=0;i<=4;i++){
Systen.out.println(i+"回目"+plussed);
plussed+=plus;
}
結果
0回目0.0
1回目0.1
2回目0.2
3回目0.3000000000000004
4回目0.4
これは一体どういうことなんですか?
三百回目になると更に既に30.00(中略)023てな具合で
しかも再現性100%
この誤差はどうにかできますか?
まぁ実際使うときは100倍とかして小数点以下を切り捨てればいいのでしょうが。
0699デフォルトの名無しさん
2006/03/10(金) 23:08:320700デフォルトの名無しさん
2006/03/10(金) 23:12:090701デフォルトの名無しさん
2006/03/10(金) 23:15:03〜〜〜
Socket socket;
PrintWriter out=new PrintWriter(socket.getOutputStream());
BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
〜〜
}
でサーバー側にout.println();out.flush();で送ったバイト列をクライアント側のin.realLine()で読み込んでしまうんだけどなんで?
0702デフォルトの名無しさん
2006/03/10(金) 23:16:360703デフォルトの名無しさん
2006/03/10(金) 23:26:130704デフォルトの名無しさん
2006/03/10(金) 23:28:05ttp://moe-moe.dip.jp/cgi-bin/img-box/img20060310231125.jpg
0705デフォルトの名無しさん
2006/03/10(金) 23:41:46ありがとうございます
サーバー側のプログラムを見直してみます
0706デフォルトの名無しさん
2006/03/11(土) 02:50:38処理が帰って来ない部分をnewしたスレッドにやらせて、親スレッドはimageがnullのまま進めればいいじゃないか。
つかそれ以外どうやってスレッド使う気なんだ?
0707685
2006/03/11(土) 03:51:22いや、自分がやりたいのは
ブラウザみたいに
ファイルを一部読み込んだところから
ずりずりと先に画像を出したいんです。
706にすると
読み込み開始したあとタイムラグがあって
突然全体が表示されるように見えると思います。
0708デフォルトの名無しさん
2006/03/11(土) 04:05:55インポートする場合
import パッケージ名.ファイル名
でインポートできるのですが、
デフォルトパッケージにあるクラスを、
そのパッケージ(ディレクトリ)の下にあるパッケージで使うには
どうやってimportしたらいいんですか?
import クラス名;
だと"."がありませんというエラーが出てしまうのですが。
0709デフォルトの名無しさん
2006/03/11(土) 04:13:260710デフォルトの名無しさん
2006/03/11(土) 04:17:38回答ありがとうございます。
ということは、プログラムを動かすためにはデフォルトパッケージのファイルを、
下位のパッケージに移さなければならないということでしょうか?
0711デフォルトの名無しさん
2006/03/11(土) 04:55:15全てのクラスにパッケージ名をつけるべきだ、とは言わないが、
複数のクラスを作成し、関連させてプログラムを作るならば、
なんらかのパッケージ名をつけるべきだと思う。
# 結果的に、一つのパッケージで足りるとしても。
0712デフォルトの名無しさん
2006/03/11(土) 05:15:00・自力で ImageProducer または URLStreamHandler を実装する
・普通に URL から Image を構築する
・見栄えの問題なので諦める
空きなの選べ
0713デフォルトの名無しさん
2006/03/11(土) 12:50:17ttp://www.java.com/ja/download/manual.jsp
の上から二つ目(Windows (オフラインインストール)
(ファイルサイズ: 16.00 MB)
途中でタイムアウト、とういか全く展開しないのですが、みなさん開けます?
私のパソコンの設定が悪いのかしら?
0714デフォルトの名無しさん
2006/03/11(土) 13:49:20今ダウソしてみた。正常にダウソできた。
よっておまいの環境がおかしい
0715デフォルトの名無しさん
2006/03/11(土) 15:17:18とりあえず、説明しやすくする為に適当な以下のようなクラスを作りました。
public class Hensu {
Hensu(String title) {
System.out.println(title);
}
}
以上が説明の為のクラスです。
で、メインメソッドで以上のクラスを使うとします。
下のように使うと
Hensu h = new Hensu("変数の" + 0);
Hensu h = new Hensu("変数の" + 1);
Hensu h = new Hensu("変数の" + 2);
ローカル変数の重複でエラーが出ます。
Hensu h を1回だけにすればエラーが出なくなるのはわかりますが、
次に
for(int i = 0; i < 3; i++) {
Hensu h = new Hensu("変数の" + i);
}
このようにfor文でインスタンス3つ作って実行させても問題ありませんでした。
Hensu h を同じように3回宣言しているのにfor文を使った場合は
問題なく実行できるのが良く分かりません。なんか理由がありますか?
0716デフォルトの名無しさん
2006/03/11(土) 15:39:19要するに「スコープ内」で変数が重複するかどうか。
{
Hensu h = new Hensu("変数の" + i);
}
{
Hensu h = new Hensu("変数の" + i);
}
{
Hensu h = new Hensu("変数の" + i);
}
0717デフォルトの名無しさん
2006/03/11(土) 15:39:23変数を考える時にはブロックの概念レベルで考えると良い。
ブロックとは波カッコ { } で囲まれた部分、一つひとつのことである。
開き波カッコごとに変数を格納するスタックが用意されて、
閉じ波カッコを通るとそのスタックが破棄される、と考えると良い。
一つのスタックでは同じ変数は二つ以上存在できないし、
違うスタックなら同じ名前の変数でも問題ない。
ただし、ブロックの影響範囲は入れ子の中にも及ぶので、
外のブロックで宣言した変数名は、中のブロックで宣言出来ない。
0718デフォルトの名無しさん
2006/03/11(土) 15:45:40ご教授ありがとうございます。よくわかりました。
0719デフォルトの名無しさん
2006/03/11(土) 19:47:050720デフォルトの名無しさん
2006/03/11(土) 20:31:14pingは通るんだが。
まだFirefoxのステータスバーに wikiroom.comを待っていますと表示される。
まだ繋がらない
0721デフォルトの名無しさん
2006/03/11(土) 21:09:280722デフォルトの名無しさん
2006/03/11(土) 22:39:400723デフォルトの名無しさん
2006/03/12(日) 00:31:260724デフォルトの名無しさん
2006/03/12(日) 00:55:090725デフォルトの名無しさん
2006/03/12(日) 01:06:270726デフォルトの名無しさん
2006/03/12(日) 01:19:56ワイルドカードを用いて全ファイルを指定する場合の記述
ってわかります?
0727デフォルトの名無しさん
2006/03/12(日) 01:28:170728デフォルトの名無しさん
2006/03/12(日) 01:39:03教えてくれませんか?
0729デフォルトの名無しさん
2006/03/12(日) 01:40:100730デフォルトの名無しさん
2006/03/12(日) 01:41:140731デフォルトの名無しさん
2006/03/12(日) 01:48:21これって基礎ですか?
0732デフォルトの名無しさん
2006/03/12(日) 01:49:060733デフォルトの名無しさん
2006/03/12(日) 01:53:350734デフォルトの名無しさん
2006/03/12(日) 02:12:120735デフォルトの名無しさん
2006/03/12(日) 02:18:531Secで問題ないです。コマンド プロンプトでお願いします。
0736デフォルトの名無しさん
2006/03/12(日) 02:26:330737デフォルトの名無しさん
2006/03/12(日) 02:26:57そのComponentにアクセスできればいいのでは?
マクロの類ならRobotがあるけど
0738デフォルトの名無しさん
2006/03/12(日) 02:30:170739デフォルトの名無しさん
2006/03/12(日) 05:43:05このプログラム実行するためにはどうしたらいいのでしょうか。
どうやってもエラーが消えないのですが。
たぶんデフォルトのパッケージをインポートしてるとか、そういう
問題だと思うのですが。
ttp://www.cs.technion.ac.il/Labs/Lccn/projects/spring97/project9/
0740デフォルトの名無しさん
2006/03/12(日) 10:56:10それに JDK1.0とか 1.1の時代の遺物じゃないのか?
0741デフォルトの名無しさん
2006/03/12(日) 14:41:50自分で作ったパッケージを利用する場合、
クラスパスはどこで設定すればよいのでしょうか?
0742デフォルトの名無しさん
2006/03/12(日) 15:19:49お前さんが作ったパッケージの設置場所は、お前さんにしか分からない。
0743デフォルトの名無しさん
2006/03/12(日) 15:51:48を行いたいと考えています。(上記の3種全てを更新対象とする。)
何か良い方法はないでしょうか?
自分で考えて(試して)断念した方法です。
(1)Setup.exeを作っておき、実行中のプログラムからネットワーク
経由でそれを取得し、Process#execでSetup.exeを実行して
プログラムを書き換える。
これは、アプリケーションを上書きするために、親プロセスを終了
させなくてはなりませんが、終了させるとSetupを実行している
子プロセスの処理が止まってしまいます。そのため、断念しました。
(2)Java Web Startを使用する。
以下の理由で無理があると判断しました。
・ディスクに保存してある設定ファイルを読み込んで処理されるアプリ
ケーションであること。
・配布する対象は基本的にjarファイルに収めておかなければならないが、
そうすると大幅なプログラム改造が必要となるから。
0744デフォルトの名無しさん
2006/03/12(日) 15:54:00細かくjar化してUpdateする分をだけ書き換えればいいじゃん
0745デフォルトの名無しさん
2006/03/12(日) 16:03:43やさしいJavaの方がいいですか?
やさしいJavaの本を持っているのですが、ビジュアルラーニングの方は、もっていません。
0746デフォルトの名無しさん
2006/03/12(日) 16:35:43public static void main(String[] args) {
int i = 5;
int j[] = {1,2,3,4};
StringBuffer sb = new StringBuffer("abcde");
display(i,j,sb);
a(i,j,sb);
display(i,j,sb);
}
static void a(int i, int j[], StringBuffer sb){
i = 7;
j[0] = 11;
sb.append("fghij");
}
static void display(int i, int j[], StringBuffer sb){
System.out.println(i);
for(int index = 0; index < j.length; index++){
System.out.print(j[index] + " ");
}
System.out.println("");
System.out.println(sb);
}
}
0747746
2006/03/12(日) 16:36:21public static void main(String[] args) {
int x[] = {1,2,3,4,5};
display(x);
change(x);
display(x);
}
public static void change(int x[]){
int y[] = {5,6,7,8,9};
x = y;
}
public static void display(int x[]){
for(int index = 0; index < x.length; index++){
System.out.print(x[index] + " ");
}
System.out.println("");
}
}
0748746
2006/03/12(日) 16:37:13どこがどう違うんですか?
publicがついてるかついてないかしか分からないんですが…これによって変わるんですか?
0749デフォルトの名無しさん
2006/03/12(日) 16:54:46String型で保持している文字列の内容をコピーするメソッドとかありますか?
CのStrcpy()関数のような。
String s1, s2;
s1 = s2;
はアドレス代入ですよね?
あと、どのようなメソッドがあるか載っているHPとかありますか?よろしくお願いします。
0750デフォルトの名無しさん
2006/03/12(日) 17:19:08s2 = new String(s1);で違うインスタンスとすることはできます。
が、Stringは不変インスタンスなので、コピーを作る必要性に乏しいかと思われます。
0751デフォルトの名無しさん
2006/03/12(日) 17:23:052番目のプログラムについて
> public static void change(int x[]){
> int y[] = {5,6,7,8,9};
> x = y;
> }
これはyの内容をxにコピーしたいという意図があるのかと思われますが
コピーされません。ローカル変数xの参照がyと同じになった、というだけです。
コピーしたい場合は1番目のプログラムで j[0] = 7 とやっているように
要素ごとに代入する必要があります。
例えばこの場合 x[0] = y[0] 〜 x[4] = y[4] のように要素ごとに代入するか
System.arraycopyなどを使ってコピーします
>>749
s1 = s2の代入はCでいうポインタの代入ですので(s1 == s2)の結果はtrueになります
s1 = new String(s2) みたいにすればs1は一応違うオブジェクトになりますが
そもそもStringは不変ですのでコピーするということはあまり意識しなくてもいいかとおもいます
0754デフォルトの名無しさん
2006/03/12(日) 17:28:38protected以上の可視性を持つクラス、メンバについてのドキュメントを作成したい場合に
隠蔽された親クラス(パッケージプライベートとか)で定義された
public finalメソッドに記述されたjavadocの内容を
publicサブクラスのjavadocに引用する方法がわかりません。
finalでない場合はサブクラスでメソッドをオーバーライドしjavadocを書かなければ
親のjavadocの内容が引用されますが、finalメソッドについてもそれと同じように引用する方法はありませんか?
よろしくお願いします。
0755デフォルトの名無しさん
2006/03/12(日) 17:51:20http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/win32/javadoc.html#{@inheritDoc}
0756デフォルトの名無しさん
2006/03/12(日) 19:04:53自分でコピーを作成する用のメソッドを定義しないと駄目ですか?
0757754
2006/03/12(日) 19:33:30回答ありがとうございます。
@inheritDocですが、子クラスで継承されたメソッドのjavadoc内で記述すれば
親のメソッドのjavadocの内容を埋め込める、というものなのでしょうか?
親のメソッドはfinalで継承不可なので、そもそも子で当該メソッドのjavadoc自体書くことが
できないため、このタグを子クラスで使う方法がわかりませんでした・・・
何か間違っているのでしょうか?
0758デフォルトの名無しさん
2006/03/12(日) 19:55:59clone();
0759デフォルトの名無しさん
2006/03/12(日) 20:40:15それは javadoc コメントを書く場所が適切ではない、というのが原因だと思うぞ……。
或いは、親クラスの API を見ればわかることを子クラスに書こうとしてるのが間違っている。
0760デフォルトの名無しさん
2006/03/12(日) 20:53:24JTextAreaに変えました。
TextAreaだと、自動縦スクロールしてappendした文字列が見えるのですが、
JTextAreaだと、スクロールしません。JTextAreaで、自動スクロールもしくは
appendした際に明示的に下スクロールさせるにはどうしたらいいのでしょうか?
0761760
2006/03/12(日) 21:04:13よろしくお願いいたします。
0762デフォルトの名無しさん
2006/03/12(日) 21:05:25はい、一応objectクラスのcloneメソッドの存在は調べていたのですが使い方がわかりません。
・・・なのですが今までずっと調べて今使い方がわかりました。結構面倒なんですね(´・ω・`)
0763デフォルトの名無しさん
2006/03/12(日) 21:47:12int x[] = {1,2};
copy(x);
for(int i=0; i<x.length;++i)
{
System.out.println(x[i]);
}
}
public static copy(int x[])
{
int y[]={3,4};
x = y.clone();
}
これじゃぁ、コピー渡しても、表示されるのは1、2なんですが
どうやってコピーすれば・・・。
0764デフォルトの名無しさん
2006/03/12(日) 21:48:14ん?
Integer[] I = new Integer[4];
I[0] = new Integer(50);
I[1] = new Integer(1);
I[2] = new Integer(1);
I[3] = new Integer(1);
Integer [] I2 = (Integer[])I.clone();
System.out.println(I2[0].intValue());
どの辺が面倒?
0765デフォルトの名無しさん
2006/03/12(日) 21:49:350766764
2006/03/12(日) 22:00:31これならどう?
public static void main(String args[]){
int x[] = {1,2};
copy(x);
for(int i=0; i<x.length;++i)
{
System.out.println(x[i]);
}
}
public static void copy(int x[])
{
int y[]={3,4};
System.arraycopy( y, 0, x, 0, y.length);
}
0767754
2006/03/12(日) 22:00:47よくありそうな話だとおもったんですけど・・・
公開される子クラス群を実質的な基本抽象概念としたい場合、子クラス群で共通化される
ユーティリティメソッドだけを持つ親クラスなんぞはクラス階層上不要なので・・・
そこで、隠蔽された親のpublic finalユーティリティメソッド分を
あくまで子クラスの公開メソッドとしてjavadocのMethod Detailに反映されるようにしたかったのです。
javadocでは無理なのでしょうか・・・
0768デフォルトの名無しさん
2006/03/12(日) 22:38:30標準のjavadocではできませんが、それはあなたの発想が特殊なためです。
ユーティリティメソッドのjavadocを各クラスにコピーするなんて無駄、1カ所にまとめろ、
リンクが張られているから実質的に参照できる、というのが、javadoc設計者の考え方で
あなた以外はこの方法でやっています。
どうしても妥協できなければ自分でjavadocをカスタマイズすればできるでしょう。
ところで、継承の理由が、final宣言されたユーティリティメソッドの提供にのみあるのなら、
それは継承の必要はないですね。設計を見直した方がいいと思います。
0769デフォルトの名無しさん
2006/03/12(日) 22:57:38C言語を知っていればポインタだだと思え、の一言で済みそうな話ではあるな・・・。
0770デフォルトの名無しさん
2006/03/12(日) 23:01:430771754
2006/03/12(日) 23:18:33まあユーティリティメソッド云々は状況を説明するための例え話なんで聞き流してください。
なんにせよ出来ないというのがと分かってすっきりしました。
設計はまだまだ練っている段階ですのでこれからもっと見直すべきだと思います。
ありがとうございました。
0772デフォルトの名無しさん
2006/03/12(日) 23:29:02例外出してもロールバックしてくれん
0773デフォルトの名無しさん
2006/03/12(日) 23:56:08Cなら解るんだが、javaでもメソッドの中で、x=y;なら
スコープ抜けるから参照先が無くなるっていうのは
理解できる。しかしx=y;にしたとき、main関数の中で
表示すると、1、2が表示される。これは動作が不定
なだけなのかな?
後、メソッドの中でclone()ってやってるのにコピーされて
いないから解らない。ならclone()ってそもそも何するのよ?
って感じ、わけわからん('A`)。
0774デフォルトの名無しさん
2006/03/13(月) 00:12:11コピーと代入の違いを知れ。
0775デフォルトの名無しさん
2006/03/13(月) 00:13:12void copy(int[] x){
int y[] = {3, 4};
x = malloc(2 * sizeof(int));
memcopy(y, x, 2 * sizeof(int));
return;
}
おまいさんがやりたいのはこれだろ?
public static void copy(int[] x){
int[] y = {3, 4};
System.arraycopy(y, 0, x, 0, y.length);
return;
}
0776デフォルトの名無しさん
2006/03/13(月) 00:13:470777デフォルトの名無しさん
2006/03/13(月) 00:17:56本当にC解ってる?Cでも同じ振る舞いになるよ?
メソッドcopy()の中で
x = y;
としたとしても、変更されるのはメソッドcopy()の引数xの参照であって、
メソッドmain()のローカル変数xの参照じゃない。
0778デフォルトの名無しさん
2006/03/13(月) 00:24:25ただそれだけだ
0779デフォルトの名無しさん
2006/03/13(月) 00:25:25Javaは参照渡しですら値渡しだ
逆をいうとJavaに参照渡しなど存在しない
参照型を値渡ししていると覚えてください
0780デフォルトの名無しさん
2006/03/13(月) 00:26:54void copy(int x[])
{
int y[] = {3, 4};
x = y;
}
そっくりなわけだが、これじゃなんも変わらんね。
変えたきゃ x = y; じゃなくて memcpy(x, y, 2 * sizeof(int)); とかだね。
0781デフォルトの名無しさん
2006/03/13(月) 00:28:210782デフォルトの名無しさん
2006/03/13(月) 00:28:41そうそう。
実はC/C++でのポインタだと考えると分かり易かったりする。
0783デフォルトの名無しさん
2006/03/13(月) 00:33:22だから変数はオブジェクトを入れる器(もしくはオブジェクトの名前)だと思えばいい
参照だの値だのはオブジェクト指向の本質ではない
0784デフォルトの名無しさん
2006/03/13(月) 00:34:17Delphiだと、varパラメータとかあるけど
0785デフォルトの名無しさん
2006/03/13(月) 00:35:540786デフォルトの名無しさん
2006/03/13(月) 00:39:08そう。その通り。
0787デフォルトの名無しさん
2006/03/13(月) 00:41:20x=y.clone();ってしてるからコピーを代入してるんじゃないの?
>>775
受け取ったアドレスの領域確保して、値をコピーしてるんだから
どっかでfreeしない限り保障されてる気がする。
俺マジでCも解ってなさそうだ('A`)。
ところでmemcopyって、後ろから前へコピーじゃね?
arraycopyとforループで要素を一個ずつ代入していくのが等価と考えていいんですよね。
>>776
ソースコピペしてないからミスあるかもしれんが、JDK1.5+eclipseでコンパイルできてる。
>>777
C解ってないかもしれん。mainでxのアドレスが0x01としたら、メソッドcopy()へ渡したら
copy()内のxのアドレスも0x01じゃないの?そしてそのアドレスをyのアドレスに書き換える?
む、こんがらがってきた。
0788デフォルトの名無しさん
2006/03/13(月) 00:41:45scanf("%s %d",name, &value);
0789デフォルトの名無しさん
2006/03/13(月) 00:42:43検索で引っかかってくるサイトは全部嘘か
0790デフォルトの名無しさん
2006/03/13(月) 00:44:17int x, y, z;
} hoge;
hoge a0, b0, *a1, *a2;
で a0 = b0; が値渡し、a1 = a2; が参照渡し。
参照の値渡しって何?
0791デフォルトの名無しさん
2006/03/13(月) 00:44:21Cを知らずにCを語るな
Javaを知らずにJavaを語るな
0792デフォルトの名無しさん
2006/03/13(月) 00:45:47x = y.clone();
これって通るか?
0793デフォルトの名無しさん
2006/03/13(月) 00:46:33それをcopy()に渡すと
0x01という値が、copy()の変数x(アドレス0x0a)に渡される
0794デフォルトの名無しさん
2006/03/13(月) 00:47:26仮引数の側に&や*に相当するものはJavaにはない
0795デフォルトの名無しさん
2006/03/13(月) 00:49:17ああ、無いな。でそれが何の回答?
0796デフォルトの名無しさん
2006/03/13(月) 00:50:54hoge != &hoge[0]
0797デフォルトの名無しさん
2006/03/13(月) 00:54:35キャスト無いと通らんと思われ。
0798デフォルトの名無しさん
2006/03/13(月) 00:55:42なんでいきなり配列先頭のアドレス? ごめん何が言いたいのか意味不明。
0799デフォルトの名無しさん
2006/03/13(月) 00:56:20>>797
キャストしてないけど通るよ。
>>793
main(){
int x[]={1,2};
copy(&x);
}
copy(int *x){
int y[]={3,4};
*x = y;
}
これでいいのかな?Cの質問になってもうしわけない。
0800デフォルトの名無しさん
2006/03/13(月) 00:57:15pass-by-value で参照を渡す事。
ちなみに、a1=a2 は普通は「参照渡し(= pass-by-reference)」とは言わない。
0801デフォルトの名無しさん
2006/03/13(月) 00:57:16Cなら==ってこった
0802デフォルトの名無しさん
2006/03/13(月) 00:59:310803デフォルトの名無しさん
2006/03/13(月) 01:00:07何ですと?!
それって2.0だと非検査例外が起きてもコミットしちゃうってこと?
Spring使いじゃないんだが気になったので。質問で返しちゃてごめん。
0804デフォルトの名無しさん
2006/03/13(月) 01:01:48JLS3rdからはキャスト無しで通るらしい。
http://java.sun.com/docs/books/jls/third_edition/html/arrays.html#10.7
0805デフォルトの名無しさん
2006/03/13(月) 01:02:54それは単に英語で良い直しただけやん。>>790 の例で何が参照渡しで何が参照の値渡しか
ちょっとやっていただけないでしょうか?
>>801
ANSI でポインタどうしの == は保障されてなかったはずだが。てか何でポインタ/参照の比較の
話になってんの?
0806デフォルトの名無しさん
2006/03/13(月) 01:06:02java初めて三ヶ月だけど、
class Test{
public static void main(String args[]){
String s = "hogehoge";
Test test = new Test();
test.hoge(s);
System.out.println(s);
}
void hoge(String str){
str=null;
}
}
こう?
0807デフォルトの名無しさん
2006/03/13(月) 01:06:13一生C厨に馬鹿にされてろw
0808デフォルトの名無しさん
2006/03/13(月) 01:08:18こう? といわれても何が? としか返せないんだが…
0809デフォルトの名無しさん
2006/03/13(月) 01:11:47違和感を覚えない人はオブジェクト指向をもう一度学習
し直すことをおすすめする。
(→�Aの出力が"次の文字列"となることを期待する人。)
どの言語からJavaに移行してきたかなんて関係ない。
オブジェクト指向として変であることを感じましょう。
風を感じるよりは現実的。
これを理解した上で、C++ならできる、Javaならできない
ということを知ればいい。
Class A {
String foo = "最初の文字列";
getFoo() {return foo;}
setFoo(String hoge) {foo = hoge;}
}
Class B {
execute() {
A anObject = new A();・・・・・・・・・・・・・�@
bar(anObject.getFoo());
System.out.print(anObject.getFoo());・・�A
}
bar(String foo) {
foo = "次の文字列";・・・・・・・・・・・・・・・�B
}
}
0810デフォルトの名無しさん
2006/03/13(月) 01:12:25正>下記例の�Bの処理で、�@の状態を変えようとすることに
0811デフォルトの名無しさん
2006/03/13(月) 01:14:310812デフォルトの名無しさん
2006/03/13(月) 01:15:09C言語なら
int array[] = {1,2};
func(&array); //これが値渡し。「参照の値渡し」的に言うなら「ポインタの値渡し」
C++には参照渡しあるけどね。
0813デフォルトの名無しさん
2006/03/13(月) 01:15:120814デフォルトの名無しさん
2006/03/13(月) 01:16:580815デフォルトの名無しさん
2006/03/13(月) 01:17:11たまに「ポインタを渡す=参照渡し」とかアホな事を書いてるC言語の入門本見て
参照渡しと値渡しの区別が付かなくなってる可哀そうな人が来るんですよ。
0816デフォルトの名無しさん
2006/03/13(月) 01:18:05基礎を知らずにCommonsを語る奴とそうでない奴との違いだと分かった。
0817806
2006/03/13(月) 01:20:14ええと、hoge()でstrの指すものをnullにしている。このとき参照渡しならsもnullになるはず。でもならない。
つまり、内部でs=strとやってからhoge()が実行されるってこと。これが「参照の値渡し」。
0818デフォルトの名無しさん
2006/03/13(月) 01:22:01void func(hoge x); → 値渡し
void func(hoge* x); → 値の参照渡し
void func(hoge& x); → 参照渡し
って言ってるの? だったら Java が値の参照渡しだってのは納得。
0819デフォルトの名無しさん
2006/03/13(月) 01:22:03俺の関わったソフトが世の中に流れてると思うと、マジで恐ろしい。
次の職に就けるわけでもないから、辞めるに辞められんしなぁ。
0820806
2006/03/13(月) 01:22:56ちなみに俺はVBA→HSP→Java。VBAにも参照渡しって指定できたような気がする。
Cなんてさっぱり。ポインタって参照のことでしょ?
0821デフォルトの名無しさん
2006/03/13(月) 01:24:04ちなみに中間のは値渡しだから。
一番下は単なる C++の参照渡し。
0822デフォルトの名無しさん
2006/03/13(月) 01:24:12http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLD,GGLD:2003-39,GGLD:ja&q=C%E8%A8%80%E8%AA%9E%E3%80%80%E5%8F%82%E7%85%A7%E6%B8%A1%E3%81%97
こいつら殆ど間違ってるんだな勉強になったよ
・・・ってなんでJavaスレでC言語の勉強してるんだよ俺
0823デフォルトの名無しさん
2006/03/13(月) 01:26:35じゃあ参照渡しって 「参照の参照渡し」 って呼んだほうが良いんじゃね?
ポインタのポインタでしょ。
0824デフォルトの名無しさん
2006/03/13(月) 01:28:10ポインタの値渡しで代用してるってことでしょ
0825デフォルトの名無しさん
2006/03/13(月) 01:29:23ごめん、真ん中の呼び方間違い。参照の値渡しって書くつもりだった。
真ん中のが参照の値渡しってことで良いわけね?
0826デフォルトの名無しさん
2006/03/13(月) 01:29:490827デフォルトの名無しさん
2006/03/13(月) 01:31:43ここ見ててよかったよ。
参照の参照渡しか。
0828デフォルトの名無しさん
2006/03/13(月) 01:32:420829デフォルトの名無しさん
2006/03/13(月) 01:33:17VBA は知らんが、VB は値渡しか参照渡しか指定できたはず。 ByVal とか ByRef とかで。
0830デフォルトの名無しさん
2006/03/13(月) 01:34:33面倒だから放っておこう。
0831デフォルトの名無しさん
2006/03/13(月) 01:34:58OK、分かった。
でもポインタの値渡しと参照渡しを言葉上明確に区別する必要が出てきたのって
C++ で参照型 & が出てきてからでしょ。後から来たのに「実はこっちが本当の
参照型」ってことになったから、昔のままの認識で来てんじゃね?
0832デフォルトの名無しさん
2006/03/13(月) 01:36:59は?C時代から参照元を上書きできますが?
0833デフォルトの名無しさん
2006/03/13(月) 01:37:20n = null;
}
Nanka n = new Nanka();
hoge(n);
このとき、
nへの参照がコピーされて、
渡されるってことか。
nそのものの参照が渡されるわけではなくて。
0834デフォルトの名無しさん
2006/03/13(月) 01:39:05昔から、例えば Fortran とか参照渡しする言語は普通にあったのよ。
C言語しか出来ない人には、C言語に参照渡しがなかったため、参照渡しを理解できなかった人も居た。
彼等の中の一部は「ポインタの値渡し」を「参照渡し」と呼んだ
0835デフォルトの名無しさん
2006/03/13(月) 01:39:10そう、Nankaはhogeなんかに束縛されないのだ
0836デフォルトの名無しさん
2006/03/13(月) 01:39:15正しく使わないと馬鹿に見られる試金石になったとさ。
0837デフォルトの名無しさん
2006/03/13(月) 01:40:00だれが上書きの話なんかしてんの?
0838デフォルトの名無しさん
2006/03/13(月) 01:41:07「参照型」と「参照渡し」は違うから。
0839デフォルトの名無しさん
2006/03/13(月) 01:42:300840デフォルトの名無しさん
2006/03/13(月) 01:44:08若い諸君らは、Bufferを駆使してJavaの常識を一新してくれよ
0841806
2006/03/13(月) 01:49:27ごめん、ポインタがわからん。でも参照の参照渡しじゃないと思う。値の参照渡しもあるから。
悪いけど、いきなり俺言語で説明する。
(1)hoge(int a As値渡し){a=10}//値の値渡し
(2)hoge(int a As参照渡し){a=10}//値の参照渡し。
main{
int foo=1;
hoge(foo);
}
とすると、
(1)を呼び出すとfooは1のまま。aとfooは別の変数。
(2)を呼び出すとfooは10になる。aとfooは同一。
参照渡しってのは、#const a fooってのがメソッド内だけ適用されるようなものだと思う。
わかりにくくてごめんなさい。
>>829
それです。ありがとうございます。
0842デフォルトの名無しさん
2006/03/13(月) 01:49:56ああ、C/C++/Java と来た今の俺がまさにそれだな。メモリブロックのコピーが渡る、
メモリブロックを指すポインタのコピーが渡る、メモリブロックそのものが渡る、って
のは理解できるんだが、「参照渡し」 から連想するものがちょっと混乱する。
0843デフォルトの名無しさん
2006/03/13(月) 01:51:200844デフォルトの名無しさん
2006/03/13(月) 01:54:48実体渡しとかいう名前に変えた方がよくない?
0845デフォルトの名無しさん
2006/03/13(月) 01:58:39やりたきゃ、どうぞご勝手に。
世間が従うとは限らんけどね。
0846833
2006/03/13(月) 01:59:46>>833の
Nanka に
public int value;
があるとして、
public void setValue(Nanka n){
n.value = 100;
}
としたときに、参照のコピーをいじったことにより
参照アドレスのデータが変わったから、
まるで参照渡しの様に見えたというわけですか。
0847デフォルトの名無しさん
2006/03/13(月) 02:18:470848デフォルトの名無しさん
2006/03/13(月) 02:22:160849デフォルトの名無しさん
2006/03/13(月) 02:25:04代入することで呼び出した方の値を変えられる。
参照の値渡しだったら変えられない。
本当の参照渡しを体験するためにFortranでもやってこい。
0850デフォルトの名無しさん
2006/03/13(月) 02:26:170851デフォルトの名無しさん
2006/03/13(月) 02:27:28>>846のメソッド内で
n = xxx;
と参照を変えた場合に、
参照渡しだと思ってたら、
呼び出し元も変わると思っちゃうんじゃね?
0852デフォルトの名無しさん
2006/03/13(月) 02:27:30いや、全然違うだろ。
0853デフォルトの名無しさん
2006/03/13(月) 02:28:13そして明日はみんな遅刻。
0854デフォルトの名無しさん
2006/03/13(月) 02:29:38単にわかってる人とわかってない人がいるだけ。
0855デフォルトの名無しさん
2006/03/13(月) 02:31:01うふ、明日はお休み。
0856デフォルトの名無しさん
2006/03/13(月) 02:31:180857デフォルトの名無しさん
2006/03/13(月) 02:35:540858デフォルトの名無しさん
2006/03/13(月) 02:36:070859デフォルトの名無しさん
2006/03/13(月) 02:36:080860デフォルトの名無しさん
2006/03/13(月) 02:40:07日本語でおk
0861デフォルトの名無しさん
2006/03/13(月) 02:41:020862デフォルトの名無しさん
2006/03/13(月) 02:42:22世の中のCの本で「参照を渡すから参照渡し」とか書いてるのは、バカが書いたんで
あって全部間違い。Cには値渡ししかないってのが言語仕様だしカーニハンに聞こうが
リッチーに聞こうがそう言う。
参照渡しというのはVBのByRefとか、Pascalのデフォルト動作をいうの。
String hoge = "hoge";
func( hoge);
System.out.println( hoge);
void func( String arg) {
//なんか処理
}
参照渡しでは、hogeとargは完全に同一の変数として扱われる。だからfunc内でarg="nullpo"と
やると、argはもちろん、hogeの値も「nullpo」になる。イメージとして変数を考えると、変数を渡すと、
変数がもってる値じゃなくて、変数という参照自体が渡ってるような感じなので「参照渡し」という。
一方で、変数の値が渡るのが「値渡し」。
CとかJavaは値渡しだから、func( hoge)としたときには、hoge変数のもつ値(この場合は
String参照。C言語だったらポインタ)が、hoge変数とはまったく関係ない、argというまったく別の
変数に格納される。
argはhogeとは別の変数だからarg="nullpo"とかやろうが、hogeには関係ない。
これが値渡し。CにもJavaにも昔からこの方式しかない。
参照渡しが死滅した方式なら別に参照の値渡しを参照渡しと呼んだっていいが、未だに
VBなんかでも普通に使ってるんだから、ちゃんと区別しないと今みたいに恥ずかしい目にあう
ってことだ。
0863756
2006/03/13(月) 02:42:460864デフォルトの名無しさん
2006/03/13(月) 02:52:39周りに童思われるでしょうか。>>865 さん、お答えください。
0866756
2006/03/13(月) 02:54:36変数hogeもしくはargを経由して操作できるオブジェクトは同じものだよ。
値渡しは、同値だが同一ではないオブジェクトを渡すことだ。
Javaでは実際には比較できないが、hoge==argかつhoge.equals(arg)かつarg.equals(hoge)を満たす。
あと、Stringではなく、Listなどのオブジェクトで考えてみな。
arg.clear()を行えば、hoge.isEmpty()だ。
>argはhogeとは別の変数だからarg="nullpo"とかやろうが、hogeには関係ない。
つまり、これは部分的に正しくない表現。
0867756
2006/03/13(月) 02:56:59今日からそう呼ぼうぜ。
0868デフォルトの名無しさん
2006/03/13(月) 02:57:540869デフォルトの名無しさん
2006/03/13(月) 02:58:280870デフォルトの名無しさん
2006/03/13(月) 02:58:290871デフォルトの名無しさん
2006/03/13(月) 02:58:440872デフォルトの名無しさん
2006/03/13(月) 02:59:49> VBなんかでも普通に使ってるんだから、
あれ? Java や C のコンテキストで話す分には参照の値渡しを参照渡しと表現してもかまわない、
と読めるますなw
0873デフォルトの名無しさん
2006/03/13(月) 03:02:170874デフォルトの名無しさん
2006/03/13(月) 03:02:24Adaでも学習した方がいいよ
0875デフォルトの名無しさん
2006/03/13(月) 03:06:38Call by 俺
Call by オマエ
0876デフォルトの名無しさん
2006/03/13(月) 03:07:21と、蒲団の中からノートPCで書く俺。
0877デフォルトの名無しさん
2006/03/13(月) 03:07:420878デフォルトの名無しさん
2006/03/13(月) 03:10:36おいおい、なんで「参照渡しが死滅したら」がJavaやCのコンテキストだったらに
変換されるんだよw
JavaやCのコンテキストから出た途端にバカにされるやつが続出の予感。
0879デフォルトの名無しさん
2006/03/13(月) 03:19:410880デフォルトの名無しさん
2006/03/13(月) 03:36:11カワイソス
0881デフォルトの名無しさん
2006/03/13(月) 03:40:270882デフォルトの名無しさん
2006/03/13(月) 03:53:490883デフォルトの名無しさん
2006/03/13(月) 03:56:39protected
だけで80%はいける
0884デフォルトの名無しさん
2006/03/13(月) 04:30:49public は最重要
0885デフォルトの名無しさん
2006/03/13(月) 04:53:11ポインタ渡しの目的を理解できなくて付けた名前じゃね?
ポインタ渡しの目的を理解できてりゃ素直に参照渡しって呼んでると思うけど。
0886デフォルトの名無しさん
2006/03/13(月) 05:02:48「本来の参照渡し」が実現できない言語がポインタ渡しで代用したものを
誤 っ て 「参照渡し」と呼んだのがおかしいんだよ。
「本来の参照渡し」も知らないでアホなこと言うのはやめてくれ。
というかお前、オブジェクト自体とオブジェクトへの参照との違いもわかってないだろ?
0887デフォルトの名無しさん
2006/03/13(月) 05:06:31プッ 苦しくなったらレッテル貼りw
おまえ、参照渡しをサポートしている言語が内部で暗黙的に参照の値渡しをやってると理解してないだろ?
0888デフォルトの名無しさん
2006/03/13(月) 05:13:24単なる言語上の糖衣でしかないんだよ。プログラマがやりたいことも言語がやってることも
実質何も変わってない、だがなんとなくポインタには抵抗あるので差別化したい、が本音だろw
0889デフォルトの名無しさん
2006/03/13(月) 07:06:34違う。言語機能の違いを表してるから。
その主張は、例えば ++i; も i = i + 1; も結果は同じ。
結果が同じだから i = i + 1; を「前置インクリメント式」と呼んで何が悪い?
って言ってるのと同じ。
同じ動作をするからといって同じ呼び名がついてるとは限らん。
0890デフォルトの名無しさん
2006/03/13(月) 07:09:000891デフォルトの名無しさん
2006/03/13(月) 07:11:58つ「ただの言葉遊びで、設計上の意味は同じじゃね?」
0892デフォルトの名無しさん
2006/03/13(月) 07:12:410893デフォルトの名無しさん
2006/03/13(月) 07:13:010894デフォルトの名無しさん
2006/03/13(月) 07:13:08自分が用語を間違ってたのは調べりゃわかったろうし。
0895デフォルトの名無しさん
2006/03/13(月) 07:15:390896デフォルトの名無しさん
2006/03/13(月) 07:16:380897デフォルトの名無しさん
2006/03/13(月) 07:18:040898デフォルトの名無しさん
2006/03/13(月) 07:19:010899デフォルトの名無しさん
2006/03/13(月) 07:19:560900デフォルトの名無しさん
2006/03/13(月) 07:20:320901デフォルトの名無しさん
2006/03/13(月) 07:21:120902デフォルトの名無しさん
2006/03/13(月) 07:21:260903デフォルトの名無しさん
2006/03/13(月) 07:22:550904デフォルトの名無しさん
2006/03/13(月) 07:24:010905デフォルトの名無しさん
2006/03/13(月) 07:25:500906デフォルトの名無しさん
2006/03/13(月) 07:27:26悪い。まさか相手が 未だに燃え上がるよーな粘着質だったとは知らなんだ。
0907デフォルトの名無しさん
2006/03/13(月) 07:28:200908デフォルトの名無しさん
2006/03/13(月) 07:29:570909デフォルトの名無しさん
2006/03/13(月) 07:33:360910デフォルトの名無しさん
2006/03/13(月) 07:35:400911デフォルトの名無しさん
2006/03/13(月) 07:53:270912デフォルトの名無しさん
2006/03/13(月) 07:56:40お前も相手するなウザい
0913デフォルトの名無しさん
2006/03/13(月) 07:58:25きりん
↓
0914435
2006/03/13(月) 08:05:10http://www10.plala.or.jp/nkosi/nkosi%20African%20instruments.html
class A {
private B b;
}
こんなふうになってるクラスで>>435をやってみると、
ClassCastExceptionがでて、メッセージ内容が
cannot assign instance of B to field A.b of type B in instance of A
ってなるんだが
別のURLClassLoaderを使って読み込まれたクラスは別物として扱われてる?
0915デフォルトの名無しさん
2006/03/13(月) 08:09:45A の復元に使ったクラスローダーからじゃ B (のインスタンスの実装クラス) をロードできないんだから。
0916435
2006/03/13(月) 08:21:01すまん、よく分からん。
明示的に使うってのはどういうこと?
今やってる手順としては、
1. Jarファイルからクラスを読み込み、インスタンスを作る
2. そのインスタンスをObjectOutputStreamでファイルに書き出す。
3. プログラムを再起動する
4. resolveClassを上書きしたObjectInputStreamを使ってファイルから読み込む。
なんだが。
resolveClassでは
URLClassLoaderに最初のJarファイルを指定してloadClassしてるんだが。
0917デフォルトの名無しさん
2006/03/13(月) 08:33:33だったらごめん、分からん。
0918デフォルトの名無しさん
2006/03/13(月) 08:38:07基本的に別物。
0919デフォルトの名無しさん
2006/03/13(月) 08:43:05クラスローダーのインスタンスが違うなら、同じ B でも違うクラスと見なされるよ。
そうではなくて? 何か混乱してきた…
0920デフォルトの名無しさん
2006/03/13(月) 09:02:44そうです。
どうやったら同じものになりますか?
プログラムを再起動するので同じURLClassLoaderを使えないんですが。
URLClassLoaderも保存したら大丈夫ですか?
0921435
2006/03/13(月) 10:00:41どちらにせよURLClassLoaderをそのたびに作らなくてはいけないんですが。
0922デフォルトの名無しさん
2006/03/13(月) 10:26:44試してないので保証はしないけど、
URLClassLoader#addURL(URL)というメソッドがあるので、
URLClassLoaderを継承して動的にURLを追加できるクラスローダを
作れるんじゃね?
0924435
2006/03/13(月) 11:05:17みんなトンクス!
0925デフォルトの名無しさん
2006/03/13(月) 11:24:250926デフォルトの名無しさん
2006/03/13(月) 11:34:340927435
2006/03/13(月) 11:43:12どのへん?
URLClassLoader?
ObjectInputStream?
全部でもいいけど。
オープンソースのつもりだから。
0928デフォルトの名無しさん
2006/03/13(月) 13:06:290929デフォルトの名無しさん
2006/03/13(月) 13:45:36について質問です。Systemクラスはなぜインポートしなくても使えてしまうんですか?
インポートしなくても使えるクラスは何と呼ばれてるのでしょうか?
0930929
2006/03/13(月) 13:46:57java.lang パッケージはインポートしていないのですが
System.out.println() 等が使えるようです。なぜ?
[S017 A-13]
java.lang パッケージはシステムの動作に必要となるクラス群が格
納されているため、ほっておいてもインポートされた状態になるため
です。
0931デフォルトの名無しさん
2006/03/13(月) 13:47:180932デフォルトの名無しさん
2006/03/13(月) 13:54:18まずは自分で調べるところから
0933435
2006/03/13(月) 14:15:12一区切りしたんでリリースついでにソースコードもアップした。
http://www.co0.net/solver/release/solver20060313.zip
zipの中にsrc.zipが入ってる。
0934デフォルトの名無しさん
2006/03/13(月) 14:25:12テキスト入力フィールド全般で、最初に表示した文字のみを固定して表示させ続けることはできるのでしょうか
たとえば、初期で「ABCD」と表示されていたとします。
この「ABCD」は、消すことはできず、「ABCD」の後ろに文字を追加入力していく形にしたいのです。
勿論、getValue等で値を取得した時は「ABCD」+入力した値として取得できるようにしたいのです。
説明がわかりにくいかもしれませんが、よろしくお願いします。
0935435
2006/03/13(月) 14:26:01使おうとか思わないでくれw
0936デフォルトの名無しさん
2006/03/13(月) 14:59:32ABCDが固定ならABCD-なんてラベル作ってその隣に続けてテキストフィールド置くとか。
0937デフォルトの名無しさん
2006/03/13(月) 15:07:57これ表面上は固定に見える
0938934
2006/03/13(月) 15:12:18返答ありがとうございます。
その案も考えたのですが、できるだけ一つのフィールド内で実現したいのです。
具体的に言いますと、JTable内の一つのセル内で上記の機能を実現したいのです。
試しにJLabelをaddしてみたのですが、コードが表示されるのみでラベルオブジェクトが表示されませんでした
0939デフォルトの名無しさん
2006/03/13(月) 15:14:41パネルかなんかにラベルとテキストフィールド入れたら?
0940934
2006/03/13(月) 15:15:25矢張りそれしか無いですか・・・orz
Listnerを利用すると、ペーストされた場合等に消されてしまう可能性がありそうで微妙だと思ったんですが・・・
0941デフォルトの名無しさん
2006/03/13(月) 15:19:030942デフォルトの名無しさん
2006/03/13(月) 15:19:390943デフォルトの名無しさん
2006/03/13(月) 15:22:070944デフォルトの名無しさん
2006/03/13(月) 15:33:200945デフォルトの名無しさん
2006/03/13(月) 15:35:590946934
2006/03/13(月) 15:38:46やってみましたが、やはりコードが表示されるだけになってしまいます。
なんとなく、無理っぽい気がしてきましたorz
>>944
見つからなければそうしようと思います。
といっても、方法は限られて無く、希望としての提案だったので、変更は簡単だと思います。
取り敢えず複数フィールドでの実現法を適用して、
方法が見つかったらすぐ切り替えられるようにしておこうと思います。
もし方法が見つかったら、こちらにフィードバックしようと思います。
返答頂いた皆様、ありがとうございました。
0947デフォルトの名無しさん
2006/03/13(月) 16:26:11static Singleton singleton;
private Singleton(){
}
}
これの二行目って何をしてるんですか?
0948デフォルトの名無しさん
2006/03/13(月) 16:33:240949デフォルトの名無しさん
2006/03/13(月) 18:24:14}
}
かい?
0950J
2006/03/13(月) 18:42:540951デフォルトの名無しさん
2006/03/13(月) 18:58:03通報しますた
0952デフォルトの名無しさん
2006/03/13(月) 19:30:44> 大学院で初めて習うよ
ちょっとwwwwwwwwwおまwwwwwwww
んなの大学院生じゃねえよ(ワラ
0953デフォルトの名無しさん
2006/03/13(月) 19:58:44> Java厨と俺との違いは、
> 基礎を知らずにCommonsを語る奴とそうでない奴との違いだと分かった。
とりあえず、Commonsを知っているお前もJava厨。
0954デフォルトの名無しさん
2006/03/13(月) 20:01:26> Javaのオーバーヘッド対策の限界を知るには良かったんじゃないか?
> 若い諸君らは、Bufferを駆使してJavaの常識を一新してくれよ
お前はマ板のJavaスレからやってきたな。
バブル世代のオッサンだろ。
ただたたやみくみにパフォーマンスC言語厨原理主義者のように
Bufferを使えばいいってもんじゃない。
あれは外部のリソースを使用するが使い方を誤ると
メモリリークを起こす。通常の配列宣言とは違う。
よって馬鹿みたいにBuffer使えばいいってもんじゃない。
本当に必要な時にだけ使うべきだ。
0955デフォルトの名無しさん
2006/03/13(月) 20:04:11楽天証券のAppletのことを言ってるのか?
0956デフォルトの名無しさん
2006/03/13(月) 20:22:04プロファイラ使うのが常識となってるJavaの今で、
なんでそんな過去ログ辿って息巻いてるの?
0957デフォルトの名無しさん
2006/03/13(月) 20:33:13マ板にあるスレタイにJava とバブルがつくスレで
Bufferの話が出ていたんだけど
0958デフォルトの名無しさん
2006/03/13(月) 20:33:310959デフォルトの名無しさん
2006/03/13(月) 20:34:210960デフォルトの名無しさん
2006/03/13(月) 20:43:380961デフォルトの名無しさん
2006/03/13(月) 20:45:39んだと、こらぁ
IBMの奴隷なんかにゃ遅れは取らないぞ
0962デフォルトの名無しさん
2006/03/13(月) 20:56:200963デフォルトの名無しさん
2006/03/13(月) 20:57:55netBeans >>>>>> eclipse = 秀丸
0964デフォルトの名無しさん
2006/03/13(月) 20:58:290965デフォルトの名無しさん
2006/03/13(月) 21:23:49俺の中ではEclipseもNetBeansもどっちも使えて,
もうJBuilderは眼中から消えてしまってる。
通常アプリ、web開発
Eclipse + WTP + Sysdeo Tomcat + JBoss-IDE > NetBeans > JBuilder > 秀丸
だが
Swing開発では
NetBeans > Eclipse + Visual Editor
になってる。これは確実。
あれだけEclipseを大絶賛していた俺もSwing開発に関しては
NetBeans最強としか言いようがない。
Eclipse3.1.2では他にCheckstyle, Findbugs, LaTeXプラグイン, DocJar, D言語プラグイン、
epic Perlプラグイン、PHPEclipse, Subclipse, Omondo EclipseUML,
Code Analysisプラグイン、CrossJ PropEditor, Mevenide, Maven workshop, m2eclipse,
Bytecode Outlineプラグイン, Wikiエディタ, CDT, RubyDT, Commons4E, Koders Search, SpringIDE,
Seasar2プラグイン、Struts IDE, QuantumDB, LDAPプラグイン、
などを全部入れて使っているが、設定ファイルが重たいのか段々重たくなってきた。
0966デフォルトの名無しさん
2006/03/13(月) 21:25:13NetBeans5標準プロファイラとEclipseプロファイラどっちが使える?
それからEclipseにはメトリクスプラグインというのがあるんだが
NetBeansにはある? あったら教えてくれい。
それからBytecode OutLineプラグインの存在も気になるところだ。
0967デフォルトの名無しさん
2006/03/13(月) 21:39:28ごめんね、パラメタの意味が分からなくてごめんね。
ボトルネック検出や、ガベコレ引き起こしてる奴の検出なら出来るよ。
処理時間はselfというのを見れば、メソッドそのものの処理時間が分かるから
メソッド呼び出しで合計されて、どこがネックかわからーんってことはない。
0968デフォルトの名無しさん
2006/03/13(月) 21:55:440969デフォルトの名無しさん
2006/03/13(月) 21:57:520970デフォルトの名無しさん
2006/03/13(月) 22:02:07http://next1.cc.it-hiroshima.ac.jp/JAVATEXT/node9.html
http://up00.hyperbit.info/up/trash-box/contents.jsp?file=20060313220140489.gif
0971968
2006/03/13(月) 22:02:57[√{(xの座標移動)^2+(yの座標移動)^2}]^2×π
になってるんだけど、これって円の面積じゃないの?
0972デフォルトの名無しさん
2006/03/13(月) 22:06:12>インストールパッケージを開くことができませんでした。
>パッケージが存在し、アクセスできることを確認してください。
>またはアプリケーションベンダに問い合わせ、このパッケージが有効な
>Windowsインストーラパッケージであることを確認してください
と出たのですが、どうすればいいのでしょうか?
0973デフォルトの名無しさん
2006/03/13(月) 22:08:000974デフォルトの名無しさん
2006/03/13(月) 22:09:130975デフォルトの名無しさん
2006/03/13(月) 22:10:080976デフォルトの名無しさん
2006/03/13(月) 22:14:42今やってみたのですがそれでも出来ませんでした
0977デフォルトの名無しさん
2006/03/13(月) 22:43:10お前ら笑かすなw
0978デフォルトの名無しさん
2006/03/13(月) 22:44:09セキュリティ対策ソフトだか
ファイアウォールソフトが働いてるんじゃないのか?
0979デフォルトの名無しさん
2006/03/13(月) 22:48:04それでダメなら諦めて本屋で CD-ROM 付きのムックでも買ってくる。
0980デフォルトの名無しさん
2006/03/13(月) 22:51:46ならないようなんですが、そのためには
WINDOWSINSTALLER-KB893803-V2--1613DE28.pf
といファイルを開かなければならないのですが、このpfが開けません
どうしたらこのpfを開けるようになるでしょうか?
0981デフォルトの名無しさん
2006/03/13(月) 22:54:17_ `''|/ノ
\`ヽ、|
\, V
`L,,_
|ヽ、) ,、
.| ヽYノ
/ r''ヽ、.|
/ ,.. -──- .、 `ー-ヽ|ヮ
.| , ‐'´ __ `ヽ、 `|
| / , ‐'"´ ``''‐、 \ |
| / / \ ヽ |
ヽ, y' /` ‐ 、 ,.. -'ヘ ヽ. }ノ
ヽ,' / /`,ゝ' ´ ヽ Y.
. i ,' { { ヽ `、
l ,イ─- 、.._ ヽ ,, _,.. -─:} !
. | r‐i| ー=ェェ:ゝ ,.∠ィェェ=ー' |r 、. l
| {ト」l|. : | " ``: |!トリ |
. │ ヽ、| ;.」_ |'ソ !
. │ ヽ r──ッ /ノ |
| lヽ  ̄ ̄ / イ │
. ! 丶ヾヽ ~ , ' ノ │ !
ト. ミ.ゝ ヽ.____./ / l /
ヽ ヽ イ ,' / , ' ┼ヽ -|r‐、. レ |
\. ノレ'/ d⌒) ./| _ノ __ノ
0982デフォルトの名無しさん
2006/03/13(月) 23:09:50例えば、
ttp://news.google.com/news?ned=us&topic=s&output=rss
0985デフォルトの名無しさん
2006/03/14(火) 00:25:42Googleは、適切なUser-Agentを設定していないと弾くようになってたと思う。
過去スレで、Googleにリクエスト送るHTTPクライアント自作してて上手くいかなかった、という話があって、
そのときはUser-Agentを設定して解決してたような覚えがある。
0986デフォルトの名無しさん
2006/03/14(火) 01:04:53なんか修二と彰みたいだ
0987デフォルトの名無しさん
2006/03/14(火) 07:50:47Googleさんは"Java"がお嫌いなのです。
HTTPでJavaの標準APIを用いてデータを取得すると、
標準では User-Agent が "Java〜" と成っています。
以前、別件で試行錯誤した際の記憶が曖昧なのですが…
"Java" から始まる User-Agent だと弾かれる、
という結論に達したと記憶しております。
でも、何故?と聞かれると困ってしまうのです。
0988デフォルトの名無しさん
2006/03/14(火) 12:53:43HttpSessionBindingListenerインターフェースを実装したクラスを作って
sessionにsetAttributeしておくことでsession.invalidate()されたときに
valueUnboundに書いた特定の処理を実行させてます。
ユーザーが正規の方法でログアウトしてくれたときはsession.invalidate()が
行われるのですが、ユーザーがブラウザの閉じるボタンなどを押して終了した場合
いくらか時間がたつとvalueUnboundが呼ばれるのでしょうか?
観察してみたところ、タイムアウト設定時間後にvalueUnboundは呼ばれて無いようでした。
WebLogic Serverに関する説明だと、サーバのパトロール処理によってセッションが
無効化されると書いてありましたが、パトロール処理はTOMCAT等でも行われる処理
なのでしょうか?
http://www.atmarkit.co.jp/fjava/onepoint/weblogic/weblogic02_3.html
0989デフォルトの名無しさん
2006/03/14(火) 12:58:03タイムアウトでも呼ばれてたと思うけど?
0990988
2006/03/14(火) 13:01:39OC4Jが糞なんでしょうかねぇ…
0991988
2006/03/14(火) 13:04:49タイムアウト時間経過後に
HttpSession session = request.getSession(false);
をやった場合はちゃんとvalueUnboundが呼ばれるようです。
問題なのはタイムアウト時間経過後 ”ほうっておいた”場合なんです。
0992デフォルトの名無しさん
2006/03/14(火) 13:09:290993デフォルトの名無しさん
2006/03/14(火) 13:17:01スレッド立ち上げてないのかもな。これから自宅鯖の Tomcat で試してみるから
ちょっと待ってな。出来ればその空いた手で次スレ立てといてくれ。
0994988
2006/03/14(火) 13:17:44valueUnboundが呼ばれてました。この微妙な時差がOC4J特有の物なのか、一般的にそうなのか
気になります。
0996988
2006/03/14(火) 13:21:05http://pc8.2ch.net/test/read.cgi/tech/1142309999/
0997デフォルトの名無しさん
2006/03/14(火) 13:31:281分55秒じゃなくて同時処理しないとやばいっていう設計がやばい気がするけど。
0998デフォルトの名無しさん
2006/03/14(火) 13:32:17>>994
一般的にそう。1分おきとか5分おきとかに全セッションを調べて、タイムアウトしてたら
無効化するスレッドがいる。だからタイムアウト時間きっちりには呼ばれないでタイム
ラグが発生する。
ソースと結果は次。
0999デフォルトの名無しさん
2006/03/14(火) 13:33:26----------------------------------------------------
2006-03-14 13:26:49 jsp: valueBound()
2006-03-14 13:27:16 jsp: valueUnbound()
----------------------------------------------------
<%@ page language="java" session="true" %>
<HTML>
<BODY>
hello, world<BR>
<%
if(session.isNew()){
session.setAttribute("hoge", new HttpSessionBindingListener(){
public void valueBound(HttpSessionBindingEvent event){
log("valueBound()");
}
public void valueUnbound(HttpSessionBindingEvent event){
log("valueUnbound()");
}
});
session.setMaxInactiveInterval(10);
out.write("new session is created.");
} else {
out.write("this session has be created before.");
}
%>
</BODY>
</HTML>
1000デフォルトの名無しさん
2006/03/14(火) 13:33:5810011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。