- 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/
- 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 ]
- ありがとう、見つかりました。
|

|