【初心者】Java質問・相談スレッド112【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2008/02/08(金) 19:48:24JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc10.2ch.net/hp/
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
【初心者】Java質問・相談スレッド111【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1200151522/
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝のう存じます。
次スレは>>980あたりで。
0478デフォルトの名無しさん
2008/02/18(月) 19:08:06それとも状態を持つのはフィールドだけなのでメモリにはフィールドのみを生成するのでしょうか?
0479デフォルトの名無しさん
2008/02/18(月) 19:13:440480デフォルトの名無しさん
2008/02/18(月) 19:13:48されたフィールドとメソッドを持つ。非 static フィールドはインスタンスごとに作成される。
0481デフォルトの名無しさん
2008/02/18(月) 19:16:33素早く分かりやすい回答ありがとうございました。
ずっと気になっていたことだったので本当にすっきりしました。
0482デフォルトの名無しさん
2008/02/18(月) 19:23:08Test test = new Test(10,5);
これを上の
Test(int i,int j) {
m=i;
n=j;
に入れて、つぎにmとnに1を足すまでは分かる。
Test(Test testC) {
m= testC.m;
n= testC.n;
これどんな処理してるん?
0483デフォルトの名無しさん
2008/02/18(月) 19:28:09新しく作ろうとしてるTestオブジェクトにコピーしてる
0484デフォルトの名無しさん
2008/02/18(月) 19:35:35どこにもなくて困ってる
0485デフォルトの名無しさん
2008/02/18(月) 19:36:350486デフォルトの名無しさん
2008/02/18(月) 19:37:480487デフォルトの名無しさん
2008/02/18(月) 20:09:370488デフォルトの名無しさん
2008/02/18(月) 20:14:13自分が書いたソースのクラスファイルを格納してるフォルダに全て突っ込んじゃえばいいと思うんですが、
この考え方は間違ってますか?
例えばDBのJDBCドライバを使うにはCLASSPASSに追加するかtomcatのcommon/binに入れたりするけど
前者の場合、無関係なプログラムにも影響を及ぼすし、後者の場合はコンテナを変えたらまた作業が増える。
自分が作ってるサーブレットのクラスファイルを保存してる場所にJDBCドライバを入れちゃえば全て解決な気がする。
0489デフォルトの名無しさん
2008/02/18(月) 20:23:030490デフォルトの名無しさん
2008/02/18(月) 21:36:42間違ってる
クラスが増えれば増えるほどクラスパスの設定の方が、クラスの競合とかの考慮より楽になる
そんなことよりIDE使っているなら面倒な作業にはならんだろ
0491デフォルトの名無しさん
2008/02/18(月) 21:41:45判別のために例外的に形だけあるってことかな
int.classやらがあって驚いたわ。
0492デフォルトの名無しさん
2008/02/18(月) 21:47:160493デフォルトの名無しさん
2008/02/18(月) 23:14:44b=true;
?ここを教えてください。
(b==false)が新になる。
bolean b;
b=false;
?ここを教えてください。
(b==true)が新になる。
0494デフォルトの名無しさん
2008/02/18(月) 23:17:060495デフォルトの名無しさん
2008/02/18(月) 23:24:170496デフォルトの名無しさん
2008/02/19(火) 03:06:22プリミティブ型はあくまでプリミティブ型で、そのクラスといったものはない。
あるのは、プリミティブ型を表すClassクラスのインスタンスで、各ラッパークラスで定義されている。
例えば、リフレクションAPIでメソッドの引数の型を指定する時などに使ったりする。
0497デフォルトの名無しさん
2008/02/19(火) 03:18:57答える気すら起きん
0498デフォルトの名無しさん
2008/02/19(火) 08:17:12表示して、設定してあるフォルダに振り分けるだけの簡単なソフトだ。
とりあえず、予定の作業は出来るようになった。
だが、アニメーションGIFの再生がおかしいことに気づいた。
「透過色」というのが上手く扱えていないようだ。
Toolkit.getDefaultToolkit().getImage("hoge.gif");で入手したImageを
JPanelから導出したクラスのpaint(Graphics g)でdrawImageにかけているだけなのだが、
何か足りないようだ。
足りない部分は簡単に補える?
それとも、意外に面倒?
0499デフォルトの名無しさん
2008/02/19(火) 08:29:490500デフォルトの名無しさん
2008/02/19(火) 12:26:350501デフォルトの名無しさん
2008/02/19(火) 13:44:08http://ja.wikipedia.org/wiki/F-35_(%E6%88%A6%E9%97%98%E6%A9%9F)
0502デフォルトの名無しさん
2008/02/19(火) 15:50:00クラス継承についてですが、親クラス、子クラスに共通して、同名のパブリッ
クなインスタンス変数があり、その初期値は親と子で違うとします。
子クラスのインスタンスを作り、それを親クラスの型の変数に代入した場合、
その変数のインスタンス変数には、親の価が入っています。
public class Parent {
public String hoge = "親";
}
public class Child extends Parent {
public String hoge = "子";
}
Parent x = new Child();
System.out.println(x.hoge); // => 親
System.out.println((new Child()).hoge); // => 子
要するに、パブリックなインスタンス変数は、子によってオーバライドできな
いのです。メソッドと違って。
どうしてこれは、こういう言語仕様になっているのでしょうか?
メソッドのようにオーバライドできてもいいと私は思うのですが。
0503デフォルトの名無しさん
2008/02/19(火) 16:18:57Parent[] xArray = { new Child01(), new Child02(), new Child03()}
for( Parent x : xArray ) System.out.println(x.hoge);
みたいに同じ変数名にアクセスして子独自の値が取れたら便利そうだよね。
0504デフォルトの名無しさん
2008/02/19(火) 16:21:48何より、変数をそんなに便利(に見える)にしてしまったら、
マルチスレッドとか大変になる。
オブジェクト指向の原則も何もあったもんじゃなくなるだろうが。
0505デフォルトの名無しさん
2008/02/19(火) 16:24:14子の方に新しいhogeを定義しなきゃいいんじゃ?
public class Parent {
public String hoge = "親";
}
public class Child extends Parent {
public Child(){ hoge ="子"; }
}
Parent x = new Child();
System.out.println(x.hoge); // => 子
0506デフォルトの名無しさん
2008/02/19(火) 16:24:370507デフォルトの名無しさん
2008/02/19(火) 16:25:24以上
0508デフォルトの名無しさん
2008/02/19(火) 16:28:02言語規定には、「フィールドアクセスのために動的に表検索する必要がないので
Javaは素直な実装でも効率が良い。遅延束縛と上書きはインスタンスメソッドが
使用されるときだけJavaで利用可能となる。」とある。
ttp://www.y-adagio.com/public/standards/tr_javalang/15.doc.htm#37055
0509デフォルトの名無しさん
2008/02/19(火) 16:29:50馬鹿にも分かるように誰か説明してくれよ
0510デフォルトの名無しさん
2008/02/19(火) 16:31:04>>506は何か勘違いしているから無視してOK
0511デフォルトの名無しさん
2008/02/19(火) 16:32:280512デフォルトの名無しさん
2008/02/19(火) 16:34:330513デフォルトの名無しさん
2008/02/19(火) 16:36:19動的にすれば柔軟性は上がるが実行時の効率が落ちる
そこでバランス取ってメソッドだけ動的にしたってこと?
0514デフォルトの名無しさん
2008/02/19(火) 16:37:230515デフォルトの名無しさん
2008/02/19(火) 16:38:390516デフォルトの名無しさん
2008/02/19(火) 16:38:57答:全部メソッドでできるので不要
0517デフォルトの名無しさん
2008/02/19(火) 16:40:31「フィールドアクセス」 は行為であって主体じゃないから synchronized でモニタ取れるわけないだろ。
this かそれに順ずるインスタンスに synchronized かけろよ。
0518デフォルトの名無しさん
2008/02/19(火) 16:44:34synchronized (hoge) {
hoge.x = "";
}
いちいちクライアントサイドでこんなことしたく無いだろ?ってことが言いたかったんだが
0519デフォルトの名無しさん
2008/02/19(火) 16:47:53それ hoge.x が Piyo のフィールドかスーパークラスのフィールドかは全く関係なくね? って事。
synchronized(hoge.x) とした時にどっちのモニター取ってるか分からなくなるというならともかく。
0520デフォルトの名無しさん
2008/02/19(火) 16:50:39悪いことの方は、以下の場合コンパイルエラーを出さないといけなくなる。
class S { int x = 0; int z() { return x; } }
class T extends S { String x = "1"; }
0521デフォルトの名無しさん
2008/02/19(火) 16:52:26何も考えずに使ってしまうようなやつが絶対いるだろ?
で、518のように書くやつなんているのか、と考えたときに、
いないだろうな、と。
0522デフォルトの名無しさん
2008/02/19(火) 16:58:11単純に、フィールドはなるべく隠蔽されるべきって考え方からだと思ってたけど違うの?
0523デフォルトの名無しさん
2008/02/19(火) 17:00:490524デフォルトの名無しさん
2008/02/19(火) 17:02:020525デフォルトの名無しさん
2008/02/19(火) 17:04:110526デフォルトの名無しさん
2008/02/19(火) 17:10:17それは新しい話題? カプセル化の話?
上書き(override, オーバーライド)は動的処理。
仮にフィールドの動的処理が可能なら、カプセル化は簡単に崩壊する。
// メソッドを上書きせずに、フィールドだけ上書きすればよい。
0527デフォルトの名無しさん
2008/02/19(火) 17:13:37privateフィールドもオーバーライドできなければ、別にカプセル化は壊れない
オーバーライドしたいのはprotectedとかpublicだけだろ?
隠蔽だかカプセル化だかとは別問題かと
0528デフォルトの名無しさん
2008/02/19(火) 17:24:14言語規定を貼る作業に戻りますm(_ _)m
0529デフォルトの名無しさん
2008/02/19(火) 17:32:47誰かねんどろいどに例えてくれ
0530デフォルトの名無しさん
2008/02/19(火) 17:34:36決めの問題的な話題なんてどうでも良いんじゃないのか。
0531502
2008/02/19(火) 18:38:57とうございました。
意外に思うかもしれませんが、自分は最初の質問以外、一件も書き込んでいま
せん。自分の分からない点は全部、他の人がツッコんでくれました。このスレ
は時々利用させていただいてますが、こんなのは初めてです。
レスの全部が理解できたとは言えませんが、大変勉強になりました。
0532デフォルトの名無しさん
2008/02/19(火) 19:06:45Javaによるアルゴリズム事典
おすすめ
0533デフォルトの名無しさん
2008/02/19(火) 21:35:53わざわざeclipse立ち上げるまでもないちょっとしたファイルを作ったり編集したりするためのエディタが欲しいです。
具体的には、html、java、jsp、ビルドxml、単なるテキスト文…こういったファイルを編集します。
メモ帳ではあまりにも使いづらいので他を探してるのですがオススメのものは無いでしょうか
0534デフォルトの名無しさん
2008/02/19(火) 21:53:560535デフォルトの名無しさん
2008/02/19(火) 22:00:010536デフォルトの名無しさん
2008/02/19(火) 22:14:30eclipseを立ち上げっぱなしにしておけばいいのでは?
0537デフォルトの名無しさん
2008/02/19(火) 22:14:580538デフォルトの名無しさん
2008/02/19(火) 22:33:13馴れれば結構使える(と思う)けど馴れるまでが大変(だろうな)
0539デフォルトの名無しさん
2008/02/19(火) 22:34:12わざわざプロジェクトとか作らないで
0540デフォルトの名無しさん
2008/02/19(火) 22:38:44× Mule
○ Meadow
0541デフォルトの名無しさん
2008/02/19(火) 22:40:44史上最悪のエディタだとか
0542デフォルトの名無しさん
2008/02/19(火) 22:42:030543デフォルトの名無しさん
2008/02/19(火) 22:42:55エディタとしては中毒性が高い。
0544デフォルトの名無しさん
2008/02/19(火) 23:08:380545デフォルトの名無しさん
2008/02/19(火) 23:13:260546デフォルトの名無しさん
2008/02/19(火) 23:22:550547デフォルトの名無しさん
2008/02/19(火) 23:29:55SortedSetを使い、ソートさせ、表示にはtoStingを使っているのですが、"[""]"の表示が出てしまいます。このカッコを表示させない方法はありますか?
もしくは、違った方法でソートの結果を出力させられるのでしょうか?
教えていただける方、よろしくお願いします。
0548デフォルトの名無しさん
2008/02/19(火) 23:32:430549デフォルトの名無しさん
2008/02/19(火) 23:44:12最後にもう1つだけ質問ですが、2つの結果を出す際に、1つ目の結果と2つ目の結果の間の","を消す方法はあるのでしょうか?
たびたび申し訳ありませんがよろしくお願いします。
0550デフォルトの名無しさん
2008/02/19(火) 23:45:140551デフォルトの名無しさん
2008/02/20(水) 01:52:59Remote System Explorerプラグイン入れれば、ローカルや、Telnet、FTP、SSH経由で
ファイルシステムにアクセスできる。
>>547
toStringはデバッグ出力などで使うものであって、
特定の書式にしたいのなら、自力で出力すべき。
0553デフォルトの名無しさん
2008/02/20(水) 13:12:04現在linuxにtomcatを入れて開発を行っているのですが自動起動に失敗してしまいます。OS起動後に直接起動スクリプトを実行すると正常に起動します。
環境とバージョン
CentOS5.1 32bit/jdk6/tomcat6
ログには以下のような出力があります。
文字制限に引っかかるため一部省略します。
--
2008/02/20 11:47:00 org.apache.catalina.connector.Connector pause
致命的: プロトコルハンドラの一時停止に失敗しました
java.net.SocketException: Network is unreachable
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:209)
at org.apache.jk.common.ChannelSocket.unLockSocket(ChannelSocket.java:486)
at org.apache.jk.common.ChannelSocket.pause(ChannelSocket.java:283)
at org.apache.jk.server.JkMain.pause(JkMain.java:681)
at org.apache.jk.server.JkCoyoteHandler.pause(JkCoyoteHandler.java:153)
2008/02/20 11:47:01 org.apache.catalina.core.StandardService stop
情報: サービス Catalina を停止します
以下試したこと。
・自動起動を一番最後に持って行った(rc3.d/S99tomcat)
・F/Wの自動起動を停止
どなたか解決策をご存じの方がいたら教えてください。
0554デフォルトの名無しさん
2008/02/20(水) 13:14:380555デフォルトの名無しさん
2008/02/20(水) 13:31:36eth0にグローバル、eth1にローカルを設定しています。
また、iptablesにてグローバルは25番のみIN/OUTを許可、ローカルは全て許可に設定しています。
iptablesの自動起動も止めてみたのですが、解決しませんでした。
0556デフォルトの名無しさん
2008/02/20(水) 19:00:05アプレットを使って画像を表示させたいのですが、
アプレットビューアを起動するコマンドを打つと上手く表示されるのですが
html形式のファイルを直接開くと画像が切れて表示されてしまいます。
htmlファイルを直接開いたときに画像が切れないように表示させるには
どうすればいいでしょうか?
よろしくお願いします。
0557553
2008/02/20(水) 19:11:40環境変数がちゃんと読めていなかったようです。
0558デフォルトの名無しさん
2008/02/20(水) 20:17:04例えば-5を5にしたいです。
どなたかおたすけを・・・
0559デフォルトの名無しさん
2008/02/20(水) 20:18:130560デフォルトの名無しさん
2008/02/20(水) 21:17:13lock();
func();
unlock();
みたいな
0561デフォルトの名無しさん
2008/02/20(水) 21:44:070562デフォルトの名無しさん
2008/02/20(水) 21:45:15http://java.sun.com/javase/ja/6/docs/ja/api/java/util/concurrent/Semaphore.html
0563デフォルトの名無しさん
2008/02/20(水) 21:49:58それだ。サンクス
0564デフォルトの名無しさん
2008/02/20(水) 22:17:07Tが一つのクラスだけだったらスーパークラスは一つだけですよ。
スーパーインターフェースなら妥当でしょうか
0565デフォルトの名無しさん
2008/02/20(水) 22:42:05superclassとdirect superclassの違いも知らないのか?
0566デフォルトの名無しさん
2008/02/20(水) 22:43:080567556
2008/02/20(水) 23:10:18アプレットを作るにはxxx.javaとxxx.htmlという2つのファイルを作りますよね
xxx.javaをコンパイルしてxxx.htmlというファイルに対してAppletviewerの
コマンドを実行してやるとその際に表示されるアプレットは画像が切れずに
キレイに表示されるのですが、xxx.htmlというファイルをクリックして
直接表示しようとすると画像が切れてしまいます。
画像が切れないように表示するためにはどうすればいいのでしょうか?
よろしくお願いします。
0568デフォルトの名無しさん
2008/02/20(水) 23:13:130569デフォルトの名無しさん
2008/02/20(水) 23:13:400570デフォルトの名無しさん
2008/02/21(木) 00:19:41↑見たいな感じで"<="を使いたいんですけどどうしたらいいですか?
0571デフォルトの名無しさん
2008/02/21(木) 00:32:130572デフォルトの名無しさん
2008/02/21(木) 00:32:32xは1〜18のいずれかで、かつ
yは0
ってこと?
if( (x >= 1 && x <= 18) && y==0 )
0573デフォルトの名無しさん
2008/02/21(木) 01:36:17ああ画像が切れるってそういう意味なのか。
0574デフォルトの名無しさん
2008/02/21(木) 10:26:40HashMap<Integer,String>[] map = new HashMap<Integer,String>[3];
という配列を作ろうとしたときに、コンパイルしようとしたら
汎用配列を作成します。
というエラーが出てしまいます。調べてみてもさっぱり理解できません。
よろしければご教授お願いします。
0575デフォルトの名無しさん
2008/02/21(木) 10:39:29ジェネリクスはコンパイル時のチェック機能。
コンパイルした後は HashMap という型情報しか存在しない。
よって、その型の配列が作成される。
0576デフォルトの名無しさん
2008/02/21(木) 11:48:490577デフォルトの名無しさん
2008/02/21(木) 15:47:43contextA/auth/AuthServlet
contextA/noauth/NoAuthServlet
web.xmlで/auth/*を認証ゾーンとして指定。
NoAuthServlet内から、プログラマーが自前でユーザIDとパスワードを使って/auth/*ゾーンの認証を済ませたいのですが
どうすればできるでしょうか?
認証を済ませる=HttpServletRequest#getUserPrincipal() != nullという意味です。
■ このスレッドは過去ログ倉庫に格納されています