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

このエントリーをはてなブックマークに追加
☆★☆こんなメッセージが出たら >>2 へ☆★☆
『'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。』
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』

>>2-3 初心者によくある質問と回答・他のFAQサイトへのリンク
>>4  JDKの配布元とAPIドキュメントへのリンク
>>5-8 過去スレの一覧
>>9-12 関連スレ
>>13 民間のJavaサイト・無料の開発環境の配布場所
(諸般の事情でずれた場合は >>2-20 )

Google で検索 ⇒ http://www.google.co.jp/
JavaFAQ で探す ⇒ http://www.gimlay.org/~javafaq/javafaq.html
ご要望によりじゃばこサイト ⇒ http://www.javaco.org/
JavaScriptの質問はWeb製作板へどうぞ ⇒ http://pc3.2ch.net/hp/
パソコンの基本操作に関しては、PC初心者板で質問しましょう ⇒ http://pc.2ch.net/pcqa/

これからJavaのプログラムを始めたいかたは >>2-4
必要な情報やコンパイラのダウンロード先へのリンクがあります。

基本的に sage 進行でおねがいします。また煽り厨は放置でお願いします。
Q. javac コマンドを実行したときに、
『コマンドまたはファイル名が違います』や
『'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。』
と表示されてコンパイルできません。
A. javac.exeへのPATHが通っていません。
http://java.sun.com/j2se/1.4.1/ja/install-windows.html
を良く読んで、javac.exe のあるディレクトリ(例: C:\j2sdk1.4.1_01\bin )のパスを
環境変数PATHに追加してください。
その後、
Windows98/MEの場合はOSを再起動、
Windows2000/XPの場合はコマンドプロンプトを新たに立ち上げなおしてください。
設定したパスが正しければ、javacが使えるようになります。
それでも同じエラーが出る場合は、設定した値が間違っています。よく見直してください。

Q. javac Hello.java でコンパイルはできるのですが、
java Hello を実行しようとすると
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』
と表示されて実行できません。
A. カレントディレクトリ(.)がクラスパス(classpath)に含まれていません。
コマンドプロンプトで、
set CLASSPATH=%CLASSPATH%;.
と設定する。最後の「;」と「.」を見落とさないように!
または、
http://www.gimlay.org/~javafaq/S004.html#S004-02
を読んでカレントディレクトリ「.」を環境変数CLASSPATHに追加してください。

クラスパスとはなにか(JavaFAQ 基礎知識)
http://www.gimlay.org/~javafaq/S004.html
3デフォルトの名無しさん:03/03/26 23:31
Q. Javaのインストール方法、パスや環境変数の設定方法が分かりません。
A: Java(TM) 2 SDK インストールガイド
http://java.sun.com/j2se/1.4.1/ja/install.html
http://java.sun.com/j2se/1.4.1/ja/install-windows.html

Q: クラスの使い方が分かりません。
A: Java 2 プラットフォーム API 仕様
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html

Q: SDKの仕様や、Javaの使い方、コマンドの使い方を教えて下さい。
A: Java(TM) 2 SDK ドキュメント
http://java.sun.com/j2se/1.4/ja/docs/ja/index.html

Q: Javaの言語仕様が知りたいです。
A: Java言語規定
http://www.y-adagio.com/public/standards/tr_javalang/index.htm
http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html

Q: 「僕以外の人も、同じ疑問を持ったはず」と思えるような質問があります。
A: Java House ML Topics / Java FAQ / Java Tips
http://java-house.jp/ml/topics/
http://www.gimlay.org/~javafaq/
http://www.javaworld.com/columns/jw-tips-index.shtml

このほかのFAQ(良くある質問とその回答)はこちら↓をご覧ください。
http://www.gimlay.org/~javafaq/javafaq.html
5デフォルトの名無しさん:03/03/26 23:31
6デフォルトの名無しさん:03/03/26 23:32
■■■ Java関連スレいろいろ ■■■
【IDE 統合開発環境】
【Java/C/他】統合開発環境Eclipse GM4
http://pc3.2ch.net/test/read.cgi/tech/1039405354/l50
えっ?JBuilder8が発売?
http://pc3.2ch.net/test/read.cgi/tech/1038042372/l50
【Meadow】Java開発環境(・∀・)イイ【JDEE】
http://pc3.2ch.net/test/read.cgi/tech/1017214967/l50
【統合】Java開発環境スレ
http://pc3.2ch.net/test/read.cgi/tech/1038118138/l50
【Java】NetBeans vs Eclipse【IDE】
http://pc3.2ch.net/test/read.cgi/tech/1029407008/l50
【サーバサイドやエンタープライズ】
EJB(初心者歓迎)
http://pc3.2ch.net/test/read.cgi/tech/1017240849/l50
■■ Servlet/JSP(EJB含む) 質問スレ ■■ (WebProg板)
http://pc.2ch.net/test/read.cgi/php/1023501812/l50
《The Jakarta Project》
http://pc3.2ch.net/test/read.cgi/tech/1019996589/l50
TOMCAT
http://pc3.2ch.net/test/read.cgi/tech/998525941/l50
Servlet/JSPのフレームワークを語るスレ
http://pc3.2ch.net/test/read.cgi/tech/1001950590/l50
EJBは終わってる
http://pc3.2ch.net/test/read.cgi/tech/1036481443/l50
JavaサーブレットQ&A LV2
http://pc.2ch.net/tech/kako/1012/10127/1012728608.html
サーバーサイドJAVAをまたーり語るスレ
http://pc.2ch.net/tech/kako/1004/10049/1004972840.html

【携帯・モバイル】
携帯JAVAのスレッド
http://pc3.2ch.net/test/read.cgi/tech/1011977260/l50
iモード携帯電話用Java(iアプリ) Part 3
http://pc3.2ch.net/test/read.cgi/tech/1040898596/l50
iアプリでゲーム (ゲーム製作技術板)
http://game.2ch.net/test/read.cgi/gamedev/1005042631/l50
京セラJAVA搭載PDA「PocketCosmo」 (モバイル板)
http://pc3.2ch.net/test/read.cgi/mobile/1021979970/l50
【その他】
クライアントサイドJavaどうよ? part2
http://pc3.2ch.net/test/read.cgi/tech/1032665721/l50
クライアントサイドJavaどうよ? part3
http://pc2.2ch.net/test/read.cgi/tech/1045891783/l50
ム板のみんなでRobocode (・∀・)ヤロ−ウヨ!1台目
http://pc3.2ch.net/test/read.cgi/tech/1020161792/l50
Java 高速GUI SWT
http://pc3.2ch.net/test/read.cgi/tech/1032448424/l50
【徹底討論】Java3Dの可能性について考える
http://pc3.2ch.net/test/read.cgi/tech/1033703640/l50
★お前らJavaはJNIで組もうぜ★
http://pc3.2ch.net/test/read.cgi/tech/1033795664/l50
Javaアプレットのゲームの限界は! (ゲーム製作技術板)
http://game.2ch.net/test/read.cgi/gamedev/1005230153/l50
【Java編】 学校の宿題は俺にやらせろ 【Java編】
http://pc3.2ch.net/test/read.cgi/tech/1040552821/l50
祝 JAVA Developer創刊
http://pc3.2ch.net/test/read.cgi/tech/1024967343/l50
■■■ 他板のJavaスレッド ■■■
UNIXでJAVA (Unix板)
http://pc.2ch.net/test/read.cgi/unix/1011292632/l50
LinuxのJAVAチューニングスレ (Linux板)
http://pc.2ch.net/test/read.cgi/linux/1004594459/l50
◆◆◆◆◆◆MacでJava◆◆◆◆◆◆ (新Mac板)
http://pc.2ch.net/test/read.cgi/mac/991194610/l50

■■■ 撲滅させたいかた、死滅を心配してるかた ■■■
CとJavaを比較した場合Cの良いとこと悪いとこ
http://pc.2ch.net/tech/kako/1009/10097/1009707596.html
C#とJava、どっちをおぼえればいいの?
http://pc3.2ch.net/test/read.cgi/tech/1006715468/l50
Java撲滅委員会
http://pc.2ch.net/tech/kako/996/996848309.html
Java撲滅委員会
http://pc3.2ch.net/test/read.cgi/tech/996848309/l50
●●JAVAって死滅しちゃうの????●●
1 http://pc.2ch.net/tech/kako/1005/10051/1005159122.html
2 http://pc.2ch.net/tech/kako/1006/10060/1006053686.html
3 http://pc.2ch.net/tech/kako/1008/10081/1008162230.html
4 http://pc3.2ch.net/test/read.cgi/tech/1042268758/l50
5 http://pc2.2ch.net/test/read.cgi/tech/1046539052/
6 http://pc2.2ch.net/test/read.cgi/tech/1047748598/
一個ずれた つд`)
■■■ 民間サイト ■■■
巨大なJavaリンク集
Java的リンク
http://www.geocities.co.jp/SiliconValley/6064/java_link.html

What's New about Java(Java に関する最新ニュース)
http://www.gimlay.org/~andoh/java/javanew.html


■■■ 無料の統合開発環境 ■■■
【Eclipse R2】
http://www.eclipse.org/downloads/index.php

【Sun ONE Studio 4 (Forte 4)】
http://jp.sun.com/products/software/tools/jde/try/index.html

【NetBeans v3】
http://www.netbeans.jp/dowonload.htm

【JBuilder 7 Personal】
http://www.borland.co.jp/jbuilder/jb7/download/

※2chではないので暴れないように。
|д゚)ダレモイナイ… ウマースルナライマノウチ

| ゚д゚)

| ( ゚д゚)

|  (゚д゚)

|  (゚д゚)ウマー

|ミ サッ

15スレ立てた人:03/03/27 01:45
つд`)ヤラナキャヨカッタ
>>15
( ・∀・)つ がんばったのにね。

過去ログ一覧をホームページにまとめたり、
namazu検索出来るようにしてくれる神はいないの?
前スレ、最後の方の例外の捕まえ方の話だけど、
いちいち返り値チェックしなくてはいけないとなると、例外のメリットが薄れるね。
「connがnullでない場合=ちゃんと実行されている」
よりも、
「openConnectionが例外を投げない場合=ちゃんと実行されている」
であるべきだと思うのだけど。
実際には腐った実装のものが多いって事なのかな。
19デフォルトの名無しさん:03/03/27 07:30
ループ内で一時的な変数を使って処理をしたい場合
xが一時的な変数だとすると

for () {
 int x;
 x = ・・・;
}

とするのと

int x;
for () {
 x = ・・・;
}

とするのと、どちらが好ましいですか?

ループ内の一時的な変数という意味としては、前者の方が好ましいですが
処理を中心に考えると、ループ毎に変数を定義するのは無駄ではないでしょうか?
当然後者だろう。
どうしても一時変数として定義したいなら処理の前後をブロックで囲むとか
>>19
Java の前にやっていた言語は何ですか?
22むしろ:03/03/27 09:28
むしろ、関数で定義しちゃって、ローカル変数で処理するのが、一時的使用だと思われる。
つまり、

function loop()
{
var x = 0;

for(;;)
{
x++;
if(x == 999)
{
break;
}
}
return 0;
}

最近 パール系が多いので、スクリプト言語ですまん。
でも、やってることは、わかるはず。
俺は前者だな。最適化に期待。
>>19
意味的にもスコープ的にも前者が良い。個人的に。
>>19
出力されるバイトコード的には同じ。

要は好みだろうけど前者の方が間違いが少なそう。
>>22
>でも、やってることは、わかるはず。

Perl系にJavaScriptが含まれることとかな。
27むしろ:03/03/27 10:25
本当・・・、これは、好みだね。
僕は、ようは後者派なんだけどな(-.-:)
28むしろ:03/03/27 10:30
>>26
すまん、、伝え方がまずかったかな??
ようは、一時的なら、ローカル変数が良いかなっと思って…。
ただ、そこだけ伝われば、O.K。邪魔だったかな?
>>19
Cではこういうことできなかったけどこれじゃ駄目?
for(int x, y, z, a, b, c ; ; ){
 x = ....;
}
>>29
何がしたいのか分からない・・・。
って言うかforの中にカンマ区切りって入れて良いの?
無駄にスコープ広げるのもなんだかねぇ。
>>22
>むしろ、関数で定義しちゃって

ループの度に?
classファイルが存在するパスを取得することは可能なのでしょうか?
java Testという感じで実行された場合、Test.classの存在する場所を知りたいのですが。
>>33
昨日同じ話題が出てた。
>>30
変数宣言をいちいちfor文スコープの外でやって
for文を書くたびにインクリメント変数を別名で宣言し直す、という手間が省けると言うこと。

カンマ区切りはO.K. やってみればわかる。
36768:03/03/27 11:55
あー、どうも。前スレの768です。
今、ふと疑問に思ったのですが、
自分はCからなので、ブロックを
public class Test
{
こんなカンジで書いてしまうのですが、普通は
public class Test{
って書くんですよね?
走らせてみたら、実行結果は変わらないようですが、
やっぱり郷に入ったワケですから、後者で書いた方がいいのでしょうか?
どうでもいい疑問なのですが、答えて頂けたら幸いです。
>>36
>public class Test{

どっちかというとCがこっちじゃない?
3836:03/03/27 12:10
>>37
でも、自分はいつもCでは前者ですよ。
本とかもほとんど
int main(void)
{
ですし。
JTreeの各ノードにJCheckBoxを表示させてチェックあり/なし+ラベル表示をさせたいのですが
うまくいきません。

TreeCellRendererをimplementsさせてJCheckBoxを継承したクラスを作って
public Component getTreeCellRendererComponentでsetTextで
ラベルを表示させる事はできたのですがチェックボックスをクリックしても
何の反応もなく、チェックあり/なしを実現できません。
どうやったらチェックできるようになるのでしょうか?
BufferedReader でファイルを一行ずつ読むと、改行記号は含まれませんが、
改行記号も含めて一行ずつ読みたいときはどうすればいいのですか?
41むしろ:03/03/27 13:30
>>32
確かに、なんだよ。たかが一時ループの為に関数組むのは、非常に無駄だと、さっき思った。
やはりな、一番、良い意見としては、

>>20
↑けっきょく、考えた末、彼の意見に到達してしまった。
それ以外なかろ〜?ってか、手っ取り早いし。
しかも、『一時的な』っていう動作のとらえ方に、そもそもの問題がある。

>>40
System.getProperty("line.separator"); で改行文字列を得て,末尾に
くっつけてやれば良いのではなかろうか。
43デフォルトの名無しさん:03/03/27 14:10
フロート掲示板CGIの設置方法教えてくらはい。
>>36
わしゃ、C言語の時代から後者を選択しておったよ
今でもJavaでは後者を選択しておる
45デフォルトの名無しさん:03/03/27 14:46
Webのホスト名から、ドメイン名?だけ抜き出す方法ってありまつか?
たとえば、

・www.yahoo.co.jp
・rd.yahoo.co.jp
・help.yahoo.co.jp

なんていうホスト名から、"yahoo.co.jp"だけ抜くと。
(String操作で、というのは無しで。)

InetAddressクラスやらURLクラスやらを漁ってるんですけど、
うまいぐあいにいかないですね。。。
>>45
たとえば、さいたまさいたまのwww.pref.saitama.jpだと、なにをドメイン名というのでしょうか?
>>45
Stringクラスやら正規表現やらを使ったほうがいいかど
>>46
ドメイン名と FQN は別物。
>>36
たしか、Sun のコーディング規約だと
public class Test {
みたいに Test と { の間にスペースが必要だったような…
5045:03/03/27 15:06
つまり、ホストアドレスからFQNを得たいと。
>>48
いや、たとえばwww.lib.saitama-u.ac.jpだとsaitama-u.ac.jpが欲しい、とかさぁ、なにが欲しいの、実際?ってことがあるじゃん。
>>50
アドレスから名前が欲しいなら>>45に書いたことと違うくない?
5345:03/03/27 15:08
>>51
ソレ。そういう情報がホスィ。
FQDNってやつ?
5445:03/03/27 15:08
>>52
訂正しまつ。
>>53
FQDN(完全就職ドメイン名)ってwww.lib.saitama-u.ac.jpのほうなんだけど。
で、www.pref.saitama.jpだとなにが欲しい?
5653:03/03/27 15:18
・・・スマソ
回線切って首吊ってきまつ。。。
ホスト名に関する基礎から勉強し直したほうがいいわけでつね。。。(;´Д`)

www.lib.saitama-u.ac.jp
だったら、
saitama-u.ac.jp
が欲しいでつ。
5753:03/03/27 15:18
www.pref.saitama.jp
だったら、
saitama.jp
なのかな・・・?
やはり、文字列処理の世界?
真面目にやろうとすると各国 NIC の命名規則を調べて,いちいち対応しなきゃ
ならんので大変だろうな。
汎用 JP ドメインみたく,後付けの規則も増えてくだろうしな。
>>56
www.city.saitama.saitama.jpだったらsaitama.saitama.jpが欲しい、だったらほんとに回線切ってイラクで人間の盾になってください。

結局ドットで区切って、最後の節と、あとは最後から二番目の節から3文字以上のものがくるまで、って感じか。
6020:03/03/27 15:30
>>25を読んで、実際に試してみたら本当に同じだった。

int x;
for(int i=0; i<10; i++){
  x = i * 2;
}

for(int i=0; i<10; i++){
  int x = i * 2;
}

みたいなコードをコンパイルしてJADで逆コンパイルしたら、どっちも

for(int j=0; j<10; j++){
  int i = j * 2;
}

になった。毎回変数宣言するコストが減るかと思ったら全然関係
なくなるようなので前言撤回しますわ。これならfor文の中で宣言
したほうが絶対良い。
6136:03/03/27 16:15
>>44 >>49
そうなのですかー。色々な意見ありがとうございます。
全体的には後者の方が多そうですね。
自分も後者で書いてみようかと思います。
なんだか後者で書かないとソースがJavaっぽくないですしw
>>58
DNS サーバに投げればドメイン名ってとれないっけ?
>>39
javax.swing.tree.TreeCellEditorも必要なんじゃないの?
64デフォルトの名無しさん:03/03/27 22:34
アクションビーンとフォームビーンの違いがわかりません
>>64
すれ違い。
>>65
どっちもjavaじゃないのか?
初心者だし
>>66
初心者以前のバカが回答するスレでは断じてないわけだが。
仕切り屋キモイ
>>68
バカキモい
>>68
でかいツラできる唯一のスレなんだから大目に見てやれや
>>67
何だこいつ
>>71
自演までして必死にならんでも・・・
>>71
初心者じゃねー? (藁
>>64
アクションビーンはアクションを管理するビーンでフォームビーンはフォームを管理するビーンです。
たぶん。
75デフォルトの名無しさん:03/03/28 00:55
>>18
あんたはtry{}catch{}finally{}の挙動わかってる?
例外が発生しないなら。の条件は意味がない。
それに、オープン時に例外発生するか、同try節の後続処理で例外発生するかわからない。
リソースがnullかどうかを判断するのは、どう考えても正当で安全な実装。
例外のメリットを言ってるわけじゃない。終了時に、finally節でリソースを解放
することの重要性。
76前スレの987:03/03/28 01:03
>>75
18ではないが。
とりあえずこれね。
try {
   URL url = new URL("http://www.google.com/");
   HttpURLConnection conn = (HttpURLConnection)url.openConnection();
   try{
      conn.setRequestMethod("GET");
   }
   finally{
      try{
         conn.disconnect();
      }
      catch(IOException e){
      }
   }
} catch(IOException e) {
}

で、conn.disconnect();のときにはconnはnullではないと思うのだけど。
それを前提にしてはだめなら例外の意味が激しく薄れるとおもうのだが。
77デフォルトの名無しさん:03/03/28 01:12
ごめん、漏れの負けです。激しく強気ですた。
ソース見かえしたらfinally節でconnがnullはありえない。。
パッと見で意見した漏れがバカですた。
一番外側のtry{}finally{}でクローズした方がよくない?
>>77
てめぇだけは謝っても許さねぇ・・・・・・・。
クリリンの仇・・・・ィヤェィヤィヤィヤィヤ!
ループの先頭に戻るだけなら次のがいっちゃん正しいかと。
80前スレの987:03/03/28 01:35
>>77
くりりんの仇は>>78がとったのでいいとして。

>一番外側のtry{}finally{}でクローズした方がよくない?

このへんの話題も前スレの987-で。
81デフォルトの名無しさん:03/03/28 04:02
可変長引数を受け取る関数(メソッド)は定義できますか?
>>81
言語仕様で定義されてないので可変長引数は無理。

引数型 List にして Vector やら ArrayList で代用とか。
できませぬ。
java-house.jp/ml/archive/j-h-b/016188.html
84デフォルトの名無しさん:03/03/28 04:20
>>60
そうなんですか。
出来たクラスファイルを、ファイル比較コマンドで比較したら
少し違っていたので、意味が変わっているのかと思っていました。
逆コンパイルしてきちんと中身を観るところまでやらないと駄目ですね。

同じになるなら、私もこれからは前者を使う。
8581:03/03/28 04:21
>>82 >>83
わかりました。どうもありがとう。
テーブルを作るとき、いちいち

byte[] hoge = { (byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,}

とキャストするのだるいし、読みづらい。

Cみたいにつづけてできないもんかね

char hoge[] = { 0xFF,0xFF,0xFF,0xFF,}

ってさ。
CですらできるのにJavaではできないのか。
>>86-87
その手の話題は死滅スレでやってくれ。
>>88
>>82のことを言っているんだが
a
aa
aaa
aaaa
94デフォルトの名無しさん:03/03/28 05:38
おい、>>19の選択で
前者がイイって言ってる人いるけど
for文のなかで毎回、int x;って定義するっておかしくないか?
ばらして考えると
int x;
・・・・・
int x;
・・・・・
int x;
・・・・・
って書いてるのと同じだと思うんだが・・・
>>94
なぜ初期化してないローカル変数を参照しようとするとコンパイルエラーになると思うね?
9694:03/03/28 07:12
は?intとかってデフォルトで初期化されるんじゃないの?
>>94
概念的にはむしろこうだな。
{
 int x = ...;
 ...;
}
{
 int x = ...;
 ...;
}
{
 int x = ...;
 ...;
}
ループのそれぞれのxの内容は独立しているので、別の変数として扱う方が概念的に
より適切だと思う。
それに、コンパイラが最適化してくれるので、
ループの回数分メモリを消費したりメモリの確保/開放を繰り返すような
ことにはならない。
ならないよね?コンパイラのソースみた訳じゃないから知らないけど。
同じレジスタか、無理でも同じスタック領域を使い回すようにしてくると期待。
>>95
それは94には遠回りすぎる答えじゃないかな。きっと94はわからないよ。
98デフォルトの名無しさん:03/03/28 07:21
だってローカル変数はまだインスタンスがつくられてない状態(の可能性が高い)だから
外からだったらOK
外からの場合何らかの形でインスタンスが出来上がって
初期化されている状態だからOK
ただ、その問題と>>94の話とはちょっと違うぞい
99デフォルトの名無しさん:03/03/28 07:25
>>95
x=・・・は参照なのか?
Java perlの連想配列みたいなことできますか?
>>100
javaでは不可能
102デフォルトの名無しさん:03/03/28 08:05
>>100
大和田さん壇さん 大和田さん
103デフォルトの名無しさん:03/03/28 08:17
ポインタは使えないのですか?
perl 知らんけど hashMap とか?
105デフォルトの名無しさん:03/03/28 08:48
JavaとC#ってどっちがいいんですか?
106宿題アリコ:03/03/28 08:55
】[JAVA]JAVAの宿題・課題は俺に任せろ のすれに宿題のせたん
デスケド,誰も任されてくれないので、俺に任せろと思っちゃった
人はぜひ任されちゃってください・・

ピンチなんで助けてくれるとかなりうれしーです、お願いします。

http://pc2.2ch.net/test/read.cgi/tech/1047538922/
107デフォルトの名無しさん:03/03/28 09:01
引数の参照渡しはどうやるのだ?
>>107
引数がクラスの場合、Cのポインタ引数と同じく事実上の参照渡しとなります。
intとかcharはラッパークラスがあるんでそれを使用してみてください。
>>107
できません。

Java では全て値渡しです。
対象がオブジェクトの場合はオブジェクトへの参照が値渡しされます。
110デフォルトの名無しさん:03/03/28 10:38
スレッドプールのイイ実装を教えて下さい
マルチスレッドにしても一気にスレッドを実行しようとするので
>>110
sleep(Math.random() * 100000)
112デフォルトの名無しさん:03/03/28 10:59
JavaとJava2って何が違うんですか?
>>112
Java2は1.2以降のエディション
114デフォルトの名無しさん:03/03/28 11:09
>>113
ということは
1.3ならJava3ということですね
>>114
正解。覚え早いじゃん。
>>114
1.3 も 1.4 も Java2 のまんま。
>>112 >>114
ネタ心者は死滅スレでも逝ってくれ。
>>117
>>112-116がネタである場合、それを放置できないお前がネタ初心者になるわけだが。
119デフォルトの名無しさん:03/03/28 12:13
スレッドを再利用したいんです
スレッドを16迄に制限して
待ち行列で・・・
>>118
>>115-117がネタである可能性もすてきれないが。
そうすると>>118までがネタで漏れがネタ初心者になるということか。
むずかすぃ。
>>119
うん、やればいいじゃん。
>>64
strutsのことをいっているのか?
123デフォルトの名無しさん:03/03/28 12:48
JavaBeansっておいしいコーヒー豆の一種ですか?
>>123
そう、乾いた空気のjava島でとれたうまい豆だ。
>>123
お前らそういうネタはマ板でやれ
126デフォルトの名無しさん:03/03/28 12:53
風呂釜洗うのってなんでしたっけ?
127デフォルトの名無しさん:03/03/28 13:07
>>126
JABA
a
aa
aaa
aaaa
aaaaa
aaaaaa
aaaaaaa
Javaは最近景気が悪いんだってね
もうJavaやっても稼げないよ。
まさかこのスレは好きでJavaやってる香具師なんていないよね?
仕事だから嫌々仕方がなくでしょ?
.NETの方が勢いがあっていいよね。
>>135-137
そういう話題は死滅スレかマ板でやれ。
249 名前:デフォルトの名無しさん[] 投稿日:03/03/26 01:07
先日ソニーと三洋の2機種が発売されたんですが、
今までの機種で再生できた"自作着うた"が再生されなくなりました。
現在、携帯板で一部の人が解析作業を行っています。
しかし…うまい具合には進んで無いみたいです。

そこでプログラム板のBREWスレの皆さんにお願いがあります。

     携帯板の発展のためにも力を貸して下さい。

              お願いします。

詳しくは…
            ついに「着うた」規制!
    http://etc.2ch.net/test/read.cgi/phs/1048267361/  まで…。


250 名前:携帯板出張人[] 投稿日:03/03/26 14:09
解析作業の協力求む!!


ちょっとマルチですが、覗いているだけでもイイのでお願いします。

Javaの仕事がなくなったらみんなどうするの?
そう遠い先の話じゃないよ。
>>140
その「人は生涯1言語しか同時に使えない」とか言うふざけた前提を捨てることから始めなさい。
FUD が得意なところを見ると M$ の下請けか (藁
143デフォルトの名無しさん:03/03/28 15:47
>>141
禿同、
使い分ければいいわけだし
「プログラマ(自分)は1言語しか扱えない」って思ってるやつが危機を感じて
死滅スレとか立てて、同意を求めて安心したいだけだと思う
別に、Javaがたとえなくなったとしても
プログラマの仕事なくなるわけでもないし
それに、Javaを取り巻く環境考えても死にそうに無い
>>143
私も禿同

>140の言うように近いうちにJava案件がなくなり、
現在稼動しているJavaで作られたシステムが、
別の言語でのシステムに変更となったら、
大型案件が大量に受注できるので、それはそれでいいね。(w
>>144
確かにそうだw
146デフォルトの名無しさん:03/03/28 18:13
Javadoc について質問です。

@seeタグを使いこなすのが大変です。
皆さんはどのように利用していますか?
147デフォルトの名無し:03/03/28 18:53
サーブレットで、IDを重複させることなく生成させたいのですが、
シンクロを使わずにうまくできる方法はないでしょうか?

現在考えているものは以下の通りです。

前提条件:サーブレットのフィールドには int id=1と宣言されている。
int yourIdはスレッドごとに独立した変数。

1・誰かがサーブレットにアクセス
2・ yourId = id; //個人idを決定。
3・id++; //idをインクリメント。

この方法ですと、ほぼ同時にサーブレッドにアクセスされた場合yourIdが被る可能性があります。
なにか、もっとスマートな方法はないでしょうか。

わかる方いらっしゃいましたら、ご教授ください。
148デフォルトの名無しさん:03/03/28 19:00
>>147
IDを生成するBeanを作って、ServletからはそのBeanを呼び出す。
そんで、BeanのID生成メソッドはシンクロナイズドにしておけばいいんでないかい?
ttp://www.geocities.jp/fieldabout/
「世界の仕組み研究所!!」

おまいらみたいな無知どもはおいらに質問しろでつ。
変なウイルスとか送んなよ。ゴルァ
150RAM:03/03/28 20:29
おくんねえよ。
151デフォルトの名無しさん:03/03/28 22:57
>147
Oracleがあるならシーケンスを使ってみるとか

private static int id = 0;
public synchronized static int getId(){
id++;
 if(id == Integer.MAX_VALUE)id = 0;
 return id;
}

//...
yourId = getId();

一番単純なのはこうだけど…
クラスの寿命をまたげないよ。クラスロードやJVM再起動のたびに
idが0に初期化されてまう。それでもいいのなら。
>>147
データベースの機能使いそう。
最終的にデータベースに、そのデータを格納するなら。
154宿題アリコ:03/03/29 00:10
http://pc2.2ch.net/test/read.cgi/tech/1047538922/
[JAVA]JAVAの宿題・課題は俺に任せろ

任されてやってください、お願いします。
15536:03/03/29 00:25
どうも、前スレの768です。
質問なのですが、コンソール入出力で、
String ss;
InputStreamReader isr=new InputStreamReader(System.in); /*(1)*/
BufferedReader kbd=new BufferedReader(isr); /*(2)*/
ss=kbd.readLine(); /*(3)*/
っていうのは、
(1)でSystem.in(キーボード入力)からisrへ入力して、
(2)で入力されたデータisrをkbdでバッファリングし、
(3)でString型のssにデータをバッファから渡す。
と言った流れなのでしょうか?
Cと違って入力が一発で出来ないのですね。
>>155
readerに渡さずinputstreamのレベルで片を付ければ。
15736:03/03/29 00:43
>>156
それって、
BufferedReader kbd=new BufferReader(new InputStreamReader(System.in));
ってコトですか?
15836:03/03/29 00:45
すみません間違えました。
・BufferedReader kbd=new BufferReader
→BufferedReader kbd=new BufferedReader

>>157
人の話を聞いてくれ・・・
16036:03/03/29 00:50
>>159
すみません・・・。
言ってる意味が全然理解出来てないです。
161デフォルトの名無しさん:03/03/29 00:50
欧州では「Java」の読み方は「ヤバ」?
162デフォルトの名無しさん:03/03/29 00:52
>>161
やーふぁ
163デフォルトの名無しさん:03/03/29 00:56
>>161
オランダでは通りの名前で"Java Straat"という通りがあるが、
読みは"やーふぁ すとらあと"。
でも、プログラミング言語としての"Java"は"じゃわ"って感じで発音してる。
164161:03/03/29 00:58
>>162
thanks
public FFX2 get(int num);
じゃヴぁ
167デフォルトの名無しさん:03/03/29 01:07
J builderでWebアプリをつくるとき、
servlet・Beanはプロジェクト作成時にできたフォルダ下に置き、
JSPはtomcatのROOT下に置くようにしています。
問題なく動きはするのですがJSPだけTomcat下にもっていくのはわずらわし過ぎます。
JSPもJbuilderで作成したプロジェクト下に置けたりするのでしょうか?
拙い文章で申し訳ございません。
よろしくおねがいします。
Tomcatの設定をよく読め
169161:03/03/29 01:22
>>163
thanks
170デフォルトの名無しさん:03/03/29 01:45
林晴比古氏の新JAVA言語入門シニア編のエラッタってWebで公開されてるのでしょうか?
>>170
しらない。
まぁ、もとがもとなので。
部長がエレベータ内で屁をこいた。ワロタ。
明日から経理部です。がんがります。
173 :03/03/29 04:20
ウェブアップレットが見れないという人が多すぎる。
・OSはXPではなく2000.
・JavaJITコンパイラもコンソールもログも有効にしてある。
・すべてのクラスもHTMLもちゃんとアップロードしてあり、実際に見れる人もいる。
・インターネット一時ファイルやクッキーなどをすべて消しても映らない。
・JavaWebStartもインストール済み。
この条件以外で原因わかりますか?
なにせ素人なもんで、これくらいしかワカリマセン。誰か教えてください。

174 :03/03/29 04:29
ちなみにみられない人は ***.class not found って出るらしいです。
でもみられる人もいるので見つからないってのはおかしい・・・。
175デフォルトの名無しさん:03/03/29 04:37
>>174
JVMの種類によって、HTMLのアプレット呼び出しタグの文法が違います。
調べれ。
176デフォルトの名無しさん:03/03/29 05:25
>>107-108
サンクス。
ソート部分で毎回作り直さないといけないのかとか思ってました。
>>167
できる。
>>147
JAVAだけでやるのであればsynchronized文を使うしかないでしょう。
必死だな
String の文字列が与えれたときに、それを ',' などで分割して、 String の配列にしたい場合、
何を使えばいいのですか?
String ,StringBuffer をみても、適当なものが見つからなかったのですが。
>>180
java.util.StringTokenizerが目的に合いそうです。
>>180
split使えば?
>>182
split がありますね。^^;
見逃してました。

StringTokenizer でもいけそうです。
184デフォルトの名無しさん:03/03/29 11:52
北米版でJAVA質問相談専用スレ立ちました。
どうか北米の悩める留学生を助けてください。(今のところ救世主はいません。)
英語のままの場合が多いので英語にすこし自信がある方お願いします。
>>184
なんで2chなんやろうな?
いちおうリンク先 http://life.2ch.net/test/read.cgi/northa/1048901746/
>>184
誘導なしか。死ね。と。
保守
188 :03/03/29 16:36
>>175
HTMLタグが違うんですか?呼び出し方って
<applet code="****.class" width="300" height="50">
でいいんじゃないんですか?調べたけど分かりませんでした・・・。
>>188
何を使ってどのように調べたのか?
>>175 >>188
W3C標準にあわせて、
appletタグの代わりにpbjectタグかな?

appletでも問題ないはず。classファイルとhtmlファイルの場所が異なるとか?

まず、appletviewerで動いた?

クラスを複数使う場合はjarで圧縮することをお勧めします。
191 :03/03/29 17:01
>>189
手持ちの本で
>>190
見られる人もいるのでclassとHTMLの場所が違ったりすることもないです。
もちろんappletviewerでも動きます。
192 :03/03/29 17:04
>>190
jarで圧縮って2つだったら2つまとめるんですか?
>>184
英語つかえるんだったら
JavaRanchかSun DeveloperServiceのForumに逝くほうがよさそうだけど。
デフォルトのファイルエンコーディングを変えたいとか、
そう言う時にいちいちjavaコマンドに-Dオプションを渡さずに済むような
ドットファイルみたいなプロパティファイルの置き場所ってありますか?
195デフォルトの名無しさん:03/03/29 18:06
クラスメソッドやクラスフィールドっていつ、どういった
使うのですか?

staticある時とない時の違いがいまいちわかりません
>>192
Webでは複数のファイルをまとめてjarで圧縮した方がダウンロード速度が高まります。
詳しくは、jarコマンドについて調べてみてください。
197デフォルトの名無しさん:03/03/29 18:21
「メソッドを呼び出すときは必ずインスタンスを呼び出さなければならない」
とありますが
本やサンプルなど見ると、
必ずしもそうとはおもえないのですが。
198デフォルトの名無しさん:03/03/29 18:34
他のクラスのメソッドから文字列を戻り値としてもってきたいんですが、
途中で改行が入ったものをString型で持ってくることってできますか?
>>198
出来るよ。
>>197
「インスタンス」メソッドを呼び出すときは必ずインスタンスを呼び出さなければならない
ですよ。
「クラス(static)」メソッドはインスタンスいりません。クラス名だけで呼び出せます。
>>198
\nとか\rとか(環境によります)がはいっているだけですよ。
>>200
インスタンスは作るもののような気がしないでもない。
>>200
インスタンスは指定するもののような気がしないでもない。
>>202
必ずプログラマがnewをコールしなきゃいけないわけでもないので、
感覚として作るオンリーということはないな。Factoryパターンとかあるし。
>>204
じゃあ彼はインスタンスメソッド?を呼び出す際は必ずFactoryパターンを使ってるってこと?
>>205
しらんよ。つうか、そんなこと突っ込んで意味あるの?
>>206
>そんなこと突っ込んで意味あるの?

良い暇つぶし。
208デフォルトの名無しさん:03/03/29 19:19
インスタンスメソッドとクラスメソッドの違いって何ですか?
参考書はインスタンス情報とクラス情報を保持としか書いてない・・・
クラスメソッドはCの関数と同じだろ
>>209
ほう。
211202=204=206:03/03/29 19:30
>>208
実行時の違いは、インスタンスメソッドは、インスタンスのthis参照を暗黙に渡してる。
だから、インスタンスメソッド内でthis.ホゲとやると、thisのインスタンスフィールドとか
をよびだせるのよ。
クラスメソッドは、(渡すべきthis参照も無いので)thisを渡さない。
違いはそんだけ。
>>208
GoFのSingletonパターンというものを調べれば
その違いがよくわかる
213デフォルトの名無しさん:03/03/29 19:47
拡張子.javaが無いんですけどどこでインストールすればいいんですか?
>>213
質問の意味がわからぬ
>>213
メモ帳
216デフォルトの名無しさん:03/03/29 19:51
テキストでTest.javaとやって保存するとTest.java.txtになってしまいます。
フォルダオプションで調べても.javaが見つかりませんでした。
どうすればいいですか?
>>216
登録されている拡張子を表示しないオプションを外しましょう。
218デフォルトの名無しさん:03/03/29 19:53
>>217
どこのですか?
>>218
フォルダオプション。
220デフォルトの名無しさん:03/03/29 19:56
>>214,215,27,219さん
ありがとうございます
>>216
すべてのファイル(*.*)
222デフォルトの名無しさん:03/03/29 20:00
やっぱ解決しませんでした
223デフォルトの名無しさん:03/03/29 20:05
何をどうしても*.java.txtになってしまいます。
末尾の .txt を消せばいいじゃん
225デフォルトの名無しさん:03/03/29 20:09
保存するときに勝手に付いてしまいます。
>>223
じゃああきらめるしかないな。
「すべてのファイル」で.txtがついてしまうなら、そのソフトはOSごとあぼーんしたほうがいい。
>>225
ごめん保存する時に>>221でした。
だから保存した後で末尾の .txt を消せばいいだろデブ
229デフォルトの名無しさん:03/03/29 20:11
>>223
メモ帳はファイルを保存する時、ファイルの種類がデフォルトで
テキスト形式になっているから.txtが付く。
ファイルの種類ですべてのファイルを選んで.javaという拡張子を
つけて保存。
保存するときダブル区ぉーとで囲め

"Test.java"
フォルダオプションで拡張子表示してる?
232デフォルトの名無しさん:03/03/29 20:14
>>228
エラーが出て無理でした
ある時点で、それまでいくつのインスタンスが作成(new)されたかを
返すようなメソッドを実装しようとしてみれば、static method の意味が
わかるかも。
>>233
それってどういう使い道があります?
>>234
パフォーマンスのチューニングとか、
インスタンス毎にID振りたい時とか。
生き残ってるインスタンスをダンプしたりとか。
237デフォルトの名無しさん:03/03/29 21:19
dogetやdopostメソッドって
メソッド名を変えたら駄目でしょうか?

メソッド名って決まってるのでしょうか?
>>237
デザインパターンのテンプレートメソッドパターンです。
メソッドオーバーライドで振る舞いを変更するのです。
メソッド名を変えてしまうとオーバーライドになりません。
239デフォルトの名無しさん:03/03/29 21:21
>>237
スーパークラスのメソッドをオーバーライドしてるってことわかってる?
240デフォルトの名無しさん:03/03/29 21:37
>>238
じゃ全然関係ない自分で作ったクラスに
dopostメソッドなどを作っても
特に問題なしでしょうか?
>>232
そろそろPC初心者板逝きだな。

> エラーが出て無理でした
どんなエラーかは決して書かない理想的な初心者ですね。
>>240
お前は2ヶ月質問禁止。その間自分の力だけで勉強しろ。じゃないと一生バカのママだぞ。
>>240
コンパイルエラーはでないな。
>>242
一生バカボンのママだといいでつね(´ー` )
>>240
勝手にしてください。何につかうか知りませんが。
月刊ジャバワールドでJarOutputStreamを使ってJarファイルを作成する記事があったと思うんだけど、何月号かしらない?
>>213
メモ帳なんか使うな。
Emacsか秀丸インスコして使え
なんでC#の2chブラウザはあるのにJavaの2chブラウザはないんだろうね
>>248
あります。


はい、次の方。
ネットワークバイトオーダをホストバイトオーダに変換するメソッドはありますか?
C言語のntohs()のようなもの
>>250
ない、と思うが自作できるし、そもそも ntohs() とかって実行環境の
バイトオーダーを吸収するものだから Java で同等機能が必要なのか?
>>248
おまえが知らないだけ
アフォは死滅スレで吠えて来い
>>252が真なら>>252は死滅スレに行かなければならなくなるな。
254デフォルトの名無しさん:03/03/30 00:35
アプレットに2行のラベルって貼れるのでしょうか?例えば、

Label L1=new Label();
L1.setText("あいうえおかきくけこ");
add(L1);

で、setTextの内容を2行でアプレットに表示させたいのですが、
できるのでしょうか?表示したときに、

あいうえお
かきくけこ

となるようにしたいです。教えていただけませんか。
255デフォルトの名無しさん:03/03/30 00:43
eclipseって日蝕の蝕で
つまり
sunを蝕むという意味だと聞いたのですが本当ですか?

つまりSunにあからさまに敵意をむき出してるのですか?
256素人:03/03/30 00:45
すいません
ちょっと前にdogetとdopostの質問がありましたが
dogetとdopostの違いって何ですか?
>>256
HTTPプロトコルのお勉強。
Label L1=new Label("あいうえお");
Label L2=new Label("かきくけこ");
setLayout(new GridLayout(2, 1));
add(L1);
add(L2);
>>255
面白いね。どこでその情報を入手した?
total solar eclipse
261デフォルトの名無しさん:03/03/30 01:18
>>255
英和辞典でも調べれ
>>261
そんなことが載っている英和辞典ってどこにあるんですか?
>>256
postはボタンを押したとき
getはハイパーリンクを押したとき
じゃなかったっけ?
get が、よくURLで、?の後ろとかにくっついて入力やら値やらが渡される。
postは、環境変数で渡される。
>>263
大抵ういう風ニナッテマスが、それはHTMLformタグのmetod指定がPOSTになってるから。
&ハイパーリンクを押した時にブラウザがGETメソッドでリクエスト送信することに
たまたまなってるから。直接関係があるわけじゃないです。
266初心者:03/03/30 01:44
Exception in thread "main" java.lang.NoClassDefFoundError: hellojava
実行すると、こうなるんですが問題はなんなんでしょうか?
クラスがないってさ。
java hello.java って実行しようとしたでしょ。
java hello でやってみて。
>>264
POSTで渡したデータはなんという環境変数から読むの?
(実行時に) 「hellojava」というクラスが見つかりませんでした。
実行するときのクラスパスを見直してみれ

270267:03/03/30 01:46
と、思ったら、拡張子入ってなかった。ごめんね。
>>255
なるほど。
そう言われてみればアイコンも日食っぽいね。
.classって拡張子にしては長すぎる
>>268
サーブレットの話だよね?

request.gerParameter(キー);
>>273
標準入力から読むんじゃないの?
>>254
L1.setText("<html>あいうえお<br>かきくけこ</html>");
276274:03/03/30 01:50
すまん。サーブレットなら解析してくれるのがあるのか。
>>264
>>274
CGIをJavaで作るでつか?
>>276
うむ。doPost()なりdoGet()なりがコールされる時点で、APサーバが
きちんと解析を終わらせてメソッド引数オブジェクトの属性としてしま
ってくれている。

そのへんのこと全部やってくれるのもServletの便利な所の一つ。
>>278
PHPみたいだな。
どちらもWebが前提だから当たり前だけど。
280278:03/03/30 01:58
>>279
まあ、Web前提のフレームワークなら何でも当たり前だよな。
Perlダッテそういうモジュールあるでそ。
>>278
つうか、そのくらいやってくれんとWebフレームワークとして使い物にならんがね。
ь( ^ー゚)ひさびさに初心者大歓迎な雰囲気でつね。
>>176
ソートだったら自分で作らずともライブラリにあるわけだが
>>254
JLabel l = new JLabel();
l.setText("<html>あいうえお<br>かきくけこ");

swing の場合 html パーサが内蔵されているので
html の断片をテキストに与えるとそのように表示される
>>284
この場合って、htmlタグは要るのかい?
漏れの記憶だと要らないと思った。
>>283
Jarファイルの作り方、教えてくだされ。
これじゃうまく解凍できねぇのです。

byte[] data;
---
ByteArrayOutputStream baos = new ByteArrayOutputStream();
JarOutputStream jos = new JarOutputStream(baos);
JarEntry je = new JarEntry("test");
jos.putNextEntry(je);
jos.write(data);
je.setSize(data.length);
CRC32 crc = new CRC32();
crc.update(data);
je.setCrc(crc.getValue());
jos.closeEntry();
jos.close();
>>285
>>275のようにhtmlタグを書いたらHTMLタグが有効になるみたい。
288285:03/03/30 02:30
ちょっとしたコードで実験してきました。
お馬鹿な俺を攻めてくれ。

<html>無し →あいうえお<br>かきくけこ
<html>有り →あいうえお
         かきくけこ
>>286
パッケージの使い方をシランからヨクワカランが、それはエントリと
CRCしかwriteしてないぞ。いいのかオイ?
>>288
いや、投稿->配送されない->再投稿という流れがみてとれる。
291290:03/03/30 02:38
すまぬ。誤爆。高木先生のスレに書くつもりだた。
292290:03/03/30 02:38
こうか?
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>288

としたかったのだよ。
293286:03/03/30 02:41
>>289
これで、解凍できるものは解凍できる。20ファイル中3ファイルくらい。

でも、
JarEntry je = new JarEntry("test");
je.setSize(data.length);
CRC32 crc = new CRC32();
crc.update(data);
je.setCrc(crc.getValue());
jos.putNextEntry(je);
jos.write(data);

というようにJarEntryに値を設定したあとでputNextEntryしたらちゃんと動いた。
あ、仮圧縮して圧縮後サイズをもとめてje.setCompressedSizeもやった。
この仕様、どうにかならんのか?
>>288
<html>がなかったらhtmlなのかただの文字列なのかわからんだろ
しかし<html>で始まるただの文字列をと表示させるようと思うとめんどくさいな
>>294
&lt;と&gt;では代用できないようなんだが、どうしたもんかな。
頭に"<html>"をつけてやれば、解決でちた。
DOSマドで、エラー出力ががとれないので
どうしたらいいか聞いたら

リダイレクト 2> でとれっていわれたんだけど
とれない。

2>ってなんですか?

あと、エラーとるほうほうありますか
298デフォルトの名無しさん:03/03/30 05:36
>>297
>はWindowsNTのDOSプロンプト用の、リダイレクト指定です。
2は標準エラー出力のファイルディスクリプタ番号です。

プロセス名 2> ファイル名
とやると、プロセスが標準エラー出力に吐き出したテキストを
そのままファイル名のファイルに書き込んでくれますよ。

ただ、「NT用」です。NT/2000/XPで無いと機能しないです。

IDEをつかって起動するのがイイデスヨ。大抵はIDE内部のテキス
トエリアにリダイレクトしてくれますから。

あと、秀丸のマクロとか、Emacsとかエディタから起動する
設定して、標準出力、標準エラー出力をそのエディタにはく
ようにするというのもイイ!よ。
>>298
どうもありがとう。
とてもわかり易かったです。
300デフォルトの名無しさん:03/03/30 05:39
array[0] で 1つできてしまうのはなんでか?
301デフォルトの名無しさん:03/03/30 06:09
>>300
質問の意図が今ひとつ不明ですが…

int[] array = new int[0]で、長さ0の配列オブジェクトができるのは、
そういう仕様だからです。

Javaで配列は、配列オブジェクトという特殊なオブジェクトです。Cとかの
配列とは全く違います。(array instanceof Object)はtrueになります。
302デフォルトの名無しさん:03/03/30 06:18
>>301
いいえちがいます。

int[] array = new int[0];

array[1] = 0;
ができてしまうんです。

つまり

new int[0] が new int[1] と等価なのはなんでか? と言う質問です。
303デフォルトの名無しさん:03/03/30 06:19
UNIONってどうやればいいの?
304302:03/03/30 06:20
>array[1] = 0;
じゃなくて
array[0] = 0;
だった
>>302
できねぇよ。int[] array = new int[1]; array[0] = 0; と勘違いしてねー?

C:\>copy con a.java
public class a{
public static void main(String[] args){
int[] array = new int[0];
array[0] = 0;
}
}
^Z
1 個のファイルをコピーしました。

C:\>javac a.java

C:\>java a
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at a.main(a.java:4)

C:\>
>>303
クラスの派生/継承を使ってください。
>>305
バージョン古いんじゃないの?
308デフォルトの名無しさん:03/03/30 07:08
sessionってどういうときに使うのですか?
>>307
C:\>java -version
java version "1.4.1_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01)
Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)

一応新しい奴なわけだが

>>307
クライアント側の情報をサーバ側で一時的に保持しておきたい場合など。
具体的には前の画面で入力した文字列を別の画面で使いたい場合なんかに使う。
>>309
もっと新しいのあるけど…

java version "1.4.1_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_02-b06)
Java HotSpot(TM) Client VM (build 1.4.1_02-b06, mixed mode)
session ってなに?
>>300 >>302
コンパイルエラーにならないって事なら、多分仕様どーりです。

実行環境が (new int[0])[0] = 0; を許すならバグ報告しておいて。
>>310
1.4.1_02(Windows用)でも実行時エラーがでるよ。今試した。
public class Array {
 public static void main(String[] args) {
  int[] array = new int[0];
  array[0] = 1;
  System.out.println(array[0]);
 }
}
実行するとこんな感じね。
java.lang.ArrayIndexOutOfBoundsException: 0
at Array.main(Array.java:4)
Exception in thread "main"
>>302ができるというなら、JREのバージョンとOSとコードを見せてくれ。
>>311
どのsessionよ?
>>313
って言うか0個の要素を持つ(要素を持たない)配列の0番目の要素があるわけがない。

後、実行時エラーじゃなく例外と言いなさい。例外と。
>>256
みんな HTTP を理解していないのだが、
簡単に言うと、

get http://〜/ のうしろに & とかつけてパラメータを送るヤツ
post HTTPリクエストのContentにパラメータを入れて送るヤツ

で、get はあまり大きなデータを送れないってとこかな。
317デフォルトの名無しさん:03/03/30 15:10
>>316
POSTでもhttp://〜/ のうしろに & とかつけてパラメータを送れるんですが。

> みんな HTTP を理解していないのだが
がなければ問題ない発言なんだけどね。

晒しage
318257:03/03/30 15:14
>>317
実際そうだと思うけどな。


263 名前:デフォルトの名無しさん 投稿日:2003/03/30(日) 01:32
>>256
postはボタンを押したとき
getはハイパーリンクを押したとき
じゃなかったっけ?

264 名前:デフォルトの名無しさん 投稿日:2003/03/30(日) 01:37
get が、よくURLで、?の後ろとかにくっついて入力やら値やらが渡される。
postは、環境変数で渡される。

265 名前:デフォルトの名無しさん 投稿日:2003/03/30(日) 01:39
>>263
大抵ういう風ニナッテマスが、それはHTMLformタグのmetod指定がPOSTになってるから。
&ハイパーリンクを押した時にブラウザがGETメソッドでリクエスト送信することに
たまたまなってるから。直接関係があるわけじゃないです。


バカのバーゲンセールか。と。
特に>>264な、CGIで環境変数にパラメータを入れるのはGETだ。
>>318
265がいちばんただしい気がする。
submitボタンを押したら、それにバインドされたメソッドが呼び出される。
リンクを押したら、それにバインドされたメソッドが呼び出される。

こーゆー、イベントドリブンのような動きをするAPサーバーがあるんだけど、
それを主でやっている人の中には、リンクを押したときに、formの入力が送られてこないのを
不思議に思っている人がいたよ〜
>>319
>>265もあそこまでできるんだからちゃんと訂正してやればよかったのにな。

っていうかなんかWeb制作板レベルでしゃべってるような気がしてならん。
>>317 >>318
てか、みんな、答え書いてねーじゃんかよ、バカども!
>>322
dopostとdogetの違いだっけ?
文字数が違うとかくらいしか答えれないな。他に情報ないし。
>>323
servletと推測できてJava検定級レベル。
325デフォルトの名無しさん:03/03/30 16:38
Frameを継承して、mainメソッドを定義したMyFrameクラスを定義しました。
mainメソッドでMyFrameをnewして、mainメソッドからreturnしました。

そこで質問です。
mainのスレッドは処理を終えたのに、なぜプログラムは終了しないのでしょうか?

また、GUIから入力があると反応するのですが、MyFrameのメソッドを呼んでいる
このスレッドは誰が持ち主でどこから来ている物なのでしょうか?
>>325
スレッドが残ってるから

> どこから来ている物なのでしょうか?
OS → VM → MyFrame
>>326
すみません。setDaemon(true)したスレッドがmainスレッド終了と同時に落ちてしまいます。どうしたらいいでしょうか?
328デフォルトの名無しさん:03/03/30 18:10
JavaでRDBを扱い際、いろいろ便利なフレームワークが出てるけど、
どの辺がオツツメなんでしょうか?

[HYBERNATE]
http://hibernate.bluemars.net/1.html
[Caster JDO]
http://www.castor.org/jdo.html
[ObJect Relational Bridge (OJB)]
http://www.terra-intl.com/jakarta/ojb/
[Torque]
http://db.apache.org/torque/
>>327
setDaemon(false)
330デフォルトの名無しさん:03/03/30 19:25
キャストの意味がよくわかりません
(String)や(Int)みたいに文字列にしたり、数値に変換したりだとなんとなくわかるのですが
自分で作ったクラスなどにキャストだといまいち意味がわからないのですが・・・
>>330
キャストはコンパイラへの指示。その時点で実際の値は変化なし。
>>331
(int)0.1
>>320
それはASP.NETでも同じ。
好き・嫌いに関わらず今後はそういう方向に向かうでしょう。
334デフォルトの名無しさん:03/03/30 19:48
質問です。Javaではポインタなどがなさそうですが、
関数の戻り値として複数の値を返したい場合、
もしくはコールバイリファレンスを使用したい場合、どうすればよいのでしょうか?
グローバルで定義して、それを書き換えるしかないのですか?
335デフォルトの名無しさん:03/03/30 19:53
>334
ポインタはある。ポインタの演算がないだけ。
メソッドの引数に値を渡すとき、プリミティブ型は値をコピーして渡すが、オブジェクト方はポインタを渡してる

で、複数の値を渡したい場合はjava.util.ArrayListなどにデータをいれて、受け取った側でそれを解釈するとよいかも
>>334
オブジェクト型は参照型なのでそれを利用します。
>334
ポインタはある。ポインタの演算がないだけ。
メソッドの引数に値を渡すとき、プリミティブ型は値をコピーして渡すが、オブジェクト方はポインタを渡してる

で、複数の値を渡したい場合はjava.util.ArrayListなどにデータをいれて、受け取った側でそれを解釈するとよいかも
 
338334:03/03/30 19:58
回答ありがとうございます。
Cの知識しかないので、まだよくわからないんですが、
基本的に、関数の引数の値を関数内で書き換えた場合、
関数の処理後の、引数の値は変わっているってことなのですか?
>>338
人の話聞けや。
340デフォルトの名無しさん:03/03/30 20:02
jakarta-tomcat-4.1.18をインストールし
環境設定をそれぞれ設定し
tomcatを立ち上げようとすると
コマンドの起動画面が出てきますがすぐに消えて起動しません
教えてください。お願いします

ちなみにフォルダパスはデフォルトで
C:\jakarta-tomcat-4.1.18\catalina\src\binの直下のstartup.bat
です
>>339
Cの知識しかないので、日本語も読めません。
次スレからスレタイの「初心者大歓迎」を外せ
343334:03/03/30 20:10
どうもすいません。
オブジェクト型とプリミティブ型の違いがあまりわかっていません。
結局、オブジェクト型を使えってことは、
いちいちクラスの設計が必須ということなんでしょうか?
344デフォルトの名無しさん:03/03/30 20:14
>>340
ちなみに同じやり方で
tomcat3.2.3でインストールし環境を設定すると
バッチもうまく起動し、画面も表示されます

3.2.3の場合
C:\jakarta-tomcat-3.2.3\bin
ですが、このようなディレクトリの構成で違ってくるのでしょうか?
>>343
自分で設計せんでもAPIがあるだろ。
>>343

> 結局、オブジェクト型を使えってことは、
> いちいちクラスの設計が必須ということなんでしょうか?

そうだね。自分で設計することも、よくあります。
あるいは、すでに設計されているクラスを使う、という手もある。

例えば、平面状の座標 x, y という2つの値を、メソッドから返したい場合は、
(2つの値をメソッドから返すのが無理なので)Point というクラスを使って、
そのインスタンスをメソッドから返すようにするとか。

すでに、java.awt というパッケージに、Point というクラスがあるので、
この場合は使える。
>>343
プリミティブ型にはラッパークラスがすでにある。
後のクラスやら配列はオブジェクトだから問題なし。
348334:03/03/30 20:21
なるほど、なんとなくわかってきました。
iアプリを作ってるので、一度きりしか使わないクラスなど、
あまり余分なコード書きたくなかったのです。
ありがとうございました。
349デフォルトの名無しさん:03/03/30 20:25
>340
おれも最近にたような現象ではまったてた。
俺の場合はtomcatが起動しようとするポートをすでにローカルプロキシで使ってた
ポート変更したら起動したよ
>>349
それって例外でなかったっけ?確か。
351デフォルトの名無しさん:03/03/30 20:41
>>349
>俺の場合はtomcatが起動しようとするポートをすでにローカルプロキシで使ってた

すいませんどういう事でしょうか?
初心者なんでいまいちよくわかりません
申し訳ないです
>>351
>初心者なんでいまいちよくわかりません

じゃあtomcatでservletなんて大それたこと考えない。
353デフォルトの名無しさん:03/03/30 20:43
Mapでkeyにintやlong使うのは無理なのでしょうか?
>>353
無理です。IntegerやLong使ってください。
または、そういう値をキーにできるマップを自作するかネットで探しなさい。
どうしても欲しくて、自作した人がいるから。ポインタ忘れたけど。
>>352
JDK、tomcat、サーブレット、JSP
このあたりはJavaの入門だろ?
356349:03/03/30 20:52
>350
でなかったんだ、それが
eclipseから起動したりしてログをみようとしたんだけど、いまいち理由がわからんかった
ちなみにローカルプロキシっていうのは

>351
tomcat3を立ち上げたままtomcat4を立ち上げようとしてないよね?やってたら止めるべし
tomcat3の初期設定をしたのが君じゃなければ、設定した人に相談するべし

おれの環境ではC:\JavaSoft\jakarta-tomcat-4.1.18-LE-jdk14\binで動いてるので
バイナリビルド(インストーラなし)を落としてきて、解凍した物をそのままつかうべし
>>355
だから>>351は入門以前なんだろ。きっと。
358349=356:03/03/30 20:53
ちなみにローカルプロキシっていうのはProxyomitronね
>>tomcat、サーブレット、JSP
Javaの入門かもしれませんが、実は「プロセス間通信」「HTTP」
などの知識が必要なので、必ずしも 初心者向けの話題では有り
ません。
少なくとも、PC初心者とプログラミング初心者ではその技術レベルは全然違うだろう。
361デフォルトの名無しさん:03/03/30 21:00
>>356
ありがとうございます

tomcat3は立ち上げていません(再起動も何度もしました)
初期設定をしてのは全て自分です(3.2.3と同じやり方です)
ちなみに解凍したものをそのままのディレクトリで使っています

何度もアンインストールしたり再インストールしているのですがどうしてもうまくいきません
362デフォルトの名無しさん:03/03/30 21:03
やさしいJavaと言う本を読んで勉強しているのですが、
インターフェースと抽象クラスの違いがよくわかりません。
インタフェースはこのようなときに使い、抽象クラスはこのような時に使う等と
具体例を出して教えていただけないでしょうか?
363デフォルトの名無しさん:03/03/30 21:08
>>361
環境変数tomcat_homeとかcatalina_homeとか違うディレクトリになってたりしない?
>>362
トラックとF1カーを生成したいとき、両方のベースとなる車を定義しておきたいときは抽象クラス。

車とコンピュータとか、全く違うものに「検査」という共通の仕事を課したいときはインターフェース。


・・・・もっと賢い人のレスを待ってください。
365デフォルトの名無しさん:03/03/30 21:14
>>363
classpath = C:\jakarta-tomcat-4.1.18\catalina\src\conf
tomcathome = C:\jakarta-tomcat-4.1.18
です
366デフォルトの名無しさん:03/03/30 21:16
>>364レス有難うございます。
感覚的にわかりやすい説明有難うございます。
しかし、私が困惑してることは、インターフェースと抽象クラスの働きが同じような気がするんですよ。
同じような働きをするメソッドを使いたいときはインターフェースを使うってことでいいのでしょうか?
たびたび抽象クラスとインタフェースの使い分けについての質問があるけど
質問者の多くにとってはまだそんなことを考えるべき段階にないと思う。
抽象クラスやインタフェースはもっと他の経験を積んでからの方がよいのではないか。
>>363
catalina_home
・・・?
369デフォルトの名無しさん:03/03/30 21:25
>>367レス有難うございます。
確かにそうかもしれませんね。でもせっかくオブジェクト指向の言語を使ってるので、何となくきれいなソースを書き上げてみたかったのです。

>>362
interfaceはコンクリートメソッドをもたない抽象クラスです。
クラスとの違いは多重継承できることです。
ただしJavaではinterfaceの継承はimplementsを使います。

ということから、実際の用途は異なります。
クラスの継承は実装を継承するときに使います。
interfaceのimplementsは、共通のインターフェイスを実装するときに使います。

たとえば>>364のトラックとF1カーの例ならエンジン・タイヤ・運転席を持つといったインターフェイスの部分しか共通ではないので
interface car{
 タイヤ
 エンジン
}
としておいて、
class formulacar implements car;
class track implements car;
などとして
class f3000 extends formulacar;
class f1 extends f3000;
class 軽トラ extends track;
class 軽バン extends 軽トラ
などとしたほうが良いです。

このときformulacarやtrackもinterfaceとした方がいいという考え方もありです。

つまり、interfaceは、こんなものが欲しいけど中身はどうでもいいということを主張するために使います。
そして、classを「こんなもの」の仲間に含めたければinterfaceをimplementsするわけです。
>>370
チャレンジャブルだなぁ。
372370:03/03/30 21:30
ついで。
実際にはinterfaceの多くの使い方は、コールバックの実現です。
つまり、ボタンが押されたときこのメソッドを呼んでおくれ、とか、スレッドが始まったらこのメソッドを呼んでおくれ、とかいうときに、そのメソッドをいろんなクラスに自由に組み込むために使います。

たとえばCanvasクラスのpaintメソッドは、そこらへんのクラスにちょっと付け加えるというわけにはいかず、必ずCanvasクラスを継承したクラスで実装する必要があります。
でも、ActionListenerのactionPerformedメソッドは、そこらへんの、たとえばFormを継承したクラスにimplementsすることができます。
>>370
それって親子関係が無くなって醜く横に広がらない?
初心的な質問で申し訳ないんですが,
J2SE SDK 1.4.1 をインストールした結果,
なぜかjarファイルへの関連付けだけがされていないようなんです.
関連付けるにはどうしたらよろしいんでしょうか?
よろしくお願いします.
動作OS Windows XP
375370:03/03/30 21:33
補足
他の使い方としては、クラスにしるしをつける、という使い方があります。Serializableみたいな。
もうひとつは、ライブラリを使う側はinterfaceであることを意識する必要はないのですが、ライブラリの仕様を決めるために使います。
java.util.Mapとかjava.sql.ResultSetとか。

漏れはその3つの使い方しかしりません。
>>374
何でそんなもんに関連づけが?
377370:03/03/30 21:35
>>373
実際にフォーミュラカーとトラックはフレーム・サスペンション構造など全く違うので、継承関係はなく横の広がりだと考えるなら、実態を反映しているからアリだと思います。
そう考えない場合はナシです。
370にはオブジェクト指向の勉強をタプーリして欲しい。
そんな行き当たりばったりの使い方を初心者に教えちゃダメだよ。
>>376
ダブルクリックして起動。
380370:03/03/30 21:37
>>378
実装での使い方と概念的なものと、両方しる必要はあると思います。
381374:03/03/30 21:38
関連付けられていないので,
ダブルクリックしての起動ができなくて困っているんですTT
382370:03/03/30 21:39
初心者の場合は、まず実装面から入った方が理解しやすいです。
実装パターンをいくつか知ってから、概念的なことを勉強する流れの方がよいと思います。
383デフォルトの名無しさん:03/03/30 21:48
>>370さん詳しいレス有難うございます。

難しくて、あまり意味がわからなかったのですが、
>>370>>372では似たような動作が欲しい場合はinterfaceを使い
実装したクラスで動作を定義せよということですよね。
それだと、抽象クラスと同じ働きだと思うのです。(勘違いだったらごめんなさい)
抽象クラスは1個しかextendsできないけど、interfaceは何個でもimplementsできるという
差が使い分けのポイントなのでしょうか?

>>375はそこまでレベルが言ってないので、よくわかりませんでした。

>>382全くそのとおりだと思います。上手くインターフェースを実装してるソースって、
どっかに転がってませんかね?
384370:03/03/30 21:50
>>373
というか、横につながりをもたせるのにインターフェイスを使うわけで。
385370:03/03/30 21:51
>>383
JAVA_HOME\src.zip
386デフォルトの名無しさん:03/03/30 21:53
>>385逝って来ます。
387370:03/03/30 21:54
>>383
>>372>>375に書いた意味がわかるまでは自分でinterface定義しない方が無難かも。
型(インターフェース)と実装(実装クラス)の分離のためにinterfaceはある。
class カローラ implements 車
class マーチ implements 車
運転者は"車"interfaceの操作さえできればよいし、実装クラスが何の型かを
全く意識する(カローラかマーチか)必要もない。
ただ"車"型だと思って扱えばよい。
こうすることで、実装クラスの入れ替え、仕様変更にも柔軟に対応できる。
車種の追加(アプリの機能追加)の際にも使う側(運転者)はソースの変更が
いらない。
抽象クラス:その一族だけが持っていればいいインターフェース。
(田辺家#8年前の田子八おじさんの変死事件のことをひた隠す()とか)

インターフェース:複数の関係ない一族間で共通に持っていてほしいインターフェース
(国民の義務#納税する())

>>389
具体化だからextends 車の方が好きだなぁ。
>>391
最近の流れは389かも。
javax.servlet.http.HttpSessionとか、
java.sql.Connectionとか。
サーブレットコンテナによる実装の違いとか
JDBCドライバによる実装の違いを意識しなくて済むようになっている。
>>392
ポリモフィズムはどうするの?

ああ、そもそも継承してないからオーバーライドも減ったくれもないのか。

何か引っかかるんだよなぁ・・・ちょっと考えてみよっと。
394370:03/03/30 22:21
>>391
>>370に書いたように、車といっても、種類によって実装はまったくことなるので、インターフェイスの方がよいと思います。
>>394
好きだ。に、の方がよいと思います。ってのもすごい書き方だな。
java vmのserver vmはclient vmと何が違うんですか?
単純なバブルソートだと3倍くらい速くなるらしいですが。
中の人がシャ(ry
server vmだとclient vmよりも長期間連続運用を仮定した
最適化・動的コンパイルが行われたはず
399デフォルトの名無しさん:03/03/30 23:48
server vmって、どこからダウソするのん?
http://java.sun.com/j2se/1.3/ja/docs/ja/guide/performance/hotspot.html

多分APIドキュメントに同梱されてると思うよ。1.4にはまだ日本語訳が無いみたいね。

401デフォルトの名無しさん:03/03/30 23:55
>>400
クスコ
Sunの1.3Server VMと、IBMの1.3VMとでは、
大きな違いありまつか?
402デフォルトの名無しさん:03/03/30 23:57
ゲーム改造ってどうやるんですか?バイナリてきすとでひらくって
ゆうとこまでしか解りません詳しい人教えて下さい
>>402
そのゲーム次第。さようなら。
>>401
ServerとかClientとかついてるのは、HotspotVMです。
IBMの1.3VMはClassicVMのコンパチだったはず。
405デフォルトの名無しさん:03/03/31 00:08
>>404
クスコ。なるほどね
406デフォルトの名無しさん:03/03/31 00:11
大きめの(数百kb)Stringオブジェクトが2つあるとして、
その内容の違い(diff)を得るための良い方法ってありますか?
String#equals()は不適切?
>>406
何で単位がキロビットなんですか?
408デフォルトの名無しさん:03/03/31 00:13
Log4jを使用したいんですが
コーディングの方法としては
自分で条件を設定して
その条件に合えばレベルをセットして
logger.error("This is error.");
などとやればいいのでしょうか?
なんかこのやり方だとSystem.out.plintln()
と同じになってしまって、有用性がわかりません
出力先をファイルとかにするのなら
コード書くのは楽だと思うんですが・・・
それともこういうコードの書き方は間違ってるんですか?
>>408
コード側はそれしかないよ。出力先を変えるのは別の場所。
410デフォルトの名無しさん:03/03/31 00:14
>>407
キロバイトです
>>408
コードの中身はSystem.outとあまりかわらない。
レベルを6段階設定できて、実際に出力するレベルを設定ファイルで切り替えられるのが有用性。
標準出力かファイル出力か、等も設定ファイルで選択できる。
412デフォルトの名無しさん:03/03/31 00:15
>>407
キロバイトはkB。
kbはキロビット。

ちなみに、Mはメガで、mはミリ。
414408:03/03/31 00:20
レスありがとうございます
あまりにもあっけなく作業が終わったので
コレでイイのかな?と思ったわけです
>>413
マイクロを半角でかくと?
String型変数に格納された文字列を大文字、小文字に簡単に変換する方法を
教えて下さい。byte[]に戻して一文字ずつ0x20を足す、引くしかないんですか?
417デフォルトの名無しさん:03/03/31 00:26
>>416
そんぐらいの知識あるんなら
Doc見れば見つかると思うが・・・
418デフォルトの名無しさん:03/03/31 00:28
>>416
toLowercase()
toUppercase()
>>417
何のキーワードで探せばよいのかわからないのです。
ヒントをお願いします。
>>418
助かりました。ありがとうございます。
422デフォルトの名無しさん:03/03/31 00:34
javaで、2つのファイル内容のdiff取る方法ってありますか?
>>415 u
デバッグ用コードとリリース用コードとを使い分けたいのですが、
C言語の#ifdef #endifのようなものは無いんですか?
コード或いはコンパイルスイッチを一箇所変えるだけでその他のコードを
有効、無効に切り替えたいのです。
皆さんはどのようにデバッグコードを入れているのですか?
425デフォルトの名無しさん:03/03/31 00:47
アサーションのこといってるの?
>>424
AspectJ使いなはれ。
その使い道にとっては、賢いプリコンパイラだと思えばヨロシ。
深い理屈があるらしいが、ソノヘンはよくわからん。
427デフォルトの名無しさん:03/03/31 00:49
>>424
Logging API使うんじゃだめなの?
開発用のログ出力モードと、リリース用のログ出力モードを
切り替えられるじゃん。
別にログ出力だけに限らず、デバッグ用のコードとリリース用のコードを
切り分けられる。
>>423
自作すれば出来るが、自動でやってくれるような API はない。あるいは
Runtime#exec("diff [ファイル1] [ファイル2]") で済ますか。

>>424
Java だからといってプリプロセッサを使っちゃいけないというルールは
ない。Ant とかに無いのか? よく言われているのはブール定数と条件分岐
を使う方法だが。

public static final boolean DEBUG = true or false;

if(DEBUG){
  System.out.println("hoge");
}

DEBUG = false にしたときに if(DEBUG) のブロックが丸ごと抜けるのは
バイトコードレベルで確認済み。
429426:03/03/31 00:51
>>427
「リリースモードでは何も出力しない」に設定しても、ちょっとLoggingAPI
のメソッドコールを辿る作業をしてしまうからね。性能にちょっと影響がで
てしまう。それでもよいならソレガヨイ。
>>428
それが便利で、現実それでやってる人が多いとおもうのだけど、問題は
「コンパイラの最適化実装なんぞにたよっていいのか?」ということ
だね。いいのならオケですの。
>>424
assert使えという感じもするが、どっかのクラス(Hogeとする)で
public static final boolean DEBUGを定義しておいて

if(Hoge.DEBUG)
  debug_part;

というコードをかけば当然DEBUG==trueのときだけ有効
(falseにするとコンパイラの最適化でこの部分は消えるのでパフォーマンスも落ちない)。
432424:03/03/31 00:57
皆さんどうもありがとうございます。
取り敢えず428さんの方法が簡単そうなので
使ってみようと思います。
433デフォルトの名無しさん:03/03/31 01:07
Eclipseのコード補完、テンプレートを自分で設定できる。

 if(DEBUG){
   System.out.println("{$CURSOR}");
 }

つーテンプレートをdbgというコマンドに設定すると、

"dbg" + [CTRL]+[SPACE]で、上のコードが入力され、
{$CURSOR}の位置にカーソルが合わせられるんで便利。
レスのつくスピードがすごいな。
チャット状態?
Javaっていいの?
> if(DEBUG){

これ激しく汚いんでLoggingAPI使ってくらはい。
>>430 条件コンパイル用途に使うためにJava言語仕様ではコンパイル時の
最適化を期待して、わざわざifにおける到達不能文のコンパイル時の
チェックを甘くしているから、堂々と使っていいんじゃないかな。
>>436
別にリリースフェーズで抑制したいことがログ出力だけとは限らんだろ。
>>437
そうだね。それに「プリプロセッサが無いって #ifdef はどうする気だ」
って質問に JDK 1.0 の頃からずっと Sun 自身が回答してきたソリュー
ションだし。
>>436
この場合にLoggingAPI使うくらいならAspectJの方がよさげ
441デフォルトの名無しさん:03/03/31 04:29
Java開発でのクライアント選定の基準ってなんでしょう?

1.ブラウザ
2.アプレット
3.アプリケーション

2と3はJavaWebStartとJavaのセキュリティ設定の向上で
ほとんど差が無いような気がします。
1をつかうか使わないかは、ユーザの要求がブラウザのGUIで満足できるかできないかだと思いますが、
認識あってますか?

意見を求みます!よろしくです!
>>441
エンドユーザーの環境をコントロールできるかどうか。
443325:03/03/31 06:57
>>326
どこでスレッドを作っているのですか?
Frame Window Conponent を追いかけていっても、みつからないのですが。
peerでつくられるの?
>>443
EventDispatchThreadは、AWTやらSwingのインスタンスをつくると、
自動的にイッコだけ内部で作られるのよ。デバッガで起動して、スレッド
状態ダンプしてみそ。AWTEventDisptachThreadってのができるから。
>>342
「初心者無視!Java相談室」を復活させようか?
446デフォルトの名無しさん:03/03/31 11:38
javaでオミトロンみたいなのを作りたいのですが
ローカルプロキシサーバと
正規表現でフィルタリングするという方法でよろしいですか?
>>446
オミトロンって何?
448デフォルトの名無しさん:03/03/31 12:21
Proxomitron
というフィルタリングしてくれるソフト
ブラクラやサイコクラッシャなページを
弾くなどなかなか良さそうなソフト
“Next’ボタンがうまい事動きません。 ご指導よろしくおながいします。

if (e.getSource().equals(nextBtn))
{
if (m.isEmpty())
{
msg.setText("No Record is in the Collection");
}

Iterator pointer = m.keySet().iterator();
while (pointer.hasNext())
{
Object key = pointer.next();
Object value = m.get(key);
String name = (String)key;
Employee emp = (Employee)value;
msg.setText(name +"," +emp);
}
msg.setText("No More Record");
}
どんな風に動かないのかがわからんちん
予想通りに動かないのか(もしそうならどんな予想か
このステートメント自体通ってないのか
ちなみに途中で標準出力しまくるとおもしろいよw
>>449
横"ちなみに"レス
ここはこうで構わんぞ
if (e.getSource() == nextBtn)
まぁ equals をオーバーライドしてるなら別だが
>>450
えっと、レコードはあるのに 'No More Record'のメッセージに逝ってしまうのです。whileをキャッチしてないもよう。

>>451
そうですよなあ。そちらの方がタイプするのも楽になるし。。。
次回から使用してみまぁす。
453デフォルトの名無しさん:03/03/31 13:30
>>445
「初心者歓迎Oak質問スレ」と題して
中身はJavaスレにすれば本当のJava初心者は寄ってこなさそうだけど
どう?初心者&アンチ厨は入らずに意味のある議論が出来そうなんだが・・・
すぐバレるかな?
454デフォルトの名無しさん:03/03/31 13:32
sendmailサーバにメールを送信してその届いたメールの内容を取得して
指定したデータベースに登録するようなプログラムを作りたいんですが
できるのでしょうか?
>>453
荒らしアンチ厨は、スレタイがそっくりなことに目をつけて
Javaという言葉入っただけで直ぐに荒らしそうな予感。
456デフォルトの名無しさん:03/03/31 13:36
>>453
さらに「Java」という言葉は禁句にすれば
かなり、フィルタかけれるな
あとは、JDBCやJ2EEなどの頭の「J」を「O」に変えれば完璧
JDBCがODBCになっちゃってわけわかんねーよ
「初心者歓迎あの言語スレ」>コレ最強
>>454
sendmail使わずにJames(メールサーバー)使えばあなたの要件満たせそうです
DB使うことも最初から考えて作られてる
>>454
y
>>457
ネタスレ必至
「初心者歓迎『クライアントじゃ弱いけどサーバーサイドなら、
なかなかどうして&ケータイとかでもつかえて
ほら、一回書けばどこでも動くっ』て言う例の言語スレ」









「タイトルが長すぎます」って言われました
462デフォルトの名無しさん:03/03/31 14:44
URLを判定したい場合。
http://www.someaddress.org/file.html
http://www.someaddress.org/directory/
は問題ないとして、
http://www.someaddress.org/directory_or_file

というような、末尾のスラッシュが無くて、ディレクトリ名か
ファイル名かわからんときの判定方法って、ありますか?
>>461
Javaは時間経過とともにマシンのスペックがあがるたびにクライアントサイドに
強くなっていきます。これぞJava進化論!!
>>462
じゃあまず、そのときのディレクトリ名とファイル名の定義をしてもらおうか。
http://www.someaddress.org/file.html/
だと、それはディレクトリ名?ファイル名?
465462:03/03/31 15:07
>>464
/file.html
  →ファイル
/file.html/
  →ディレクトリ
/file
  →ファイルかディレクトリかわからん

このように、拡張子が無くて末尾にスラッシュが無い場合です。
>>449
もー解決してると思うけど…

分岐後に return するとか、 if の後の else とかが全く無いので
絶対に msg.setText("No More Record"); に逝くんだが。
>>465

> /file
>  →ファイルかディレクトリかわからん

それは最後にスラッシュが無いので、ファイル名です。

たとえば、下記のURLにアクセスした場合

http://www.someaddress.org/directory_or_file

サーバは、directory_or_file というファイルがあればそれを返します。
directory_or_file というファイルが無い場合は、

御親切なことに、

  「directory_or_file というディレクトリを指定しようとして、最後にスラッシュを
  付け忘れたのかもしれない」

  と仮定して、directory_or_file というディレクトリを探しに行って、
  もし、directory_or_file というディレクトリがあれば、
  キチンとスラッシュをつけたURIをステータスコード301で返してくれる

こともあります。

468465:03/03/31 16:09
>>467
おお、なるほど。
ステータスコードで判定するって方法が使えそうですね。
ありがとうございます。

ちなみに、こんなライブラリ使ってますが、便利です。
http://www.slayers.nu/~kumasaka/Gyoumu/HTTPClient/docj/index.html
JTextField で、awt の TextListener の textValueChanged に対応するものを実装したくて、
getDocument() で得られた Document に DocumentListener を使ってみたのですが、
IME を使っているとき、変換前の文字も含めて getText() で得られてしまいます。
それが便利なときもあるとは思いますが、
そうでなくて変換後に Event が飛ぶように、
あるいは変換中か変換直後かを調べるようにするには、どうしたらいいでしょうか?
471デフォルトの名無しさん:03/03/31 21:39
キャストで
(int)aaaa
とやるのと
parseInt.aaaa
setInt.aaaa

とはどう違うのですか?
どちらもInt型に変換だと思うけど
>parseInt.aaaa
>setInt.aaaa

コンパイルエラー。
>>471
>parseInt.aaaa
>setInt.aaaa
両方とも少なくともキャストではありません。
474デフォルトの名無しさん:03/03/31 21:46
>>473
Int型に変換する手段として
>>474
だからそんな訳の分からん文法はない。
>>474
>Int型に変換する手段として
Int型ってのは何?
int型ならわかりますが…
477デフォルトの名無しさん:03/03/31 22:11
>>476
ごめんごめん、打ち間違いです

Integerクラスを使って
int aaa
aaa.parseInt(String s)
です
>>477
intはプリミティブ型であるのでメソッドは持たない。
>>477
まだ、間違ってるような気がしないでもないが、意味は通じた。

とりあえず、キャストの方。

キャストは、その値がキャスト後の型に変換(?)できない場合は、
キャストできないのですよ。

たとえば、IntegerのparseIntメソッドは、String型を引数に取れるけど、
そのString型は、キャストでint型にできませぬ。
String str = "hoge";
int n = (int)hoge; ←あぼーん。
どう違うのか、と聞く前に、これは正しいJavaのプログラム(の一部)か?
と、あなたは聞くべき。

ちゃんと動くことを手元のVMで確認してから、どう違うのか、と聞いてくれ。
>>480
同意。キャスト云々と語る以前の問題。
>>479
ありがとう
簡単にまとめると、キャストって言ってみたかっただけ、と。
>>479
>キャストは、その値がキャスト後の型に変換(?)できない場合は、
>キャストできないのですよ。

>たとえば、IntegerのparseIntメソッドは、String型を引数に取れるけど、
>そのString型は、キャストでint型にできませぬ。
>String str = "hoge";
>int n = (int)hoge; ←あぼーん。

これを見ると
intはキャストでの強制変換ができないからメソッドを
使うという風にしか見えないがそうなのか?
違う気がする
>>484
どんな内部構造かすら分からんクラスを変換しろという方がおかしいわけで。
キャストってのはその名の通り役を割り当てる(が語源だよね?)
だから変換と考えないほうがいいのでは。
プリミティブ型の場合は値そのものを変えてしまうが。

「変換」しようとおもったらメソッドを呼ぶべきかな。
>>486
まぁ、言葉尻だ。

どんな内部構造かすら分からんクラスの値をキャスト先の形式に変換しろという方がおかしいわけで。
488デフォルトの名無しさん:03/03/31 23:45
ここは初心者が質問するスレだ。
入門以前の者は消えれ。
あと、初心者のフリして質問するやつ。Javaある程度精通してるのなら
まじめに教えろ。俺にな。
>>488
あっち行け
しっしっ!!
>>488
2行目まで同意。消えろ>>488よ。
>>487
それを「言葉尻(だから意味がない)」といってては、あまりいい仕事はできないよ。
言葉の重さを知らないの?
>>488
3行目まで同意。消えろ>>491よ。
そろそろ、うぜえ。
493491:03/04/01 00:26
>>492
そろそろっていまきたんだが。

キャストってかなり重い処理らしいね。
List list = new ArrayList(); // List<String>
list.add("abc");
のとき要素を取り出すには意味的には
String s = (String) list.get(0);
とするべきだけど
String s = list.get(0).toString();
の方が処理が速いと聞いたことがある。
>>494
ソースどこらへんかわかる?
496デフォルトの名無しさん:03/04/01 00:43
今日Javaの研修で
オブジェクト指向とは
「必要なクラスを必要なときに持ってきてそれを使うやりかた」
と聞いたのですが本当ですが?

違う気がする
497495:03/04/01 00:45
>>494
ダウンキャストの場合、型チェック処理があるので重くなるという説をみつけた。
StringのtoStringは参照を返すだけだから軽いと。
説得力あり。
>>496
それが正しいときがあるかもしれないが、少なくともそれが全てではない。
おそらく、それはオブジェクト指向のかなり少ない部分を占めている。
499デフォルトの名無しさん:03/04/01 01:13
Torqueの使い方を詳しく説明してるページどこかに無いですか?
Jakartaのページは読んだけど、情報少なくて良く分からない。
自分はこんなのだけしか見付けられなかった↓
http://www.mail-archive.com/[email protected]/

あと、トランザクションを使いたい時はTransaction#beginでとってきた
コネクションをBasePeer#doXXXに渡せば良いのかな??
あ、でもJNDIから直接取ってきてもよいのだろうか。
500デフォルトの名無しさん:03/04/01 01:14
Vector型にオブジェクトを大量につっこむのと、
ArrayList型にオブジェクトを大量につっこむのとでは、
どっちがパフォーマンス的に速い(軽い)ですか?
501デフォルトの名無しさん:03/04/01 01:15
>>499
ちょうど、JavaとDBマッピング系の話題のスレが立ってる。

Java⇔RDBのMapping-Frameworkを語るスレ
http://pc2.2ch.net/test/read.cgi/tech/1049030272/

まだ情報量無し。。。
>>500
いちおうVectorはスレッドセーフだから重いことになってる。
>>501
こういうときって、スレ立てた香具師と、中の人が同じ可能性が高い。
>>500
そんなにパフォーマンスが気になるなら Object[] につっこめば…
505デフォルトの名無しさん:03/04/01 01:22
>>501
おおそんなスレが。速レスサンクス。

>>503
別な人です^^;

でも、そこのリンク先はもう読んでました。
506ソース読んだ人:03/04/01 01:30
>>500
VectorやArrayListの挿入性能は、すでにたくさん突っ込んだ後、
"次をどこに突っ込むか"による。突っ込んだ後にそこより後ろを
Arraycopyで一つ後ろにずらすから。
で、そのオーバーヘッドに比べれば、VectorかArrayListかなん
てのは大して変わらん。synchronizedキーワードのオーバーヘッ
ドはたいして影響ないというのが、大抵の人の意見だな。

Listを何のために、どのように使うのかのほうが重要。
ランダム検索を頻繁に行うコレクションとして利用するなら、Mapや
Set使うほうが速度的にマシだったりする。ハッシュ検索や二分検索
は、線形検索よりはるかに有利(基本情処レベルのハナシだ…)。
FIFOキューならLinkedList。Stackとして利用するならLinkedList
やVectorで行ってもオケ(java.util.Stackがjava.util.Vectorを
"継承"してしまっているが、コレはコレで問題なんだよな。Implemented-
withを継承でやってしまうと、公開インターフェイスに穴があくこと
になるから。普通の人間ならコンポジションでやるよなあ…)。
但し出し入れは常に最後尾に行うべし。先頭に行うとあほなことが起き
ることは、↑から容易に予測できるっす。


・…なんてことが、java.utilパッケージのソースコード読むとわ
かるので、興味ある奴は読んでみるとよいと思われ。で、自分用
カスタマイズドコレクション実装なんてのも場合によっては作って
みてもよいのかモナー。
VectorもArrayListも内部ではObject[]を使って要素を格納してる。
要素数が不明だったら素直にVectorかArrayListを使う方がいい。
マルチスレッドで共通のコンテナへアクセスするんだったらVectorを
使う。
synchronizedロックは実際にスレッド間でのコンテンションが発生しない限り(他のスレッドがアクセスしに来る前にロックを解除できるのであれば)重い処理にはならない。
>>507
>マルチスレッドで共通のコンテナへアクセスするんだったらVectorを
>使う。

Collections#synchronizedListを使った方が良くない?
Vectorって1.1以下との互換性を保つ為の過去の遺産って感じで
あまり使用が推奨されてないし。
509デフォルトの名無しさん:03/04/01 01:52
ま え ら 調 べ た ら す ぐ 解 り そ う な こ と は 質 問 す る な よ な


コレクションオブジェクトで、同期が必要な場合とそうでない場合、
どれを実装するべきか云々はJavadoc嫁。または、src.zipでも嫁。

>>507
殆どの場合、ちゃんとラップする。
510デフォルトの名無しさん:03/04/01 02:00
ArrayList array = new ArrayList();
とかやるなよ。
少なくとも、
List array = new ArrayList();
とやれ。
そして、List要素の走査はイテレータで行え。
実装に依存しない。要素の追加削除が多くてLinkedListに変更するとき、
 List array = LinkedList();
LinkedListに変更するだけだ。他はなにも変えなくてよい。
いいな、インターフェースに対してプログラミングするのだ!

511ソース読んだ人:03/04/01 02:03
>>510
オイラの場合、clone()したいことがあるので、特に理由がなければ
ArrayListやHashMapの参照持っとくなあ…

512デフォルトの名無しさん:03/04/01 02:04
初心者は、このことを意識しないで使ってるやつが多い。
普段お前らがJDBC介して何気に取得しているResultSetも
インターフェースプログラミングの恩恵。
Javaの基本はインターフェースプログラミング。
513ソース読んだ人:03/04/01 02:05
>>509

>殆どの場合、ちゃんとラップする。
ホントに同期取らなきゃいけない、トランザクショナルに扱わなきゃ
ならん区間って、getやputの瞬間だけってことは、あんましないもんね。
514デフォルトの名無しさん:03/04/01 02:09
>>初心者
オブジェクトプーリングを行うクラスを造ってみ。
515初心者:03/04/01 02:10
>>514
なにゆえでつか?
516初心者:03/04/01 02:10
うーん、ほんものの初心者なら「オブジェクトプーリングってなんでつか?」にするべきだったな。
517ソース読んだ人:03/04/01 02:13
>>516
なんかあるべき論でご高説を述べたがってる人がいるみたいだから、
吊られてあげればよかったのに〜。燃料だったかも。
518デフォルトの名無しさん:03/04/01 02:14
Javaの初心者ならまずシングルスレッドでJavaらしく実装できるように
なってからマルチスレッドに踏み込もう。
ましてや、プログラム初心者の場合、並行処理云々言ってる身分じゃないだろ。
たまにいるんだよね、同期ヲタ。
Javaを初めて1週間の者なのですが、
インスタンスを生成するときなぜクラスの隣に()を付けなければいけないのでしょうか?
このカッコの中には、場合によって引数が入ったりするんですか?
520デフォルトの名無しさん:03/04/01 02:18
>>517
高説ではない。プログラミング未経験から、半年で培った知識を試しているのだ。
間違った理解はここで取り除く。と。
521ソース読んだ人:03/04/01 02:20
>>518
nioでノンブロッキングI/O導入されたから、正味のスレッドの需要
って減ったよねえ…I/O多重化管理マンセー。

CPU数分のワーカースレッド+αだけあればよいはずなのに、巷には
1000スレッド動いていると喜ぶ人種がいます。どうも「俺ってスゴイ」
と思えるらしいでつ。アホでつね。スタックとコンテキストスイッチ
のコストを無駄にしてるだけ。
>>519
> このカッコの中には、場合によって引数が入ったりするんですか?

そう。その通り。

>>521
ある意味、資格たくさんもってて「俺ってスゴイ」っていってるのと同じですね。
 数 が 多 け れ ば 勝 ち
>>519
そのクラスのコンストラクタという特別なメソッドを呼んでいるですよ。
クラス名と同じメソッド名のメソッドあるでしょ。()はその引数かく場所。
それは、引数ナシのコンストラクタを呼んでいるですよ。

>>520
もっといい人のいるところにいったほうが…
525デフォルトの名無しさん:03/04/01 02:24
>>519
少なくとも貴方は1週間ではない。と。

決まりだからです。
>>525
インスタンスを生成って、プログラム初心者には使えない言葉だ。
527519:03/04/01 02:27
>>522,524
なるほど!そういうことでしたか。
ありがとうございました。

>>525
Javaは初めて1週間(ってか4日くらい)ですよ。
その前にCをやってたんで。
528デフォルトの名無しさん:03/04/01 02:27
>>525
C++あたり5年くらいやってんじゃないの?
>>526
他のOOP言語を使用していたとは考えないのけ?
>>524
> そのクラスのコンストラクタという特別なメソッドを呼んでいるですよ。

初心者だからって、うそ教えちゃいけない。
コンストラクタは、メソッドではない。

「揚げ足っぽいよな」と私自身思わないでもないが、常日頃から言葉を正しく
使わないでいると、よろしくない影響があると思う。
531デフォルトの名無しさん:03/04/01 02:28
ランエニウェイ、ランアットワンス
532519:03/04/01 02:28
>>526
あ、インスタンス生成って言葉は本からそのまま引用したんですw
533デフォルトの名無しさん:03/04/01 02:29
インスタンスの生成を1つしか許さないクラスを造ってみれ。
>>530
バイトコードレベルじゃ、<init>って名前の単なるメソッドだけどな。
俺の作った格言:
Write Once、Run Away!
1度作ったら(ばれないうちに)逃げろ!
536デフォルトの名無しさん:03/04/01 02:37
>>530
言ってることはわかるが、
まったくの嘘でもなかろうに。
初心者に教える場合、言葉は違っても理解を一歩進めるために、
そういう言い方するのも一つの手段。厳密に違うことは次の段階でもいいと思う。

オブジェクトをインスタンス化したときに最初に行われる振る舞い?
コンストラクタのことをオブジェクト指向用語じゃどう言うかは忘れた。
537ソース読んだ人:03/04/01 02:37
>>533
初心者に、それに関する知識も与えずにそんなもの作らせるのは
単 な る 拷 問 で す 

相手が共通の語彙を持っていない前提で会話できない貴方は
「学生さん」ですね?
>>530
エレガントな一言をありがとう
>>537
試練です。貴方、苦労を知らないお人のようで。
>>530
まあ、実際コンストラクタは特別なメソッドな訳で。うそではない。
541519:03/04/01 02:39
>>533
すみません。全く分かりません。勉強不足です。
>>537
最近デザインパターンがわかってきた人だと思います。
543デフォルトの名無しさん:03/04/01 02:42
混沌としたこの世界、前提さえも自分で探し求める技術も必要。
544530:03/04/01 02:43
Java の勉強を進めていったときに、「メンバは継承される」
てな文章に出くわすと思うのです。

そのときに、コンストラクタという特別なメソッドも継承されるのかな?
とか、混乱させる可能性があるかもと危惧しました。
パターンって、実際苦労して汚いコード書いてみた後じゃないと身に付かないよね。
先にパターンだけ教えてしまうことになるのは初学者にとって(・A・)イクナイ!!
546ソース読んだ人:03/04/01 02:45
>>541
デザインパターン、Singleton(シングルトン)でググるべし。
>>542
Singletonなんて、デザパタ内でも副作用の大きい「できそこない」だと思うな。
なんでもかんでもSingletonの猿みたいな脳みその奴の作ったコードをマルチス
レッドで動かせるようにしろという、苦行みたいな仕事をさせられたことがある
でつよ つд`)
547519:03/04/01 02:46
あ、もしかしてextendsとか関係あります?
548デフォルトの名無しさん:03/04/01 02:47
どうせ職業プログラマ志望かなにかだろ。
先人たちの定石を機械的に覚えて業務に活かせたらそれで満足だろ。
それで納期に間に合い。上司も満足。ウマー
549542:03/04/01 02:48
じゃあ、ひっかけ問題的なのを。
int[][] a = {{0,1,2},{1,2,3}};
という配列の値をコピーするプログラムを作れ。
ただし、コピー後の値を変更してaに影響があってはいけない。
つまり
int[][] b;
にコピーした配列を表すとして
for(int i = 0; i < a.length; ++i){
 for(int j = 0; j < a[i].length; ++j){
  if(a[i][j] != b[i][j]) System.out.println("だめ");
 }
}
for(int i = 0; i < b.length; ++i){
 for(int j = 0; j < b[i].length; ++j){
  if(a[i][j] != b[i][j]) System.out.println("だめ");
 }
}
として例外が発生したり「だめ」が表示されないようにする。
for(int i = 0; i < b.length; ++i){
 for(int j = 0; j < b[i].length; ++j){
  ++b[i][j];
 }
}
としてもaに変化があってはいけない。


結構、慣れてる人でも、一度では組めなかったりします。
おれはTemplateでジャヴァの威力を知った。








つもり。
>>549
せっかくだが、こんな夜中に誰も好き好んで頭使わないと思われ。
>>545
苦労して汚いコードを何度も書いて、5年位実務を経験して、
自分なりのコードのスタイル(パターン)がいくつか確立してきたあたりが、
ちょうどいいだろうね。
15年位実務を経験して、何度も修羅場をくぐり抜けてきて、
試行錯誤と各種情報の取捨選択により、完全に自分のスタイルが確立した後だと、
逆に有り難みないだろうね。
>>544
コンストラクタも継承されますね。
ただ、コンストラクタの先頭でsuperというキーワードで呼び出すという制限があるだけで。
特別なstaticメソッドだと思われ。
554519:03/04/01 02:56
int i,j;
int a[][]={{0,1,2,},{1,2,3,},};
int b[2][4];
for(i=0;i<=a.length;i++){
for(j=0;j<=a[i].length;j++){
b[i][j]=a[i][j]
}
}


ディープコピー版
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(baos);
out.writeObject(a);
out.close();
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
ObjectInputStream in = new ObjectInputStream(bais);
int[][] b = (int[][])in.readObject();

シャローコピー版
int[][] b = (int[][])a.clone();
for(int i=0; i<b.length; i++){
  b[i] = (int[])b[i].clone();
}
556ソース読んだ人 :03/04/01 02:56
>>547
ないです。興味あるならググルべし。

>>550
なんすか?それ。

>>549
int[][] b = new int[2][];
b[0] = (int[])a[0].clone();
b[1] = (int[])a[1].clone();

がいちばん簡単でつ。
でも期待してる答えは、こうじゃないね、アンサン。
557519:03/04/01 02:58
あ、すみません。
Javaだと配列は宣言で初期化しない場合new使わないといけないんですよね。
間違えました。
558ソース読んだ人:03/04/01 03:02
>>553
thisポインタにアクセスできるので、staticメソッドじゃ有りません。
そこは明確にペケでつ。

コンストラクタが起動された時点ですでにヒープのインスタンス領域の
確保とデフォルトの初期化は終了していまして、コンストラクタはその
後に呼ばれる、ちょっと特別な性質をもっているだけの、単なるインス
タンスメソッドでつ。
559549:03/04/01 03:03
>>556
あ、もちろん
a = new int[][]{{1,2,3,4,5},{1,2,3,4},{1,2,3}};
としたら、それがコピーされる必要があります。
560553:03/04/01 03:06
>>558
そうですた。
561519:03/04/01 03:06
あぁ、しかもセミロンとか付け忘れてるし。
未熟でした。
562ソース読んだ人:03/04/01 03:07
>>555の中の人製ディープコピーは、意外とよく使う小手先技なので
覚えとくといいじょ〜。Serializableなら何でも丸ごとコピー可。

チューニングの必要がないコピーはコレだけで済ますことが多いでつ。
必死だな

と書く必要がなくレスが進むのって新鮮。
初心者が題目出してオナニーするスレはここですか?
春休みもそろそろ終わりだ
>>562
これを書ける初心者がいたら、ネ申

しかし、その答えを求めれるような指導ってできんな。
逆に説明がややこしくなるから、「初心者」にはそういうのは隠す。
その話ができるようになったら、世間一般で言う「初心者」ではない気がする。
567530:03/04/01 03:12
>>553
>>558

めちゃくちゃやなぁ・・・。
理解されていないようで残念。
568553:03/04/01 03:15
>>567
理解はした。けど、意見は違う。
それぞれのレスの趣旨を全く理解できない>>567でした。チャンチャン
570553:03/04/01 03:20
>>567
ようするに、コンストラクタは特別なメソッドだということで無用な誤解を生まないかということでそ?
漏れはコンストラクタは特別なメソッドだということで、納得しやすくなると思ってるだけ。


   いい感じでスレがし ょ っ ぱ く な っ て  き  ま  す  た  !!

やはり初心者が初心者に回答するスレか…
573ソース読んだ人 :03/04/01 03:24
ヒジョーに寒い展開になってきたので、サヨーナラ。
   | ∧
   |ω・)  ダレモイナイ
   |⊂    ネルナラ イマノウチ
   |
         〜♪
      ∧_∧ ( ̄ ̄ ̄ ̄ ̄)   
     (´・ω・)(_____)
     (   つつ
     (_⌒ヽ
 ⌒Y⌒  ,)ノ `J
                ファサァ
         ∧_∧   
         ( ・ω・)       ))
         /つ( ̄`ヽO_ノ⌒ヽ
        ノ   )        \ ))
       (__丿\ヽ ::    ノ:::: )
           丿        ,:'  ))
        (( (___,,.;:-−''"´``'‐'

          __,,,,,,___ オヤスミー     
        (⌒ヽ:::::::::::'''''-,,   
      <´・\  ::::::::::::::::::ヽ  
       l 3 ハ::::::::::::::::::::::ヽ, 
   ∫  .<、・_ (         )
   旦 (⌒ ̄  ̄ ̄ ̄ ̄ ̄ ̄⌒)  
       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ∧_∧ 
    (´・ω⊂ヽ゛眠れない…ショボーン 
    /    _ノ⌒⌒ヽ.
 ( ̄⊂人  //⌒   ノ
⊂ニニニニニニニニニニニニニ⊃
576443:03/04/01 06:01
>>444
デバッガってなんのデバッガ?
JAVASDKについてくるやつ?
ObjectをCastするってどういう事でつか?
578デフォルトの名無しさん:03/04/01 09:08
public classと
publicが付かないclassはどう違うのですか?
すいません、>>471 に流された感があるのでもう一度・・・
>>470 をどなたか・・・ Element だ Attribute だと、どんどん深みにはまってます・・・
>>579
InputMethodEvent で検索してみると幸せになれるかも。
581519:03/04/01 10:36
すみません、昨日の519です。
あれから色々考えて、
public class Work2{
public static void main(String args[]){
int a[][]={{0,1,2},{1,2,3}};
int b[][]=new int[2][3];
int j,i;

for(i=0;i<a.length;i++){
for(j=0;j<a[i].length;j++){
b[i][j]=a[i][j];
}
}

for(i=0;i<b.length;i++){
for(j=0;j<b[i].length;j++){
System.out.print(b[i][j]+",");
}
}
}
}
これが出来ました。
それで、作ってる最中に思ったんですけど、Javaって配列の最後にヌル文字入らないんですか?
>>581
>Javaって配列の最後にヌル文字入らないんですか?
length があるので必要ないです。

ところで、配列の最後にヌル文字が入る仕様の言語ってあったっけか?
>>580
ところが、そっちは IMEを使わない限りイベントがとばないのです
やっぱり Element 弄くってみます……
>>581
>>559の条件も。
585580:03/04/01 14:24
>>583
InputMethodListener 内で変換文字列を描画して後は consume() してやれば
DocumentListener の方には行かないから良いかと思ったんですが。
ダメっすかね?
>>581
>>582

要素の型がcharである配列は、その配列を生成したときに、
最後の要素だけでなく、全ての要素が、
null character (空文字)で自動的に初期化されます。
先生

main()メソッドの引数の中にあるString[] argsのargsは
何の頭文字を取ったものなのでしょうか?
後何て読むんですか?

心優しい先生お願いします。
>>586
char array[20];
とかやると array[20] == '\0' になるんだっけか?

終端にNULL文字が付加されるのは文字列リテラルだと思ったけど。
>>587
ARGument String じゃなかったか? 馬鹿弟子よ。
590586:03/04/01 16:13
>>588

何言語のお話をされていらっしゃいますか?
>>588
それは C/C++ の話だよな?
char array[20]; の宣言直後の内容は未定義だし、そもそも array[20] への
参照結果も未定義だぞ。フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ
>>590

>>586 は何の話なんだ?
>>589
キムタクより素敵な先生ありがとうございました。
>>591
>char array[20]; の宣言直後の内容は未定義だし
こらこら。場所によるだろ。
>>594
ハァ?
>>593
ワキガがですか?
>>590-595
別の言語の話はよそでやってくれ。
598デフォルトの名無しさん:03/04/01 19:37
hashtableとvectorと配列
の違いって何ですか?

3つとも複数要素の格納だと思うのですが
>>598
HashTableはキー名と関連づけて要素を格納する
Vectorはインデックス管理可能なリスト構造
配列はただの配列
ちなみに、Javaでは大文字・小文字を区別することも忘れずに。
たとえば、Booleanとbooleanは別物になる。
600デフォルトの名無しさん:03/04/01 20:13
>>599
ありがとうございます

どうも使い分けがいまいちわかりません
みなさんはそこまで意識して使ってるのでしょうか?

Vectorなんかインデックス管理可能とか状況に応じて区分けしてるのでしょうか?
601デフォルトの名無しさん:03/04/01 20:15
知ったかすんな
>>600
くぐるか本買って調べた方がいいぞ。
なにせしっかり説明しだしたら、かなりの量になるから。
603デフォルトの名無しさん:03/04/01 21:16
Cの関数とJavaのメソッドは同じですか?
>>603
まったくの別物
関数はあくまでもそこで計算することができるが
メソッドはなにもない(いわばワープゾーン)
605初心者:03/04/01 21:19
正直、なんか面倒臭くなってきました。
覚えることが多すぎです。
深く勉強したいんですけど、どこから手をつけていいのやら・・。
各技術の概要的な部分は理解しているつもりなのですが
そこから先に踏み込めないんです。
どなたか、僕の進むべき方向を指し示してください。ご教授ください。
お願いします。
>>605
正直言って
ちょっとやってればある日突然わかる
勉強してもすぐ忘れるからはっきり言って意味はない

でも資格は取っといたほうがいいから
とりあえずJ検の3級かOffice検定はマジで取っといたほうがいい
Oracleのプラチナやシスアドなんかある程度経験をつめば誰でも取れるから
今から勉強するのは時間の無駄だと思う
資格はないより
あったほうがいいからとりあえず取りやすいJ検などは必須だと思うよ
>>607
取りやすい資格なんぞに価値は無し。
とりやすいからとるんだろうが
でもJ検は意外に難しいぞ
俺はOracleのゴールドと基本情報処理をもってるけど

J検はいまだにもっていない
>>609
それだけありゃ・・・って基本情報とオラクルGOLDってまたアンバランスだな。
611初心者:03/04/01 21:44
>>606
J検2級とその他もってます。その他は3級レベルだからどうしようもなく・・・。
ちょっとやってればある日突然解る日が来るのでしょうか?
目的は自分自身で決めるべきものでしょうけど、見失いがちなのです。
あれやこれやとやってると、実装して試す暇もなく次の事に行ってしまうんです。

>>611
正直、才能無い。

もっと別の道を探すべきだと思われ。
613初心者:03/04/01 21:47
>>606
そうなんです。忘れてしまうので困ってます。
去年、MVCでWebアプリ開発したのですが、今その知識は
半分以下になってます。実装できる自信がありません。
614初心者:03/04/01 21:51

やっぱり才能ないのでしょうか。
>>614
勉強に意味がないとか言ってる香具師がいるな。
そんなことはない。

勉強してもすぐ忘れるから勉強しつづける必要がある。
でも、勉強を続けていても忘れてしまうものというのはあまり重要ではない、というか、忘れたものはまた調べればいいので気にしない方がいい。

適当にSwingで遊んでたら?
616鉄平:03/04/01 22:10
1週間前からJAVAに励んでいる者です。
ちょっとお聞きしたいのですが。

public class FastStep {
public static void main(String[] args) {
System.out.print1n("HelloWorld");
}
}

ここまでは以外と簡単に理解できました。
入門書には「JAVAファイルをコンパイルするとCLASSファイルが作られる」
とありました。コンパイラーは動かしてみたのですが、何かおかしいみたいで
CLASSファイルというものが作られません。もしかして、コンパイラーは何回も
動かさないとCLASSファイルが作られない。ってことはないですよね(笑)(念のため3回ほど動かしてはいます)
どこがおかしいのでしょうか?
ご教授お願いします!!
>>613
半分もありゃいいだろ
俺なんか3ヶ月前にやったことなんか一切覚えてないぞ
でも昔の経験だけで、何もしてなくても(全員他にやらせて)
年収1000万いってるぜ

Javaも正直for文の書き方も覚えてない・・・
PGなんか別にマシンの前で座ってたらいいだけで
>>615
忘れるのに勉強する意味あるのか?

それと今日は何月何日だっけ?
>>616
最低6回はうごかさんと・・・
>>617
そういえば、今日は4/1でしたね。
>>618
ごはんを食べてもすぐおなかがすくから、ごはんを食べる意味はないですね。
>>621
消えた分が血となり肉となるなら誰も文句は言わんな。

ご飯を作っても半分捨てちゃうんならご飯作る意味ないよね。
>>616
エラーがあるからクラスファイルが作られないんじゃないかな。
print1n ってあたりがエラーっぽいです。
624初心者:03/04/01 22:22
>>615
Swingは去年少しやったのですが、
どうしても複雑という先入観があってやる気出ないんです。
インナークラスとかアダプターとか、その辺で一回挫折しました。
他の場面で多少知識蓄えたつもりなので、
今やったら理解できるかもしれません。
そうこうしているうちにSWTとか出てきてますよね?
Swingよりそちらを学んでみたいです。
JavaでGUIやるときはAWTが基本らしいですので、
先にAWTやってみます。
という感じで、面倒臭くなってくるのです。。。
今危機感もってるのはXMLです。antのbuild.xmlを理解できる程度なんです。
正直、build.xmlなんてXML解らなくても書けるんでなんとも言えないのです。
XMLはスレ違いなので、この辺にしておきます。
>>613
忘れたといっても、もう一度やれば「思い出す」わけでそ?
一回目ほどは時間がかからないと思うし、同じ時間ならよりいいものができると思う。
626鉄平:03/04/01 22:25
>>623
ありがとうございます!!!
やっと動きました。今感動してたところです。プログラミングって面白いですね!
次はRMIを勉強したいと思います!
>>624
いや、先にAWTやってSwingっていう必要はないと思う。
Swingいきなりやれば?
で、SWTやりたいなら、SWTやれば?
AWTを別に勉強するんじゃなくて、必要になればやればいい。
ちょうど雑誌でもSWTとりあげだしたから、今勉強するのは面白いと思う。
>>622
かわいそうな人に見えてきた。
629初心者:03/04/01 22:32
今自分にあてはまる言葉は
「やればできると思ってる人は、やればできると思ってる。だからやらない。
 だからできない。」
なのかと思います。技術情報仕入れて満足して仕事以外ではやってないんです、正直。
そろそろアクション起こします。仕入れの量を減らして、実装に時間使おっと。
皆さんありがとうございます。少しやる気が出ました。
>>629
もし才能がなかったとしても
やってればそのうちできるでつ。
やってれば面白くなるでつ。

つうか、やれる=才能なんでつ。
>>629
あんたやろうともしてない。
>>631
いまからやるんじゃない?
漏れはつねに明日からやろうと思ってるよ。
>>632
帰納的に一生始まらないって奴ですな。

本当にやる気あるならこんなところにうじうじ書き込みしてないで1行でも多くコードを書こうとするわけだし。
>>633
いまからコード書き始めるんじゃない?
漏れはつねにつぎの書き込みで最後にしようと思ってるよ。
>>633
オマエモナ
>>635
うん?文法と周辺技術、開発技法についてはそれなりに身に付いた。まだまだだけどな。

とりあえずこの技術を何に生かすか。それをここで初心者を煽りながら考えてる。
>>629
22歳からJava初めてももう手遅れだよ
63830歳PG:03/04/01 23:03
>>637
27歳からJavaをはじめましたが何か?
JakartaのDeveloperの一員ですが、何か?
30でまだコードの設計なんかしてんの?
640デフォルトの名無しさん:03/04/01 23:17
javaで画像の変換(bmpからjpg)を行いたいんですがなにか良い方法ありますか?
>>637
そうなのか?言語なんぞ勉強のうちに入らんだろ。
642デフォルトの名無しさん:03/04/01 23:18
それと
画像ファイルの大きさの変更を行いたいのですがなにか良い方法ありますか?
そうですよ。一生PGやってくつもりですよ。

>>640
javax.imageio
>>642
ファイルの大きさを変更するってナニヨ?
645642:03/04/01 23:29
640×480

320×240
に変更したいのですが。
そういうのは、ファイルのサイズじゃなく、画像のサイズの変更なんだよ。
切り取りたいのか、縮小したいのか、も書けよ。

言 葉 を ち ゃ ん と 使 え よ ! !
>>645
そりゃファイルのサイズじゃねえな(ワラ
java.awt.Image#setScaledInstance()でも使えば?
648642:03/04/01 23:37
すいませんでした。
画像サイズの変更は切り取りなので、
画像解像度の変更でした。
しかもファイルサイズとカキコんでしまいました。
>>648
え?スクリーンの解像度変更?
GraphicsDevice#setDisplayMode()あたりかな?
たしかJDK1.4から変更できたはず。

画像解像度ってなに?
Graphics2D#scale()でいいのか?
>>636
ナニに活かすかって(ゲラ
凡人は余計なこと考えず一生会社の奴隷になってろ。
>>641
皮肉って言ってるだろうけど少なくとも勉強の内には入るだろ。
あんたみたいに趣味でやってると"勉強"とは言わないのかもね プ

こ っ ち は 生 業 と し て る ん だ
652デフォルトの名無しさん:03/04/01 23:50
java.awt.Image.ReplicateScaleFilterとか。
653642:03/04/01 23:53
画面は使いたくないのですが...
>>653
BufferedImageは?
Convert a BMP Image to a JPEG
http://www.catenary.com/howto/bmp2jpeg.html
656sage:03/04/01 23:59
そもそも画像解像度と画像サイズってどうやって取得するんだっけな
画像に「解像度」なんて属性あったか?
>>637
Javaが一般に広まりだして5年かそこらなのに、みんな何歳から勉強してるんだろうね。
>>653
ふつうにAWTのmageまわりの勉強しなさい。
>>659
Iがぬけた。Imageね。
アイがないってことか。
>>657
あるぞ。ディスプレイ−>紙時の解像度。

>>658
もうちょっと前からじゃないか?俺4年前くらいから勉強し始めたけど、そのころJDK1.2出てたし。
>>661
JDK1.2あたりから使い物になって広まりだしたから、そんな感じじゃないのかな。
JDK 1.2 あたりから始めた奴は VB 上がり組。
>>663
そういうのは死滅スレでやってくれ。
665デフォルトの名無しさん:03/04/02 01:23
1)
buf.append("aaaaaa");
buf.append("bbbbbbbbbbbb");
buf.append("cccccccccc");
buf.append("ddddddd");
buf.append("eeeeeeeeeeeeee");
buf.append("ffffffff");

2)
buf.append("aaaaaa" );
buf.append("bbbbbbbbbbbb" );
buf.append("cccccccccc" );
buf.append("ddddddd" );
buf.append("eeeeeeeeeeeeee");
buf.append("ffffffff" );
>>665
ナニヲイイタイノダ
>>666
閉じ括弧の前にスペースを入れるのがすきかどうか、かな?
漏れはいれない。
668デフォルトの名無しさん:03/04/02 01:56
誰か例外処理のあるべき姿を教えてください。
catchブロックで何をしたらいいのかわかりません。どうしてもコンパイルエラーを
避けるための実装になりがちです。
いろいろ調べたけどわかりません。エラーの内容を通知することしかできません。
例外発生したらcatchブロックでリカバリ処理とか聞いたことあるけど、
例外を例外でなくさせること?復旧させて処理を継続させるような実装ってアリなの?
あと、簡単なコネクションプールを見てみたんだけど、
なんたること、SQLExceptionを捕まえてcatchブロックでプーリングしてた。
ソースはわかるけど、そうやる意味がわからん。
例外の正しい使い方ってなんでしょうか?もうお手上げです。
669デフォルトの名無しさん:03/04/02 02:08
>668
例外と一言でいっても大きく分けて下記2種類があります。
 ■アプリケーション例外
 ■システム例外


このそれぞれによってcatchしてする処理が異なるかと思います。
アプリケーション例外は自分で作る処理なので、
業務要件に対応した処理をやると良いかと思います。
たとえば不正なデータが入力された時に、入力元に返すとか。

システム例外では主にリソースの開放を行うべきでしょう。
(finally節で本当はすべきかも?)
catch節で何をすべきか、は、その場合場合で違うだろうと思う。
私がcatch節でやったことのあることを列挙。

1、メッセージを表示。例外が発生したことを知らせる。ログる。
2、ある程度の時間を置いたり置かなかったりした後、
  もう一度try節を実行してもらうようにする。(未完了フラグ立てるなど)
3、例外翻訳。(新たな、別な例外を発生させて、上位コンポネントに伝える。)
4、VM強制終了。(System.exit(int))
5、何もしない。

これらの複合もある。メッセージ表示してVM終了。
>>668
> 誰か例外処理のあるべき姿を教えてください。
やりたいことをやる。
何をしたらいいのかわからないなら、とりえあずprintStackTraceしてexitでもしてろ。

> なんたること、SQLExceptionを捕まえてcatchブロックでプーリングしてた。

解説きぼんぬ
672デフォルトの名無しさん:03/04/02 06:33
>>>671
あんた感じ悪いなあ。
>>672
間違ってないと思うぞ。

特別な処理が必要なら書けばいいし、興味がないけどcatchが強要される例外はprintstacktraceすればいい。
printStackTraceしただけで例外処理した気分になってしまってる香具師が多いのもまた事実
WEBアプリでよくある例外処理は
・エラー画面("システム障害が発生しました。"等)へ遷移処理
・システム管理者へエラーログをメール送信
とかよるあるパターン。
>>668
SQLExceptionは、SQLの実行に失敗する全てのパターンで出ちゃうからねえ。
コネクション切れちゃったみたいな重大な奴から、整合性違反でSQL実行中止
するような軽い奴まで全部。
で、場合分けするのはユーザの責任、になってるのよね。結構めんどくさい。
>>668
あ、そうだ。コネクション切断なんてのは、たま〜に起きるよ。
DBサバが落ちてるかもしれないし、単にネットの調子が悪くて
ナンカの拍子にソケットクローズしてしまっただけかもしれない。

で、そのたびにシステム丸ごと落すべきかどうかは、微妙。
何回か再接続トライしてダメだったら落す、あたりがいいんで
ない?
SQLException、めんどいよね。
Oracleなんかだとエラーコードが入っていたりするが、
これたよりにすると特定ベンダー製品依存のアプリになってしまうし。
JavaやJ2EEの思想的にはおすすめできないが実業務だったらそれでもいいのかな?
結局SQLも標準SQLだけじゃ足りないことも多いしね。
>>678
しかたないから、DBの種類ごとにエラー処理をStrategyで区切るっす。
こんなかんじ。

interface SQLErrorHandler {
void handleSQLError(SQLException e);
}
class OracleErrorHandler implements SQLErrorHandler{/*なんか実装*/}

Usage:

SQLErrorHandler h = new OracleErrorHandler();//設定ファイル化何かで変更

try{
 //なんかSQL処理
}
catch(SQLException e){h.handleError(e);}
>>679
ポリモーフィってるが Strategy とは言わないと思われ
681デフォルトの名無しさん:03/04/02 14:51
public class ClassA extends Thread{}

っつークラスを作って、

 ClassA ca = new ClassA();
 ca.start();

としたあと、インスタンスca内にあるオブジェクトが利用可能になるまで
ちょっとだけ時間が必要だったりする?
>>681
実行環境によるだろう
それがどうした?
683デフォルトの名無しさん:03/04/02 16:33
jspからmysqlに日本語が正しく書き込めません。
例えば あ → B になってしまいます。

JISAutoDetectで変換するようにしているのですがどうしてなんだろう。。
>>681
利用可能 (って run が走り始める事だよな?) まで待ちたいなら notify/wait と
連動させれ

ClassA ca = new ClassA();
synchronized(ca){
  ca.start();
  ca.wait();
}

public class ClassA extends Thread{
  public void run(){
    // 何かの準備処理…

    synchronized(this){
      this.notify();   // 準備完了を通知
    }

    // 何か別の処理…
    return;
  }
}
>>683
ブラウザ-JSP 間で化けてるのか JSP-MySQL 間で化けてるのかはっきりしる
>>683
JDBCとか。
>>683
まずJISAutoDetectをヤメレ
688デフォルトの名無しさん:03/04/02 19:13
JavaとJava2の決定的な違いって何ですが
その辺の記述って意外とどこにも載ってないのですが
689681:03/04/02 19:15
>>684
禿しくサンクスコ!!
>>688
差分は1.2のJavaDocに書いてありますよ。
リリースノートに。
691デフォルトの名無しさん:03/04/02 19:32
39さん>このメーリングリストをどこで知りましたか?トピックスと言うペー
ジがあるのを知っていますか?
もし知らなかったらそこを見て下さい。
・健康と医学
  ・痔
のところにあなたの探しているものがあると思います。

692デフォルトの名無しさん:03/04/02 19:48
コンパイルしてもブラウザ上でのみ動きません。
本とかについてたコンパイル済みの完ピンのソースとかでもブラウザ上では動きません。
コンパイラを再インストしても解決しません。
設定とかの問題なんでしょうか?
屋内に篭ってないでたまには外に出たらどうだ。
そこまでJavaが好きだというのなら、漏れが作った女性にモテるインタフェースを
無料で提供してもいいぞ。定義してるのは、

public Happy バクテン();

だ。幸せ型を返す。おまいらのように未熟なものがいきなりバクテンするのは
無理だろうから、まずは知り合いにでもデフォルトの実装をしてもらえ。
話はそれからだ。いいか、間違ってもいきなり実装するようなまねはするな。
首の骨折るのが関の山。
文字列表現からnewするにはどうすればいいでしょうか?
piyoString#toString = new hogeClass();
みたくしても変数が必要ですが値が見つかりましたという
コンパイルエラーが出ます、コンパイラが言いたい事は分かるんですが
こういう場合どうすればいいですか?
ある一定の命名基準(例:str1~30)があって
文字列を結合して(str + 1)forなどでnewしていきたいのですが
(Stringと書きましたがStringBufferを使っています)
>>693
そう、厨房のころってバクテンできたらモテると思ってたよね。
なつかすぃ。
696デフォルトの名無しさん:03/04/02 20:43
今日学校で
Returnって
メソッドで渡された引数を計算などで操作する時にその操作した値を返すときに
必要と言われましたが、そうなのですか?
また文字列とかの表示なら必要なしとか言われましたが
本当ですか?
>>696
Returnってなによ。

で、値返すときはreturnがいるな。
698デフォルトの名無しさん:03/04/02 20:50
Javaにもvoidあるの?
>>694
意味がわからん。
文字列表現から new したいなら
class A { public A(String str){ ... } }
みたいなクラスを使えば良いだけでは?
>>607
returnの間違いです(^^;
>>698
ネタのときはちゃんとわかるように書いてください。
702デフォルトの名無しさん:03/04/02 20:58
void *p;ってやったらエラーになるよ?(;_;)
>>701-702
自作自演?
>>702
それは文法エラー。
せめてJavaとvoidでぐぐれ。
705694:03/04/02 21:07
HogeClass hoge1,hoge2,hoge3...;
StringBuffer strBuf = new StringBuffer("hoge");
とやっておいて
strBuf.append("1") = new HogeClass();
(この後後につけた数字は消すしてまた次の数字をappendしてnew)
というような事がしたいんです。
つまりは直接変数名を入れるのではなく
Stringで変数名を作り、それをnewしたいという事です。
(上手く言葉に出来なくてすいません)
706デフォルトの名無しさん:03/04/02 21:09
教育の現場においてのJavaの立場は
707嗤男:03/04/02 21:12
 *p なんてJAVAにはポインタないし・・・
>>705
配列使うんじゃいかんのか?
709嗤男:03/04/02 21:15
関係ないけどNscripter互換のエンジンをjavaで作ってる人がいたなぁ
710694:03/04/02 21:19
>>708
配列を使うって手もあるんですが
前にStringからインスタンス化が出来るという話を聞きまして
(方法は聞けなかったです)
その方法ってのが知りたいんです。

配列のほうがずっとスマートに出来そうでしょうか?
>>710
String からインスタンス化できるってのは
reflection 使う奴じゃないのか?

HogeClass hoge = Class.forName("HogeClass").newInstance();
とかみたいにやる奴。
712694:03/04/02 21:33
>>711
なるほど、私みたいな使い方とはちょっと違うみたいですね
配列を使う事にします、ありがとうございましたー。
>>712
何を言っているのか今ひとつわからんが、おいらの理解が正しいとして、
何かのデータに対して実行時に名前をつけるなら、普通はMapだろ。

HashMap map = new HashMap();

map.put("名前",new HogeClass(1));
map.put("名前",new HogeClass(2));


使うときは
HogeClass obj = (HogeClass())map.get("名前1");
714デフォルトの名無しさん:03/04/03 00:02
>713
Map map = new HashMap();
だろ。
715デフォルトの名無しさん:03/04/03 00:13
すいません、、、
サンマイクロのホムペからJDKをダウンロードしようとしたんですが、
500、サーバ内部にエラーが云々でてダウンできませんでした。
どうして・・・。
>>715
俺もいけなかった。
しばらく待っとけ。
ttp://java.sun.com/

ん?見えるぞ?
>>715
> 500、サーバ内部にエラーが云々でてダウンできませんでした。
> どうして・・・。
どうしてもなにも500が出てるんだろうがよ。
>>717見れるけど凄く重い
なんでだろー
720デフォルトの名無しさん:03/04/03 01:25
>>719
サーバでJSPがコンパイルされたと思われる。
721デフォルトの名無しさん:03/04/03 03:13
Java3Dで質問です。
VRML形式のシーンをどう保存すれば、ちゃんとLoaderが読み込んでくれるかがわかんないのです。

CyberVRML97 warning : Loading Error (ParseException) = java.io.InputStreamReader@955cd5
Encountered "EXTERNPROTO" at line 17, column1.
Was expecting one of:
<EOF>
","...

と言う警告がでて、読み込む予定のシーンが画面上に出てきません。
どう、wrlファイルを保存すればちゃんと使えるんでしょうか?
ご存知のかた、ご教授お願いします。

722デフォルトの名無しさん:03/04/03 03:25
>>721
Java3Dスレに逝ったほうがいいと思われる。
少なくともwrlの保存法を聞いてる時点でJavaの問題ではない。
問題切り分けてるならそっち方面で聞いたほうが早い。
723デフォルトの名無しさん:03/04/03 05:17
マジでどうしていいのか悩んでいます
二枚のjavax.swing.JPanel (panel1,panel2とする)があって
それぞれ、javax.swing.JButton(button1)と
javax.swing.JTextField(text1)が貼り付けてあります
panel1.add(text1);
panel2.add(button1);
という感じです(それぞれのコンストラクタ内で貼り付け)
で、panel1とpanel2はいろいろ事情がありまして
それぞれ、別のファイルにあり、
これらを貼り付けるjavax.swing.JFrame(frame1)内で
インスタンス化して、java.awt.Container(=frame1.getContentPane();)に貼り付けています
この、frame1も別ファイルにあります
で、button1のイベント発生時にtext1のテキストを取得したいのですが
button1(panel2のクラス内)からはtext1のインスタンスが見えないので
どうやって、取得しようかと悩んでいます
(将来的に、この二つのパネル内に他のコンポーネントを貼り付ける予定なので
frame1内でbutton1とかtext1を作っちゃうとあとあとごちゃごちゃしちゃうので
別のクラスファイルにしました)
二つのパネルの間に
JTextField getTextFieldObject(){}や
void setTextFieldObject(JTextField textfield){}
というようなメソッドを持つクラスをつくったりしたのですが
これでいいのか悩んでいます
いいやり方あれば教えてください
>で、panel1とpanel2はいろいろ事情がありましてそれぞれ、別のファイルにあり、

当たり前のことを大げさに書く奴って信用ならん。
725デフォルトの名無しさん:03/04/03 06:19
>>724
これには、ちゃんとした理由があるので、
突っ込まないでください
ただ、それを話すと非常に長くなるので書きませんでした
726デフォルトの名無しさん:03/04/03 06:34
いや待て>>724
>>723が何をやりたいのか知らんが
これを普通のクラスと考えると
class A,B,Cがあって
class A{
A(){
B b=new B();
C c=new C();
}
}

となってるわけだろ?
で、
class Bの中でたとえば
Object hoge=c.getObject();//cはCのインスタンス(クラスAで作ったものと同じもの。だけど見えない)
ってやりたいわけだろ?
このやり方が、おかしなやり方なのはわかっているが
あえてコレを実現しようとすればどうやるんだ?
C内部に
public static Object getObject(){return this;}
とかつくって、BからC.getObject();ってやる?
もちろん、Cはシングルトンにして・・・
>>726
publicなメンバにオブじぇぅと入れればにすれば良いんじゃないの?
728726:03/04/03 06:44
ん?public?
staticと言いたいのか?
729デフォルトの名無しさん:03/04/03 07:15
>>724
> button1(panel2のクラス内)からはtext1のインスタンスが見えないので
> どうやって、取得しようかと悩んでいます

button1 内部で、text1 のインスタンスを得て使うのも手ですが、
そうする必然性は無いかもしれません。

ボタンや、テキストフィールドなどの各コントロールは、それぞれの仕事に
集中させて、それらの連携動作をつかさどるオブジェクトを1個、新たに、別に
作成すると、すっきりすることがあります。

このオブジェクトに対して、ボタンやテキストフィールドなどの動作に関連する
インスタンスを登録しておいて、各コントロールはこのオブジェクトだけとお話
するようにします。
730723:03/04/03 07:20
>>729
>「ボタンや、テキストフィールドなどの各コントロールは、それぞれの仕事に
集中させて、それらの連携動作をつかさどるオブジェクトを1個、新たに、別に
作成すると、すっきりすることがあります。 」

ええ、簡単に言えば僕も「すっきり」を考えてそういう設計にしました
だけどいざ作ってみて「あれ?text1にはどうやってアクセスするんだ?」
と思ったわけです
おかげで指針が見えてきましたありがとうございます
くだらない質問かもしれませんがお願いします。

JAVAでは他の言語のように、exeファイルのような形でアプリケーションを
配布するときはどうするのでしょう?
というかそもそもそういう言語ではないのでしょうか。

jarファイルだとセキュリティ面(中身が丸見えですよね)や実行環境で
不安があるのですが大丈夫なのでしょうか。
jarファイルの中身にソースファイルを入れなければ
コード見られることは、あまり考えなくていい
配布に関してはマニフェストファイルに指示してやれば
Windowsならダブルクリックで起動
あるいは他の環境も考えるならそれ様のバッチファイル
用意してそっから起動させればいい
あるいはJavaWebStart使えばOK
733デフォルトの名無しさん:03/04/03 07:54
>>732
javawで実行も忘れるな
734デフォルトの名無しさん:03/04/03 07:58
>>731
基本的にはJARに固めて配布するものです。exeにする方法はあるようですが、
それもJARをつつみこんでexeにするだけらしいです。で、逆コンパイルなどで
解析されたくない場合はバイトコードそのものを加工します。具体的には、変数
やクラス名、メソッド名を意味のある単語から意味のない単語(aとかbとか)に
置き換えてしまうツールを使います。これで逆コンパイルされてもソースコード
の見通しは格段に悪く(解析しにくいものに)なります。

RetroGuard
http://www.retrologic.com/retroguard-main.html
jarg
http://jarg.sourceforge.net/index.ja
>>734 ネイティブコンパイラもあるよ。
>>732-735
なるほどです。有り難う御座いました。
737デフォルトの名無しさん:03/04/03 08:06
>>735
SwingとかJ2SDK1.4には対応してないでしょ。
738デフォルトの名無しさん:03/04/03 17:02
1:public static void main( String[] args ){
2:public static void main( String args[] ){
1と2の明確な違いを教えてください。
>>738
表記法のみが違う。動作は何も変わらない。
後者の表記はC言語からの伝統を引きずっているだけなので
前者の表記法に慣れておくことをおすすめする。
740デフォルトの名無しさん:03/04/03 17:33
static double array[] = { -3.4, 8.e110, -9.2e-100 } ;
上記の配列の初期化数値の中に
8.e110
-9.2e-100
のような数値があるのですが
これはどのような意味なのでしょうか?
教えてください。
>>740
試せよ!
>>740
数学の話だな
っていうか入門書の最初んほう嫁
743デフォルトの名無しさん:03/04/03 19:16

class Parent{
}

class Child extends Parent{
}

class ObjectReferenceVariable{
public static void main( String[] args ){
Parent p ;
p = new Parent() ;
p = new Child() ;

Child c ;
c = new Child() ;
c = new Parent() ;
}
}

何で
c = new Parent() ;
でエラーが出るの??

744デフォルトの名無し:03/04/03 19:17
swingについて質問があります。
ウィンドウ左上の×ボタンを押したとき、ダイアログボックスを表示、閉じるかどうか
を確認するコードを書きたいのですが、下記のコードでwindowClosingを設定して
やってもうまくいきません。

どなたか、原因がわかる方はいらっしゃらないでしょうか?

public void windowClosing(java.awt.event.WindowEvent e) {

int value = javax.swing.JOptionPane.showConfirmDialog( null, "終了してよろしいですか?","Wait! for kiss in the sky", javax.swing.JOptionPane.YES_NO_OPTION);
if (value == javax.swing.JOptionPane.NO_OPTION){
return;
} else {
System.exit( 0 );
}
}

↑YESでもNOでもウィンドウが閉じてしまいます‥。
 ウィンドウに「終了」というJButtonがあり、それを押したときにも同じ処理をさせてい
ますが、そちらでは問題ありません。
745デフォルトの名無しさん:03/04/03 19:22
継承の階層は一般的に何階層までに制限していますか??
制限というのはプロジェクトの仕様などでの事ですが。
746デフォルトの名無しさん:03/04/03 19:27
>>745
3.8階層。
747デフォルトの名無しさん:03/04/03 19:31
>>745
一般的には5階層まで。
748デフォルトの名無しさん:03/04/03 19:41
} catch (Exception e) {

この後に、eの例外が何であるかを判定したい
(IOExceptionなのか、はたまた、NumberFormatExceptionなのか)
のですが、美しい方法がオバカな私には思い浮かばれません。
(汚い方法すら・・・・・)
天才の方々にお助け求ム!!
>>748
なんで

} catch(NumberFormatException e){
 ...
} catch(IOException e){
 ...
} catch(Exception e){
 ...
}

ではいけないのか? まぁ判定だけならこれで良いけど。

if(e instanceof NumberFormatException){
  ...
} else if(e instanceof IOException){
  ...
}
750デフォルトの名無しさん:03/04/03 19:54
>>749
} catch(NumberFormatException e){
 ...
} catch(IOException e){
 ...
} catch(Exception e){
 ...
}

の各catchの中で行う処理がまったく同じなんス。
なので、if文の方法を使わせていただきます!
ありがとうございました(≧▽≦)
の各catchの中で行う処理がまったく同じなんス。

じゃあ
catch(Exception e){
 ...
}

だけでいいじゃん。
>>748
> } catch (Exception e) {
> この後に、eの例外が何であるかを判定したい
自分もこれ知りたい。
デバッグのときに、どのタイプの例外が呼ばれているのか知りたいので。

e からクラスの名前を知るにはどうすればいいのですか?
753デフォルトの名無しさん:03/04/03 22:17
>>751
ごめん!なさい。説明不足っていうか誤った表現をしてしまった。

やりたいことは、、、
1.例外発生時に自前のログ出力関数(1行ログ出力)を使用して、
  例外種別(IOExceptionとか)を出力したい。
  併せて付加情報も出力するんだけど、例外毎に付加情報元が異なります。
  (e.iCodeっていうフィールドだったり、e.toString()だったりする。)
  【出力例】Err!: IOExceptionが発生。(付加情報:ほにゃらら)

2.上記ログ出力後に、自前ログ出力関数を使用してスタックログを出力したい。
  【出力例】Err!: main(test.java:50)  ※スタックログ分繰り返し

で、2の処理は共通なんだけど、1の部分をif文で実現できたら幸せ♪
と、思ったわけ・・・・(はたして、この説明文で伝わるか不安。。)

あ、「まったく同じなんス」ではないね(^^;ごめんち!
>>752
e.class

>>752
> } catch (Exception e) {
このeの実際のクラス名は、e.getClass().getName()とかすれば、取れるぞ。
e.printStackTrace()しても、多分取れるぞ。
もしかしたら、本当に発生した例外は、e.getCause()で取る必要があるかもしれないぞ。
756デフォルトの名無しさん:03/04/03 22:29
ところで、e.String()ってなにが表示されるの??(←オバカさん1号
>>756
e.toString() のことか? 典型的にはこんな感じだな

e.getClass().getName() + ": " + e.getMessage()
758756:03/04/03 22:35
>>757
どもー♪
>>756
もちろんクラスによって異なるが。ポリモフィズムって奴だ。
760デフォルトの名無しさん:03/04/03 22:45
Cとかだと、ファイル名とソース行数を埋め込むのって簡単じゃないですか。
  __FILE__と__LINE__
これに相当する機能ってJAVAにありますか?
いくら探してもみつからないです。
761デフォルトの名無しさん:03/04/03 22:49
1.4.0サポート終了プロセス完了上げ
762デフォルトの名無しさん:03/04/03 22:57
>>744
ボタン押したときはwindowClosing()が呼ばれるわけじゃないんだろ?
たぶん、actionPerformed()呼んで、中身の処理が一緒ってことだろ?
windowClosing()は閉じること前提で呼ばれてるんじゃないのかなぁ・・・
setDefaultCloseOperation()使えばできるかな
>>760 場合によっては
System.out.println((new Throwable()).getStackTrace()[0].getFileName());
とかが使えるけど...
764763:03/04/03 23:00
あ、ごめん、Cのプリプロセッサ的動作を期待されると困る。
765デフォルトの名無しさん:03/04/03 23:00
public class HogehogeException extends Exception {
public int iCode;
public HogehogeException {

}
}

この自前Exceptionもどきを
} catch(Exception e) {
で受けたら、このcatch節の中でe.iCodeを参照できん!
いや、できません。
でも、どうにか参照したいんです!

立て続けに、つまらない質問ですみませんが、
愛の手ほどきをよろしくおねがいします。
>>744
javax.swing.JFrame frame = new javax.swing.JFrame();
frame.setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
frame.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
System.out.println("x");
}
});
frame.setVisible(true);

これで試したら閉じなかった世。
>>765
キャストしてあげてください。
HogehogeException hage = (HogehogeException)e;
質問の流れから 760 = 765 な気がするんだけど...違う?
もし例外時のログ出力に使うなら、受け取った例外から
スタックトレース引き出して使う。
769760:03/04/03 23:13
>>768
760=765であってます(^^;

>>767
コンパイルとおった!!ありがとございますー。

>>768
使用目的は例外時のログ出力なんだけど。。。。
ごめん、理解できなかった。。。
一応初心者なのでスタックトレース自体の把握が
あまいのでございます。
勉強不足だーーー(自己嫌悪)

もし、お手数でなければ、具体例をください。
ほんと、自分の勉強不足を棚に上げて申し訳ない!!
770768:03/04/03 23:20
>>769 必要な情報は763から読み取れるからあとはAPIマニュアル
読んで理解する。
771760:03/04/03 23:24
>>763
つ、使える!!
けど、ひとつ気になることがあります。

Throwable()をnewするため、ファイル名と行数を表示しようとした場合、
Throwable()を2個newする必要があります。
で、使用目的はデバッグ文であるため、使用頻度は高。
リソースを食べ過ぎちゃうのでは?
というのが引っかかってます。どうなんでしょう??
772760:03/04/03 23:25
>>770
うっス!了解ッス!!
わざわざ、返事ありがとうございました。
773デフォルトの名無しさん:03/04/03 23:34
charとStringの違い
って何ですか?
どちらも文字列を扱うけど
一般的にはStringが多用されてるみたいだけど
普通に使う限りそんなに変わらないと思いますが
>>773
>どちらも文字列を扱うけど

だうと
775デフォルトの名無しさん:03/04/03 23:41
パッケージの指定で
java.io.*;
java.util.*;
jp.co〜;
とかディレクトリの構成で指定すると思うけど
この最初の出発のjavaとかjavaxとかjpとかって
どこで設定されているのですか?

普通ディレクト構成なら
c\java\jp\co\〜みたいに、cから指定しなくて良いのですか?




java. jp.co.〜 の前のディレクトリは?
この板に書くのは初めてでドキドキしています。
Javaアプレットなんですけど、document.writeでhtmlとかを出力したあとで、
出力した内容を削除したいのですが、皆目検討がつかない状態なんです。

たとえば、

document.write('私の馬鹿');

一定秒数もしくは別のdocumentから私の馬鹿を削除したい

こういうことなんですが、可能なんでしょうか?
>>773
char[]のことだろね。

1.変更不能な文字列を表現するのに便利。同じインスタンスを再利用できます。
2.文字列を入出力にするタクサンのほかのクラスのメソッドで入出力の型にString
 を使っています
3.Stringクラス自身にも便利なメソッドがいっぱいあります
4.どうせフィールドはchar[]とほんのちょっとの状態情報だけです。
 インスタンスのメモリ消費量はchar[]と大して変わりません。

それにもかかわらずStringを使わないというのは、頭のおかしい人か、
あるいはよっぽどリソースが足りないかの、どっちかですね。
すいません、無知な私にヒントを下さい。。。
javaアプレットの話です。
document.writeで記述した文章等を動的に削除したいのです。
たとえば
document.write('ほにゃらら');

で、ほかのドキュメントからとか、一定秒数後に ほにゃららを消去したいのです。
ご教授お願いいたします。。。
>>775
java や jp の直前まではクラスパスで決まる。

(※クラスパスに複数ディレクトリや複数jar などあったら、
 それぞれ順番に調べて最初に見つかったクラスを使う)
>>775
クラスパス。
>>776 >>778
そりゃJavaScript。
781デフォルトの名無しさん:03/04/03 23:46
Cヘッダファイルの指定
Javaのクラスのimport

この2つは内容は違うと思うけど、やろうとしてる事はイコールですか?
>780
あ、すいません。その通りですね。。。
本当に私馬鹿だ。。。
どなたかヒント下さる方がいらっしゃったらお願いいたします。。。
>>781
コンパイル時にシンボル情報を解決する手段なので、まあその点では
一緒かな。
Cの場合は、動的リンクを選ばないとビルドの時点でリンカが固めちゃ
うけど、Javaは「常に必ず」実行時に動的にリンク。という点が違う
ね。

>>782
JavaScriptはいた違い。
>>781
>>782
何云ってるのか分からなくて俺が無知なのかと心配しちゃったじゃねーかパカ!サプヤンノパカ!
>>781

787783:03/04/03 23:55
コンパイラがやってる作業の内容は全然違うけど。

Cの場合は、単にプリコンパイラが貼り付ける。
単にテンプレ貼り付けるみたいな感じ。
Javaの場合は、参照先のクラスファイルを探して直接
そこからシンボル情報を引っ張り出そうとする。もし
クラスファイルがなかったら、クラスファイルになり
そうな名前のソースファイルをコンパイルする。
つまり、本物のライブラリを利用して、シンボル情報
の解決をやろうとするわけね。

…わかります?
788782:03/04/03 23:55
>783
板違いなんですか。。。
documentクラスが分かる人たちがいる所で想像がついたのがここだったので。。。
すいませんでした。。。
>785
すいません。。。私が無知なだけです。サブヤンは私ですか?だったら馬鹿呼ばわりしてもらって結構です。。。
>>788
Javaの人にはdocumentクラスはわからんよ。マジデ。
790782:03/04/04 00:04
>789
ご丁寧にありがとうございました。。。
失礼します。。。
791デフォルトの名無しさん:03/04/04 00:06
今System.out.println("");で改行しているのですが、
例えばPerlのように\nのようなエスケープシーケンスはありますか?
複数行Syste.out.printを打つのが面倒です〜。
なお、まだ数日しかJavaを触っていないので優しく教えてください。エヘ
>>777 Stringって確かに各種メソッドがそろっているけど、
内部コード固定なのがたまに不便。結局byte[]でごり押しって
パターンが結構あるな。
>>788
WebProg板へ行け
一定時間後HTMLを再出力で幸せになれるけどな
>>781
違う。
importは、名前が省略できる以上の動作はない。
importをまったく使わずにプログラムを書くことができる。

importしておけば、どのライブラリを使っているかわかりやすい、というのはあるが。
>>791
ttp://www.y-adagio.com/public/standards/tr_javalang/3.doc.htm#101089
ただもちろん改行は環境依存するからシステムプロパティを参照するほうが
より望ましい。
>>792
どんなプログラム作ってるでつか?
一般的ではなさそうです。
>>791
なんで試してみないんだろうか。。。
798783:03/04/04 00:13
>>794
あそっか。import自体は単なるSyntaxSugarだった。スマソ。

>>792
Unicode以外で文字列を扱うと、いろいろ不便じゃない?
今時、WordやExcelでさえUCS-2。
799791:03/04/04 00:14
>>795
センクス♥
家の環境なら\nでいいみたいでつ。
それではまた〜
800783:03/04/04 00:16
System.out.println("ほげ")
イコール
System.out.print("ほげ"+System.getProperty("line.separator"));
ですよね?
801デフォルトの名無しさん:03/04/04 00:20
ASCIIコードとJavaの関係って切っても切れない関係ですか?
802792:03/04/04 00:23
テキストのメタ情報としてencodingが与えられていないとき。
POPとかSMTPとかHTTPやっていると結構ある。改行はRFCで
CRLFと決まっているから切り出してbyte[]に放り込むことが多い。
ISO-8859-01でStringに放り込むってのがどうも実装依存で
肌にあわないもんで。でも上述の改行コードもUNIX屋は気にせずLF
投げてくるやつも多いから改行判別入れてるわけで、encoding
に関して判別しないのはなぜかと言われると、なんとなく...なんだけどね。
>>801
いいえ。UnicodeとJavaはきっても切れませんが、それ以外は
Javaにとってはドウデモイイ存在でしょう。一応エンコーダとデ
コーダをコアAPI内部で必要なだけ準備はしているようですが。
>>802
JISAutoDetectを使うのはヤヴァイと思うけど、ISO-8859-01は別にかまわん
ようなきがするが。単にエンコードに関する処理を何もしないだけでしょ。
>>791
> 今System.out.println("");で改行しているのですが、

こんなアホなことしてる人はじめてみた。
806792:03/04/04 00:48
>>803 US-ASCIIとISO-8859-1は標準APIでサポートすることが必須の
encodingだよ。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/nio/charset/Charset.html

>>804 「何もしない」というのが実装依存でしょ。8bitクリーン
とは保証されていないわけで。まあSunの実装使っているかぎり
問題し、「肌に合わない」ってレベルの話なんで流してくれ。
807792:03/04/04 00:49
訂正:「問題し」>>「問題ないし」
808デフォルトの名無しさん:03/04/04 01:01
もうしわけない。すこし教えていただきたいのですが、
jarファイルに含まれるマニフェストファイルの
(Fileクラスで言うところの)lastModifiedを取得したいのですが
なかなか思うようにいきません。
ぜひお知恵を拝借したいです。
よろしくお願いします。
>>808
JarEntry#getTime()?
>809
僕のやりかたがまずいのかもしれないのですが、
jarからJarEntryにセットしたときに
マニフェストファイルはセットされていないみたいなのです。
getTimeだと、クラスファイルの更新時間は取得できたのですが・・・。
>>810
マニフェストファイル自身のJarEntryは?
812808:03/04/04 01:41
>809
マニフェストファイル自身のJarEntryは取得できませんでした。
他のクラスファイルのは取得できたのですが・・。

クラスファイルとは別手段で
取得しないといけないんでしょうか?
813808:03/04/04 01:49
うーん、また明日会社で仕事の合間にがんばってみることにします・・。
809さん、今日はありがとうございました。
>>813
JAR じゃなくて ZIP ファイルとして読み込んで ZipEntry#getTime()

ところで最近流行りのパスワード付き ZIP って Java で扱えますか?
>最近流行りの
数年前に流行って大分廃れてきてるけど。
Sealed Jarって、それのこと?
>>816
Sealed JAR ってのは、特定のパッケージに含まれるクラスが必ずこの JAR
からロードされなければいけないという奴。クラス検索順序を使ったクラス
すり替えを抑制する目的 (セキュリティやライセンス関係のクラスすり替え
みたいな)。

http://java.sun.com/products/jdk/1.2/ja/docs/ja/guide/extensions/spec.html
818デフォルトの名無しさん:03/04/04 03:04
>>791
おまえな、複数行打つのが面倒だって?
コピーしろよ。PC使えよ。

もまいは、この先logクラスなど使わなくていい。
開発現場に現れるな。
人知れず、山に篭って一生System.out.println("");してろ。

と、VB 上がりのコピ厨が申しております。

Java厨はコピ厨です。
Java って \n 使えないのか?
使えるけどLF
今更だけど改行コード指定できないWriter萎え
>>823
ハァ?
825デフォルトの名無しさん:03/04/04 09:57
A → B かつ B → A
という関係のデータを格納するようなクラスを探してみたのですが、
見付かりませんでした。そのようなクラスは標準のクラスライブラリには
存在しないのでしょうか?
>>825
SOAPのQNAMEとか。とか思った。
827デフォルトの名無しさん:03/04/04 10:30
汎用機系ではDBがRDBではなく
NDBを使用する事が多いと聞いたのですが
NDBとは何でしょうか??
教えてください。
>>827
ネットワーク型データベースじゃないの?
829デフォルトの名無しさん:03/04/04 11:38
C言語のscanfに相当するものは
JAVAではなんでしょうか?
>>829
無いでしょう。可変長引数とれないし。
831744:03/04/04 11:42
>>766,762
ありがとうございました。
早速試してみたいと思います。
>>830
可変長引数がとれないから、可変数の引数をとるメソッドがないかというと、それは間違い。
配列で渡すメソッドは結構ある。
なので、可変長引数とれないというのは理由にならない。

scanfにそのまま対応するものはないとおもうのだがね。
>>832
Object[] hoge#scanf(String format);

こんな感じ?instanceof使いまくりだな。個人的には嫌いかも。
try {
  Scanf s = new Scanf(System.in, "%d: %s");
  while (s.hasNext()) {
    System.out.println(s.next());
  }
} catch (IOException ex) {
  ...
} catch (ScanfFormatException ex) {
  ...
}
…とか。キモイか…。
>>834
こんな感じだろうなぁ。
836デフォルトの名無しさん:03/04/04 13:02
interfaceおよびimplementsについて
わかりやすく説明して頂けるとめっちゃ助かるなり
>>836
もううんざりです。
>>836
過去レス読んでくれるとめっちゃ助かるなり
839デフォルトの名無しさん:03/04/04 13:06
>>838
どの辺に載ってるなりか?
>>839
死ね
841362:03/04/04 13:11
>>839
検索せい
>>839
受講料10万で教えてやる
843デフォルトの名無しさん:03/04/04 13:34
JAVAのトラ本って和訳されたものはないんですか?
みなさん英語の原文を読んでいるのですか?
>>842
初心者からで、ほんとにちゃんとわかるなら安いかも。
845デフォルトの名無しさん:03/04/04 14:05
>>841
ありがとうございました。
微妙にわかりました。
>>829
MessageFormat mf = new MessageFormat("{0}, {0}, {0}");
String forParsing = "x, y, z";
Object[] objs = mf.parse(forParsing, new ParsePosition(0));
// result now equals {new String("z")}
ここらへんで手を打たないか?
可変長じゃないけどな。
847デフォルトの名無しさん:03/04/04 16:08
皆は継承を使うかどうかの判断ってどうしてる?
>>847
使いたいときに使う
漏れが使いたいときがみんなの使いたいときであるように精進する。
>>847
逆に継承以外の手段をどうしてる?
インターフェースを使うとか?
850デフォルトの名無しさん:03/04/04 16:40
public class hoge {
  public static void main(String[] args) {
    System.out.println("args count = " + args.length);
  }
}

この .length っていうのは演算子なのか何なのかわかりません。
別にわからなくても困らないけど気持ち悪いんで教えてください。
>>850
フィールド
>>850
> 別にわからなくても困らないけど

困れ。
>>850
APIドキュメントも読まないくせにいっちょまえに質問だけはするお前が気持ち悪い
どちらかというと、APIドキュメントじゃなくて言語仕様のほうだと思う。
855デフォルトの名無しさん:03/04/04 17:19
問1.Class内で自分のクラス名を取得しなさい。

856デフォルトの名無しさん:03/04/04 17:20
問2.同様にメソッド名も取得しなさい。

>>855-856
タリー
858デフォルトの名無しさん:03/04/04 17:23
>>857
タリー言うなって(笑
(゜∀゜)<ペリー
860デフォルトの名無しさん:03/04/04 17:45
ペリー言うなって(笑
861デフォルトの名無しさん:03/04/04 17:55
ぶっちゃけコレクションって何?
サンプル書いちゃって!!!
862ヽ(´ー`)ノ:03/04/04 18:00
サンプルもなにも、ドキュメントにあるんだけど…。
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/collections/
>>861
>ぶっちゃけコレクション

エイトランド地方キムリー村。
この村に、ぶっちゃけハンターを目指す少年がいた。
名はコウンドウ。今日も彼はぶっちゅけを追いかけ、戦い、そして殴られる。

目標は最強のぶっちゃけコレクションを作って王女様と結婚すること。

そして今日、コウンドウは裏山で見たこともないおおきなぶっちゃけを見つけるのだった・・・
864デフォルトの名無しさん:03/04/04 19:57
おい、もまえら。
JDBCでexecuteUpdate()したときに更新できなかったらどうなるか答えろ。
0が返る。
>>847
この本に書いてある。買って読む価値はあるよ。
「UMLによるJavaオブジェクト設計」
http://www.amazon.co.jp/exec/obidos/ASIN/4894711524/ref%3Dpd_sim_dp_3/250-4410955-3876226
ここまでくると初心者の域を超えてるな。
867デフォルトの名無しさん:03/04/04 20:58
教えてください。
ホームページでセレクトボックスを使用しようとしているのですが
プレビューするとどこにもジャンプしないはずの初期選択値【選択しててね】が
ファイルの一覧になってしまします。
どうすればいいのかどなたか教えてください
>>867
その説明では何のことやらさっぱりわからん。

JavaとJavaScriptはとりあえず別物。Javaアプレットでも
作ってるのか?
869デフォルトの名無しさん:03/04/04 21:30
もしかして間違った所に書きこんでしまったのですか?すみません。
今、ホームページをつくっているのですが、セレクトボックスからリンク先にいきたいのです。
リンク先に行くには行くのですが、リンク先に行かなくてもいいタイトル?
【選択してください】をクリックすると何故かファイル一覧が表示されてしまうのです。
>>869
JavaScriptの質問はWeb製作板へどうぞ ⇒ http://pc3.2ch.net/hp/
871デフォルトの名無しさん:03/04/04 21:36
あの〜スミマセン!!
MassageBoxの出し方教えて下さい。
ガッコウの兄貴に指示されました。
コニチワ、マッサージボックスで出せなさいと。
どうすればいい?
すみません。初心者です。
Javaで、一定時間ごとに、画面をキャプチャするなんていうアプリを作れるのでしょうか?
>>872
java.awt.Robot 使って VK_PRINTSCREEN を押してやれば良いんじゃないか?
で,あとはクリップボードから画像を持ってくればOK。
>>873
それってLinuxでも動くのか?
875873:03/04/04 22:41
>>874
すまん。 createScreenCapture() ってのがあるんだね。逝ってきます。
876808:03/04/05 01:29
>814さん
どうもありがとうございました。
814さんの言われたとおりにしたら、
望みどおりの結果が返ってきました。
String[] num = {
"one",
"two",
"three",
};

とかがあったときに、これを String[] 型から ArrayList などに変換するには
どうすればいいのですか?

今は for ループでいちいち add を使って追加しているのですが、
おそらく、もっと直接的な方法があると思うのですが。
>>877
おまえの直感はもちろん当たっている。
おまえの望む機能は、
java.util.Arraysだ。
が持っている。
>>878
>おまえの望む機能は、
>java.util.Arraysだ。
>が持っている。

変な日本語を使う親切な人、ありがとう!
>>869 が何云ってるか分かったしどうしてそういうことが起こるかも分かったけど、
ここは Java スレだし遅レスだから教えない。
>>880
なら目障りだから書き込むな。
>>881
モナー
>>881
ウン分かった
これからは目障りかなーと思ったら
「目障りだと思ったんので書こうと思った事は書きmdksdf
884デフォルトの名無しさん:03/04/05 15:16
2ch と同じ(もしくはそれに近い)IDを作成したく、色々模索していくうちに、Crypt暗号(って呼び方でいいの?)を
みつけました。
http://www.cryptix.org/support.html から、jarをおとしました。
でもって、以下のサンプルで、2chのIDに近いものが作成できました。

import cryptix.tools.UnixCrypt;

UnixCrypt anCrypt = new UnixCrypt("");
String cryptStr = anCrypt.crypt(hostInfo); // hostInfoがクライアントのIPアドレス

ただし、hostInfoが192.168.1.85 と、192.168.1.86 とでは同じ文字列を
返してしまいます(YBCf/CwHmToを返す)。これって、やっぱし仕様でしょうか。

JDK1.4でもCryptで文字列を暗号化するクラスが統合されたようですが、
今の所使い方というか使用目的に見合ったサンプルがなくてトホホです。
よろしくおねがいいたします。
885884:03/04/05 15:46
あああ、すいません、IDが同じになってしまう理由はわかりました。
与える文字列(hostInfo)が8バイトまでしか認識してくれないようです。
JavaDocに書いてありました。これは不便ですねぇ(;´Д`)
>>885
不便、って・・・・
IP アドレスの文字列 "192..." をそのまま渡してるのか?
そりゃ工夫が足りないよ
887884:03/04/05 15:55
>>886
コトバ足らずですんません、そりゃ、もちっと工夫はしてますけど。8バイトというのが意外だったんです〜。。。
888デフォルトの名無しさん:03/04/05 19:01
オーバーライドについて質問です。
class A3 {
void hello() {
System.out.println("Hello from A3");
}
void hello(int i) {
System.out.println("Hello from A3 " + i);
}}
class B3 extends A3 {
void hello() {
System.out.println("Hello from B3");
}}
class C3 extends B3 {
void hello(String s) {
System.out.println("Hello from C3 " + s);
}}
class MethodOverriding3 {
public static void main(String args[]) {
A3 obj = new C3();
obj.hello("hello");
}}
"Hello from C3 Hello"というメッセージが表示されません。C3のオブジェクトへの参照をいれているのですが、
なぜかエラーが出ます。オーバーライドがわかってないと思うので教えてください。
よろしくお願いします。
>>888
エラーを読めば分かるはずだが(でも初見では難しいかも)、
貼らないところを見るとよく読んでないな。

答え :
 クラスA3 には #hello(String) というメソッドが無い
> }}
気色悪い、、、
891デフォルトの名無しさん:03/04/05 19:18
JAVA入門(Java2対応)
http://village.infoweb.ne.jp/~fvbf0110/homepage/java/java.htm

↑このページを久しぶりに見たくなったのですが、無くなっていました。
移転されたのでしょうか? それとも公開中止されたのでしょうか?
どなたか、ご存知の方がいらっしゃったら教えてください。
(´・ω・`)
892名無しさん@Emacs:03/04/05 19:20
servletで、クライアントより、同時アクセスしたときに、
データが混ざってしまいます。
CGIでは何もなかったのに。
>>892
インスタンスフィールドにデータを保持してるね。
初歩的ミスなんでServletの入門書を読めば分かるよ。
894888:03/04/05 19:32
C3クラスに#hello(String) メソッドはあるんですけど、だめなんですか?
>>894
ダメ。A3 の参照では A3 が持ってるメソッドしか使えない。
>javac MethodOverriding3.java
MethodOverriding3.java:25: シンボルを解決できません。
シンボル: メソッド hello (java.lang.String)
場所 : A3 の クラス
obj.hello("hello");
^
エラー 1 個
>>894
逆に聞くけど、

A3 ref = randomCreate(); // A3, B3, C3 のインスタンスをランダムに生成する。
ref.hello("hello");

としたとき、どうなるべきだと思う?
898888:03/04/05 19:57
ストリング型の引数を取るメソッドが自動的に選ばれると思います
899888:03/04/05 20:12
A3 obj = new C3();
この行でA3型の参照変数にC3オブジェクトへの参照を入れたと思っているのですが、
C3クラスにはString型の引数を取るメソッドがあるので実行されるのは自動的に
C3クラスのメソッドが実行されると思ってたのですが。
変数に代入するオブジェクトによって実行されるメソッドが決まると参考書には書いてたので。

900デフォルトの名無しさん:03/04/05 20:15
JavaでMP3プレーヤーを作りたいのですが、
可能でしょうか?
901 :03/04/05 20:18
可能だと思います。
自前のmp3デコードライブラリを作るか
Jiniで外部のdllを呼び出せば十分可能かと・・・
>>898
じゃあさ、 >>897 で A3 やら B3 のインスタンスが生成されていた場合どうするのだ?
903888:03/04/05 20:25
引数がString型がないのでエラーになるのですか?そこまで考えてませんでした。
904デフォルトの名無しさん:03/04/05 20:27
>>901
PureJavaで

> 自前のmp3デコードライブラリを作るか
作れる気がしません。。
905デフォルトの名無しさん:03/04/05 20:29
>>901
DLLの中身ってどうやってみるのですか?
呼び出したいんですけど、関数名とかわかりませんが。
906デフォルトの名無しさん:03/04/05 20:29
javaで作ったのを、コマンドラインからでなく
実行形式のファイルから起動させたいのでですが、
みなさんはどうやって実行形式のファイルを作成してますか?
お勧めのがあれば教えてください。
907888:03/04/05 20:41
A3 obj = new C3();ってとこがよくわかりません。
>>907

>>899
> A3 obj = new C3();
> この行でA3型の参照変数にC3オブジェクトへの参照を入れたと
であってるよ。
909888:03/04/05 20:54
ありがとうございます。
この考えがあってるとなってると>>888のソースコードがうまく行くと思うのですが。
A3はC3のスーパークラスなのでサブクラスのオブジェクトを参照できると思ってるので。
A3クラスにhello(string s)がなくても、C3クラスにあるので今回はC3オブジェクトを
のメソッドを使用してるので問題ないと思うのですが。
>>909
ってことは、

Object は C3 のスーパークラスなので、Object に hello(string s)がなくても、
C3 にはあるの、今回は C3 のインスタンスを使用しているので問題ないと思うのですが。

でも良いわけで。
で、 >>910 が是なら参照は全部 Object の参照で良いわけで。

Java が A3 の参照とか C3 の参照とかを区別するのは
その区別によって、アクセスできるメソッドやらフィールドを特定できるから。

それらが特定出来る場合、メソッドコールやフィールドアクセスを単純化できるし、
特定できない場合に比べて実行速度やら生成されるコードの大きさで有利になる。
>>909
A3 obj = new C3();
だと、objの型は結局A3じゃねーか
「A3型のオブジェクト」がなぜ「C3で定義されてるメソッド」が使えるようになるんだよ
>>888
class A {
  public void hello() {
    System.out.println("Hello A");
  }
}
class B extends A {
  public void hello() {
    System.out.println("Hello B");
  }
}
の場合
A a = new A();
B b = new B();
とやると
a.hello(); // 出力は Hello A
b.hello(); // 出力は Hello B
なのは簡単にわかると思うが
A ab = new B();
とやっても
ab.hello(); // 出力は Hello B

あと混同しやすいが
同名同シグネチャの関数=オーバライド
同名異シグネチャの関数=オーバロード
>>888
でJavaでは各変数に動的な型と静的な型が存在していて
オーバライドは動的な型に依存するが
オーバロードは静的な型に依存する。

A3 obj = new C3();
とやった場合 obj の動的な型は C3 だが静的な型は A3 なので
obj.hello(String) を呼ぶことができない
>>900-901
"Java MP3 Player" で google検索すると、そのものズバリがヒットするような。
>>888
public class Hoge {
 public static void main(String[] args) {
  HumanBeing human1 = new Japanese();
  HumanBeing human2 = new Italian();
  HumanBeing human3 = new HumanBeing();
  human1.talk();
  //human.talk("日本人です");  // エラー ※1
 }
}
class HumanBeing{
 void talk(){
  System.out.print("Hello.");
 }
}
class Japanese extends HumanBeing{
 void talk(String str){
  System.out.print("こんにちは、" + str);
 }
}
class Italian extends HumanBeing{
void talk(String str){
  System.out.print("Chao " + str);
 }
}

※1
日本人は人間だが、人間は日本人というわけではない。
つまり、日本人は日本語を話せるが、人間全員が日本語を話せるわけではない。
それに、human1、human2、human3はどれも同じ「HumanBeing型」なのに、
それぞれ別のメソッドを使えるのは矛盾してると思わないか?
普通に考えればHumanBeing型はHumanBeingクラスのメソッドしか使えないはず。
917亀レス:03/04/05 22:10
>>904
作ってくれ、頼む。まずい棒あげるから。
>>905
JNIだったw
ネイティブメソッドで引数をdllに渡せばいいかと・・・
918デフォルトの名無しさん:03/04/05 23:00
あのー、正規表現つかって、文字列の検索したかったんですが、
boolean b = Pattern.matches("モナー" , "モナー来訪者" );
としても、falseになっちまいます。えー?なんでー?っていうんで
正規表現の初心者サイトとか見て回ってますが、3時間ほど頑張りましたが
だめぽです。どうしてでしょ?
(おまえは向いていないとかは無しで…)
Java の正規表現はあまり使わないのでアレだがこうじゃないの?

boolean b = Pattern.matches("モナー.*" , "モナー来訪者" );
92077:03/04/05 23:02
写メール対応。やらせ・バイト一切無し。女性も安心♪♪ 地域別、不倫・エッチ希望。

http://kgy999.net/yhst/
>>888
hello() と hello(String s) は違う。つまり、オーバーライドになっていない。
変数objはA3型で宣言しているので、A3型で定義されているメソッドしか呼べない。
つまり、A3型で定義されていない hello(String s) は呼べないのだよ。
>>918
一部分がマッチする場合は find を使う
全体がマッチする場合は match でよい
923918:03/04/05 23:29
>>919の方ではちょっとだめでした。が、しかし、
>>922 さんのでOKでした。やりたいことは、まさに、それでした。ああ、なんということでしょう。ありがとうございました。

924デフォルトの名無しさん:03/04/05 23:58
Netscape7.0 でjava appletが二つあるhtmlファイルを読み込むと毎回フリーズしますが、
仕様ですか?
925デフォルトの名無しさん:03/04/06 00:31
eclipseでjbuilderのように
マウスでguiのパーツを貼り付けて
開発することってできますか?
926デフォルトの名無しさん:03/04/06 00:34
Javaは消滅してしまうのですか?
廃れてしまうのですか?
C++覚えたほうがいいですか?
>>926
JDK 1.4.2 の速さに驚愕したのは分かったから死滅スレから出てこない
でね。
928デフォルトの名無しさん:03/04/06 02:21
JAVA2を勉強しようと思うのですが、
初心者(プログラム経験ナシ)にオススメの本ってありますか?
929マジレス:03/04/06 02:25
プログラム経験なしの初心者はとりあえず
Java関係の前にDOS関係の本を読むことをオススメする
>>929
DOS の本だけ読んでも、いまどきの人じゃやることないからすぐ挫折
すると思われ。昔はメモリけちって FEP 削除したり RAM ディスク
作ったりロータス起動するために拡張メモリ認識させたりといろいろ
あったけど。
>>928
それでも最低限cdとdirくらいは使えないとなw
>>931
そうだな。環境変数やプロセスが何なのかくらいは覚えておいて欲しい。
教育用の 1000 円くらいで買える Linux Box とかねーなか。
性善説サーバがあるよ。
934デフォルトの名無しさん:03/04/06 05:30
>>932
その前にコンピュータ五大装置だろうがよ。
ノイマン型コンピュータ?
なんか Java 初学者にはどうでも良い知識な気がする。
だれもノイマンという単語は出してないが?
そんなもんは初学者にはどうでも良い。楽しく興味を持ってやれる事が最優先。
>>936
直接はね。
>>937
禿げ同
940デフォルトの名無しさん:03/04/06 06:49
>>937
ヴォケかおまえは。
基礎を学ばせるのは当たり前だ。
そんなことだからいつまでも初心者の域から脱出できない。
わかってんのか?
原理主義者が現れました。
どうしますか?
>>940
興味を持ってやってれば君が言う「基礎」の方に意識が向くのに時間が
かからないだろう。君は机上でプログラムを始めた文系プログラマかね?
943デフォルトの名無しさん:03/04/06 07:02
>>942
無理。基礎が必要だと誰かが指し示さない限り、
レジスタ云々まで学ぶやつはいない。
だから>>942のような「解ってるつもりが質問スレで
前提をくつがえすようなことを質問する。
わかってんのか?あ?
「レジスタ云々」

な、何の話?
>>943
日本語おかしいな。
レジスタ云々の前に日本語の基礎を勉強したほうがよかったな (藁
「レジスタ云々」からほのかな芳ばしさがする御人はレジスタと言ってみたかっただけとみた。
というか自分の知ってるボキャブラで一番基礎技術っぽい単語がレジスタだったというところで、
実際はせいぜいCの register 変数使ったことがある程度とみた。
Java使いなら、バーチャルマシン仕様より下はイランとおもうけどね〜。
通信の仕組みやファイルシステムの使い方くらいは一般教養として
しってて欲しいもんだけど、それだって一般プログラマがあんまり
低レベルの仕組みを熟知する必要はないと思うけど。
948947:03/04/06 09:27
>>946
彼に香ばしい感を感じるのは、胴衣。
あるいは基本情処取る為に覚えたとか。
>>946
基礎技術を開発の基礎と勘違いしてアセンブラっぽい話を自慢する奴
いるよなぁ。じゃぁおまいはシリコンウェーッハッハッハの切断精度を
高めるためにどんなことをやってるか知ってるのかと (昔仕事で
やったな〜)。
Javaを勉強しようと考えている者が、HelloWorldプログラムを書き始める前
に是非身につけておくべきだ、という知識、技術にはどんなものがあると考えますか?

例えば、2進・8進・10進・16進数の基数変換について机上で計算できる
ようになっておくことは、HelloWorldより先に済ましておくべきと思いますか。

また、Java言語の様々なポイントのうち、習得すべき順序についてご意見を伺いたい。

単なる趣味でプログラムやりたいという人は、どうでもいいんだけどね。

設定としては、あなたがJavaの仕事を持っていて、それをこなす為に部下を与えられ、
その部下にJavaを教えなければならないことになった、ということで。
>>949

> (昔仕事で
> やったな〜)。

ここが香ばしいね。
>>950
そういう話は必ず宗教論に発展するので別スレでやってくだちい。
>>951
プ
来た来た
954928:03/04/06 12:42
なんかいろいろなことになってるな。
で、オススメの本はないんでしょうか?
0x80以上のbyteをprintln()で表示させる時、そのままだと
負の表示になりますが、0xFFと&すると符号無しとして
表示されるのは何故でしょうか?
byteと0xFFの&では変わらないように思うのですが・・・。

byte buff =(byte)0x80;

System.out.println(buff);//-128と表示
System.out.println((buff & 0xFF));//128と表示
956デフォルトの名無しさん:03/04/06 13:05
>>955

0x80のbyteはintに拡張されて
00000000000000000000000010000000

0xFFのintは
00000000000000000000000011111111

andすると
00000000000000000000000010000000

となる。

Javaではintよりも小さな基本データ型つまり
char byte shortに対して何らかの演算を行う場合
処理の前にintに拡張され、結果もintとなる。
957956:03/04/06 13:14
>>956訂正

0x80のbyteはintに拡張されて
×00000000000000000000000010000000
○11111111111111111111111110000000

だね
958デフォルトの名無しさん:03/04/06 13:15
>>950
Hello Worldプログラムの前にやるべきこと。
Hello Saitamaです。
System.out.println("                \ │ / ")
System.out.println("                 / ̄\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ")
System.out.println("               ─( ゚ ∀ ゚ )< さいたまさいたま! ")
System.out.println("                 \_/   \_________ ")
System.out.println("                / │ \ ")
System.out.println("")
System.out.println("")
System.out.println("               ∧ ∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ")
System.out.println("              ( ゚∀゚ ) < さいたまさいたまさいたま!")
System.out.println("       ∧ ∧   /    )   \___________ ")
System.out.println("       ( ゚∀゚ ) 0=┳=0     ∧ ∧ ")
System.out.println("      0=┳=0  / ┃ ヽ    ( ゚∀゚ ) ")
System.out.println("       / ┃ )  = ‖( ノ    0=┳=0      ∧ ∧    / ̄ ̄ ̄ ̄ ")
System.out.println("        ヽ ‖ノ     ‖=    l⌒┃ ヽ     (゚∀゚ )  < さいたまー!")
System.out.println("";;;゙゙;';'"゙゙;''"';;;゙゙';"'';;";゙゙''";;''"';'"゙゙';;'"';;;'"''"';';"'゙゙'";"''';;;,、0=┳=0 \   \____ ")
System.out.println("''";''"';゙゙'"''"゙゙';'"';'";''゙゙";;''"゙゙;''゙゙"';'"'';''"';'         "''';;;,、 / | ∧ ∧ ")
System.out.println(""゙゙';;'"';;;''"';'"゙゙';;'"';;;'"''"';';"'゙゙'";;''                "''';;;,、( ゚∀゚ ) ")
System.out.println(""';'"゙゙';;'"';;;'"''"';';"'゙゙'";                         "''';;;,、=0 ")
System.out.println("'"''"';';"'゙゙'";;                                  "''';;;,、 ")

>>950
自分の経験を元に、教えればすむことじゃないの?
>>956-957
分かり易い解説ありがとうございました。
頭がこんがらがっていましたが理解できました。
>>950
パソコンの一般的な使い方。
ファイルシステムのこととか。
圧縮・解凍とか。コマンド検索パスとか。
>>950
> 例えば、2進・8進・10進・16進数の基数変換について机上で計算できる
> ようになっておくことは、HelloWorldより先に済ましておくべきと思いますか。

アホですか?
>>962
基礎って話題が出たらムキになるJavaプログラマ。 プ
964名無し3.BAT:03/04/06 18:19
統合環境みたいに、自動インデント機能を自作のエディタにつけたいときは、どうすればよいんでしょうか?
また、統合環境みたいにポップアップで単語を補完する機能をつけるには、どうすればよいんですか?

秀丸エディタなどは、何言語で書かれているのですか?あのような高度な機能は、Javaでは無理なのですか?
965デフォルトの名無しさん:03/04/06 18:39
serverSocketについて質問なんですが
クライアントが落ちてしまった時、
どこらへんでエラーが発生するんでしょうか?
966デフォルトの名無しさん:03/04/06 19:14
924 名前:デフォルトの名無しさん 投稿日:03/04/05 23:58
Netscape7.0 でjava appletが二つあるhtmlファイルを読み込むと毎回フリーズしますが、
仕様ですか?

誰か教えてください
967デフォルトの名無しさん:03/04/06 20:51
>>965
コネクションで。
質問です。
コンストラクタを含むスーパークラスを継承したサブクラスは
コンストラクタを使ってスーパークラスのインスタンスを自動で生成しているのでしょうか?
969デフォルトの名無しさん:03/04/06 22:01
>>968
言ってる意味がわからん。
>>968
おそらく。

ただし、コンストラクタをもたないクラスはないよ。
すべてのクラスにおいて、インスタンス化するためには
必ずコンストラクタが実行される

すべてのクラスのコンストラクタの実行では
明示的にスーパクラスのコンストラクタを呼んでいない場合
スーパクラスのデフォルトコンストラクタが必ず最初に呼ばれる

コンストラクタが明示的に書かれていないクラスでは
引数のないコンストラクタ(デフォルトコンストラクタ)が自動的に生成される
972968:03/04/06 22:30
すみません。言い方が悪かったです。
スーパークラスの自前のコンストラクタが
サブクラスのインスタンス生成の時に自動で実行されるかってことなんですけど。
理解していただけたでしょうか?
>>972
実行されない。
実行したければサブクラスのコンストラクタ中で明示的に
super();
と記述するべし。
>>973
ネタのときはわかるようにしてね。
>>950
ネットワークの基本。
976968:03/04/06 22:40
>>973
あ、今本読んでたら説明が載ってました。
引数なしで自前のコンストラクタとデフォルトの引数なしコンストラクタは自動だけど、
引数ありのコンストラクタはsuper(引数);を記述しないといけない。
んですよね?
>>972
明示的に記述されていない場合にはデフォルトコンストラクタが
暗黙的に呼ばれる。だがスーパークラスのコンストラクタの暗黙的
呼び出しを期待する位なら明示的に書け。

C:\>copy con a.java
public class a{
a.java を上書きしますか? (Yes/No/All): y
public a(){
System.out.println("a");
}
public static void main(String[] args){
new b();
}
}
class b extends a{
public b(){
System.out.println("b");
}
}
^Z
1 個のファイルをコピーしました。
C:\>"\program files\j2sdk1.4.0_02\bin\javac" a.java

C:\>java a
a
b

C:\>
>>971
ほぼ正解。
java.lang.Object の場合も書いてくれたら完璧。

>>977
copy con でソースファイル書きますかぁ。(笑)
Bill Joy的?
979デフォルトの名無しさん:03/04/07 06:28
ドキュメントに

「現在のスレッドはこのオブジェクトのモニターのオーナでなければなりません。」
という記述があったんだけど、意味がわからない。

モニターのオーナーってどういう意味?
>>979
私も良くわからないけど、synchronized でロックしておけばよいと思う。

ロックを獲得した = モニタのオーナーである

ということだと思う。
981デフォルトの名無しさん:03/04/07 08:57
finalyブロックには
どんな処理を書いているのですか?
使い道がなさそうな。。。
教えて!!
>>981
メソッドのローカル変数で、OSのリソースを消費するようなことをしている時。
なんか例外がthrowされてしまったときでも、きちんとリソースを解放して欲し
いわけで。
エミュを作ってます

256 種のオペコードに対する CPU の動作をエミュレートするのに、
今のところ
1. switch 1段で並列 256分岐
2. switch 2段で上4bit分岐 →下4bit分岐
3. switch 8段で各 bit ごとに分岐
4. オペコード一つに内部クラス・インスタンスを一つ作って
  opecodes[i].do(); みたいな感じでテーブルからジャンプ
でそれぞれやったら、4 > 2 > 1 > 3 の順に速いようです
( 3 が遅いのは switch 自身のオーバヘッドのため?)。

とはいえ 4 の方法はクラスの数が馬鹿馬鹿しいことになるので、
これを基礎として工夫も考えていますが、
他に全然別のいい方法はありますでしょうか?
>>983
オペコードっつても、256種類まったく別の動きするわけじゃねぇだろ。
985983:03/04/07 13:22
>>984
レジスタ群を配列化するといい、ということでしょうか。
986デフォルトの名無しさん:03/04/07 14:45
throwは呼び出し側に例外を返すという事で
よいのでしょうか?
983が何のエミュを作っているかきになるなぁ・・・
988デフォルトの名無しさん:03/04/07 18:37
notify()
notifyAll()
は待ちスレッドに通知すると言いますが
具体的に何を通知するのですか??

>>988
[待たなくていいよ]というメッセージ
>>988
丁度3月号からのJavaWorldで初心者向けのスレッド講座が連載してたよ。
4月号あたりにそこらへんが詳しく載ってた。
991983:03/04/07 19:42
>>984 さんお世話になりました
bit 演算を少し簡略化しました
これ以降の高速化は別のところに力点をおきます。

おじゃましました〜
あるアンチJavaが次スレの偽物を立てたらしい。
テンプレートがいい加減だ。これは荒らしとしかいいようがないのではなかろうか。
だれか真の「【初心者】Java質問・相談スレ22【大歓迎】」
を立ててくれ。

>>992
新スレの1が荒らしってのは同意だが、
別すれ立てるほどでもないような。

しっかし、春休みってまだ終わってないのか?
>>992
自分はホストの関係でたたられません。
このスレのものをそのままはればいいだけだから、誰かよろしく。
>>992
今からテンプレ貼って定期的に 「テンプレ >>m-n」 とかすれば。
あんま騒ぐと 3 スレとか 4 スレとか乱立させられる。
>>995
それも手か。
それで、誹謗しているレスだけ削除依頼出してあぼーんさせるようか。
>>995
この手のケースの場合、明らかに荒らしとわかるから
乱立スレ削除は削除依頼の対象として十分に成り立つ。
998デフォルトの名無しさん:03/04/07 22:37

成り立つ。
>>997
ま、そうなんだけど、処理されるまで鬱陶しいじゃん。
1000デフォルトの名無しさん:03/04/07 22:37
そして1000ゲット。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。