javaプログラムの最適化スレッド

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
sunの糞コンパイラに任せていないで
自分たちで最適化しようぜ的スレッドです。

テクニックを疲労してくれ

参考資料
http://www.google.com/search?hl=ja&safe=off&q=java+%8D%C5%93K%89%BB%81@%83o%83C%83g%83R%81%5B%83h&lr=
2デフォルトの名無しさん:2001/07/02(月) 19:27
-O
3デフォルトの名無しさん:2001/07/02(月) 19:27
疲れきってます。
4デフォルトの名無しさん:2001/07/02(月) 19:28
エクセルソフトのJETってどうよ?
5デフォルトの名無しさん:2001/07/02(月) 19:28
native
6デフォルトの名無しさん:2001/07/02(月) 19:29
-O オプションは付けても付けなくても
ほとんど速度は変わらないって聞いたけど・・・
7デフォルトの名無しさん:2001/07/02(月) 19:40
javacよりもjavaコマンドのオプションのほうが重要マジレス
8デフォルトの名無しさん:2001/07/02(月) 19:58
JITならわかるけどjavaインタープリタで
違いは出るのか?
9デフォルトの名無しさん:2001/07/02(月) 20:04
ひとまずRetroGuardはデフォでしょうね
10デフォルトの名無しさん:2001/07/02(月) 20:58
>>2
javacの-Oオプションは単なるダミーだ。騙されちゃダメだぞ。
11デフォルトの名無しさん:2001/07/02(月) 20:59
for (int i = 0; i < 1000; i++) よりも
for (int i = 999; i >= 0; i--) のほうが速いとか
そういう話でいいですか。
12デフォルトの名無しさん:2001/07/02(月) 21:22
for (int i = 999; i != 0; i--)
のほうがよくない?
13デフォルトの名無しさん:2001/07/03(火) 00:08
要は0と比較するかどうかだから、同じと思われ。こんなんでました。

public void hoge()
{
for(int i = 0; i < 1000; i++);
// 0 0:iconst_0
// 1 1:istore_1
// 2 2:goto 8
// 3 5:iinc 1 1
// 4 8:iload_1
// 5 9:sipush 1000
// 6 12:icmplt 5
for(int j = 999; j >= 0; j--);
// 7 15:sipush 999
// 8 18:istore_2
// 9 19:goto 25
// 10 22:iinc 2 -1
// 11 25:iload_2
// 12 26:ifge 22
for(int k = 999; k != 0; k--);
// 13 29:sipush 999
// 14 32:istore_3
// 15 33:goto 39
// 16 36:iinc 3 -1
// 17 39:iload_3
// 18 40:ifne 36
// 19 43:return
}

ていうか、空ループの削除すらしないとは恐るべしjavac!!
14デフォルトの名無しさん:2001/07/03(火) 00:12
   ● 旦 <age!!
<■V
/ >
15デフォルトの名無しさん:2001/07/03(火) 00:17
16デフォルトの名無しさん:2001/07/03(火) 00:19
>>13
どうせJITかHOTSPOTがやるんじゃないの?<最適化
17デフォルトの名無しさん:2001/07/03(火) 00:20
javaはマルチプラットフォームだから
下手に最適化しないでコンパイルするようになっている
って話だけど、本音としてはただ手抜きしているだけじゃない?

空のループ消したり、重複分の計算を共通式で置き換えたり
するくらいだったら、どのプラットフォームにも
マイナスにならないと思うのだが・・・。
18デフォルトの名無しさん:2001/07/03(火) 00:21
最適化機能がよわいから簡単に逆コンパイルされちゃうんだよね
19デフォルトの名無しさん:2001/07/03(火) 00:24
空ループまで再現されるもんな。(藁
20デフォルトの名無しさん:2001/07/03(火) 00:25
javacアホ決定
Borlandあたりがもう少しマシなjavaコンパイラ作ってくれないかな?
21デフォルトの名無しさん:2001/07/03(火) 00:27
なんでバイトコードコンパイルで最適化せにゃならんのよ。
JITでやってるなら、それでいいじゃん。
やってるかどうか知らんけど。
22デフォルトの名無しさん:2001/07/03(火) 00:33
なんでJITに任せる必要があるんだよ!!
実行時に毎回最適化するなんて無駄だろ?
それにすでにバイトコードに変換されたものより
ソースファイルの段階でコンパイルしたほうが
最適化しやすいんじゃない?
2322:2001/07/03(火) 00:34
> ソースファイルの段階でコンパイルしたほうが
> 最適化しやすいんじゃない?

ソースファイルの段階で最適化したほうが
最適化しやすいんじゃないか?

の間違いです
24デフォルトの名無しさん:2001/07/03(火) 00:35
>>13
VJ++で最適化コンパイルした結果
public void hoge(){
//maxstack 2
//maxlocal 2
iconst_0
istore_1
Label1:
iinc 1 1
iload_1
sipush 1000
if_icmplt Label1
sipush 999
istore_1
Label2:
iinc 1 -1
iload_1
ifge Label2
sipush 999
istore_1
Label3:
iinc 1 -1
iload_1
ifne Label3
return
}

>>21
JITで実行される可能性の方が少ないと思われる。
25デフォルトの名無しさん:2001/07/03(火) 00:39
>>24

なんだ。結局javacのコードとたいして
変わらないんじゃん。
このスレ、

「なんでjavaは最適化に消極的なのか?」

に変えようぜ
26デフォルトの名無しさん:2001/07/03(火) 01:08
みみっちい最適化してるうちに、
CPUの速度向上がその最適化の結果を軽く吹き飛ばしてしまうから。
27デフォルトの名無しさん:2001/07/03(火) 01:09
>>25
最適化せずに、より多くの情報を残しておく方が、
JITが最適化しやすいらしい。
#まあ所詮そんのは幻想なんだけど
#まともにインライン展開すらしやしないし

いつかできると言われている、
理想JITコンパイラに期待しましょ。
その時のために最適化はしないでおきましょ。
28デフォルトの名無しさん:2001/07/03(火) 01:13
>>26
そんな甘ったるい思考してるから
いつまでたってもJavaは使えないんだよ。

VC++の鬼のような最適化の、爪の垢でも煎じて飲め。
29デフォルトの名無しさん:2001/07/03(火) 01:27
>>28
使えるかどうかと、実行速度の関係は、もはや強い相関があるとは言えない気がする。
30デフォルトの名無しさん:2001/07/03(火) 01:28
>>26
そのセリフ一昨年聞いた。変わってねーな。
31デフォルトの名無しさん:2001/07/03(火) 01:31
gcjってどうなの?
誰か試した人いる?
32デフォルトの名無しさん:2001/07/03(火) 02:26
JITで最適化とかゆーとるわりに、
バイトコード短くしたほうが明らかに速度上がるんだよな。
感覚的には、バイトコードのサイズに正比例って感じ。
33デフォルトの名無しさん:2001/07/03(火) 02:31
適当に下のコードJava 1.3.1で実行したら、延々と終了せず。
ひょっとしなくても律儀に空ループ回ってると思われ。
Sunご自慢の偉大なるHotSpot様は一体何をやっているのか?

public class Hoge {
  public static void main(String[] args) {
    for (long i = 0; i < 1000000000000000L; i++);
  }
}
34どうなの?:2001/07/03(火) 03:05
35shige:2001/07/03(火) 04:29
こうやってPerlユーザが馬鹿にされて、コケにされて、侮辱されて、(当然のことだ)
顔を真っ赤にして耐えている姿を想像するだけで俺の気分は爽快になる。

Ruby万歳。俺にこんな快楽を与えてくれたRubyに幸いあれ。
36デフォルトの名無しさん:2001/07/03(火) 08:13
>>35
このスレでいいのか……?
37デフォルトの名無しさん:2001/07/03(火) 08:49
>>36
「javaプログラムの最適化スレッド」
いいと思いますYO!
38デフォルトの名無しさん:2001/07/03(火) 21:30
でもたぶん、このスレだと陵辱されるのはキミだYO!
39デフォルトの名無しさん:2001/07/03(火) 21:31
こんなスレ削除依頼出そうぜ!
40デフォルトの名無しさん:2001/07/03(火) 21:35
35==39
無視して続行しましょう。
顔を真っ赤にして侮辱に耐えてくれ。萌え〜
41shige:2001/07/03(火) 22:20
みんなでPerlユーザを苛めよう!
みんなでPerlユーザをこの板から追い出そう!
42shige:2001/07/03(火) 22:26
みんなで叫ぼう!
「Perl使いは死ね!」「Perl使いは死ね!」「Perl使いは死ね!」「Perl使いは死ね!」
「Perl使いは死ね!」「Perl使いは死ね!」「Perl使いは死ね!」「Perl使いは死ね!」
43オプションの名無し:2001/07/04(水) 04:11
>> 33
i < 1000000000Lで計測しました。(-Oなし)
type | 1st | 2nd
gcc2.5.2 | 10.46s | 10.42s
java1.3 | 21.98s | 18.64s
インタプリタの単純ルプーで、これほどまでに速いのでは?
というか...当たり前でしょ?、テスツと呼ぶに値しない。ふっ..
> 13 >ていうか、空ループの削除
はぁ? 最適化というよりもプログラムの意図を捻じ曲げる、創世記以前の産物.
RealTimeでビジーウエイツやターイミングコンーテキスタに使われるかもしれない代物ですぜ。
44デフォルトの名無しさん:2001/07/04(水) 04:37
>>43
この人おもしろすぎ
氷魚ウォッチスレにリンク張ってもいいですか?
45デフォルトの名無しさん:2001/07/04(水) 12:16
いや、あまりおもしろくはないと思うぞ。
46デフォルトの名無しさん:2001/07/09(月) 00:17
じゃあそろそろ誰か結論をまとめてくれ。
47デフォルトの名無しさん:2001/07/09(月) 00:44
>>32
詳細キボーン
48デフォルトの名無しさん:2001/07/09(月) 00:48
>>47
アルゴリズムを工夫しろ、ということです。
49デフォルトの名無しさん:2001/07/09(月) 00:57
>>48
工夫してもどうにもならないのが、糞Javaということです。
50sunより:2001/07/09(月) 01:00
空ループの削除はしません。

なぜなら、空ループでタイミングをとることも想定しているからです。
手間をかければ空ループの時間も厳密に計測できます。
これらが有効に生かされるのは、組み込み分野です。
51デフォルトの名無しさん:2001/07/09(月) 01:05
>>50
まぁ、そういう事だろうね。
スレッドでスリープかけるより資源が少しで済む。
52デフォルトの名無しさん:2001/07/09(月) 01:08
java固有の最適化って結局、小手先の事か?>1
53デフォルトの名無しさん:2001/07/09(月) 02:03
>>52
そりゃー、「Java固有」って言ってる時点で小手先だろ。
アルゴリズムの見直しによる最適化はJava固有の話じゃないからな
54デフォルトの名無しさん:2001/07/09(月) 03:06
>>50
Sunがそう言ってるんですか?
ソースをクレー、粘土をclay〜

っていうかそれ、javacやJ2SEで空ループなくさない理由に
ならんと思いますけど。空ループウェイトなんて
Write Once, Run Anywhereの建前にも反するし。
55デフォルトの名無しさん:2001/07/09(月) 04:43
>>54
空ループの消去って最適化としてはあまり意味がないと思う。
逆にわざわざ空ループ作るからには、
何かしら意図があってやってるんだろうしね。

そんなのはどうでも良いから、
インライン展開、
サブルーチン展開、
コンスタントプールの最適化、
ローカル変数の最小割り当て、
即値の最適化、
privateメソッドのリネーム
とかもっと積極的にやってくれよ。ゴラァ
56デフォルトの名無しさん:2001/07/09(月) 09:09
>>55
classからの逆変換って結構多用されるから
最適化をしないのはそのあたりも一枚噛んでるかと。
57デフォルトの名無しさん:2001/07/09(月) 13:17
リバースエンジニアリングする人のために最適化しないわけですか?
58デフォルトの名無しさん:2001/07/10(火) 03:54
>>57
リバースエンジニアリングのために最適化しない
という認識でおおかた問題ありません。
59デフォルトの名無しさん:2001/07/10(火) 13:52
Cでなくアセンブラだけで組むような感じで、
javacを全く使わないか、あるいは一旦javacにはかせてから、
生のバイトコードを手で最適化してる人っているのかな?
( RetroGuardとかのツールの開発者じゃなくて、アプリケーションの開発者で)
60デフォルトの名無しさん:2001/07/10(火) 13:58
>>55
サブルーチン展開ってなに?
61デフォルトの名無しさん:2001/07/10(火) 14:03
>>60
小さいサブルーチンをそこに展開しちゃえば
関数呼び出し時のオーバーヘッドがなくなるから
ちょっぴり速くなる。

いうほど高速化は望めない上、これをやられると
あとでデバッグが面倒でたまらないのでやめてほしい。
62デフォルトの名無しさん:2001/07/10(火) 14:13
インライン展開でデバッグが面倒になったりはしないと思うが……。
6362:2001/07/10(火) 14:15
じゃないな(あー、眠い)。なんつーかほれ、
開発中はインライン展開しなけりゃいいだけの話。
6462:2001/07/10(火) 14:16
>>59
Javaでデモ作ってた人たちはやってたと思う。
バイトコードアセンブラ?はJasminとかあるでよ。
6560:2001/07/10(火) 15:37
インライン展開とは違うのですか?
6660:2001/07/10(火) 15:37
6761:2001/07/10(火) 16:04
>>65
ただの言葉遊び。

Cとかだとインライン展開しろっていう指示子があったね。
68デフォルトの名無しさん:2001/07/10(火) 19:21
指示しなくても、出来そうなら勝手にやってたね。

実情を知らないのが割り込んですまないが
javaの最適化って、いまのとこ、そんなにしょぼいもんなの?

同じコードがC++とjavaで速度が違うとかだと、
言語の特性もあるからあまり比較に成らんと思うけどね。

どっちかというと、作るコストの方を最適化したい感じだ。
69デフォルトの名無しさん:2001/07/10(火) 23:16
>>60
サブルーチン展開というのは、
javaのバイトコードのjsr命令を使ってメソッド内にルーチンを展開すること。
インライン展開より速度は劣るが、
メソッドコールよりも高速で、
メソッドを定義したりインライン展開するよりもコードサイズを縮小できる。

例えば、以下のメソッドをサブルーチン展開した場合、
void foo()
{
 :
 :
 boo();
 :
 :
 boo();
}

void foo()
{
 :
 :
 jsr boo
 :
 :
 jsr boo

boo:
:
:
 ret
}
70デフォルトの名無しさん:2001/07/10(火) 23:23
60じゃないけどthx

つまり小手先テクニックね。
脱力した。
71デフォルトの名無しさん:2001/07/10(火) 23:27
>>70
小手先じゃないだろ?
メソッド定義やコールに、かなりの無駄が伴うJavaにとっては、
かなり重要なテクだぞ。
72デフォルトの名無しさん:2001/07/10(火) 23:44
つまり、javaの処理系がショボイのね。

gcc3.0に自前の最適化コード入れれば
javaのコードはそのままでいい感じに速くなるかもよ?
73デフォルトの名無しさん:2001/07/11(水) 00:23
javaソースからCソースに変換できるパーサを作ってほしい。
そうしたらgccなりVisualC++なりを使える。
74デフォルトの名無しさん:2001/07/11(水) 00:25
>>73
でもその時点でjavaの理想がいくつか失われるよね

ただのオブジェクト指向型言語になっちゃうよ。
75デフォルトの名無しさん:2001/07/11(水) 00:37
>>73
javaが誕生した当初、javacはcへのコンバータでした
76デフォルトの名無しさん:2001/07/11(水) 00:43
>>75
ほう。
ちょいと、javaしらべてみるかなー。
77デフォルトの名無しさん:2001/07/11(水) 00:51
GCJってどうなったの?
78デフォルトの名無しさん:2001/07/12(木) 00:42
あげ!
79オプションの名無し:2001/08/19(日) 07:12
1.String.+ではなくStringBuffer.addを使え。(SQLは元よりHTML,XML然り)
2.デフォルトコンストラクタではなくサイズを指定できるコンストラクタを設計段階で決定せよ。(ArrayList然り)
3.newをできるだけ使わないパターンを適用すべし。(Flyweight,Proxy然り)
4.予測ではなく実測を重視すること(20-80%というか3%-97%ぐらいか)
5.何でもかんでもsynchronizedを使うな、volatileを使ってくれ、たのむ。
6.SQLのIsolationに何でもかんでもRepatable Readを使うな、ロック制御は発行した
 SQLとJavaで指定したレベルがともに影響することを理解してくれ。お願いだから。
7.finalメソッドでなくてもいいが、せめてprivateメソッドに解体してよ。
8.System.gc()なんて呼ばないでくれ、JavaはC++じゃ無いんだ。
夏休みおわり記念age(6が分かってない奴のせいで苦労した)
80デフォルトの名無しさん:2001/08/19(日) 08:27
>5.何でもかんでもsynchronizedを使うな、volatileを使ってくれ、たのむ。
詳しくきぼ〜ん。
とりあえず無節操synchronizedが深刻にパフォーマンスに影響するのは
分かってるッス。
81デフォルトの名無しさん:2001/08/19(日) 08:56
なんじゃ、Javaでプログラムするとき、
みんなこんなに速度きにしてコーティングしてんの!?
82shige:2001/08/19(日) 09:00
Ruby
83デフォルトの名無しさん:2001/08/19(日) 16:59
オタクしかいないからでしょ。
84iアプリ開発者:2001/08/19(日) 18:30
バイトコードのサイズも気にするぞ。
85デフォルトの名無しさん:2001/08/19(日) 19:03
iアプリっていつ滅びるの?
86iアプリ開発者:2001/08/19(日) 22:09
明日。
87デフォルトの名無しさん:2001/08/20(月) 16:13
iアプリ終了記念age
88デフォルトの名無しさん:2001/08/20(月) 16:55
マジレス。
しばらくは無くならないだろうね<iアプリ
ケータイばっかいじってる馬鹿な若者どもがいなくならない限り。
89デフォルトの名無しさん:2001/08/20(月) 17:05
今日もちっちゃい画面見ながらピッピッピ〜
9079じゃないけど:2001/08/20(月) 18:58
>>80
あくまでおいらの経験談だけど、

プリミティブ変数のマルチスレッド同期を取りたいだけなら、
volatile変数にすることで十分達成される。
synchronizedだと、性能以前に、予期しないデッドロックが
発生するリスクがある。

コードを作った本人はともかく、メンテで放り込まれた場合
synchronizedが入り乱れたマルチスレッドプログラムは恐怖の的。
変更すると、見当もつかないところで急に動かなくなったりする。
91デフォルトの名無しさん:2001/08/20(月) 23:00
javaで文字列操作のプログラムをつくる場合
StringやらStringBufferを使うより
自分でcharなり(アルファベットのみなら)byteなりを使った方が
高速なプログラムになるのでしょうか?
92デフォルトの名無しさん:2001/08/20(月) 23:02
デッドロックを検出するにはどうしたらいいかな?
93名無しさん@:2001/08/20(月) 23:07
iアプリってさ、いっくらいいもんつくっても、
けっきょくもうかるのはドコモだよね?
94shige:2001/08/20(月) 23:09
        ______
     ヾ/::::::::::::::::::::::::::ヾヽ
     i:::::::::(((((((((⌒);)  湿度の高いジメジメとした熱帯夜の中
      |:::::::/        .iノ   >>1はおもむろにパンツの中から
      |::::/    ヘ  / |   己のイチモツを取り出した!
    ,⊥|:|----(=・)-(=・)   まだ、実戦経験がないためか?
    l  !:; ∪  ⌒´⊃` |     亀頭の色彩は綺麗なサーモンピンクだ
    ゝ_┃     ´___/
       |┗━⊃<二二y'      ハードディスクの7割を占めようかという
      |   \_二/      ロリ画像の数々……
    /ト、   /7:`ヽ、_     さぁ今日のオカズは何だ?
  /::::::::| ~''x‐''''~~ /::::::::::::::`ー 洋物か?あるいは国産か!?
/::::::::::::::::| ,,イ;;;;>、 /:::::::::::::::::::::::::: 少女のまだ未発達の肉体が
::::::::::::::::::::::| /:::::| /:::::::::::::::::::::::::::::::  鬼畜な>>1のリビドーを刺激する!

人差し指と親指で作ったイチモツへのエンゲージリングを
己のペースで……まるで太鼓を叩く猿のオモチャのような激しい上下の反復運動

ああーーーーと!ここでアクシデント発生だぁーーーーー!!!
なんとティッシュボックスの中が空っぽだ!!
>>1の亀頭から無色透明な先走り汁が溢れ出す!
んっ!?……まさか、まさかっ!そのまま出すのかーー!?
この男は、たった一瞬の快楽のためにそこまでのリスクを犯すのか?

ああっと>>1はどうやら覚悟を決めたようだ、その表情は心なしか落ち着いている
自分の運命を覚悟した神風特攻隊のような清々しい漢(おとこ)の顔だ
あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛っと!!!!!!
滑らかな放物線を描き母と父から受け継いだ濃厚なザーメンが
>>1のキーボードとディスプレイを直撃するーーーーーーーーーーーっ!!!
95デフォルトの名無しさん:2001/08/20(月) 23:25
javaで文字列操作のプログラムをつくる場合
StringやらStringBufferを使うより
自分でcharなり(アルファベットのみなら)byteなりを使った方が
高速なプログラムになるのでしょうか?
   
96デフォルトの名無しさん:2001/08/20(月) 23:26
それくらい試せよ。
っっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっk
98デフォルトの名無しさん:2001/08/20(月) 23:34
>それくらい試せよ。
どうやって?
99デフォルトの名無しさん:2001/08/20(月) 23:37
>>98
文字列処理。
つーか、そういってんじゃん・・・
100デフォルトの名無しさん:2001/08/21(火) 00:14
>99
??

どうやってパフォーマンスをはかるんだ?
って意味じゃね〜の?
101デフォルトの名無しさん:2001/08/21(火) 00:18
そんな事気にする奴はJava使うな
102デフォルトの名無しさん:2001/08/21(火) 08:16
>>100
1万回くらいのループの時間計測、かなぁ。
何を1万回? いやーいろいろ
103デフォルトの名無しさん:2001/08/21(火) 10:37
>>95
StringとStringBufferのソース見て、それより高速化できるか
考えてみれば?
104デフォルトの名無しさん:2001/08/21(火) 12:27
>>85
つーか、そのうちチャットのマイサーバを携帯端末で動かすような
そんなiアプリの時代がやってくると思われ
それがJavaなのかC#なのかはしらんが
105近所のバカ:2001/08/21(火) 14:51
あははは あははは あははは あははは

あははは あははは あははは あははは

ちょっと質問なんだが

あははは あははは あははは あははは

あははは あははは あははは あははは

Win NTにJDKをインストールする際、コントロールパネルを起動し
(環境)を選択して(ユーザー環境変数)と(システム環境変数)で
(PATH)を探します。パスを追加する場所がわからないときは、
ユーザー変数の(PATH)の最後に追加します。

C:\jdk1.2\bin


ってのがあるんだけど、どうやんの?

あははは あははは あははは あははは

あははは あははは あははは あははは
106デフォルトの名無しさん:2001/08/21(火) 14:58
>>105
その説明でわからなければ、こちらへどうぞ
http://natto.2ch.net/pcqa/index2.html
107近所のバカ:2001/08/21(火) 15:15
あははは あははは あははは あははは

あははは あははは あははは あははは

私はJAVAの初心者だけであって
コンピューターの初心者ではないよ。

あははは あははは あははは あははは

あははは あははは あははは あははは
108デフォルトの名無しさん:2001/08/21(火) 15:20
>>107
JDKは普通何種類も用意しておくものだから
環境はbatファイルで用意しておくものだから
109デフォルトの名無しさん:2001/08/21(火) 15:27
環境変数やパスの通し方を知らなくても
「コンピューターの初心者ではない」とノタマエる時代になったんだね
コンソール概念は過去の遺物ですか?
思えば遠くにきたモンダ
110近所のバカ:2001/08/21(火) 16:01
あははは あははは あははは あははは

あははは あははは あははは あははは

で、どうやんの?

あははは あははは あははは あははは

あははは あははは あははは あははは
111デフォルトの名無しさん:2001/08/21(火) 16:03
>>110
パスを追加するバッチファイルを用意すればいいよ。
112デフォルトの名無しさん:2001/08/21(火) 23:40
馬鹿はJavaやらないで下さい
113shige:2001/08/22(水) 05:46
馬鹿はJavaでもやっといてください(藁)
114近所のバカ:2001/08/22(水) 13:12
あははは あははは あははは あははは

あははは あははは あははは あははは

バカだから聞いてんのに、答えになってないよ。

あははは あははは あははは あははは

あははは あははは あははは あははは
115デフォルトの名無しさん:2001/08/22(水) 13:52
>>114
Java実行できるようになったか?
116デフォルトの名無しさん:2001/08/22(水) 23:45
やっぱこっち逝った方がいい気がする
http://natto.2ch.net/pcqa/index2.html
117デフォルトの名無しさん:2001/08/23(木) 01:33
>StringとStringBufferのソース見て、それより高速化できるか
>考えてみれば?
ソースなんてあるんですか?
JDKをダウンロードすると付いてくるのですか?
118デフォルトの名無しさん:2001/08/23(木) 01:34
>>117
そうです。src.jarを解凍してみそ。
119デフォルトの名無しさん:2001/08/23(木) 01:37
何でそんな事知ってるんですか?
世の中物知りが多いなー
120デフォルトの名無しさん:2001/08/23(木) 01:56
>>119
それは失礼な発言だってことに気がついているか?
121デフォルトの名無しさん:2001/08/23(木) 02:54
なぜ?
122デフォルトの名無しさん
>>120 は失礼。