【初心者】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あたりで。
0002デフォルトの名無しさん
2008/02/08(金) 19:49:30■ AWT と Swing は --
Java標準低速GUI 6 AWT/Swing
ttp://pc11.2ch.net/test/read.cgi/tech/1190807478/l50
■ SWT は --
Java 高速GUI SWT 3
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50
■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part16
ttp://pc11.2ch.net/test/read.cgi/tech/1198816379/l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 7
ttp://pc11.2ch.net/test/read.cgi/tech/1180010672/l50
■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 64 ★★
ttp://pc11.2ch.net/test/read.cgi/tech/1196543694/l50
0003デフォルトの名無しさん
2008/02/08(金) 20:57:15javaの入門書のようなものありませんか?
0004デフォルトの名無しさん
2008/02/08(金) 21:14:42動画で見るJava入門、みたいなのを。
どこかの大学のサイト
0005デフォルトの名無しさん
2008/02/08(金) 22:58:31ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/index.html
■ J2SE 5.0 (1.5.0)
ttp://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
ttp://java.sun.com/javase/ja/6/
0006デフォルトの名無しさん
2008/02/08(金) 23:30:09クラスをオブジェクトするときに使いやすいだけ?
0007デフォルトの名無しさん
2008/02/09(土) 00:11:24newしなくても呼び出せるメソッドみたいな感じ?
0008デフォルトの名無しさん
2008/02/09(土) 00:11:560009デフォルトの名無しさん
2008/02/09(土) 00:29:00以下の2つは分かりませんでした。
System.out.println(String.codePointAt((int)s.charAt(0)));
System.out.println(s.getBytes(s.charAt(0)));
0010デフォルトの名無しさん
2008/02/09(土) 00:37:520011デフォルトの名無しさん
2008/02/09(土) 00:51:44Windows x64 executable
jdk-6u4-windows-x64.exe 38.88 MB
Windows Online Installation
jdk-6u4-windows-i586-p-iftw.exe 0.36 MB
Windows Offline Installation
jdk-6u4-windows-i586-p.exe 71.28 MB
のように3つ選択肢があるんですが何が違うのでしょうか?
2番目はインストーラーをダウンロードせずにネットから直接インストール?
3番目はインストーラーをダウンロード?ってことですかね
1番上は何でしょうか…
0012デフォルトの名無しさん
2008/02/09(土) 00:51:500013デフォルトの名無しさん
2008/02/09(土) 01:22:25またどのような関数を使えばいいのかわかりません><
ググってみるとjava以外ではいろいろ書いてあるのに、javaになるとヒットしないので。。
よろしくおねがいします!
0014デフォルトの名無しさん
2008/02/09(土) 01:26:360015デフォルトの名無しさん
2008/02/09(土) 01:27:35InetAddress.getLocalHost().getAllByName()
0016デフォルトの名無しさん
2008/02/09(土) 01:38:46ありがとうございます!!
無事できましたー!
0017デフォルトの名無しさん
2008/02/09(土) 08:30:29調べてもプログラミング言語がウンヌンで、javaとは何なのか必要なのかわかりません
PCでインターネットや、画像や動画視聴しかしない僕には必要なのかどうか教えてください
0018デフォルトの名無しさん
2008/02/09(土) 10:29:36気にしないでおk
0019デフォルトの名無しさん
2008/02/09(土) 10:33:361番上のは64ビットWindows用
2番目と3番目は32ビットWindows用
オンラインインストールはインストーラの皮だけ、実際にインストール開始したときに必要な中身を都度ダウンロードしてくる
オフラインインストールは中身全部込みのインストーラ、インストール時にネット接続不要
どっちでも好きなほうをどうぞ
002017
2008/02/09(土) 12:31:56わかりました ありがとう
削除します
0021デフォルトの名無しさん
2008/02/09(土) 14:03:12stringの解説がされています
認識として両方変数の型でchar=1文字変数 string=文字列と理解しているんですが、理解が間違っているんでしょうか?
0022デフォルトの名無しさん
2008/02/09(土) 14:08:02大文字小文字の区別は重要
charは1文字、Stringは文字列、ってのは合ってる
0023デフォルトの名無しさん
2008/02/09(土) 14:18:06Stringは文字列。
String str = "a";
char c = 'a';
人間にとっては同じだけど、プログラム上は違うので注意。
0024デフォルトの名無しさん
2008/02/09(土) 14:30:17ありがとう、つまり同じような認識で使ってもいいわけですね。
もう一つ聞きたいのですが
class a1{
public static void main(String args[]){
if(args.length>=1) 〜以下命令文
〜以下略
上のプログラムのargs.length ここの部分がいまいちよくわからないのですが、
argsはただの配列なのにクラス名の部分に書かれています。
length関数が特殊なんでしょうか?それともargsがクラス名?
お願いします
0025デフォルトの名無しさん
2008/02/09(土) 14:46:49入門書1冊やってからこい
0026デフォルトの名無しさん
2008/02/09(土) 14:56:38lengthは配列オブジェクトのフィールド
argsオブジェクトのlengthフィールドが1以上かどうかを判定している
ってかクラス名の部分ってなんだよ
0027デフォルトの名無しさん
2008/02/09(土) 15:01:32この場合、args は配列型の変数で、length は、配列型の public final なフィールド。
0028デフォルトの名無しさん
2008/02/09(土) 15:22:220029デフォルトの名無しさん
2008/02/09(土) 15:23:470030デフォルトの名無しさん
2008/02/09(土) 15:25:27ありがとう
インスタンス化したメソッド.メソッド名();
の形式だと理解していた。
よくわからないから読み返してきます。
0031デフォルトの名無しさん
2008/02/09(土) 15:26:30前のユーザーはバカよけいれといてねとか言ってたけどw
0032デフォルトの名無しさん
2008/02/09(土) 15:30:43変数名.メソッド;
でも問題ないんですか?
0033デフォルトの名無しさん
2008/02/09(土) 15:31:22すみませんでした
0034デフォルトの名無しさん
2008/02/09(土) 15:34:09問題って何がだ
何がわからんのかわからん
0035デフォルトの名無しさん
2008/02/09(土) 15:35:05ここは初心者スレだが、初心者に一から言語仕様を教えるスレじゃねーんだよ
この本一冊読んでから来い
http://www.amazon.co.jp/dp/4798107972/
0036デフォルトの名無しさん
2008/02/09(土) 15:38:13安全そうな燃料ですね。
0037デフォルトの名無しさん
2008/02/09(土) 15:54:12>>35
?
0038デフォルトの名無しさん
2008/02/09(土) 16:15:32住人も然り
プログラマって10聞いて1しか返ってこないやついるから困る
出世できないのもよくわかるよな
0039デフォルトの名無しさん
2008/02/09(土) 16:17:550040デフォルトの名無しさん
2008/02/09(土) 16:23:360041デフォルトの名無しさん
2008/02/09(土) 16:32:22特にプログラマは酷いなwww
何年もがんばった自分の知識を基準にして話し出す
文系の女の子が可哀相だ
0042デフォルトの名無しさん
2008/02/09(土) 16:34:380043デフォルトの名無しさん
2008/02/09(土) 16:36:14野郎どもは死ぬ気でがんばれ
0044デフォルトの名無しさん
2008/02/09(土) 17:04:33フィードル初期化は宣言時にするのとコンストラクタ内でするのとでは、タイミングなどの違いがあるそうですが
どんな感じで使い分けるものなんでしょうか?
0045デフォルトの名無しさん
2008/02/09(土) 17:09:45スーパークラスのコンストラクタが終了した後に初期化するのと変わらない。
0046デフォルトの名無しさん
2008/02/09(土) 17:10:12フィールドの初期化のコードはバイトコードレベルで見るとコンストラクタの中に入っている
見た目とか気分の問題
004744
2008/02/09(土) 17:19:47どうもありがとうございました。
0048デフォルトの名無しさん
2008/02/09(土) 18:26:15public static *** getInstance(){return instance;}
private $$$ data;
public ***(){data = $$$.getInstance()}
public $$$ get$$$(){return data;}
$$$も同様にシングルトン
と言う感じで、シングルトンのフィールドにコンストラクタで
シングルトンを植え付ける連鎖を何回か行うと
get$$$()でnullが返ることがあります。何故なんでしょうか?
クラスが参照されると同時にinstanceにインスタンスが入るはずなのに…
public get$$$(){return $$$.getInstance();}
だとそう言う事は起こりません
004948
2008/02/09(土) 18:27:16コンストラクタはprivateです
private ***(){data = $$$.getInstance()}
0050デフォルトの名無しさん
2008/02/09(土) 18:33:14UMLより機能的なツールなんか使ってますか
参考までにお願いします
0051デフォルトの名無しさん
2008/02/09(土) 19:26:44紙とペンかな・・・・
自由度が高いので使い手の能力に左右されがちだがな。
0052デフォルトの名無しさん
2008/02/09(土) 19:27:12ソースのa,b,c,d,e,f(文字列)からAという配列を作りたいです。
A[a] == b
A[c] == d
A[E] == f
0053デフォルトの名無しさん
2008/02/09(土) 19:32:060054デフォルトの名無しさん
2008/02/09(土) 19:56:271種類のString配列では表せない情報を与えたい時はどうすればいいのでしょうか?
例えば、複数の文字列とオプションを実行時に指定させたい場合、
プログラム側では文字列とオプションの区別が付けられません。
0055デフォルトの名無しさん
2008/02/09(土) 20:07:39順番で区別するとか、
先頭に '-' や '@' や '/' がついてたらオプションとか、
文字列は "文字列" みたいに引用符で括るとか、
やり方はいろいろある。好きな方法を使え。
0056デフォルトの名無しさん
2008/02/09(土) 20:17:550057デフォルトの名無しさん
2008/02/09(土) 20:24:07argsをパースするのは自力で作る
0058デフォルトの名無しさん
2008/02/09(土) 20:25:24HashMap はJDK1.2に対応していますか?
0059デフォルトの名無しさん
2008/02/09(土) 22:01:26ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/util/HashMap.html
> 導入されたバージョン:
> 1.2
同期云々の話も上のリンク先の記述からだと思うのだが、文章そのまま。
逆に、Hashtable の方は同期がとられて、null の場合はない。
> HashMap クラスは Hashtable と同じと見なしてもかまいませんが、
> HashMap の方は同期がとられず、null の場合もあります。
何故同期が取られないのか、については、設計上の方針。
Collections.synchronizedMap(Map) を使う。
更に、iteratorを使う場合には、更に同期処理が必要。詳しくは API 仕様に。
0060デフォルトの名無しさん
2008/02/09(土) 22:20:53HashMap が同期(synchronized)されない、というのは、簡単に言うと、
複数のスレッドから同時にアクセスすると壊れるよ、という意味です
0061デフォルトの名無しさん
2008/02/09(土) 22:30:36ありがとう
でも一挙動でコーディングできれば最適なんですがねえ
0062デフォルトの名無しさん
2008/02/09(土) 22:32:42なんだろうねぇ。
とりあえず、遅延初期化をする必要が無ければ、instance を
public static final *** INSTANCE にするのはどうだろう。
0063デフォルトの名無しさん
2008/02/09(土) 22:32:550064デフォルトの名無しさん
2008/02/09(土) 22:36:06UML は確かに機能的な面も強調される表記法でもあると思うが、
そもそもの目的は、数ある表記法を名の通り"統一"したものだしなぁ
0065デフォルトの名無しさん
2008/02/09(土) 22:40:120066デフォルトの名無しさん
2008/02/09(土) 23:15:05ありがとうございます。やってみましたがダメでした
うまくいかないソースを削ってサンプルを作ってみました
class A {
final static A INS = new A();
private B b;
private A(){b = B.INS;}
B getB(){return b;}
public static void main(String[] args) {
System.out.println(A.INS.getB().getC().getA().toString());
}
}
class B {
final static B INS = new B();
private C c;
private B(){c = C.INS;}
C getC(){return c;}
}
class C {
final static C INS = new C();
private A a;
private C(){a = A.INS;}
A getA(){return a;}
}
0067デフォルトの名無しさん
2008/02/09(土) 23:16:15class D {
public static void main(String[] args) {
System.out.println(A.INS.getB().getC().getA().toString());
}
}
としてもやはりjava.lang.NullPointerExceptionでした
0068デフォルトの名無しさん
2008/02/09(土) 23:21:02そりゃ無理だ
new A();
をやってる途中にB.INSが必要で、
B.INS = new B();
には C.INS が必要で、
C.INS = new C();
の中では A.INS が必要だがまだ new A() やってる途中なので A.INS は代入されてないから null
0069デフォルトの名無しさん
2008/02/09(土) 23:40:00単に循環参照
コレだけみると設計再検討だが、なんか理由があるとして…
ま、getAやらの部分で、a を遅延初期化すれば問題ない。
if (a == null) { a = A.INS; } return a;
仮にマルチスレッドでまわしても、A.INS は確定した後で、常に一つだから
null チェックで二度三度上書きしたところで得られる値は変わりはしない。
0070デフォルトの名無しさん
2008/02/09(土) 23:42:19なるほどエラーが発生する原因は分かりました
>>69
ありがとうございます
staticフィールドにインスタンスを作るシングルトンという事で気軽に使いすぎてました。反省
0071デフォルトの名無しさん
2008/02/09(土) 23:45:35StringBuffer使えってのはなしで。
0072デフォルトの名無しさん
2008/02/09(土) 23:47:50http://www.ibm.com/developerworks/jp/java/library/j-jtp02183/
0073デフォルトの名無しさん
2008/02/09(土) 23:54:04クラスは、インスタンス化によりオブジェクト(実体)となって
はじめて使用できると思うのですが、
main()を持つクラスは、コンパイルされた時点で
インスタンス化されるのでしょうか?
0074デフォルトの名無しさん
2008/02/09(土) 23:56:02staticメソッドとstaticフィールドはインスタンスではなくクラスに属するのでインスタンスがなくても使える
0075デフォルトの名無しさん
2008/02/10(日) 00:19:54コンストラクタ以外で data に値を設定するコードを書いてないのに発生するなら
コンストラクタが完了してない状態で呼んでんじゃねーのか。final 付けてないのに
その部分だけ出されてもどっかで設定してんじゃねーのとしか言えないが。
0076デフォルトの名無しさん
2008/02/10(日) 01:16:43早速のご回答ありがとうございます。
新しい考え方をゲットできました。
「インスタンスに属する」と「クラスに属する」
0077デフォルトの名無しさん
2008/02/10(日) 01:43:33s = "aa//a/aa"; から3を取得するものです。
0078デフォルトの名無しさん
2008/02/10(日) 01:52:430079デフォルトの名無しさん
2008/02/10(日) 02:20:26横着。先頭と尻尾に "/" を追加して確かめてください。
何にもマッチしないときは、長さ1の配列が返るので、負数にはならない、はず。
System.out.println(s.split("/", -1).length - 1);
// 一応、何が起きてるかを表示
System.out.println(java.util.Arrays.toString(s.split("/", -1)));
0080デフォルトの名無しさん
2008/02/10(日) 02:52:07int i = (int)s;
数値にするにはどうしたらよいですか?
0081デフォルトの名無しさん
2008/02/10(日) 02:54:37int i = Integer.parseInt(s) でおk
0082デフォルトの名無しさん
2008/02/10(日) 03:09:09一般的ですか?
0083デフォルトの名無しさん
2008/02/10(日) 03:12:370084デフォルトの名無しさん
2008/02/10(日) 03:53:37のページにあるプログラムをEclipseで実行するとエラーが出てしまいます
ちなみにエラーの文章は
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.apache.commons.httpclient.HttpClient.<clinit>(HttpClient.java:66)
at Logintest.main(Logintest.java:20)
とでて、
Logintest.java:20の内容は
HttpClient client = new HttpClient();
です。
java素人なので全然わかりません。。。よろしくおねがいします!
0085デフォルトの名無しさん
2008/02/10(日) 03:54:450086デフォルトの名無しさん
2008/02/10(日) 03:59:16このテストコードをマウスを使わずに
キーボードだけで素早く実行するにはどうしたらいいのでしょうか?
008784
2008/02/10(日) 04:07:18お返事ありがとうございます
外部jarの追加でしっかり追加したはずなんですが
できてなかったのですかね。。。
0088デフォルトの名無しさん
2008/02/10(日) 04:46:10OROが足りないんだろ。
追加しろ
0089デフォルトの名無しさん
2008/02/10(日) 05:11:250090デフォルトの名無しさん
2008/02/10(日) 06:37:26oro追加してみましたけどインポートされた org.apache.oro は一度も使用されていません。と出てしまいます。
コンパイルエラーの文章も依然変わりません...('A`)ウムム
0091デフォルトの名無しさん
2008/02/10(日) 08:33:24初心者向けということなのでNetbeansをインストールしましたが
使い方がさっぱり分かりません。
最初は普通のエディタの方が良いでしょうか?
0092デフォルトの名無しさん
2008/02/10(日) 10:49:56commons.logging パッケージのクラスが見つからないというエラー。
ということで、そやつを取ってきてパスに入れれば…進展があるはず
0093デフォルトの名無しさん
2008/02/10(日) 11:08:39JAVAから外部のアプリケーションに対して操作を行うにはどのようにすればよいでしょうか。
例えばWindows標準のメモ帳に対して文字列"abc"を入力する、といったものです。
よろしくお願いします。
0094デフォルトの名無しさん
2008/02/10(日) 11:15:450095デフォルトの名無しさん
2008/02/10(日) 11:18:270096デフォルトの名無しさん
2008/02/10(日) 11:25:42もっと上手い方法があるのかねぇ。
// 例外はうまく処理してちょ
Runtime.getRuntime().exec("notepad.exe");
Robot robot = new Robot();
Thread.sleep(2000);
robot.keyPress(KeyEvent.VK_A);
robot.keyPress(KeyEvent.VK_B);
robot.keyPress(KeyEvent.VK_C);
0097デフォルトの名無しさん
2008/02/10(日) 11:28:11!! こんなクラスあったんだ。しかも1.4から標準で。知らんかった……。
0098デフォルトの名無しさん
2008/02/10(日) 11:30:51私は始めたばかりですが、もっとリファとか読まないといけませんね。
ありがとうございました。
0099デフォルトの名無しさん
2008/02/10(日) 13:28:12コールバックされるオブジェクトの参照を、する方に渡す。
メソッドのアドレスを渡すような考え方はしない。
コールバックされるクラスがいろいろあるなら、
目的のメソッドを定義した interface を作って、
それらのクラス全員に implements させる。
0100デフォルトの名無しさん
2008/02/10(日) 13:35:19あっているでしょうか?
0101デフォルトの名無しさん
2008/02/10(日) 13:37:44構造体のような使い方もできるがもっと色々できる。
PCはゲーム機の本体のようなものですか?のような質問。
■ このスレッドは過去ログ倉庫に格納されています