【初心者】Java質問・相談スレッド104【大歓迎】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2007/07/27(金) 08:46:32JavaScript, 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質問・相談スレッド103【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1182896607/
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。
次スレは>>980あたりで。
0002デフォルトの名無しさん
2007/07/27(金) 08:55:33/´ ̄`ヽ /: : : \_____/: : : : ヽ、
,. -‐┴─‐- <^ヽ、: : : : : : : : : : : : : : : : : : : : : : }
/: : : : : : : : : : : : : :`.ヽl____: : : : : : : : : : : : : : : : : : /
,. -──「`: : : : : : : : : :ヽ: : : : : : : : :\ `ヽ ̄ ̄ ̄ フ: : : : :/
/: :.,.-ァ: : : |: : : : : : : : : :\: : : : :: : : :ヽ \ /: : : :/
 ̄ ̄/: : : : ヽ: : : . . . . . . . . . . .、 \=--: : : :.i / /: : : : :/
/: : ∧: \: : : : : : : : : : ヽ: :\: : : 〃}/ /: : : : :/ 、
. /: : / . : : :! ヽ: : l\_\/: : : : :\: ヽ彡: : | /: : : : :/ |\
/: : ィ: : : : :.i: : | \!___/ ヽ:: : : : : : :\|:.:.:.:/:! ,': : : : / |: : \
/ / !: : : : :.ト‐|- ヽ \: : : : : l::::__:' :/ i: : : : :{ |: : : :.ヽ
l/ |: : :!: : .l: :| \: : : l´r. Y {: : : : :丶_______.ノ: : : : : :}
l: : :l: : :ト、| 、___,ィ ヽ: :| ゝ ノ '.: : : : : : : : : : : : : : : : : : : : : : /
|: : :ト、: |: :ヽ ___,彡 ´ ̄´ ヽl-‐' \: : : : : : : : : : : : : : : : : : イ
!: :从ヽ!ヽ.ハ=≠' , ///// ///u /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
V ヽ| }/// r‐'⌒ヽ イ〉、
ヽ、______ー‐‐' ィ´ /:/:7rt‐---、 こ、これは>>1乙じゃなくて
ィ幵ノ ./:/:./:.! !: : : : :!`ヽ ポニーテールなんだから
r‐'T¨「 |: | !:.∨:/:./: :| |: : : : .l: : : :\ 変な勘違いしないでよね!
/: : .|: :| !:.!ィ¨¨ヾ、:.:/ !: : : : l: : : : : :.\
0003デフォルトの名無しさん
2007/07/27(金) 15:36:55CFGPS2)から座標などの情報を取得しようとしています.
現在その前段階として,下記のサイトで公開されているポートの種類や数,通信状況を調べる
サンプルプログラムをお借りして,動作確認をしようとしています.GPS機器を接続しているポート
(COM1)が通信状態になるようにするため,他の電子地図アプリケーションなどでGPSからの情報を
受信している状況を作り出し,このサンプルを動作させました.しかしながら,『COM1が使用中で
ある』という出力が得られませんでした.
こちらでお尋ねするのが相応しいのかどうかの判断に困りましたが,一応Javaを使用している
こともあり,今回質問に参りました.なにかアドバイス等頂きたいと存じます.また,他に質問するに
相応しい場所があるようでしたら,お手数ですがそちらへの誘導をお願いします.
よろしくお願いします.
参考URL:ttp://www.javainthebox.net/JavaForFA/08-09CommAPI/No.08/commapi1.html
0004デフォルトの名無しさん
2007/07/27(金) 21:40:210005デフォルトの名無しさん
2007/07/27(金) 22:05:00GPSはシリアルポートとして見える仕様なのか?
ノートでもオンボードでシリアルのチップが載ってるかもしれないので
まずそれを切ること(完全に切れない可能性も高いけど)
それか単にCOM3あたりで見える可能性もあり。あとはハイパーターミナルあたりで
確認すれ。
0006デフォルトの名無しさん
2007/07/27(金) 23:33:51synchronized でガードされるのはステートメントだけ
従って他のsynchronized メソッドおよびに、synchronized(this)で囲まれたブロックが同期化の対象になる
オブジェクト自体は保持しているクラスなどから自由に触れるわけで同期とは関係がないぞ
一般的に言えば、そのクラスの可変な変数に対して読み込みと書き込みを行っているメソッドを全てsynchronizedにすれば同期化の要件は満たす(ただし、実効性能は考えない)
0007デフォルトの名無しさん
2007/07/27(金) 23:38:53import javax.sound.midi.spi.*;
import javax.sound.midi.*;
で、何とかメロディを作ったり、音色を変えたりできる様になったのですが、
ドラムの音の出し方が分かりません。
どうぞご教授お願いします。
0008デフォルトの名無しさん
2007/07/28(土) 00:21:52それともこっちのスレで質問しなおす事にしたのか?
もしそうならあっちに一言書いてからこっちに書くべきじゃないか?
誘導もされてなかったのに質問だけしてほったらかしってのは正直どうかと思うよ。
0009デフォルトの名無しさん
2007/07/28(土) 02:22:02midi関連を扱う板/スレへ池。
0010デフォルトの名無しさん
2007/07/28(土) 02:34:03として読み込んだファイルの行数を得る方法ってありますか?
教えてください。m(_ _)m
0011デフォルトの名無しさん
2007/07/28(土) 02:36:380012デフォルトの名無しさん
2007/07/28(土) 03:17:27ありがとうございます!
0013デフォルトの名無しさん
2007/07/28(土) 06:21:580014デフォルトの名無しさん
2007/07/28(土) 06:48:370015デフォルトの名無しさん
2007/07/28(土) 08:57:22スレッドは使わず、Selectorクラスを利用して複数クライアントからのデータ受信を
実現しようと思っているのですが、一つ確認させてください。
Selectorクラスでイベントが発生したチャネルを取得するselectedKeys()メソッドからは
Keyがイベント発生順に格納されているのでしょうか?
Aさんが送信→Bさんが送信→Cさんが送信→Aさんが送信
とやった場合、上記の順序は確実に保証されてselectedKeys()から取得できるのでしょうか?
001613
2007/07/28(土) 11:59:23レスサンクス
もう一つ質問
とあるサイトで配布されているjarファイルを使用する時に、
一部のクラスがソースも配布されていたため、
その対象のクラスだけリコンパイルして実際に動かすJava環境と
同じJavaのバージョンでクラスファイルを作成し、
ソースが提供されていないクラスはそのままにして、
それらをもとの一つのjarファイルとして作り直したら、
キャスト変換エラーが起きた。
リコンパイルしてjarを作り直しただけなのに、わけわかんね。
0017デフォルトの名無しさん
2007/07/28(土) 12:11:22ソケット通信の実装ってかなり高度だぞw
Selector.selectedKeys() はSetを返すように定義されている
従って、順番が保証されているとは通常は考えられない
保証しているならば、SortedとかListを返すだろう
そもそも、送信順番は受信側では基本的に保証できないよ
どんな順番でServerSocketがacceptするかには関与できないから
"おそらく"送信順番に受け付ける、ってくらいじゃね?
そこまでソケット通信の実装をしているならば別だがw
0018デフォルトの名無しさん
2007/07/28(土) 13:32:110019デフォルトの名無しさん
2007/07/28(土) 14:01:40親フレームの絶対位置が分かれば出来そうですが、それを取得する方法が分かりません。
それとも他に適した方法がありますか?
教えてください。
0020デフォルトの名無しさん
2007/07/28(土) 14:37:390021デフォルトの名無しさん
2007/07/28(土) 14:41:54電卓とか○×ゲームくらいは作れる?
0022デフォルトの名無しさん
2007/07/28(土) 14:43:47アプレットで電卓、それとC言語で○×ゲーム(コンソールアプリ)は作成したことあります。
0023デフォルトの名無しさん
2007/07/28(土) 14:48:41http://www.geocities.jp/ky_webid/algorithm/index.html
こういうアルゴリズムとデータ構造の勉強はした?
0024デフォルトの名無しさん
2007/07/28(土) 14:53:28自分で実装まではしていません。
このようなデータ構造とアルゴリズムは一通り自分で実装して動きを確かめた方がよいのでしょうか?
0025デフォルトの名無しさん
2007/07/28(土) 15:05:37//////////////Test.java////////////////
public class Test{
public static void main(String[]args){
System.out.println(new StringBuffer("Test"));
}
}
//////////////StringBuffer.java////////////////
public class StringBuffer {
String a;
public StringBuffer(String a){ this.a=a; }
public String toString(){ return a.toUpperCase(); }
}
//////////////////////////////
例えばこんなん。Test.javaだけでコンパイルした場合とStringBuffer.java付きでコンパイルした場合では動作が違う。
0026デフォルトの名無しさん
2007/07/28(土) 15:12:40そりゃするに越したことはない
ある程度規模の大きなものを作る事と
色んなクラスの使用を経験しておくのがいいと思う
0027デフォルトの名無しさん
2007/07/28(土) 15:56:22TextArea内に行数を表示させる箇所を作るのって不可能ですよね。
今考えてるのは、文章入力用のTextAreaとそれに対応するように
行数表示用で編集不可のTextAreaを並べておこうと思っているんだけど。
もし、swing使ったり他の方法でこれが実現できるようなら教えてもらえないでしょうか。
0028デフォルトの名無しさん
2007/07/28(土) 16:07:41TextAreaの中に書くことは無理
独自にComponentを作成するか、JTableなどと組み合わせれば可能
0029デフォルトの名無しさん
2007/07/28(土) 17:10:54うーん、自分の環境はそれは考えにくいと思うんだけど。。
0030デフォルトの名無しさん
2007/07/28(土) 20:32:42if (i<<idx < 0) {
System.out.print("1 ");
} else {
System.out.print("0 ");
}
}
↑はint型の変数iのビット列を表示するやつなんですけど、
これのbyte型バージョンを作ろうとしたらうまく動きません
(for文の条件のところを idx < 8 に変更し、iをbyte型のbに変更)
なぜでしょうか?
0031デフォルトの名無しさん
2007/07/28(土) 20:47:42(今はとりあえずから実装)、可能でしょうか?
public class Hoge{
public static Class<? extends T> createClass(Class<T> c){
if(c.isInterface()){
なんらかの手段を使ってメソッドを空実装したクラスをreturn;
}else return null;
}
}
public interface Hello{
String sayHello();
}
public class Hogehoge{
public void main(String[] args){
Hoge.createClass(Hello.class<Hello>);
}
}
0032デフォルトの名無しさん
2007/07/28(土) 21:19:28たぶん、シフト演算でされる単項数値昇格を忘れてるんだと思う。
シフト演算のオペランドの型が byte、short、char なら
シフト演算する前に暗黙のうちに int 型に変換される。
0033デフォルトの名無しさん
2007/07/28(土) 21:25:33単項数値昇格ですか。初めて聞きました。
これから調べてみます
どうもありがとうございました。
0034デフォルトの名無しさん
2007/07/28(土) 21:31:33可能。でも、そこのサンプルなんか変じゃね?
0035デフォルトの名無しさん
2007/07/28(土) 23:04:280036デフォルトの名無しさん
2007/07/28(土) 23:28:20お前には使えなそうだ
0037デフォルトの名無しさん
2007/07/28(土) 23:47:17そういうことをやろうかと考えていたのですが、
具体的にはどんなことをすればよいのでしょうか?
0038デフォルトの名無しさん
2007/07/28(土) 23:59:15考えにくい、じゃなくて実際に確かめようぜ。大した手間じゃないだろ。
うまく行かない時ってのは大抵自分の思い違いが原因でな(だからゴムのアヒルに話すのが有効なデバッグになる)。
すぐにわかる事を調べずに、思いこみでコードいじってる内は若葉マーク取れないよ?
0039デフォルトの名無しさん
2007/07/28(土) 23:59:16アルゴリズムは知識レベルでも十分だと思う
ソート スタック キュー リスト マップ ハッシュ
これらは既にJavaがAPI化しているからJavadocでも読んで理解してればいい
どっちかっていうと、学校や会社であまり詳しく教えてくれないデザインパターンを勉強した方が為になる。
Java デザインパターン でぐぐれ
0040デフォルトの名無しさん
2007/07/29(日) 00:07:17レスありが�d。
一応jarの中身を見たけど、別のjarファイル内にあるクラスファイルとは重複してなかったんだ。
実行時にどのjarファイルを読んでクラスの情報を取得したかについてはデバッガで調べて正しかった。
そのクラスがimport宣言しているクラスが実はJavaのバージョンによっては対象外だったりしてたのかも。。
0041名無しさん@そうだ選挙に行こう
2007/07/29(日) 03:21:32>実行時にどのjarファイルを読んでクラスの情報を取得したかについてはデバッガで調べて正しかった。
複数のjarがあり、ソースのあるjarは別のjarのクラスを利用しているわけか(後付けすんなよ…)。
で、調べたのはそれだけ?同じパッケージ内のクラスは?
>import宣言しているクラスが実はJavaのバージョンによっては対象外
無ければコンパイル時に見つからないと出るし、複数あってもコンパイル時にどれか分らないって出ると思うけど。
つーかそもそもどこまで分ってるんだ?
1.キャスト変換エラーが出る場所が分っている。
2.キャスト変換エラーが出るインスタンスが分っている。
3.キャスト変換エラーが出るインスタンスの本来あるべきクラスが分っている。
4.キャスト変換エラーが出るインスタンスがいつ、どこで作成されるか分っている。
5.キャスト変換エラーが出るインスタンスの実際のクラスが分っている。
6.上記3.と5.は異なっている事が分っている。
#一応ソースとかコンパイル→jar固め手順が誤って無いって前提で話してるけど、そのへんは大丈夫だろうか
0042名無しさん@そうだ選挙に行こう
2007/07/29(日) 03:40:42Java デザインパターン
でぐぐってみる
サンクス
デザインパターンでオススメの参考書とかってある?
0043名無しさん@そうだ選挙に行こう
2007/07/29(日) 03:47:36CollectionとかSwingの実装
本だと結城本が入門用で定番
個人的にはリファクタリングによるデザインパターン入門とかってやつがオススメ
0044名無しさん@そうだ選挙に行こう
2007/07/29(日) 03:55:56なるほど
明日本屋行って買ってくる
遅い時間にありがとう
0045名無しさん@そうだ選挙に行こう
2007/07/29(日) 15:36:09そのTextField内の文字列を初期値にFileを作りたいのですがうまくいきません。
そのFileでhashCodeとgetNameを行うためにはどうすればいいんでしょうか?
0046デフォルトの名無しさん
2007/07/29(日) 15:39:46詳細に説明してくれて、感謝感激雨あられです。
>つーかそもそもどこまで分ってるんだ?
もっと詳しくソース追ってみたけど、実はキャスト変換の前のコードでそもそもの問題が見つかってしまって。。
ClassクラスのforName()のnewInstance()の戻り値が、事前にstaticなオブジェクト変数に値が入っていることで、
別のインスタンスが返されるように出来ているっぽい。コンストラクタ上でforNameの引数に渡したクラス名とは
別のオブジェクトを返すように実装されている感じ。
>#一応ソースとかコンパイル→jar固め手順が誤って無いって前提で話してるけど、そのへんは大丈夫だろうか
jar固め手順とは?
jar -cvf "jarファイル名" "フォルダ1(リコンパイルしたもの)" "フォルダ2(もともとjarに格納されていたもの)" "ファイル(*.propertiesなど)"
みたいな感じでjarを作っている。
もしリコンパイルしたソースが他のパッケージ内のクラスを参照しているのであれば,
上記の場合、フォルダ1とフォルダ2は逆かな?パッケージ名は単純にアルファベット順にならべてんだけど。。
0047名無しさん@そうだ選挙に行こう
2007/07/29(日) 16:26:50うまくいきませんじゃ、分からないのだが?
そのような内容では、出来るはずですとしか答えられん・・・。
うまくいかないコードをはってくれ。
0048名無しさん@そうだ選挙に行こう
2007/07/29(日) 16:53:53tf1.setText(fd.getDirectory()+fd.getFile());
とやってはディレクトリの区切り文字が\になってしまってるのが原因のようでした。
この\を\\に置き換えることってできますかね?
0049名無しさん@そうだ選挙に行こう
2007/07/29(日) 18:32:40JButtonに反応して表示するように下はいいけど左上が画面の左上に吸着したような位置にでてしまう
0050名無しさん@そうだ選挙に行こう
2007/07/29(日) 19:27:39引数をnullとすれば画面中央に表示
0051名無しさん@そうだ選挙に行こう
2007/07/29(日) 19:50:10setLocationRelativeTo(parentFrame) でね?
parentFrameは、JButtonを配置したJFrameな
0052名無しさん@そうだ選挙に行こう
2007/07/29(日) 20:09:04setLocationRelativeToでググってみたらsetLocationなんていうのもあるんだな
ちょっとこれ使ってやってみる
返答サンクス
0053デフォルトの名無しさん
2007/07/30(月) 12:32:04import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class TextReader {
public TextReader(){
try{
String strLine;
FileReader in = new FileReader("stage.txt");
BufferedReader reader = new BufferedReader(in);
while((strLine = reader.readLine()) != null){
System.out.println(strLine);
}
reader.close();
}catch(IOException ie){
System.out.println("error");
}
}
}
↑のようなプログラムで、stage.txtというファイルの中身をコンソール上に表示させたいのですが、エラーになってしまいます。
ちなみにstage.txtというファイルは、このプログラムファイルと同じディレクトリに入れています。
どこがおかしいのかご指摘頂けないでしょうか、お願いします。
0054デフォルトの名無しさん
2007/07/30(月) 12:34:42public static void main(String s[]){
TextReader t = new TextReader();
}
もTextReader内に入っています。
お願いいたします。
0055デフォルトの名無しさん
2007/07/30(月) 14:34:36System.out.println("error"); を ie.printStackTrace() に変えて、
どんなエラーなのか調べれば?
0056デフォルトの名無しさん
2007/07/30(月) 14:41:55レスありがとうございます。
それを試してみたら(指定したファイルが見つかりません)になりました。
同じディレクトリ内にファイルを入れてるんですが・・・。何かファイルの指定法に間違いがあるんでしょうか?
0057デフォルトの名無しさん
2007/07/30(月) 19:07:28File file = new Filr("stage.txt");
と書いてみて、絶対パス表示してみろ
0058デフォルトの名無しさん
2007/07/30(月) 20:23:240059デフォルトの名無しさん
2007/07/30(月) 20:26:28うわ・・・なんというミス・・・ありがとうございます。
確かにどこと同じなんだよって話ですね・・・。解決しました。ありがとうございます。
0060デフォルトの名無しさん
2007/07/30(月) 20:37:12Windowsでダウロードした場合、なぜか、Windowsで改行コードがCR/LFになってしまう。
なぜ、LFでなく、CR/LFになるのでしょうか?
ブラウザが変換している?
response.setHeader(xxxxxx);
PrintWriter pw = response.getWriter();
pw.println(XXXX);
pw.close();
0061デフォルトの名無しさん
2007/07/30(月) 20:41:52printlnが出力する改行コードはJVMが動いているシステムにとって自然な改行コードになる。
もし変えたくなければ自分で必要な改行コードを出力する。
0063デフォルトの名無しさん
2007/07/30(月) 20:51:32どこにCSVファイルがあるか教えてくれ、ただのサーブレットにしか見えない
0064デフォルトの名無しさん
2007/07/30(月) 21:37:00006519
2007/07/30(月) 23:08:450066デフォルトの名無しさん
2007/07/30(月) 23:16:400067デフォルトの名無しさん
2007/07/30(月) 23:25:27Swingはデカすぎるから困る。
0068デフォルトの名無しさん
2007/07/30(月) 23:28:48Eclipseで入力補完使いながら、setといれれば直ぐ見つかる程度だろう
0069デフォルトの名無しさん
2007/07/30(月) 23:44:22どうしようかなって思ってて。
やろうと思ってるのはHTMLタグ(&)だけ抜いて、テキストだけで
実装しようかと思ってるんだけど、HTML抜くライブラリとかってあるの?
smtp実装してるのはあるんだけど、popしてメール表示するようなサンプルって
あんましないんだよね。。誰かやったことある人おしえてください。
文字コードencodingは次考えます。
007061
2007/07/30(月) 23:46:28なぜ、Linuxなのに、CRがつくのかがわからないです。
0071デフォルトの名無しさん
2007/07/31(火) 00:13:390072質問です
2007/07/31(火) 01:11:55あるコンテキスト内で2つのサーブレットが起動しています。
この片方からもう片方のメゾッドを呼び出すことが出来ることを知りました。
書籍には
Servlet ServletContext.getServlet(String str)
でもう片方のサーブレットを取得できると書いてありますが、
如何せん書籍が古いため、現在このメゾッドはサポートされていないそうです。
同等の機能を実現するためにはどうすればいいのでしょうか?
0073デフォルトの名無しさん
2007/07/31(火) 06:17:50Servletの設定がそうなっているんじゃない?
>>72
相当古い本だな、それ
そのメソッドをServletではなく共通で使える普通のクラスにすればいい
Servletの何か(パラメータ等)が必要ならば、それを引数に渡せばOK
回答ありがとうございます。
片方のサーブレットが持つ情報をもう片方がほしければ、
その「普通のクラス」のstaticなクラス変数を介してもらえばいいということでしょうか?
0075デフォルトの名無しさん
2007/07/31(火) 15:45:430076デフォルトの名無しさん
2007/07/31(火) 15:48:270077デフォルトの名無しさん
2007/07/31(火) 16:52:41のメソッドの結果がなんで-10じゃなくて10なんですか?
0078デフォルトの名無しさん
2007/07/31(火) 17:08:02[内容]
java.util.concurrent パッケージの ArrayBlockingQueue と LinkedBlockingQueue は
どのように使い分ければ良いのでしょうか。
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/concurrent/ArrayBlockingQueue.html
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/concurrent/LinkedBlockingQueue.html
実際にやろうとしていることは、ThreadPoolExecutor 生成でこれらを用い、
・実行されるスレッド数の上限を決めたい(例えば10)
・上限に達したら、submit された際キューに積まず例外で返したい
なのですが、この場合、
ThreadPoolExecutor executor = new ThreadPoolExecutor(10, 10, 0L,
TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(10));
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());
と言った感じで良いものなのでしょうか。
ttp://www-06.ibm.com/jp/developerworks/java/040625/j_j-tiger06164.html
を見ると、LinkedBlockingQueue だと取りあえず受けてしまう様にも見えるのですが、
Javadoc の説明からは読み取りきれず悩んでいます。
0079デフォルトの名無しさん
2007/07/31(火) 18:24:09Math.abs がどんな機能なのか知ってるか?
>>78
>どのように使い分ければ
Array〜は固定サイズ限定だから、無限にしたければLinked〜を選ぶしかない。
でなければ、別にどっちでも。
>実行されるスレッド数の上限を決めたい(例えば10)
>上限に達したら、submit された際キューに積まず例外で返したい
SynchronousQueue を使う。
他のキューだと、スレッド数が上限に達しても、さらにキューが一杯になるまでタスクが溜まる。
0080デフォルトの名無しさん
2007/07/31(火) 18:52:16現役中学生に聞いてみれば?
0081デフォルトの名無しさん
2007/07/31(火) 18:54:22なんで?
Math.absってどういう意味?Mathはなんとなく数学っぽいが。
0082デフォルトの名無しさん
2007/07/31(火) 18:56:440083デフォルトの名無しさん
2007/07/31(火) 19:12:250084デフォルトの名無しさん
2007/07/31(火) 19:44:07つまんねぇんだよカス
0085デフォルトの名無しさん
2007/07/31(火) 19:48:110086デフォルトの名無しさん
2007/07/31(火) 19:55:48ArrayList を Iterator で順序アクセスした場合、この順序はもとのリストの順序と一致しないのでしょうか?
0087デフォルトの名無しさん
2007/07/31(火) 20:30:050088デフォルトの名無しさん
2007/07/31(火) 20:43:36Setと違って並びありきなクラスだと思うんだけど。
0089デフォルトの名無しさん
2007/07/31(火) 21:05:260090デフォルトの名無しさん
2007/07/31(火) 21:11:38no
0091デフォルトの名無しさん
2007/07/31(火) 21:13:290092デフォルトの名無しさん
2007/07/31(火) 21:16:09自分もそう思って、
for (int i=0; i < list.size(); i++) {
// list.get(i) を処理
}
を
for (Object obj: list) {
// obj を処理
}
のように書き換えたら問題がおきたのです。
他の問題があったのかな。
0093デフォルトの名無しさん
2007/07/31(火) 21:31:13ClassCastExceptionとかNullPoだったら氏ね
0094デフォルトの名無しさん
2007/07/31(火) 21:39:48最初にExecutors.newHogeHoge の標準ファクトリメソッドで生成されるものを使うのが推奨されている。
それでダメならばカスタマイズ汁
で、こんな場所で質問しているヤシはマルチスレッドなんかに手を出すべきじゃない
0095デフォルトの名無しさん
2007/07/31(火) 21:46:570096デフォルトの名無しさん
2007/07/31(火) 22:23:160097デフォルトの名無しさん
2007/07/31(火) 22:53:34それをこんな場所で質問しているヤシはプログラムなんかに手を出すべきじゃない
0098デフォルトの名無しさん
2007/07/31(火) 23:09:410099デフォルトの名無しさん
2007/07/31(火) 23:31:39paintメソッドで,Graphics gとかを引数にとっていると思うのですが,
gが良くわかりません.
他のクラスから,アプレットのメソッドを呼び出したりして,
アプレットに文字列を描画したいのですが,gのところをどうすればよいかわかりません.
どなたか詳しい方教えてください
0100デフォルトの名無しさん
2007/07/31(火) 23:43:30もしかして、paintを自分から呼び出して描画処理を行おうとしていない?
paintには描画したい内容を記述して、
それを呼び出すのはjavaの処理系が再描画すべき時点でやってくれる。
もし自分から描画させたい場合はpaintを直接呼び出さず、
repaintなどの再描画を促すメソッドを呼び出せばいい。
こちらからアクティブに描画する方法もあるが、
初心者のうちはこういうパッシブ描画でがまんしておけ。
0101デフォルトの名無しさん
2007/07/31(火) 23:43:40gは大事にしてね。
引数渡しするかキャンバスクラスに実装して使い回せばおk
0102デフォルトの名無しさん
2007/08/01(水) 00:16:19使いまわしたら生きてるか死んでるかの確認と再生成を自力でやらなきゃいけなくない?
0103デフォルトの名無しさん
2007/08/01(水) 00:34:08当方、専門学校の選択でJAVAを取った1年生です。
Eclipseを使ってJAVAをやっているのですが
import model.product;
の行で「インポートされた model は見つかりません。」とエラーが表示され、先に進めず困っています。
このぐらい自力で解決しろ、と思われますが、
検索をかけても解るものがヒットしないのです、どうか宜しくお願いします。
…教諭がソース(コメント、解説無し)のプリントを配布するだけで質問に答えてくれないんです。
0104デフォルトの名無しさん
2007/08/01(水) 00:55:35srcフォルダの下に、model/product っていうディレクトリはあるのか?
専門学校ってEclipseとかやるんだ。
0105デフォルトの名無しさん
2007/08/01(水) 01:37:05それでサポやらされる身にもなってみろ。
0106デフォルトの名無しさん
2007/08/01(水) 01:51:480107デフォルトの名無しさん
2007/08/01(水) 02:26:30>質問に答えてくれないんです
嘘つくな
0108デフォルトの名無しさん
2007/08/01(水) 02:32:440109デフォルトの名無しさん
2007/08/01(水) 02:40:44どこの学校か教えてくれたら、完全な解説を書きます。
0110103
2007/08/01(水) 06:19:13回答有難う御座います、srcというフォルダ自体がありません。
Wikipediaでパッケージというものがどういうものか、一応は理解できたつもりです。
プリントの中に package model.Product; と書かれたソースファイルが無いです…
>105
多分その通りかと…とても若い人で出欠取ったらどこかへ行ってしまいます。
>106
辞めてもいいのですが単位が…
>107
授業中に質問ができなく、職員室に突撃して聞いても「自分で調べろ」の一点張りで…
>109
日本工学院です
0111デフォルトの名無しさん
2007/08/01(水) 07:55:06質問に答えるとボロが出るからな
0112デフォルトの名無しさん
2007/08/01(水) 11:27:37model.product なんてクラスが必要なければそんな import 文は単に消しちまうか、
どっかで使われてるなら model パッケージを作って product クラスを適当にでっちあげればいいんでない。
0113デフォルトの名無しさん
2007/08/01(水) 15:00:44エラーメッセージをググる事を覚えるといいかも。
例えば「インポートされた は見つかりません」
固有部分を抜いて検索してみるのね。
0114デフォルトの名無しさん
2007/08/01(水) 18:11:16誰かおせーて。
0115デフォルトの名無しさん
2007/08/01(水) 18:12:34http://www.geocities.jp/ky_webid/algorithm/index.html
ここら辺の話?
0116デフォルトの名無しさん
2007/08/01(水) 18:43:30Arrays.sort で出来るよ
0117デフォルトの名無しさん
2007/08/01(水) 19:18:47下手に全員が進級すると教室が足りないんだってw
0118デフォルトの名無しさん
2007/08/01(水) 20:07:32教室と言うか教室の中にある設備機材のほうだなw
だから講師が生徒潰しにかかって、それに触発されて生徒間も潰し合いし出して
マジで頭おかしくなって精神科・心療内科行く奴が増えて
そっち系の知識が豊富になりつつ、潰し合いに生き残った者たちはどんどん専門学校に洗脳されて外でワケワカメな事言いだすんじゃないか。
そもそも、コンピュータ系専門に常駐してる講師なんて業界の底辺から溢れて食ってけないから講師をry
それを補うためにたまに外部からプロ呼ぶんだろうが。
0119デフォルトの名無しさん
2007/08/01(水) 21:48:40まるでヒューマ○みたいな専門学校だなww
もっとツールを使わないで一から作る技術を身につけたほうが
いいんだろうけど。
0120デフォルトの名無しさん
2007/08/01(水) 22:08:50まあ、今は学生書があれば激安で一式そろえれるから今は独学でも勉強が。
仕事で使うような自社ライブラリとかはそもそも入手できないし。
仕事で使う数十万から100万するモデリングツールや動画編集ソフト類も無理だろうし。
0121デフォルトの名無しさん
2007/08/01(水) 23:09:58できれば日本語希望です。
0122デフォルトの名無しさん
2007/08/01(水) 23:16:500123デフォルトの名無しさん
2007/08/02(木) 01:38:04ご容赦下さい。
環境:JDK1.5 apache+tomcat struts winXP (+Exlipse3.2 All in One)
アクセスログ出力の為、RequestProcessorを拡張する事に
なりました。(Actionのexecute発行前後でログを出す)
で、今回画面項目のチェック等でvalidationを使用する為、
TilesPluginとTilesRequestProcessorを使用しています。
(参考www.atmarkit.co.jp/fsecurity/rensai/struts03/struts03.html)
上記サイトを参考にし、TilesRequestProcessorをextendsした
クラスをstruts-config.xmlのcontroller processorClass に
指定していますが、何の反応も有りません。
(ロジックを通っていない、エラーも特に起きない)
((エラーが起きる様なロジックをわざと用意しても同様))
で、PukiWiki様の説明によると、TilesPlugin使用時には
TilesRequestProcessorが自動的に指定される、との事でした
ので、ワザとcontroller processorClassに変なクラスを
指定してみたりもしたのですが・・・・やはり何も起きません。
上記の結果、controller processorClass指定時は。
他の設定ファイル(web.xml等)も設定が必要なのでは?
他に設定が無い限り、TilesRequestProcessoの自動指定
が外れないのでは無いか?と疑っているのですが、何か
ご存知の方、他に設定が必要でしたらお教え下さい。
お願い致します。
0124デフォルトの名無しさん
2007/08/02(木) 08:07:54http://www.atmarkit.co.jp/fsecurity/rensai/struts03/struts02.html
0125デフォルトの名無しさん
2007/08/02(木) 11:15:57フリーのものでお勧めのがあればご紹介ください
0126デフォルトの名無しさん
2007/08/02(木) 12:17:49色を格納している変数の名前をr,g,bにしていたところ、
hoge.java:18: シンボルを見つけられません。
シンボル: コンストラクタ Color(int,java.awt.Graphics,int)
場所 : java.awt.Color の クラス
g.setColor(new Color(r,g,b));
というエラーが出たのですが、これどういうことでしょうか?
変数名をred,green,blueに変えたらコンパイルちゃんと通ったのですが、
引数に禁止されてる変数名とかあるのですか?
0127デフォルトの名無しさん
2007/08/02(木) 12:33:40gの型は何のつもりなんすか。int or Graphics?
0128デフォルトの名無しさん
2007/08/02(木) 12:39:59あ…Graphics gを引数で受け取ってて、
記憶域の都合で関数外でint r,g,bを宣言してたから
名前が被ってた…orz
Javaは昨日からだけどC/C++は2年くらいやってるのに
何をこんな間違いを…orz
ちょっと吊って来ます。
0130デフォルトの名無しさん
2007/08/02(木) 12:56:48君の言ってる保存って何?
ファイルに出力する事?
あ。すいません。
メモリー上で保持することです。JavaPlatform SE 6でお願いします。
Dateかと思ったんですが、ドキュメントをみるとメンバー関数に
推奨されてない的なことが沢山あったので別にあるのかなと思って質問いたしました。
0132質問です
2007/08/02(木) 13:42:15for (int j = 1 ; j <= 9 ; j++){
i = 2 * j;
System.out.println("2 × " + j + " = " + i);
for文なんですが、出力部分の"+"の意味がわかりません。
どういう意味なんでしょうか?
0133デフォルトの名無しさん
2007/08/02(木) 13:45:34yyyy年MM月dd日 hh時mm分ss秒のDateインスタンスを作りたいってことね。
java.util.Calendarを使うこと。例えば今日の日付ならこうなる。
Calendar cal = Calendar.getInstance();
cal.set(2007, 7, 2, 13, 32, 40); // 2007年8月2日 13時32分40秒
Date today = cal.getTime();
Calendar#set()の第二引数は月の指定だが、0スタートなので注意。
詳しくはjavadoc参照。
0134デフォルトの名無しさん
2007/08/02(木) 13:49:37System.out.println("aaa"+"bbb");
表示されるのは「aaabbb」
int x=5;
System.out.println("aaa"+"x");
表示されるのは「aaax」
int x=5;
System.out.println("aaa"+x);
表示されるのは「aaa5」
0135デフォルトの名無しさん
2007/08/02(木) 13:50:26+は文字列同士の連結の意味
iとかjはintだけど文字列に自動で変換されたあとで連結される
たとえばj=3,i=6の場合、
System.out.println("2 × " + j + " = " + i);
↓
System.out.println("2 × " + "3" + " = " + "6");
↓
System.out.println("2 × 3 = 6");
になる
0136デフォルトの名無しさん
2007/08/02(木) 13:50:35なんだ、足し算教えろっていってるのか?
0137デフォルトの名無しさん
2007/08/02(木) 13:51:45文字同士の連結
文字通りの足し算だね
0139デフォルトの名無しさん
2007/08/02(木) 13:57:15つりもレベル低いや
0140デフォルトの名無しさん
2007/08/02(木) 20:23:370141デフォルトの名無しさん
2007/08/02(木) 21:20:100142デフォルトの名無しさん
2007/08/02(木) 21:23:200144デフォルトの名無しさん
2007/08/02(木) 21:44:490145デフォルトの名無しさん
2007/08/03(金) 10:03:28どこをいじれば良いのでしょうか・・
0146145
2007/08/03(金) 12:02:220147デフォルトの名無しさん
2007/08/03(金) 12:32:270148デフォルトの名無しさん
2007/08/03(金) 13:07:380149デフォルトの名無しさん
2007/08/03(金) 14:09:41Boolean型を使おうと思っているのですが、使い方がよくわかりません。
private void _found_error(Boolean error_frag)
{
error_frag = Boolean.valueOf(true);
}
public void readFormData()
{
// 初期値はfalse
Boolean error_frag = Boolean.valueOf(false);
// 内部でtrueにしているはずなのに
_found_error(error_frag);
if(error_frag.booleanValue())
{
// なぜかここが実行されない
}
}
何が悪いのか教えてください
0150デフォルトの名無しさん
2007/08/03(金) 14:32:02readFromData の error_frag が指す先は変わらないから。
0151デフォルトの名無しさん
2007/08/03(金) 14:33:43Boolean はimmutableなのでインスタンスの状態の変更はできない。
そしてJavaは全て値渡し。
error_frag の参照値がコピーされて _found_error に渡され、
_found_error ではコピーされた参照値をBoolean.valueOf(true) が戻す参照値で上書きする。
その際、readFromData の error_frag は影響を受けない。
解決法としてはインスタンスメソッドなら error_frag をインスタンス変数にする、
それが嫌なら boolean[] やら class MyBoolean{ boolean flag; } を使うなどして
インスタンスの状態を変更できるものを使う。
0152デフォルトの名無しさん
2007/08/03(金) 14:38:54error_frag = Boolean.valueOf(true);
ではerror_fragの実体の指す先が変わってしまいますよね、失礼しました。
値を変えたいboolean型をこれらのメゾッドの関数が含まれるクラスのメンバー変数にして
解決することにしました。
どうもありがとうございます。
0153デフォルトの名無しさん
2007/08/03(金) 15:10:46落札者都合で削除すると同時に悪い評価が付きます。
0154デフォルトの名無しさん
2007/08/03(金) 15:42:52入力がある、終わるまで待機するような方法を探しているのですが、スレッドを使って値を
0155デフォルトの名無しさん
2007/08/03(金) 15:45:24ServerSocket.accept()や、BufferedReader.readLine()のような
入力がある、終わるまで待機するような方法を探しているのですが、スレッドを使って値を
監視する、以外に方法はないでしょうか?なんかこれだとCPUの無駄遣いのような気がしますし
もっと効率のいい方法がないかなと。
0156デフォルトの名無しさん
2007/08/03(金) 16:05:35自スレッドを Object#wait で寝かせて、他のスレッドから #notify もしくは #notifyAll で起こすことはできる
0157デフォルトの名無しさん
2007/08/03(金) 16:09:32ぜんぜん違う話なら、もっとくわしく・・・
0158デフォルトの名無しさん
2007/08/03(金) 18:22:06中央の"set"の下らへんをクリックするとJListが初めて描画される感じです。
これを簡単に解決したいんですが、どうしたらいいでしょうか?
やはり、上の描画部分はCanvasで下はボタン等のパネルにすべきでしょうか?
http://up.spawn.jp/file/up39072.txt
0159デフォルトの名無しさん
2007/08/03(金) 18:22:510160デフォルトの名無しさん
2007/08/03(金) 19:00:50同じテーブルの同じレコードに同時にINSERTしたりしたら起きるんかな?
0161デフォルトの名無しさん
2007/08/03(金) 20:01:20まあ、SwingというかAWTから勉強した方が良い。
0162デフォルトの名無しさん
2007/08/03(金) 20:12:21とりあえず super.paint(g);
レイアウトマネージャとか、AWTとSwingを混ぜるなとか、色々あるけど、まぁね。がんばれ。。
0163デフォルトの名無しさん
2007/08/03(金) 20:18:010164デフォルトの名無しさん
2007/08/03(金) 20:20:080165デフォルトの名無しさん
2007/08/03(金) 20:25:51Jinputを使ってgamepadからの入力を受け付けるんですけど
Jinputだといわゆるイベント(keyEvent)とかを発行しないんです。
だから現状はいつボタンが押されたか常にスレッドで〜msごとに
どのボタンが押されてるかチェックしてるんですが、
もっと効率よくイベント発行するタイミング(ボタンおされた時)を調べるにはどうしたらいいかなと。
0166デフォルトの名無しさん
2007/08/04(土) 00:33:16・・・・・・
だめっぽいね。 一定時間ごとに poll するしかなさそうです。
よく考えたら DirectInput も joyGetPos も自分で取りに行くしかないっけか。。。
結論 → むり
0167デフォルトの名無しさん
2007/08/04(土) 09:28:53コンパイル後やHotSpotコンパイラがネイティブコンパイルした後も維持されますか?
どのVMならというのではなくて、言語仕様としてどうなのかなと。
0168デフォルトの名無しさん
2007/08/04(土) 10:37:28それなんて構造体?
javaはレジスタすら動的に配置して定期的にメモリ内容かわってるのに。
ていうか配列すら最適化のために連続しておかれる保証はないのに。
0169デフォルトの名無しさん
2007/08/04(土) 11:24:42Swingとかでの話か?
1文字入力がある度に、KeyEventListenerで拾って処理するってのが定石
お前さんが思うほど不可はかからない
もしくは、フォーカスが外れたタイミングで処理する
CUIとかでの話であれば、System.in.read() 等はブロックする筈
0170デフォルトの名無しさん
2007/08/04(土) 11:54:11次のような構造でDBにアクセスするプログラムを作成しています。
(Console)--[入力取得と出力]--[データ加工]--[DBAHelperImpl implements DataStoreAccessHelper]--(MySQL)
注 [xxx]:自作Javaクラス、(xxx):システム外部を表します
[DataStoreAccessHelper]は、情報の取得、情報の保存、取得した情報からオブジェクトを作成、
取得した情報をjava.util.Listで戻す、などのメソッドを宣言したインタフェースです。
[DBAHelperImpl]は、そのインタフェースをMySQL用に実装したクラスです。
ここで、[DBAHelperImpl]を使用する方法について調べたところ、3通りの方法が見つかりました。
(1) DBAHelperImplをnewして使用する
(2) DBAHelperImpl内にstaticなインスタンスを作成し、
作成したインスタンスをDataStoreAccessHelperとして戻すメソッドを通じて使用する
(3) DBAHelperImplをDataStoreAccessHelperとして作成して戻すクラスを新たに作り、
そのクラス経由で取得、使用する
私は(1)の方法で使用していたのですが、(1)の方法はあまり勧められないとの記述があり、迷っています。
諸兄のご意見をお聞かせください。
0171デフォルトの名無しさん
2007/08/04(土) 12:03:26> 配列すら最適化のために連続しておかれる保証はない
まじでか。まあデカイ配列で落ちられても困るから有りだけど。
0172デフォルトの名無しさん
2007/08/04(土) 12:34:34(1)の方法で勧められない理由は何か説明できる?
説明できないならば、(1)の方法でも何も問題ない。
(2)は結局はImplがどれかを知らなければならないので(1)と何も変わらない
(3)はいわゆるFactoryクラスを作るパターンだが、Implを状況に応じて使い分ける必要がないならばただのオナヌー
0173デフォルトの名無しさん
2007/08/04(土) 12:42:55シングルトンにしたほうが都合が良いなら、内部でそうすればいいし、
DBAHelperImplに致命的なバグがあり、
工数的に他所のDAOをラップして返した方が都合が良い場合もある。
0174デフォルトの名無しさん
2007/08/04(土) 12:49:43フィールドは並び替えられているという話を読んだ覚えがある。
char a;
int b;
char c;
みたいなのを順番どおり並べると隙間が出来て無駄なんで
int b;
char a;
char c;
に並び替えて隙間を詰める。
0175デフォルトの名無しさん
2007/08/04(土) 13:17:360176デフォルトの名無しさん
2007/08/04(土) 13:23:32javaの配列が短形でなくて良いのはどうせ最適化されて実行時に都合の良いように再配置され凸凹になるから。
メモリアドレスで言えば番地が連続している訳ではないし、その必要も無い。
配列要素nがあったとして番地的にn+1の要素が隣の番地にあるとは限らない。
だからjavaの配列は順次アクセスが早いとは限らない。
0177デフォルトの名無しさん
2007/08/04(土) 13:27:36よっぽどスマートなメモリの使い方する(文字列以外)から気にしたら負け。
0178デフォルトの名無しさん
2007/08/04(土) 14:58:42たとえば
名前、身長、体重のデータからなる構造体を身長の高い順から表示するようなプログラムを作りたいんですが。
0179デフォルトの名無しさん
2007/08/04(土) 15:30:540180デフォルトの名無しさん
2007/08/04(土) 15:31:04システム言語に関係なく日本語を文字化けさせないためには、どのようにすればよいのでしょうか?
ロケールなどを設定してもダメでした…
0181デフォルトの名無しさん
2007/08/04(土) 15:32:070182170
2007/08/04(土) 15:45:23現時点では(1)を否定する理由が思いつかないため、(1)でいこうと思います。
その後いろいろ調べてみました。
(2)を採用する理由は、実装クラスの内部的な変更に強くなる(インタフェースのメソッドのみを使用している限り、利用する側の修正がない)。
(3)を採用する理由は、実装クラスそのものが別のクラスに変更されることに強くなる(データストアがWeb、Fileなどに変わっても使える)。
このように理解したのですが、これで問題ないでしょうか。
0183デフォルトの名無しさん
2007/08/04(土) 17:36:18> (3)を採用する理由は、実装クラスそのものが別のクラスに変更されることに強くなる(データストアがWeb、Fileなどに変わっても使える)。
(2) と (3) はほとんど同じことだと思うが。
(2) は DBAHelperImpl のメソッドで取得するとはいえ、
実際に何のクラスが返されてるか外からはわからないわけで。
別のクラスにすりかえることはカンタン。
0184デフォルトの名無しさん
2007/08/04(土) 18:04:03例えばArrayListでインスタンスを生成したListの変数があり
そのリストには1000個の要素(文字列)が入ってるとします。
もっと具体的に書くと文字列"AAA"と"BBB"と"CCC"が
それぞれ100個、400個、500個リストに格納されてるとして
(格納されてる文字列の並びは適当)
このときリストに格納されている各文字列の存在個数を高速に割り出す方法はありますでしょうか?
パフォーマンスを無視すれば配列のサイズ分だけ回せば可能ですが
それだと配列のサイズの二乗になってしまうので可変長データでやるにはかなり非現実的ですので
0185デフォルトの名無しさん
2007/08/04(土) 18:14:53ソートしてからなら1次でしょ。
StringはComparable<String>を実装してますよん。
0186デフォルトの名無しさん
2007/08/04(土) 18:17:15文字列の種類が少ない場合に遅くなるかもしれんけどね。
0187デフォルトの名無しさん
2007/08/04(土) 18:22:50for (String s : list) {
if (hashmap.containsKey(s)) {
hashmap.put(s, map.get(s) + 1);
} else {
hashmap.put(s, 1);
}
}
0188デフォルトの名無しさん
2007/08/04(土) 18:26:020189デフォルトの名無しさん
2007/08/04(土) 18:27:080190デフォルトの名無しさん
2007/08/04(土) 18:40:400191デフォルトの名無しさん
2007/08/04(土) 18:41:43>>185様の案で行くことにしました。ありがとうございました。
0192デフォルトの名無しさん
2007/08/04(土) 18:52:16Tree の利点はキーが常にソート順を維持されてるところ
Hash は順序不定
0193デフォルトの名無しさん
2007/08/04(土) 18:58:050194デフォルトの名無しさん
2007/08/04(土) 19:12:460195デフォルトの名無しさん
2007/08/04(土) 19:32:160196デフォルトの名無しさん
2007/08/04(土) 19:44:350197デフォルトの名無しさん
2007/08/04(土) 19:50:02例えば定数をコンソールやテキストから入力するなら、s1 == s2 で true になることは無い。
静的にデータを持つならnew String(CONST_STR)みたいにしとくことが必要になる。
こういう正しいテストデータ作成用のライブラリってない?
0198デフォルトの名無しさん
2007/08/04(土) 19:53:25何がやりたいか分からん
0199デフォルトの名無しさん
2007/08/04(土) 19:54:200200デフォルトの名無しさん
2007/08/04(土) 20:01:55コンソール側のページコードでどうにかならない?
0201デフォルトの名無しさん
2007/08/04(土) 20:02:07ここがわからない。
>正しいテストデータ
ここもわからない。
0202デフォルトの名無しさん
2007/08/04(土) 20:04:55> ここがわからない。
>> 例えば定数をコンソールやテキストから入力するなら、s1 == s2 で true になることは無い。
言語仕様がわからないなら介入しなくていいから。
0203デフォルトの名無しさん
2007/08/04(土) 20:05:370204デフォルトの名無しさん
2007/08/04(土) 20:08:270205デフォルトの名無しさん
2007/08/04(土) 20:08:540206デフォルトの名無しさん
2007/08/04(土) 20:10:200207デフォルトの名無しさん
2007/08/04(土) 20:43:25トーシロの俺には何がなんだか(´・ω・`)
0208197
2007/08/04(土) 20:46:300209208
2007/08/04(土) 20:48:480210デフォルトの名無しさん
2007/08/04(土) 20:57:44/( ゚ )( ゚ )ヽ
/::::⌒`´⌒::::\ でっていうwwwwwwww
| ,-)___(-、|
| l |-┬-| l |
\ `ー'´ /
0211デフォルトの名無しさん
2007/08/04(土) 21:55:520212デフォルトの名無しさん
2007/08/04(土) 22:36:53机上の空論でのパフォーマンス対処ほど無駄なものはない
0213デフォルトの名無しさん
2007/08/04(土) 22:40:59ノ、|、ヾ_,,ノ ノ ノ{ ヾ {^')) }フ/ / _/
\ヽ、 彡'`、、 'ー' ノ //",,゙ """ / ヽ 理 議 そ
ヽ-、ミ‐-、、 、,r=‐'¬ー=、、,-‐'_ ヽ、 /ノ / 解 論 の
ミ/ ~  ̄ノ /\ /彡 "" |/ で し な
/ ,' u ∪ ! ヽ | i、゙ー''"彡 /| き て め
、、∪ / ノ / _,,,...-‐‐ニ=,ノ,,/ ヽ、,,_ \ ,イ / | な い 方
ニ、=!, l_. レr=-ニ二、,,,.-'" ー、==-ヽ'"/ / ヽ い る を
、(・,)>ノ⌒ ∠,(・,)_く ゙` ヽ゚ノ`ー=、_ /// ∠ の こ
 ̄/""゙ ヽ ̄ ̄ \ヽ  ̄ ̄ // ノ か と
u 〈 、 u (ヽ //  ̄ノ ? も
ヽ -' lj >、 // /  ̄ヽ、
/ヽー‐ 、 /'"´ 'i // / ∨ヽ/
^゙"⌒ヾ、 ,i| ,"__} // / /
ー- - ヽ_人`'′ // / /
/ i'゙' /-─‐‐''/_/_
、 _/-‐ヽ、___,,,, -‐‐  ̄
ー-、、,,__,-‐'//ノゝノ ノ ヽ\
0214デフォルトの名無しさん
2007/08/04(土) 22:45:30どこの腐れ初心者ですか?
あ、ここは初心者スレか。悪かった
>机上の空論でのパフォーマンス対処ほど無駄なものはない
何千件とデータ回す場合を考えたら目に見えて明らかなんだが頭大丈夫かお前?
0215デフォルトの名無しさん
2007/08/04(土) 23:00:330216デフォルトの名無しさん
2007/08/04(土) 23:20:25マジレスしとけば、数千件程度でパフォーマンスに影響出るって何時の世代のマシンだよw
数千回DBアクセスでもすんの?
数千回IOでもすんの?
0217デフォルトの名無しさん
2007/08/04(土) 23:24:490218デフォルトの名無しさん
2007/08/04(土) 23:27:47素直にDB使え
0219デフォルトの名無しさん
2007/08/04(土) 23:36:24そりゃアルゴリズムか設計に問題あるだろ
0220デフォルトの名無しさん
2007/08/04(土) 23:42:42適当に書いたのでコンパイルは通らないと思うがこんな感じだ
class StringList {
List<String> list;
Map<String, Integer> counter;
public int add(String str) {
Integer count = counter.get(str);
if(count == null) {
count = new Integer(0);
counter.put(str, count);
}
count++;
list.add(str);
return count;
}
}
最初から数えておけばいいってこと
0221デフォルトの名無しさん
2007/08/04(土) 23:57:17オナニーコードもほどほどにな
0222デフォルトの名無しさん
2007/08/05(日) 00:09:220223デフォルトの名無しさん
2007/08/05(日) 00:34:48longの値をbyte[8]の配列に入れたいのです。
何か方法がありましたらぜひお教えください。
0224デフォルトの名無しさん
2007/08/05(日) 00:38:27くそ天皇 くそ天皇 くそ天皇 くそ天皇
いい加減死ねっつってんだろ屑ニートくそ天皇が
相変わらず病的な粘着っぷりだな屑ニートくそ天皇が
毎日毎日毎日粘着出来て良いでちゅねくそ天皇
くそ天皇さっさと死にやがれゴミが
東京に在住している精神病珍米糞ニートくそ天皇君の末路
さっさと精神病院逝くか首吊って逝くか選べや糞天皇が
早く死ねよ糞ニート天皇が
粘着精神病屑ニート天皇君は自らニートくそ天皇であると公言しました
さっさと死ねやくそ天皇が
早く死ねっつってんだろ屑ニートくそ天皇が
お前みたいなゴミクズ天皇は息してるだけで空気が汚れるからさっさと死ねや
とっと死に晒せや糞ニート天皇が
0225デフォルトの名無しさん
2007/08/05(日) 00:40:17どういうふうでもいいなら、これでどう↓
long x = 0;
byte[] b = new byte[8];
new DataOutputStream(new ByteArrayOutputStream(b)).writeLong(x);
0226デフォルトの名無しさん
2007/08/05(日) 00:42:33long l = 1000;
byte b = (byte) l;
という形でダウンキャストを行う
そうすれば、上位ビットを無視するので、最下位のバイトが格納される。
上位バイトの取得は、ビットシフトを使えばOK
0227デフォルトの名無しさん
2007/08/05(日) 00:42:42くそ天皇 くそ天皇 くそ天皇 くそ天皇
いい加減死ねっつってんだろ屑ニートくそ天皇が
相変わらず病的な粘着っぷりだな屑ニートくそ天皇が
毎日毎日毎日粘着出来て良いでちゅねくそ天皇
くそ天皇さっさと死にやがれゴミが
東京に在住している精神病珍米糞ニートくそ天皇君の末路
さっさと精神病院逝くか首吊って逝くか選べや糞天皇が
早く死ねよ糞ニート天皇が
粘着精神病屑ニート天皇君は自らニートくそ天皇であると公言しました
さっさと死ねやくそ天皇が
早く死ねっつってんだろ屑ニートくそ天皇が
お前みたいなゴミクズ天皇は息してるだけで空気が汚れるからさっさと死ねや
とっと死に晒せや糞ニート天皇が
0228デフォルトの名無しさん
2007/08/05(日) 00:42:51ByteBuffer buff = ByteBuffer.wrap(binary);
buff.put(longValue)
もっといい方法が在るかもしれん。
あとJava内部のバイト配列はビッグエンディアンのはずだから気をつけること。
0229デフォルトの名無しさん
2007/08/05(日) 01:01:41くそ天皇 くそ天皇 くそ天皇 くそ天皇
いい加減死ねっつってんだろ屑ニートくそ天皇が
相変わらず病的な粘着っぷりだな屑ニートくそ天皇が
毎日毎日毎日粘着出来て良いでちゅねくそ天皇
くそ天皇さっさと死にやがれゴミが
東京に在住している精神病珍米糞ニートくそ天皇君の末路
さっさと精神病院逝くか首吊って逝くか選べや糞天皇が
早く死ねよ糞ニート天皇が
粘着精神病屑ニート天皇君は自らニートくそ天皇であると公言しました
さっさと死ねやくそ天皇が
早く死ねっつってんだろ屑ニートくそ天皇が
お前みたいなゴミクズ天皇は息してるだけで空気が汚れるからさっさと死ねや
とっと死に晒せや糞ニート天皇が
0230デフォルトの名無しさん
2007/08/05(日) 01:07:06複数使ってるとjarの中にあるクラスがバージョン違いで実行エラーになるんだけど
どうしたらいいんだろう。
実行中にロードされたクラスファイル全部を見直して、モジュールの競合を解決してくれたり
何がいけないのかを判断してくれるツールないかなー?
0231デフォルトの名無しさん
2007/08/05(日) 01:12:54・競合ライブラリを最新のものに統一する。動かない部分は自前で修正
・それかクラスローダを分ける
0232デフォルトの名無しさん
2007/08/05(日) 01:14:47クラスローダを分けるとClassクラスとかでインスタンス生成するとき面倒じゃない?
競合ライブラリを最新のものにして、古いメソッドや仕様変更したAPI使ってたら、アウトだし。
0233デフォルトの名無しさん
2007/08/05(日) 01:18:440234デフォルトの名無しさん
2007/08/05(日) 01:21:31List<T> list = new ArrayList<T>;
public List<T> getList() {
return list;
}
}
みたいにクラスにリストを持たせたとき、
A<Hoge> a = new A<Hoge>();
に対して
a.getList.add(hoge1);
とか
a.getList.remove(hoge2);
って出来ないの?やってみたところできてないっぽいんだけど
0235デフォルトの名無しさん
2007/08/05(日) 01:26:58>a.getList.add(hoge1);
a.getList().add(hoge1);
0236デフォルトの名無しさん
2007/08/05(日) 01:29:07お恥ずかしい(-_-)
>>235
回答ありがとうございました
0237デフォルトの名無しさん
2007/08/05(日) 02:33:58volatlieを付けるとする。どの程度保障されるもの?
while (count < 0) {
}
public void setCount() {
this.count = count;
}
0238デフォルトの名無しさん
2007/08/05(日) 02:35:060239デフォルトの名無しさん
2007/08/05(日) 02:44:20count++; みたいなコードは、volatile であってもアトミックにならない。他のスレッドが割り込む可能性がある。
つまり count++; をするスレッドが複数あったらだめ。
書き込むスレッドがひとつだけの場合は複数のスレッドから読んでも大丈夫。
・・・ていう話? それとも volatile の正確な定義が知りたいのん?
0240デフォルトの名無しさん
2007/08/05(日) 02:45:56って話を見たことがあるんだけど、今でもそうなの?
0241デフォルトの名無しさん
2007/08/05(日) 02:55:301.4 以前と 5.0 以降で volatile の仕様が変わったという話はある。
少なくとも 5.0 以降は仕様どおり実装されてんじゃない? Sun の VM では。
でなきゃ、java.util.concurrent.* あたりが今ごろ異常動作しまくりのはず。
詳しい話はこのへんでもどうぞ↓
http://www-06.ibm.com/jp/developerworks/java/040416/j_j-jtp02244.html
http://www-06.ibm.com/jp/developerworks/java/040514/j_j-jtp03304.html
http://www-06.ibm.com/jp/developerworks/java/library/j-jtp06197.shtml
0242223
2007/08/05(日) 03:25:44回答ありがとうございます。
勉強になりました。
昔ならったコボルでは
long l=0x0123456789abcdefL;
byte[] b=new byte[8];
b=l;
で、lをbに代入すると
[01][23][45][67][89][ab][cd][ef]
こんな感じにカパッと当てはまったなー、javaではどうやればいいんだろうと思ったしだいです。
ビッグエンディアンには注意します。
0243デフォルトの名無しさん
2007/08/05(日) 04:02:50Data*StreamやデフォルトのByteBufferがそう補正してるってのが正しい?
0244デフォルトの名無しさん
2007/08/05(日) 04:09:43というか意味がわからん
0245デフォルトの名無しさん
2007/08/05(日) 04:40:070246デフォルトの名無しさん
2007/08/05(日) 05:17:10俺自身バイト指向でデータ扱うことが減ったのですっかり忘れてた。
"& 0xFF"で下位bitのみとれって話だよね。
0247デフォルトの名無しさん
2007/08/05(日) 09:05:18ググったけど、情報量が足りないページばかり。
0248デフォルトの名無しさん
2007/08/05(日) 09:22:41情報量って。。。本家にいくらでもあるだろ
0249デフォルトの名無しさん
2007/08/05(日) 09:27:21もしプログラムと同じディレクトリに入出力用ファイルあれば、
そのファイルから中身を取り出し・加工して再びそのファイルに書き出す。
もし無ければ、新しいファイルを作成して、そこに書き出す。
という用に行いたいのですがどの様にしたら良いでしょうか?
教えてください。
0250デフォルトの名無しさん
2007/08/05(日) 09:50:44どのJAVAの入門書でもサンプルコードが載ってるだろ
ググれば山ほどあるだろ
0251デフォルトの名無しさん
2007/08/05(日) 11:27:43時代の流れだな
Javaでバイトを意識してデータを扱うケースは稀だし、知らない技術者も多い
0252デフォルトの名無しさん
2007/08/05(日) 13:02:22漢字、ひらがな、カタカナ、その他記号などといった種類別に分割するということを
「プログラミング言語Javaに関する質問スレです。」
↓
「プログラミング」「言語」「Java」「に」「関」「する」「質問」「スレ」「です」「。」
Javaで(効率よく)やるにはどのようにしたらよいでしょうか?
(というか、文字種別をどうやって判断したらよいでしょうか?)
文字コードによる問題などもありますか?
0253デフォルトの名無しさん
2007/08/05(日) 13:07:500254デフォルトの名無しさん
2007/08/05(日) 13:10:03自然言語解析するか単純にテキストそう舐めして用意しといた単語リストと照らすか。
日本語はRPNなのでry
言い出したら切りがないな。
0255デフォルトの名無しさん
2007/08/05(日) 13:12:390256デフォルトの名無しさん
2007/08/05(日) 13:14:09ありがとう、検証してみます。
1〜400のスレッドから操作を受けてるみたい
0257デフォルトの名無しさん
2007/08/05(日) 13:36:331.5ならば、AtomicIntegerの使用を検討してみたら?
アトミックな操作が簡単に出来る
ただ、そもそもスレッド周りの勉強をした上でスレッドに手を出した方がいい
0258デフォルトの名無しさん
2007/08/05(日) 13:39:45効率よくやる方法はかなり難しいのではないか?
英語のように単語間がスペースで区切られているなら楽だろうが・・・
ぱっと思いつくのは、カタカナ・ひらがな・半角英数(といくつかの記号)は正規表現かなにかで定義
漢字で抽出するのは難しすぎるので「その他」で我慢する
後は、頭から崩して連結していくしかないと思う
下手に文字コードを数値で表現した所で、バグは増えても実行性能は大してかわらなそ
0259デフォルトの名無しさん
2007/08/05(日) 13:40:16このスレの自称中級者どもはうざいのばっかだな・・・
0260デフォルトの名無しさん
2007/08/05(日) 13:51:02動けばいいという低レベルなマの典型だな
0261デフォルトの名無しさん
2007/08/05(日) 13:56:40普通は模範的なコードを見て覚えるもんだ。
0262デフォルトの名無しさん
2007/08/05(日) 13:58:180263デフォルトの名無しさん
2007/08/05(日) 13:59:59お前自身が何も理解してなさそうだな。この流れをみるに。
0264デフォルトの名無しさん
2007/08/05(日) 14:02:000265デフォルトの名無しさん
2007/08/05(日) 14:02:53いじって覚える絶好のころあいだと思うのだが違うのか?
0266デフォルトの名無しさん
2007/08/05(日) 14:27:56public class Hogegege
{
private String name__;
public String getName()
{
return new String(name__);
}
}
っていうように、クラス変数を要求されたときに
新たに生成したものを返して絶対に変更できないようにした方がいいんでしょうか?
それとも単に return name__; でOK?
0267デフォルトの名無しさん
2007/08/05(日) 14:32:10変更できるようなオブジェクト (普通の配列とか) は clone した方がいいこともある。
0268デフォルトの名無しさん
2007/08/05(日) 14:40:46例えばOSごとの改行コードを返すクラスがあるとして、
それがchar[]で返されるものなら、それは return clCode.clone(); とかすべき。
コレクションならCollections.unmodifiable系メソッドでラップするのもよし。
0269デフォルトの名無しさん
2007/08/05(日) 14:50:07public static final Set<String> SUPPORTED_LANGUAGE;
static {
Set<String> set = new LinkedHashSet<String>();
set.add("ja");
set.add("en");
SUPPORTED_LANGUAGE = Collections.unmodifiableSet(set).;
}
0270デフォルトの名無しさん
2007/08/05(日) 14:52:08要求された側も何をさせてOKかを考える
その上で生で公開させてもいいし、防御的にコピーを返してもいい
結局は要求次第だが、なるべくは防御的にするのがセオリー
Stringに関しては>267,268の説明の通り
たが、char[]をコピーするか否かは要件次第なので、一概にコピーするべきとは言えない
0271デフォルトの名無しさん
2007/08/05(日) 15:41:35だれか満を持してネタ投下した>>255に突っ込んでやれよw
UTF系は固定長じゃないぞ。
0272デフォルトの名無しさん
2007/08/05(日) 16:15:110273デフォルトの名無しさん
2007/08/05(日) 17:10:30後から作られたから可変長にする必要がないだけだよ。
アレが特殊。21bit範囲内はUCS-4と互換性を取るって目的もあるし。
可変長より固定長の方が扱いやすいからbitの無駄使いより扱いやすさを優先した符号化方式。
UTFは元来可変長で表すもの。
0274デフォルトの名無しさん
2007/08/05(日) 17:13:490275132
2007/08/05(日) 17:31:38謎が解けましたorz
ありがとうございました。
0276デフォルトの名無しさん
2007/08/05(日) 17:48:43すでに16bitじゃ足りないのは分かってたけどそれに対処したのが遅れただけ。
実装側の互換性の問題とかがあったから。
0277デフォルトの名無しさん
2007/08/05(日) 18:02:43Random random = new Random(タネ);
for(int index = 0;index < 20;index ++)
{
key.append((char)('A' + random.nextInt() % 26));
}
ランダムなAからZまでの文字を20個追加したいのですが、
変な文字列が連結されます。何がいけないのでしょうか?
おしえてください。
0278デフォルトの名無しさん
2007/08/05(日) 18:08:47nextInt()は32ビット乱数のはずだから負数も取った気がした。
0と自然数だけ欲しければnextInt(26)ってやれば0〜25をとるよ。
0279デフォルトの名無しさん
2007/08/05(日) 18:10:52出来ました!どうもありがとうございます。
0280デフォルトの名無しさん
2007/08/05(日) 18:13:04random.nextInt() でマイナスも含まれるから。
試しにrandom.nextInt() だけ出力してみるといい
random.nextInt() にはオーバーロードメソッドで、0からnまでの乱数を返すrandom.nextInt(n) がある
random.nextInt(26) で試せば期待した結果になると思われ
0281デフォルトの名無しさん
2007/08/05(日) 18:23:18>>278 >>280
思い通りの動作が出来ました、どうもありがとうございますm(_ _)m
0282デフォルトの名無しさん
2007/08/05(日) 19:52:27サロゲートペアはUnicode誕生から5年後に導入されたんだが。
適当なこと書かないでおくれよw
0283デフォルトの名無しさん
2007/08/05(日) 21:45:02本日「BufferUnderflowException」なるものが発生しました。
ググってみたところ「相対「get」操作がソースバッファのリミットに達したときスローされる、チェックされない例外です。」
との記述があったのですがよく意味がわかりませんでした。
ここでいうソースバッファのリミットとはコンパイラーのメモリのことを指しているのでしょうか?
もしメモリ関連のサイズのことを指しているのでしたらどこで設定できるのかどなたか教えていただけないでしょうか?
ちなみにEclipseの設定→Java→インストール済みのJREに指定しているのは最新のJRE1.6.0です。
0284デフォルトの名無しさん
2007/08/05(日) 21:53:47java.nio.ByteBufferあたりのクラスのget系メソッドでサイズをオーバーして読み込んでしまった意味。
配列で範囲外のインデックスを使ったっていうのに近い。 単にプログラミングミス。
0285デフォルトの名無しさん
2007/08/05(日) 22:04:45相対操作はpositionが読み込んだ値のバイト数分先に進むんだよ。
あと何バイト読み込めるかはremainingで確認できる。
構造体チックに各メンバ変数の並びを仮定して使うなら、0, 4, 8みたく
プリミティブごとのバイト数を足して絶対アクセスすればいい。
0286デフォルトの名無しさん
2007/08/05(日) 22:10:18実績のある会社が提供してる有料のライブラリーに含まれるメソッドを使ってたんだけど
使い方がわるかったのかなぁ・・・あーもう嫌ぽ
0287デフォルトの名無しさん
2007/08/05(日) 22:20:12コンソールの初めあたりに以下のようなエラーメッセージが出て
VM?ごと処理落ちしてしまいます。
しかもこれは必ずは発生するというわけではなくて不定期に出てしまいます。
不定期ですが処理を繰り返しているとすぐ発生する感じです。
JREのランタイムも最新のものを指定いるのですが相変わらず発生します。
どなたかわかる方がいらっしゃいましたら教えてください
「An unexpected error has been detected by Java Runtime Environment」
0288デフォルトの名無しさん
2007/08/05(日) 22:29:500289デフォルトの名無しさん
2007/08/05(日) 22:39:56通常のログとは違ってこの処理落ちの場合にのみ生成されるログをのことだと思いますが
なんか「Thread」「Process」「System」といった感じにわけられて情報を
ダンプしているような感じに見受けられましたがエラー原因となるような記述は
書かれているのかいないのかサパーリでした。なにか読み方があるのでしたら教えてください
0290デフォルトの名無しさん
2007/08/05(日) 23:03:08こういう感じのやつか?
最初のほうの#がついた行をうpしてみ
0291デフォルトの名無しさん
2007/08/05(日) 23:27:010292デフォルトの名無しさん
2007/08/06(月) 00:13:57ソースコード読んでみろ
実績のある会社ならばソースコードくらい提供できる
出来ないとか抜かすならば金払う必要なし
逆コンパイルしてバグ見つけて訴訟もおk
0293デフォルトの名無しさん
2007/08/06(月) 00:42:55それってJavaからネイティブモジュール読み込んでます?*.dllファイルとか?
それだともしかしたら、PCの相性が悪いだけかもしれません。
自分もJNIを用いたプログラムでブルースクリーン出した事がある。しかも不定期。。
0294デフォルトの名無しさん
2007/08/06(月) 01:06:59しかし>>287のよーな現象に陥ったことがない為役にたつかはわかんない。
0295デフォルトの名無しさん
2007/08/06(月) 01:15:05まぁその会社のサポート窓口に訊いてみれば?
使い方の問題にせよバグにせよ、なんらかの返答はあるでしょ。
0296デフォルトの名無しさん
2007/08/06(月) 01:16:580297デフォルトの名無しさん
2007/08/06(月) 03:02:37お前は日本語理解しような。
16bitじゃ足りないのは初期段階から分かってたけど実装側を無視できなかったから"Unicode誕生から5年後に導入された"んだろうが。
だいたいjavaなら普段は拡張面無視してるからUTF-16で16bit単位の可変長だろうが。
固定長なのはUCS-2ですよw
0298デフォルトの名無しさん
2007/08/06(月) 08:10:390299デフォルトの名無しさん
2007/08/06(月) 12:16:16単純にやりたいなら、java.text.BreakIterator#getWordInstance()
本格的にやりたいなら、形態素解析が必要。
0300デフォルトの名無しさん
2007/08/06(月) 18:37:52AAAAA
*
BBBBB
//Sample2
XXXXX
YYYYY
ZZZZZ
という中身のSample1.txtとうファイルを読み込んで
*の部分にSample2.txtというファイルの中身を書き加えて
Sample3.txtというファイルに書き込むとすればどうやって記述すればよいのか
教えてください。
//Sample3
AAAAA
XXXXX
YYYYY
ZZZZZ
BBBBB
0301デフォルトの名無しさん
2007/08/06(月) 18:41:131. Sample1.txtを読み込む
2. Sample2.txtを読み込む
3. Sample3.txt に Sample1.txt と Sample2.txt の内容を書き込む
0302デフォルトの名無しさん
2007/08/06(月) 18:46:53*かどうか調べる
*ならSample2.txtの内容をSample3.txtに書く
*でないなら今まで読んだSample1.txtの内容をSample3.txtに書く
Sample1.txtの終わりまで繰り返す
0304デフォルトの名無しさん
2007/08/07(火) 01:38:48関数内では値を変えることがないし変わって欲しくない場合、
finalを付けた方がいいとは思うんですが、
全てに付けているとパラメータの部分が長くなってしまい見づらいといえば見づらいです。
常識的にはどうするべきなんでしょうか。
0305デフォルトの名無しさん
2007/08/07(火) 01:49:10限りなく好みかもしれない場所の1つだな
finalにした所でオブジェクトの内部は変更される可能性はある
引数に対して再代入する事自体を禁止し、FindBugsアタリでチェックしておけば不要とも言える
(逆に言えば、メソッド内で引数への再代入を防止する為にfinalを付ける、だがw)
個人的には不要派
0306デフォルトの名無しさん
2007/08/07(火) 01:50:10つけなくてはエラーになるときがある。
べつに無理につける必要はないと思うのだが....
0307デフォルトの名無しさん
2007/08/07(火) 01:52:40プロジェクトで決められてたら、それに従えばいい。そうでなければ好きにすれば良い。
経験的には手作業で final 付けてると、そのうち嫌気がさして止める。
0308デフォルトの名無しさん
2007/08/07(火) 02:06:45それをコンパイルしようとしたんですけど
「javacは内部コマンドまたは外部コマンド、操作可能なプログラム
またはバッチファイルとして認識されていません」となってしまいます。
どうしたらコンパイルできるようになりますか?
0309デフォルトの名無しさん
2007/08/07(火) 02:08:350310デフォルトの名無しさん
2007/08/07(火) 02:10:14final付けなくてはエラーになると本気で思っているならば勉強不足
それは匿名クラスなどに参照を渡しているからだろう
0311デフォルトの名無しさん
2007/08/07(火) 02:10:260312308
2007/08/07(火) 02:23:25;C:\Program Files\Java\jdk1,5,0\binをpathに加えればいいんだよね?
0313デフォルトの名無しさん
2007/08/07(火) 02:23:54postgres@debian$ createdb hellodb
------Connector.java------
package db;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.DriverManager;
public final class Connector {
private static Connection conn;
static {
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException ex) {
throw new InternalError(ex.getMessage());
}
}
private Connector() {
}
public static Connection open() throws SQLException {
return DriverManager.getConnection("jdbc:postgresql://debian/hellodb", "postgres", "");
}
}
0314308
2007/08/07(火) 02:26:070315デフォルトの名無しさん
2007/08/07(火) 02:27:050316デフォルトの名無しさん
2007/08/07(火) 02:33:38実は 1.6.0 をインストールしてましたとか。
0317デフォルトの名無しさん
2007/08/07(火) 02:34:29package db;
public class ConnectorTest {
public static void main(String[] args) {
System.out.println(Connector.open());
}
}
postgres@debian$ java -cp .:/usr/share/java/postgresql.jar db.ConnectorTest
------エラーメッセージ------
org.postgresql.util.PSQLException: Connection refused.
Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
db名、ユーザ名、パスワード名は大丈夫だと思うんですが・・・。
0318デフォルトの名無しさん
2007/08/07(火) 02:50:20> ;C:\Program Files\Java\jdk1,5,0\binをpathに加えればいいんだよね?
を加えちゃいかん
;"C:\Program Files\Java\jdk1,5,0\bin"
空白文字の扱いを知らんのか
0319318
2007/08/07(火) 02:52:26;"C:\Program Files\Java\jdk1.5.0\bin"
0320デフォルトの名無しさん
2007/08/07(火) 02:53:01pathに加えた手順を説明してみて
0321デフォルトの名無しさん
2007/08/07(火) 03:01:01人に聞くくらいなら内部クラスない場合は好み程度、と考えておけば良いんじゃない?
自分からfinal付ける明白な理由もなさそうだし。
0322308
2007/08/07(火) 03:04:37そして318さんに言われたとおりに;"C:\Program Files\Java\jdk1.5.0\binってPathのあとに
つけて今にいたりました>>320
0323デフォルトの名無しさん
2007/08/07(火) 03:08:53プロパティをOK押して閉じてからコマンドプロンプトをいったん閉じて開きなおす。
0324デフォルトの名無しさん
2007/08/07(火) 03:10:350325デフォルトの名無しさん
2007/08/07(火) 03:13:11ちなみにうちの環境だと
C:\Program Files (x86)\Java\jdk1.5.0_01\bin
にjavac.exeはある
0326308
2007/08/07(火) 03:24:33class Examplel {
public static void main(String args[]) {
System.out.println("This is the output from Examplel");
}
}
をかいてそれをファイル名はExamplel.javaにして保存。実行するためにコマンド開いてjavac Examplel.java入力するらしい。
もう俺にはお手上げです。
0327デフォルトの名無しさん
2007/08/07(火) 03:28:25それは関係無い
コマンドプロンプトから
"C:\Program Files\Java\jdk1.5.0\bin\javac.exe" -version
って入れて Enter 押して結果を教えなさい
0328308
2007/08/07(火) 03:31:030329デフォルトの名無しさん
2007/08/07(火) 03:31:060330308
2007/08/07(火) 03:33:520331デフォルトの名無しさん
2007/08/07(火) 03:33:54jarファイルにクラスパス通してないんじゃないの?
0332デフォルトの名無しさん
2007/08/07(火) 03:34:39マイコンピュータ開いてCドライブ開いて・・・って辿っていってjavac.exeのあるフォルダ確認して。
Windowsの種類やJDKのバージョンによってこのフォルダのパスは変わるから。
0333デフォルトの名無しさん
2007/08/07(火) 03:35:11肝心なとこスルーして答えてないしメチャクチャ釣り臭いんですけど
0334デフォルトの名無しさん
2007/08/07(火) 03:36:370335デフォルトの名無しさん
2007/08/07(火) 03:36:45ってことは、原因は 『C:\Program Files\Java\jdk1.5.0 に Java SDK をインストールしていない』 ってことになるんだけど、
[1] ダウンロードした SDK の確認(JDK と JRE と間違えてないか)
[2] インストール場所の確認
をお願い
0336デフォルトの名無しさん
2007/08/07(火) 03:36:450337308
2007/08/07(火) 03:45:11>>332よくわからない調べ方が。>>335も調べ方がわからない。本当にすまん。初心者なんだ。
0338デフォルトの名無しさん
2007/08/07(火) 03:45:46次の各問いに○か×で答えよ
1.C:\はあるか
2.C:\Program Filesはあるか
3.C:\Program Files\Javaはあるか
4.C:\Program Files\Java\jdk1.5.0はあるか
5.C:\Program Files\Java\jdk1.5.0\binはあるか
6.C:\Program Files\Java\jdk1.5.0\bin\javac.exeはあるか
0339デフォルトの名無しさん
2007/08/07(火) 03:51:110340308
2007/08/07(火) 03:55:342○
すまんもうこれ以上わからん・・・
0342デフォルトの名無しさん
2007/08/07(火) 03:56:280343デフォルトの名無しさん
2007/08/07(火) 03:57:58じゃあJDKをインストールしてないんじゃないの?
これはPCに元から入ってるものじゃないよ
どこからダウンロードした?
そもそもダウンロードすらしてない?
0344308
2007/08/07(火) 03:58:090345デフォルトの名無しさん
2007/08/07(火) 03:58:13たぶんね、まじめな話パソコンに慣れてからのほうが良いと思うんだ。
門前払いする気は無いんだけど、PC の知識はどうしても必要になるから、今のままだと今後さらに悩むことになる。
とりあえず寝れ。寝て起きてまた考えろ。
0346デフォルトの名無しさん
2007/08/07(火) 03:59:20HDD内のファイル検索すらしたことが無いのか?
プログラミングはかなり時期尚早だよ。
0347308
2007/08/07(火) 04:01:15なんかみんなの話聞いてたら確かに自分は早すぎるなと思ったわ・・・_| ̄|○
とりあえず今日はもう一回インストールしてみて寝ます。ありがとうございました。
0348デフォルトの名無しさん
2007/08/07(火) 04:03:34インストールの途中で出てくる説明はよく読んでね
特にインストール先のフォルダを指定するところがあるだろうからそこはメモしておくといい
0349デフォルトの名無しさん
2007/08/07(火) 04:03:45今みたいに、Java を勉強する過程で PC についての知識を深めるという荒業もある
じっくりやれば良いと思うぜー
0350308
2007/08/07(火) 04:16:29>>348
ありがとうございます。まだ基本的な知識が抜けているので自分で勉強しながらROMしようと思います。
質問できるレベルに達したらまた顔をだそうと思います。
0351デフォルトの名無しさん
2007/08/07(火) 04:23:37引数につけた final はメソッドを使う側からは見えないので、
完全にメソッドの実装側の都合となるためそれほど重要でない。
>全てに付けているとパラメータの部分が長くなってしまい見づらいといえば見づらいです。
ここ重要。使い捨てでない限り、ソースコードは人が読む文書。しかも、唯一完全な文書。
意図せず誤ってパラメータへの代入を防ぐメリットとのトレードオフだが、
それが一目で分からないような複雑なメソッドはむしろリファクタリングの対象と思われ。
不要派が多いんじゃないかな。自分も不要派
0352351
2007/08/07(火) 04:42:09引数に final をつけることにより、
ソースコードの読み手にその意図を伝える役割があるが、
そもそも、引数に代入を行うこと自体が混乱を招くことなので
通常やらない(むしろ、そのようなコードはリファクタリング対象)。
したがって、この意味でも、引数に final をつける意義は薄れている
というのが、不要派のおいらの個人的意見
0353デフォルトの名無しさん
2007/08/07(火) 07:35:110354デフォルトの名無しさん
2007/08/07(火) 07:44:140355デフォルトの名無しさん
2007/08/07(火) 08:09:04javaでfinalにした場合はこの意味だから。
0356デフォルトの名無しさん
2007/08/07(火) 09:32:08引数に代入行うと混乱するぐらい長いメソッド自体の方をリファクタリング対象にした方が良いような。
短いメソッドなら引数に代入されても大して混乱しないし。
0357デフォルトの名無しさん
2007/08/07(火) 09:52:57長いメソッド云々の前に引数に代入すんな、って話だと思う
どっちも糞コードなのは間違いないが、長いメソッドは可読性が低いだけ、引数に再代入するってのはバグと言ってもいいだろう
0358デフォルトの名無しさん
2007/08/07(火) 10:04:100359デフォルトの名無しさん
2007/08/07(火) 10:16:01なんで引数に代入しただけでバグになるんだ……
変更前の引数の値を期待してるところが残ってるのに、引数変更しちゃうと
バグの元になるってんならわからなくもないけど、短いメソッドなら修正容易だし。
0360デフォルトの名無しさん
2007/08/07(火) 10:17:14この中で削除して良い物は在りますか?
0361デフォルトの名無しさん
2007/08/07(火) 10:25:39JRE が一つでもあればいいのなら、赤線の枠内は全部削除して良い。
J2RE5 が一つはあった方が良いなら、赤線の枠内は
J2SE Runtime Environment 5.0 update11 残して全部削除。
0362デフォルトの名無しさん
2007/08/07(火) 10:37:28限りなくバグに近いだろう、例外の握りつぶしとかと同じレベル
極端な話、引数は自然にfinalでもいいだろうと思う
0363デフォルトの名無しさん
2007/08/07(火) 10:39:326 の Update 1 も削除していいんじゃない?
0364デフォルトの名無しさん
2007/08/07(火) 10:40:020365デフォルトの名無しさん
2007/08/07(火) 10:50:360366デフォルトの名無しさん
2007/08/07(火) 10:50:39そっとしといてやれ
0367デフォルトの名無しさん
2007/08/07(火) 10:59:070368デフォルトの名無しさん
2007/08/07(火) 12:25:51ある文字列をキーに検索を行うプログラムを作っています。
その文字列のキーをワイルドカード(一文字マッチは"?"で行います)でも使用できるようにしたいと思い、文字列を末尾から"?"に置換するメソッドを作りました。
String value = "AAAAA";
int len = value.length();
for (int i = 0; i < len; i++) {
String s = exec(value, len, i);
// 検索処理
}
public String exec(String _s, int _len, int _i) throws Exception {
StringBuffer sb = null;
try {
sb = new StringBuffer(_s.substring(0, _len - _i));
while (sb.length() < _len) {
sb.append("?");
}
return sb.toString();
} catch(Exception e) {
throw e;
}
}
0369デフォルトの名無しさん
2007/08/07(火) 12:26:050370デフォルトの名無しさん
2007/08/07(火) 12:27:55このメソッドを以下のような文字列を返すメソッドにしたいと思います。
パラメータが"ABC"なら、(2 ** 文字列長)回のループで以下の文字列を順番に返す。
1回目:ABC
2回目:AB?
3回目:A?C
4回目:A??
5回目:?BC
6回目:?B?
7回目:??C
8回目:???
どなたかご教示頂けないでしょうか。
0371デフォルトの名無しさん
2007/08/07(火) 12:35:5132文字以下に限るけど、
2^n 回ループで、iが媒介変数だとして、
「iのmビット目が立っていたらm文字目を?に置き換える」という処理を
n回やればいいんでは。
0372デフォルトの名無しさん
2007/08/07(火) 13:12:420373デフォルトの名無しさん
2007/08/07(火) 13:23:56import java.math.BigInteger;
import java.util.*;
public class A implements Iterable<String> {
private String s;
public A(String s) { this.s = s; }
public Iterator<String> iterator() { return new B(); }
private class B implements Iterator<String> {
private BigInteger i = BigInteger.ZERO;
private final BigInteger m = BigInteger.valueOf(2).pow(s.length());
private final int len = s.length();
public boolean hasNext() { return i.compareTo(m) < 0; }
public String next() {
if (i.compareTo(m) >= 0) throw new NoSuchElementException();
StringBuilder sb = new StringBuilder(s);
for (int j = 0; j < len; j++) if (i.testBit(j)) sb.setCharAt(len - j - 1, '?');
i = i.add(BigInteger.ONE);
return sb.toString();
}
public void remove() { throw new UnsupportedOperationException(); }
}
}
0374デフォルトの名無しさん
2007/08/07(火) 13:24:37import java.util.*;
public class C {
public static void main(String[] args) {
Iterator<String> iterator = new A("ABCD").iterator();
while (iterator.hasNext()) {
String s = iterator.next();
System.out.println(s);//本当はsを使って検索処理
}
}
}
0375デフォルトの名無しさん
2007/08/07(火) 13:28:05for (String s : new A("ABCD")) System.out.println(s);
0376デフォルトの名無しさん
2007/08/07(火) 14:18:24(変数の役割が)意味が変わる再代入は反対だな。アレは書いた奴にしか読めん。
friend欲しいのは設計が悪い。
constはjavaでは無意味。
0377デフォルトの名無しさん
2007/08/07(火) 14:34:18@Readonlyが追加されたら近い事が出来るようになるかも?
0378デフォルトの名無しさん
2007/08/07(火) 14:44:21generics組み合わせたりすると型名がやたら長くなるのはいただけないけど、
コーディングミスを考えるとやむを得ないか……
0379368, 370
2007/08/07(火) 18:02:05ありがとうございます。
少々違った形での実装となりそうですが、無事に進められそうです。
// 検索キーの桁数を考慮しないと酷い性能に……orz
0380デフォルトの名無しさん
2007/08/07(火) 18:09:400381デフォルトの名無しさん
2007/08/07(火) 19:42:29引数を含むローカル変数は基本的に再代入禁止にした方がよいし、そうすることが可能。
外科手術に例えると、高度な手術は可能な限り無菌状態を保つことで初めて可能になる
と、どこかのお偉いさんが言ってたヨ
また、このリファクタリングは、他のリファクタリングを行う際の前処理にもなる場合もある。
例えば、ローカル変数の内容をメソッドから取り出すようにリファクタリングする際、
内容がメソッドの場所によって変わってたら困る。
0382デフォルトの名無しさん
2007/08/07(火) 20:34:27このエラーはどういうことでしょうか?
調べてもわからなかったです。すみません。
0383デフォルトの名無しさん
2007/08/07(火) 20:49:06例えば
class A {
A(int x){}
}
class B extends A {
int x = 10;
B() {
super( this.x ); // ← これ
}
}
0384デフォルトの名無しさん
2007/08/07(火) 21:34:2550ページ目のコンパイルで躓いてます。
javacがなんかおかしいみたい。何故だろう?
0385デフォルトの名無しさん
2007/08/07(火) 21:35:20くわしく
0386デフォルトの名無しさん
2007/08/07(火) 21:40:22という項目で
//MyJava
class MyJava{
public static void main(String args[]) {
System.out.println("My Java Program");
}
}
と、テキストで打ちました。
で、コンパイルするんですが
0387デフォルトの名無しさん
2007/08/07(火) 21:45:49「cd c:\MyJava」
「dir」
「javac MyJava.java」
と打つと
「'javac'は、内部コマンドまたは外部コマンド、操作可能な
プログラムまたはバッチファイルとして認識されていません」
と出てしまうのです。
0388デフォルトの名無しさん
2007/08/07(火) 21:52:13インストールしているならそのインストール先を確認して、
そのインストール先の bin フォルダを環境変数 PATH に追加する。
・・・その手の設定方法って本に載ってない?
0389デフォルトの名無しさん
2007/08/07(火) 21:54:41最初に、JDKのインストールと、PATHの設定が載ってました。
それは本の通りに進んでいたのですが…
0390デフォルトの名無しさん
2007/08/07(火) 21:56:13int型のデータ「0xC01A」からString型のデータ"\uC01A"に
変換したいのですが、どのようなやり方がありますでしょうか?
0391デフォルトの名無しさん
2007/08/07(火) 21:59:19コマンドプロンプトで PATH って打って、
JDK の bin フォルダがちゃんと追加されているかどうか確認する。
エクスプローラーでマイコンピュータから C: → Program Files → ... ってたどっていって、
本当にそのフォルダが存在していて中に javac があるかどうか確認する。
0392デフォルトの名無しさん
2007/08/07(火) 22:00:02早速やってみます。
0393デフォルトの名無しさん
2007/08/07(火) 22:03:02int x = 0xc01a;
String s = "" + (char)x;
""+ ってのがなんかイヤだったら、面倒いけど
String s = new String(new char[]{ (char)x });
0394デフォルトの名無しさん
2007/08/07(火) 22:04:27ttp://www.shuwasystem.co.jp/books/7980/0533-9/0533-9.html
正誤表出ているが、パスの設定を1.4のデフォルトでやったんだろう
0395デフォルトの名無しさん
2007/08/07(火) 22:21:49String str = Integer.toString(0xC01A);
0396デフォルトの名無しさん
2007/08/07(火) 22:24:52String str = Character.toString((char)0xC01A);
だな
0397デフォルトの名無しさん
2007/08/07(火) 22:27:56C:\MyJava>path
PATH=C:WINDOWS\system32;C:WINDOWS;C:\WINDOWS\system32\Wbem;C:
\Program Files\pcbNavi\bin;C:\Program Files\Fujitsu\sa\dll;
c:\j2sdk_1.4.1_01\bin
と表示されました。
C: → Program Files →Java→の中にはjavacは無く、
C: → j2sdk1.4.1 01 →bin→javacとありました。
何か間違ったのでしょうか?
>>394様、ありがとうございます。
1.4.1 01を選んでダウンロードしたのですが…自信ないです。
0398デフォルトの名無しさん
2007/08/07(火) 22:31:06PATH の中の j2sdk_1.4.1_01 実は j2sdk1.4.1_01 が正しいんじゃない?
0399デフォルトの名無しさん
2007/08/07(火) 22:32:41c:\j2sdk_1.4.1_01\bin\javac -version
ってコマンドプロンプトで打ち込んでみて
0400デフォルトの名無しさん
2007/08/07(火) 22:35:390401デフォルトの名無しさん
2007/08/07(火) 22:39:51new String(new int[] { 0xC01A }, 0, 1)
0402デフォルトの名無しさん
2007/08/07(火) 22:40:39String s = "\\u"+ String.format("%x", 0xC01A).toUpperCase();
0403デフォルトの名無しさん
2007/08/07(火) 22:43:43ところで toUpperCase するなら %X でいいんじゃない?
0405デフォルトの名無しさん
2007/08/07(火) 22:53:540406デフォルトの名無しさん
2007/08/07(火) 22:57:53そうだったら PATH もそのように
一字一句同じ名前を入れてください
0407デフォルトの名無しさん
2007/08/07(火) 23:01:410408デフォルトの名無しさん
2007/08/07(火) 23:07:13本当に改行やら無駄な空白が入っているのなら、取り除いてみてください。
0409デフォルトの名無しさん
2007/08/07(火) 23:18:09もう一度やってみます。
0410デフォルトの名無しさん
2007/08/07(火) 23:25:49エスパーしてみる
DドライブにJDK入っているとかじゃない?
エクスプローラーからjavac.exeを選んで、コマンドプロンプトにドラック&ドロップしてみてくれ
そこで表示されたパスをここにココにコピる
0411デフォルトの名無しさん
2007/08/07(火) 23:27:34c:\j2sdk_1.4.1_01\bin
志村、sdkの後ろに_入ってるぞ
キーボードで入力するんじゃなくて、パスはコピー&ペースト汁
0412デフォルトの名無しさん
2007/08/07(火) 23:53:39エクスプローラでアドレスバーを表示するようにしてないの?
0413デフォルトの名無しさん
2007/08/08(水) 01:05:36アンインストールしてもう一回始めからやり直してました。
そのおかげか、ソースコードを書き直したお陰か(本の文書の方では
『//MyJava』となってましたが、実際の画面を写した写真では『//MyJava.java』と)
PATHの方も、本を見るのではなく、>>411様の通りにコピペをしました。
何とか前進できました。
0414デフォルトの名無しさん
2007/08/08(水) 01:09:450415デフォルトの名無しさん
2007/08/08(水) 01:16:57そんな違いよく見つけたね
でもコメントの違いはプログラムの動作に影響しない
0416デフォルトの名無しさん
2007/08/08(水) 01:17:41頑張ります。
PC自体初心者なのに、訓練学校に入ってしまい今、毎日が勉強です。
今年中にブロンズとSJC-Aを取得するように言われていて…
努力しかないですね。
0417デフォルトの名無しさん
2007/08/08(水) 01:17:420418デフォルトの名無しさん
2007/08/08(水) 01:54:40かわいそうだが、その本は地雷だから。
きみはもうしばらくしたら
本の通りにやったのですがエラーが出てしまいます。
精度が落ちている可能性
検出値: double
期待値: float
a = 2.0;
エラー 1個
という質問をするであろう。
http://pc11.2ch.net/test/read.cgi/tech/1180419689/354-364
0419デフォルトの名無しさん
2007/08/08(水) 07:12:470420デフォルトの名無しさん
2007/08/08(水) 13:13:50部分文字列"]"をマッチさせ、例外的に"\]"はマッチさせないような正規表現をJavaで書くのにはどうしたらよろしいでしょうか?
0421デフォルトの名無しさん
2007/08/08(水) 13:18:30ソース中に書くのなら \ はエスケープして "(?<\\\\)\\]"
0422デフォルトの名無しさん
2007/08/08(水) 13:20:330423デフォルトの名無しさん
2007/08/08(水) 13:21:04回答させていただきます。
(?!\)]
0424デフォルトの名無しさん
2007/08/08(水) 13:22:35DBはpostgresです。
それでEntityを作成しているのですが、postgresのinterval型での型にするにはjavaではどのクラスで定義すればいいでしょうか?
0425423
2007/08/08(水) 13:24:310426デフォルトの名無しさん
2007/08/08(水) 13:34:450427デフォルトの名無しさん
2007/08/08(水) 13:36:34というかJava 逆コンパイラでぐぐれw
0428デフォルトの名無しさん
2007/08/08(水) 13:45:11http://lab.moyo.biz/tools/jadweb/index.jsp
0429420
2007/08/08(水) 13:46:500430デフォルトの名無しさん
2007/08/08(水) 15:42:23Eclipse---すばらしい開発環境だとは思うのですが、
なにかの拍子にクラスパスにあるリソース(Hibernate関連のXML文書とか)
を勝手に削除してしまうので困っています。
どうすればいいのでしょうか?
HibernateはHibernateで、リソースをクラスパスに置いておかないとだめ
みたいだし(そうでもないのかな? Hibernateも初心者なので)
0431デフォルトの名無しさん
2007/08/08(水) 15:45:520432デフォルトの名無しさん
2007/08/08(水) 16:02:51eclipse 使ったこと無いけど、こんな感じの状況かな?
ttp://d.hatena.ne.jp/soutaro/20070615/1181867206
0433430
2007/08/08(水) 16:06:48正常な動作をしていたプログラムが、次の日、
Eclipseを立ち上げて動作させようとすると動かない
==>クラスパス内のフォルダにあったリソースが、
ごっそり消えている。あるいはフォルダごと消えている。
とか、あるいは、外部jarの変更等でプロジェクトが
再構築されたときとかも、同じようなことが起こります。
0434430
2007/08/08(水) 16:08:47ソースディレクトリには被害はないのですが。
でも、ギャーの雰囲気は似ている。
0435デフォルトの名無しさん
2007/08/08(水) 16:20:46そんな事は一度も起きた事ない。
インストールしているプラグインの何かが不具合起こしているんじゃないか?
列挙できる?
0436430
2007/08/08(水) 16:42:56デフォルトでもあまりにも多すぎますが。
0437デフォルトの名無しさん
2007/08/08(水) 16:49:09Project > Properties > Java Build Pathページ > Sourceタブ > Default output folder
そのクラスパスはどうやって設定してる?
0438デフォルトの名無しさん
2007/08/08(水) 17:05:44ビルドの時に、削除する。
というか、ant cleanをするようなイメージ。
クラスファイルの置き場は、動的に更新されるように思っておくといい。
なので必要なファイルは、クラスパスではなく
ソースディレクトリとして登録した場所の下に置けばいい。
0439430
2007/08/08(水) 17:12:25WorkBench/build/classes
こんな感じです。ここに置いてある、*.class以外のファイルが被害に遭います。
主に被害に遭うのはclasses/Hibernateにあるxmlファイル群ですが、
たまに、classes/Hibernateがなくなったり、classes直下のディレクトリ以外の
ファイルも消えます。classes/Hibernateにあるxmlファイル群だけ消えてclasses直下
のファイルは残っていたり、現象はバラエティーがあります。
0440デフォルトの名無しさん
2007/08/08(水) 17:17:09出力先フォルダを指定した場合、そこにファイルを置いちゃダメ
ソースフォルダ配下に置いておくこと。
コンパイルと同様に出力先フォルダにコピーされる
javacとかでコンパイルした事ないのね、今の人って
ant使う場合でも、.javaはコンパイルして出力先フォルダにコピー
.java以外のファイルは出力先にそのままコピーって使うもの
出力先はそれらの作業を行う前にクリアする
だから、出力先にぽんとおいてはダメ
0441430
2007/08/08(水) 17:20:17ためしてみます。
0442430
2007/08/08(水) 17:29:47(誤解してソースフォルダからリソースを持って行ってくれるのかと思ったよ。
よく考えたらそんなわけないですよね。)
でも、勝手に出力フォルダのファイルを消してしまうのが”仕様”だと分かって安心しました。
0443デフォルトの名無しさん
2007/08/08(水) 17:40:190444デフォルトの名無しさん
2007/08/08(水) 17:45:47それか、ファイルを Package Explorer にドラッグ&ドロップしても放り込める
0445430
2007/08/08(水) 18:06:01そうなのか! と思って勇んで右クリック → RefreshでPackage Explorer
にリソースが出現したので、やって見るとだめでした。
で、ふとみるとプロジェクトに赤で白抜きのバッテンが!
これって、ときどきなるいんだけど、コンパイルしなくなって
にっちもさっちもいかなくなることがあります。
(わけわからずにいろいろ触っているうちに直る)
お恥ずかしい話だが、プロジェクトの赤で白抜きのバッテンを解消する
方法をぜひ教えてください。
0446デフォルトの名無しさん
2007/08/08(水) 18:19:23そこにエラーメッセージの一覧が出てるはず。
そもそも Problems ビューが表示されてないのなら、Window > Show View > Other... > General > Problems
日本語だったら 「問題」 ビューという名前だったかなぁ。
メニュー名は適当に類推すれ。
0447430
2007/08/08(水) 18:19:58夏休みに突入です。みなさんどうもありがとう。
0448デフォルトの名無しさん
2007/08/08(水) 19:33:01javaのアップデート来たんですけど更新しちゃっていいんですかね?
0449デフォルトの名無しさん
2007/08/08(水) 19:35:350450デフォルトの名無しさん
2007/08/08(水) 19:36:040451デフォルトの名無しさん
2007/08/08(水) 19:51:31googleツールバーをやたらインストールしようとするのはやめて欲しい。
0452デフォルトの名無しさん
2007/08/08(水) 20:01:05出だしのクラス、メソッド、フィールド、インスタンスの関係が
なかなか頭に入ってきません
そこで、住人の方の中でこれらの関係を理解しやすくする為に、アニメのタイトル、キャラ等に
当てはめて覚えた事がある方がいましたら、それを教えて頂けないでしょうか
私は今だと、もえたん、ぽてまよなんかは見てますので分かりやすいかも知れません。
よろしくお願いします
0453デフォルトの名無しさん
2007/08/08(水) 20:04:070454デフォルトの名無しさん
2007/08/08(水) 20:20:170455デフォルトの名無しさん
2007/08/08(水) 21:04:05フィールド=ゴーストの個性
メソッド=ゴーストの能力
インスタンス=ゴーストダビングされた子供
俺は間違ってない。
0456デフォルトの名無しさん
2007/08/08(水) 22:10:38一覧表を出力するとして
0.Beans(出力される1レコードのデータクラスを定義)
1.JSPで検索内容をサーブレットに対してポスト
2.サーブレットでDBにアクセスしてレコードごとのデータをBeansのインスタンスに入れてそれをコレクションか配列に格納
3.サーブレットから元の画面に戻りJSPで格納した値を表示する
こんな感じでいいのかな?
0457デフォルトの名無しさん
2007/08/08(水) 22:17:54エヴァくらいしか思いつかないが
クラス=レイの作り方
インスタンス=レイの作り方を基に作りだしたレイの実態
メソッド=ゲンドウの指示(たとえばレイを動かすとか)
フィールド・・・・って何のフィールドなんだ?w
0458デフォルトの名無しさん
2007/08/08(水) 22:20:01後、サーブレットから元の画面に戻りってのはフォワード処理ってのはOK?
概ね間違っていないと思うけど、サーブレットはHTTPリクエストとレスポンスの流れをちゃんと把握しておかないと意味が伝わりにくいぞ
1. サーブレットに対して検索条件をリクエスト
2. サーブレットでDBにアクセスし、Beanを格納したコレクションを作成。
これはSessionか何かに保存
3. JSPにフォワードして、コレクションの中身を表示(レスポンス作成)
0459デフォルトの名無しさん
2007/08/08(水) 22:22:54ATフィールド?
0460デフォルトの名無しさん
2007/08/08(水) 22:40:18サンクス!
たしかにそう書くとわかりやすい きをつけるよ
>1のポストってのはリクエストって意味?
そそ、ポストしてサーブレットでリクエストのデータを取得して〜 というイメージでした
>後、サーブレットから元の画面に戻りってのはフォワード処理ってのはOK?
フォワードはおk フォワードの引数に元のアドレスを渡してリクエストもとのアドレスに戻すイメージです
しかしASP.NETに頼ってたから普通にポストバックで処理するのに慣れてしまって流れがつかみにくいw
これからオープンソースは避けて通れないからどうしてもコツだけでもつかんどかないと・・・・
0461デフォルトの名無しさん
2007/08/08(水) 22:52:29わろたw
0462デフォルトの名無しさん
2007/08/08(水) 23:21:36これを参考にニヨニヨしながらがんばってみます
ありがとうございました
0463デフォルトの名無しさん
2007/08/09(木) 00:34:380464デフォルトの名無しさん
2007/08/09(木) 01:53:21http://gigazine.net/index.php?/news/comments/20070804_magi_system/
0465デフォルトの名無しさん
2007/08/09(木) 03:01:48なるほど、やっぱりまちまちな部分なんですね。
プリミティブな型に付けるのはさておき、>>305さんもおっしゃるとおり
オブジェクト型に付けるのは個人的に少し違和感がありました。
臨機応変にやっていきたいと思います。
特に>>351さんのソースコードは人が読む文書というのは
当たり前のことなのに言われるとはっとしました。
改めて肝に銘じておきます。みなさんありがとうございました。
0466デフォルトの名無しさん
2007/08/09(木) 12:19:17クラス : 萌え
メソッド : お話する、プニプニする、攻撃する、
フィールド : みみ、しっぽ、ほっぺ、おくち、各種装備
インスタンス : ぽてまよ(ぽてこ)、ぐちゅ子
Moe poteko = new Moe("ぽてまよ","俺の娘");
String str_pote = poteko.talk("おはよう、ぽてまよ");
System.io.println(str_pote);
Object obj = poteko.punipuni(Moe.HOPPE,10);
Sytem.io.println(obj.toString());
[実行結果]
ほに、ほにー
Exception : "ぽてまよ" omorasi Error!
at Moe class
上記の場合、厳密に言うと抽象クラスが適当かもしれん。
0467デフォルトの名無しさん
2007/08/09(木) 12:22:460468デフォルトの名無しさん
2007/08/09(木) 14:11:02全然OOになってないだろ。
0469デフォルトの名無しさん
2007/08/09(木) 17:09:08メソッド : 小パンチ、中パンチ、大パンチ、小キック、中キック、大キック、ガード
クラス : ケン、リュウ、春麗、ザンギエフ
ケンメソッド : 昇竜拳、竜巻旋風脚、波動拳
インスタンス : ケン1P、ケン2P、ザンギエフCP
0470デフォルトの名無しさん
2007/08/09(木) 20:01:50メソッド : 落書き、煽り、中傷
フィールド : 板、スレッド、レス、Vipper
インスタンス : 2ch
0471デフォルトの名無しさん
2007/08/09(木) 21:57:22って、何でしょうか?
0472デフォルトの名無しさん
2007/08/09(木) 22:03:13クラスファイルが見つかりません
0473デフォルトの名無しさん
2007/08/09(木) 22:06:22ありがとうございます。
0474デフォルトの名無しさん
2007/08/09(木) 23:07:09と聞きましたが、
ガッ = ?なに?
0475デフォルトの名無しさん
2007/08/09(木) 23:21:260476デフォルトの名無しさん
2007/08/09(木) 23:26:45あるSwingアプリケーションがあって、その中にA.classがあるのですが
これを別アプリケーションから呼び出したいと思ってます。
考えたのですが、Swingアプリの方でポート開放して要求を受け付けるようにすればA.classを実行することはできたのですが、
出来れば、別アプリから 直接A.classのメソッドを呼び出したりしたいのです。
Webサービスみたいなイメージでしょうか? スマートなやり方ありましたらヒントください。
できれば、設定ファイル等が増えて煩雑にならない方法がよいです。
0477デフォルトの名無しさん
2007/08/09(木) 23:26:49C言語しかダメ?
0478デフォルトの名無しさん
2007/08/09(木) 23:41:09独学で今年中にSJC-Aを取得するようにと上司に言われました。
何ヶ月くらいで取れるものなんでしょう?
0479デフォルトの名無しさん
2007/08/09(木) 23:48:55これ?
http://suned.sun.co.jp/JPN/certification/sjcadetails.html
みっちり勉強すれば今年中にはとれるかもね
0480デフォルトの名無しさん
2007/08/09(木) 23:59:17ああ、これです。ありがとうございます。頑張ります。
0481デフォルトの名無しさん
2007/08/10(金) 00:12:12そのA.classをコピって自分のアプリの中に入れればいいんじゃない。
そういう問題でもないのかな。
0482デフォルトの名無しさん
2007/08/10(金) 00:40:20jar
0483デフォルトの名無しさん
2007/08/10(金) 01:29:45さしでがましいことをいわせていただきます
この資格確かにPGを長年勤めてきた人間には
難しくはないかもしれませんが、初心者が
いきなりjavaをやってこの資格を取るには結構
ハードルが高いのではないでしょうか?
しかもたぶんこの上司の方もこの資格のこと
あんまりわかってないのでは....
後、資格、資格という企業はブラックなところ
が多いので、気をつけてください。
勉強がんばってください。
0484デフォルトの名無しさん
2007/08/10(金) 02:08:36気力と体力があれば大丈夫だと思う
そうでなければ無理だと思う
0485デフォルトの名無しさん
2007/08/10(金) 02:31:54実行するときにcmdでしますよね?
実行結果をノートパッド等に出力する方法はないですか?
使用用途はイメージとしては縦に1,2,3,4…998,999,1000と表示されるような
プログラムです。
cmdではスペースが足りなく、全て表示されないので困っています。(上でいうと実行後の結果で最初のほうの数字が表示されない)
宜しくお願いします。
0486デフォルトの名無しさん
2007/08/10(金) 02:38:28cmdのプロパティで画面バッファのサイズの高さを2000くらいに設定すれば縦に1000個くらい軽いよ
まあリダイレクトというキーワードでぐぐってみな
0487デフォルトの名無しさん
2007/08/10(金) 03:11:13ありがとうございます!
助かりました!
0488デフォルトの名無しさん
2007/08/10(金) 04:25:05まさか高さの設定の方で済ませたんじゃなかろな?
それでも構いはしないが……
notepadに直接出力ってわけではないが例えばFoo.classを実行するときに
java Foo > log.txt
ってやれば出力がlog.txtに書き込まれる
これをnotepadで開けば出力を見ることができる
既にlog.txtがあれば内容を書き潰すので追加していきたいなら
java Foo >> log.txt
こういうのをリダイレクトという
0489デフォルトの名無しさん
2007/08/10(金) 05:15:35そのSwingアプリケーションと別アプリケーションが同じ計算機内にあるのなら、
普通にメソッド呼び出しすればいい。
ただし、呼ばれる側のクラスやメソッドのアクセス修飾が呼び出し側から呼べるものである必要がある。
別パッケージで継承関係も無いクラスから呼び出すなら呼ばれる側はpublicでないとたぶんだめ。
呼び出し側をコンパイルや実行する際に、
呼ばれる側のクラスファイルがあるディレクトリなりjarファイルなりへクラスパスを通してやれば、
javacやjavaが探し出してくれる。
もし、呼ばれる側がさらに別のクラスに依存している場合は、そのクラスへもクラスパスを通してやる。
異なる計算機間(同一計算機内でもいい)での呼び出しをやるならRMIという技術があるが、
これを使う儀式を煩雑と思うか否かは人それぞれだと思う。
0490デフォルトの名無しさん
2007/08/10(金) 06:07:39って無理だっけ?ログのスクロールアウトをどうにかしたいだけでしょ?
0491デフォルトの名無しさん
2007/08/10(金) 07:02:19java Foo | more
で済む
0492デフォルトの名無しさん
2007/08/10(金) 07:07:16teeはwindowsでは標準装備でないと思うからファイルへ吐き出しつつページャにも回すのは駄目っぽい
もうjavaとは無関係の話だな
というか最初からか
0493デフォルトの名無しさん
2007/08/10(金) 08:08:29teeくらい自分で実装出来るだろ
0494デフォルトの名無しさん
2007/08/10(金) 08:15:340495デフォルトの名無しさん
2007/08/10(金) 11:35:25あまり問題はないのかな。
javaのソースはUTF-8、クライアントから送られてくる情報もUTF-8だけれど。
0496デフォルトの名無しさん
2007/08/10(金) 11:53:37って程度だ。問題があるとしても。
0497デフォルトの名無しさん
2007/08/10(金) 12:12:12専門の課題みたいでワロタw
0498デフォルトの名無しさん
2007/08/10(金) 13:05:532バイト文字使ったトリップ作成ソフト(トリッパーのような)を作るのは
可能かどうかだけでいいのでわかる人教えてください
0499デフォルトの名無しさん
2007/08/10(金) 13:21:34トリップって一時的なIDみたいのを言ってるの?
別に2バイト文字使ったって良いだろうが、"吾糞触"とかへんなのになるんじゃねw
ちなみにこれは #こういう感じ です
今あるフリーソフトだと[a-z][A-z][0-9][記号]なので
それを2バイト文字使って作ることも可能かどうかということなんですが・・・
0501デフォルトの名無しさん
2007/08/10(金) 13:41:000502デフォルトの名無しさん
2007/08/10(金) 13:42:290504デフォルトの名無しさん
2007/08/10(金) 14:07:430505デフォルトの名無しさん
2007/08/10(金) 18:19:40コイツ恥ずかしいなw
0506デフォルトの名無しさん
2007/08/10(金) 20:42:16調べたところ、java1.4だとUNICODE2.0 java1.5だとUNICODE3.0のようですが。
UTF-8とかUTF-16とは別物?
0507デフォルトの名無しさん
2007/08/10(金) 21:37:190508デフォルトの名無しさん
2007/08/10(金) 23:37:08UTF=charencoding
この程度の事を知らんでプログラム組んでる奴が増えたな。
0509476
2007/08/11(土) 01:00:41A.classが実は、UIを操作するクラスなんですよ、つまりA.classがあるアプリの画面の動きを操作するので、
単にA.classをこぴぺするわけにもいかないのですorz
>>489
ありがとうございます。別Swingアプリ(別VM)で動いているのでやはりRMIなんでしょうか。。
他にJMXなるものの存在を知ったのですが、これでクラス操作はできないのかな??
最近のejbみたいにアノテーションで指定するやりかたとかないですよね?・
機能をみたす実装ならできるのですが、より簡単にしたいって思っちゃいまして^^;
0510デフォルトの名無しさん
2007/08/11(土) 01:24:55JMXはアプリケーションやJVMの監視、管理のための仕組みなので多分ちょっと用途が違う。
もちろん、別JVMの情報を受け取れるから、JMXを使って実現できない訳ではないと思うけど。
やるならAクラス側が別アプリを監視してUIを操作する方向になるのかも。意図と逆っぽい。
まあ、他所にあるメソッドを呼ぶのなら文字通りのRMIを使うのが素直ではないかなと思う。
実現の面倒さがあるのはセキュリティの問題もあるし仕方がないことかと。
0511デフォルトの名無しさん
2007/08/11(土) 01:27:410512デフォルトの名無しさん
2007/08/11(土) 05:54:36君の質問はとりぷのアルゴリズム知らない香具師のセリフだよ
0513デフォルトの名無しさん
2007/08/11(土) 06:11:01>>508
なるほど。回答ありがとございます。
まとめると、「unicode表」=「UNICOE(charset)」で
java1.5が管理している文字のメモリーサイズは、1文字当たり16bit〜21bitの可変長と言う認識で合ってますか?
0514デフォルトの名無しさん
2007/08/11(土) 06:30:55というくらい間違っている予感
0515デフォルトの名無しさん
2007/08/11(土) 09:22:52んでたまたま、UTF-32までしか策定されてないだけだったはず。
>1文字当たり
文字じゃなくてコードポイントね。
文字セットの仕組みあたりから勉強した方が早いよ。
0516デフォルトの名無しさん
2007/08/11(土) 16:50:39Java SE 6でコンパイルしたバイトコードは、新たに追加されたクラスやメソッドを
利用していなければ旧JRE(1.3.1、1.4.2等)上で動作させることはできるのでしょうか。
0517デフォルトの名無しさん
2007/08/11(土) 16:54:31新しく追加されたクラスやメソッドを使っていないならば、旧バージョンでコンパイルすりゃいいだろ
一般的に上位互換はされる場合もあるが、下位互換は普通されない
0518デフォルトの名無しさん
2007/08/11(土) 17:03:16javac にオプション指定が必要。
-source 1.3 -target 1.3 とか。
0519デフォルトの名無しさん
2007/08/11(土) 18:44:09swfプレイヤーのような物があるのか
また、exe化したりする方法があるのかは分かりませんが
Javaで作れた物をローカルで使用するにはどうすればよいのでしょうか
0520デフォルトの名無しさん
2007/08/11(土) 18:46:44内部メモリーの話してるんだから、
encodingは関係ないんじゃないですか?
0521デフォルトの名無しさん
2007/08/11(土) 18:56:15JREでぐぐれ
0522デフォルトの名無しさん
2007/08/11(土) 21:30:12String[] testarray = {"A", "B", "C", "D"};
これだとtestarray[3]までしか宣言できませんが、
初期値としてtestarray[100]まで確保しつつ、初期値を
上のように代入するにはどうすればよいのでしょう。
0523デフォルトの名無しさん
2007/08/11(土) 21:34:580524デフォルトの名無しさん
2007/08/11(土) 21:40:25それとは別に、サイズが100の配列を作っておいて、コピーするってのは?
0525デフォルトの名無しさん
2007/08/11(土) 21:40:40String[] temp = {"A", "B", "C", "D"};
for (int i = 0; i < temp.length; i++) {
testarray[i] = temp[i];
}
0526デフォルトの名無しさん
2007/08/11(土) 21:43:154以降がnullでいいならば、
String[] array = new String[100];
array[0] = "A";
もし、""とかで初期化したいならば
Arrays.fill(arrya, "")を使う
ただ、3つしか使わなくて可変な配列を使うってケースならばArrayList使え
0527デフォルトの名無しさん
2007/08/11(土) 22:34:40インスタンス・オブジェクトを生成させるにはどうすればよいのでしょうか?
Cで言う、構造体みたいなものを作るのですか?
また、生成したインスタンス・オブジェクトは、配列でインスタンス管理テーブルのようなものをつくり
管理したいと思っています。
0528デフォルトの名無しさん
2007/08/11(土) 22:41:22Cの構造体→Javaクラス
配列→コレクションorマップ
0529デフォルトの名無しさん
2007/08/11(土) 22:46:09こんな感じ
class Person {
int studentNumber;
String name;
....
}
public class Main {
static void main(String[] args){
Scanner scanner = new Scanner(System.in);
List<Person> people = new ArrayList<People>();
for(;;){
Person person = new Person();
person.studentNumber = scanner.nextInt();
person.name = scanner.next();
...
people.add(person);
}
}
}
0530522
2007/08/11(土) 23:12:18あざーっす
参考になったっす
0531デフォルトの名無しさん
2007/08/11(土) 23:24:410532デフォルトの名無しさん
2007/08/11(土) 23:58:220533デフォルトの名無しさん
2007/08/12(日) 00:20:490534デフォルトの名無しさん
2007/08/12(日) 00:24:180535デフォルトの名無しさん
2007/08/12(日) 01:25:23「いたちまさむね」
0536デフォルトの名無しさん
2007/08/12(日) 06:09:040537デフォルトの名無しさん
2007/08/12(日) 06:12:12ふいんき<--なぜか変換されない(いまやったら連想変換で候補出たw)
0538デフォルトの名無しさん
2007/08/12(日) 07:10:47○ others 他人
0539デフォルトの名無しさん
2007/08/12(日) 07:21:500540デフォルトの名無しさん
2007/08/12(日) 10:04:55→システムの詳細設定 →環境変数
0541デフォルトの名無しさん
2007/08/12(日) 15:00:300542デフォルトの名無しさん
2007/08/12(日) 16:32:30× others
○ the others
○ an other
0543デフォルトの名無しさん
2007/08/12(日) 16:38:01アホか
意味が変わっとるやんけ
0544デフォルトの名無しさん
2007/08/12(日) 16:55:390545デフォルトの名無しさん
2007/08/12(日) 19:16:100546デフォルトの名無しさん
2007/08/12(日) 19:45:44しかも、ラップするだけQueueを実装できるように設計されてる。JCFで。
0547デフォルトの名無しさん
2007/08/12(日) 19:59:01LinkedListをQueueとして使えばいいだろ
0548デフォルトの名無しさん
2007/08/12(日) 20:48:502 /*チャンネル数*/ ,
true /* 符号付きかどうか */ ,
true /* データはビッグエンディアンかどうか */);
AudioInputStream as = new AudioInputStream(new ByteArrayInputStream(data),af, data.length);
AudioSystem.write(as, AudioFileFormat.Type.WAVE, new File("sample.wav"));
↑
こんな感じに書くと(データバッファは十分にあるものとする)、
ちゃんとオーディオデータが sample.wav に吐き出されるんですけど、
なぜかそのファイルは Winamp でしか開けないんです。
サウンドレコーダもメディアプレイヤーもヤマハのTWEも
「ファイルが壊れています」って返してくる。
なぜでしょうか?
0549デフォルトの名無しさん
2007/08/12(日) 21:09:280550デフォルトの名無しさん
2007/08/12(日) 21:13:56どういう意味なのですか?
0551デフォルトの名無しさん
2007/08/12(日) 21:15:330552デフォルトの名無しさん
2007/08/12(日) 21:16:29書いた人に聞いてください。
0553デフォルトの名無しさん
2007/08/12(日) 21:24:08メソッド全部がprivateなクラスってあるの?
0554デフォルトの名無しさん
2007/08/12(日) 21:50:42Listenerとは何ですか?オラクルのListenerならわかるんですが。
0555デフォルトの名無しさん
2007/08/12(日) 21:55:41リスナーは何かイベントが発生したときにその通知を受け取るためのインタフェイス。
コールバック関数みたいなもの。
http://ja.wikipedia.org/wiki/Observer_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3
0556デフォルトの名無しさん
2007/08/12(日) 21:58:290557デフォルトの名無しさん
2007/08/12(日) 22:09:390558デフォルトの名無しさん
2007/08/12(日) 22:48:13インターフェースって中身のないただのメソッドでしょ?
定義されていてどうなるわけなのですか?
0559デフォルトの名無しさん
2007/08/12(日) 22:51:41鍵穴を連想してみて欲しい。
子会社、関連会社の人が
「ふ〜ん、あれ合わせて作ればいいんだぁ」って考える。
0560デフォルトの名無しさん
2007/08/12(日) 23:13:48コンセントの形はどんなメーカーのどんな電化製品も一緒
そんな風に規格だけ用意して中身は勝手に作ってね、使う側はその規格使うから、ってのがインターフェイスの基本
0561デフォルトの名無しさん
2007/08/12(日) 23:14:16ちょっと違うだろwww
>>558
決めごとだよ。
例えば市販車は、ウィンカーがついてないとだめとか
いろいろ決めごとがある。「市販車である」ためには
その決めごとを守っている必要がある。
0562デフォルトの名無しさん
2007/08/12(日) 23:16:49実はインタフェースは必要ないもの。抽象クラスや実装クラスの中身がない空実装でも代用は可能。
でも、インタフェースなら一世代の継承ルールから開放されるし、コンパイル時に実装漏れを検出できる。
でも、やっぱり代用できるから、あまりいらない子。
0563デフォルトの名無しさん
2007/08/12(日) 23:17:51使う側がないと、決め事だけじゃインターフェイスとしての意味は薄くない?
0564デフォルトの名無しさん
2007/08/12(日) 23:20:12その話題は不毛だから止めとけ。
必要がないとなんて書くと荒れるぞ
0565デフォルトの名無しさん
2007/08/12(日) 23:21:21その場合は意味薄いね。
利用するクラスと利用されるクラスとインタフェースを同じ開発者が担当すると
まじイラネ。。
0566デフォルトの名無しさん
2007/08/12(日) 23:21:53具象クラスとインタフェイスだけでいい。
0568デフォルトの名無しさん
2007/08/12(日) 23:23:57「頭悪いな〜」と子会社から苦情がくるww
0569デフォルトの名無しさん
2007/08/12(日) 23:27:24作ったはいいが、警察に厄介になりそうだ
0570デフォルトの名無しさん
2007/08/12(日) 23:53:270571デフォルトの名無しさん
2007/08/12(日) 23:57:05ペダルが3つ付いていればMT車なんだと想像がつく。
2つならAT車だ。これなら運転は出来そうだろ?
ペダルの先のエンジンのベルトがどうなってるか、とかは
利用者は意識する必要がない。
0572デフォルトの名無しさん
2007/08/12(日) 23:59:47一緒で済むならばAtomicXxは追加されないだろ
名前の通り、よく使われるアトミック操作を保証するオブジェクト
volatile int i = 0;
としておけば、
i++
は安全だとか思っているならば、並行処理の基本を学んで来い
0573デフォルトの名無しさん
2007/08/13(月) 00:03:47単純に set と get をするだけなら volatile と同等
それ以外の操作は同等でない
例えば
AtomicLong x;
long y = x.getAndIncrement();
はアトミックに取得・加算ができるが
volatile long x;
long y = x++;
は他のスレッドが割り込む可能性がある
0574デフォルトの名無しさん
2007/08/13(月) 00:09:00え?Javaをはじめて1年になるけど、安全だと思ってました。。。
synchronizedがあればAtomicはいらないということですか?
0575デフォルトの名無しさん
2007/08/13(月) 00:12:38それはそうだけど、synchronized は重い。 atomic の方が軽い。
パフォーマンスを気にしないなら、たしかに atomic も volatile も不要。 synchronized だけ使ってればいい。
0576デフォルトの名無しさん
2007/08/13(月) 00:13:37並行処理 アトミック Javaあたりでぐぐれ
0577デフォルトの名無しさん
2007/08/13(月) 00:17:00それはちょっと違うぞ
AtomicIntを使うと、ソースコードが非常にシンプルになるのが一番の利点
private final AtomicInteger aInt = new AtomicInteger(0);
としてしまえば、それだけでvolatileもsynchronizedも不要になり、同期化に関する色々な問題はAtomicIntegerにカプセル化される
そうすれば、後から怪しいメソッドを追加してしまい、同期化ポリシーが崩れることもない
0578デフォルトの名無しさん
2007/08/13(月) 00:19:21見た目シンプルになったって、atomic は synchronized よりはるかに扱いが難しいと思うのだけれど
0579デフォルトの名無しさん
2007/08/13(月) 00:25:200580デフォルトの名無しさん
2007/08/13(月) 00:55:360581デフォルトの名無しさん
2007/08/13(月) 00:59:19publicでいいやんけ
0582デフォルトの名無しさん
2007/08/13(月) 01:09:240583デフォルトの名無しさん
2007/08/13(月) 01:20:56interface 実装してたりする場合あるし、継承先で振る舞い変わる可能性もある。
中で何も処理しないというだけじゃ無駄かどうかはわからん。
0584デフォルトの名無しさん
2007/08/13(月) 01:22:43追加はパフォーマンスの向上のみを目的としているのではない
0585デフォルトの名無しさん
2007/08/13(月) 01:25:030586デフォルトの名無しさん
2007/08/13(月) 11:24:10DBに対してJDBCを用いてselect文を発行するストアドの呼び出しを行い、
取得した結果を二次元配列に格納しています。
検索対象としているテーブルのカラムはDATE型で、ResultSet#getString(int)を用いて取得しています。
なお、検索結果は常に1件となり、String[]にselect対象のカラムの値を入れて返す共通機能を使用するため、
カラムの値を取得するgetStringをgetDateなどに変更することはできず、
通常のSQLのように日付の取得フォーマットを変更するなどもできません。
DATE型のカラムに対してgetStringを行うと、以下のフォーマットの文字列が取得できる模様です。
yyyy-MM-dd hh:mm:ss.S
このフォーマットはJDBCドライバやDB、OSによって変わったりするものなのでしょうか。
環境:
JDK1.5.0、Oracle10g、JDBCドライバclasses12.zip
どなたかご存知の方がいましたら、何とぞご教示お願い致します。
0587デフォルトの名無しさん
2007/08/13(月) 16:00:16JavaSEのResultSetのAPIドキュメントには何も決めごとが書かれていない。
ということは、ベンダ依存と考えておくのが安全。
0588デフォルトの名無しさん
2007/08/14(火) 00:02:080589デフォルトの名無しさん
2007/08/14(火) 00:09:35Condition -> 1個のロックに対して複数の wait/notify を扱いたいとき。
0590デフォルトの名無しさん
2007/08/14(火) 00:24:35synchronized と wait/notify で記述できないような複雑な並行処理を実装する時に使う
作者も不用意に使うとデッドロックするZEって言ってる
0591デフォルトの名無しさん
2007/08/14(火) 06:34:08僕の考えは間違っていますか?
0592デフォルトの名無しさん
2007/08/14(火) 06:37:120593デフォルトの名無しさん
2007/08/14(火) 11:07:08長さが可変な用途なら可変長が自然
0594デフォルトの名無しさん
2007/08/14(火) 11:33:11どういう点で見やすいと思うのか、サンプルソースでも書け
0595デフォルトの名無しさん
2007/08/14(火) 11:52:130596デフォルトの名無しさん
2007/08/14(火) 14:25:49はtoStringでちょろっと出すことが出来る。まあ、そんなユーティリティクラス作っちゃえば
良いんだろうけどさ。
0597デフォルトの名無しさん
2007/08/14(火) 14:33:300598デフォルトの名無しさん
2007/08/14(火) 19:01:05あまり知られていないようだが
0599デフォルトの名無しさん
2007/08/14(火) 19:27:45C言語なんかはコンパイルしてできたexeをすぐクリックなんかで実行できるけど
javaはコンパイルしてできたクラスファイルをプロンプト上で>java HelloWorldって感じでしか実行できないんだろうか?
javaVM無いと動かないのはわかるがexe出力しないって違和感ありすぎる・・。
0600デフォルトの名無しさん
2007/08/14(火) 19:38:33関連付けされていてダブルクリックで起動する場合もあるが。
ダブルクリックで起動させる方法もあるけど、慣れろとしか言いようがないな
0601デフォルトの名無しさん
2007/08/14(火) 19:45:29環境がWindowsなら、
1.バッチファイルを作成してダブルクリック。
2.jarファイルを関連付けした後、jarファイルを作成してダブルクリック。
0602デフォルトの名無しさん
2007/08/14(火) 19:45:29gcj でネイティブコンパイルしてしまうという方法もないではない
0603デフォルトの名無しさん
2007/08/14(火) 20:17:18実行時オプションがいらないならjarに固める時
マニフェストにMain-Class:hoge追加
それ以外はOS毎にバッチ書く。引数渡せるようにして。
下手にexeでラップされると実行時引数渡せない場合があるので迷惑。
javaはそういう世界。
0604デフォルトの名無しさん
2007/08/14(火) 20:28:420605デフォルトの名無しさん
2007/08/14(火) 22:08:15exeが不自然じゃない世界ってのをまだ知らないだけなんだから
0606デフォルトの名無しさん
2007/08/14(火) 22:38:330607デフォルトの名無しさん
2007/08/14(火) 22:42:02gcjならexe出力するからそれ使え
0608デフォルトの名無しさん
2007/08/14(火) 22:42:280609デフォルトの名無しさん
2007/08/14(火) 22:46:47exewrap
0610デフォルトの名無しさん
2007/08/14(火) 23:14:05lengthが0のString配列はnullですか?
0611デフォルトの名無しさん
2007/08/14(火) 23:16:51> sizeが0のArrayListはnullですか?
no
> lengthが0のString配列はnullですか?
no
0612デフォルトの名無しさん
2007/08/14(火) 23:22:140613デフォルトの名無しさん
2007/08/14(火) 23:24:040614デフォルトの名無しさん
2007/08/14(火) 23:25:050615デフォルトの名無しさん
2007/08/14(火) 23:27:09まあまあ、落ち着いて。
何がnullだと、何をするのに困るのですか?
0616デフォルトの名無しさん
2007/08/14(火) 23:31:27nullだと、もっと困るから。
0617デフォルトの名無しさん
2007/08/14(火) 23:39:250618599
2007/08/14(火) 23:45:33とりあえずgcjを調べてみる。
0619デフォルトの名無しさん
2007/08/15(水) 01:29:31JRE5,6が尋常じゃないほど早くなってるし、一般人には今のPCはオーバースペックだからjavaごとき負担にならんし。
JRE6はさすがにビビッタがレジスタの動的割り当てのおかげ?
0620デフォルトの名無しさん
2007/08/15(水) 02:28:30mainメソッドに数10行のちょっとしたツールを作ったりしたときでも
JVM起動がかかるなぁ。.NET程では無いとは思うんだが
ちょっとストレス。
0621デフォルトの名無しさん
2007/08/15(水) 02:56:08起動に時間がかかるっても、問題になるのは初回起動ぐらい。
一見さんにはその一回が遅いって印象だけしか残らんのだろうけど。
0622デフォルトの名無しさん
2007/08/15(水) 06:22:05別の関数で同じ処理を何回もしてるのは非効率に思えます
0623デフォルトの名無しさん
2007/08/15(水) 06:33:35散弾銃かショットガンでも使えw言ってることわけわからん
0624デフォルトの名無しさん
2007/08/15(水) 06:44:03int, float method(int c){
int a; float b;
cつかって複雑な計算をうにゃうにゃ
結果は二つ
return a, b;
}
pote, mayo = method(123);
みたいにでけたらいいなと
そんな言語がありました
0625デフォルトの名無しさん
2007/08/15(水) 06:51:19ConditionのAPIドキュメントを見たけど、waitやnotityと同じ内容のメソッドしか持ってませんよね。
0626デフォルトの名無しさん
2007/08/15(水) 07:31:47原則として出来ない。
返り血が同じ人であるならば、配列にして返すのが1つの方法
public int[] hoge() {
return new int[] { 1, 2};
}
返り血をデータクラスのフィールドに格納してデータクラスを返す方法
public Result hoge() {
return new Result(1, 2.0);
}
返り血はvoidとし、そのクラスのフィールドに結果を格納する
結果はそれぞれのゲッターで取得
int resultA;
float resultB;
public Result hoge() {
resultA = 1;
resultB = 2.0;
}
0627デフォルトの名無しさん
2007/08/15(水) 07:33:05なんで違法とかw
返値にint,floatってすごいな。それをObjectにして、
返値はObjectのプロパティに設定して返してやればいいじゃん
0628デフォルトの名無しさん
2007/08/15(水) 07:33:06クラスを返せばいいだけ
0629デフォルトの名無しさん
2007/08/15(水) 07:34:370630デフォルトの名無しさん
2007/08/15(水) 07:35:39waitとnotifyでは実現できないもっと複雑な同期をさせたい時に使用する
言い方を変えれば、wait/notifyで実現できるならば使う必要はない
0631626
2007/08/15(水) 07:36:25返り血はvoidとし、そのクラスのフィールドに結果を格納する
結果はそれぞれのゲッターで取得
int resultA;
float resultB;
public void hoge() {
resultA = 1;
resultB = 2.0;
}
0632デフォルトの名無しさん
2007/08/15(水) 07:37:03何でJavaだと前戯したり焦らしたり後戯までご丁寧に
やってやらんといかんのはなぜ?
0633デフォルトの名無しさん
2007/08/15(水) 07:38:35嫌ならばPythonとかRubyとかやればいい
0634デフォルトの名無しさん
2007/08/15(水) 07:39:200635デフォルトの名無しさん
2007/08/15(水) 07:49:140636デフォルトの名無しさん
2007/08/15(水) 07:56:34べつに普通にサクサク書けてますが?
環境がダメダメなんじゃないの?
0637デフォルトの名無しさん
2007/08/15(水) 08:08:15Rubyはオナニー用
0638デフォルトの名無しさん
2007/08/15(水) 09:08:37他にもこんなやついる?
0639デフォルトの名無しさん
2007/08/15(水) 09:53:450640デフォルトの名無しさん
2007/08/15(水) 11:50:07PC起動時にJVMも起動しておけばいいじゃん
1.4ならともかく
0641デフォルトの名無しさん
2007/08/15(水) 14:29:50rubyは別にpythonか関数型言語で同じ事出来るしなぁ。
ハスケルにもOpenGLポートとかSDLポートあるんだぜw
Windowプログラミング可能だw
0642デフォルトの名無しさん
2007/08/15(水) 15:51:460643デフォルトの名無しさん
2007/08/15(水) 16:06:47PetternとMatcherで調べるつもりがうまくいきません。両方とも日本語文字列です。
Pattern pattern = Pattern.compile("(" + kanzi + ")+");
Matcher matcher = pattern.matcher(name);
のようにしているのですが、name == kanziでないとマッチしません。
当方正規表現もJAVAも初心者なのですが、どこが悪いのか教えてください。
よろしくお願いいたします。
0644デフォルトの名無しさん
2007/08/15(水) 16:11:37Mather.maches()ではなくfind()ですね。失礼しました
0645デフォルトの名無しさん
2007/08/15(水) 16:12:34総当たりで1文字づつ調べればいいんんじゃない?
0646デフォルトの名無しさん
2007/08/15(水) 16:14:29単に文字列中に別の文字列が含まれるかどうかならString#contains()で。
name.contains(kanzi)の真偽でチェック。
0647デフォルトの名無しさん
2007/08/15(水) 16:37:26正規表現を使うにしても文字列を含むかどうかを見るだけなんだから+を使う必要はない
それにkanziに正規表現のメタ文字が含まれていた場合
実行時エラーを起こしたり、マッチすべきものにマッチしない、またはその逆になったりする可能性がある
kanziをPatternにコンパイルする前にquoteすべき
Pattern pattern = Pattern.compile(Pattern.quote(kanzi));
0648デフォルトの名無しさん
2007/08/15(水) 19:48:41Matcher matcher = pattern.matcher(name);
0649デフォルトの名無しさん
2007/08/15(水) 19:49:19Matcher matcher = pattern.matcher(name);
0650デフォルトの名無しさん
2007/08/16(木) 06:33:020651デフォルトの名無しさん
2007/08/16(木) 11:26:55独学で始めて2ヶ月経ちます。
クラス・コンストラクタ・メソッドをはじめ、ループや配列に関して理解できました。
この先ですが、それぞれの分野に分かれました。
アプレットやサーバーサイド、データベースなどの分野なのですが、
これから就職するにあたってどの方向に進むのがいいでしょうか。
あと1つ言語を習得したいと思っています。
現代での必要性や求職率、給与などを考慮して考えたいので、
よろしくお願いします。
0652デフォルトの名無しさん
2007/08/16(木) 11:28:540653デフォルトの名無しさん
2007/08/16(木) 12:30:020654デフォルトの名無しさん
2007/08/16(木) 15:18:16辰巳の方向へ。
0655デフォルトの名無しさん
2007/08/16(木) 15:20:360656デフォルトの名無しさん
2007/08/16(木) 15:39:41とりあえずCとC#やったら?
Javaと言語仕様が似てるからこの二つを学ぶには似てない一つの言語を学ぶくらい労力で済む
DBやるならSQLは必須
0657デフォルトの名無しさん
2007/08/16(木) 17:57:04全部やっとけ
0658デフォルトの名無しさん
2007/08/16(木) 19:47:01>>657 だいたいから選り好みしてる場合じゃないだろ
仕事でやるんだぞ。全部できた方がいいに決まってるじゃないか。
というかそれくらいの意気込みがなくて自分のテリトリを守るだけの
人材は高給では求められてませんよ。
あと一つの言語は>>653で間違いない。
英語ドキュメント避けては過ごせません。
0659デフォルトの名無しさん
2007/08/16(木) 23:18:29以下のような Example クラスがあります。
�@ isHalfSizeCharacter メソッドを作成して、sample フィールドを isHalfSizeCharacter メソッドを使用した
結果をコンソールに出力するようにしてください。
�A isHalfSizeAlphaCharacter メソッドを作成して、sample フィールドを isHalfSizeAlphaCharacter メソッドを
使用した結果をコンソールに出力するようにしてください。
public class Example {
private static final String sample = "abcdefghijklmnopqrstuvwxyz1234567890";
public static void main(String[] args) {
System.out.println("sample = " + sample)
System.out.println("�@ 文字列 sample は全て半角文字です。");
System.out.println("�@ 文字列 sample は全て半角文字ではありません。");
System.out.println("�A 文字列 sample は全て半角英字です。");
System.out.println("�A 文字列 sample は全て半角英字ではありません。");
}
// 引数 value が全て半角文字の場合、true を返します。
// 但し、引数 value が未設定の場合、false を返します。
private boolean isHalfSizeCharacter(String value) {
}
// 引数 value が全て半角英字の場合、true を返します。
// 但し、引数 value が未設定の場合、false を返します。
private boolean isHalfSizeAlphaCharacter(String value) {
}
}
どなたか答えてもらえる方はいませんか?
0660デフォルトの名無しさん
2007/08/16(木) 23:29:53練習問題なんだから、その前にヒントがあるんじゃないか?
方法を問わず解くことに意味があるのだろうか…
0661デフォルトの名無しさん
2007/08/16(木) 23:39:150662デフォルトの名無しさん
2007/08/16(木) 23:41:49すみません。ごもっともな意見だと思います。
しかし、今日ずっと考えてもどう回答していいか分からずいます。
この練習問題は教材からではなく先輩に出題された問題なのでヒントもなくて・・・
回答ではなくても、何かヒントをいただければ助かります。
0663デフォルトの名無しさん
2007/08/16(木) 23:44:00すみません。マナー不足で同じことを違う板でも書き込みしてしまいました。
0664デフォルトの名無しさん
2007/08/17(金) 00:01:51・引数 value が未設定ってのはNULLでいいの?
・半角文字ってのは半角英数字って事?
0665デフォルトの名無しさん
2007/08/17(金) 00:19:01日付が変わったからか、それとも別のトコで答えてもらったのかな(まあ、10分くらいで分る内容ではある)。
0666デフォルトの名無しさん
2007/08/17(金) 00:25:40>・引数 value が未設定ってのはNULLでいいの?
>・半角文字ってのは半角英数字って事?
引数に関しての質問は、私もよく分かりません。
半角文字に関しても、問題に半角文字と半角英字とあり私もちょっと分かりずらく
はっきり答えられません。
問題を見て感じたまま答えてもらえれば、かまいません。
違かったとしても答えへのヒントになりますので。
0667デフォルトの名無しさん
2007/08/17(金) 00:29:35返信送れてすみません。更新しないでレス見てしまっていたので。
0668デフォルトの名無しさん
2007/08/17(金) 00:33:52半角文字の定義をしてください。JIS規格では半角文字、全角文字は定義されていません。
Unicode でも U+FF00〜U+FFEF のHalfwidth and Fullwidth Forms
の区間以外は全角/半角の区別が付きません。
とか教師に言ってみると良いかも。ぶん殴られる可能性もあるけど。
0669デフォルトの名無しさん
2007/08/17(金) 00:38:56今回の問題では
半角文字は↓
abcdefghijklmnopqrstuvwxyz1234567890
全角文字は↓
abcdefghijklmnopqrstuvwxyz1234567890
の定義でかまいません。
0670デフォルトの名無しさん
2007/08/17(金) 00:41:46public class Example {
private static final String sample = "abcdefghijklmnopqrstuvwxyz1234567890";
public static void main(String[] args) {
System.out.println("sample = " + sample);
if(isHalfSizeCharacter(sample)){
System.out.println("�@ 文字列 sample は全て半角文字です。");
}else{
System.out.println("�@ 文字列 sample は全て半角文字ではありません。");
}
if(isHalfSizeAlphaCharacter(sample)){
System.out.println("�A 文字列 sample は全て半角英字です。");
}else{
System.out.println("�A 文字列 sample は全て半角英字ではありません。");
}
}
// 引数 value が全て半角文字の場合、true を返します。
// 但し、引数 value が未設定の場合、false を返します。
static private boolean isHalfSizeCharacter(String value) {
if(value==null) return false;
return value.matches("[a-zA-Z0-9]+");
}
// 引数 value が全て半角英字の場合、true を返します。
// 但し、引数 value が未設定の場合、false を返します。
static private boolean isHalfSizeAlphaCharacter(String value) {
if(value==null) return false;
return value.matches("[a-zA-Z]+");
}
}
0671デフォルトの名無しさん
2007/08/17(金) 00:44:56std::stringにもMFCのCStringにもC#のStringにもあるのにおかしいじゃないですか!
0672デフォルトの名無しさん
2007/08/17(金) 00:46:33こんな短時間で答えてくれてありがとうございます。
自分の未熟さを感じつつも、がんばります。
今日はこの回答を元にどうなってこうなったのかを教材を見ながら
考えたいと思います。
本当にありがとうございました。
0673デフォルトの名無しさん
2007/08/17(金) 01:03:381.6にはあるよ。
でも str.length() == 0 で代用できるシロモノだし、
互換性考えると 1.6以降でしか使えない isEmpty() はぶっちゃけ無くても構わない。
0674デフォルトの名無しさん
2007/08/17(金) 02:48:240675デフォルトの名無しさん
2007/08/17(金) 02:50:280676デフォルトの名無しさん
2007/08/17(金) 02:55:48wikiを見てもまだ理解が出来る次元ではないので少しお邪魔します。
理由は、ゲームを作りたいからという動機なのでお仕事でやってる方には申し訳ないと思いますが
初心者歓迎の文字を見て入らせていただきました。
(ソフトはiαppliTool DoJa-3.5を使っております)
現在iアプリを作成中で、音楽を鳴らしているのですが音量を再生する場合に
SoundPlayer.playTrackSound( 0, 0, 100 ); //トラック,リピート,音量(100max)
と、置いているのですが、音量を変える時にソフトキーから切り替えで
Int volを作りvolに数字を代入して
SoundPlayer.playTrackSound( 0, 0, 100 - vol);
としたところ、音楽が最初から再生されてしまいました。
これを現在流していたところまでの音楽から音量を途中で切り替わるようにしたいのですが
どうしたら良いでしょうか、説明不足でしたら申し訳ございません。
どうか宜しくお願いします。
0677デフォルトの名無しさん
2007/08/17(金) 03:01:45その質問はこっちでどうぞ
http://pc11.2ch.net/test/read.cgi/tech/1174036396/
0678デフォルトの名無しさん
2007/08/17(金) 03:05:44大変失礼いたしました
0679デフォルトの名無しさん
2007/08/17(金) 05:49:43String str = new String();
System.out.println(str.length() == 0);
System.out.println(str.equals(""));
System.out.println(str == "");
0680デフォルトの名無しさん
2007/08/17(金) 06:09:54String str = "";
System.out.println(str.length() == 0);
System.out.println(str.equals(""));
System.out.println(str == "");
0681デフォルトの名無しさん
2007/08/17(金) 06:18:330682デフォルトの名無しさん
2007/08/17(金) 06:25:00true
true
false
>>680
true
true
true
0683デフォルトの名無しさん
2007/08/17(金) 06:31:59> String に == は使うな。equals() を使え。
0684デフォルトの名無しさん
2007/08/17(金) 06:54:27String fuga = "HOGE";
System.out.println(hoge.toUpperCase() == fuga);
0685デフォルトの名無しさん
2007/08/17(金) 07:01:190686デフォルトの名無しさん
2007/08/17(金) 07:38:04s.append("abc");
s.append("def");
s.append("ghi");
System.out.println(s.toString() == "abcdefghi");
0687デフォルトの名無しさん
2007/08/17(金) 10:03:54失敗する可能性のある方法をわざわざ採る必要はない。
たしかに空文字列を作るのにnew String()を使うことはそんなにないかもしれんが、
演算の結果strが空文字列になることはよくあるだろうから、
空文字列の判定をstr==""でやってしまうのは拙い。
どうしても==を使いたいのなら、
str.intern() == "" とかでStringプールに登録されているもの同士で比較すればいいんだが、
どんな場合でもお勧めとは言いたくないな。
0688デフォルトの名無しさん
2007/08/17(金) 12:48:02と表示させるやつを進めてたら
'org.eclipse.jdt.internal.ui.wizards.OpenProjectWizardAction' クラスを
ロードできなかったため、アクションが実行できませんでした。
とエラーがでたのですがよくわかりません^^;
わかる方教えてください、お願いしますm(__)m
0689デフォルトの名無しさん
2007/08/17(金) 16:14:31public void writeFile(String path) throws Exception {}
public void readFile(String path, boolean modeAdd) throws Exception {}
public void writeFile(String path, boolean modeAdd) throws Exception {}
という使い方はあるのでしょうか?ググってもでてきません。
使い方があるならどういう風に使うのでしょうか?
サンプルコードなんかがあればうれしいです。
0690デフォルトの名無しさん
2007/08/17(金) 16:22:280691デフォルトの名無しさん
2007/08/17(金) 16:41:20BufferedReader = …
って感じの書き出しばかりなんですが、
public void readFile(String…
と置き換える事ができるのでしょうか?
良くわかっていないので的外れならすいません。
0692デフォルトの名無しさん
2007/08/17(金) 16:47:24クラスも言明せずに、何かのメソッドのシグニチャだけを提示して、
「という使い方はあるのでしょうか?」って聞いて何を求めているんだ?
0693デフォルトの名無しさん
2007/08/17(金) 17:00:02もしかして、あるクラスかインタフェースでreadFileやwriteFileがabstractで宣言されていて、
それを継承もしくは実装したクラスで、とりあえずそのメソッドを空実装する使い方をしているってこと?
{}があるし。
もしそうなら、そのメソッドを持つクラスのインスタンスを得るために、
readFileやwriteFileを実装しないといけないが、別に何もする必要がない時にそういう書き方をする。
0694423
2007/08/17(金) 17:14:18何を知りたいのかサッパリつたわらない。
どういう条件下で何をする必要があるのかを書きましょう。
アプレットなどでない限り、main からじゃないとプログラムは始められ
ない。
0695デフォルトの名無しさん
2007/08/17(金) 17:17:10>>693さんのいう通り継承したクラスで空実装する使い方をするという事です。
(自分が良く分かってないのでそういう事だと思います。)
>>693さん
もしそうなら、そのメソッドを持つクラスのインスタンスを得るために、
readFileやwriteFileを実装しないといけないが、別に何もする必要がない時にそういう書き方をする
例えばどんなふうに実装するのでしょうか?
0696デフォルトの名無しさん
2007/08/17(金) 17:29:07それとも何かする必要があって空実装でなくしたいって意味?
0697デフォルトの名無しさん
2007/08/17(金) 17:29:51根本的に何も分かっていなさそうなので
今勉強に使っている本をもう一度読み直すことを提案します。
全然会話ができません。
0698デフォルトの名無しさん
2007/08/17(金) 17:35:310699デフォルトの名無しさん
2007/08/17(金) 17:48:04出直してきます。
0700デフォルトの名無しさん
2007/08/17(金) 18:31:58当然 remove(int) と remove(Object) が衝突するんですが、
どうすればいいんですか?
0701デフォルトの名無しさん
2007/08/17(金) 18:37:280702デフォルトの名無しさん
2007/08/17(金) 18:38:42ループの中から削除するときはiteratorつかえ
0703デフォルトの名無しさん
2007/08/17(金) 18:39:33えーっと・・・ちゃんと試してから言ってる?
0704デフォルトの名無しさん
2007/08/17(金) 18:48:48アレイリスト?
アイがイント型なら必ずリモーブ(イント)が呼ばれると思われます。
0705デフォルトの名無しさん
2007/08/17(金) 18:57:04あほすぎてワロタ
0706デフォルトの名無しさん
2007/08/17(金) 19:04:570707デフォルトの名無しさん
2007/08/17(金) 20:22:00そっちこそ試してないだろ?
このケースでは、remove(i)では必ずi番目が削除される
0708デフォルトの名無しさん
2007/08/17(金) 21:25:19個人で開発って無理なんですかねぇ。
0709デフォルトの名無しさん
2007/08/17(金) 21:58:560710デフォルトの名無しさん
2007/08/17(金) 22:01:250711デフォルトの名無しさん
2007/08/17(金) 22:03:450712デフォルトの名無しさん
2007/08/17(金) 22:09:22C#だとinternal。C++だと使い方は異なるがfriend。
そういえば名前が付いてなかったな。
0713デフォルトの名無しさん
2007/08/17(金) 22:10:500714デフォルトの名無しさん
2007/08/17(金) 23:27:04いわゆるpackage private。
同じパッケージ内からだけは見えるけど、別のパッケージからだと、
サブクラスからも継承関係のないクラスからも見えない。
0715デフォルトの名無しさん
2007/08/17(金) 23:40:510716デフォルトの名無しさん
2007/08/17(金) 23:51:14ディフォルトスコープは使ったことないあるよ
0717デフォルトの名無しさん
2007/08/18(土) 01:15:08あと、ないかあるかどっちなん
0718デフォルトの名無しさん
2007/08/18(土) 01:29:260719デフォルトの名無しさん
2007/08/18(土) 01:35:57package privateがデフォルトになってるのはどうして?という疑問だと思うな。
現在の使用頻度から言えばprivateをデフォルトにするのが妥当じゃないかと。
Javaを作った当時はpackage privateを中心に使うような見通しがあったのだろうか。
0720デフォルトの名無しさん
2007/08/18(土) 01:37:55651さん同様なのですが、今までJavaだけやるつもりがいつのまにかsql、xml、html等をかじりつつここまできました。
さらにはスクリプティング言語を知る必要を感じ、今javascriptをやりかけています。
もう空中分解しそうですが、それでもここであげてる言語はマストに思えます。
ただ、そこで教えてもらいたいのですが、みなさんの好みのスクリプティング言語は何でしょうか?
特にjavaとともに使うに便利なのがいいとは思いますが、python、ruby、perl、PHP、なにから始めるのがいいのかもうわやで。
0721デフォルトの名無しさん
2007/08/18(土) 01:44:59本当の好みは別にあるが、groovy
でも、こういう話題を振ると宗教論争になって罵詈雑言のレスだけが残って終ることが多い
0722デフォルトの名無しさん
2007/08/18(土) 02:42:09レスありがとうございます。知らない言語でした。答えてもらえてgroovyですw
調べてみたいと思います。
>>こういう話題を振ると宗教論争になって罵詈雑言のレスだけが残って終ることが多い
これもそんなこととは知らずにいまして。
ただ、なぜそうなるかは今は少しわかるような気がします。
0723デフォルトの名無しさん
2007/08/18(土) 04:37:14たぶん、短いサンプルコードとかを書くときに package private だと便利だからじゃね?
0724デフォルトの名無しさん
2007/08/18(土) 06:09:06隠すなら徹底的に隠す、公開するなら全てに対して公開する、一部のクラスにのみアクセス
させたいのであれば他の方法もあるし(面倒だろうけど)。
設計やコーディングの簡略化以外のメリットってあるのかしら?
同一パッケージ内であれば関係ないオブジェクトにまで情報だだ漏れというのが個人的にいや。
0725デフォルトの名無しさん
2007/08/18(土) 06:12:470726デフォルトの名無しさん
2007/08/18(土) 06:35:17perl厨、ruby厨、xmlもろくに理解してないのに批判だけする反xml集団とかバズワードを信じるajax教徒VSecma-262一派とかの全面戦争の事か。
0727デフォルトの名無しさん
2007/08/18(土) 06:42:07VS ECMA-262ね
0728デフォルトの名無しさん
2007/08/18(土) 07:55:000729デフォルトの名無しさん
2007/08/18(土) 07:59:340730デフォルトの名無しさん
2007/08/18(土) 10:11:260731デフォルトの名無しさん
2007/08/18(土) 10:36:47パッケージの堀り方で何とかならんか?
0732デフォルトの名無しさん
2007/08/18(土) 12:27:08全部publicだったり可視性は全然気にしないOOPは普通にある。
Delphiのprivateはモジュール(Unit)内privateだった。
ところでC++式のfriendを支持してる言語は見かけないね。
必要なメタ情報も増えるし、やはりやりすぎと思われてるのだろうか。
0733デフォルトの名無しさん
2007/08/18(土) 13:25:350734デフォルトの名無しさん
2007/08/18(土) 17:09:46同一パッケージに関係ないクラスを置くなって話なのでは?
0735デフォルトの名無しさん
2007/08/18(土) 18:57:12friend関数・friendクラス、濫用しなければ本当に便利だと思うんだけど……
0736デフォルトの名無しさん
2007/08/18(土) 21:00:20実装より先にフォーマット仕様書だせやゴルァ!!
RSD
ttp://dev.zeraweb.com/rsd-initial-announcement/
0737デフォルトの名無しさん
2007/08/19(日) 00:40:37public class abcd {
public static void main(String[] args){
int a = 0;
while(a<100){
int n =(int)(Math.random()*13+1);
a+=n
}
System.out.println(a);
}
}
トランプゲームについての確率の課題研究をやっているのですが、
ここではトランプの山札を
int n = (int)(Math.random()*13+1);
と、いわば「1〜13までのカードが無限にある山札」にしています。
この山札を有限なものにしたいのですが、(Aを引いたら山札にAは三枚しかないみたいな)
どのような方法をとればよいでしょうか?
0738デフォルトの名無しさん
2007/08/19(日) 00:43:430739デフォルトの名無しさん
2007/08/19(日) 00:50:20コレクションにトランプの札を詰めておいて、そこからランダムに
removeするとかどうでしょう。
0740デフォルトの名無しさん
2007/08/19(日) 01:00:51文句は作者に。
実装をもって仕様とする場合もあるし。
リファレンス実装が通せば正しいフォーマットとみなす、みたいな。
0741デフォルトの名無しさん
2007/08/19(日) 02:18:40発想を逆にする事できんかね?
先に有限個の山札用意しろ
シャッフルはCollections.shuffle を使え
0742デフォルトの名無しさん
2007/08/19(日) 02:48:41環境を整えたつもりなのですがprintfメソッドが使えず困っています。
ソース
System.out.printf("%8.4f",k[i][j])
エラー文
PrintStreamのメソッドprintf(String,object[])は引数(String,double)に適用できません
コンパイルができていません。
どなたか詳しい方が居られましたらご助言お願いいたします。
0743デフォルトの名無しさん
2007/08/19(日) 03:04:37・JRE/JDK1.5以上が導入されているかどうか
・Eclipseのプロジェクトの設定で1.5以上が指定されているか
をチェック
0744デフォルトの名無しさん
2007/08/19(日) 03:05:40以下のように
クライアント 1を送信→ サーバー(1を受信したらなんらかの処理を行う)
クライアント 2を受信← サーバー(1の処理が終わったので2を送信)
クライアント 3を送信→ サーバー(上同様)
クライアント 4を受信← サーバー(上同様)
と順番にメッセージのやりとりするプログラムを作ったのですが、
なんらかの理由でクライアント側で2を受信できなかった場合、
クライアントは2を待ち続け、サーバー側は2を送信したものと思って
次の3が届くまで待ち続けるといった状態になってしまいます。
socket通信を紹介してるサイトを見ると、そういった制御を行ってるサンプルがなかったのですが
通常、なんらかの理由で通信データが送られなかった場合の再送なり独自の処理って組み込むものなんでしょうか??
上の例だと、クライアント側が、待ってても2を受信しないので、1を再送。
サーバー側は3が届くものだと待ってたら再び1を受信したので、1を受信した処理は行わず、2を再送信。
これら複数回再送しても、結果を受信しなかった場合、通信に失敗したという後処理を行う。
といった具合に、色々なケースを考えると複雑になりそうです。
また、サーバー側のリソースの消費などを考え、同時実行数の制御などなど、考えると色々制御が必要になりとても苦労しそうです。
通常、業務で使うようなプログラムを作る際、上のような場合を考慮した設計、実装を行う必要がありそうですが
そういった仕組みを紹介してるサイトが見つからず、そもそもそんな面倒なこと考えなくても、○○を使えば万事OKとなる、魔法のクラスや処理でもありますでしょうか。
他にsocketに詳しくもわかり易いサイトや書籍がありましたら教えてくださいm(_ _)m
0745デフォルトの名無しさん
2007/08/19(日) 03:07:29まずは通知するものなんじゃ
0746デフォルトの名無しさん
2007/08/19(日) 03:08:19System.out.printf("%8.4f",k[i][j])
を
System.out.printf("%8.4f",(Double)k[i][j])
というようにキャストじゃだめ?
0747デフォルトの名無しさん
2007/08/19(日) 03:11:27ですよね。。そういったやりとりも十分考えないとだめですよね。。
0748デフォルトの名無しさん
2007/08/19(日) 03:13:38お早い回答をありがとうございます。
jdkは導入済みだったので安心しきっていたら
コンパイラの準拠レベルが1.4のままでした><
直したところプログラムも動作するようになりました。
ありがとうございました。
0749デフォルトの名無しさん
2007/08/19(日) 05:03:14普通はタイムアウトさせて再送する。
ただし、1,2,3,4の順序に強く依存するのであれば、そういうプログラム設計自体を
見直すべき。
手順が狂ったら必ず最初からやり直すようなルールにしておく方が安全。
それが出来ないなら状態に応じて複雑な分岐になるのは仕方がない。
0750デフォルトの名無しさん
2007/08/19(日) 05:32:40TCPだったら、届かなかったパケットの再送とか自動的にやってくれるから、基本的に気にしない
UDPだったら、749の言うとおり
0751デフォルトの名無しさん
2007/08/19(日) 06:15:20ありがとうございます。何とかできそうです。
0752デフォルトの名無しさん
2007/08/19(日) 07:23:47IPが抜けてるぜ!
IPの場合送りはするが送るだけなので届く保証も届いた確認もできないw
ネタだ気にするな。
まあ、大昔はTCPとIPは別々に考えてたけど・・・。
TCPで実装されたHTTPがIP使ってるから今じゃ切り離せないよね。
じじいにしか分からん話だが・・・λ,.,.,.
0753デフォルトの名無しさん
2007/08/19(日) 11:02:35そんなのJavaで扱えるの?
0754デフォルトの名無しさん
2007/08/19(日) 16:21:00ありがとうございます。
再送は考えなくてもよさそうですね。
タイムアウトしたら、処理を中断させ後処理させるようにしようと思います。
0755デフォルトの名無しさん
2007/08/19(日) 18:07:310756デフォルトの名無しさん
2007/08/19(日) 18:31:170757デフォルトの名無しさん
2007/08/19(日) 19:04:440758デフォルトの名無しさん
2007/08/20(月) 09:07:31setSoTimeoutメソッドあるじゃん。JDK1.1からのやつだし。
0759デフォルトの名無しさん
2007/08/20(月) 15:43:59[Alt+A]を割り当てたいのですがMenuShortcutでの実現方法が分からなかったのでKeyEventで実現しました。
もちろん項目名の右に[Alt+A]は表示されません。
MenuShortcutで[Alt+A]の割り当て方
もしくはMenuItemの右に[Alt+A]と表示させる方法をご存知でしたら教えて下さい。
0760デフォルトの名無しさん
2007/08/20(月) 18:07:36class Sample extends Thread {
public void run() {
if() {
// エラー終了
}
// 正常終了
}
}
class Main {
public static void main(String[] args) {
Sample thread = new Count();
thread.run();
// スレッドの終了状態によって処理が分岐
}
}
スレッドのrunメソッドの終了によってmainの処理を分岐したいんですが
何か方法はあるんでしょうか?
試しに「public int run() {}」にしたらエラーがでて詰まっちゃいました。
0761デフォルトの名無しさん
2007/08/20(月) 18:08:25Sample thread = new Sample(); でした
0762デフォルトの名無しさん
2007/08/20(月) 18:44:09bool ret;
public void run() { ...; ret = true; }
:
thread.run();
thread.join();
if (ret) { } else { }
0763デフォルトの名無しさん
2007/08/20(月) 18:45:090764デフォルトの名無しさん
2007/08/20(月) 18:58:39run()を直接呼んだ方が早いね。
0765デフォルトの名無しさん
2007/08/20(月) 19:11:52スレッドの意味なくね?
0766デフォルトの名無しさん
2007/08/20(月) 19:12:53この例だと意味がないと思うけど、並行処理かける時に便利。
class Sample extends Thread() {
private final BlockingQueue quue =new LinkedBlockingQueue();
public void run() {
// 処理
quue.offer(result);
}
public static void main() {
Sample sample = new Sample();
sample.start();
result = sample.take();
}
}
0767デフォルトの名無しさん
2007/08/20(月) 19:13:480768デフォルトの名無しさん
2007/08/20(月) 19:21:55スレッドがいくつかあってそのどれか一つが結果をよこすって時は使えそうだけど
でもまあこれは終了状態だけっぽいし他のスレッドと競合する内容でもなさそうだしな……
0769デフォルトの名無しさん
2007/08/20(月) 19:31:38生産者−消費者のパターンがwait使わずに実装できるので便利だぞ、と
0770デフォルトの名無しさん
2007/08/20(月) 20:25:25SwingのJMenuItemならsetAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, Event.ALT_MASK, false))
でできるけど、AWTだと無理みたいだな。
Toolkit.getMenuShortcutKeyMask() が AWT のメニューショートカット用の
アクセラレータキーらしいので、何とかしてこのメソッドがCtrl以外を返すように
オーバーライドするとか?
0771デフォルトの名無しさん
2007/08/20(月) 23:24:480772デフォルトの名無しさん
2007/08/21(火) 00:20:13いや、使ったことないんだけどね。
使ったひと使い心地教えて。
0773772
2007/08/21(火) 00:32:37class Sample implements Callable<Integer> {
public Integer call() {
if() {
// エラー終了
}
// 正常終了
}
}
class Main {
public static void main(String[] args) {
FutureTask<Integer> future = new FutureTask<Integer>(new Sample());
new Thread(future).start();
// ...
int result = future.get();
// スレッドの終了状態によって処理が分岐
}
}
0774デフォルトの名無しさん
2007/08/21(火) 06:54:34便利だよ
new Thread(future).start();
は嘘だけど
Executors.newSingleThreadExecutor().submit(new Smample());
てな感じ。
この戻り値がFutureTaskで getしない限りはブロックされない
後、callは例外を処理できたり、キャンセルとかの仕組みが実装されているのがめちゃくちゃ便利
0775デフォルトの名無しさん
2007/08/21(火) 08:07:330776デフォルトの名無しさん
2007/08/21(火) 10:39:21try{
throw new Exception();
}catch(Exception e){
throw e;
}finally{
/* ほげほげ */
}
上記で、ほげほげの部分は必ず実行されるのですか?
0777デフォルトの名無しさん
2007/08/21(火) 11:12:57コメントアウトされてるから実行されたら拙いだろ
0778デフォルトの名無しさん
2007/08/21(火) 11:40:44System.exit したときとか
0779デフォルトの名無しさん
2007/08/21(火) 13:24:32try節の仕組みとして、catchされる例外発生の有無に関わらず、
finally節は実行されます
制御はテストコードを書いて試してみると簡単で面白いですよ
まあ、条件の切り分けが出来ていないと、さらに理解を悪化させるか…
0780デフォルトの名無しさん
2007/08/21(火) 13:33:50System.exit したときとか
0781デフォルトの名無しさん
2007/08/21(火) 14:03:470782デフォルトの名無しさん
2007/08/21(火) 18:54:33必要に応じてしなければダメ
0783デフォルトの名無しさん
2007/08/21(火) 19:29:37スレッドAはあるメソッドにより時間のかかる計算をするもので、
計算が終わったらその結果を反映させるものとします。
スレッドAの計算中にスレッドBが開始された場合にスレッドAの計算が
直ちに例外を投げるようにするためにはどうしたらよろしいでしょうか?
イメージはこんな感じです。
public class Compute implements Runnable {
public void run() {
int value = compute();
}
priavte int compute() {
//計算結果を返す
}
}
Thread a = new Thread(new Compute());
try {
a.start();
} catch (Exception e) {
// スレッドaのcompute()が実行中にスレッドBが開始された場合
}
0784デフォルトの名無しさん
2007/08/21(火) 19:49:40スレッドのキャンセル機構にはinterrupt使うといいよ
computeの中に何回もループしてるところがあったらそこでisInterrupted調べてtrueなら計算をやめる
0785デフォルトの名無しさん
2007/08/21(火) 20:06:13例外投げたとしても、スレッドBも起動したスレッドもそれを知ることはできないぞ。
単純に後発を優先させたいだけなのかね。
0786デフォルトの名無しさん
2007/08/21(火) 20:11:53そういうことです。計算結果が出るまでAは副作用を生じないので、Bを優先してAを破棄したいのです。
0787デフォルトの名無しさん
2007/08/21(火) 20:19:37普通は先行して計算しているAを優先して、Bは計算結果が出るまでブロックさせるのが筋かと思う。
キャンセルを実装したいのであれば、ExecutorServiceのFutureTaskを使う方が簡単な事が多い。
1.4系で実現するのであれば、実行中のAにinteruptフラグをフィールドに持たせる。
キャンセルしたい場合はそのフラグを立てる
計算途中にフラグを確認するようにして、フラグが立っていたならばInterrupttedExceptionをthrowする。
この時、Thread,interupped()を呼ぶように。
0788デフォルトの名無しさん
2007/08/21(火) 20:22:41根本的にスレッド処理理解してない。
Thread a = new Thread(new Compute());
try {
a.start();
} catch (Exception e) {
// スレッドaのcompute()が実行中にスレッドBが開始された場合
}
これは絶対に実現不可能。
このスレッドはstart()したらそのまま処理進むって意味解る?
割り込みたいだけならば783だけど、例外を受ける事は無理
0789デフォルトの名無しさん
2007/08/21(火) 20:35:52start()はメインスレッドとは別のスレッド(そこではa)を開始して終了してからstart()以下が実行されると思っていましたが、
start()した時点で別のスレッドと同時にstart()以下が直ちに実行されるということでよろしいでしょうか?
0790デフォルトの名無しさん
2007/08/21(火) 20:41:01レスありがとうございます。
質問の意図が不明確ですみません。
catch節内で例外をthrowしても、その後のfinally節が実行されるかどうかが知りたいです。
0791デフォルトの名無しさん
2007/08/21(火) 21:24:37マルチスレッドという意味を理解しよう
a.start() で終わるまでまっているとしたらば、結局はa.compute() を呼んでいる事と同じでしょう。
2chに書き込みながらMP3を聞いているとして、2chに書き込み終わるまで音楽が止まっているのと一緒
同時に動いているんだから、開始しろって命令するだけで、後は独立して勝手にやっているんだよ。
逆に勝手にやっているもんだからキャンセルしたり、同期取ったりという方が難しい。
0792デフォルトの名無しさん
2007/08/21(火) 21:40:160793デフォルトの名無しさん
2007/08/21(火) 21:41:41そして、いつまでたってもさっぱり解らない
0794デフォルトの名無しさん
2007/08/21(火) 21:45:20public class ReversiApplet extends JApplet {
public void init() {
for (;;) {
(new JFrame()).setVisible(true);
}
}
}
0795デフォルトの名無しさん
2007/08/21(火) 21:47:080796デフォルトの名無しさん
2007/08/21(火) 21:47:35ここって質問・相談スレッドですよね?純粋な質問のつもりなんですが・・・。それでもスレ違いというならすいません。具体的にどのスレッドに書けばいいのでしょうか?
0797デフォルトの名無しさん
2007/08/21(火) 21:50:590798デフォルトの名無しさん
2007/08/21(火) 21:51:34それともHTMLに細工がしたいのか?
PCに常駐するウィルスみたいなもんを作りたいのか?
やりたい事がさっぱりわからんし、どれもJavaの範囲じゃない
0799デフォルトの名無しさん
2007/08/21(火) 21:54:11>>794
ある特定のサイトにこれをおいておけって話だ。
まあ、フィルタリングソフトを作りたいってなら
あと、1から10まで教える暇も気もないので簡単に。
・ローカルで動くProxyソフトとして実装するののが楽だろう
・IE、その他のブラウザのProxy設定をする必要はある
・Proxyとして振る舞うソフトを書く
これで意味が分からなかったらJava以前の問題なので
ネットワーク関係の勉強をしてください。
0800デフォルトの名無しさん
2007/08/21(火) 21:59:30ご丁寧にありがとうございます。どうやらまだまだネットワークの知識が足りないようです。もしかするとJAVAだけではダメなのかも・・・。親切に答えてくれた方ありがとうございました。
0801デフォルトの名無しさん
2007/08/21(火) 22:55:35メインスレッドが終わらないから実行はユーザーがブラウザ終了するまで続きそうだが。
どっちにしても全くjava関係ないよね。ルータかなんかにパレントコントロール機能くらい付いてなかったけ?
0802デフォルトの名無しさん
2007/08/21(火) 23:01:05GCされるのは参照で実体はフレームが閉じられるまで生きてる
無限ループだと動かないかも試練、適当にfor(int i=0; i < 100; i++) {} とかに変えて実行汁
0803デフォルトの名無しさん
2007/08/21(火) 23:14:500804デフォルトの名無しさん
2007/08/21(火) 23:28:240805デフォルトの名無しさん
2007/08/21(火) 23:37:23int x = 0;
と変数宣言するのはあまりよくないでしょうか?
0806デフォルトの名無しさん
2007/08/21(火) 23:45:30synchronized
ただしアトミック性を保つためにはfinalかvoltileも使わないとダメ
>>805
どっからそんな事聞いた、変数宣言は使う直前に汁
0807805
2007/08/21(火) 23:51:45なんとなくですが、ループの中で宣言すると、
何回もメモリを確保しては破棄してを繰り返して、GCが起きやすくなるのかなと思ったのです。
0808デフォルトの名無しさん
2007/08/21(火) 23:55:26例えオブジェクトであっても、newした回数だけインスタンスは作られるわけで、変数を使いまわした所で一緒。
おまけに最新のJVMであれば、メソッドの中で宣言されスコープが終わるようなオブジェクトは、最適化によってヒープに詰まれない事もある
0809デフォルトの名無しさん
2007/08/21(火) 23:57:21ブラクラ実行汁ってw
>>805
どうせ最適化されるから使う直前に宣言しろ。ループないでも同じ事。
0810デフォルトの名無しさん
2007/08/21(火) 23:58:13ループのたびにメモリを取りに行っている訳ではないと思いますよ。
スタックの中の割り当てだから、allocしてないです。
1)
int x;
for (int i = 0; i < 100; i++) {
x = i; //****
System.out.println(x);
}
2)
for (int i = 0; i < 100; i++) {
int x = i; //####
System.out.println(x);
}
ですが、
**** のバイトコードは、
ILOAD 2
ISTORE 1
####のバイトコードは、
ILOAD 1
ISTORE 2
えーっと、int iとint xの出てくる順番が違うので若干違いがありますが
実質違いはないです
0812デフォルトの名無しさん
2007/08/22(水) 00:00:46そういう心配は、実際に遅くて困ってからすればいい。
大抵は気にするだけムダ。
0814デフォルトの名無しさん
2007/08/22(水) 00:12:100815デフォルトの名無しさん
2007/08/22(水) 00:21:000816デフォルトの名無しさん
2007/08/22(水) 00:22:33それが考慮されなければならない処理ならばマシン語で書いてください
0817デフォルトの名無しさん
2007/08/22(水) 00:24:200818デフォルトの名無しさん
2007/08/22(水) 00:25:54トンクス
>>816
考慮するコストなんか0だろ
コスト0なら早いほうがいいに決まってる
0819デフォルトの名無しさん
2007/08/22(水) 00:28:57for(int i = 0; i < 10; i++)
を
for(int i = 10; i > 0; i--)
にするのもどうかと思う
0820デフォルトの名無しさん
2007/08/22(水) 00:29:22計ってみればいいじゃん。
何億回やったら差がでるかな(ニヤニヤ
0821デフォルトの名無しさん
2007/08/22(水) 00:43:320822デフォルトの名無しさん
2007/08/22(水) 02:45:040823デフォルトの名無しさん
2007/08/22(水) 08:31:14HDD上に保存するというプログラムを組みたいのですが,どうすればいいのでしょうか?
0824デフォルトの名無しさん
2007/08/22(水) 08:40:350825デフォルトの名無しさん
2007/08/22(水) 08:47:221. HTTPでデータを取得する
2. MJPEG方式(動画)をJPEG方式(静止画)に変換する?
これらのライブラリを探し出し、繋ぎ合わせて作る。
うん、簡単そうになったな。
0826823
2007/08/22(水) 09:01:31それにフィルタ処理を施した上で保存するという仕事を与えられまして.
WEBカメラから単にjpeg画像を取得するだけならできたのですが
その処理だと秒間3フレームしかとれなくて・・・
で,mjpegなら連続アクセスができるということがカメラの仕様書に書いてあったので
それを使ってみようと思ったのですが,ライブラリが解らなくてお聞きしたのです
どの,ライブラリを使えばいいのかも解らなくてできれば教えていただけないでしょうか?
0827823
2007/08/22(水) 09:06:320828デフォルトの名無しさん
2007/08/22(水) 09:13:56>mjpegをhttpプロトコルから取り込んで
って書いてるのに、「そもそもmjpgをどうやって取得したらいいのかが解りません」
ってなんだ?httpプロトコルがわからんのか?それとも何もかも全部わからんのか?
0829デフォルトの名無しさん
2007/08/22(水) 09:17:59それか教えられても自分でどうこうできるレベルでないか
0830823
2007/08/22(水) 09:26:180831デフォルトの名無しさん
2007/08/22(水) 09:28:36おまいの手法って何だよw具体的にみんなに解るように言えよ
0832823
2007/08/22(水) 09:34:11private static String url_graphics ="http://******/jpg/image.jpg";
//ファイルを取得(jpgデータ)
try
{
Object obuject = JPEG_URL.getContent();
}
catch (IOException e)
{
e.printStackTrace();
}
0833823
2007/08/22(水) 09:34:540834デフォルトの名無しさん
2007/08/22(水) 09:47:21秒間3フレームってのが、接続からデータ処理までの時間に依存してそうだな
ネットワーク越しで1000/3msだったらマシな気がするのだが。
まあ、MJPEGでの画像取得の仕様はそっちにあるのだろうから、頑張れ
0835デフォルトの名無しさん
2007/08/22(水) 12:20:14で、カメラの仕様書にはmotionJPGの取り込み方が書いてあるんだろ?
それを書かなきゃ同じ方法でできるかわからねーよ。
0836823
2007/08/22(水) 19:26:14製品内の設定によるデフォルトの解像度、圧縮率でマルチパート画像ストリームを返信する。
文法: http://<サーバ名>/mjpg/video.mjpg
こうなっています.
0837デフォルトの名無しさん
2007/08/22(水) 21:30:35そのアドレスにアクセスしてデータを受信してダンプしてみろよ。
そうすればどうやって切り出せばいいかわかるだろうから。
motionJPEGについて軽くググったが、どうも JPEG の連続ってだけ
みたいだから、切り出したデータがそのまま JPEG なんだろうな。
だから mjpg を切り分けて jpg に〜、ってのは心配しなくていい。
0838デフォルトの名無しさん
2007/08/22(水) 21:51:540839デフォルトの名無しさん
2007/08/22(水) 21:56:57それが考慮されなければならない処理ならばマシン語で書いてください
0840デフォルトの名無しさん
2007/08/22(水) 21:57:29ていうか、IIOて標準じゃmjpeg認識しないっけ?
実はjp2のアニメーション仕様でしたって落ちなら知らんが。
0841デフォルトの名無しさん
2007/08/22(水) 22:12:59何時間考慮しようとその人件費は 0 だろ
0842デフォルトの名無しさん
2007/08/22(水) 22:59:01アセンブリレベルの話は知らないが、VM上での差はある。
バイトコードのiconst命令は、-1から5までは特別に用意されている。
しかしそれ以外は、バイトコードのローカル変数(間違ってるかも)からオペランドスタックにloadして、比較する。この処理が入るから(極僅かに)遅くなる。またクラスサイズが約5バイト増える。
だから、容量や最適化の都合で、携帯アプリでしばしば0との比較が用いられる。
0843デフォルトの名無しさん
2007/08/22(水) 23:03:36あれはJavaのようでJavaではないから
0844デフォルトの名無しさん
2007/08/22(水) 23:56:500845デフォルトの名無しさん
2007/08/23(木) 01:18:37あと20byte、なんとかして削れないか!・・・みたいな
この先あんな経験することはないだろう
0846デフォルトの名無しさん
2007/08/23(木) 04:06:270847デフォルトの名無しさん
2007/08/23(木) 07:02:55昔々のパソコン(マイコン)みたいだw
0848デフォルトの名無しさん
2007/08/23(木) 17:35:13画面のボタンを押したら戻り値が戻ってくるってのはどうやるの?
0849デフォルトの名無しさん
2007/08/23(木) 18:14:09デバッグもしたんですが。
0850デフォルトの名無しさん
2007/08/23(木) 19:37:32JDialog は setModal(true) しておくと、
setVisible(true) でモーダルループに突入して、閉じるまで帰ってこない。
ボタン押されたときに値をどこかに保存しておいて、それを返せばいいと思われ。
0851デフォルトの名無しさん
2007/08/23(木) 22:24:16それ、場合によってはスレッドセーフである必要がないか?
まあ、モーダルだからユーザーはそれしか操作できんから実質GUIの更新はモードが解けてからで良いんだけど。
0852デフォルトの名無しさん
2007/08/23(木) 22:31:500853デフォルトの名無しさん
2007/08/23(木) 23:37:110854デフォルトの名無しさん
2007/08/24(金) 00:15:245000レコードのCSVが3000個くらい、1500万レコードの読み込み+書き込みが必要なのですが、自分のプログラムでは凄まじく効率が悪いことに気づきました。
現状
1つのCSVファイルをArrayListに全行格納
↓
一行ずつ取り出し、StringTokenizerで切り分け、エンティティクラス(getsetのやつ)に格納
↓
DBにアクセスするクラスにエンティティクラスを引数で渡し、一行をInsertするSQL文発行
これを繰り返す仕組みです。
毎回DBにつなぎに行ってます。
何かデータベースアクセスの参考になるページや書籍はありますでしょうか?
0855デフォルトの名無しさん
2007/08/24(金) 00:36:36っつーか一回しか実行しないの?
定期的に何度も使うの?
0856デフォルトの名無しさん
2007/08/24(金) 01:51:24ACCESSのマクロでCSVインポートしたほうが良くないか?
0857デフォルトの名無しさん
2007/08/24(金) 02:57:270858デフォルトの名無しさん
2007/08/24(金) 04:38:38publicなコンストラクタだから使えるだろ
0859デフォルトの名無しさん
2007/08/24(金) 06:08:34>>853はDialogと勘違いしていると思われ
0860デフォルトの名無しさん
2007/08/24(金) 06:26:460861デフォルトの名無しさん
2007/08/24(金) 06:29:17interface Foo { }
public int write(Object foo) {
if (foo instanceof Foo) {
/* Foo実装クラス専用処理 */
}
/* ログ書き出し処理 */
}
メソッドwrite()は、Objectを引数にとり、ログに書き込んだ行数(1オブジェクト1行のため、正常終了なら1)を戻します。
その際、Fooインタフェースを実装しているクラスに対しては付加情報を追記します。
このメソッドをテストするのですが、次の2ケースについて悩んでいます。
(1) Foo実装クラスを渡して付加情報が追記されていること
(2) 否Foo実装クラスを渡して付加情報が追記されていないこと
この2ケースに対してテストを行う場合、想定される書き出し結果を用意しておき、
実際に書き出された内容を取得し、比較するという手法で良いのでしょうか。
0862デフォルトの名無しさん
2007/08/24(金) 06:56:11>毎回DBにつなぎに行ってます。
最悪だよ。DBへの Connection の取得は1回だけにしろ。
あとInsertするSQLが固定なら、PreparedStatement にして
SQL へ渡すパラメータだけ変更するようにすればいいだろ。
まあ >>856 が正解だと思うが。
0863デフォルトの名無しさん
2007/08/24(金) 07:05:47そもそもの設計に問題がある
public int write(Object obj) {
/* ログ書き出し処理 */
}
public int write(Foo foo) {
/* Fooログ書き出し処理 */
write(foo);
}
としておけばテストも楽だろ
0864デフォルトの名無しさん
2007/08/24(金) 07:06:24public int write(Object obj) {
/* ログ書き出し処理 */
}
public int write(Foo foo) {
/* Fooログ書き出し処理 */
write((Object) foo);
}
0865854
2007/08/24(金) 07:33:05CSVの読み込み自体は1回ですが、今度はその内容の分析&アップデートをしたいので
効率を上げたいです。
>>856
その手段もあるのですね。
しかし、インポート以外の効率上げもしたいところなんです。
>>860
MySQLとかのほうが良いんですかね〜。
もうACCESS導入しちまったんで・・・w
>>864
PreparedStatementのパラメータ変更は採用してます。
DBコネクションはを1回に変更する方法が必要ですね。考えて見ます。
0866デフォルトの名無しさん
2007/08/24(金) 07:44:41もう片方のスレッドはCSVを1行ずつ読み、splitしてSQL文をキューにためる
これじゃ駄目なの?
0867デフォルトの名無しさん
2007/08/24(金) 07:56:04うん、間違えたw
0868デフォルトの名無しさん
2007/08/24(金) 07:58:23返信ありがとうございます。
おっしゃるように修正を加えた場合、どのようにテストが楽になるのでしょうか。
修正を行ってもアプローチは変わらないような気がします。
私の理解が足りず申し訳ございませんが、もう少し説明を加えていただけますでしょうか。
0869デフォルトの名無しさん
2007/08/24(金) 08:16:05毎回 Connection を取得するなら、
PreparedStatement の意味あまりないんでは?
取得方法を変えて、さらに addBatch/executeBatch を使うとさらに良いかも。
0870デフォルトの名無しさん
2007/08/24(金) 08:48:47マジレスすると、テストするなら
ログ書き出し部分を抽象化してスタブを用意するべき
0871デフォルトの名無しさん
2007/08/24(金) 09:30:35特殊文字のエスケープ考えなくていいってだけで意味はある
0872デフォルトの名無しさん
2007/08/24(金) 09:54:45したい処理があるのですがどこに書けばよいでしょうか?
0873デフォルトの名無しさん
2007/08/24(金) 12:57:210874デフォルトの名無しさん
2007/08/24(金) 14:01:46その設計のほうが問題だと思うが。
変数の型がObjectだったら、インスタンスがFooを実装していてもObject版が呼ばれてしまうぞ。
>>868
出力先のストリームを外部から交換できるようにしておき、テストコードからByteArrayOutputStream
でもセットしてやれば、あとはそれを読めばよい。
でも、そこまでコストをかけてテストをするべきかなぁ?
0875デフォルトの名無しさん
2007/08/24(金) 15:29:45【 形態 】エキスプレスエディチョン
【 GUI 】エキスプレスエディチョン
【 期限 】June
【 Ver 】(?_?)
【 用語 】エキスプレスエディチョンとは何か
【 補足 】エキスプレスエディチョンはJavaですか?
よろしくお願いします。
0876デフォルトの名無しさん
2007/08/24(金) 16:28:580877デフォルトの名無しさん
2007/08/24(金) 17:50:10例えば
hoge.hello={0} is pen.
などの場合{0}に値をいれて取得するにはどうしたらよいでしょうか?
defaultBundle.getString("hoge.hello");
ですと、値をセットして取り出すことができないようです。
よろしくお願いします。
0878デフォルトの名無しさん
2007/08/24(金) 19:18:42出力を止めればいい
文字列を取得して使う側で吐く方がテストは楽
0879デフォルトの名無しさん
2007/08/24(金) 19:49:03Mainクラスの中で変数sを設定し、それを他のクラスで使うとすると、
その使いたいクラス内で、Main obj = new Main();
と書き、obj.sとすると、
そのMainクラス内で設定した数値となっているのでしょうか?
0880デフォルトの名無しさん
2007/08/24(金) 19:50:380881デフォルトの名無しさん
2007/08/24(金) 19:53:17ありがとうございました。
0882デフォルトの名無しさん
2007/08/24(金) 20:21:27MessageFormat.format(bundle.getString("hoge.hello"), "This");
0883デフォルトの名無しさん
2007/08/24(金) 20:37:51http://192.168.0.1:8080/myapp/ でjsp&Servletはうまくいくことが確認できました。
apacheと提携し http://192.168.0.1/myapp/ でうまくいくことも確認できました。
ここで、webapps/myappの場所を
/usr/local/tomcat/webapps/myapp から /home/my_account/webapps/myapp に変更し、
server.xmlを編集したところ、無事にアクセスできることには変わりありませんが、
JSPページのコード中、BufferedWriterによってファイルの保存やロードが出来なくなりました。
開こうとするとIOException例外が起き、getMessage()では、(No such file or directory)です。
変更する以前はファイル名を相対パスで指定すると、その基準がtomcat6フォルダだったと思うのですが、
変更後の場所が不明だったので、試しにPrintWriterで"test.txt"と相対パスでファイルを作ろうとしてみたのですが
実行すると何の例外も起きないのに、ファイルがどこにも作られていません。(検索しましたが該当せず)
いったいどうなってしまったのでしょうか?どなたか原因に心当たりのある方、教えてください。
0884デフォルトの名無しさん
2007/08/24(金) 21:05:24ありがとうございました。とても助かりました。
0885865
2007/08/24(金) 21:56:31スレッド化ですか!
敷居が高そうですが勉強してみます。
>>869
addBatch/executeBatch についても今後調べてみます。
ありがとうございました!
0886デフォルトの名無しさん
2007/08/24(金) 22:02:38まだまだ勉強不足だとわかりましたので、しばらくROMに徹します。ありがとうございました。
0887デフォルトの名無しさん
2007/08/24(金) 22:06:000888デフォルトの名無しさん
2007/08/24(金) 22:39:44ファイル名だけ指定すると、そこに保存されてしまいます(読み込みも)。
本来のようにtomcatフォルダが基準となるために、
どこの設定を間違っている可能性があるのでしょうか?
0889デフォルトの名無しさん
2007/08/24(金) 23:56:48JComboBoxに関して、初期表示した選択肢を、特定のイベントで変更したいと思ってます。
ComboBoxModelを利用した実装を行っているのですが、Model自体は新しく作り直さずに、getSize等から特定のイベントの後には新しい値が取得できるようにしました。
ところが、コンボボックスには反映されないんです。
適当にクリックしてみると表示される事もあり、まったく認識していないわけではなささそうです。
ちなみに、変更後にはrepaint() は呼び出しています。
なにか情報あるでしょうか?
0890デフォルトの名無しさん
2007/08/25(土) 00:02:56自分でモデルの実装を書いてるんなら、データが変更されたときにリスナに通知しなきゃだめだよ
0891デフォルトの名無しさん
2007/08/25(土) 00:14:07ちょうど自己解決しそうな所でした。
class MyPanel extends JPanel {
String[] data;
Model model = new Model() {
getSize() { return data.length; }
}
}
といった感じで記述するのはマズイんですね。
0892デフォルトの名無しさん
2007/08/25(土) 00:14:20> getSize等から特定のイベントの後には新しい値が取得できるように
サイズが同じだと更新されないとかいう落ちですか
repaint は、各paint系メソッドを上書きしていないのなら、関係ありません
Model の要素が更新された場合は fire系メソッドを呼び出し、通知する必要があります
JComboBoxで何が出来るのかわかるサイト…の一つ
ttp://www.javadrive.jp/tutorial/jcombobox/index.html
0893デフォルトの名無しさん
2007/08/25(土) 02:49:40今までstartup.shで直接起動していたのですが、
jsvcを使ってサービスで起動したところ、
今度は/(ルートディレクトリ)にファイルが作られ、関連とディレクトリになりました。
カレントディレクトリを変更する方法はないものですかね?
0894デフォルトの名無しさん
2007/08/25(土) 03:37:47インターネットからJAVAをインストールしようとしたら
エラー「変換するときにエラーが発生しました。指定された変換のパスが有効であることを確認してください。
」とでます。
お願いします
0895デフォルトの名無しさん
2007/08/25(土) 03:57:35そういうネタは、エラーメッセージでぐーぐる先生にお聞きした方が早いですよ
つttp://www.google.co.jp/
0896デフォルトの名無しさん
2007/08/25(土) 04:03:410897デフォルトの名無しさん
2007/08/25(土) 09:37:020898デフォルトの名無しさん
2007/08/25(土) 10:12:590899デフォルトの名無しさん
2007/08/25(土) 10:21:47INSERT文を発行しないとだめですか?
0900デフォルトの名無しさん
2007/08/25(土) 10:30:110901デフォルトの名無しさん
2007/08/25(土) 10:37:060902デフォルトの名無しさん
2007/08/25(土) 16:27:38ResultSet.insertRow()でも使ってろ。
0903デフォルトの名無しさん
2007/08/25(土) 20:54:13ドキュメントを読む限り、今後はできるだけ Calendar/GregorianCalendar を
使いましょうね、という話に取れるのですが、一方で JDBC の
getDate() や getTime() で得られるのは Date のサブクラスなので
コードをどう書くか迷っています。
DB から読み込んだ日付や日時を保持しようとするとき、
Date のままが望ましいのか、GregorianCalendar に変換して
保存するのが望ましいのか……
0904デフォルトの名無しさん
2007/08/25(土) 21:09:15xml.load("http://hoge.jp")
のように
0905デフォルトの名無しさん
2007/08/25(土) 21:09:33操作するときは Calendar
って感じじゃない?
0906デフォルトの名無しさん
2007/08/25(土) 21:21:52時間を表したい時はDate
日時を表したい時はCalendar
DateはsetTimeで変更できるけど、基本的にはしないがベター
不変な時はDateで日付を扱ったり、計算処理などをしたい場合はCalendar
StringとStringBufferみたいな関係と考えちゃってもOK
0907デフォルトの名無しさん
2007/08/25(土) 21:29:02ありがとうございます。
行う処理はせいぜい比較ぐらいなので、基本的には Date で保持して、
必要なときのみ Calendar に変換する、といった感じで行こうと思います。
>StringとStringBufferみたいな関係
ものすごく納得できました。
0908デフォルトの名無しさん
2007/08/25(土) 21:49:12https://jsr-310.dev.java.net/nonav/javadoc/index.html
0909デフォルトの名無しさん
2007/08/25(土) 22:20:40>StringとStringBufferみたいな関係
ちょっと意味が違う気がする。
Date は日時を抽象的に表現するもの(国や文化に依存しない)、
Calendar は日時を暦として表現するもの(国や文化に依存する)、ではないかと。
システムの処理としては、入出力部分などでは必然的に年月日といった暦情報を扱うために
>操作するときは Calendar
保存する内容に各国の暦情報を含めるのは本質でないため、
>保持するときは Date
になるのではないかと思う。
0910デフォルトの名無しさん
2007/08/25(土) 22:38:19抽象化の観点から見れば909の言っている事は正しい
とはいえ、暦(=日付)の操作を行う場合はCalendarを使って、不変な「時」を表す時にはDateを使うってのも正しい
ソースは忘れたけど、setTimeは非推奨にするって議論もあるらしい
したところで、不変オブジェクトにするには手遅れだからってループだけど。
「考えちゃってもOK」とあるように、操作と不変データって切り分けで概ね問題ない
0911デフォルトの名無しさん
2007/08/25(土) 22:58:15増えるのか、というほど潤沢な環境では…>今の時間関係
0912デフォルトの名無しさん
2007/08/25(土) 23:11:43concurrent系みたくjava.utilとかに食い込んできたら習得必須かもしれんけど
0913デフォルトの名無しさん
2007/08/25(土) 23:15:55Dateを不変で扱おうってコンセンサスのある場所では正解になるだろうけど、
Dateが不変ってのは、どこに行っても通用するわけじゃない。
一般的な説明としては >>909 のが良いだろうね。
0914デフォルトの名無しさん
2007/08/25(土) 23:16:49標準APIに入れる意味がないような
0915デフォルトの名無しさん
2007/08/25(土) 23:21:33便利だから詰めこんどきましたってパッケージ群なのにw
0916デフォルトの名無しさん
2007/08/25(土) 23:22:46小難しい話をせずに固定値と計算を含めた変動値で使い分けろってのは楽な教え方なので俺も採用
0917デフォルトの名無しさん
2007/08/25(土) 23:24:59その理屈もおかしい。
便利さを求める時だけSwing使って、普段はAWT使うのか?
0918デフォルトの名無しさん
2007/08/25(土) 23:47:21これがすべてだな。
System.DateTimeが恋しい・・・
0919デフォルトの名無しさん
2007/08/25(土) 23:55:52それだけじゃ不変オブジェクトって保証ないし
0920デフォルトの名無しさん
2007/08/26(日) 00:17:34使う時は不変っぽく使ってね、という話なんだろう
0921デフォルトの名無しさん
2007/08/26(日) 00:50:01オーバーロードしたときに実行されるメソッドは、
引数の型が一致するものが複数あることになる場合は、
型が近いほうが選ばれるのではないのでしょうか?
0922デフォルトの名無しさん
2007/08/26(日) 00:52:13オレがみた議論では、不変として使いたければ ImmutableDate を作れって話になってた。
0923デフォルトの名無しさん
2007/08/26(日) 00:55:06Foo foo = new Foo();
Object obj = foo;
write(obj);
で、呼ばれるのは write(Foo) か write(Object) かって話じゃね?
型は型でも、呼び出されるメソッドは静的型によって決定されるって話。
0924デフォルトの名無しさん
2007/08/26(日) 00:56:04同じ奴かな?
そんなことするくらいならばlong使うぜボケ、って感じでgdgd
0925デフォルトの名無しさん
2007/08/26(日) 01:02:35時間を持ってるって型情報を捨てて良いなら long 使えば?
そもそも不変でないクラスに関して、
後からしゃしゃり出てきて不変として使おうって言われてもな。
布教するつもりがあるなら説明ぐらいしっかりやった方がいいんじゃね?
0926デフォルトの名無しさん
2007/08/26(日) 01:04:37一般的に不変っぽく使うケースが多いってだけだろ
これだから(ry
0927デフォルトの名無しさん
2007/08/26(日) 01:08:37> 使う時は不変っぽく使ってね、という話なんだろう
……。布教してるようにしか見えないが。
0928デフォルトの名無しさん
2007/08/26(日) 01:16:20業務要件があって
・サービスインした製品は運用時に必要な最低限のログが出力されて、デバッグ情報は出力させない。
・開発環境ではデバッグ情報と運用時に必要な最低限のログの両方を出力させる。
これをソースの修正や定義の書換えをせず、環境変数やディレクトリ構成もそのままで行いたいんだけど。
今考えてるのは共通ログ出力クラス<−運用ログ出力クラス<−デバッグ情報ログ出力クラス
って感じで継承したクラスを環境別に配布して順番にクラスファイルを調べてClassクラスのインスタンスを生成しようとしてます。
たとえば商用環境は共通ログ出力クラス・・ある、運用ログ出力クラス・・・ある、デバッグ情報ログ出力クラス・・・ない
運用ログ出力クラスが呼ばれる
開発環境は共通ログ出力クラス・・ある、運用ログ出力クラス・・・ある、デバッグ情報ログ出力クラス・・・ある
デバッグ情報ログ出力クラスが呼ばれる
って感じ。ちなみに共通ログ出力クラスには運用ログ出力メソッドもデバッグ情報ログ出力メソッドも空実装してあります。
log4jを使ったとしても変な弊害は起きないでしょうか?
似たようなもの作ったことある方アドバイスお願いします。
0929デフォルトの名無しさん
2007/08/26(日) 01:18:570930デフォルトの名無しさん
2007/08/26(日) 01:21:04log4.j使って「運用時にはINFO以上のログを出力しない」で要件を満たせない理由を述べてくれ
>>927
うざいからお前も消えろ
0931デフォルトの名無しさん
2007/08/26(日) 01:44:47業務要件といってるんだから、上のレベルで合意したってことでは?
契約済んでるなら、下っ端は仕様書どおりにつくるだけだから、そこに突っ込んでも
どうしようもないと思う。
>>928
ソースや定義ファイルの書き換えがダメなのに、ログモジュールの環境毎の差し替えは可能と
いうこと? 微妙な気がするけど。
それとも、モジュール追加が可能っていうなら、クラスローダ使ってクラスの動的ロードできるから
それでデバッグ用ログクラスがあればそれを使う。なければ運用ログクラスをインスタンス化する。
デバッグ用ログクラスは運用ログクラスを継承してて、共通のインタフェースをもってる。
アプリからはインタフェース経由でログ出力を行う。
でいけそうな気はする。
ただし、ソース修正や定義ファイルの書き換えはだめでもファイルの追加はありっていうなら、
モジュールでなくて、デバッグ用定義ファイルを1つ用意して、そのファイルがあれば、デバッグモード
に切り替わるのが手っ取り早いと思う。
0932デフォルトの名無しさん
2007/08/26(日) 01:49:24いや、業務要件にはどのように実装するかが書いてないので確認したまで。
log4jのメリットとか開発の経緯ってまさに>>928の業務要件を満たす事だと思うんだが...
0933デフォルトの名無しさん
2007/08/26(日) 01:51:16どゆこと><
fooはFoo型でobjはObject型の変数、参照するのは共にFoo型のインスタンスですよね?
write(obj)はwrite(Foo)が呼ばれるんじゃないの?
0934デフォルトの名無しさん
2007/08/26(日) 01:56:06オーバーロード時にどのメソッドが呼びされるかは、コンパイル時に決まってしまうと言う事。
ジェネリックスとか辺りとか型に関係する事は基本的に全てコンパイル時の話。
0935デフォルトの名無しさん
2007/08/26(日) 01:58:440936デフォルトの名無しさん
2007/08/26(日) 02:01:56yes
0937デフォルトの名無しさん
2007/08/26(日) 02:02:02objは変数の型がObjectだから、コンパイラはhoge(Object obj)が最適と判断するって事。
逆にコレが出来ないと、Object obj = new Foo() が絶対に hoge(Object obj)に実行させられなくなるじゃん(オーバーロード時)。
0938デフォルトの名無しさん
2007/08/26(日) 02:19:59オーバーロードされたメソッドのどれを呼び出すかは、コンパイル時の静的な型情報で決まる。
0939デフォルトの名無しさん
2007/08/26(日) 08:11:31void foo(Object o) { System.out.println("A#foo(Object)"); }
void foo(B o) { System.out.println("A#foo(B)"); }
}
class B extends A {
void foo(Object o) { System.out.println("B#foo(Object)"); }
void foo(B o) { System.out.println("B#foo(B)"); }
}
のとき
A o = new B();
o.foo(o);
はB#foo(Object)になるってこと?
0940デフォルトの名無しさん
2007/08/26(日) 09:47:250941デフォルトの名無しさん
2007/08/26(日) 10:02:590942デフォルトの名無しさん
2007/08/26(日) 10:14:40mail.jar activation.jarのCLASSPATHがどうしても通りません。
./bash_profileにクラスパスを設定したので、起動時にCLASSPATHが設定されるようにはなっているはずです。
実際に echo $CLASSPATH とすると、
/usr/java/jdk1.6.0_02/lib/mail.jar:/usr/java/jdk1.6.0_02/lib/activation.jar
と表示され、実際にその位置にそれらjarファイルはあります。
しかし、それらのクラスを使うJSPページにアクセスすると
Session cannot be resolved to a type
MimeMessage cannot be resolved to a type
InternetAddress cannot be resolved
などなどが出てしまうのです。
これについて考えられる原因があれば教えてください。
0943デフォルトの名無しさん
2007/08/26(日) 10:16:50>>941
一般的には解り難いしアンチパターンだろうね
ま、printlnくらい仕様がはっきりしているならば問題ないけど
0944デフォルトの名無しさん
2007/08/26(日) 10:20:54多分、Tomcatとかのコンテナのクラスパスに通したんではない?
コンテナは複数のアプリケーションを管理するようになっているから、個々のアプリケーションで使用するjarはweb.xml等で個別に指定する
そうしないと、複数のアプリケーションで同じクラスだがバージョンが異なるクラスを使えなくなるから。
0945デフォルトの名無しさん
2007/08/26(日) 10:23:04println は親クラスで定義されたメソッドをオーバーライドしてるわけじゃないから問題ない
0946デフォルトの名無しさん
2007/08/26(日) 10:23:39オーバライドもいけないん?
0947デフォルトの名無しさん
2007/08/26(日) 10:23:490948デフォルトの名無しさん
2007/08/26(日) 11:04:49mail.jarとactivation.jar を試しにWEB-INF/libに入れてみたのですが、
状況は変わりませんでした。
WEB-INF/lib内のjarを参照させるとき、web.xmlに何か記述が必要なのでしょうか?
0949デフォルトの名無しさん
2007/08/26(日) 11:09:07どんなコンテナ使っているのか解らないが、application.xml と web.xmlのどこかで設定するか、デフォルトの場所が決まっているはず
0950デフォルトの名無しさん
2007/08/26(日) 11:29:15$CATALINA_HOME/libにいれて再起動したところ直りましたorz
どうもありがとうございました
0951デフォルトの名無しさん
2007/08/26(日) 11:43:44どういう理由でうまく起動したのかおしえれw
サーブレット製品が同じjarを使ってたって事か?
0952デフォルトの名無しさん
2007/08/26(日) 11:53:130953デフォルトの名無しさん
2007/08/26(日) 12:08:30まあ1個のコンテナで複数のWebアプリケーションを動かすケースは少ないけど
>>951
Tomcatの起動バッチのclasspathに指定していただけかと
0954デフォルトの名無しさん
2007/08/26(日) 12:08:56さえも入らない値を求める方法って何かありますか?
nが1000とかになると入りきらなくて求めることが不可能なんですが、もし分かる方いたら教えてください。
0955デフォルトの名無しさん
2007/08/26(日) 12:13:510957デフォルトの名無しさん
2007/08/26(日) 15:28:560958デフォルトの名無しさん
2007/08/26(日) 16:36:38webapps\cpsというコンテキストがあって、
conf\Catalina\localhost\cps.xmlにアクセスの際のパスの設定をしています。
中身は
<Context path="/hogehoge" docBase="C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\cps"
reloadable="true" />
と言う感じです(これのみです)
しかしこのファイルを読んでいないのか、http://ドメイン:8080/cpsでしかアクセスできません。
Engine や host の名前に間違いはないと思いますが、/hogehogeでアクセスさせるためどの設定が間違っているのか
心当たりのある方いらっしゃいまいたら教えてください。
0959デフォルトの名無しさん
2007/08/26(日) 16:43:580960デフォルトの名無しさん
2007/08/26(日) 16:45:56はて、tomcat5ならserver.xmlにも記述があったけどね。
tomcat6はわかんないなぁ
0961デフォルトの名無しさん
2007/08/26(日) 17:03:35javax.xml.parsers.DocumentBuilder.parse(String uri)
ってメソッドあるから、これに URL 渡せばうまくいくかも?
それでダメならこんな感じ?
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new URL("http://hoge.jp").openStream()));
0962デフォルトの名無しさん
2007/08/26(日) 23:45:55このフォントで日本語の文字を表示したらギザギザで見にくいのですが、どうにかならないでしょうか?
0963デフォルトの名無しさん
2007/08/27(月) 00:03:520964デフォルトの名無しさん
2007/08/27(月) 01:01:00お奨めの参考書とかありますか?
0965デフォルトの名無しさん
2007/08/27(月) 01:10:33薦められる参考書はないが、俺が持ってるのは独習Java
みたところ最小限のことは乗ってるように思えるが、ぐぐれば十分な情報が得られそう
あとSunのページが大いに参考になるよ
http://java.sun.com/javase/ja/6/docs/ja/
0966デフォルトの名無しさん
2007/08/27(月) 01:42:170967デフォルトの名無しさん
2007/08/27(月) 02:45:39先にエスパーしとくとJDKとJREのバージョン毎とJava2DかSwingかで違う。
0968958
2007/08/27(月) 09:21:40Server.xmlに記述したら無事動きました。
conf\[engine name]\[host name]\[context name].xml
じゃtomcat6ではだめなようです。
0969デフォルトの名無しさん
2007/08/27(月) 11:25:29いや、そんなことはない。
conf\[engine name]\[host name]\[context name].xmlでも動く。
一応バージョンを明記してくれ。
ひょっとして、コンテクストディスクリプタ(cps.xml)と、path属性(/hogehoge)と
Webアプリのフォルダ名(/cps)が違うのが原因じゃない?
0970デフォルトの名無しさん
2007/08/27(月) 17:42:240971デフォルトの名無しさん
2007/08/27(月) 17:49:20でjarファイル作ったんだけど、起動しても
ウィンドウが中途半端に出た状態でそれ以上に先に進めない...
0972デフォルトの名無しさん
2007/08/27(月) 17:53:32コマンドラインから起動してみたらログが出るかも
java -jar test.jar
0973デフォルトの名無しさん
2007/08/27(月) 18:13:35これまでに試したこと。
j2sdk1.4.2_15というものをインストール。
ソフトダウンロード後、WINRARで解凍。
.jarファイルをダブルクリック。起動せず。
マニュアル読んでコマンドプロンプトから入力、起動せず。
いろいろググったりしたのですが、さっぱりわかりませぬ。
どうか愚かな糞虫に救いの手を。お願いいたします。
0974971
2007/08/27(月) 18:34:20「ファイルが見つかりません」エラーが出ました
jarに含まれているんですが認識されないんでしょうか
0975デフォルトの名無しさん
2007/08/27(月) 18:53:51jarの中身は確認した?
0976971
2007/08/27(月) 18:55:15確認しました
ちゃんと含まれてます
0977デフォルトの名無しさん
2007/08/27(月) 18:56:000978デフォルトの名無しさん
2007/08/27(月) 18:57:23今まで
new FileInputStream("foo.csv")
とかで読み込んでいたのなら、代わりに
getClass().getResourceAsStream("foo.csv")
とすれば読める
0979デフォルトの名無しさん
2007/08/27(月) 18:58:26これくさいなwwwwwwww
0980デフォルトの名無しさん
2007/08/27(月) 19:13:25>マニュアル読んでコマンドプロンプトから入力、起動せず。
コマンドプロンプトから起動しようとして無口ってことはないだろう (あるかもしれんが)
エラーが出たのならその内容を書く
0981デフォルトの名無しさん
2007/08/27(月) 19:36:07レスありがとうごぜいます。
java -jar SEMACODE_BIN_DIR/semacode.jarと記述すると、
「Unable to access jarfile SEMACODE_BIN_DIR/semacode.jar」
アクセスできません。てとこでしょうか?こういうエラーが出ます。
解凍したフォルダはデスクトップに置いてあります。
0982デフォルトの名無しさん
2007/08/27(月) 19:38:25(;´д`)ゞ??????????
ごめんファイル配置と起動時のカレントディレクトリを教えて欲しい。
0983デフォルトの名無しさん
2007/08/27(月) 19:51:32ええと、これttp://semacode.org/download/agree?dl_location=/download/toolkit/1.6/semacode_reader_se-1.6.zip
を解凍すると、semacode_reader_se-1.6というフォルダの中に、「semacode_reader_se.jar」というファイルと、マニュアル類のdocフォルダがあります。
デスクトップで解凍したので、
位置はC:\Documents and Settings\ユーザ名\デスクトップ\semacode_reader_se-1.6\semacode_reader_se.jar
となってます。
これ、答えになってるんでしょうか?さっぱりわからなくて…すいませぬ…。
0984デフォルトの名無しさん
2007/08/27(月) 20:10:32マニュアルと同じ書き方の様ですが、
単に "SEMACODE_BIN_DIR" という名前のディレクトリが無いからでしょうか。
semacode.jar が存在するディレクトリでコマンドを実行する場合は
> java -jar semacode.jar と書くそうです。
0985デフォルトの名無しさん
2007/08/27(月) 20:19:22レスありがとうごぜいます。
semacode.jarというファイル自体が無いので、
「semacode_reader_se.jar」ファイルを「C:\Documents and Settings\ユーザ名」の直下に置き、
コマンドプロンプトで「java -jar semacode_reader_se.jar」と記述し実行したところ、
C:\Documents and Settings\ユーザ名>java -jar semacode_reader_se.jar
Error: Missing or wrong number of arguments
usage: semacode_read [-V] -f file
-V print version and exit
-f file the input image file to be read
と出ました!一歩前進しました!ありがとうごぜいます!
0986デフォルトの名無しさん
2007/08/27(月) 20:24:29これでいいんですね!!!!!!!!!!!
やったやった!!!画質悪いせいか読みこんでくんないけどやったどー!
ありがとうごぜいましただ。
0987デフォルトの名無しさん
2007/08/27(月) 23:33:39例えば
2001/01/01
2001/01/20
の差は20日といったような。
こういう計算をするにはどうすれば良いでしょうか。
0988987
2007/08/27(月) 23:37:540989デフォルトの名無しさん
2007/08/27(月) 23:54:500990デフォルトの名無しさん
2007/08/28(火) 00:08:23String型の文字列8桁をDATE型のyyyyMMddのフォーマットに変換する方法なのですが、
自分でロジックを作らずに簡単にできるものってありますか?
調べたのですが、SimpleDateFormatのparseメソッドでDate型に直した後にFormatメソッドFomatを変える方法しかわからなかったです。
例えばString型の文字列 "20011213" をDATE型の 2001-12-13 に変換する方法です。
0991誰か
2007/08/28(火) 00:15:23357456→b13126b455
253398→7a4c395e79
この→は2つとも同じ変換をしたらしいのですが、何をしたのか分かる方いらっしゃいませんか??
0992デフォルトの名無しさん
2007/08/28(火) 00:17:27文字列8桁のフォーマットに不備がない状況であれば、StringBuilderにつっこんで-をinsertすればいいんだろうけど。
そもそもDATE型ってなに?
0993デフォルトの名無しさん
2007/08/28(火) 00:25:590994デフォルトの名無しさん
2007/08/28(火) 00:30:130995994
2007/08/28(火) 00:32:50http://pc11.2ch.net/test/read.cgi/tech/1188228705/
0996デフォルトの名無しさん
2007/08/28(火) 00:32:59どもども
0997デフォルトの名無しさん
2007/08/28(火) 00:37:18不満はないんですが、作ってみてSimpleDateFormatのインスタンスを2つ作らなければいけなかったので、
他に何か方法はあるかなぁと思いました。
Date型はjava.util.Dateの型です。説明不足すみません。
ありがとうございました!
0998デフォルトの名無しさん
2007/08/28(火) 00:41:08質問の人は>>997で納得してるようだが、
確かに仕様で決まってれば、insertでさくっと逝きますね。
(まったく…最近鱗が多すぎ
0999デフォルトの名無しさん
2007/08/28(火) 00:57:37DateFormatなんかstatic finalで作っておけばいいじゃん
1000デフォルトの名無しさん
2007/08/28(火) 01:11:22と釣られてみる俺。
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。