【初心者】 Java質問・相談スレ29 【大歓迎】
Q. javac コマンドを実行したときに、
『コマンドまたはファイル名が違います』や
『'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。』
と表示されてコンパイルできません。
A. javac.exeへのPATHが通っていません。
http://java.sun.com/j2se/1.4.1/ja/install-windows.html を良く読んで、javac.exe のあるディレクトリ(例: C:\j2sdk1.4.1_01\bin )のパスを
環境変数PATHに追加してください。 その後、
Windows98/MEの場合はOSを再起動、
Windows2000/XPの場合はコマンドプロンプトを立ち上げなおしてください。
設定したパスが正しければ、javacが使えるようになります。
それでも同じエラーが出る場合は、設定した値が間違っています。
よく見直してください。
Q. javac Hello.java でコンパイルはできるのですが、
java Hello を実行しようとすると
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』
と表示されて実行できません。
A. カレントディレクトリ(.)がクラスパス(classpath)に含まれていません。
コマンドプロンプトで、
set CLASSPATH=%CLASSPATH%;.
と設定する。最後の「;」と「.」を見落とさないように!
または、
http://www.gimlay.org/~javafaq/S004.html#S004-02 を読んでカレントディレクトリ「.」を環境変数CLASSPATHに追加してください。
クラスパスとはなにか(JavaFAQ 基礎知識)
http://www.gimlay.org/~javafaq/S004.html
8 :
デフォルトの名無しさん :03/07/31 21:33
いつもおまえらスレ立て人には、感謝してます 乙
いつもおまえらスレ立て人には、憤慨してます 死ね
続きやってくれた人ありがとうです。
16 :
デフォルトの名無しさん :03/07/31 22:06
だまれウンコ共 乙
っていうかよく見たらclassにpublicついてないじゃん。
氏ねよマジで。
>>1 乙
いいかげんCLASSPATH環境変数を使うのは非推奨にしたらどうよ。
>>983 BufferedReader myReader = null;
try{
try {
myReader=new BufferedReader(new FileReader("aaa.txt"));
String line;
int count=0;
Point3d[] vertices = new Point3d[1000];
StringTokenizer st=null;
while ((line = myReader.readLine()) != null) {
if(count==1000)break;
st=new StringTokenizer(line," ");
double[] temp=new double[st.countTokens()];
for(int j=0;st.hasMoreTokens();j++){
temp[j]=Double.parseDouble(st.nextToken());
}
vertices[count]=new Point3d(temp[0],temp[1],temp[2]);
}
}
catch(Exception e){
}
finally{
myReader.close();
}
}catch(Exception e){
}
コンパイルは通ったのですが実行時にjava.lang.NullPointerExceptionエラーが
LineArray geometry = new LineArray(vertices.length, GeometryArray.COORDINATES); ←この行
で発生しました
外部ファイルを参照しないときはこんなことなかったのに
verticesがnullぽ
vertices.length
GeometryArray.COORDINATES
>>20 皆さんがおっしゃるとおりvertices.lengthの値がnullだと思われます。
ソースが見れないのでなんともいえませんがverticesを宣言できてないのでは?
FileReader(”aaa.txt”)の部分でエラーが生じてそうな悪寒
aaa.txtがまずクラスファイルと同一階層にあるかを調べてみてください。
それがしっかりできているならPoint3d[] vertices~の下でprintlnして見たり
catchブロックでなんらかを出力させてみたりしてください。
これだけの情報じゃなんともいえないです・・すんません
>>前スレ903 >rand.nextInt() & 0x3ff; > >↑で乱数の値は0~1023までになってるでしょうか? rand.nextInt() % 1024; にしろ、範囲は 0~1023 になるはずだが 一般的には一様にならない。 基本的に乱数の下位ビットは比較的短い周期で元に戻ってしまう。
>>1 連続カキコでとまったかな~?と思ったので続きやらせていただきましたが
私の方も
>>12 を書いた時点で
連続カキコにひっかっかり、今までかけませんでした泣く
これ、すぐに復帰できるようにするにはしばらくおとなしくしてるしかないんですかね?
皆さんレスありがとうございます。 Point3d[] vertex = null; としてやると実行できました。 まだJavaよくわかっていませんがこれからも頑張ります。 本当にありがとうございました。
29 :
デフォルトの名無しさん :03/08/01 10:43
PureJavaってなぁに?
Linux Redhat9.0 SDK 1.4.1_04 環境において、JAVA2Dを利用し文書を作るアプリを作っています 「半角カナ」フォントを変えようと思い $JAVA_HOME/jre/lib/font.properties.ja内のsansserif設定を 変更前) sansserif.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0 sansserif.2=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 変更後) sansserif.1=-shinonome-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0 sansserif.2=-shinonome-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1990-0 と変えましたが、「半角カナ」が総て □ となってしまいました。 xfontsel,xfdでは確認できるフォントを使用しました。 見落している箇所をどうかご指摘願います。
>>28 クラスパス非推奨ってどういうこと?
全部extフォルダに入れるとか、IDE使えってこと????
32 :
デフォルトの名無しさん :03/08/01 11:40
>>31 環境変数に設定するのを非推奨にしようってことだろ?
全部extフォルダに入れるなんてもってのほか。
コンパイル時や実行時に個別に指定するほうがイイってこと。
AntとかIDE使うのもその手段の一つだが。
いまだにJ2EEアプリ実行するのに実行ユーザの環境変数に
クラスパス設定するヤシとかextにライブラリ入れるヤシとかいて
あきれるな。
究極は java.lang.String s=new java.lang.String("text"); とか推奨か?
環境変数のCLASSPATHは使わないほうがいいでしょ。 CLASSPATHが設定されていなければ c:\somewhere>java HelloWorld が動作する。 CLASSPATHが変なところに設定されているから動かなくなるだけ。 いっぱいjarファイルが必要なアプリはバッチファイルを作って、 set JARS=foo.jar;bar.jar java -classpath %JARS%;. net.2ch.SomeApp とでもすればいい。
>33 java.langはimportしなくても使えるぞ。
36 :
デフォルトの名無しさん :03/08/01 12:04
>>33 クラスパスとimport混同してない?
こんなヤシは
>>2 見れ
37 :
デフォルトの名無しさん :03/08/01 12:09
クラスパス非推奨派は理由を述べないな
38 :
デフォルトの名無しさん :03/08/01 12:14
>>37 ポータビリティが低下するからに決まってんだろ。
そんなことわざわざ言ってもらわないとわからなのか・・・・?
39 :
ただの見物人 :03/08/01 12:16
わかんねーよ。Javaしらねーし
41 :
デフォルトの名無しさん :03/08/01 12:25
classpathオプションが好まれる?
42 :
デフォルトの名無しさん :03/08/01 12:29
>>41 そう。環境変数に設定せずに、実行時に指定する方法が推奨。
必要なクラスパスはアプリによって違うからな。
-classpath オプションが推奨されているのは、アプリケーションごとに個別に設定できるので、 ほかのアプリケーションに影響を与えたり、ほかのアプリケーションからこの値が変更されたりすることがないためです。
44 :
デフォルトの名無しさん :03/08/01 12:31
つまり環境変数は使わずにオプションを使えってことか。
45 :
デフォルトの名無しさん :03/08/01 12:34
インストールするとCLASSPATHを設定するアフォなアプリもあるから、
初心者向けのQ&Aとしてはこんな感じか?
Q. javac Hello.java でコンパイルはできるのですが、
java Hello を実行しようとすると
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』
と表示されて実行できません。
A. カレントディレクトリ(.)がクラスパス(classpath)に含まれていません。
コマンドプロンプトで、
java -cp . Hello
と設定する。「-cp」の後ろの「.」を見落とさないように!
「.」の前後には半角空白が必要です。
または、
http://www.gimlay.org/~javafaq/S004.html#S004-02 を読んでカレントディレクトリ「.」を環境変数CLASSPATHに追加してください。
コマンドプロンプトで、 java -cp . Hello と実行する。「-cp」の後ろの「.」を見落とさないように! ~~~~~~~~~~ の間違い。
java -cp `pwd` Hello
49 :
デフォルトの名無しさん :03/08/01 12:51
Javadocドキュメント(?)部分に変更履歴を書くと思いますが、 その変更履歴の書き方のフォーマットって用意されていたりしますか? あれば教えて下さい。
String s = "a" + "b" + "c" + "d" + "e"; は String s = new StringBuffer("a").append("b").append("c").append("d").append("e").toString(); としてコンパイルされるとJavadocに書いてあったんですが、 実際には双方の実行時間がまったく違いました。 Stringリテラルの連結のほうが圧倒的に速いのです。 なぜでしょう? J2SE-1.4.2でコンパイルし、実行しました。
ちなみにこんなソースです。 public class Concat { public static void main(String[] args) { int iteration = 1000000; String t = "a" + "b" + "c" + "d" + "e"; { Date before = new Date(); for(int i = 0; i < iteration; i++){ String s = "a" + "b" + "c" + "d" + "e"; } Date after = new Date(); System.out.println("String literal loop : " + ( after.getTime() - before.getTime() )); } { Date before = new Date(); for(int i = 0; i < iteration; i++){ String s = new StringBuffer("a").append("b").append("c").append("d").append("e").toString(); } Date after = new Date(); System.out.println("String buffer loop : " + ( after.getTime() - before.getTime() )); } } }
52 :
デフォルトの名無しさん :03/08/01 13:38
StringBuffer使った方は実行時に連結されていて、 リテラルの方はコンパイル時に最適化されて既に連結されて バイトコード生成されているとか?
>>50 これはどう?
String s = "a";
s += "b";
s += "c";
s += "d";
s += "e";
>>53 StringBufferより2.5倍ほど遅くなりました。
String.Buffer.toString()を4回余計に呼んでいると思えば遅くなるのもうなずけます。
でもリテラル連結が一番速いのはなぜでしょうね。
>>52 さんの言うとおりなのでしょうか。
>>54 なんか雑誌で読んだんだけど
Stringの連結は1行でやれ!
それが出来ない場合(複数行にまたがる場合)はStringBufferをつかえ!
56 :
デフォルトの名無しさん :03/08/01 14:13
>>55 だ・か・ら
それはなぜなのか?って議論してるんでしょ?
対処法を教えてください。
"
http://www.google.co.jp/search?num=100&hl=ja&ie=Shift_JIS&q=%8F%5C "からダウンロードして、テキストとして正常に表示したいです。
以下のwhile((line = br.readLine()) != null){の部分で弾かれています。
原因は%8F%5Cに有るようです。以下の例にあるURLはIEで正常に表示されます。
javaのバグっぽいですが、なにとぞよろしくお願いいたします。m(_ _)m
import java.net.*;
import java.io.*;
public class TestBufferdReader {
public static void main(String[] args){
URL url = null;
try{
url = new URL("
http://www.google.co.jp/search?num=100&hl=ja&ie=Shift_JIS&q=%8F%5C ");
Object obj = url.getContent();
if(obj instanceof InputStream) {
String line;
BufferedReader br = new BufferedReader(new InputStreamReader((InputStream)obj));
while((line = br.readLine()) != null){
System.out.println(line);
}
}else{
System.out.println("DownLoadしたObjectはInputStreamとして扱えません。");
}
}catch(Exception e){
e.fillInStackTrace();
}
}
}
以下のwhile((line = br.readLine()) != null){の部分で弾かれています。 ↓ ごめんなさい。 そこで弾かれてるわけじゃなかったです。
>>57 >javaのバグっぽいですが
って・・普通自分のコード見直すだろ?
それとも、他では動くのにこのURLだと動かないって事?
単に表示するだけなら
ソケットでGetコマンド打てばいいんじゃない?
>>59 >他では動くのにこのURLだと動かないって事?
その通りです。
javaで取得しないと意味が無いんで…。
すみません。↑僕です。
実行すると403 Forbiddenが返ってくるね。なんでだろ。
えと、とりあえず試したんですが クエリ送った場合は何も表示されませんね もうチョイ粘らせてください
>>62 本当に不思議なんですよ。
今までjavaのバグに何度か見舞われたけど、今回は僕の力では無理だった・・・。
>>59 いろいろ張る前に、
e.fillInStackTrace()→e.printStackTrace()
と変更してからにしてね。これが最低限のエラー処理。
>>63 がんばって頂いている様で、ありがとうございます。m(_ _)m
>>65 ご指摘ありがとうございます。
今後気をつけます。m(_ _)m
同じことをHttpUnit経由で実行すると上手くいくので、 java.netパッケージの使い方が間違ってるんじゃないかな。 使ったこと無いんで知らないけど。
>>68 そうですか・・・。
本見て作ってるんで、そんなはずは無いと思うのですが、一応確認してみます。
クエリ(num=100&hl=ja&ie=Shift_JIS&q=%8F%5Cの部分)を別の方法でセットした方が いいと思って探してるんだが URLクラスに限ってみるとgetQuery() はあるけど setQuery() っていうのはないねぇ 今度はURL周辺探ってみます
while((line = br.readLine()) != null) の外にbr.close();がなったです。ただ結果には影響しないですが・・・。
>>70 すみません。よろしくお願いします。m(_ _)m
ソース見直しました。新しいソースを張っておきます。
import java.net.*;
import java.io.*;
public class TestBufferdReader {
public static void main(String[] args){
URL url = null;
try{
url = new URL("
http://www.google.co.jp/search?num=100&hl=ja&ie=Shift_JIS&q=%8F%5C ");
Object obj = url.getContent();
if(obj instanceof InputStream) {
String line;
BufferedReader br = new BufferedReader(new InputStreamReader((InputStream)obj));
while((line = br.readLine()) != null){
System.out.println(line);
}
br.close();
}else{
System.out.println("DownLoadしたObjectはInputStreamとして扱えません。");
}
}catch(Exception e){
e.printStackTrace();
}
}
}
>>50 52の言が正しい。
"a" + "b" + "c" + "d" + "e" という式は "abcde" に静的に評価できるので
コンパイル時に "abcde" に自動的に置き換えられる。
これはJava言語仕様で決まっている。
Javadoc にあるのは静的に評価できないときの話。例えば
String a = "a", b = "b", c = "c, d = "d", e = "e";
なら a + b + c + d + e は new StringBuffer(a).append(b).append(c).append(d).append(e).toString() になる。
ほかのHPとか試した? おれ、BIGLOBEの検索の方で試したんだけど・・・ 動いたよ googleのやつが特別なんじゃないかな? たとえば、そのページ内からじゃ無いと検索CGI叩けないとか・・・ んで、俺もSocket使ったプログラムでやったけど これもgoogleがダメで BIGLOBEはOKだったよ
>>57 googleはUser-Agentヘッダを見ていて、ブラウザの種類によってはじいているようだ。
URLの生成の前にこれをいれると上手くいく。
System.setProperty("http.agent", "お好みの正しいUser-Agent");
ちなみにおいらのはこんなんだった
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)"
>>75 >たとえば、そのページ内からじゃ無いと検索CGI叩けないとか・・・
いや、そんなこと無いですと言いたい所ですが、その通りなようで・・・。
さっきちゃんと確認したなのになぁ・・・。
おかしいなぁ・・・。
どうもありがとうございます。m(_ _)m
>>74 >これはJava言語仕様で決まっている。
おいおい…
>>76 そうだったのか・・・。
今までjavaでUser-Agentの扱い方が解からなかったのですが、これできっかけがつかめました。
とりあえず、やってみます。
ありがとうございました。m(_ _)m
>>78 ("a" + "b" + "c" + "d" + "e").intern() == "abcde" は言語仕様で決まっていますが何か?
>>76 本当にありがとうございます。m(_ _)m
ちなみに、僕のは"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"でした。
今までUser-AgentはURLにUser-Agent=&見たいに追加するもんだと思って、一生懸命総当たり戦してました。
あまりにも苦労してたんで、知ったとき感動して、本当にちょっと涙出ちゃった。
>>57 な、泣くなよおい・・・俺まで泣きそうだよ
すまん。Java言語仕様ではなくJava仮想マシン仕様だった。
>>80 >("a" + "b" + "c" + "d" + "e").intern() == "abcde" は言語仕様で決まっていますが何か?
おいおい…
>>84 >すまん。Java言語仕様ではなくJava仮想マシン仕様だった。
おいおい…
>>59 さすがに、もう泣きやんだ。
今ちょっと一人でニヤニヤしてる。
おれ、オナニーしてました なんかうれしくってね
>>89 言語仕様とVM仕様とAPI仕様読んでから出直してください。
こんにちわ(*・・*)。 益々日差しも強まり・・・(略)。 んと、お邪魔します(*..)、 JAVAでしたいことがあるんですけど、 どうしてもその手段が見つからなくて・・・ もし宜しければ助けてください(;;)。 したいことは、 現在のマウスのディスプレイ上の座標を取得したいの。 それで、最後にマウスが動いた時のイベントをListenerで取得して、 保持していこうかなって考えたんですけど・・・・ それはawt等のコンポーネント上でのこと・・ですよね、、(;;)? awtコンポーネント上では、 MouseMotionListenerインターフェースを使って、 addMouseMotionListenerメソッドでコンポーネントにセットして出来るんですよねぇ・・・・。 でも、awtとかSwingのコンポーネント以外でマウスの動いた座標をとりたくても、 リファレンスみても見つからなかったんですぅ( ノ_;) 黒猫の見つけ方が下手なのでしょうか(;;)。 もし、お知恵をお借りさせていただけましたら嬉しいですぅ。 乱文で失礼しますぅ。
ぐぐれ。
getX
94 :
デフォルトの名無しさん :03/08/01 18:01
>>91 >>awtとかSwingのコンポーネント以外で
Appletという意味???
>>リファレンスみても見つからなかったんですぅ
java.awt.eventにあります。
---------------------------------------------------------------
int X,Y;
addMouseMotionListener(new MouseMotionAdapter(){
public void mouseMoved(MouseEvent e){
X=e.getX();
Y=e.getY();
}
});
-------------------------------------------------------------------
です。
>>黒猫の見つけ方が下手なのでしょうか(;;)。
黒猫って何ですか?
もしかしてブラック キャット(No.ⅩⅢ)・・・
96 :
デフォルトの名無しさん :03/08/01 18:08
いや、そうでなくって Swing、AWT以外の場所でも マウスの位置知りたいってこと
98 :
デフォルトの名無しさん :03/08/01 18:12
あーFramの外でも座標がわかるようにしたいのね!!! そんなことできるの???
Javaでは無理なんじゃねーの? JNI 使ってやるか・・。
100 :
デフォルトの名無しさん :03/08/01 18:15
目で見て数えればいいんじゃないかな? 上から1つ2つ3つ・・・120つ・・・ 左から1つ2つ3つ・・・パンつ・・・ ってさ!
>>101 _,......,,,_
,、:'":::::::::::::::::``:...、
/::::::::::::::::::::::::::::::::::::::\
i::::::::::::::::::::::::::::::::::::::::::::::::::ヽ
!::::::::::::::::::::::;‐、:::::::::_::::::_::::';
|::::::::::::::::::::::| :: ̄ ``!
r''ヾ'::::::::::/ :: |
l r‐、\::/ _,,、ii_;;_、 _,,,l、
ヽヾ〈 ::= -r:;;j_;、`/ :;'ィ;7
!:!_,、 :: ` ー : |: `´/ なに言うとんじゃ、ぼけ
,./ヽ | 、_ :: ,: 'r' :i |: /
,../ `ヽ;_ i | '"、_:::__`:'‐'. /
/ ``'ー 、_\ ! `::` ̄''`チ`シ
/ー 、_ `\:、_ :: ` ̄/
/ ``ヽ、 ヽ`'7‐--'゛
いくら 100 をゲットしても、松本に睨まれたらおしまいだな。w
>>101 自分で自分にいってんのか?w
あせっちゃったねw
最近Javaもあんまり分かってないのに興味本位でJava3Dに手を出し始めた者なんですが
ttp://www.javadrive.jp/java3d/base/index1.html ↓は↑のページの一部
public BranchGroup createSceneGraph() {
BranchGroup objRoot = new BranchGroup();
objRoot.addChild(new ColorCube(0.4));
objRoot.compile();
return objRoot;
}
のように表示した図形をボタンを押したりしてポンっと魔法みたいに
消したり表示したりする方法ってありますかね?
エクリプス使ってるんですが,エクリプスに関係ないと思うので, ここで質問させてください. 例えば,xerces.jarとかjdom.jarなんかのを外部jarをインポートして 作ったプログラムを,ひとつのjarファイルにまとめるときに, 外部jarもまとめて入れることは出来ないのでしょうか? つまり,ユーザの環境でクラスパスとか設定しなくともすむように, ひとつの実行ファイルに出来ないかという意味なのですが, よろしくお願いします.
>>105 最初から外部JARにしないで
プロジェクトの中にコピーもってくればいい
>>106 なるほど・・・有難うございます.やってみます.
108 :
デフォルトの名無しさん :03/08/01 19:01
>>104 イベント処理を追加して、ボタンを押したときにcreateImageでオフスクリーン描画を
すれば消える。
また違うボタンを押したときにcreateSceneGraph()を呼び出すようにする。
---------------------------------------------------------------------
クラス KeyEventのフィールドにキーボード(106)すべての設定がありますので
クラス KeyAdapterでそのキーを押したときすなわちequals()でtrueである場合
なんかをするみたいな感じ・・・
>78=85=86=90 String x = "a" + "b"; String y = "ab"; とおなじソースに書いた場合、x.equals(y) が true になるのは当たり前だが x == y も true になるのを知らないだろ? これが ("a" + "b").intern() == "ab" が true になることが規定されているという意味だ。 ちなみにコンパイラによる最適化によってたまたま x == y になるのではない。 Java 仮想マシン仕様によってそうならないといけないと規定されている。
110 :
デフォルトの名無しさん :03/08/01 19:09
>おいおいクンへ 仕様なんだよ
>>109 >これが ("a" + "b").intern() == "ab" が true になることが規定されているという意味だ。
この一行は全然関係ないね。
String
>>111 は間違えて途中で送信。
>>109 String a = new String("a");
String b - new String("b");
(a + b).intern() == "ab"
↑これがどうなるか知ってるだろうな?
おい、オタク野郎ども! 他でやれよバカ
> String b - new String("b"); コンパイルエラー
>>109 > String x = "a" + "b";
> String y = "ab";
> とおなじソースに書いた場合、x.equals(y) が true になるのは当たり前だが
> x == y も true になるのを知らないだろ?
これは仕様じゃないんだけどね。
117 :
デフォルトの名無しさん :03/08/01 19:56
>>114 repaint();の意味わかってます?
>>115 ─── 、─丶
(___ノ( )
(ノ ー | /
[・][・]─-6 / <ンモー 揚げ足とる~ゥ
C ソ
(!!!!_,_ /
ヽ、 `/
>>119 extreme programing では「実装コードにコメント書くな」という事になってるだけ。
必要があると思うなら書いとけ。
>119 極端だな、こりゃ。 ただ、非常に限定された場合にはありえるかも。 このページはXPでテスト側コードが十分にドキュメント化されているわけだし。 実装詳細のコメントはいらんということかも。 /* You are not expected to understand this. */ とでも書いておくか。
その人の主観かどうか見極めながら読め 書こうが書かまいが、間違いとは言いがたい
>>118 「教師生活25年」とか言うのかと思った
125 :
デフォルトの名無しさん :03/08/01 20:33
126 :
デフォルトの名無しさん :03/08/01 20:35
93さん、94さん、95さん、96さん、97さん、98さん、99さん ありがとうございますぅ(*・・*)。 93さん、94さん、例をありがとう御座います♪ でも、95さん、97さんが仰ってくださいました様に、 コンポーネントの外でのイベントを取得したかったのですぅ(;;)。 JAVAでの実現方法、簡単では無さそう・・ですね( ノ_;)。。。 マウス移動は出来るのにぃ(><)。。。 動作が出来てプロパティ取得が出来ないなんて・・・(;;)。。 ありがとうございました(*><)。。 追伸 黒猫の姿、好きなんです(*・・)、、
128 :
デフォルトの名無しさん :03/08/01 22:42
内部クラスの中から、それを直接囲んでいるクラスのオブジェクトを 参照するコマンドを教えてください。thisでもなくsuperでもなく…
OuterClassName.this
最近はJavaをJAVAと書くのが流行りなんですか?
いいえ。JAVAです。
OK。俺が甘かった。
それはそうと、つぎのスレこそ、
>>8 をカットしたほうがいいとおもう。
前スレ、前々スレ以来、ずっとコピペされ続けてきたけど。
137 :
デフォルトの名無しさん :03/08/01 23:59
自分が書いたメソッドやクラスの 変数やら定数を一覧で取得するには どげんしたらよかとでしょ?
138 :
デフォルトの名無しさん :03/08/02 00:01
もうしわけありませんでした。 言葉足らずでした。 デバッグのときとかに ログで出せたりしないのかなーって いみだったんです・・・。
140 :
アプレット初心者 :03/08/02 01:00
こんばんわ。 アプレットのことで少々お聞きしたいことがあります。 画面フルサイズの親パネルの上に子パネルがいます。 親パネルにイメージを描画するのですが、そのイメージが大きくて、 子パネルにかかってしまいます。 かかってしまうならいいのですが、子パネルの下にイメージがいってしまうようで、 イメージが切れてしまいます。 これはどうにもならないでしょうか?? 一日考えても全く分かりませんでした。 どなたか教えて下さい...
>>136 すまん。
連書き規制回避にレンタルサーバ経由で w3m 使って書いたやつだ。
>>139 Eclipse のデバッガ
どういう時にreturnをつけるのか、 つけないのかが、よくわかりません。
API リファレンスを眺めて、どういうメソッドがあり、どういう戻り値にしているかを研究してみやう。
detach(); で消したり表示したりしようと思うのですが shape.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE); shape.setCapability(BranchGroup.ALLOW_DETACH); objRoot.detach(); とやってもうまく消えてくれません(TдT)
145 :
デフォルトの名無しさん :03/08/02 01:49
(^^)
>>135 さん、ありがとう御座いますぅ(*・・*)。
猫さん可愛い(><)!!!!!
置いておいて・・・(;・・)ノ■
うゅ、出来ない・・みたいですね(;;)。。
JVM使ってる故の制約・・なのかなぁ。。。
Java3D勉強中 ど お し て どのHPにもどの本にも 物体を表示 物体を回転 物体を移動 とかしかのってなくて 物体を消す ってのがないんだよ ヾ(*`Д´*)ノ"ヾ(*`Д´*)ノ"ヾ(*`Д´*)ノ" どなたか教えてくださいませ
>>148 おれは、3Dの仕組み知らないのだが
塗り潰せばいいやんっておもうんだが
そういうことはやりたくないの?
>>141 製造してるのはアプレットで、
サーバ側にDBに接続したりするクラスがあるみたいなのですが、
それでもEclipseでできますでしょうか?
DBと接続やらするクラスを僕のマシンに持ってきたらいいのかな・・。
あとサープレットコンテナもTOMCATじゃないのかもしれない感じなんです・・。
そんなわけでコードの中で一覧を取得して
それを任意のタイミングで吐き出せればなぁーと
思ったわけなんです。
>>149 チェックボックス?で選択する形式で
1:球
2:立方体
3:三角形
とかで1にチェックを入れてボタンを押せば球が表示されて
2にチェックが入っていれば球を消して立方体を表示させたいのです。
さらにその図形を回転させたいのですが・・・
回転させることはできるのですがどうしても消して2つ目の図形を表示させることができません
だから、3Dは知らないけど paintで描くの?Java3Dって? だったら、コードの書き方間違ってるんじゃない?と俺は思う 普通に作れば勝手に背景塗り潰されてから 描画されるはずだが・・・J**の場合はチョイしくみ違うが・・・ 結果は同じになる
>>151 っていうか、楽しそうだな
そのソースうpしてくれ
3Dの魅力を俺にも分けてくれ
こんばんわぁ(*・・)。 んとんと・・・移動できるのなら、 画面外に移動させるとか、、出来ないのかなぁ(・・; それか、3DのコンポーネントをCanvasの上にaddして、 そのCanvasをsetVisible(false)するとかぁ(・・’)。。
うざい
>>151 俺も昔研究でJava3Dを使ったときあるけど、
同じように追加は出来てもremoveが出来なかった記憶がある。
で、今昔使ってたソース見て(すっげー恥ずかしい)やってみたら出来たよ。
一応↓がその(削除で追加)のコア部分だけど,
俺も忘れてしまって詳しくは説明出来ないから自分で理解してくれ.
STLGroupってのはSTLGroup extends BranchGroupで
STLファイルを読み込んで3Dオブジェクトを生成するクラス.
public void actionPerformed(ActionEvent e) {
if (!(e.getSource() instanceof JFileChooser))
return;
File selectFile = this.stlFileChooser.getSelectedFile();
String filename = this.stlFileChooser.getName(selectFile);
String absFilename = selectFile.getAbsolutePath();
this.universe.getLocale().removeBranchGraph(this.scene);
for (int i = 0, n = this.transformGroup.numChildren(); i < n; i++) {
Node node = this.transformGroup.getChild(i);
if (node instanceof BranchGroup) {
this.transformGroup.removeChild(node);
}
}
this.transformGroup.addChild(new STLGroup(absFilename));
this.universe.addBranchGraph(this.scene);
}
あとこんなのも作ってる. private void createSceneGraph() { this.scene = new BranchGroup(); this.scene.setCapability(BranchGroup.ALLOW_DETACH); createTransformGroup(); this.scene.addChild(this.transformGroup); } private void createTransformGroup() { this.transformGroup = new TransformGroup(); this.transformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); this.transformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); BoundingSphere bounds = new BoundingSphere(new Point3d(), 1000.0); MouseRotate rotator = new MouseRotate(this.transformGroup);rotator.setFactor(0.01);rotator.setSchedulingBounds(bounds);this.scene.addChild(rotator); MouseTranslate translator = new MouseTranslate(this.transformGroup); translator.setSchedulingBounds(bounds);this.scene.addChild(translator); MouseZoom zoomer = new MouseZoom(this.transformGroup);zoomer.setSchedulingBounds(bounds);this.scene.addChild(zoomer); PointLight pLights[] = MyLightCreator.getPointLights(); for (int i = 0; i < pLights.length; i++) this.transformGroup.addChild(pLights[i]); this.transformGroup.addChild(MyLightCreator.getAmbientLight()); }
>>151 見たいならUPするけど
Java3d始めて2週間くらいだからソース汚いとか言われそうで少し怖いな
ちなみにJavaすっとばしてJava3dやってます
おおいつのまにか157,158の書き込みが ありがとうございます 難しそうですが解読してみます
159のレスは153へですね ミスです
変数名とかはJavaFriendlySocietyのやつに合わせてたと思う。 重要なのは this.scene.setCapability(BranchGroup.ALLOW_DETACH); の記述と this.universe.getLocale().removeBranchGraph(this.scene); でいったんsceneを切り離したあとに削除処理を行って、また this.universe.addBranchGraph(this.scene); でuniverseに追加し直すことじゃないかな。 まあ、universeやらsceneが何を表してるかはもう忘れてしまったけど。 適当に言ってるから知らんよw
164 :
デフォルトの名無しさん :03/08/02 17:03
PG3ヶ月目の者です。 職場で、↓のソースを見たのですが、ちょっと疑問に思ったもんで、 質問させてください。 if( xxxx.compareTo(yyy) == -1 ){ mecheodA(); // Aの処理を実行 }else{ mecheodB(); // Bの処理を実行 } もともと、ここの処理が書かれているところでは、 yyyより、xxxxが小さかった場合、Aの処理を実行し、 yyyより、xxxxが大きかった場合、Bの処理を実行するようになっています。 しかし、上のコーディングの if( xxxx.compareTo(yyy) == -1 ) の条件の意味は、 xxxx.compareTo(yyy)を実行した結果の値が-1だった場合、 Aの処理を実行するという意味になってしまうと思います。 この条件式だと yyyより、xxxxが小さかった場合、Aの処理を実行し、 yyyより、xxxxが大きかった場合、Bの処理を実行するということを 満たしていないと思っています。 なぜなら、xxxx.compareTo(yyy)で、yyyより、xxxxが小さかった場合は 負の数が得られますが、その負の数が必ず-1であるとは限らないと 考えているからです。 この考えであっているのでしょうか? 一応、調べた結果、自分なりそう結論付けました。 週末に、先輩方に聞き忘れてしまいましたので、ココで質問させて もらいました。 どなたか、質問に答えていただければありがたいです。
んな、どうでもいい質問して。
普通に xxxx.compareTo(yyy) が何を出力しているか自分で確かめてみるのが一番だと思うけど xxxx > yyy xxxx = yyy xxxx < yyy の3通り
169 :
デフォルトの名無しさん :03/08/02 17:22
>>167 レスありがとうございます。
>xxxx.compareTo(yyy)
>が何を出力しているか自分で確かめてみるのが一番だと思うけど
>xxxx > yyy 、xxxx = yyy 、xxxx < yyy の3通り
なるほど。テストする時は、その3通りのパターンを考えてテストしたいと
思います。
ただ、まだ自分のPCが与えられてなくて、ソースと詳細設計書を見ながら、
自習しているといった感じなので、まだしばらくの間、テストができないんです・・・。
>>164 インタフェース Comparable
public int compareTo(Object o)
戻り値:
このオブジェクトが指定されたオブジェクトより小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数
とあるから、チミの主張は正しいと思われ。
>>169 compareTo()の返り値がなんなのかがよくわからないから、そのへんを
意識してソース読み返してみては?
大きいか、同じか、小さいかの3種類を返すだけなのか、それとも
大きかったら小さかったら、その差を返すのか、とか。
多分 -1 0 1 だと思うけどどうだろ・・・
そうだったとしても、インタフェース通りに使え
>>172 インタフェースComparableは
>>170 が書いてる通り、
> 小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数
なんです。-1や1に限定してしまうと、似たようなインタフェースの
Comparatorなんかの使い勝手が悪くなる。
>>173 少なくとも、String#compareTo() は -1 0 1 以外の値も返す。
定数返すようにすればもっと判りやすいんだろうが・・・ 列挙型が無いのがだるいな
一つのクラスで多くの事を処理するよりも なるべく複数のクラスに分けて作っていった方が 良いのですか?
>>178 そういう問題に悩むようになったんなら、
もう少しオブジェクト指向プログラミングについて勉強するのがいいと思う。
(複数のクラスに分けたほうがいいと言ったところで、クラス設計で悩みだすのがオチだから)
>>177 列挙型なら Tiger で追加される。
>>178 イエス
「一つのクラスで多くの事を処理する」場合も
インタフェースは簡潔にするといい(facadeぱたーん
抽象電化製品クラスを継承した既存のテレビクラスとビデオクラスがあって、 これからテレビデオクラスを作るとしたらどうします? is-a、has-a?
has-a
テレビデオはテレビとビデオを持っているわけだね。
>>183 テレビデオって事ですね? 了解しました
>>182 厳密に言うなら
そのどちらでもない
いうなれば
家電製品クラスのサブクラス同士
public class テレビデオ extends 抽象電化製品 { テレビclass tv; ビデオclass video; ... public void on() { tv.on(); video.on(); } } とかか?
どうでもいい質問にレスサンクスです。 Java言語では必ずhas-a関係になると思うのですが、 これが多重継承が許される言語になるとis-aも候補に出ると思うんですよね。 (Javaでis-aにしようと思うと間に何かかまさないといけないですよね?) has-aにするのと class テレビデオ extends 電化製品, テレビ, ビデオ のようにis-aにするのと何が違うのかとふと疑問に思った次第です。
初心者にお勧めなJavaの参考図書ってありませんか? できれば最近のやつで。 「やさしいJava」というものがいいと聞ききましたが、 できればもうちょっといろいろな人の意見を参考にしたいです。
>>182 >どうでもいい質問にレスサンクスです。
こんなこといわれると、おれたち何してたんだろうって思っちゃうので・・・
>>189 「わかるかな?JAVA」
「BlackBookJavaプログラミング」
「赤坂5丁目Java1番」
「独習Java」
「俺たちのJava」
「詳細Java GUI編」
「なかなかJava前編」「どうしてJava後編」
「デザインパターンで考えるJava入門」
「Java質問スレ1~28巻」
「今日からはじめるJavaプログラミング」
「集中講座Javaの2週間」
「猫でもわかるJava言語」
「ヒカルのJava」
「Java bo beautiful human life」
「ああ!あの時の・・・Java」
「ああ、昔あったよね・・・そんなJava」
「山下君!この書類Java頼む」
「食事中にJava見るんじゃありません!」
>>182 日本語で考えればいい
テレビ「は」家電製品である だからis
家電製品はテレビ持ってるっていわないだろ?
車とエンジンは
エンジンは車ではない
車はエンジンでもない
車にはエンジンあるから has
テレビデオって言うのは難しいけど
基本がテレビだと考えよう
そうすれば、テレビデオはテレビでありis
テレビデオはビデオもってるhas
俺の父ちゃんhage
Java 的には Interface テレビ Interface ビデオ Interface テレビデオ extends テレビ, ビデオ じゃないのかなぁ
え~? テレビとかビデヲインターフェースにするには ちょっと具体的じゃない? どうせならAV機器って言うインターフェースの方がマッチしてると思うんだけど・・・
>>199 >>182 は既存だって書いてあるのもあるが、
テレビは単独でも動作することを考えるとインターフェースはない。
ただ、ビデオに関しては「録画機能を持つ」と定義すればあり得るかも・・・ないか。
>>157 消えたああああああ!!!
無事消えました。
ありがとうございます。
消えたのはいいけど次の物体が表示されないという問題がまだあるんですが・・・
ま、それは明日にしよう
今日はもう寝る!疲れた
そうなんだけどさ、 最近のソースを読むと、InterfaceとFactoryパターンの組み合わせが多いから、 interface Applicance {} interface Television extends Appliance {} class TelevisionImpl implements Televison { } class TelevisionFactory { public Television createInstance() { ... } } みたいなコードがはやりっぽいと思うんだけど。
プラグマティックに言えば、既に作成されているだろう家電製品、 テレビとビデオがどう設計されているかによる。 テレビとビデオがクラスなら、余計なメソッドを外に見せないためにも コンポジションするのが妥当かと。
実際の例は書けないけど、うちの学生の間で長いこと使われているコードで
[携帯電話クラス]があって、それに[計算機クラス]を継承して
[計算機付き携帯電話クラス]を作ってたんですよね。
のちにカメラ機能を追加できそうだったので、
[計算機つき携帯電話クラス]を継承して
[計算機とカメラ機能付き携帯電話クラス]を作ったんです。
さらに色々な機能を付けてたのですが
あまりにも複雑になってきたので、個人的にリファクタリングして
[携帯電話クラス]を継承して、全部has-a関係にし、
[多機能な携帯電話クラス]にしたんです。
分かりやすさは前よりも向上したのですがただ、
このあとにまた他の機能を追加したとき、今度はあまりにも多機能になり過ぎて
分かりにくくならないか?
と思いまして、このリファクタリングは本当に正しかったのか
と疑問に思ったんです。
>>202 とか興味深く、もっと本読んだりして勉強したいと思います。
>>204 基本的には203のいうとおりクラス継承でなくオブジェクトコンポジションを利用して設計しておけばいいですよ。
だからあなたのリファクタリングは正しいです。
可能であればオブジェクト継承元のクラスをインターフェースにするとさらに動的な構造を持たせることが可能です。
よく、クラスを作るときに そのクラス内からしか使わないメソッドをprotectedにしてあるコードをよく見ます これは(このクラスを継承することがあろうがなかろうが)こう言う風に書いておいたほうがいいのですか?
文字列を改行したいのですがいい方法を探してます。 たとえば1~500の長さの文字列を 一定の文字数たとえば50文字ごとに改行を入れるような感じです。
>>206 サブクラスがオーバーライドで動作を変えることを意識してんじゃないの?
>このクラスを継承することがあろうがなかろうが
サブクラスを禁止するクラスは final を付けるわけで
それ以外なら(現状継承されてなくても)継承されることを多少は意識すべき
>>211 >>207 読んだだけではそう取られても仕方がない。
この程度のロジック(と言うほどのものでもない処理)さえ組めないんだから
>>211 俺は209には「\nじゃなくてline.separatorだろ」とつっこみたい。
とりあえず207は文字数の数え方を示すべき。「MS932ベースで 全角は2文字としてカウントでよろしく」とか。
必死だなw
何でオレがスカトロマニアだってバレたんだ?
Lakeアプレットのような画像処理系のアプレットを作りたくて 3日ほど前からJavaはじめた者です。 で、現在 やさしいJavaを読み終わったぐらいのレベルなのですが、 上記のようなアプレットだけ作りたいって場合、次にやるべきことってなんでしょうか。
やさしいJavaってなに?どこの大統領?
文字列はすべてASCIIです。 すぐ思いつくのはグルグルまわしながらsubstringで切りとって \r\nくっつけていく方法のなのですが。 もっとましな方法があるかと思って。
終了
あなた、もう寝ましょ
225 :
デフォルトの名無しさん :03/08/03 00:57
「Javaは1日1時間」
>文字列はすべてASCIIです。 え?Unicodeのはずですよ
if(return.getNull() == null){ ・・・・・ } nullなのかどうか確認しようととしているのに、NullPointerExceptionを返すなんて、sunは配慮が無い。 まる二日かけて作ったデータを直列化したものが使い物にならなくなるなんて信じられない。 どうにか対策教えてください。
当然もとのデータはprivateになっているということで…。
データ作り直すしか無いのか?
>>227 何をしたいのかよくわからんが、NullObject パターンは使えないのか?
>>230 ごめん。もうちょっとがんばってみます。
>>230 returnが、というよりもインスタンスがnullだった。
ごめんなさい。
例題で Runnable hoge = new Runnable() { public void run() { ... } }; new Thread(hoge).start(); を new Thread() { public void run() { ... } }.start(); と書いてはいけないのですか? }
無名クラスは分かり辛いからできるだけ却下。
無名クラスが簡単に書けるようになるといいのに。
書けるじゃん
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,__ | さらっと書けるようになれますように.... / ./\ \________________ / ./( ・ ).\ o〇 ヾ!;;;::iii|//" /_____/ .(´ー`) ,\ ∧∧ |;;;;::iii|/゙  ̄|| || || ||. |っ¢..|| ̄ (,, ) ナムナム |;;;;::iii| || || || ||./,,, |ゝ iii~ ⊂ ヾwwwjjrjww!;;;;::iii|jwjjrjww〃 | ̄ ̄ ̄|~~凸( ̄)凸 .( ,,)~ wjwjjrj从jwwjwjjrj从jr
さらっと書けるじゃん
JAVA初心者ですが、SUN CERTIFIED PROGRAMMER FOR THE JAVA PLATFORMに 目標を立てて挑戦してみようと思ってます。 そこで独習JAVAを薦められたんですが、自分にとってはちっと難しいみたいです。 やさしいJAVAも評判の様ですけど、これ一冊でSUN CERTIFIED PROGRAMMER FOR THE JAVA PLATFORMに 試験範囲は対応出来そうでしょうか。 お勧めの参考書等あればアドバイスお願いします。 よろしくです。
241 :
デフォルトの名無しさん :03/08/03 15:42
MS-DOSプロンプトってどこにあるんですか? スタートメニューにないのですが・・
俺が隠したからね
一度氏んでみるのもアリですね。
[ファイル名を指定して実行] で command か cmd
>>241 Linuxにはついてない
ktermとかならある
247 :
デフォルトの名無しさん :03/08/03 16:35
あつい
冷房ねーの? 貧乏人
249 :
デフォルトの名無しさん :03/08/03 16:44
JTree からurlアドレスを渡してWebコンテンツを開きたいと思います。
getAppletContext().showDocument(new URL("
http://www.asahi.com "), "");
だとエラーになるのですが、、おしえてください
250 :
デフォルトの名無しさん :03/08/03 17:29
指定行だけを読み込む方法ってありますか? 読み込むファイルが2000行をこすので、 バッファリーダーを使うとちとつらいので・・・
プログラミング言語Javaってあんまり読まれてないのかな。
>>250 java.lang.RandomAccessFile
ただし、行単位ではなくバイト単位なので、
行の概念をどう扱うかは自分で解決してね。
一番楽なのは1行のバイト数を固定する方法。
実装が楽でいいけど、1行に入る文字の上限ができるしファイルに無駄ができるのが欠点。
他の方法は自分で考えて。
indexをはればええんちゃう?
>>250 指定行をどうやって指定してるのかそれがわかれば解決できるかもしれない
行数を指定なのか?
ある文字含まれる行なのか?
誰かJava3D分かる人いませんか~ 俺の悩み聞いて下さい これは愚痴なのだがJava3Dのスレがないのが悲しい
逝ってきます!
260 :
デフォルトの名無しさん :03/08/03 21:13
JTabelを列ごとに編集不可にしたいですが方法がわかりません。 8列あるJTableの5~8列を編集不可にしたいのですが。 よろしくおねがいします。
261 :
超超初心者・・・ :03/08/03 21:17
javaを始めた、というか始めようと思った、プログラム未経験者のものです。 さきほど、Pathの設定というものをしようとしていました。私の持っているテキストに よると、AutoExac.batというファイルを開き、その中にPATHという設定があればその行の末尾に "C:\j2skd1.4.0_03\BIN"という記述をするよう書かれていたのですがコンパイルがうまくいかなかった ため、PATH=○○○○(何が書かれていたか覚えていません)の記述の あった行の下に更にPATH=C:\j2skd1.4.0_03\BINという記述をして、再起動 しようとしたら、Windowsが開かなくなってしまいました。Dos画面のように なってWin.Comがみつかりません。Windowsの読みこみを続けることができません というメッセージが出てしまいました。システムの復元などができればと 思い、調べてみたのですが、Windows98の場合の復元方法が見つからず とてもこまっています。どなたか解決方法に心当たりのあるかた、助けてください!!
>>260 自作TableModelを定義し、そのクラスで
javax.swing.table.TableModel#isCellEditable(int rowIndex, int columnIndex)
を定義して、columnIndexが4~7のときにfalseを返すようにする。
そのインスタンスをJTableのTableModelにセットする。
自作TableModelは、javax.swing.table.AbstractTableModelを継承したクラスを作るのがいい。
この話がサパーリわからんようなら、APIドキュメントのjavax.swing.JTable、javax.swing.table以下と、
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html を読んでJTableの使い方を理解する。
>>240 さん
レスありがとう御座います。
一回マ板のスレで聞いてみますね。
266 :
デフォルトの名無しさん :03/08/04 00:02
>>264 DefautTableModelつかってるだけなら、単に、
class MyTableModel extends DefaultTableModel{
public isCellEditable(int rowIndex, int columnIndex){
if(columnIndex>=4 && columnIndex<=7)return false;
return super.isCellEditable(rowIndex,columnIndex);
}
}
でいいんじゃねえの。
267 :
デフォルトの名無しさん :03/08/04 00:07
>>250 どうしてもスピードアップしたいなら、そのファイルを作成する時に、
一番頭とかオシリとかに、各行のヘッダ位置のリストを保存しとくべし。
そうすれば、読むときは、最初にそのリストだけ読んで、2000番目の
位置にジャンプすればいい。
PDFフォーマットで(行単位に対してではないけど)この方法をつかっているよ
268 :
デフォルトの名無しさん :03/08/04 00:14
>>249 Appletは、普通ダウンロード元サーバ以外へのソケットコネクション生成は
できません。署名入りJarにして、ユーザに、Applet起動時に「そういうこと
をしてもいい」という認証をさせてください。
>>244 cmdででてきました。ありがとうございます
超初心者だったので
http://www.atmarkit.co.jp/fdotnet/special/java2cs/java2cs_01.html 具体的に考えてみよう。
Webのユーザビリティの低さに嫌気がさして、スマート・クライアントを作ることにしたとする。
その場合にJavaで発生するのは、GUIコントロール(コンポーネント)の
イベント・ハンドラ(リスナ)の実装をどうするかという問題だ。
フォーム(フレーム)にボタンを2つ貼り付けた場合、ボタンのイベント・ハンドラを
フォームのメソッドで実装することはできない。
同じインターフェイスなのでメソッド名が同じになってしまうためだ。
これを避けるためにはボタンA用のイベント・ハンドラを表現するクラスとボタンB用の
イベント・ハンドラを表現するクラスを作らなければならない。
貴重な労力の無駄遣いだ。嘆かわしい。
↑
>ボタンのイベント・ハンドラをフォームのメソッドで実装することはできない。
ほんとうですか?
>>261 稀にいる大馬鹿者だな。世間は君を必要とはしないよ。
272 :
デフォルトの名無しさん :03/08/04 06:09
"04-Aug-2003 06:02" のような文字列を日付として取り扱いたいのですが、 SimpleDateFormat df=new SimpleDateFormat("dd-MMM-yyyy HH:mm"); Date date=df.parse("04-Aug-2003 06:02"); とすると、 java.text.ParseException: Unparseable date: "04-Aug-2003 06:02" とエラーが出ます。 これは"Aug"という文字列で解析に失敗してるようなのですが、 何か解決方法はありませんでしょうか?
>>270 イベントリスナの実装はフレームのコンストラクタでやるのが普通だろw
>>270 件の記事はタコライターの日記または感想文なので、真面目に読まないほうがいいよ。
フォーラムでことごとく論破されている。
>>272 SimpleDateFormat("dd-MMM-yyyy HH:mm")
→
SimpleDateFormat("dd-MMM-yyyy HH:mm", Locale.ENGLISH)
Locale.USとどっちがいいのかな。
>>273 多分、君は意味を取り違えている。その記事は
ボタンを2つ配置したフレームクラスがあって、
それぞれのボタンのイベントハンドラ(アクションリスナ等の処理メソッド)を
そのフレームクラス上のメソッドでは行えない、と言ってるのだろう?
まあその記者はGUIが相当弱そうだがな。
J2EE一辺倒でJavaを語るなヴォケといいたいw
Javaを学ぼうと思っているのですが 調べてみたところ4種類ぐらいあるあるのですが どれから始めたらよいですか?
>>278 スタートアップぐらいは人に聞かず自分でやれよ。
>>1-14 あたりににJava製作環境導入についてのリンクがあるだろ。
努力もしないで教えてばっかりいうなよ夏厨君w
>278 逆に教えてほしいのだが、「4種類ぐらい」ってのは何と何を指している?
>>276 サンクス。出来ました。ありがとう。好きです。
問題:以下のコードの実行結果を1つ選択して下さい。 class Bool { static boolean b; public static void main(String [] args) { int x=0; if (b ) { x=1; } else if (b = false){ x=2; } else if (b){ x=3; } else { x=4; } System.out.println("x = " + x); } } 1.X = 0 2.X = 1 3.X = 2 4.X = 3 5.X = 4 6.コンパイルエラー
ていうか、Sunの試験って毎日やってんの? 情報処理試験みたいに年に数回しかやってないと思った しかも試験時間は2時間弱かよ!結果もその日にわかるらしい 全然知らなかった・・・丸一日かかってあたりまえだと思ってたよ なんか今まで、敬遠してたけどうかうかしてられないですね
自動車免許
285 :
デフォルトの名無しさん :03/08/04 13:28
あるServletのクラスでcatchしたExceptionをString型にして、 JSPに渡してブラウザで表示させたいのですが、toStringだとバックトレースが表示されません。 どうしたらバックトレースも含めたString型(にキャストできる)のエラーメッセージ を取得できるのでしょうか?
286 :
デフォルトの名無しさん :03/08/04 13:36
>>285 StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
String s = sw.toString();
288 :
デフォルトの名無しさん :03/08/04 16:01
swingを使って画面を作っています。 画面数が30と多いため、画面遷移する際、パネルに張っているボタンや リストをクリアしようと思うのですが、パネルだけをnullとするだけで いいのでしょうか? それとも、パネル上の要素全てnullとしなければならないのでしょうか?
289 :
デフォルトの名無しさん :03/08/04 16:51
>>282 6コンパイルエラー
else if (b = false){
b == false です。
>>289 ぎゃはははっははははははは
ひっかかったひっかかったワイワイワーイ!
勘違い野郎発見しました!!
/ /:::::::::::::::::::::::::`'::::::::::::::::::::\ \
\. /::::::::::::::::::::::::::::::iVi:::::::::::::::::::::::ヽ/
ヽ/::::::::::::::::::::::::::::::::| |::::::::::::::::::::::::::|
l:::::::::::::::::::::i:|:::::::|:| |/|'l:::::::: i:::::::::|、
|::::::::::ト:从|'l:|:_::::|'! / `ー '|:::::::/::ヽ
N::人::| , ─、` ,─ 、 |へ':::::::|
>>289 いい?
/:::::::r‐l 〈 i.::::| |.::::i 〉 | 〉〉::::::| もうこんな間違いしちゃだめよ
|::::::::l〈ヽr 、 ̄  ̄ |ノ::::::::::ト、
|::::::::ヽ | | ' /::l::|:::::::::ト、\
|'i;:::::::/| | 匸) / Tー、::::;N| ├、
/ ̄/ | ト r‐、 イ〉 ヽ  ̄ | |
/ | | └ ⌒ヽ/ / | | /
/ ヽ | -'⌒ヽ〉 / | /
>>288 変数にnull代入してもパネルはなくなりません。
java.awt.Container#remove(Component)を呼んで、
コンテナから明示的に削除しましょう。
また、その後でjava.awt.Container#validate()を呼ばないと
再配置したコンポーネントが表示されなかったと思います。
295 :
デフォルトの名無しさん :03/08/04 18:18
コンパイル時には何のエラーもなく成功し、アプレットビューワでも正常に動作するのですが、 私がコンパイルしたアプレットが、ブラウザ上で表示されません。(デフォルトの灰色画像のまま) 既にブラウザ上でアプレットとしてきちんと表示される、本や他人のソースファイルなども、 私がコンパイラするとブラウザ上で表示されません。(私がコンパイルせず他人がコンパイルしたものはブラウザ上で表示される) コンパイラも様々なバージョンでコンパイルし、 JREもきちんと設定し、様々なバージョンでIEやネスケで試したんですが、直りません。 どなたか解決法をご存じの方はいらっしゃらないでしょうか?
なんでだろ~♪なんでだろ~♪
>>292 >>293 のために
んなこたあない。
とだけでもいっとこう。
こんな簡単な宿題も解けないんでは・・・・
>>297 動かしたら
5.X = 4
になりました
俺が動かしたら"x = 4"ってなったからどれにも当てはまらないと思うんだが。
>>299 ああ、そういうことね
Xはxに読み替えてね
出力の比較はequalsIgnoreCaseを使うことっていう注意書きがいるな。
>>294 回答ありがとうございます。参考になります。
303 :
デフォルトの名無しさん :03/08/04 22:20
アプレットが動きません。 appletviewerだと成功します。 IEでも成功します。 NN7.1だと 「読み込み中 -Java アプレット Sending events to applet.LOAD Sending events to applet.INIT Sending events to applet.START」 で止まっています。 ちなみに同じNN7.1でも別のアプレットは動いたりします。 どうしたらいいのでしょう?
>>303 同じような質問ですね。
あなたのコンパイラのせいか、もしくはアプレット全てなのかどうかは限定できないですが。
何のヒントにもなりませんが、
私のほうでは以前IEで動作せずNNで動作するというあなたと逆のことが起こりました。
その時は、winがVMを対応しなくなったばかりでsunのJREがうまく対応していなかったみたいです。
NN7.1だと、デフォルトのjavaプラグイン(またはネスケのサイトにあるプラグイン)が古いバージョンの可能性があります。
いったんプラグインや既存のJREを削除して、最新のJREをsunからダウンロードしてインストールすることを強く勧めます。
このスレに来るたび、アプレットをいまだにやってる人間がいることに驚き。 イントラネットなんかでは利点もあるだろうけど、いまさらアプレットをやる利点は何? あと MS JVM の問題とか初心者はいろいろひっかかるとこも多いから プログラミングの勉強にもあんまむいていないと思うんだけど。
accessDBにJDBCでアクセスしたいのですが定石みたいな構文はあるのでしょうか? あと、JDBCはJDKの中にあるのでしょうか?
Appletは捨てケテーイ。JavaWebStartにしろ。 なんでいまさらIEのView内部で固定サイズでJavaを動かしたいのか 意味不明。頭悪い。無知蒙昧。
>>305 勉強中だからこそアプレットやってるんでない?
入門書にもよくのってるし、GUIもそこそこ簡単だし、アプレットなら
自分で作ったオナニーソフトも配布(公開)しやすいし。
誰もが通るとまではいかないにしろ一過性なもんでしょ。
>>305 shockwaveでも無理な死ぬほど重い処理をブラウザ上で実行するため。
・・・そのくらいしか思いつかない。
javaでpingって作れないのか
pingを作るにはraw socketというのが必要なんだけど標準ではついてないみたい
313 :
デフォルトの名無しさん :03/08/05 11:37
java3dの視点を動かすのは簡単なんだが その視点移動の速度が速すぎる とにかく速い 俺がオナーニで逝くのにかかる時間並に速い 遅くする方法ない?
textareaにて改行した文をDBに保存して 再度それをtextareaに取り出したら改行の<br>がついて 表示されてしまうのですが どうしたらいいのでしょうか?
>>314 読み込むときに切り取っておかないといけない
それと、textareaの属性wrapも関係している
改行もデータベースにデータとして取り込むのか それとも、改行は削除してデータベースに取り込むのか
>>313 2枚重ねてつければ感度は鈍るらしいよ。遅くなるかも。
320 :
はずかしながら :03/08/05 15:52
String#compareTo() などの表記の # てなんですか。
++ ++ → #
StringクラスのcompareTo()メソッドという意味
別にString@compareTo()とかでもいいけど
なぜ、「#」になったかは
>>323 あたり
たとえば「String#compareTo()」を名前欄に入れて、 どのメソッドがトリップになっているかを当てるゲームが昔流行っていたから。
325 :
デフォルトの名無しさん :03/08/05 16:21
static でないメソッドという意味なの ?
327 :
デフォルトの名無しさん :03/08/05 16:25
>>325 staticは関係ないけど
たしかUMLの可視性にはそういうのあったな
publicなメソッドには「+」
privateは「‐」
protectedは「#」
packageは「~」
でもそうなると
「String#compareTo()」
は、protected?
>>320 $JAVADOC_ROOT$/docs/ja/api/java/lang/String.html#compareTo(java.lang.String)
とかが省略されたのでは?
とか勝手に思ってたけど…
俺は static であるかどーかとか、アクセス修飾子とか関係無く "#" をつけたり "." をつけたり してる。
遅延初期化について public static final Stringなメンバを遅延初期化するって一般的ですか? public static final String foo; static { foo = "bar"; // プロパティファイルなどから動的に、一度だけ取得する。 } こういった場合は、getterメソッドを用いて遅延初期化させた方がいいのでしょうか。
>>329 > $JAVADOC_ROOT$/docs/ja/api/java/lang/String.html#compareTo(java.lang.String)
すっげー納得。
>>329 ( ・∀・)つ〃∩ ヘェーヘェーヘェー
スレ違いだったらすみません。 Borland JBuilder9 パーソナルについてお尋ねさせてください(急ぎませんので気長にお返事待ちます)。 ボーランドからメールで受け取った許諾ファイルをインポートしようとしても 「使用許諾ファイルが壊れています」 と出てしまいます。 ファイルを受け取った際に、メールソフトがメール本文とファイルの中身を テキストファイルとして一つに繋げてしまったためにちゃんとインポートできないのだと 思うのですが、、 ファイルの中身はこのような形↓ (改行) -----BEGIN BLOCK----- (改行) ********************* ********************* *****いろんな文字***** ********************* ********************* (改行) -----END BLOCK----- (改行) でいいのでしょうか? それとも、-----BEGIN BLOCK-----や-----END BLOCK-----という文章も メールソフトが勝手につけてしまった文字なのでしょうか?? 色々試してもだめで、ネットでも有効な情報が見つかりませんでした。 どなたか許諾ファイルを持っている方いらっしゃいましたら、元々はどのような形式だったのか教えてください。 長文ごめんなさい。よろしくお願いします。
ちなみにメールソフトはBecky ver2、OSはWindows2000でファイルは ホームディレクトリ C:\Documents and Settings\<username> に保存しています。
>>333 THIS IS AN AUTO-GENERATED MESSAGE - PLEASE DO NOT REPLY TO THIS MESSAGE(改行)←1行目
(略)
-----END BLOCK-----(改行)
(改行)←100行目
てな感じだったよ。ファイル名はreg???.txt
ていうか、本文と添付ファイルと内容一緒か
>>335 (=
>>336 ?)さん、どうもありがとうございます。
でも駄目でした。。全く同じ内容の許諾ファイルなんですが^^;
本当にファイルが壊れてるのかもしれません。
とりあえず
>>335 さんのお陰で、そのままのファイルをインポートすれば良いことが分かったので
もう一度ファイルを取得してみます。
ありがとうございました。
338 :
デフォルトの名無しさん :03/08/05 20:04
RMIをいじっています。 java.rmi.StubNotFoundException と出ます。 どうしたらよいでしょうか? コンストラクタ時に既に何か必要なんですか? import java.rmi.*; import java.rmi.server.*; public class SampleRemoteServer extends UnicastRemoteObject { public SampleRemoteServer() throws RemoteException { super(); } public static void main(String[] args) { try { SampleRemoteServer r = new SampleRemoteServer(); System.out.println("success"); } catch(Exception e) { System.out.println(e); } } }
340 :
デフォルトの名無しさん :03/08/05 20:29
>>339 それはわかったのですが、クライアント側で定義したインターフェースの
名前がサーバ側で取り込めない、
あと、クライアントのmainが内部クラス内にあるんですが、その呼び出し
方法がわかりません。
341 :
デフォルトの名無しさん :03/08/05 20:57
>>338 それはわかったのですが、お前の態度が気に入らない
>>340 俺はRMIをさっぱり知らないが、今少し検索してみたらすぐわかったぞ
自 分 で 調 べ ろ 夏 厨 房
>>342 本当に分かっているのならちゃんと説明できるはずだが?
340=343
346 :
デフォルトの名無しさん :03/08/05 21:40
今、残っているのはもっと単純なことです。 >クライアント側で定義したインターフェースの名前がサーバ側で取り込めない、 ですが、下記のような状況です。 myServerの方をコンパイルしようとしたら、「シンボルを解決できません」とエラーが出ます。 別のプログラムなのに、どうしてmyRemoteInterfaceという名前が伝えられるの? トップレベルクラスなら同じディレクトリに置いておけば使えるけど、 ここでは内部クラスや内部インターフェースとして定義した名前を別のソースから使いたい。 パッケージってのがよくわかってないのが原因なんでしょうか? public class myClient { public interface myRemoteInterface extends java.rmi.Remote { <RMIメソッドの定義> } ・・・ } public class myServer extends java.rmi.server.UnicastRemoteObject implements myRemoteInterface { ・・・ }
347 :
String ◆Cci17thXHk :03/08/05 21:50
基本をわかってないんじゃないか? RMIはカンケーなしに・・・
348 :
デフォルトの名無しさん :03/08/05 21:51
あるクラスの内部インターフェースを、他のクラスでimplementsしたい。 そういうことですね。
public class myClient { public static interface myRemoteInterface extends java.rmi.Remote { <RMIメソッドの定義> } ・・・ } public class myServer extends java.rmi.server.UnicastRemoteObject implements myClient.myRemoteInterface { ・・・ } あんさん、インナークラスのネームスペースやらスコープ範囲やらを分かって ないな。 もしインナークラスがstaticじゃないなら、そのクラス型をいじるにはアウタ ークラスの" インスタンス"が要る。 クラスフィールド、インスタンスフィールドと同じ扱いが必要なんだよ。 public class A{public classB{}} public class C{public static class D{}} A.B objB = new A().new B(); C.D objD = C.new D();
突然だがな、寝る前にちょっと暇ができたんで言っとく。 お前ら上級者には 時に適切な助言をもらい、時に目から鱗の助言をもらい、 時に不適切な助言をもらい、時に意味不明の助言をもらい、 そして煽られ、無視されてきた。 しかしこのスレにきて早3週間、「コンパイルって何よ?」って状態でお手上げだった漏れも ようやくJAVAで簡単なアプリケーションを作れるようになった。正直、ちょっと感動した。 お前らが人に感謝してほしくて初心者の質問に答えるような、 そんな殊勝な連中じゃないことぐらいよくわかってる。 だからキモいんだよオメーとか言われても仕方ない。 そして俺は素で夏厨ではない。 だけど言っとこう。 チョットシッテルカラッテ アオリヤガッテ ヽ( `Д)ノ <どうもありがとう>ヽ(`Д´)ノ
>>350 じゃあネタにマジレスしてやるよ。
人に聞くだけじゃなくて自分で調べる技術を身につけやがれ。
Javaで簡単なアプリケーションなんて、ネットで検索すりゃ出てくるんだよ。
それをいちいち人に聞いてるようじゃ、今後上達する可能性はゼロだな。
ただ、もし自発的に調べるようになった場合だ。
苦労を重ねてプログラムが動いた瞬間のうれしさを知ってしまったお前は、
現時点で絶大なポテンシャルを秘めているとも言える。
今の気持ちを今後絶対に忘れるな。そのモチベーションは本やネットでは得られないぞ。
このスレタイがよくない
>>352 じゃ、初心者無視スレでも立ててくれ。
前スレは閑古鳥が鳴いてたが。
354 :
デフォルトの名無しさん :03/08/06 01:47
synchronizedについて質問です。 様々なところで、synchronizedメソッドは、synchronized (this)と同じであるという記述を 目にするのですが、下記の実験ではどう考えても同じには見えません。 私の想定では、mg1(this)オブジェクトはロックがかかっているために、 何も出力されずに永久ループになるはずです。 しかし、print()と出力されます。 何故でしょうか・・・? 見づらい(インデントが全角空白です・・・)コードで申し訳ありませんが、よろしくお願いします。 次のレスで実験コードと、出力結果を示します。
355 :
デフォルトの名無しさん :03/08/06 01:48
>>354 の続きです。
実験コードは下記の通りです。
class Hoge {
public void threadTestStart() {
Mage mg1 = new Mage();
Thread th1 = new Thread(mg1, "th1");
th1.start();
try {
Thread.sleep(500);
} catch (InterruptedException ie) {}
mg1.print();
mg1.printLoop();
System.out.println(mg1.getLoop().reverse());
}
public static void main(String[] args) {
(new Hoge()).threadTestStart();
}
}
まだ続きます
356 :
デフォルトの名無しさん :03/08/06 01:49
>>355 の続きです。たくさんですみません・・・。
class Mage implements Runnable {
private StringBuffer loop;
Mage() { this.loop = new StringBuffer("eurt"); }
void print() { System.out.println("print()"); }
void printLoop() { System.out.println(this.loop); }
StringBuffer getLoop() { return this.loop;}
public void run() {
synchronized (this) {
synchronized (this.loop) {
while (!"true".equals(this.loop.toString()));
}
}
}
}
出力結果:
java Hoge
print()
走っているスレッドを考えよう。 まず、main関数のスレッド。それと、君が立ち上げた"th1"スレッド。 threadTestStartの先頭でth1スレッドが立ち上がって、 synchronized(this)とsynchronized(this.loop)をロックし続ける。それは問題なし。 その次、threadTestStartでmg1.print();が呼ばれる。これも問題ない。 なぜなら、Mage#print()メソッドはsynchronizedによってロックされていないからだ。 同様に、mg1.printLoop();も呼ばれ、eurtを出力する。 そして、最後にSystem.out.println(mg1.getLoop().reverse());が実行され、trueを出力する。 これでmainスレッドは終わり。そして、th1スレッドは永遠ループにはいる。 だからその出力結果はおかしいはず。 print() eurt true <無限ループ> のはずなんだが、俺の勘違いかな…テストしてないので自信がない
あ、StringBufferだったのか。じゃ永遠ループしないね。自己レスすまそ
359 :
ネタへマジレスしてみるテスト No.1 :03/08/06 02:14
>>350 噴出すほどワロタ。
お前のような自分で調べたり、本を買って独学で取得することが出来ないやろうが、
ある程度他の人に教えることができるまでの技術を身につけることは出来ないぞ。
必要ないがな。
俺の友達に、アプリのへルプが読めない香具師がいる。だからフリーソフトさえ使えない。
予断だが、そいつが12M、ADSLなのに俺がISDNしか使えない地域(数十メートル先では余裕でADSL出来るんだがな)なのだ。泣けてくるぜ。
話を戻すと、どう考えてもヘルプが読めないわけがない。なぜなら日本語だからだ。そんなに難しい日本語ではない。
それではなぜ読めないか?
読もうとしないからさ。読もうと努力することをしないからさ。
これはお前にも当てはまるわけだ。他人に教えてもらう前に、自費で本を買え。
どれがいいかなんてのは、立ち読みで選ぶんだ。まぁお勧めを買ってもいいさ。
それを一冊こなせ。意地でもこなせ。
最初はSystem.out.println("オマエモナー");程度だろう。
ひとまず例題を打ってみたら、新しいメソッドを改造してみるわけだ。
例えばSystem.out.println("俺もなー");とか。
そして実行する。
こういうことを繰り返していき、たくさんのメソッドやらを使えるようになると、
そのうち自分で実現したい機能を、自分で考えて実現することが出来るようになる。
360 :
ネタへマジレスしてみるテスト No.2 :03/08/06 02:15
これこそがプログラマーであろう。もちろんそこからはどれくらい効率的にできるか、コードをどこまで短く出来るか、 どれくらい実行速度を速くできるか。色々と考えれることがある。 もちろん今はネットがあるから、すぐに習えるが、それがいいのか悪いのか俺としては正直分からない。 自分でとことん考えることをしなくなるからな。 本当はそこに自分の飛躍する好機があるはずなのだが、ネットの普及でそれをやらない人も多いのかもしれない。 俺個人の考えとしては、出来るだけ最初のほうはネットで調べるのを控えたほうがいいような気がする。 主観的に見てだがな。 客観的に見れば、本を買わずに、いい勉強材料があるから絶対にいいのだが。 俺が言うネットの利用ってのは、アルゴリズム(つまり機能の実現方法)だ。 ソートやら、サーチやらのことや。 こういう機能のメソッドがあるかってのを調べるには、ネットは最高だなぁと思う。 まぁ本をこなせ。頑張れ。あと351の後半部分を頭に焼き付けておくことや。
>>354 簡単に言うと
PrintStream#println(Object)
PrintStream#print(Object)
String#valueOf(Object)
StringBuffer#toString()
new String(StringBuffer)
の順で呼ばれて new String(StringBuffer) 内で
StringBuffer(this.loop) のロックを得ようとして固まるだけ。
synchronized (this) はあっても無くても関係ない。
ああ、そっか、StringBufferってスレッドセーフだっけ? synchronized(this.loop)と StringBuffer#toString()のロックがぶつかっているのか。なら納得
363 :
デフォルトの名無しさん :03/08/06 07:42
>>354 です。
答えてくれた方は
>>357 さんと
>>361 さんでしょうか?
ありがとうございます。
ひょっとして、仮にStringBufferがスレッドセーフではなかった場合、
mg1.printLoop(); の行も動くってことでしょうか?
もし、そうであるならば納得できます。
print();が出力されるのは、print()メソッドがsynchronizedされていないから
というのは理解しました。
364 :
デフォルトの名無しさん :03/08/06 07:51
366 :
デフォルトの名無しさん :03/08/06 12:52
基本ですいません。 Fileオブジェクトを作りたいのですが File file=new file("C:\\java","test.txt"); もしくは File file=new file("C:\\java\\test.txt"); とやってもエラーがでてしまいます。 どこが間違っているのでしょうか?
File file=new File("C:\\java\\test.txt");
あ、失礼しました。 書き間違いです。 File file=new File("C:\\java\\test.txt"); としてますが シンボルを解決できません。 シンボル:コンストラクタ File(java.lang.String) とエラーメッセージがでてきています。
importしなさい
あぁ、 import java.io.*; とちゃんと書いているのですが・・
ローカルパッケージにFileクラスが存在するのではないかね。 java.io.File file = new java.io.File("c:\\java\\test.txt"); を試してみたら。
373 :
デフォルトの名無しさん :03/08/06 14:24
>>354 見づらいと思うなら、コピペ前にスペースを で置換すればいい
俺はそうしてる
>>372 どうもありがとうございました。
java.io.File file = new java.io.File("c:\\java\\test.txt");
でいけました^^
>>305 > このスレに来るたび、アプレットをいまだにやってる人間がいることに驚き。
> イントラネットなんかでは利点もあるだろうけど、いまさらアプレットをやる利点は何?
JavaWebStartを使えといいたんだろうが。
AppletのそばにHTMLで文書を置いた手軽なサイトをつくるにはかなり適していると思うが。
JavaWebStartで作るにもポップアップウィンドウがウザイとおもうときや、
作るのがAppletよりも面倒で手間がかかるってことがあるだろう。
おまえのいってることはこれからの時代はペーパーレスの時代だから
紙は一切使うべきでないといってるようなものだが。
他人のソースとか見ると、文字の連結にはStringBuffer#append(色々) がよく使われているみたいだけど、速度量ってみたら String#concat((=゚ω゚)ノどうも) > StringBuffer#append(ぬ) > +←これ の順だった 結局どれが一番いいんですか?
文字の連結ちゃうな 文字列の連結やった
379 :
デフォルトの名無しさん :03/08/06 15:57
>>310 > shockwaveでも無理な死ぬほど重い処理をブラウザ上で実行するため。
shockwaveは科学技術計算が重い。
さらに、Appletほどカスタマイズされた細かいプログラムを作ることはできない。
shockwaveでネットワークプログラミングするにも限界がある。
Web3Dなどブラウザで3D表示するプラグインが、JavaAppletでできているものもある。
VRMLソースをCosmoPlayerやCORTONA VRML Clientや
M$ VRML Viewerのインストール無しで表示できるJavaAppletだ。
Appletを否定している香具師も
よく考えてみろ。
あるポータルサイトで片隅や上部に表示されるだけの3Dのバナー広告が
いちいちポップアップウィンドウで表示されたら、これほどうざいサイトはないだろう。
バナー広告やちょっとしたアニメーションを表示するためだけにわざわざ
JavaWebStartなんぞを使う馬鹿がいるか?
そういうときこそAppletが使われるときだろう。
JavaWebStartとはどう使うべきかは適材適所で使い分けろ。
>>377 これ見れ
public String concat(String str) {
int otherLen = str.length();
if (otherLen == 0) {
return this;
}
char buf[] = new char[count + otherLen];
getChars(0, count, buf, 0);
str.getChars(0, otherLen, buf, count);
return new String(0, count + otherLen, buf);
}
public synchronized StringBuffer append(String str) {
if (str == null) {
str = String.valueOf(str);
}
int len = str.length();
int newcount = count + len;
if (newcount > value.length)
expandCapacity(newcount);
str.getChars(0, len, value, count);
count = newcount;
return this;
}
>>380 ども
ってか今まで俺もソース読んでました
StringBufferの方が断然よかったです
StringBuffer#ensureCapacity(いんてガー) を使うと、もっと早くなりました...
>>382 ループで回した場合での結果?
文字数は?
こんなかんじです /* 定義 */ int GURU_GURU = 50000; String[] cat = {"目から目","手から手","手から型","手から腰","手から頭","口から口"}; /* 一回目(StringBuffer) */ public static void StrBuff() { StringBuffer ff = new StringBuffer(); for(int i=0;i<GURU_GURU;i++) { for(int x=0;x<$cat.length;x++) { $_.append($cat[x]); } } } /* 二回目(String) */ public static void StrBuff() { String oh = ""; for(int i=0;i<GURU_GURU;i++) { for(int x=0;x<cat.length;x++) { ph.concat(cat[x]); } } } /* 結果 */ String#concat():平均200ミリ秒 StringBuffer#append:平均300ミリ秒 StringBuffer#append + ensureCapacity():平均200ミリ秒 領域広めすぎるとOutOfMem(ry PCの環境は.....あんまよく分からないんですが.....winXPでメモリ120MBってことは確か
ぎゃー 変数姪間違えた 一回目のところ $cat→cat $_→ff 二回目のところ ph→oh
普通にStringBufferが早いよ。 時間の計り方等間違ってたりして。
ensureCapacityを使えば早くなるのは当たり前ではないのか? あらかじめ必要な領域がわかっているならね。
>>365 なるほど。どうもありがとうございますー。モチロン試してみます!
学校行く直前だったので試しもせずにレスしました。すみません。
>>373 ありがとうございます。初めて知りました・・・。
350だ。スレの趣旨と違う上に遅レスで申し訳ないのだが
今朝、
>>351 と
>>359 >>360 を読んで激しくショックを受けたので一言申し付ける。
確かに漏れは、プログラミング始めたばっかしで自信が持てないこともあり、
わからないことは自分でやるより人に訊いた方がいいと思い込んでたフシがある。
自分じゃ気づいていなかったが・・・
それにしてもお前ら、一度でも俺の質問にこんなマジレスくれたことありましたか?(゚Д゚)ゴルァ!
というのが一番の感想だったのだが
というか、意に反してお前らのうっぷん晴らしの格好のターゲットになってしまっただけなのだが
お前らの「自分で調べろ」発言を
>そして煽られ、無視されてきた。
に単純分類してきた自分をチョト反省した。
以上で、漏れはまたいつもの礼儀正しいデフォルトの名無しさんに戻るよ。
初心者丸出しでも(だからこそ、か?)自分で考えたり、必要な情報を探す努力が必要って事は、脳に焼印しておくよ。
よく考えたら、当たり前のことだな。
トコロデヨ ネタッテナンダヨ マジレスデ
タシカニアノアト スグニネタガナ スマソー
ヽ( `Д)ノ <にしても何で感謝して反省してんだ俺は> ヽ(`Д´)ノ
ごめん、ageちまった。。
つーか基本的にこのスレではマジレスなんだけどな。 初心者は煽りとかに感じるのかね。「自分で検索しろ」という言葉。 調べるのが大変な事柄は答えてやってるんだけどなぁ。
おい愚痴んな。検索しろ。
>>350 ってコピペだと思ってたのに違ったのか・・・
普通にいい話系かと思ってた。あんた才能あるよ。もしかしたら流行るかもね
>それにしてもお前ら、一度でも俺の質問にこんなマジレスくれたことありましたか?(゚Д゚)ゴルァ!
このスレに限ってははマジレスガ圧倒的に多いな。他は知らん
395 :
デフォルトの名無しさん :03/08/06 22:56
クラスライブラリのドキュメントが 検索も無くて使いにくいのですが 他に簡単に検索できるようなドキュメントとかないんでしょうか? Winのヘルプファイルとかになってるやつとか あったら教えてください
>>395 無いね。検索ならブラウザので使えばいい。
>>395 IDE使うか、
>>396 が書いてるようにドキュメントはWebで公開されてるから、
「Java API [検索文字列]」
でググれば出てくる。
399 :
デフォルトの名無しさん :03/08/06 23:37
jreを入れたら MS-IMEがおかしくなってしまいました なんかツールバーが複数個表示されるンス。 ちなみにバージョンは1.3.06でっす。 なにか対処ほうはありますでしょうか?
400 :
無料動画直リン :03/08/06 23:38
>>397 FQCN入れて、I'm Feeling Luckyだろ。
>>399 >ちなみにバージョンは1.3.06でっす。
なんでそんな古いものを・・・
403 :
デフォルトの名無しさん :03/08/07 00:10
最近仕事で見たソースに以下のようなものがありました。 public void searchHoge() { String sql = "select hoge from boo where baz = ?" PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, piyo) ResultSet rs = pstmt.executeQuery() //以下検索結果を処理 } なにかを検索するたびにこのメソッドが呼ばれてましたが、 ここでPreparedStatementを使う意味はあるんですか? 結局pstmt.executeQueryを呼び出したのは上の1回だけでした。
>>403 一度プリコンパイルされるから、SQLの速度が速くなることが期待できる
何度も呼び出されるなら当然のパフォーマンステクニック
>>404 同じsql文で何度もprepareStatementしたら、
毎回プリコンパイルされたりしないの?
このプログラムはサーバ上で動いてるものではなかったです。 PreparedStatementの説明を読んで思ったのが PreparedStatement st = con.prepareStatement(sql); for (int i = 0; i < 10000; i++) { st.executeQuery(); } 見たいな処理が早くなるのかなーって。 403で書いたみたいにメソッドの中でPreparedStatementを作成していたら for (int i = 0; i < 10000; i++) { PreparedStatement st = con.prepareStatement(sql); st.executeQuery(); } みたいなことになってコンパイルを毎回することになって(?) あまり意味がないんじゃないかと思ったわけです。
>>407 APサーバを使っていなければ、確かに意味が無いかもしれない。
もちろんforの外でPreparedStatementを作っていれば速くなるよ。
>>407 > 403で書いたみたいにメソッドの中でPreparedStatementを作成していたら
> for (int i = 0; i < 10000; i++) {
> PreparedStatement st = con.prepareStatement(sql);
> st.executeQuery();
> }
> みたいなことになってコンパイルを毎回することになって(?)
> あまり意味がないんじゃないかと思ったわけです。
だから、
>>406 のリンク先の記事を最後までよく読めって。
あと、JDBC3.0からは、JDBCそのものにもPreparedStatementキャッシュのための
フレームワークが用意されている。
# もちろん、JDBCドライバ側の対応が必要だが。
410 :
デフォルトの名無しさん :03/08/07 00:47
JAVAアプレットについてなのですが、 テキストに書いてある文がいまいちよくわかりません。 「画像を表示する」やり方の単元で、 img=getImage(getDocumentBase(),"rrrrrr.gif"); の文の解説で、 「getDocumentBase()メソッドはAppletクラスのメソッドです。引数なしで 呼び出すと、このクラスファイル(rrrrrr.classで作りました)を呼び出した HTMLファイル(rrrrrr.htmlで作りました)の置いてあるURLオブジェクト を返します。つまり、HTMLファイルと同じディレクトリに画像ファイルがある ときは{getDocumentBase()}と書けばよいのです」 と書いてありました。 「このクラスファイル(rrrrrr.classで作りました)を呼び出した HTMLファイル(rrrrrr.htmlで作りました)の置いてあるURLオブジェクト を返します。」 この部分のイメージがつかめません。 どういうことなんですか?
>>406 なるほど、エスケープしなくてすむのか。それはかなり大きいな。
でもすべてのSQLをPreparedStatementすると、APサーバの負荷が重くなるのかな?
先ほどのプログラムは開発時のツール的な小さなプログラムで DBから落としてきたデータをxmlのファイルとして出力するというものでした。 こういう場合、DBからデータを落としてくるクラスがあったとして、 そのクラスのフィールドとしてPreparedStatementを持つのもありなんですか? そのクラスの中のいろんなところで条件違いのsqlが出てくる場合とか。
>>411 > でもすべてのSQLをPreparedStatementすると、APサーバの負荷が重くなるのかな?
どうだろ?
あまり悪影響はなさそうな気もするけど…
# 漏れのところでは、全てのSQLをPreparedStatementで処理するフレームワークを
# 使っているが、特にパフォーマンスの悪化は感じられないよ。
>>413 > こういう場合、DBからデータを落としてくるクラスがあったとして、
> そのクラスのフィールドとしてPreparedStatementを持つのもありなんですか?
> そのクラスの中のいろんなところで条件違いのsqlが出てくる場合とか。
ありだと思うが、PreparedStatementは、元となるConnectionがcloseされた時点で
無効になってしまうことに十分注意しておくべし。
415 :
デフォルトの名無しさん :03/08/07 01:13
全く同じSQLなら、どうせDBサーバがコンパイル済みSQLをキャッシュしているはずだが。
416 :
デフォルトの名無しさん :03/08/07 01:19
>全く同じSQLなら、どうせDBサーバがコンパイル済みSQLをキャッシュしているはずだが。 他人だけど補足。 素のStatementではパラメータが違うと「全く同じSQL文」にならないが PreparedStatmentならパラメータ部分(?部分)が違っても「全く同じSQL文」になるから DB側のキャッシュが期待できる。(もちろんDMBSによる) PreparedStatementのデメリットは一つもないからガンガン使うべし
CallableStatementってツカッテマスか?
>>414 DB2なんかではアプリケーションヒープを適切なサイズにチューニングしておかないと
DBに接続できなくなる。無計画にPreparedStatement使うのはよくない。
あと元になるConnectionがクローズされたときでも、DBMSにPREPAREDされたSQLの
実行計画はキャッシュされるのである程度のパフォーマンスの向上にはつながる。
421 :
デフォルトの名無しさん :03/08/07 10:45
Javaでsocket通信のサンプルを作ろうとしているのですが、 BufferedReaderのreadLineで読み込みを行うと データの終了時にそこで待ち状態に移行してしまいます。 リファレンス見た限りではnullがリターンされると思うんですが・・・ あと、InputStreamでも-1が帰る前にウエィトが発生してしまいます コレって、プロトコル解析してループを抜けるしかないんでしょうか? Javaのバージョンは1.4.2です・・・・_| ̄|○モウダメポ
>_| ̄|○モウダメポ じゃなくって、そのあたりのソース見せなさい
>>421 似たような経験あり
読み込み終わったはずなのに
ソコでずーっと終わってる
なので、読み終わる前に終了するようにしていた
つまり必要なデータ部分取り出せば後は用なしなので
ループから抜けさせてた
> 422 すいません、確かにそうですよね ゴメンナサイ Socket socket = new Socket("xxx.xxx.xxx.xxx", 9999); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); String str; do { str = in.readLine(); } while (str != null); Socket socket = new Socket("xxx.xxx.xxx.xxx", 9999); InputStreamReader in = new InputStreamReader(socket.getInputStream()); StringBuffer str = new StringBuffer(); while (b != -1) { b = in.read(); str.append((char) b); }
PSPでソニーは敗退する
>>424 え?これだけ?
out.print("GET /index.html\n\n");
とかはどうした?
427 :
デフォルトの名無しさん :03/08/07 12:22
> 426 あー。。。 BufferedReader の場合は out.write("command"); OutputStreamReaderの場合は out.write("command"); out.flash(); で、サーバーへコマンドを投げています。 一応、ちゃんと受信してるんですが、データの終わりを検出できず ずっとWaitがかかってる状態になってしまいます。 本当だったら、null なり -1 が帰ってくるはずだと思うんですが・・・
>427 BufferedReader の readLineで読んでるなら、 何らかの改行こーどを送るか、closeしてストリームの 終了になるまでは待つに決まってるような。 out.write("\n");
コンポーネントってなんですか? コンテナってなんですか?
> 428 ぐへ、commandには\r\nつけてますが 一応、closeしてみます
>>431 え?
\r\nではなくて\n\nじゃないの?まあ、ココでは
コマンド送れてるのでまあよしとして・・・
>>423 でも書いたようにそうなっちゃうみたいなの
> 432 "\r\n"ですよ "\n\n"ってアリなんですか?
>>433 え?コマンド送るんだろ?改行コード送るんじゃないよね・・
コマンド送るときは\n\nですよ・・・
言い方間違えた・・ 改行2回送るんだろ?
プロトコルで、文末が "\r\n" って定められてるんですよ。 0x0A 0x0D ですね Javaの'\n'だと0x0Dだけなんじゃないんでしょうか? それとも、システム依存部位?
いや、そしたら2回送ってよ 「\r\n\r\n」ってな具合に・・・ あでも、コレ直したからといって大本の問題の解決にはならないので・・・
> 437 ですね、仕方ないので通信を解析して抜けるようにします ハァメンドクセ
>434 CGIやServletの入出力とは書いてないので そもそも「2回」の根拠は何も無いと思うのだけど。
名前付け忘れてた・・・ゴメソ > 439 一応、Servletとメールサーバーとの通信です(IMAP) JavaMail使いたいんですが、添付ファイル読み込んだら落ちてしまったので(Out of Memory) あきらめてSocketで通信しようかと
>>439 っていうかHTTPのGETを想像してました
普通、 >JavaMail使いたいんですが、添付ファイル読み込んだら落ちてしまったので(Out of Memory) の対処法を聞かないか?
>>424 InputStreamReaderをそのやり方で使うと
デフォルトの文字エンコーディングで入力されるから
よくない。それにメールだと入力がなにかというのは
かなり怪しげだし、誰もが行儀のいいメールを送ってくる
わけじゃないし、入力のエンコードを仮定してReaderを
使うよりStreamをそのまま使って自分で全部処理してしまった
ほうがいいと思うよ。
画像ビューアを作ってみたのですが、なかなか上手く行かなくて2つほど変なことをしてみました。 よろしければご意見を聞かせてください。 作ったものは、Frameを継承したクラス(MyFrame)と、Canvasクラスを継承したクラス(MyCanvas)です。 読み込みたい画像をMyCanvasクラスにPaintメソッドで描画したあと、このMyCanvasクラスを MyFrameクラスにaddして表示させているのですが、、 1.一度画像を表示させた後、続けて新しい画像を表示させようとしても 古い画像が残っていて、新しい画像の上に重なって出てきてしまいます。 対処方法として、新しい画像を表示させる前にMyFrameクラスで removeAll()を実行するようにしたのですが、、、荒業でしょうか?それともこれでかまわないんでしょうか? 2.removeAll()を実行して新しいMyCanvasをaddしても、フレームを引っ張ったりしていじらないと新しい画像が出てきません。 そこで何となくemoveAll()→MyCanvasをaddの後、さらにフレームをsetVisible(true)させるようにしたら すぐに表示されるようになったのですが、、皆さんでしたらどう対処するのでしょうか? ※文章ばっかりでごめんなさい。
不要かもしれませんが、一応
>>445 の作業をしている
MyFrameクラスの「開く」メニューから呼ばれるメソッドを書いておきます。
public void canvasOn() {
//開くダイアログの表示
FileDialog dlg = new FileDialog(this);
dlg.show();
if((dlg.getFile() != null) && (dlg.getDirectory() != null)){
String fileName = dlg.getDirectory()+dlg.getFile();
//開くダイアログで指定したファイルを読み込んだCanvasを作成
MyCanvas cv = new MyCanvas(fileName);
removeAll();//←ここが、疑問1
add(cv);//新しい画像を読み込んだCanvasをadd
setVisible(true); //←ここが、疑問2
}
}
ContainerにComponentを追加したときは, invalidate()する。(疑問2の答え) だがそれ以前に、removeするほうがおかしい。 MyCanvasが、コンストラクタでしかファイル名を 指定できないのか? setFileとかメソッドを書いて、 ペイントする画像をさしかえれるように作っとくだ。 (疑問1の答え)
update()とか呼ぶんでなかったけ?
>>447 どうもありがとうございます。
とりあえずinvalidate()でできただす。後でJAVA-docでメソッドよく調べてみます。
>MyCanvasが、コンストラクタでしかファイル名を
>指定できないのか? setFileとかメソッドを書いて、
>ペイントする画像をさしかえれるように作っとくだ。
なるほど。。その通りですね^^;
アドバイスどうもありがとうございました。
>>448 ありがとうございました。
update()調べてみましたが使えそうだすね。勉強になりますだ。やってみます。
450 :
デフォルトの名無しさん :03/08/07 17:47
質問! JOptionPane.showMessageDialog(pane,msg,"Error",JOptionPane.WARNING_MESSAGE); とかでダイアログ呼び出すときの 表示されるフォントって変えられるんですか?
第二引数にJLabelオブジェクトを渡すことにして、 JLableオブジェクトのフォントをお好みのものに変更すればできるんでないかな。 swingコンポーネント(awtコンポーネント?)を渡すと なかなか凝ったダイアログが作れるよ。
>>451 第二引数結構いろいろとれるんだーなるほど…
たすかったす!さんきう!
JavaのGUIアプリケーションを、普通のWindowsアプリケーションのようにするにはどうしたらいいんでしょうか? ジャヴァハウスを見たら簡単なやり方として、 VBでコマンドプロンプトを起動してクラスを動かすEXEファイルを作るという方法と、 batファイルを作っておくという方法があったのですが、、 普通のアプリみたいに(見た目として)Dosの窓が開かずに動くアプリにする方法、 もしくは解説のあるサイト、書籍があったら紹介していただけないでしょうか。 よろしくお願いします。
454 :
デフォルトの名無しさん :03/08/07 18:47
>>453 jar を java じゃなくて javaw コマンドで起動する。
>>454 知りませんでした(お恥ずかしい)!
どうもありがとうございます。
え?javawコマンド打ってる時点で 窓出てますが・・・ マニフェスト作って内部的にjavawっていうならわかるが・・・
>>456 Dosコマンドを実行するアプリをVBで作っていたので、
javawを実行した後、Dos窓を閉じるよう変更しました。
私は、一瞬Dosが出るだけなんでこれで満足です(笑)。
>マニフェスト作って内部的にjavaw
ちょっとわかりませんでした。。勉強します。
Jarのなかにマンコフェストファイル作って Main-Class: メインクラス名 ってやれば、ダブルクリックで動くんだよ!(Windows限定だが)
JPanel に大きい画を描いてスクロールをつけたいんですけど 上手につけられません。教えてください。よろしくお願いします。 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test extends JFrame { public Test( String title ) { super( title ); Container container = this.getContentPane( ); GraphicsPanel panel = new GraphicsPanel( ); JScrollPane scrollpane = new JScrollPane( panel ); container.add( scrollpane ); addWindowListener( new WindowEventHandler( ) ); setDefaultCloseOperation( WindowConstants.DISPOSE_ON_CLOSE ); setSize( 350, 200 ); setVisible( true ); } public static void main( String args[ ] ) { Test frame = new Test( "Test" ); } }
(ソース続きです。) class GraphicsPanel extends JPanel { public void paint( Graphics g ) { g.setColor( Color.white ); g.fillRect( 0, 0, 1000, 1000 ); g.setColor( Color.red ); g.fillOval( 100, 100, 100, 100 ); g.drawLine( 0, 0, 1000, 1000 ); } public void update( Graphics g ) { } } class WindowEventHandler extends WindowAdapter { public void windowClosing( WindowEvent evt ) { System.exit( 0 ); } }
>>458 そんな簡単な方法があったんですね(また恥ずかしい)。
一応、 Jar マニフェスト で検索して解説文も見つけました。
ありがとうございました。
462 :
デフォルトの名無しさん :03/08/07 20:01
USBカメラを使って、ローカルマシンの特定のディレクトリにスナップショットを任意の秒数間毎に撮影できるJavaアプリケーションを作りたいと考えています。 おそらく、対応ドライバがないとだめとかという諸問題は存在するでしょうが、構築にあたって何か参考になる書籍等はございませんでしょうか? よろしくご教授下さい。
463 :
デフォルトの名無しさん :03/08/07 20:09
>>462 それはつまり、 USBマウスの制御アプリをJavaで作りたい・・・ AirH"の制御ソフトをJavaで作りたいって事と難易度同じだよね ちょっと生半可な知識じゃ無理っぽい
466 :
デフォルトの名無しさん :03/08/07 21:02
>>464 >>465 情報ご提供ありがとうございました。
早速検討してみます。(^^)
引き続きみなさまからの情報をおまちしております。
>>465 できる出来ないではない
難易度が高いよと言ったまでだよ
カメラのUSBドライバからなら、 走査線のタイミングを見計らってメモリをコピーするだけじゃない。
>>468 どっからそのメモリのデータもってくんの!
>>469 IBM USB APIでできるんじゃないの? そういや、これまえは
alphaWorksにあったとおもったんだけど、いまどこにあるんだろ。
JCPにかけたみたいだから、場所移したのかな? JMFも試したことない
けどやった人いる?
471 :
デフォルトの名無しさん :03/08/07 23:26
1度閉じたJavaのソースプログラムを組んだファイルの開き方を教えて下さい。 1度閉じた.classファイルや.javaファイルの開き方がわかりません
なんだ、実際試したわけじゃないのね・・・・
>>471 俺が今まで見た質問で一番キョーレツだ!
ググレともAPI嫁とも言えないし、どうやって料理すればいいんだよ!
明日、会社行きたくない
>>472 468がどういうつもりかは俺は知らんけどね。
477 :
デフォルトの名無しさん :03/08/07 23:32
>>471 ソースの開き方がわからないんだな。
どうやるんだろう?
>>471 エディタとかでプログラムを書いて、*.javaで保存したら開けなくなっちゃったってことかな?
仮にそうだとしたら、その*.javaファイルをメモ帳とかに放り込め。
>>479 お前の話は詰まらん!
マジレスハンターイ
おちつけ、もまいら まず、1行ずつやっていこう Lesson1 「1度閉じたJavaのソースプログラムを組んだファイルの開き方を教えて下さい。 」 この文を、日本語的に解釈しよう 「・・・」を「教えてください。」 これはいいな、次 「・・・」の「開き方」を「教えてください。」 よしよし、順調だ 次
>>479 ああーそういうことか
拡張子変わって、デフォルトで開けなくなっちゃったのか・・・
なんかかわいいな
>>471 スゲ-教えてあげたい
どうすればいい?
>>480 あまりに難問で翻訳に集中しちまって
そこまで気が回らなかったよー
不意打ちされて俺がワラタ。
今日一番の笑いでした。ありがとう。
漏れはもう寝ます。
朝までに
>>471 の書き込みがありますように。
>>487 いやぁ、僕も衝撃的でした
何年ぶりだろう。。。「素」で、二度見しちゃったよ
こんな日本語なら英語のDoc読んでたほうがましですね
なんか、仕事にやる気出てきました
くっそー 俺だけ真剣に悩んじまってノリノリになれなかった気分だぜ。 でもオマイラ面白かったぞ。ありがとな。
490 :
デフォルトの名無しさん :03/08/08 00:34
スタンドアローンのjavaのプログラムとWebアプリに組み込むjavaプログラム の違いは何ですか? 社員情報を登録するシステムを作成するとしたら、どちらがよいですか? その理由は何ですか?
>>490 そんなに訊いちゃいや~ん。
とりあえず
>スタンドアローンのjavaのプログラムとWebアプリに組み込むjavaプログラム
>の違いは何ですか?
だけ自分で調べて、残りについては自分の胸に聞くが吉。
492 :
デフォルトの名無しさん :03/08/08 01:07
494 :
デフォルトの名無しさん :03/08/08 01:10
>>492 あらかじめメモ帳を開いておいて、そこにファイルをドラッグ&ドロップ
495 :
デフォルトの名無しさん :03/08/08 01:12
>>493 ちがうけど、同じ悩みに遭遇したのでお願いします。
>>495 同じ悩みに遭遇?????????????????????????????????????????????????????????????????????????????????????
んなバカな。。
>>495 漏れはお前と出会って、未知と遭遇しました・・・
この展開面白すぎ
とりあえずこの展開を見て
>>487 が朝、ワラテくれるといいな。
やっと落ち着いたよ。。。冷静になって自分のカキコ見直して・・・なんじゃこりゃ? ごめんよ、マジで気が動転してたらしいや。
そうきたかっ
すごい「神」が降臨してますな しかも2神も・・・ あのすばらしさは、ネタでは作れないな 「素」がなせる技だ。あるいはマジで小学生ぐらいだな。
>>459-460 GraphicsPanel に
Dimension size = new Dimension(1000, 1000);
public Dimension getPreferredSize()
{
return size;
}
てな行を追加してみては如何かと。
ばかにしやがって
>>471 >>492 てゆうかさ、君たちプログラムするの早すぎ。
どうせ中学生なんだろww(←リア厨とかかいてもわかんないと思うからね)
まずはPC、Windowsの勉強からどうぞ。
JAVAでオペレータ側の任意のタイミングでクライアント側の 画像やWEBページの表示を切り替えるアプレットを作成してみたいのですが、 技術的に可能でしょうか? 現在の私のレベルは入門書を読みながら1000行程度の簡単なAI搭載オセロを 作成した程度です。
>>507 俺は中1の頃から組んでたぞ。
中学からとか、中には小学からという奴も、
職場にはざらにいるが。。。
510 :
デフォルトの名無しさん :03/08/08 15:08
配列からIteratorは作れますか?
俺もソースプログラムを組んでくれるファイルが欲しい
今はList作ってIteratorを返すメソッドを使っていて Listのかわりに配列を使おうかと思っていたので、 またList作るのは何かさびしいですね。 配列がちゃんと作れるか確認できたら 配列を返すようにしてみようと思うので、 それでやってみます。
いーじゃんか別に
>>514 何が?
タモリが歌わなくなったことか?
516 :
デフォルトの名無しさん :03/08/08 16:10
Javaアプレットについてなんですが、 画像を左から右へスクロールさせるプログラムを 教えて下さい。 *.java,*.htmlの両方
517 :
デフォルトの名無しさん :03/08/08 16:10
表示位置をかえる。
自分の顔の位置を 右から左に移動させる バッチグー!
インスタンスイニシャライザってどういう場面で使うの? 普通にコンストラクタを記述するんじゃダメなの?
超初心者学生房です。 恥を忍んでお聞きします。 intの中の数値をtextfield上に表示させるにはどのように命令すれば良いのでしょうか? ぜひお教えください。
521 :
デフォルトの名無しさん :03/08/08 16:47
問いに対して真面目に答える気のない奴は書き込むな!
522 :
デフォルトの名無しさん :03/08/08 16:55
>>520 import java.awt.*;
class t{
public static void main(String args[]){
TextField tf = new TextField();
int i=10;
Frame fm = new Frame();
tf.setText(Integer.toString(i));//答えはここです・・・//
fm.setSize(150,100);
fm.add(tf);
fm.setVisible(true);
}
}
"" + i
同じループが三つくらいあるので一つにまとめようと思うのですが メソッドの引数にメソッドを渡すにはどうすればいいのですか?
>>524 状況がよくわからんが、まったく同じループ?
だったら
戻り型 loop(引数){
よく使うループ文
}
とかつくって他のメソッドの中でこのメソッドを呼び出せば。
class ClsA { protected int a; public final void set(int n) { a = n; } public final void display() { System.out.println("a= " + a); } } class ClsB extends ClsA { private int b; public void subset(int n1) { a = n1; } } public class Test { public static void main(String[] args) { ClsA spr = new ClsA(); ClsB sub = new ClsB(); spr.set(10); sub.display(); sub.subset(10); sub.display(); } } この場合、何故どちらもa=10にならないのでしょうか。 教えてください。
528 :
デフォルトの名無しさん :03/08/08 19:18
spr.set(10); sub.display(); spr.set(10); spr.display();
>>526 全く同一ではなく、for文の中身が違うやつです。
ループする回数は同じです。
for (int i = 0; .... ; i++)
for (int j = i; ... ; j++)
hoge(i, j);
このhogeを引数で渡すようにしたいのです。
530 :
デフォルトの名無しさん :03/08/08 19:24
hogeをメソッドにもつクラスを引数にして 無名クラスを渡す。
テスト
>>527 君は、二つ参照変数を作ってるでしょ?sprとsubと。
この2つは、別々のオブジェクトを指しているんだよ。
spr.set(10); で、sprが指すオブジェクトの int aを変えても、
subが指すオブジェクトのint aは変わらない。
したがって、
sub.display()
では何も代入されていないa(初期値で0が入ってる)がでる。
(1) spr.set(10); ← sprが指すオブジェクトのaに10を代入
(2) sub.display(); ← subが指すオブジェクトのaを表示(初期値だから0)
(3) sub.subset(10); ← subが指すオブジェクトのaに10を代入
(4) sub.display(); ← subuが指すオブジェクトのaを表示(今度は、(3)で変更されてるので10)
もしも(1)の前に
spr=sub;
と入れると、sprもsubも同じオブジェクトを指すようになるから、今のままでも両方10が出るよ。
あと、
ClsAの
protected int a;
を
static protected int a;
に変えると、今のままでも両方10になる。このあたりは自分で勉強しよう。
なんかすげ-長くなったな・・・
533 :
デフォルトの名無しさん :03/08/08 19:38
>>527 spr.set(10);
sub.display();
どういう意図でこれをしてるか教えてほしい。
>>533 多分、ClsAとClsBが継承関係にあるから、
spr.set(10);
sub.display();
で10が出ると思っちゃったんだよ。俺もこんな実験、勉強始めたばっかしの頃やったことある。
int aはstaticじゃないから、sprが指すaとsubが指すaは違うもの
ということだよ
>>527
>>532 うう。。ご丁寧にありがとうございました。
すっかり基本的なことを忘れていました。
ほんとうにありがとうございます。
>>533 ぜんぜん初心者なので、いろいろな継承パターンをあれこれしていて、
スーパークラスのメソッドを全部finalにしてオーバライドできない状態で
サブクラスからアクセスしてもいけるよなと思いやってみたら出来なかったので悩んで
いたのです。
そしたらなんと、
>>532 のおっしゃっている基本をすっかりさっぱり忘れていたのです。
でもほんとすっきりしました。
ありがとうございました。
フィールドはインスタンスごとに作られるってことでいい?
>>536 というか、staticなメンバかどうかという問題。
staticなメンバならインスタンスごとに作られる。
>>538 間違えた。。
staticなメンバ でなければ インスタンスごとに作られる
クラスごとちゃう?
541 :
デフォルトの名無しさん :03/08/08 21:36
>>530 変数を使おうとするとfinalでないと駄目って出て、
変更できなくなるんですけど、
変更できるようにするにはどうしたらいいですか?
int foo() {
int n = 0;
Test t = new Test() {
void hoge(int i, int j) {
n++;
}
};
loop(t);
return n;
}
ってやりたいのですが。
543 :
デフォルトの名無しさん :03/08/08 21:45
abstractクラス(またはinterface)でstaticなメソッドを abstractにしたいときってないですか? 僕はそのような状況になってしまったのですが。 設計間違えたんだろうなあ・・・
>>543 うわー、また変な奴らが煽りそうだよ
逃げろとにかくおまいは逃げろ
>543 おまえはセンスがない。
i ,. へ-、 __ i !i _,..::'"li.∧.l! ゙_」ト、 , j<.ー-i! l!-―'"/\ /゙.,へ、 ┐ i、 / ヽ. .i i >/\/)゙"‐ 、. i l lレ''" \jl!レ゙ _,...、ヽ. l l! rヲ――--_」Lii--――ヾ. l キタ━━━━━━━l! // <二》 _ 《二>゙ ヾ、!、━━━━━━━━━ !! .j.,.ィ゙ ./ ! \_ l!\\ /'' l! ,.. '´ ヽ  ゙̄ーr-ノ ゙ー-、_ _/'´ トt-イ ,---- ,!/ > <. ゙t'ヽ ヽ ─ / /,」 / \ `-iヽ ヽ / ,.r 「 _/ . ゙"ー―┬;L ヽ __ / ,.!┬―''" !レー゙==┬==‐゙┐l l テ、 ]l.l ,r= ゙.l ,.,..-、--ー―===ー".ヽ、 ゙r ! ̄F" /ー--、ー-----、 r;''/ ) ̄ ̄____ ゙ヾ=.コ l! .「"./ __ ゙̄ー--ヲ \__ フ/,ィi」i」 ヾ====== \_ \ i! / __/,.=======ヲ i ,. _ r、\ / ゙" ヾ=====  ̄  ̄ ======" Lハ l l l トi.」 / ,.へ 二二// ̄V ̄\\二二二゙ ,、 \
イェロー法度のCMみた? 狙いすぎでつまんないんだけど・・・
胃腸マン「あらわれたな!胃もたれ君!」
>>543 素で、一体何を言っているのかよくわからない。
オマイの説明がよくワカランだけのような気がしないでもない。。
まだ逃げてなく、かつあんまり長くなければ、ソース見せてた方が早いぞ。
てか言ってると、ほぼ確実にこういうツッコミがあんだよな↓
550 :
デフォルトの名無しさん :03/08/08 22:08
JAVAでスタンドアロンのアプリケーションを作ろうと しています。 ちょっと悩んでいるので質問させてください 1.Stringの中身がすべて数字で構成されているかどうか 調べるにはどうしたらいいか? 2.コマンドプロンプトへの出力で 画面をクリア(DOSのCLSコマンドのような)することはできないか?
>>550 1.Integer.parseInt()で例外発生しなければ・・・
あたまに0が付いてたらどうなるんだろう?
2.100行ぐらい改行
実際のやつは書けないけど↓のようなもの。 abstract class SystemCorrector { ... public static abstract SystemModel createDefaultIdealSystem(); ... } -------------------------------- public MachineCorrector extends SystemCorrector { ... public static SystemModel createDefaultIdealSystem { ... } ... } -------------------------------- public MySystemCorrector extends SystemCorrector { ... public static SystemModel createDefaultIdealSystem { ... } ... } システム校正する抽象クラスがあって, 悪い状態のシステム(機械やら)を校正するっていうクラスの集まりです。 校正するにはそのシステムの理想状態がないといけないってことで staticなクラスでその理想状態を定義しましょう。 って感じ。 インスタンスメソッドにしても良いんだけど、 とりあえず、MachineCorrectorでもMySystemCorrectorでも 全システムの理想状態ってインスタンス共通なんだよね。
元のクラスclass SystemCorrectorのなかで createDefaultIdealSystem()を定義すれば?ダミーで
あーごめんなさい。
createDefaultIdealSystemのDefaultは余計でした。
defaultって書くと他にも理想状態がありそうな感じになるので。
>>553 MachineSystemModelでもMySystemModelでも理想状態は
パラメータ構成的(パラメータ数とか)に全然違うので、
その場しのぎ的な定義では意味ないっす。
抽象SystemModelクラスの派生クラス(MachineModelクラスやらMySystemModelやら)に
理想状態を定義することを義務付けるってことも考えたのですが、
プログラム的に強制するのは結局、abstract staticメソッドが必要なんですよね。
ちょっと設計やり直してみます。
駄目だったらabstractインスタンスメソッドで行こうと思います。
よく分からんが、とにかくコードは注意して書け。
>>555 うぃ。最近、デザパタの本買ったのでもっと勉強したいと思います。
557 :
デフォルトの名無しさん :03/08/08 23:14
abstructでオーバーライドしたクラスを使う。
コンパイル言語例えばC++とJavaの実行速度って 一般的にどのくらい違うもんですか? 2倍?10倍?
>>558 とりあえず、Javaもコンパイル言語だと言っておこうか。
>>558 何を比較するかによる。起動の速さなら2~10倍くらいJavaのが遅いし、
コードの実行速度だけなら、殆ど変らんし。
>何を比較するかによる。 熱解析をJavaでやってみようかなあと。 これは「何を比較するかによる」にひっかかるのかなぁ。 コードの実行速度は変わらないのは以外でした。 >Javaもコンパイル言語 インタプリタ言語と区別するためにこう表現しました。 インタプリタも広義ではコンパイル言語なんですね。
>>561 >インタプリタ言語と区別するためにこう表現しました。
>インタプリタも広義ではコンパイル言語なんですね。
それは勘違い・・・
あれっ?(汗
OK。*スクリプト言語ではない*ということですね。ですね?でつね?
今SUNのダウンロードページに行くとServer Hangupになるんですが、 私のとこだけでしょうか・・・
566 :
デフォルトの名無しさん :03/08/09 01:18
Javaはスクリプト言語でもインタプリタ言語でもない
>>522 さん
遅れましたが、レスありがとうございました。
出来ました。
専学の宿題でCPU戦の出来るオセロゲームを作っています。
自分にとっては難題ですが頑張って作ります。
>>561 > これは「何を比較するかによる」にひっかかるのかなぁ。
起動、終了を激しく繰り返すようなプログラムにはJavaは不向き
> インタプリタも広義ではコンパイル言語なんですね。
JavaはJITコンパイラで、実行時にコンパイルする。だから、最適化
されるタイミングも、静的にネイティブコンパイルする言語と違う。
どっちがいいかは物による。
>>566 それはJavaの変数は全て値渡しです。と言ってるのと同じだね.
実行前にnativeに変換するから,コンパイル言語と一緒だと言ってるんだろ.
漏れは惑わされないぞ!
>>565 とりあえず私はダウンロードページは見られますが。
未だにJavaがインタプリタだと思ってる輩がいるんだなあ。 こういう輩が不当にJavaが遅いって思い込んでるんだろうなあ。 まあ起動時間は動的コンパイルの仕組み上 これ以上はあんま速くならないだろうけどね。
JITコンパイラのコンパイル速度が飛躍的に向上すれば・・・無理ぽ
>>395 > クラスライブラリのドキュメントが
> 検索も無くて使いにくいのですが
> 他に簡単に検索できるようなドキュメントとかないんでしょうか?
> Winのヘルプファイルとかになってるやつとか
> あったら教えてください
bashを例として(cshは面倒くさいから説明カット)
find ドキュメントが存在するディレクトリパス -name *.html
-print 2>/dev/null | xargs grep 検索したい単語
で検索しろ。Unix系じゃない? だったらcygwin入れろ。
>>569 >それはJavaの変数は全て値渡しです。と言ってるのと同じだね。
どういう意味の発言かはわからないが、
Javaの関数呼び出しにおいては変数はprimitive型はもちろんとして
reference型もすべて値渡し(参照値の値渡し)ですが。
foo(String s) { s = "foo"; } があって
String bar = "bar";
foo(bar);
とやっても bar は "foo" にならない。
>>395 ,573
namazuでも入れてみたらどうだい
>>570 さんくすです。時間置いてみたら行けるようになってますた。
577 :
デフォルトの名無しさん :03/08/09 02:23
オブジェクト配列について質問します。 Float型、Integer型、String型、Boolean型、Character型、Double型への 変換方法及び配列の作成方法と、覚えるコツを教えて下さい。 中々理解出来なくて困ってます…。
>>577 覚えられないのか?
理解出来ないのか?
それが問題だ。
579 :
デフォルトの名無しさん :03/08/09 02:43
>>578 理解出来ない、というより型が分かりません。
というより、一次元配列や多次元配列と、オブジェクト配列の
違いが分かりません。
おっと、連書きごめんなさい。
違いが分かりました。でもやはり
>>577 で出した
型の変換方法が分からないです。。
new Integer(1)で作る。
>>581 文字列を数値に返してから変換するんですか?
それは違うと思いますが…。
型の変換方法が何を指してるのか分からん。 何から何に変換したいんだ?
>>581 ごめんなさい、自分でInteger型を入れてました。
Double,Float,Boolean,Characterでした・・・。
>>583 String a = new String[3];
a[0] = "String 1";
・
・
・
こんな感じでString型はオブジェクト配列を作成しますよね?
これの上記に書いた型の変換(というかオブジェクト作成方法)を知りたいのです・・・。
>一次元配列や多次元配列と、オブジェクト配列 なにがどう違うかを説明すればいいのですか? 1次元、2次元→次元 オブジェクト→中に入れるもの
587 :
デフォルトの名無しさん :03/08/09 02:54
String型はオブジェクト配列を作成しますよね? どういう意味だ? 文字の並びのことか?
String a = new String[3]; String[] a = new String[3];
new Integer(a[0])とかできるはずだが。
>>588 すんません、忘れてました。
>>587 聞きたいのは
Double a[] = new Double[1];
Float a[] = new Float[1];
Boolean a[] = new Boolean[1];
Character a[] = new Character[1];
これでおk?って事です。
591 :
デフォルトの名無しさん :03/08/09 02:59
592 :
デフォルトの名無しさん :03/08/09 03:02
それでよかった気がするが、 Character[] a = new Character[1];
>>592 おkなんですか・・・。
悩んでた漏れが馬鹿だった。
試せない環境にいたので助かりました。ありがとうございます。
配列の作成は例えばBooleanの配列だったら型を単にBoolean[]だと思えばよろしい。 でコンストラクタの引数が配列の長さ。 注意すべきは普通のインスタンス作成とコンストラクタの形が違うこと。 Objectを作成するときはObject foo = new Object(); Boolean[]を作成するときはBoolean[] foo = new Boolean[10]); // new Boolean[](10) ではない
Double d = new Double(a[0]); Double d = Double.valueOf(a[0]); または無駄に Double d = new Double(Double.parseDouble(a[0])); FloatはDoubleをFloatに変えればいい。 しかしa[0]に文字がはいってりゃだめだこりゃ。 Boolean b = new Boolean(a[0]); または Boolean b = Boolean.valueOf(a[0]); またはもっと無駄に Boolean b = new Boolean(Boolean.getBoolean(a[0])); まあfalseになりますな。 Characterは方法がこれら以上に無数にドキュメント見て自分で 判断セヨ
どこが変換方法なんだ? 試しながらやるのが一番いいわけで・・・。 試せずにやるのが最悪すぎます。
厨な質問に付き合ってくれてありがとうございました。 やっぱり試しながらやってく事にします。
>>598 スマソ、寝てないのでテンパりまくりですた
>>600 まあ別にどう取られても構わないですけどね。
教えてもらうのが一番の目的でしたから。
ありがとうございました。
必死だな
>>602 577のカキコから何時間も過ぎてんのにそんなこと書いてんじゃねーよ
おまえみたいな奴って実際怖いよ
>>603 俺はお前が怖い、とレスを読まずにカキコ
>教えてもらうのが一番の目的でしたから。 こいつは一生伸びない。
必死だなとか書いてるやつって、 逆の立場のとき、本当に必死だったんだろうなって思う。
意味不明
> まあ別にどう取られても構わないですけどね。 ちょっと勘にさわるようなことを言われ、 半ばやけになってるときに発する台詞。
609 :
デフォルトの名無しさん :03/08/09 14:13
すみません超初心者です。誰か
>>282 の解説をしてもらえないでしょうか?お願いします。
>else if (b = false){ if文で代入しているからコンパイルエラー つうかやってみたらイッパツダと思うが。 こんなところで何時までも待っているより、JDK落して試してミソ。
>>609 すたてっくふぃーるどbはfalseで初期化されるってだけ
あれでコンパイルエラーって、どんなコンパイラ使ってんのじゃろ
>>610 >if文で代入しているからコンパイルエラー
おまえ、ネタじゃないよな?
なんでコンパイルエラーになるの?
そもそもbってbooleanなので
普通の代入と違うんだよ
つまり
if(b)って書ける
でもほかの型ならこの書き方ダメだけど・・・
言っておくけど
>>282 の問題はSunの認定試験の問題だよ
正解はx=4です
615 :
デフォルトの名無しさん :03/08/09 14:34
シューティングゲーム作ろうと思うんだが 自機の動きのクラス とか 敵の動きのクラス とか 別々にコンパイルして作るものなんですかね? 一つのメモ帳(秀丸)で、シューティングゲームできるんでしょか・・ なんか、根本的に、理解していないい俺Rですね・・
スマン。Eclipse使ってるから警告とエラーの区別つけてなかったや。
そういう問題ではないだろ? お前自分で判断したんだろ? ココがエラーだって
((())) ((())) ((())) ((())) ((()))
(´∈`) (´∈`) (´∈`)(´∈`) (´∈`)
/⌒|/⌒ヽ./⌒|/⌒ヽ./⌒|/⌒ヽ./⌒|/⌒ヽ )))
\ミ/彡丿\ミ/彡丿\ミ/彡丿\ミ/彡丿∈`_)
ヽ / . ヽ / . ヽ / . ヽ / /⌒)))
/∨ ヽ /∨ ヽ /∨ ヽ /∨ ヽミイ ∈`_)
| | 丿 | | 丿. | | 丿 | | 丿. | /⌒ )))
. | | / . | | / . | | / . | | / . ミイ ∈`_)
.. | | .ノ | | .ノ . | | .ノ | | .ノ. | /⌒ノノノノ
彡彡 彡彡 彡彡 彡彡. . ミイ ∈`_)
| /⌒ )
ミイ //
>>600 | ( (
↓ | ) )
ノノノノ ∧∧ . | //
(_´∋ (;゚Д゚) | ノノ
( ⌒\ / | |ノノ
ヽヽ个彡 ~(,, UU) 彡ヽ`
)). |
(( |
ヽヽ. |
( ( |
.ゝゝ| さぁ、帰さんぞ
′′ ミ
ご解説ありがとうございます。 if (b) { x=1; } else if (b = false){ x=2; } をif (b=true)に変えるとx=1になりました。これはわかります。 初期化でfalseになってるならx=2ではないでしょうか?
else if (b = false) // b ← false ↓ else if (b) // b の値は false ↓ else if (false)
>>619 b = false と b == false は違うってこと
>>619 んだから、
>>620 も言っているように
b=falseは b==falseじゃないのよ
わかる?
int x;
x=1と x==1
は、ちがうよね?
>>623 ---
>>624 結婚式のご案内です
8月20日、新高輪プリンスホテル 9階 特別展示上にて開催
詳しくは↓
>>615 確かに根本的に理解していないようですね・・・
>>627 本質的に質問を理解していないと見た
┗0=============0┛
\===========[_|_|_|_|_|_|_|_|_|_|_|_|_|_]===========/
/三三三三三三三三三三三三三三三三三三三三\
0 │ |∞∞∞ |::|∞∞田田田田田田∞∞|::|∞∞∞ | ::| 0
...[二] | ::| |::|┏━━━━━━━━┓|::| | ::l [二]
........|□|.│ |┌┬┐ |::|┃ / \ ┃|::| ┌┬┐| ::|. |□|
)三(...| ::|├┼┤ |::|┃/ \┃|::| ├┼┤| ::|`)三(´
| ::| | ::|└┴┘ |::|┃ / ̄ ̄ ̄ ̄ ̄\ ┃|::| └┴┘| ::| | ::|
| ::| | ::|┌┬┐ |::|┃彳 人______ ノ.┃|::| ┌┬┐| ::| | ::|
| ::| | ::|├┼┤ |::|┃入丿ー◎-◎ーヽミ.┃|::| ├┼┤| ::| | ::|
|: :| | ::|└┴┘ |::|┃ r . (_ _) )┃|::| └┴┘| ::| | ::|
| ::| | ::|┌┬┐ |::|┃ ( ∴.ノ▽(∴ ノ ┃|::| ┌┬┐| ::| | ::|
| ::| | ::|├┼┤ |::|┃⌒\_____ノ⌒┃|::| ├┼┤| ::| | ::|
| ::| | ::|└┴┘ |::|┃ ┗━┛ .┃|::| └┴┘| ::| | ::|
| ::| | ::| ... |::|┃ . .
>>577 . ┃|::| | ::| | ::|
.....┏━━━━━┓| .|┃ ......┃|::|┏━━━━━┓
.....┣┳┳┳┳┳┫|: |┗━━━━━━━━┛|::|┣┳┳┳┳┳┫
○ ● ∫∬∫∬ ● ○
○○ ●● iiiii iii ii iiii ●● ○○
[ ̄ ̄] [ ̄ ̄] ( ̄ ̄ ̄ ̄ ̄) [ ̄ ̄] [ ̄ ̄]
|_○_| .|_○_| |_____| |_○_| .|_○_|
∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧
( )( )(, )(,, ) ,,)( )( )(, )( ゚Д゚ )
やっと氏んでくれたね・・・引篭りで匿名掲示板でしか粋がれないデブオタこと
>>577 君
┗0=============0┛
\===========[_|_|_|_|_|_|_|_|_|_|_|_|_|_]===========/
/三三三三三三三三三三三三三三三三三三三三\
0 │ |∞∞∞ |::|∞∞田田田田田田∞∞|::|∞∞∞ | ::| 0
...[二] | ::| |::|┏━━━━━━━━┓|::| | ::l [二]
........|□|.│ |┌┬┐ |::|┃ / \ ┃|::| ┌┬┐| ::|. |□|
)三(...| ::|├┼┤ |::|┃/ \┃|::| ├┼┤| ::|`)三(´
| ::| | ::|└┴┘ |::|┃ / ̄ ̄ ̄ ̄ ̄\ ┃|::| └┴┘| ::| | ::|
| ::| | ::|┌┬┐ |::|┃彳 人______ ノ.┃|::| ┌┬┐| ::| | ::|
| ::| | ::|├┼┤ |::|┃入丿ー◎-◎ーヽミ.┃|::| ├┼┤| ::| | ::|
|: :| | ::|└┴┘ |::|┃ r . (_ _) )┃|::| └┴┘| ::| | ::|
| ::| | ::|┌┬┐ |::|┃ ( ∴.ノ▽(∴ ノ ┃|::| ┌┬┐| ::| | ::|
| ::| | ::|├┼┤ |::|┃⌒\_____ノ⌒┃|::| ├┼┤| ::| | ::|
| ::| | ::|└┴┘ |::|┃ ┗━┛ .┃|::| └┴┘| ::| | ::|
| ::| | ::| ... |::|┃ . .
>>604 . ┃|::| | ::| | ::|
.....┏━━━━━┓| .|┃ ......┃|::|┏━━━━━┓
.....┣┳┳┳┳┳┫|: |┗━━━━━━━━┛|::|┣┳┳┳┳┳┫
○ ● ∫∬∫∬ ● ○
○○ ●● iiiii iii ii iiii ●● ○○
[ ̄ ̄] [ ̄ ̄] ( ̄ ̄ ̄ ̄ ̄) [ ̄ ̄] [ ̄ ̄]
|_○_| .|_○_| |_____| |_○_| .|_○_|
∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧
( )( )(, )(,, ) ,,)( )( )(, )( ゚Д゚ )
やっと氏んでくれたね・・・引篭りで匿名掲示板でしか粋がれないデブオタこと
>>604 君
631 :
デフォルトの名無しさん :03/08/09 20:16
unko{ String s = "";; add(s); System.out.println(s); } add(String s){ s = "unko" ; } これでだと、なにも表示されないのですが、 プリミティブ型やStringBufferなどのクラス型は 引数に参照の値を渡してあげると 値が変わりますよね。 なぜStringはだめなのですか?
632 :
デフォルトの名無しさん :03/08/09 20:27
>>631 そういう仕様だから。不変(イミュータブル)オブジェクトという。
>>504 レスが遅くなってすいません。
できました。本当にありがとうございました。
634 :
デフォルトの名無しさん :03/08/09 22:27
JDBCを使ってORACLEから値を取得するプログラムを書いています。 取得しようとしている値に改行が含まれていて、 ResultSetのgetString()を使うとNULLになってしまいます。 そんなときは、どのメソッドで取得するといいのでしょうか?
635 :
デフォルトの名無しさん :03/08/09 22:28
本当に街で見かける女子校生っぽいファッションの少女です。
スレンダーな体つきに黒い下着がセクシーです。
おもむろに男性のチンチンを咥えオマンコでも受け入れてしまう乱れ方は相当のもの!
コギャル好きにはストライクです。
無料ムービーを観てね。
http://www.pinkschool.com/
> 取得しようとしている値に改行が含まれていて、 > ResultSetのgetString()を使うとNULLになってしまいます。
637 :
デフォルトの名無しさん :03/08/10 01:17
>>631 なりゃせんぞ。
static void add( StringBuffer s ){
s = new StringBuffer( "aaa" );
}
public static void main( String args[] ){
StringBuffer s = new StringBuffer( "" );
add( s );
System.out.println( s );
}
LAN上のPCから自分が使ってるグローバルIPを得るにはどうすればいいのでしょうか?
LANってことはプライベートIPだろうから、なにをどうしてもグローバルIPになることはない。 ルータにtelnetして内部コマンドでIPアドレスを取得 Webサーバ内蔵のルータなら、ポート80を叩いて画面出力を自力で切り出す ネット上の環境変数を返すCGIを呼び出して、自力で切り出す。 等々。 Javaには全然関係ないね。
>>632 >>そういう仕様だから。不変(イミュータブル)オブジェクトという。
アフォですな。
>640 JAVAのプログラムでということを忘れました
System.out.println() などでコマンドラインに出力するツールを、 jarファイルに変換するとSystem~が出力されなくなってしまいます。 なんとか表示させる方法はないのですか?
>>643 コンソールから起動しろよ。標準出力を画面に表示するようにしなきゃ
見えるわけねえべ。
>>642 つまり自分のPCのアドレスとりたいのか?
java.netのServerSocketだかInternetAddressだか忘れたが
そのへんしらべろ
自分のIPアドレスなら下でいける。 InetAddress ipAddress = InetAddress.getLocalHost(); System.out.println("MyIPAddress:" + ipAddress);
647 :
デフォルトの名無しさん :03/08/10 02:36
<646 それだとローカルのアドレス(192.168.0.1)とかが返ってくるので。 グローバルIPを知りたいのです
いや、コンソールから(というかバッチファイルから)起動してるんですが・・ 一応なんども確認してます。 つかもうどうでもよくなってきたんでもういいです。ごめんなさい。
650 :
デフォルトの名無しさん :03/08/10 03:18
>>649 #!/bin/sh
OF=/var/hogelog_$(date +%Y%m%d).log
/usr/bin/java hoge > $OF
とかなっているとか
>>632 なんだお前、ただの能無しだったか・・・。
どうでもいいけど、焦らすなよw
クラス Hoge があるとき Hoge.class って書くと Class インスタンスに定数でアクセス して速そうな気がするけど、実際のバイトコード上は毎回 Class.forName("Hoge") をやっているということに気が付いた。
文字列の中に半角数字があるかどうかを素早く判定する方法で 一番ローコストな方法教えて下さい。 ダサイ方法ならいくらでも思いつくんですけど。
>>654 ローコストとは実行パフォーマンスか手間かどちらの事なのか分からないが
とりあえずそのダサい方法しかないと思われ
int len = str.length();
for(int i=0; i<str.len; i++){
char ch = str.charAt(i);
if(ch >= '0' && ch <= '1'){
// 半角数字
}
}
>>654 不変(イミュータブル)オブジェクトを使え。
657 :
デフォルトの名無しさん :03/08/10 05:13
657=632
>>655 やはりそれが一番効率良いですか。どうもでした。
660 :
デフォルトの名無しさん :03/08/10 06:08
661 :
デフォルトの名無しさん :03/08/10 10:59
現在、Base64でエンコードされた文字列を一部分だけ取り出してデコードを行い、 最終的に全てのデータをデコードする処理を作ってるんですがぜんぜん上手くいきません。(´・ω・`) どうも、吐き出したバイナリを見たところ、最後に'\0'が付け足されてたり 2バイト文字なんかが入ってるとデータが壊れてしまったりしてるっぽいんです。 誰かタスケテ(つд`) //////////////////////////////////////////////////////////////////////////// // 受け取ったStringBufferをInputStreamに変換する //////////////////////////////////////////////////////////////////////////// private InputStream getInputStream(StringBuffer buf) { InputStream is = null; try { byte[] b = base64decode(buf.toString()); is = (InputStream) new ByteArrayInputStream(b); b = null; } catch (Exception e) { e.printStackTrace(System.out); is = null; } return is; }
private byte[] base64decode(String str) { int strlen = 0; byte[] wk = str.getBytes(); str = null; if (((strlen = wk.length) == 0) && ((strlen%4) != 0)) return null; ByteArrayInputStream bais = new ByteArrayInputStream(wk); ByteArrayOutputStream baos = new ByteArrayOutputStream(); int[] enc = new int[4]; byte i, j; boolean flg = false; while(bais.available() > 0) { for (i=0; i<4; i++) { enc[i] = checkBase64Char((byte)bais.read()); if (enc[i] == -1) return null; } baos.write((enc[0] << 2) | (enc[1] >> 4)); if (enc[2] == -1) baos.write((enc[1] & 0x0f) << 4); else { baos.write(((enc[1] & 0x0f) << 4) | (enc[2] >> 2)); if (enc[3] == -1)baos.write((enc[2] & 0x03) << 6); elsebaos.write(((enc[2] & 0x03) << 6) | enc[3]); } } baos.flush(); return baos.toByteArray(); }
private byte checkBase64Char(byte b) { boolean flg = false;// エラーフラグ // decode base64 strings → byte for (byte i=0; i<65; i++) { if (b == bytemap[i]) { if (i != 64) b = i; else b = 99; flg = false; break; } } if (flg) b = -1; return b; }
おい、
>>639 外部とつながっているブロドバンドルータの取説読めよ
おそらく、CDに入っているマニュアルに書いてある
どうして、標準APIにBase64クラスがないんだろう・・・
>>654 String str;
Pattern p = Pattern.compile("\\d"); // 半角数字の正規表現
Matcher m = p.matcher(str);
if (m.find()) {
... // 半角数字あり
}
パフォーマンスはどうか知らないが記述量はだいぶ少なくて済む。
>>665 ネット上には
こんなのあるぜよ
パッケージ westtool.BASE64
クラスの概要
BASE64Engine
Decoder BASE64デコードクラス。
Encoder BASE64エンコードクラス。
JavaMailなんかにもあったんですけどね・・・ あきらめてHDD上にバッファリングするかなぁ・・・
自己レスですが、どーもデコード前のバッファリングに問題がありました・・・ (;・∀・)カコワルイ とりあえず、ぐぐったら先人たちのイカスやつがあったんで、ちょこちょこっと修正して 動いたやつを乗せときます。 private static final byte EOF = (byte) 0xff; private static byte[] decTbl= { EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, EOF, 62, EOF, EOF, EOF, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, EOF, EOF, EOF, EOF, EOF, EOF, EOF, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, EOF, EOF, EOF, EOF, EOF, EOF, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, EOF, EOF, EOF, EOF, EOF };
public static byte[] base64decode(String str) { byte[] org = str.getBytes(); int strlen = org.length; str = null; if ((strlen== 0) && ((strlen%4) != 0)) {org = null; return null;} ByteArrayInputStream bais = new ByteArrayInputStream(org); ByteArrayOutputStream baos = new ByteArrayOutputStream(); org = null; try { byte b1=EOF, b2=EOF, b3=EOF, b4=EOF; while(bais.available() > 0) { if ((b1 = decTbl[(byte)bais.read()]) == EOF) break ; if ((b2 = decTbl[(byte)bais.read()]) == EOF) break ; baos.write(((b1 << 2) | ((b2 & 0x30) >> 4))); if ((b3 = decTbl[(byte)bais.read()]) == EOF) break ; baos.write((((b2 & 0xf) << 4) | ((b3 & 0x3c) >> 2))); if ((b4 = decTbl[(byte)bais.read()]) == EOF) break ; baos.write((((b3 & 0x03) << 6) | b4)); } baos.flush(); } catch (Exception e) {e.printStackTrace(System.out);} bais = null; return baos.toByteArray(); } ハァヤレヤレ・・・
おせーよヴォケ
お前わざと、時間差攻撃してねーか?
あ、何か偽者でてる(w さっきのBase64の話題と直接関係は無いんですが、 StrinbBufferで文字列をバッファリングしてるんですけど deleteメソッドで内容を消すのと、新しいオブジェクトをnewするのとどっちが早いんでしょうか? >671 情報サンクスコ これって、Base64の文字列の一部だけ渡してデコードを行うことが出来るんでしょうか? たとえば、受信データが100Mとか超えるときって、そのままバッファリングしたら Out of Memory Exceptionが発生したりするじゃないですか。 で、出来たら受信データをデコードしつつバイパスしたほうが楽かなーと思って作ってたんですよ ( ´-`).。o(もし、コレで出来たらこっちに変えよ
>deleteメソッドで内容を消すのと、新しいオブジェクトをnewするのとどっちが バッファの意味わかんないの?
>675 サンクスコ、deleteの方がはやいっすね
>674 部分文字列を4の倍数の長さで渡せばかまわないんじゃない。
さんざんガイシュツかもしれませんが、 無名クラスのコンストラクタって、どう書けばいいんですか?
679 :
デフォルトの名無しさん :03/08/10 17:41
classとclassをつなげるって、どうしたらいいですか?
>679 GoF嫁
682 :
デフォルトの名無しさん :03/08/10 17:54
public class 教えてぷりーず { public class 内部クラスその1 { public void foo { System.out.println("foo"); } } public static class 内部クラスその2 { public void bar { System.out.println("bar"); } } } この二つの内部クラス、staticにするかしないかって、どう違うの? クソ分厚いJava言語仕様開くのが面倒臭いので、 教えて、Javaの偉い人!
>>682 staticでない内部クラスにアクセスするには、外部クラスのインスタンスが必要。
普通のstaticフィールドと非staticフィールドの違いと同じ。
教えてぷりーず.内部クラスその1 obj1 = new 教えてぷりーず().new 内部クラスその1();
教えてぷりーず.内部クラスその2 obj2 = 教えてぷりーず.new 内部クラスその2();
684 :
デフォルトの名無しさん :03/08/10 18:21
アプレットで簡単なゲーム(ロードランナーみたいの)を作ろうと思うんですが スレッドを使うのがいいのですか? だとしたらなぜでしょうか? startメソッド内で描画メソッドをぐるぐる回したらダメなんでつか?
>>681 >15.9.5.1 匿名コンストラクタ
>匿名クラスは,明示的に宣言されたコンストラクタをもつことはできない。
>その代りに,コンパイラはその匿名クラスのために自動的に匿名コンストラクタ を用意しなければならない。
>直接的上位クラス S をもつ匿名クラス C の匿名コンストラクタの形式は,次に従う。
つまり、コーディング上は、コンストラクタを記述することはできず、
コンパイラが規定のルールに従って匿名コンストラクタを用意して、
それが実行時に使われる、ってことですか?
そうすると、直接的上位クラス S をもつ個々の匿名クラス C において、
個々の初期化を、できるようにしようとした場合、
以下のような書き方にせざるをえないってことですよね。
---<S の宣言>---
public abstract class S {
public S {
init();
}
protected abstract init();
...
}
---<C1の宣言>---
S C1instance = new S() {
...
protected init() {
C1 固有の初期化・・・
}
...
};
-----
>>685 独自のコンストラクタが必要なような場合に、匿名インナーなんかつかうな
ということだと思うが。
>>686 私は Singleton 継承(もどき)を実現するために、この方法を使ってるんですが、
この方法がまずいとすると他にもっとまともな方法があるのでしょうか?
どっちかっつーと匿名内部クラスは手抜き的プログラミング用だからなー
>>683 >教えてぷりーず.内部クラスその1 obj1 = new 教えてぷりーず().new 内部クラスその1();
>教えてぷりーず.内部クラスその2 obj2 = 教えてぷりーず.new 内部クラスその2();
下のは
教えてぷりーず.内部クラスその2 obj2 = new 教えてプリーズ.内部クラスその2();
じゃなかったか?
>>678 ほか
イニシャライザを使うとそれらしいことが可能
コメントってコンパイル時に削除されますか? //ヽ( ・∀・)ノ ウンコー とか書いていても逆コンパイル時には出てこないですよね?
System.getProperty の path.separator file.separator ってなんなんでしょう? Winなんですが、path は";"、file は"\"になります。 "\"はもちろんフォルダの区切り文字ですけど、";"てなんですか?
>>691 たまに出ちゃうんだなこれが。
お陰で俺もクビになりかけたよ。
694 :
デフォルトの名無しさん :03/08/10 23:13
>>692 パスを複数指定する場合に使う区切り文字。
>>694 あーなるほど環境変数とかの奴ですね。了解。
>>692 Windowsのシステム環境変数とか見てごらん。
たいていの場合、復数のパスが";"で区切られて入ってるよ。
出遅れた
>>693 まじすかぁ・・やっちまったかなぁ。私は首にはならないと思うけどw
>>659 Jakarta CommonsのStringUtilとか
Jakarta OROとかも調べてみるとええぞ。
>>698 ,700
なんかそうやってさらっと流すと勘違いするやつが出てきそうだ
>>692 > System.getProperty の
こいつはFileクラスにもある。
> ってなんなんでしょう?
> Winなんですが、path は";"、file は"\"になります。
Unixでは ":" と "/" になる。
>クソ分厚いJava言語仕様開くのが面倒臭いので、 >教えて、Javaの偉い人! 君はプログラマ辞めたほうがよい
URLクラスには Fileクラスの file.exists() 相当のメソッドがないのは何故ですか?
>>687 匿名じゃないインナー使う分には自由だし、インナーじゃないクラス使うのも
自由ですが…
というか、何か頭悪いかほりがそこはかとなく…
>>706 URLの向こうにあるのがファイルだとは限らんし。
ldap://hogehoge とか rmi://hogehoge とか iiop://hogehogeとか。
JavaのURLクラスがこれらからInputStreamを引いてこれるかどうかは別問
題ですが。
>>706 存在するか確認するだけで 1 回分の無駄な通信さすなという
髭オヤジの配慮。つーか、HEAD で 200 返ったところでエンティティ
が存在してる保障ないし。
>>699 どうせ内部にダサいロジックを隠蔽しているだけだと思われるが。
ファイル名に「$」が付いているとアップロードできないんですが、どうしたらいいのでしょうか?
713 :
デフォルトの名無しさん :03/08/11 13:06
javaとhtmlの違いってなんですか? よくわかりません。お願いします。
714 :
デフォルトの名無しさん :03/08/11 13:57
age
717 :
デフォルトの名無しさん :03/08/11 14:32
>>716 え?ここじゃなかったんですか?
いいでしょう。ここは貴殿の顔に免じて引きましょう!!
718 :
デフォルトの名無しさん :03/08/11 14:32
>>715 いやこっちが質問しているのですが・・・。
Javaはえっちじゃない htmlはえっちだ
720 :
デフォルトの名無しさん :03/08/11 14:35
>>719 これ以上ないわかりやすいお答えありがとうございます!!
そうか!!そういう違いがあったんですね!!感謝です!!
724 :
デフォルトの名無しさん :03/08/12 11:12
JAVAで、定数の定義の仕方を知りたいです。 定義の仕方のほかに、 クラスの外部で見えるような宣言の仕方、 クラス内部で見える定数、 メソッド内で見える定数、 のそれぞれの定義の仕方も知りたいです。 よろしくお願いします。
>>724 定数:final
クラス外部で:public
クラス内部で:private
メソッド内で:メソッド内で定義しろや
final static final pruvate final final
729 :
デフォルトの名無しさん :03/08/12 16:49
こんな書き込みで大変申し訳ないのですが、 Javaから他のアプリケーションを起動するクラスと主なメソッドを教えていただけないでしょうか? 当方パソコンの調子が悪く、ネットに接続できなくなっているんで、調べることができません。 ちなみに今は携帯からの書き込みです。 どうかお願いします。
730 :
誰か教えてください :03/08/12 17:11
preverifyってどうやってやるんですか? Error preverifying class Test java/lang/NoClassDefFoundError: java/lang/Object って出てきてできないんですけど。
>>729 java.lang.Process java.lang.Runtime#exec()
>>730 pre-verifying class Test だからバイトコードの正当性検査の前にエラーが出てるって事かな?
java.lang.Object すらダメってのは… 原因わからないなら、
1) 掲示板とかでなく、物理的に話せる人間に SOS
2) JREの再インストール
3) OSの再インストール
とかしてみれば?
734 :
デフォルトの名無しさん :03/08/12 17:49
Javaをはじめたばかりで、脳みそがかゆいんですが、 Javaで扱う配列は、lengthメソッドを持っているってことは、クラスなんですか? 配列については、API ドキュメントのどこに書かれているのでしょうか?
>>736 ありがとうございます。
何だか不思議な感じですが、こういうものと覚えることにします。
738 :
デフォルトの名無しさん :03/08/12 18:13
J-PHONEのアプリ作りたいんだけどpreverifyできないと無理ですか?
>>735 お礼も無しで、そのアマチャンな態度はいかがなものかと。
740 :
デフォルトの名無しさん :03/08/12 18:20
J-PHONEアプリの作り方がよくわかるホムペ教えてください。
>>740 J-PHONEアプリの作り方がよくわかるホムペ調べてください。
>>735 java.lang.RuntimeがクラスでexecがRuntimeのメソッドだろーが。
まさかそれ以外にも使用しそうなものを全部挙げろってか?
>>743 大体の使い方も教えていただけないでしょうか?
>>744 1. java.lang.Runtime#exec()を実行。
2. 返ってきたjava.langProcessから標準出力と標準エラー出力のストリームを貰う
3. バッファが詰まらないように、スレッド作るなりしてストリームから吸い出しつつ
終了を待つ。
4. 終了したらProcess#exitValue()で終了コード取得、あとはお好きに。
標準出力/エラー出力どちらかだけって決まってるならスレッド作る必要ないと思うけど、
両方吐き出す可能性があるなら、スレッド作って同時に処理してやらないと
片方のバッファがいっぱいになった時点で処理が止まってしまう恐れがある。
747 :
デフォルトの名無しさん :03/08/12 21:10
>>730 ちゃんとクラスパスを設定してる?または -classpath つけて preverify やってる?
749 :
デフォルトの名無しさん :03/08/13 00:08
FileInputStream in; FileDialog dialog; dialog = new FileDialog(new Frame()); in = new FileInputStream(new File(dialog.getDirectory(), dialog.getFile())); と、 String path, filename; File file; FileInputStream in; FileDialog dialog; dialog = new FileDialog(new Frame()); path = dialog.getDirectory(); filename = dialog.getFile(); file = new File(path, filename); in = new FileInputStream(file); では、どっちがいいの? 動くかどうかは別として。
上
俺も上だな。 どっちがいいかは知らんけど
>>750-752 レスthx。
漏れ的にも上の方がいいんだけど、下の方が明示的で分かりやすいと思うんだよなぁ…。
早さとかは変わらないんか?
>>749 俺的には、
String path, filename;
FileInputStream in;
FileDialog dialog;
dialog = new FileDialog(new Frame());
path = dialog.getDirectory();
filename = dialog.getFile();
in = new FileInputStream(new File(path, filename);
かな。理由は、分りやすいから。
path以下にhogehoge(例えばCVSディレクトリ)があったら何するとか、
filenameだけを取りだして、ウインドウのタイトルにするとか、
filename + ".bak" をバックアップディレクトリに保存するとか、まぁ後から
いろいろといじるときに便利。
Fileのインスタンスは(pathとfilenameがあれば十分理解できるので)いちいち
変数に入れなくてもいいと思う。
755 :
デフォルトの名無しさん :03/08/13 00:37
java.security.MessageDigest の使い方、教えてくれませんか? System.out.println(new String(MessageDigest.getInstance("MD5").digest("ハッシュテスト".getBytes()))); 試しにこういう風に使ってみたのですが、文字化けしたおかしな値しか出てきません
>>753 殆ど差はない。
その程度の差が気になるなら FileDialog とか使うのやめれ。
>>754 Fileクラスのインスタンスも書いたのは例えであって、必ずそうするわけではないよ。
>>754 が書いたやつが一番分かりやすいと思うし。
ただ、速度としてどっちの方が早いかなぁと思って。
もしかして、漏れ、的外れなこと言ってるかな…。
>>756 あぅ…。例えが悪かったな…。
スマソ。
>>756 あぅ…。
例えが悪かったな…。
スマソ。
>>756 あぅ…。
例えが悪かったな…。
スマソ。
スレ汚しちまった…。
どんまい
最近Robocodeの本を買い、やってみようかと思うのですが、 ここの人たちはRobocodoってやってますか? 昔はスレが立ってましたが・・・ あと学習教材としていい物だとどっかのサイトでいってましたがどうですか? 私は現在独習Javaを半分ほど終えたところです。
>>755 byte[] hash = MessageDigest.getInstance("MD5").digest("ハッシュテスト".getBytes());
for(int i = 0 ; i < hash.length ; i++){
System.out.print(((hash[i] & 0xFF) < 0x10 ? "0" : "") + Integer.toHexString(hash[i] & 0xFF).toUpperCase());
}
System.out.println();
>>764 ぬおぉ!!!
ありがとうございます!!!
>>749 おれも上。
変数を用意しないことで、ほんとにその場だけ必要なインスタンスだってわかるし。
妄想だと上のほうが速そうだし。
あと、classファイルもちっちゃくて済むからKVMなんかのリソース乏しいとこでも助かるから上。
下のほうが融通が利きそうだな
>>767 そりゃそうだろw
その融通を冗長だと感じるかどうかじゃない?
下の例で 「で、この変数はこのあとどこで使われてんだろ?」とか思いながらソース読んでって
結局、一回しか使われてなかったらちょっと萎えるな。
たしかにそうだなw その時の状況にあわせて使い分ければいいってことね ちなみに俺は 上 を選ぶ
Eclipse2.1だと黄色のアンダーバーが出るのが嫌だ だから上
>>749 FileDialog dialog = new FileDialog(new Frame());
FileInputStream in = new FileInputStream(new File(dialog.getDirectory(), dialog.getFile()));
ふつーこう
>>771 が一番しっくり来るな。
まあ、実際は規約にもよるんだけど
初期化がされない状態のローカル変数は、コンパイル通ったっけ? ローカル変数なんか、メソッド作った奴の好きに書け、と思うが。 古いCコンパイラなんかで頭悪かった頃のルールを、惰性で引きずる 必要はないと思うがなあ。
>ふつーこう それこそ妄想。
>>770 おまえアホだろ?
使ってない一時変数の話じゃなく逐一一時変数を使うかどうかの話だろが。
それにオプションいじれば出なくなるし。
>>749 当然ながら例外を投げる可能性がある場合は逐一一時変数に入れないとまずいこともある。
iアプリなんかの実行ファイルサイズが10kBとか制限厳しいとこだと 変数は極力つかわないようにしないと容量オーバーしてしまったり。 まあ、あれはJavaであってJavaでない、と言われたらそれまでだけど。。
>>775 >当然ながら例外を投げる可能性がある場合は逐一一時変数に入れないとまずいこともある。
なにこれ?
行番号で例外判断でもするんですか?
779 :
デフォルトの名無しさん :03/08/13 04:12
JavaにMFCのCDaoDatabaseクラスみたいなやつありますか? OracleとかAccessみたいな外部DBMSを用意しないで アプリ自体に組み込んじゃいんです。 データの源泉はテキストファイルで最初に取り込んだときに DBができてなかったら作るみたいな感じのことがやりたいんですけど。
780 :
デフォルトの名無しさん :03/08/13 04:15
テキストファイルからSQLみたいな簡単な奴使って データ取り出せればそれでもいいです。
漏れ的には変数宣言と、インスタンス生成は別の方がいいような気がする。 スレ違いっぽくなってきたな。
無視された・・・どうやら質問してはいけない内容だったらしい・・・
787 :
デフォルトの名無しさん :03/08/13 11:33
>>748 preverifyするのってただpreverify Testってやるだけじゃダメなんですか?
ちゃんとAutoexec.batってゆーやつのpathのとこにpreverify.exeがあるとこも書いといたよ。
-classpath つけて preverify やるってどうゆうことですか?
あとclasspathとpathってちがうの?
>>787 それって、ケータイアプリ?
>あとclasspathとpathってちがうの?
違う。
CLASSPATHってJava固有のもの
>>778 サンプルとかでありがちな、こういう場合の話じゃないの?
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "euc-jp"));
これだと途中で例外発生したらまずいでしょ。
Eclipseを使ってJavaをいろいろやってみようと思うのですが、、検索してみるとEclipseって単語すら載ってないサイトしか出てきません 良いサイトないですかねぇ…(JAVA講座系の…
>>789 ん?それはなに?
もしかして、close()出来ないとかそういうことなのですか?
さっぱり意味わかんないです。
マジで理由教えてください。
私が見たいままでの解説書はどれも、
///////////////////////////////////////////////////////////////////////////////////
このサンプルでは分けて書きましたが意味のないことです。通常は次のようにまとめてしまいます。
InputStreamReader in
= new InputStreamReader( new FileInputStream( new File(args[0])), "EUC_JP");
OutputStreamWriter out
= new OutputStreamWriter(new FileOutputStream(new File(args[1])), "ISO2022JP");
///////////////////////////////////////////////////////////////////////////////////
というような書きかたしています。「意味のないことです」と、ハッキリ言っています!
今までもコレで納得していました
いったいどういうことなんでしょうか?
>>789 厨な質問だったらスマソ。
そこで発生する例外ってUnsupportedEncodingException (指定された文字エンコーディングがサポートされていない場合)
だけだよね?
それをcatchすればいいだけで、逐一変数にいれとかなきゃまずいともいいきれないような。。
言ってること検討違い?
>>790 「Eclipse Java」とかで検索した結果のページに「Eclipse」が含まれてないの?
意味わかんね。
つーか、Eclipseの使い方とJavaの勉強は別々にしろよ。<Java講座系
>>791 new InputStreamReader()で例外が発生したらFileInputStreamをcloseできない。
すみません 質問です。 JavaのGUIアプリケーションでキー入力でいろんなアプリを起動させる アプリケーションを作りたいなって思ってるんですがどうも 意図したとおりに作成できません・・・。 現在フレームを作成し、キーイベント取得のロジックを組み込み 普通にフレームがアクティブになっている状態ではキー取得ができるのですが、 なにかのウィンドウの裏に隠れたとき(ノンアクティブになったとき) キーイベントを取得することができません。 ノンアクティブなフレームからでもでもキーイベントを 取得することはできるのでしょうか? 方法をご存知の方アドバイスや情報よろしくお願いします。
>>795 そういうの難しいよね・・・
例えばWindowsボタンは他のアプリがアクティブでも
認識してスタートメニューが開く
こういう具合にやりたいと思うんだけど
たとえば、そのJavaのランチャーアプリと
いまアクティブになってるアプリのファンクションキーが同じだった場合は
当然、アクティブな方が優先される・・・
そうならないために
OSに、このキーが押されたときは、このJavaランチャーアプリからっていうのを
登録せんといかん。
これがJavaで可能なのかな?と思うと疑問
JNIで試行錯誤するしかないと思う
797 :
デフォルトの名無しさん :03/08/13 16:05
以下のソースでは再宣言していると教えていただいたのですが、 いったいどのようないみなのでしょうか? import com.nttdocomo.ui.*; public class test001 extends IApplication{ static Panel1 f_panel; static Panel2 s_panel; public void start(){ Panel1 f_panel = new Panel1(this); //ここが Panel2 s_panel = new Panel2(this); // 再宣言しているとのことです Display.setCurrent(f_panel); } }
>>795 test001のインスタンス変数s_panelとは別に、
start()メソッドのローカル変数s_Panelを宣言している、という意味です。
thisをつけて明示しない限り、同名の変数があればインスタンス変数より
ローカル変数が優先されます。
わかっていない人がやるとバグの原因になります。
>>797 public class test001 extends IApplication{
static Panel1 f_panel;
static Panel2 s_panel;
public void start(){
f_panel = new Panel1(this); //これが
s_panel = new Panel2(this); // 正しい
Display.setCurrent(f_panel);
}
}
800 :
デフォルトの名無しさん :03/08/13 17:39
>>798 799
ありがとうございます。
public class test001 extends IApplication{
static Panel1 f_panel;
static Panel2 s_panel;
と最初に宣言しているにもかかわらず、
Panel1 f_panel = new Panel1(this); //ここが
Panel2 s_panel = new Panel2(this); // 再宣言しているとのことです
で宣言しているから、コンパイラにしかられるのですね。
初めに宣言したのがインスタンス変数で、あとに宣言したのがローカル変数
ということでしょうか?
801 :
デフォルトの名無しさん :03/08/13 18:30
preverify -classpath ..... Test .....のところには何を書けばいいんですか?
>>801 えっへっへっへぇ~~
俺は知っている俺は知っている
えっへっへっへぇ~~
お前は巨人ファンか?ん?ん?
なら答えを教えてやろう。
そのかわり、以下の質問に答えてくれわかったな
1.最近オナニーしたのは何日前?もしくは何時間前?
2.そのときの、おかずは?
3.好きなアイドルは?
4.悪いとは思うが3のアイドルで抜いたことがある?
5.元木が結構好きだ?
6.河原(巨)なら打てる気がする?
7.モー娘。は終わってる?
絶対答えろよ↑
preverify -classpath <クラスファイルのあるフォルダのパス> -d <検証後のクラスファイルの出力フォルダ> <検証を行うクラスファイルの置いてあるフォルダ>
803 :
デフォルトの名無しさん :03/08/13 19:12
<クラスファイルのあるフォルダのパス>と<検証を行うクラスファイルの置いてあるフォルダ>はどうちがうの? 検証をするクラスファイルじゃないの? あと.classってつけなくていいんですよね?
>>803 きさま~答えろっていっただろーがぁ~
まあいい次は答えと一緒に書けよ
-classpath <クラスファイルのあるフォルダのパス>
って言うのは、クラスパスにするクラスファイル群を置いてあるフォルダってこと
ちなみに、普通のJavaアプリの場合
-classpathはJarをそのまま指定可能なのだが
preverifyコマンドではJarを指定することは不可能
なので、もしJarファイルなら展開してそのフォルダ指定でOK
<検証を行うクラスファイルの置いてあるフォルダ>って言うのは
自分が作ったクラスファイルの置いてある場所ってことだ
ここで注意して欲しいのは、classファイルを指定するのではない。
classファイルの入っているフォルダを指定するってことだ!
いいか、さっきの質問答えれよ!次はないぞ!
1.昨日 2.小倉優子と仲根かすみ
じゃ漏れが続きをば。。 3.伊藤美咲 4.うん! 5.斎藤雅が投げてる時に隠し球やったがバレバレで、 審判に早くボール返してこいって注意された姿はワラタな・・・ 6.転がせる気がする
807 :
デフォルトの名無しさん :03/08/13 21:03
クラスパスにするクラスファイル群ってなんですかぁ? 1.昨日
>>807 >クラスパスにするクラスファイル群ってなんですかぁ?
そうではない、
クラスパスにする、『クラスファイル群を置いてあるフォルダ』だ!
質問す。 引数を半角もしくは全角に変換するにはどうしたらいいですか?
810 :
デフォルトの名無しさん :03/08/13 22:06
クラスパスにする、『クラスファイル群を置いてあるフォルダ』って?
>クラスパスにする、『クラスファイル群を置いてあるフォルダ』って?
俺の説明悪いのか?それとも煽ってるのか?
そもそも
>>810 は元の質問者なのか?
もっとわかりやすくこたえなよ
815 :
デフォルトの名無しさん :03/08/13 22:28
要するに-classpathのあとになんてかけばいいんですか?いろいろ試してるんだけどぜんぜんエラ-ばっか。
816 :
デフォルトの名無しさん :03/08/13 22:29
早く答えろゴルァ
「ケツ毛ボウボウ」って書くといいよ。 俺はこれでどんなJAVAでもガッツシ
>「ケツ毛ボウボウ」 できましたーーーーーーーーーーーーーーーーーーーーーーーーーーーー
>>814 おいこら誰にいってんだよオイ!
おまえ、何様だ?あ?
うっせしね!!!!!!!!!!!1 あはははははははははははははははははははははははははははははははははははははははははは
824 :
デフォルトの名無しさん :03/08/13 23:25
>>821 お前スゲーイイ奴だと思ったよ。
それだけなんだけどさ・・・
なんだよコレ・・・ 結局7番の質問誰も答えてくれね―し・・・ ムキィィィィィィィィィイ!
終わっている物に対していちいち確認するなんて無駄な行為ですから
>>815 なんて書けばいいって?
だから、環境依存だから俺が抽象的に書いてんじゃんか
基本的にお前何がやりたいのかわかんね―んだけどさ
おそらく、ケータイアプリだろ?
だから、J2ME CLDCのクラスファイル入ってるフォルダと
あとは、例えばiアプリならiアプリ用のクラスライブラリJarを展開したフォルダ
この二つを-classpathに書けばいい
(全部一緒のフォルダにまとめてもいい)
>>826 そういう問題け??
それじゃ
7.キダムのサーカスが終わるまでは、終わってても終わらせない!
元木の隠し球にはマジでワロタよー
まあ 怒り静めてな・・・
>>829 モー娘。がだろ。
お前が言い出したことだろう
>>831 正直 スマンかった
問題番号書いてないので&周りも煽ってたので・・・同じような内容かと思ってました
盲目でした
>>833 あ?あやまってその答えが「やだ」?
意味がわからん
>>809 Stringオブジェクトの全ての文字を半角→全角または全角→半角に変換したいと解釈。
そんなメソッドを提供するクラスは標準では存在しないので、
どこかから探してくるか自作する。自作するならUnicode調べてみ。
>>809 >>836 おい、俺さっきからこれやってるんだけど
アルファベットと違って
半角と全角って対応するように並んでないんだよな・・・
なので、一個一個マップさせるしかないな
しかも、例えば半角の濁音は、「カタカナ+濁点」と2文字みたい・・・
全角は濁音の文字も1文字で表すのだが・・・
>>837 君は頭が悪いのでまともな文章が書けないらしいね。
俺が補足してやろう。
> アルファベットと違って
> 半角と全角って対応するように並んでないんだよな・・・
↓
カタカナって、英数字と違って、半角と全角が対応するように並んでないんだよな。
841 :
デフォルトの名無しさん :03/08/14 00:29
>>809 >しかも、例えば半角の濁音は、「カタカナ+濁点」と2文字みたい・・・
やっぱコレが一番のネックっぽいな。
注1)
>>834 は煽りじゃなくて、謝るオマイ見て大したもんだ、と思ったのだよー
注2)漏れは元木より元木の奥さんが好きなんだ!
ん?半角⇔全角変換って 英数字だけなら、前スレに書いてあったぞ
>>840 一瞬見たときコメントが中国語に見えた
なんか、漢字がやたら多いコメント
>>837 >全角は濁音の文字も1文字で表すのだが・・・
UNICODE の規格では確か
全角においてもカナ+濁点の2文字で表してよいことになっている。
例えば「ば」と「は」+濁点は UNICODE 的には等しいと判定されなければならないとされている。
そして実際に濁音の文字をカナ+濁点で表す処理系は存在する。
初心者的質問です。 Javaで "981234、、、、、" 数十文字の数字で出来た文字字列(整数)を 一文字づつ区切って掛け算をしていきたいのですが 9*8*1*2*3*4、、、 て感じに。 BigIntegerの使い方が良く分からず。 特に区切った数字をBigIntegerに入れていく方法が良く分からず。 全体的な感じを掴むために 基本を抑えたサンプルを作っていただけたら嬉しいのですが。
>>802 はJava歴一週間くらいの割にはがんばっているな
数十文字だろ? 桁あふれが・・・
>>845 String val ="123456789";
BigInteger result = new BigInteger("1");
for(int i = 0 ; i < val.length;i++)
result = result.multiply(new BigInteger(String.valueOf(val.charAt(i))));
System.out.println(result);
簡単じゃん。
}
>>853 見て思ったんだけど
一回一回val.charAt(i) ってするのと
たとえばchar[] crArr = val.toCharArray(); などとして配列に入れてから回すのでは
後者の方が早いの?
>>855 Stringは内部にchar[]持ってるから、差があるとすれば
#charAt()メソッドコールの「メソッドコール自身のコスト」と、
toCharArray()で内部char[]の「ディープコピー生成のコスト」の
比較になるね。
ということで、長さに依存じゃないかね。
さらにいえば、そんなことを気にするようならJavaでプログラム書く
べきではないかもね。アセでもやっててください。
>>856 ああ、「カナ」の問題考え中だったよ
でも、正直
>>853 ほど、サクッっとできたとは思えんが・・・
ちなみに、修正⇒for(int i = 0 ; i < val.length();i++)だよな?
>>857 > さらにいえば、そんなことを気にするようならJavaでプログラム書く
> べきではないかもね。アセでもやっててください。
たとえどんな言語であれ、そういう部分を気にする気持ちは大切。
つーかむしろ、ただでさえ遅い遅いと言われてるJavaだからこそ
少しでも速くしたいという気持ちがあるんだが
俺はモー娘。が嫌い
>>860 俺なんていつだったか忘れたがこのスレで
List list=new ArrayList();
①for(int i=0;i<list.size();i++)
②int size=list.size();
for(int i=0;i<size;i++)
↑どっちが早いか質問したら、
「そんなトコに気を使うぐらいなら配列使え」とか言われた
>>855 そっちのコストより、BigInteger(String)を使うほうがきになるなあ。
BigIntegerの内部表現ってint[]だったはずだから、charにしたんなら'0'引いて
数値をBigIntegerのコンストラクタに渡すほうが速い気がする。
>>861 ネタだと思って見逃したるわ。2回目は無いぞ
大規模なデータベースにかかわる時なんかは、かなり大事なモンよ >少しでも早くしようという気持ち
>>855 JIT コンパイルなしだと下のほうが多少早いがありだと誤差程度。
しかし String.valueOf(val.charAt(i)) や String.valueOf(crArr[i]) よりも
val.substring(i, i+1) の方が JIT コンパイルありでも早い。
>>867 下のほうは中身System.arraycopyだからネイティブメソッドで
JIT効かないんだよね。
有名な例だけど、 お手軽に String = "a"+"b"+・・・ ってやるより StringBufferのappend() 使った方が断然早い、とかあるよな。。。
>>869 上で既出だが・・・
一行ですむなら
String s= "a"+"b"+・・・;
で十分だ
>>863 は単なるアホだけど「そんなトコに気を使うぐらいなら配列使え」もアホ
>>869 それは間違い。比べるなら、
String str = "a";
str += "b";
str += "c";
などと比べるべき。
>>870 ガイシュツ質問のみ即答(・∀・)カコイイ!!
>>802 は単なるアホだけど
Javaって面白いよな
勉強用にはいい。 実務ではきついよ。融通が利かなくて
>>873 だって、あれ答えたの俺だもん
人の答えを拝借するような真似は
俺はしない
802=876
>>870 仕様上は`a Java compiler may use the StringBuffer class ...'
であってmustじゃないけどね。かなり期待してもいいとは思う。
ああ、ごめん、869の場合は引用するべきはこの文の前の、 `An implementation may choose to perform conversion and concatenation in one step to avoid creating and then discarding an intermediate String object. ' か。これもmayであってmustじゃない。
80歳になったらな
>>871 それも場合によってはStringBuffer.appendへの変換が期待されるから
appendとの比較だと例としては判断が難しい。
887 :
デフォルトの名無しさん :03/08/14 01:33
しっかし、ザコの巣堀スレのくせによく伸びるね。
俺のちんこは全然伸びないってのに
String str だから str += "a" の str + "a" の時点で StringBuffer#append に変換されたとしても それを str に代入しなおす時点で StringBuffer#toString が呼ばれるだろ? こんなのまで最適化して全部 StringBuffer#append 一括にまとめてくれるコンパイラはあるのか?
>>796 さんレスありがとうございます。
やはり難しいんですね(;_;)シクシク
JNIでつか、もちっと勉強してみます。
パフォーマンスのことはコンパイラが考える時代になりますた。
892 :
デフォルトの名無しさん :03/08/14 11:39
やった~ついにpreverifyできますた~~~♪ ありがとーございました~☆
ココッテアゲアシトリノホウコダネ・・・。 プログラマコワイデス。 ワクセイニカエリマス。
いいかげんマルチやめれ
>>894 またおまえか?
どうでもええけど、おまえさんはJavaとか言う前に
なんかいろんなことがわかってないようやな
お前はそのコマンドを、どのディレクトリで実行したのか?
ハァ? バカの意見は聞いてねえよ
↓次の回答どうぞ
>>NAGAさん たぶんJavaの入門以前からやった方がいいです
900ゲットーー!
V6の長野です
本名は、ペロリーナ斉藤です
853 様 ありがとうございます。 BigIntegerの使い方が大体分かりましたし問題も解決しました。
そのコマンドをどのディレクトリで実行したか?ってのは? MS-DOSプロンプトでjarってやったときのカレントディレクトリってことですか? hello.javaとかhello.classとかoutputフォルダとかmanifest.mfを入れた自分で適当に作ったフォルダです。 ディレクトリとフォルダっていっしょだよね? あとsageってなんですか?
906 :
デフォルトの名無しさん :03/08/14 16:46
>>897 の発言によって、もうお前に回答してくれる奴はいない
このスレも荒れたな…。 だなら夏房は嫌いなんだよ…(´Д`)
どんまい
909 :
デフォルトの名無しさん :03/08/14 18:14
>>857 みたいなの漏れも好き。
正直コーディングしてて速度とか結構気になる。
ベンチマークとるclassとかってあんの?
910 :
デフォルトの名無しさん :03/08/14 18:14
Javaのプログラミング小問題をあつかっているHP無いでしょうか?
目的の魚と違うな。外道か。
ってゆーかどう考えても897とか899とか、901、902、903は明らかにいたずらでしょ。 オレはまじめに聞いてるのです。
いちいち夏厨x2言わなければいいだろ 無駄な主張でスレを埋めるなよ 夏厨言いたかっただけちゃうんかと(ry
ハァ?駄レスすんなや
お前も逝け マジUzeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee!!!!!!!!!!!!!!
>>912 夏厨扱いされちまったよ…鬱だ…吊ってくるよ
つかえない阿呆はさっさと逝ってよし
疲れたよ・・・。
import javax.swing.JFrame; public class Main(String[] args) { while (true) new JFrame().show(); }
927 :
デフォルトの名無しさん :03/08/14 20:31
928 :
デフォルトの名無しさん :03/08/14 20:35
黒いヒモパンが妙に色っぽい女性です。
ちょっと年はいっているようですが円熟味のあるSEXシーンを演出してくれています。
見てくださいフェラの時のほっぺのくぼみ。
カリ首にまとわりついて離れない強力スロートですよ。
他の援交美女も乱れてます。
無料ムービーでお楽しみ。
http://www.geisyagirl.com/
import javaXXX.animal.mammal.human.*; public class SexTest { public static void main(String[] args) Man m = new Man(Human.YelloMonkey); Woman w = new Woman(Human.YelloMonkey); while (true) m.insertTo(w); } }
930 :
デフォルトの名無しさん :03/08/14 20:44
wがない。
>>929 これでもいけるみたいです。
import javaXXX.furniture.*;
import javaXXX.animal.mammal.human.*;
public class SexTest2 {
public static void main(String[] args)
Bed bed = new Bed();
bed.add(new Man(Human.YellowMonkey));
bed.add(new Woman(Human.YellowMonkey));
}
933 :
デフォルトの名無しさん :03/08/14 20:56
bed.add(new Man(Human.YellowMonkey), new Woman(Human.YellowMonkey));
protected Child[] children; をお忘れなく。
936 :
デフォルトの名無しさん :03/08/14 21:19
バッチ処理についての質問です 200万件のレコードのDBを総なめして1レコードごとに処理を行い更新する というバッチを作る上でなるべく高速に、かつ保守しやすいプログラムを書く上での テクニックを教えてください。はじめてのJavaの仕事なんで文字列はStringbuffer を使うぐらいしか思いつきません。
Javaを使わない
ストアドで処理する
>>929 SexTestクラスを使うときはManクラスのメソッドsetCondom()を使った方がいいと思われ。
間違えた(w ManクラスのinsertTo()メソッド使う前にsetCondom()を使った方がいいと思われ。 だな。適当なこと書いてスマソ。
言語を決められる立場じゃないのでJavaでなきゃだめです やはりストアドですか。猶予は結構あるんで両方から攻めてみたいと思います。 その上でJavaのよいテクニックがあれば教えてください
追加質問です。 バッチ実行をDBサーバと同じマシンで行う場合でもストアドのほうが早いんでしょうか?
藻前は根本的にわかってない感じ
しかしCondomインタフェースの実装はどのメーカーのも完璧じゃないらしい。。。
外部JARってどこにおいとくよ
おしっこJAR
>>887 すくつは知ってたけど巣掘は初めてみた夏休み
初心者はでしゃばらず、kissメソッドでも使っとけ。 insertToなんて10年早い。
>>942 ストアド→RDBMSが、自分自身にとってもっとも効率よく実行できるよう
ある意味好き勝手にコンパイルし、内部に保存しているもの。
外部からのアクセスでストアド以上に速く動くなんて、ありえんだろ。
>>941 プログラムによるけどまずストアドプロシージャのほうが早い。
んでJavaを利用して「なるべく高速に、かつ保守しやすい」プログラムならば次のステップがよいと思われる。
1 200万件をカーソルの先読み機能を利用して一気にメモリに読み込む。
2 カーソル閉じる。
3 更新SQLでPreparedStatementを作成する。
4 カウンタを準備する。
5 読み込んだ200万件がなくなるまでループ。
5.1 例外処理の開始。
5.2 業務処理を実行する。
5.3 PreparedStatementにパラメータをセットする。
5.4 PreparedStatement#addBatch()でバッチに追加。
5.5 カウンタを増やす。
5.6 カウンタが100件(100とか200とかは適当な数値で)を超えるまたは次の行が存在しないか?
5.6.1 PreparedStatement#executeBatch()を実行。
5.6.2 更新結果の件数が間違っているか?
5.6.2.1 ロールバック、プログラムの終了
5.6.3 コミット
5.7 例外の捕捉。
5.7.1 プログラムの終了またはバッチの続行
951 :
デフォルトの名無しさん :03/08/15 11:12
sdkインストールするときに下記のエラーがどうしても出てしまいます,対処方キボンヌ 環境はRehHatLinux9です $ su # rpm -ivh j2sdk-1_4_1_04-fcs-linux-i586.rpm Preparing... エラー: rpmdb: damaged header #1320 retrieved -- skipping.エラー: rpmdb: damaged header #1320 retrieved -- skipping. エラー: rpmdb: damaged header #1320 retrieved -- skipping. エラー: rpmdb: damaged header #1320 retrieved -- skipping. エラー: rpmdb: damaged header #1510 retrieved -- skipping. エラー: rpmdb: damaged header #1510 retrieved -- skipping. エラー: rpmdb: damaged header #1510 retrieved -- skipping. エラー: rpmdb: damaged header #1510 retrieved -- skipping. エラー: rpmdb: damaged header #1511 retrieved -- skipping. エラー: rpmdb: damaged header #1511 retrieved -- skipping. エラー: rpmdb: damaged header #1511 retrieved -- skipping. エラー: rpmdb: damaged header #1511 retrieved -- skipping.
952 :
デフォルトの名無しさん :03/08/15 11:20
test
>953 おつ
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
>>950 おおここまで明確に書いてくれるとは。ありがたいです。後は自分で調べながらやってみます
ほんとありがとうございます。
interfaceで定義されてるだけのメソッドがどこにも実装されてないのに何で使えるのじゃ?
959 :
デフォルトの名無しさん :03/08/15 23:24
java
コンピュータの中に住んでいる親切な小人さんが interface の定義を見て、処理してくれてるんだよ。
>>958 新しいソースは実装して無いメソッドがあるのでコンパイルエラー食らってて、
以前作ったクラスファイルがそのまま残ってたとか。
>>960 こーゆオチではなかろうね。
public interface Suka {
String toString();
}
public class Sample01 implements Suka {
public static void main(String[] args) {
Sample01 a = new Sample01();
System.out.println(a.toString());
}
}
963 :
デフォルトの名無しさん :03/08/16 10:24
質問なんですが、 int x=getPoint(); というのを、その場で int x=getPoint(){return 3;};(←もちろんコンパイルエラーですが・・・) というようなことをやりたいのですが どうやればいいのでしょうか?
>>963 3を入れたいならint x=3;とすればいいでしょ・・・
>>963 Java は局所メソッド作れないので局所クラスで似たような事するとか。
class X{ int getPoint(){ return 3; } }
int x = new X().getPoint();
可読性が低下するような事はおやめなさい
というか何をやりたいのかわからないんだけど。
>>964 あのさ、あくまでも解りやすく書いただけだよ
そんぐらい、頭働かせろバカ
>>965 なるほど参考になります
>>966 論点が違うんだよバカ
的外れな回答してんじゃねー
>>967 理解できないのならいちいち書き込んでんじゃねー
おまえはゴチャゴチャ言いたいだけかと
969 :
デフォルトの名無しさん :03/08/16 15:23
>968 釣りはやめれ。
>>963 余計なおせっかいの回答者っているよな
「そんな質問以前に、普通そんな設計はしない」
みたいなこと。
初心者にんなこといったってわかるわけねーのに・・・
おまえがプログラミング上級者だといいたいだけじゃんと、いいたい。
初心者は黙って従えばいいんじゃん?
まあ、プログラマに関わらず 論点とは違うとこゴチャゴチャ言うやつって多いよな ちょっとのことばの違いで 「いや本来●●は○○である」 みたいに言いやがる・・・特に「本来」とか「実際には」とかいう表現が好きだよな 俺なんか昔 『二の舞を踏む』って発言したら 「それは、『二の舞を●●●』っていうんだよ」 「ちなみに、『口をにごす』は本来は『●●をにごす』だよ」 「さらに、『腹が煮え繰り返る』は『●が煮え繰り返るだよ』」 とか、最初の指摘はいいのだが 余計なことプラスして言いやがって。 「お前それ言いたいだけちゃうんか?」と言う意味で、ウザ過ぎ。 このプログラム板にもいるよな、「そんなコト聞いてね―よ」的なおせっかいって
_|_ , -´ `- 、 ( _................_ ) `ー-|-一´ | チリーン | ノ / ̄7 /夏 / /だ / /な /
長文Uzeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
論点はずれて自分の言いたいことだけ言う香具師は結構いるものだ。
976 :
デフォルトの名無しさん :03/08/16 16:07
>>973 コピーするときは、右下から左上に向かって選択しましょう
あっそー
> 『二の舞を踏む』 「二の舞を舞う+二の足を踏む」かな? > 『口をにごす』 「言葉をにごす」が正しいらしいけど、 口語だったら「口をにごす」ぐらい大目に見ても… > 『腹が煮え繰り返る』 「腸が煮えくりかえる」の書き間違いだとすると、 それで正しいんじゃないかと思うんだけど…
982 :
デフォルトの名無しさん :03/08/16 16:16
つれた!!!!!!!!!!!!!!!!!ププププププププ
>>981 おまえみたいのを論点ずれまくりって言うんだよ
>>981 、983
↑
ね、俺が隠して書いたおかげで
2匹もつれましたよ
でも、この人たちは正常です
「ウザイ」対象ではありません。
↓こういう奴がウザイのです
↑こういう奴がウザイのです
Java質問スレですよ。。。
俺がもっと嫌なのは あるスレで質問すると 「ここは質問スレじゃない」 それはごもっともだと思うのだが 都合よくその切り札使われるのが嫌だ
俺がもっと嫌なのは あるトイレで大便しようとすると 「㌧㌧(いま入ってます)」 それはごもっともだと思うのだが 都合よくその切り札使われるのが嫌だ
>>989 が賞賛のレスを待ってこのスレに集中しています
論点もAAもズレてるレスが読めるスレはここですか?
↑ また来たよこういう奴。 いわゆる「・・ですか?」隊 そんなの今時流行んね―よ
また来たよこういう奴。 いわゆる「桃色美少女収集」隊 そんなの今時流行んねーよ ↓
桃尻ですが何か?
イってきまーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
そろそろ1000取合戦なのだが どうせなら、最高に笑えるネタでとって欲しいものだ 「1000ゲット」等といわれたところで後世になにをもたらすのか その辺を考えて欲しい いいかココからは持久戦だ しびれを切らして999取ったやつは、弱い人間だ ましてや999、1000と連続でとった奴は道徳違反だ
1000ホスィ 2chで取ったことないYO!!!
アムロいっきまーす
うぽ?
100000000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。