- 1 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 20:02:41 ]
- プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 ttp://pc11.2ch.net/hp/ Webプログラミング ttp://pc11.2ch.net/php/ をご利用下さい。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 ttp://www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド131【歓迎】 ttp://pc12.2ch.net/test/read.cgi/tech/1250369910/ 次スレは>>950あたりで。 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 ttp://www.wikiroom.com/java/
- 656 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 10:32:01 ]
- できません
- 657 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 10:50:40 ]
- >>656さん
素早い回答ありがとうございます。 では、import unnamed.* が実装されている目的やメリット等は何なのでしょうか? よろしくお願いします。
- 658 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 11:07:06 ]
- わかりません
- 659 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 11:17:10 ]
- 目的、メリットが分からないと手も出せないカスじゃこの先も伸びないだろうな
素人未満の塵といったところか
- 660 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 11:21:21 ]
- そういうな
- 661 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 11:22:31 ]
- なんだ民主党員か
- 662 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 11:24:40 ]
- まぁ大抵の人は動かしてみてから聞くんだろうね。
理論から入る頭でっかちには向いてないよ。 文系が使えないのはそこにあるんだろうね。 理系は実験(ここで言うプログラミング)を通してから考察だし。
- 663 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 11:28:45 ]
- なんだ理系詐欺もいたか
- 664 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 11:29:25 ]
- 俺は別に必要ないものがあっても気にしないタイプだからなあ
- 665 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 11:30:56 ]
- とりま技術バカにならないためにも今日も勉強してますかの
- 666 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 11:31:54 ]
- H2B技術者とJava技術者はどちらが上ですか?
- 667 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 11:37:14 ]
- 自分が分かってない奴と露呈するのが恥ずかしくて、質問する相手を中傷することで自分を保とうとする屑っているよな
答えられない知識不足のくせに自尊心だけ高くて、その上周りに不満や暴言を吐く有害なゴミ >>658除く
- 668 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 11:40:16 ]
- ◆一番分かっていない公害物質
>>667
- 669 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 12:12:05 ]
- >>667
ていうか、まだなんで生きてんの?
- 670 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 12:15:03 ]
- 死にたくないからです
- 671 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 12:49:10 ]
- 小学生かお前ら
- 672 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 12:52:09 ]
- >>652
ageただけで吠える無能 さすがに技術じゃ勝てないか 重箱の隅つつくようじゃ底が知れてるね
- 673 名前:デフォルトの名無しさん [2009/09/14(月) 13:14:36 ]
- 何を言ってんだこのゴミはw
- 674 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 13:25:48 ]
- >>673
2chのルールも守れないageおまえが何を言うw
- 675 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 13:29:54 ]
- >>674
声に出して読み返してみ?
- 676 名前:デフォルトの名無しさん [2009/09/14(月) 13:31:06 ]
- 652 名前:デフォルトの名無しさん[sage] 投稿日:2009/09/14(月) 09:26:56
>>651 2chのルールも守れないageおまえが何を言うw 674 名前:デフォルトの名無しさん[sage] 投稿日:2009/09/14(月) 13:25:48 >>673 2chのルールも守れないageおまえが何を言うw
- 677 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 13:34:10 ]
- というか、import unnamed.* なんて書けるの?
- 678 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 13:35:15 ]
- >>672
ええ、技術? ていうか、死にたくないからっすよね?
- 679 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 13:35:29 ]
- >>677
やってみたらnetbeansに怒られた
- 680 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 13:37:04 ]
- netbeans使ってる奴は池沼
- 681 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 14:35:42 ]
- レイアウトやりやすいんだぞ!
Eclipseに乗り換えようと何度思ったことか
- 682 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 14:37:55 ]
- YOU乗り換えちゃいなよ
- 683 名前:デフォルトの名無しさん [2009/09/14(月) 14:46:15 ]
- おまえんちはまるで便所だなw
- 684 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 14:59:06 ]
- それにしてもEJBって必要ないな
- 685 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 15:52:19 ]
- はー
やっとEJBマスターしたけどやっぱめんどくさいだけだな
- 686 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 15:53:11 ]
- >>685
何を持ってマスターなの?
- 687 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 16:11:47 ]
- HelloEJBが表示できた。
- 688 名前:デフォルトの名無しさん [2009/09/14(月) 18:42:21 ]
- 逝ってよし
- 689 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 19:03:30 ]
- スルー力が大事。
この業界こだわっちゃう人が多いし。(いい意味で) んでEJBは微妙。学習コストが高くて生産性も高くはない。 でも3.0はかなり良くなってるから本気出したほうがいい。
- 690 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 19:05:38 ]
- 2ちゃんねるブラウザを作ろうと、毎日頑張って調べてきたけど
どうしてもV2Cみたいに高速にスレッドを表示できね ぜんぜん、わかんね
- 691 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 19:07:40 ]
- 何に時間かかってる?
- 692 名前:デフォルトの名無しさん [2009/09/14(月) 19:10:22 ]
- Javaから.Netを使うにはどうすればいいの?
- 693 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 19:12:21 ]
- >>691
わかんね
- 694 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 19:13:20 ]
- >>692
JNIでいいんじゃね?
- 695 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 19:14:07 ]
- >>693
俺にもわかんね。
- 696 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 19:18:34 ]
- pc12.2ch.net/test/read.cgi/tech/1250369910/872
こんなことやってて速くなるわけねーだろ
- 697 名前:690 mailto:sage [2009/09/14(月) 20:03:40 ]
- >>696
JEditorPaneでやることはスピード以前にいろいろと問題が発生しそうだと気がついたので、 かなり前にあきらめた >>691 HDDからの読み込み→インスタンス化までは1秒くらいになった でも、swingコンポーネントに文字を高速表示する方法がわかんね V2C作者に質問したら、JPanel + DrawString()で描写をしていると教えてもらった だが、Graphics2Dの管理と高速化の両立は厳しい
- 698 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 20:05:20 ]
- おそらく、ちょっと移動するたびに表示エリア内を全部書き直してるだろ
- 699 名前:690 mailto:sage [2009/09/14(月) 20:30:34 ]
- >>698
その通りだよ。だから、部分的に表示して画面を考えているんだけど なかなか、簡単にできないからずーっと困っている Graphics2D.drawString()だと自動で文字列改行をしてくれないし、 スクロールバーもどうやったら適切なサイズ(長さ)にできるのかとか 調べても調べてもヒントになるページが引っかからない
- 700 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 21:13:15 ]
- 単純な計算の積み重ねのような気がするが
横着しようとして詰まってるだけじゃないの
- 701 名前:デフォルトの名無しさん [2009/09/14(月) 21:15:41 ]
- Javaどころかプログラムさえも初心者なものです。
先日、jdk1.6.0_16をインストールしました。 早速、pathとCLASSPATHの設定をしたのですがどうもうまくいきません。 インストールの確認の為にコマンドプロンプトにて、javacやjavac -versionを打ち込んでみるのですが 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と 表示が出るのです。 私のPCにはjdk1.6.0_16の他にC:\ProgramFiles\java\jre6がインストールされていて path →%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\QuickTime\QTSystem\ CLASSPATH →.;C:\Program Files\Java\jre6\lib\ext\QTJava.zip QT JAVA →C:\Program Files\Java\jre6\lib\ext\QTJava.zip となっています。OSはVISTAです。どなたか解る方、ご教授願います。
- 702 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 21:17:12 ]
- >>701
>>1
- 703 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 21:18:25 ]
- >>701
とりあえずwikiでも読んで一通り試してみて www.wikihouse.com/java/?path,classpath
- 704 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 21:18:33 ]
- >>701
>>1すら見えない脳みそではJavaは無理です。あきらめなさい。
- 705 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 21:24:39 ]
- そんな、ひどい…
- 706 名前:701 [2009/09/14(月) 21:26:11 ]
- すいません、あせって>>1をよく見てませんでした。もう一回出直します
- 707 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 21:28:13 ]
- >>705
2ちゃんねるで質問すると答えが厳しいから、気にすんな linuxだと環境変数を設定しなくてもよかったりする よくわかんなかったら、Eclipseでもインストールしろ インストールを説明するサイトとかで、環境変数の事について調べられる
- 708 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 21:29:31 ]
- EJBのCMPってどうやってDBとつながってるの?
- 709 名前:701 [2009/09/14(月) 21:29:42 ]
- >>703さん、有難うございますm(__)m
- 710 名前:701 [2009/09/14(月) 21:30:36 ]
- >>705さんも有難うございます。頑張ります
- 711 名前:デフォルトの名無しさん [2009/09/14(月) 21:36:06 ]
- Pathの設定してないじゃん。。
それはそうと、何でJavaのパスやクラスパスくらい自動設定する ソフトがないんだろうな。。 ただ単に環境変数にPathとクラスパスつけてやればいいだけじゃん。 俺が造ってもいいけど、XPしかもってないし、Vistaがどのフォルダにインスコされて なんか権限とかぜんぜんしらねから、Visco対応のは作れない。 XPだけでもいいなら、作ってやってもいいが、7もでるしなあ。 なんで、ほかのプログラマはそんくらいの物作って、うpしてやらないんだろうな・・
- 712 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 21:37:20 ]
- >>707
linuxでもpathを通す必要があるのは変わらない。
- 713 名前:デフォルトの名無しさん [2009/09/14(月) 21:39:20 ]
- >>701
ふんと、2chは不親切だからいやだよな。君が書いた↓ path →%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\QuickTime\QTSystem\ にJavaをインスコしたディレクトリ\binフォルダが追加記述されてないとだめだよ。 Javaをインスコしたディレクトリの中のbinディレクトリを覗いてごらん。 javac.exeがあるはずだよ。コマンドプロンプトも >javac' は、内部コマンドまたは外部コマンド〜 といってるよね。javac.exeが見つからないっていってるんだよ。 pathをちゃんと設定すれば直るよ。まあ、がんばりいな。
- 714 名前:701 [2009/09/14(月) 21:44:23 ]
- >>713さん
path →%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Java\jdk1.6.0_16\bin CLASSPATH 現状のまま QT JAVA 現状のまま で宜しいのでしょうか?何度もすいません
- 715 名前:690 mailto:sage [2009/09/14(月) 21:51:25 ]
- >>700
>単純な計算の積み重ねのような気がするが そんなのも、わからないなんて... ttp://codezine.jp/article/detail/2598?p=2 ttp://blog.4sure.jp/yokoshima/2009/07/02/graphics2d%E3%81%AB%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E6%8F%8F%E7%94%BB/ この2つのページを参考にした public void paintComponent()をオーバライドしてすべての文字を表示するので オブジェクトの生成と無駄なループに時間を取られる事はわかっている。 だが、やっぱりstr.length()とかで文字数を数えて地道に計算したほうがいいのか
- 716 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 21:58:42 ]
- すげぇ
さすが>>1すら見ないだけのことはある Javaの環境変数設定ができない・・Orz pc11.2ch.net/test/read.cgi/prog/1252928150/
- 717 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 22:02:56 ]
- そりゃ、エディタの描画部分なんて自作しようというのは余程の暇人かドMだからな。
java.awt.font.* とかはちゃんと見た?
- 718 名前:デフォルトの名無しさん [2009/09/14(月) 22:03:40 ]
- もうやめちまえ。
おまえじゃ時間の無駄
- 719 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 22:06:07 ]
- 問題のコードとテストドライバがあれば誰かチューニングしてくれんじゃねーの
- 720 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 22:12:14 ]
- >>708
CMPの名前のとおり、コンテナに管理させたデータソースをコンテナ経由で使ってる
- 721 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 22:24:42 ]
- >>717
>余程の暇人かドMだからな コンピュータをやる時はなるべくいろいろな事を、勉強出きるようにしている それに、思う存分出きるのは今年までだから最後くらいはと思ってね java.awt.font.*は必要に応じて読んでる
- 722 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 23:26:21 ]
- とりあえずSwingスレに帰れ
- 723 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 23:40:46 ]
- >>630
わざわざありがとうございます。 VelocityEngineはスレッドセーフだけど contextはスレッドセーフじゃないから都度インスタンス作るように って書かれてるみたいですね、 安心できました、助かりました。
- 724 名前:デフォルトの名無しさん [2009/09/15(火) 00:28:01 ]
- >>701
QTが入っていると、Pathの設定とかうまくいかないみたいだよ↓。 detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1416359149 対処方法は自分でぐぐって・・俺はもう寝るから。。QT Javaで検索すればひっかるとおも。 QT使わないとだめなの?Swingとかじゃだめ? 基本的にPathの設定とクラスパスの設定は>>714でいいよ。
- 725 名前:デフォルトの名無しさん [2009/09/15(火) 00:31:10 ]
- >PATHの一番先頭に、
>C:\Program Files\Java\jdk1.4.2_17\bin; >を追加しましたか?(最後でも良いですが、QTなどが入っていると不具合があったりします
- 726 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 11:04:45 ]
- hibernateって重いな
- 727 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 11:10:58 ]
- iBatisのがお勧めだぞ。
新規でhibernate採用してるとこまだある?
- 728 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 12:46:08 ]
- 関連の強いデータ,ってかPOJOとRDBテーブルって
分離して書きたいけど,分離して読み解きたくないジレンマ
- 729 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 13:23:27 ]
- HQL便利だな
- 730 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 15:06:41 ]
- ここ2年くらいJavaから離れていたんですが、最近のO/Rマッパーの主流はiBatisですか?
S2Daoとかhibernateは何回か使ったことありますが、最近のオススメを教えてください
- 731 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 15:14:49 ]
- 一番いいのはO/Rマッピングしないことだよね
- 732 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 15:23:45 ]
- しないって全部生で書くのか?
- 733 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 15:34:17 ]
- 生はある意味気持ちいいけど生まれたものは責任取らなくっちゃね
- 734 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 15:40:20 ]
- はしたない
- 735 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 15:46:17 ]
- なんでO/Rマッピングする派が多いの?
- 736 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 16:25:56 ]
- 詰め直す手間を省きたいから?
UML図からのコード生成から、そういったフレームワークに乗せられるから?
- 737 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 18:41:06 ]
- ドメインモデル礼賛派が多数を占めてるからじゃね?ケッ
- 738 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 19:43:50 ]
- マジレスするとS2JDBCが最強
ドメインモデルがけなされるのは業務ファットなプロジェクトで使ってないからだと思う。 そーなってくるとドメインモデルの問題というより設計の問題といえる。
- 739 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 20:20:27 ]
- public static void main(String[] args) {
new Main().t1(); } static String str = "str"; public Main() { str = "hoge"; } public void t1() { System.out.println(str); staticなフィールドに代入すると、どこまで値を保持してくれているんですか?
- 740 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 20:28:44 ]
- 無論死ぬまで
- 741 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 20:37:15 ]
- >>740
ありがとうございます
- 742 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 20:41:15 ]
- ワロタ
- 743 名前:デフォルトの名無しさん [2009/09/15(火) 20:58:11 ]
- なんでantなのか?
makefile,batではだめだったのか? xmlの文字量ならJavaをantのように使えたほうがよかったのに
- 744 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 21:11:25 ]
- 俺もそう思う
- 745 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 21:30:07 ]
- >>743
ExcelVBAとかからゴリゴリ Ant生成するときはXMLの方が楽です…。
- 746 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 21:36:26 ]
- 戻り値がStringのメソッドについて質問
処理内容はパラーメータで渡されたStringを、正規表現で5つ取り出して結合するだけです return str.group(1) + str.group(2) + str.group(3) + str.group(4); と StringBuilder sb = new StringBuilder(); sb.append(str.group(1)); x5 return sb.toString(); ではどちらが早いですか?
- 747 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 21:42:30 ]
- >>746
変わんないんじゃない? Stringの+演算って、内部では結局StringBuilderのappendがやってる 内部char変数の足し算で実装されるときいたことがある ただ、 >return str.group(1) + str.group(2) + str.group(3) + str.group(4); の部分が return sb.toString(); と同等のコードにコンパイルされるかは知らないっす
- 748 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 21:45:53 ]
- >>746
このスレか前のスレに同じような質問があった気がする
- 749 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 21:46:04 ]
- >>746
d.hatena.ne.jp/suer/20090427/1240758191 なんだが・・・あるぇー、文字列連結ってコンパイル時にStringBufferだか StringBuilderに置き換えられてなかったっけ?
- 750 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 21:48:36 ]
- >>749
そうだよな でも、このhatena記事みると、あれー?って感じだなw
- 751 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 21:51:14 ]
- コンパイラの最適化オプション-Oとかで結構変わったりするかもな
最新のは最適化オプションがデフォルトで入るときいたこともあるが
- 752 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 21:53:55 ]
- そりゃループの中で毎回 str += s; してるからだろ
str += s; は str = new StringBuilder(str).append(s).toString(); みたいなことになるから無駄だらけ
- 753 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 21:58:13 ]
- >>752
つまりはnewしてるのがオーバーヘッドの要因ってこと? じゃあ、>>746のような+をつなげたような書き方なら str.append(str.group(1)).append(str.group(2))..... な感じになって、あんまり変わらない?
- 754 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 22:15:56 ]
- >>753
途中で定数文字列の足し算が複数回続くとか無い限り、 変わらないと思っていい。 ただ、言語仕様上は別に+演算子は二つのStringオブジェクトの 内容をくっつけたStringオブジェクトを新規作成する、 とだけで別にStringBuilderを絶対に使う、とは書いてないんだよねえ。 java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.18.1.2
- 755 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 22:20:32 ]
- 何回「+」でつなげるかってーのは(あまり)重要じゃない。
Stringのインスタンスが何回生まれるかってことが大事。
- 756 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 22:26:07 ]
- jadで確認してみた。
String tmp = ""; for (int i=0; i<100; i++) { tmp = tmp + i; } すると、ループ内で毎回StringBuilderをtmpで作って、i入れて、toStringした 結果を、tmpに入れてる。 0 ldc <String ""> [16] 2 astore_1 [tmp] 3 iconst_0 4 istore_2 [i] 5 goto 30 8 new java.lang.StringBuilder [18] 11 dup 12 aload_1 [tmp] 13 invokestatic java.lang.String.valueOf(java.lang.Object) : java.lang.String [20] 16 invokespecial java.lang.StringBuilder(java.lang.String) [26] 19 iload_2 [i] 20 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [29] 23 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [33] 26 astore_1 [tmp] 27 iinc 2 1 [i] 30 iload_2 [i] 31 bipush 100 33 if_icmplt 8 最適化しないのね。
- 757 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 22:30:39 ]
- >>756
すばらしい 逆コンパイルすることで、わかりやすく解析できるな やっぱnewの連発(インスタンス生成)が問題なんだな
- 758 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 22:34:25 ]
- このへんはコンパイラ依存
- 759 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 22:35:38 ]
- C++で作ったコンパイラはやっぱり安心できる
- 760 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 22:52:08 ]
- 8 new java.lang.StringBuilder [18]
これ自体は10ナノ秒/一回程度のコストだから 文字列連結処理全体から見た場合の影響度はきわめて小さい 23 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [33] 問題なのはこれが繰り返されること
- 761 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 22:57:30 ]
- >>760
なるほど、いっかいいっかい、Stringオブジェクトへ変換 (新規Stringオブジェクトを生成してる)がまずいのか
- 762 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 23:44:21 ]
- まずかどうかは状況次第
10回程度連結しようが普通のアプリじゃオーバヘッドにはならんよ
- 763 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 23:48:01 ]
- StringとStringBuilderの間で文字データを何度もやりとりしてるのが大きいんじゃないかなぁ
StringからStringBuilderへ文字データをコピー、StringBuilderからStringへ文字データをコピー・・・ 文字列が長くなるほどつらい
- 764 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 00:03:56 ]
- java.nio.*が利用出来ない環境で、その実行環境でサポートされている
エンコーディング(ISO-2022-JPやEUC-JPなど)の一覧を取得する方法は ありませんか? 具体的にはjava.nio.charset.Charset#availableCharsets()相当の情報を 取得する方法が知りたいです。
- 765 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 01:33:02 ]
- sunのjavacはコンパイル時の最適化はあんまりしない。
JITとかにまかせる方。
- 766 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 02:15:59 ]
- jadの入手先が見つかりません。
- 767 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 02:32:48 ]
- googleの一番上に出てくるけど?
- 768 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 02:37:52 ]
- ありがとう、見つかりました。
|

|