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


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

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



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

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

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

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

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

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

748 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 10:46:41 ]
>>745
配列の宣言(String str[] = new String[5];ってやってるところ)では エラーでないでしょ。

staticメソッドからは static でないメンバにアクセスできないけど。

749 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 10:51:08 ]
>>747
そこには式文かけないから当たり前。
フィールド宣言時に初期化子つかってやるか、静的初期化子使え。

static String[] str = { "myGOD", null, null, null, null };
static String[] str = new String[]{ "myGOD", null, null, null, null };

static String[] str = new String[5];
static { str[0] = "myGOD"; }

750 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 10:52:11 ]
ぬるぽ

751 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 10:52:42 ]
class fuckArr
{
static String str[] = new String[5];
str[0] = new String("myGOD");


public static void main(String[] args)
{
System.out.println(str[0]);
}
}

752 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 10:54:30 ]
>>747
str[0] = "myGOD";がある場所はコンストラクタやフィールド、メソッド、内部クラスの定義しか書けない場所。

753 名前:745 mailto:sage [2007/07/19(木) 11:08:51 ]
>749-752
レスthx
単純に式文がかけない場所なんですね


754 名前:デフォルトの名無しさん [2007/07/19(木) 13:54:28 ]
Java sound apiを利用してWebアプリケーションを構築したいと考えているのですが
例えばページ上でボタンを押したら録音が始まり10秒間録音してユーザーのローカルにファイルとして保存するようなJSPは
構築可能でしょうか?

頭でなかなかイメージできないので、可能か不可能かも分かりません
具体的な解説を付け加えてもらえれば、なお助かります

755 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 14:05:41 ]
ファイルの内容を一行消したい場合は何を使えば良いのでしょうか?

756 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 14:20:30 ]
>>754
無理というかJSPにする意味が分からんというか。
そういうのはJWSにした方が良いよ。



757 名前:デフォルトの名無しさん [2007/07/19(木) 14:37:26 ]
>>756
JWSとJSPはサーバサイドかクライアントサイドかの差だけだと思っていたので、
サーバ側の自分が負担できればと思っていたのですが・・・
またもしJSPであれば、クライアント側はJRE等が必要なくて済むかと・・・

つまり先述の例であれば、JWSの方が良い理由があるということでしょうか?

758 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 14:53:09 ]
サーバサイドのプログラムでクライアントの音声デバイスにはアクセスできない。
サーバにくっついてるマイクの音だけしか拾えない。

759 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 14:55:58 ]
Javaを理解するためにはアルゴリズムを勉強したほうがいいでしょうか?

760 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 15:06:23 ]
>>757
サーバー側で動くもの作ったことある?
というかどういう風に動いてるか知ってる?

根本的なところから勉強した方が良い気がする。

761 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 15:07:03 ]
>>759
Javaに限らずそれはしたほうがいい

762 名前:デフォルトの名無しさん [2007/07/19(木) 15:37:59 ]
RMIでできるべ

763 名前:デフォルトの名無しさん [2007/07/19(木) 15:39:19 ]
サーバ側のミキサーにアクセスするだけの話
だからそれほど難しい話ではない

764 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 15:44:09 ]
>>761
ありがとうございます。
ちなみにビギナー向けでいい本ご存知ですか?

765 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 15:55:10 ]
>>764
アルゴリズムの勉強は言語(Javaでもいい)の基礎が出来ていて多少書けることが前提
「アルゴリズム」とか「データ構造」でぐぐればネットでも勉強できる
これはC言語だけどアルゴリズムの考え方自体は同じだから参考になると思う
www.geocities.jp/ky_webid/algorithm/index.html
Javaで説明されてる本も出版されてるみたいだけど読んだことは無い

766 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 16:08:57 ]
>>765
そうですか。自分はJavaの勉強に行き詰っている状態なのでちょっと厳しいかもしれません
ネットでも勉強出来るんですね?ありがとうございました



767 名前:デフォルトの名無しさん [2007/07/19(木) 16:22:07 ]
基本的なアルゴリズムが身につくと応用力が付く
ネットで見たりするソースに隠れたものを理解できるようになる
そうなるとどんどん力が付くよ。

最初はやはり本で少し学んだ方がいいかもしれない
それほど高く無い値段で出回ってる。

768 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 16:35:37 ]
本日の部下との会話

俺:newってどういう意味?

部下:
          ____   
       / \  /\ キリッ
.     / (ー)  (ー)\      
    /   ⌒(__人__)⌒ \  あたらしく作るということです 
    |      |r┬-|    |      
     \     `ー'´   /      
    ノ            \
  /´               ヽ              
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.    
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


俺:newって単語の意味だけで想像して言っただろ?

部下:はい(´Д`;)ヾ

769 名前:デフォルトの名無しさん [2007/07/19(木) 17:00:11 ]
苦労してるな

770 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 17:03:28 ]
>>765
フヒヒ 横からいいHPハケーン!

771 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 17:50:23 ]
>>763
クライアント側のミキサーにアクセスしようとしてるんだと思うが?

772 名前:デフォルトの名無しさん [2007/07/19(木) 17:58:17 ]
だったらそれでもいいだろ
難しく考えすぎ

773 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 18:16:19 ]
盗聴のような真似ができるから今問題になってるね

774 名前:755 mailto:sage [2007/07/19(木) 19:00:25 ]
どなたか(´;ω;`)

775 名前:デフォルトの名無しさん [2007/07/19(木) 19:03:44 ]
読み込んだあと該当箇所のエスケープシーケンスを消す
そのあと保存

776 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 19:04:45 ]
1行ずつよみこんで新たなファイルに書き込む。該当行はスキップ。



777 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 20:23:58 ]
特定の文字列に対して正規表現がマッチしている、みたいなのはできたのですが、
正規表現を指定してそれにマッチする文字列をランダムで作成する、みたいなことってできないでしょうか。
仕事なんでできないとだめなんですが、ご意見いただけないでしょうか。

778 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 21:10:16 ]
>>777
ランダムで文字列を作成して、正規表現にマッチしていればループを抜ける

779 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 21:17:15 ]
正規表現を逆解析して、適切なテストデータを流すDBからデータとってくるとかかな
むかーし、そんな感じのテストツール作ろうかと考えたこともあった。

780 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 21:30:12 ]
正規表現の逆なんて正規表現でのマッチングよりも難しいんじゃないか?
適当に使用する文字を絞り込んでから778の言うようにランダムに作成してマッチングかけるのが手っ取り早そうだ

仕事なんで出来ないとダメってのは何かおかしいと思うぞ
出来ないものは出来ないと言うべきだ

781 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 21:38:22 ]
>>778
最初それで考えたんだが、文字数だとかが絡んだりするとそう簡単にはいかんことに気付き断念

>>780
普通はそうなんだろうが、そうもいかない会社はいくらでもあるのよ。

とりあえず対応できそうな構文のみでいってみるか・・・

782 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 21:43:34 ]
>>781
だいたい何の用途で使うんだ?
正規表現って言ってもどこまで対応するかによってとんでもなく面倒だぜ

783 名前:754・757 mailto:sage [2007/07/19(木) 21:51:25 ]
>>758
なるほど、これでだいぶ理解できました
ありがとうございます
>>760
全くの初心者です
今日、早速本を買ってきました
これから勉強していこうと思います
ありがとうございました。

784 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 22:27:57 ]
>>774
特にAPIは無いんじゃないの?


785 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 22:32:00 ]
>>781
1.
ある表現から固定の決まったシーケンスを出すようにする
[a-z]* なら aaa
[0-9]* なら 000
2.
あるシーケンスの正規表現マッチングを崩さないような変更を行うメソッドを
いろいろ(対応する正規表現分だけ)用意する
例:
[a-z]* の aaa を aab にするとか、 aaにするとか。

3.
1.に対して2.を適当な回数適用する

どう?
まぁできあがる表現に偏りはできると思うがね。
ランダムの定義が曖昧だしこれでいいよな?
1.のシードをある程度余分に作っておけばそれなりにばらけるかもしれないし。

786 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 22:57:47 ]
こういうときこそSnobolですよ、奥さん。
自然言語マッチ用言語の本領発揮!



787 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 23:07:05 ]
>>781
まずは対応できる正規表現のパターンを絞り込む事が重要だな
絞り込んじまえばたいしたことはないと思うが、全てに対応しろといったら1プロジェクトだろう

788 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 23:52:46 ]
1.4のプログラムを1.5のGenericsを使った記述に変更してますが、
よく分かりません。

例えば、配列の偶数要素をキー、奇数要素を値とするMapを生成するメソッド
public static Map arr2map(Object[] arr)
のMapをGenericsを使った記述にする場合、

(1)public static Map<Object,Object> arr2map(Object[] arr)
(2)public static Map<?, ?> arr2map(Object[] arr)
(3)public static <K, V> Map<K, V> arr2map(Object[] arr)

などが考えられますが、どれがいいものでしょうか。
なにか、ガイドラインとなる書籍、URL等ありましたら教えてください。


789 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 00:00:27 ]
>>788
言っている意味も考えられる選択肢もワカラネ
そもそもObject[]の時点で終わってるのでGenericsに対応しない方がいいんじゃね?

キーの型がKey、値の型がValueであるならば
public static Map<Key, Vaue> arr2map(Object[] arr)
が正しい。
キーも値も決まってないならば、
public static Map<Object, Object> arr2map(Object[] arr)
となるけど、それならば
public static Map arr2map(Object[] arr)
のままでいいんじゃね?ww


790 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 00:03:01 ]
総称型使ってClassCastExceptionを起こすのはナンセンス

791 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 00:14:43 ]
>>788
Map<? extend foo, ? extend bar>かMap<K, V>だろうねぇ。

けど、>配列の偶数要素をキー、奇数要素を値とする
なんて非OOなレコードの持ち方が変。
keyとvalueのペアを持つエントリクラス作ってそれを持っておくだろ。

static Map arr2map(Object[])なんて変換関数用意するんじゃなくて初めからmapやsetで持ってkeyだけ・valueだけ詰めた配列返すメソッド用意する。
とか、こういう設計の方が自然。


792 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 00:18:16 ]
>>789みたいな非OOな考え方ができない奴も居るし、ループ回す時複雑だし・・・

793 名前:788 mailto:sage [2007/07/20(金) 00:37:15 ]
>>789-792

引数のObject[]が非非OOな持ち方なので、無理に総称型
使う必要は無い(ClassCastExceptionに起こしかねない)と
いうことですね。

設計考え直してみます。
ありがとう。


794 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 00:45:13 ]
>非非OOな持ち方なので、無理に総称型
使う必要は無い(ClassCastExceptionに起こしかねない)
いや、違う自分の良いように考えすぎ。
アプローチ間違ってますよってだけ。
キャストで例外出すってのはまた別の話。

795 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 00:58:01 ]
>>788
俺だったら、こんな感じかなぁ

/** 今後はこっち使ってください */
public static <K, V> Map<K,V> arr2map(Object[] arr, Class<K> keyType, Class<V> valueType) {
  Map<K,V> map = new HashMap<K,V>();
  for(int i = 0; i < arr.length - 1; i+=2){
    map.put(keyType.cast(arr[i]), valueType(arr[i+1]));
  }
  return map;
}

/** 互換性のため */
@Deprecated
public static Map<?, ?> arr2map(Object arr) {
  return arr2map(arr, Object.class, Object.class);
}

796 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 00:59:06 ]
×    map.put(keyType.cast(arr[i]), valueType(arr[i+1]));
○    map.put(keyType.cast(arr[i]), valueType.cast(arr[i+1]));

× public static Map<?, ?> arr2map(Object arr) {
○ public static Map<?, ?> arr2map(Object[] arr) {



797 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 01:21:25 ]
String.format("%02X", byte) の逆をやるにはどうするのが普通なんですかね。
つまり文字列"00"からは0x00、"79"からは0x79、"80"からは-0x80、
"81"からは-0x79、"FF"からは-0x01のbyte値を生成したいんです。

798 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 01:25:58 ]
int val = (byte)Integer.parseInt(str, 16);

799 名前:797 mailto:sage [2007/07/20(金) 01:43:51 ]
>>798
なるほど! ありがとうございます。

800 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 06:16:29 ]
>>739
遅レスだが、ソケットを閉じる

801 名前:755 mailto:sage [2007/07/20(金) 10:32:14 ]
レスくれた方どうも有難う御座います。
ググっても適当なメソッドや関数が見つからないと思ったら本当に無いんですか・・・
凄く冗長な気がしますが大人しくファイル二つの間でコピーし合う事にします

802 名前:デフォルトの名無しさん [2007/07/20(金) 10:41:05 ]
for( int i = 0; i < 10; i++ ) {
int j = i;
}

こんな風にループ内で変数の宣言していると、回るたびに変数分のメモリを消費していく?
int型の4バイト(?)づつ浪費することになる?

803 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 10:42:22 ]
>>802
intはオブジェクトじゃないからならない。

804 名前:デフォルトの名無しさん [2007/07/20(金) 10:54:28 ]
>>803
オブジェクトだとどんどん消費するってことですか?

class Hoge {

public static void main( String[] args ) {
while( 1 ) {
xxx();
}
}

public void xxx() {
// ここでオブジェクトの宣言
}

上のようにやればxxx()が終了した時点でオブジェクトのメモリは解放?されると思ってるんですが合ってますか?

805 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 10:58:38 ]
オブジェクトは xxx が終了した時点で
ガベージコレクタによってメモリを開放される条件を満たすようになるが、
実際にメモリが開放されるのはそれ以降でガベージコレクタが実際に走った時。

806 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 10:58:56 ]
xxx() が終わった時点で参照が外れてGCの対象にはなるが、
その後いつメモリが開放されるかどうかはGCまかせ。



807 名前:デフォルトの名無しさん [2007/07/20(金) 11:20:42 ]
レスありがとうございます。

ループ内でオブジェクトを宣言する場合は>>804のやり方で大丈夫でしょうか?
メモリ周りを気にしています。
一番いいのはループ内でオブジェクトは宣言しないことですよね・・・

軽くGCを調べたら「GCはマルチスレッドで動く」ってあったので期待したい。

808 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 12:14:44 ]
>>807
変数宣言は、できるだけスコープを小さくした方がいい。
この場合なら、ループ内で変数宣言した方がいい。
変数のスコープが小さいときは、
最適化されて変数がレジスタのみ使用し、スタックメモリを消費しなくなる。
オブジェクトの生成はそういうわけにはいかず、
newの度にヒープを消費することになる。

809 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 12:47:38 ]
いまどきはエスケープ解析されて、スタックに詰まれる。

810 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 13:46:12 ]
メモり周りをシビアに使いたいなら Java じゃない方がいいんじゃないかなあ

811 名前:デフォルトの名無しさん [2007/07/20(金) 14:10:46 ]
でも管理は楽

812 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 15:19:29 ]
レジスタにのっけるかどうかのアルゴリズムって5.0のままだっけ?6で変わらなかった?

813 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 15:20:37 ]
>>812
レジスタにのっけるかどうかのアルゴリズム自体が 6.0 で追加されたんじゃなかったか?

814 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 16:08:12 ]
JDBCリクエストをラップして、
DB の多重化を簡易的に行えるライブラリはありませんでしょうか。

例えば、アプリケーション層のノードが二つ(A,Bとします)
DBノードも二つ(X,Y とします)あるとすれば、

A,B ともラッパー経由で更新していれば X,Y に格納されており、
もし JDBC リクエストで X が落ちたら、Y のみに要求する、と言う形です。

この例であれば X への更新をプールして、X が復活したのを検出したら
流していってくれると最高ですが、この部分は X を復帰させる手続きと
して手動でやれということでも構いません。


815 名前:814 mailto:sage [2007/07/20(金) 16:15:52 ]
C-JDBC, Sequoia あたりはそうなんですかね…
いまいち、一般的に使われているかどうかが分かりません。

816 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 16:43:41 ]

フォントの実際の大きさを求めるにはどうすればいいのでしょうか。

 JFrameにJTextAreaを乗せてデータを表示していましたが、一部の文字の色を
変える為に、JTextAreaからJTextPaneへ変更しました。しかし、JTextPaneでは
JTextAreaのように行数と列数を指定できません。それはJTextPaneのフォント
サイズが可変な為だと思います。けれでも私のプログラムのフォントは等幅で
大きさは全て等しく、色が一意でないだけなので、一文字の実際の高さと幅が分
かれば列数、行数ともに算出可能なはずです。そうすれば
setPreferredSize(Dimension d)を使って出来上がりです。

 そこで調べてみたところ、FontMetricsクラスを使えば期待する動作が行えそう
です。FontMetricsは抽象クラスなので、Graphics.getFontMetrics(Font f)を使
ってインスタンスを生成しなければいけませんが、そのGraphicsクラスを使う方
法が分かりません。Canvs.paint(Graphics g)を使えばできますが、それだけの為
にCanvasクラスを使うのは違う気がしました。



817 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 17:12:03 ]
>>816
使用するフォントを実際に指定できているわけだから
そのフォントを表すFontクラスのインスタンスは得ることができるよね?
そしたらあとはJComponent#getFontMetrics(Font)でFontMetricsのインスタンスを得ればいいじゃない

818 名前:デフォルトの名無しさん [2007/07/20(金) 20:51:39 ]
質問です。

OutputStream out = new OutputStream();
DataOutputStream dout = new DataOutputStream(out);
という風にDataOutputStreamを作って、

dout.close(); を行うと、
out.close()も勝手にやってくれるのでしょうか?

819 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:57:47 ]
JavaDocを見なさいって。基本中の基本。
見るのはFilterOutputStreamの方だというヒントは教えとく。

820 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:59:40 ]
>>818
> dout.close(); を行うと、
> out.close()も勝手にやってくれるのでしょうか?
一応やってくれるけど、
例外食らった場合は out.close() してない可能性もある。

821 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 21:10:51 ]
javaってどんなところに使われてるの?

822 名前:818 mailto:sage [2007/07/20(金) 21:10:58 ]
>>819
>>820
ありがとうございます。

823 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 21:13:54 ]
>>821
国防

824 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 00:42:06 ]
>>821
火星

825 名前:デフォルトの名無しさん [2007/07/21(土) 01:01:23 ]
参考書とりあえずやったんですけど、どうすればいいですか?
後はAPIっていうのを見ながらやるんですか?

826 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 01:04:09 ]
>>126は具体的にどのように実装するのか教えていただけませんか。



827 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 01:43:16 ]
>>825
何か作りたいから Java 勉強したんじゃないの?

828 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:09:46 ]
>>825
やったのは単なる入門書で文法を学んだだけじゃないの?
参考書ってのは何かを作るときに参照するものだよ

特に作りたいものがないならばゲームでも作ってみるのがいいんじゃね
GUI関連は業務じゃ使う機会少ないけど、デザインパターンとか設計力を鍛えるには一番だとばっちゃんが言ってたよ


829 名前:デフォルトの名無しさん [2007/07/21(土) 03:53:11 ]
>>825
この辺りで宿題解いてみるのもいいと思うよ。
★★ Java の宿題ここで答えます Part 62 ★★
pc11.2ch.net/test/read.cgi/tech/1184509890/1-100

830 名前:825 [2007/07/21(土) 12:52:27 ]
>>828
>>829
ありがとうございます。参考になりました。

831 名前:788 mailto:sage [2007/07/21(土) 14:44:46 ]
>>795-796
レス遅くなりましたが、
これ使わせてもらいます。
ありがとう。


832 名前:デフォルトの名無しさん [2007/07/21(土) 15:22:58 ]
サーブレットを覚えたてです、家でも勉強しようと思って、tomcatをインストールしたのですが
どうしてもindexに繋がりません、過去に習ってた時の学校では自分でインストールできたのに
スタートさせてもアイコンはミドリの▲になるのに、右クリックをするとストップStopではなくStartが押せる状態になっています

Tomcatは5.5、Javaは1.5
OSは2000XPでも2000Proでもどちらも同じ現象でダメでした
XPのファイアーウォールを無効にしても無理でした
環境設定のPathは教室でインストールした時に、テキストファイルで貰っていたのをコピペしなおしても無理でした
これ以上どう足掻いていいのか分かりません

833 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 15:29:56 ]
//A
class Hoge{
static void piyo(){}
public static void main(String[] arg){
piyo();
}

//B
class Hoge{
Hoge(){
piyo();
}
void piyo(){}
public static void main(String[] arg){
new Hoge();
}

Aのように書かずBのように書けば、piyoメソッドにstatic修飾子をつけなくてもよくなりますよね
こう書くことになにか問題はありますか?

834 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 15:57:32 ]
>>833
修飾子についての理解が不十分
staticをつけたメソッドはインスタンス化しないでも使えるが、
Bのpiyoメソッドはインスタンス化しないと使えない。

835 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 17:36:23 ]
>>832
Eclipse上?
今のTomcatなんてインストーラーに従ってインストールするだけだろ?

836 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 17:37:18 ]
ちなみに環境変数のPathだのCLASS_PATHは下手にいじるなよ



837 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 18:05:10 ]
>>834
うまく言えんけど、おそらく833は
「mainメソッドで呼ぶ」という理由だけでstatic修飾子をつけるのはおかしいのでは?
と考えた結果思いついたんじゃないか?
833への答えは持ってないけど、834の答えが的外れな気がしたんで口出し
834のであってたらすまん

838 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 18:20:47 ]
>>833
たしかにAもBもpiyo()が実行されるという一点では同じなんだけど、
piyo()は本当にコンストラクタ内で処理すべき機能なのか考えるべき。
AとBではpiyo()やHogeクラスの意味合いが異なってくる。
piyo()が単にstaticメソッドから呼ばれるだけの下請け的存在ならAで十分だし、
Hogeをインスタンス化する必要がありかつpiyo()がインスタンス生成段階で必要な処理ならB。
class Hoge{
void piyo(){}
public static void main(String[] arg){
Hoge h = new Hoge();
h.piyo();
}
}
こう書くのが適切な場合だってある。
何を実現するためにどうクラス設計をするかを考えてpiyo()の立ち位置を決めておくれ。

839 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 18:24:31 ]
優等生的回答

class Hoge{
public static void main(String[] arg){
Hoge hoge = new Hoge();
hoge.piyo();
}
void piyo(){}
}


840 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 18:42:46 ]
newってのが何者かを勉強するといいと思う
単純にfor文とif文を駆使したプログラム入門ならば、全部staticでnewは配列作るときくらいしか使わないでOK
クラスとか勉強する段階でnewを覚えるべきだが

841 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:07:22 ]
>>832
localhost:8080/index.jsp

でだめだったのかい?

localhost:8080/manager/html

ではどうだい?


842 名前:デフォルトの名無しさん [2007/07/21(土) 19:13:53 ]
>>835
私もそう思ってたのでびっくりです
>>836
CLASSPATHを作ってservlet-api.jar;.の位置を入れました
↑は自分で打ったけど、パソコンに入れたのは成功した教室のPCからのコピペなんで間違いはないと思います
>>841
そこ自体がダメです
タスクのアイコンがスタート状態になってても、ストップできずスタートがあるということは、スタートできてないんだと思う



843 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:21:23 ]
>>842
CLASS_PATHを消せ
次にコマンドプロンプトからjava -version を打ってversionを確認せよ
その上で再インストールして来い
スタートできないならばログも嫁

844 名前:デフォルトの名無しさん [2007/07/21(土) 19:29:52 ]
>>843
おかげで使えるようになりました
ありがとうございました

前に入れたバージョンが残っててそっちを設定してたっぽい
ゴメンナサイ
私は、恥かしい間抜けです


845 名前:デフォルトの名無しさん [2007/07/21(土) 21:23:30 ]
                            ,===,====、
                            _.||___|_____||_
..                        / /||___|^ l
..    答えろ ぶち殺すぞ!>  (・ω・`)//||   |口| ||ω・` )
.                   ./(^(^ .//||...||   |口| |⊂ )
.                    /   //  ||...||   |口| ||し      新スレです
. あ?てめぇどこ中だよ>(    )//....  ||...||   |口| ||        楽しく使ってね
               /(^(^ //  ....  .||...||   |口| ||        仲良く使ってね
       ""    :::'' |/   |/ '' "  :::  ⌒  :: ⌒⌒⌒ :: ""  `
       :: ,, ::::: ,, ; ̄ ̄ ̄  "、 :::: " ,,

846 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 22:10:34 ]
サーブレット書いてるんだけど、

doGetとdoPostあるじゃん。
どちらか一方に処理全部書いて、もう一方にはdoPost()かdoGet書けば
いいだけなんだろうけど。
これでいいのか?

てゆうか、分けて書くことってあるの?



847 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 22:18:16 ]
>これでいいのか?
いい。

>てゆうか、分けて書くことってあるの?
使い方による。

848 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 22:41:17 ]
例えばリクエストにGetを許可しないケース






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

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

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