★★Java質問・相談スレッド132★★

このエントリーをはてなブックマークに追加
1名無しさん@そうだ選挙に行こう
プログラミング言語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/
2名無しさん@そうだ選挙に行こう:2009/08/30(日) 20:03:24
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 8
ttp://pc11.2ch.net/test/read.cgi/tech/1227234261/l50
■ SWT は --
Java 高速GUI SWT 3
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part19
http://pc11.2ch.net/test/read.cgi/tech/1233822965/l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 8
ttp://pc11.2ch.net/test/read.cgi/tech/1206017034/l50

■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 68 ★★
http://pc12.2ch.net/test/read.cgi/tech/1248012902/

■ NetBeansに関する雑談は --
NetBeans Part5【Java/C++/Ruby/Python/PHP】
ttp://pc12.2ch.net/test/read.cgi/tech/1247926906/
■ Eclipseに関する雑談は --
Eclipse統合M28【Java/C++/Ruby/Python/Perl】
ttp://pc12.2ch.net/test/read.cgi/tech/1247051216/
3名無しさん@そうだ選挙に行こう:2009/08/30(日) 20:04:28

**** 開発環境が必要の場合は ****
■ J2SE 1.4.0
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/index.html
■ J2SE 5.0 (1.5.0)
ttp://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
ttp://java.sun.com/javase/ja/6/

**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja
4デフォルトの名無しさん:2009/08/30(日) 20:42:42
>>3
1.4系は削った方が良くない? 今無償で入手可能なバイナリってセキュリティ的にやばいやつだから。
5デフォルトの名無しさん:2009/08/31(月) 02:12:40
でも1.4環境はまだまだ多いのも現実。
インターネット関係は論外だが、社内で綴じたネットワークで使う分には在処と。
6デフォルトの名無しさん:2009/08/31(月) 09:05:07
int long float double BigDidimal BigIntegerのどれかをつかうかプログラムを実行するときに
決めるには。ラッパークラスを作る以外に方法ありますか?
7デフォルトの名無しさん:2009/08/31(月) 10:13:39
日本語で頼む
8デフォルトの名無しさん:2009/08/31(月) 10:33:53
>>6
無いんではないか。特にプリミティブ型はオブジェクトではないので
ポリモルフィズムが実現できない
したがって、OOP的な手法で実装の決定を後回しにできない
9デフォルトの名無しさん:2009/08/31(月) 10:34:09
知識が足りない人には理解できないだけ。
10デフォルトの名無しさん:2009/08/31(月) 10:39:49
  r⌒⌒⌒ヽ
  (( (  ) ))
  (( 人人人 ノ
  (( ・ω・ )ノ ))
(( ( つ 丶
   〉とノ )))
   (_ノ(_)

  r⌒⌒⌒ヽ
  (( (  ) ))
  (( 人人人 ノ
  ((´・ω・)ノ ))
(( ( つ ヽつ
   〉  i ))
   (_ノ(_)

  r⌒⌒⌒ヽ
  (( (  ) ))
  (( 人人人 ノ
  (( ・ω・ )ノ ))
(( ( つ 丶
   〉とノ ) ))
   (_ノ(_)

  r⌒⌒⌒ヽ
  (( (  ) ))
  (( 人人人 ノ
  ((・ω・`)ノ ))
  ⊂/ ⊂ )
   i  ヽ
 (( (_)^丶_) ))
11デフォルトの名無しさん:2009/08/31(月) 10:47:12
>>6
BigDidimalは無いわ
12デフォルトの名無しさん:2009/08/31(月) 10:50:51
BigDecimalの間違い
13デフォルトの名無しさん:2009/08/31(月) 13:52:14
>>6
ジェネリクス使え
14デフォルトの名無しさん:2009/08/31(月) 14:01:55
>>13
ジェネリクスつかうと足し算とか出来ない。
15デフォルトの名無しさん:2009/08/31(月) 15:02:04
夏休みの宿題おわったか?
16デフォルトの名無しさん:2009/08/31(月) 15:21:22
>>6には四則演算が必要かどうか書いてないな
どっちなんだ?
17デフォルトの名無しさん:2009/08/31(月) 15:23:17
Iterable<T>とT[]を同一視できるようなやり方って無いよなあ。
単純に同じforeach文でぶん回したいだけなんだけど。
Arrays.<T>asList(T...)でT[]をシコシコ変換するぐらいかな。
18デフォルトの名無しさん:2009/08/31(月) 15:25:11
>>16
必要に決まってるし、ジェネリックスはオブジェクトを作ることもできない。
19デフォルトの名無しさん:2009/08/31(月) 15:36:06
エスパーの登場です
20デフォルトの名無しさん:2009/08/31(月) 15:44:28
ごめん。>>6の意味が全く分からない。
まず何をしようとしているのかが意味不明。
doubleとBigDecimalじゃあ根底の計算から違うって知ってるよね?
有効桁数とか丸め誤差とかどうなの?
21デフォルトの名無しさん:2009/08/31(月) 15:50:01
なんか具体的な型に関わらない汎用的な計算処理を実装したいのかもしれない
使う側の都合に合わせて精度を選べるというのは場合によっては便利かもしれない
Numberクラスあたりにaddとかsubtractとかあればよかったんだろうけど、ないからな
無駄な話だが、型ごとに同じコードを書くしかないんじゃね
22デフォルトの名無しさん:2009/08/31(月) 15:51:59
多分>>6はもっと別の解決法があるはず
23デフォルトの名無しさん:2009/08/31(月) 15:52:53
そこまで汎用的にする必要性が感じられない
24デフォルトの名無しさん:2009/08/31(月) 16:08:27
彼は天才だから、汎用的であるべきだと思ったんだろう
25デフォルトの名無しさん:2009/08/31(月) 16:30:22
Rubyでもやっていた方が幸せになれるだろう
26デフォルトの名無しさん:2009/08/31(月) 16:32:31
確かに、まさにRuby向けだよね
27デフォルトの名無しさん:2009/08/31(月) 19:37:49
Cだとマクロで解決できるけどJavaにはマクロがないからな。
28デフォルトの名無しさん:2009/08/31(月) 19:39:14
javaの最新版をインストールしたら(ver6 update15)
F1のlivetimingやタカミンのお絵かきチャットが真っ白になって見れなくなった、
みなさんは見れてます?
29デフォルトの名無しさん:2009/08/31(月) 19:48:39
知るか
30デフォルトの名無しさん:2009/08/31(月) 19:48:45
そんなもん見る必要ない
31デフォルトの名無しさん:2009/08/31(月) 20:03:41
ワロタ
32デフォルトの名無しさん:2009/08/31(月) 20:19:00
助けてよ
33デフォルトの名無しさん:2009/08/31(月) 20:21:44
作者に聞け
34デフォルトの名無しさん:2009/08/31(月) 21:14:41
あの人に聞け
35デフォルトの名無しさん:2009/08/31(月) 21:45:47
麻生閣下ばんざい!?
36デフォルトの名無しさん:2009/08/31(月) 22:14:25
>>28
IE とかアドインの管理かコンパネで Java Plug-in を切り替えたりできない?
俺のは新品なんで今は 1.6.0_15 しか入ってないからよく分かんない・・・
37デフォルトの名無しさん:2009/08/31(月) 22:31:12
板違いだ
38デフォルトの名無しさん:2009/08/31(月) 22:41:05
>>28
それ最新版じゃないし
39デフォルトの名無しさん:2009/09/01(火) 02:52:32
テキストペインにおいて、
キャレットが点滅しないようにしたいです。

以下ではうまくいきません。(デフォルトどおり点滅してしまう)
(エラーは出ません)

よろしくお願いします。


//テキストペインを作成する

JTextPane tpane = new JTextPane();

//使用するキャレットを設定する

Caret c = tpane.getCaret();
c.setBlinkRate(0);  ←キャレットの点滅間隔をゼロに設定
tpane.setCaret(c);
40デフォルトの名無しさん:2009/09/01(火) 03:19:36
>>39
うちの環境(1.6.0_16)では
tpane.getCaret().setBlinkRate(0);
で普通にブリンクが止まったけど、>>39のJavaのバージョンは?
getCaretで得られるCaretはtpaneが保持しているカレットそのものへの参照なので、
わざわざsetCaretしなくても大丈夫。しても構わないけど。
41デフォルトの名無しさん:2009/09/01(火) 03:59:48
ついでにJDK5でも試したけど問題なく点滅は止まった。
プラットフォームはwinXP。
>>39ではテキストペインの作成とカレットへの設定を連続して書いているけど、
実際のプログラムでもそうなってる?
設定する部分が実際には実行されていないというようなことはない?
42デフォルトの名無しさん:2009/09/01(火) 14:02:33
>>40
>>41

レスありがとうございます。

ブラウザに問題が合ったようで、
単にスクリプトの修正が反映されていなかったようです。(完全更新したはずが)
失礼しました。
43デフォルトの名無しさん:2009/09/01(火) 15:13:09
>>42
早まって自爆するなボケ
44デフォルトの名無しさん:2009/09/01(火) 19:38:56
java.net.URL について質問があります(jdk1.5.0_15)。
このクラスのコンストラクタ URL(URL context, String spec) では相対パスを解決してくれるので
とても重宝しているのですが、specがGETパラメータのみの場合に期待した動作をしてくれません。

例えば、ページ
http://example.com/index.jsp
内に
<A HREF="?p=1">
とある場合、ブラウザでは(IE,FFで確認)
http://example.com/index.jsp?p=1
へのリンクを表すのですが、

[コード]
System.out.println(new URL(new URL("http://example.com/index.jsp"), "?p=1"));

で試してみたところ

[結果]
http://example.com/?p=1

となりました。これは、java.net.URLの不具合なのでしょうか。
あるいはこれが正しい動作で、ブラウザの方が標準規格に反しているのでしょうか。
45デフォルトの名無しさん:2009/09/01(火) 19:58:42
>>44
自分で処理する
46デフォルトの名無しさん:2009/09/01(火) 20:41:59
まるでアンダーヘアみたいw
47デフォルトの名無しさん:2009/09/01(火) 21:33:02
JTextAreaを使って入力フィールドを設けたのですが
Ctrl+C、Ctrl+X、Ctrl+V等デフォルトで動いてしまうアクセラレータを
任意の処理に書き換えたいのですがどうしたらいいのでしょうか?
48デフォルトの名無しさん:2009/09/01(火) 21:35:19
デフォルトではスクロールすらしなかった気がするが、気のせいか。
49デフォルトの名無しさん:2009/09/01(火) 21:36:43
スクロールはしないけどショートカットキーとしてCtrl+Cとかが使えるって話だろ?
試したら使えたけど。
50デフォルトの名無しさん:2009/09/01(火) 21:38:33
>>44
ブラウザの方が間違ってると思う。
RFC 2396 の C.1 の例に ttp://a/b/c/d に対して ?y は ttp://a/b/c/?y と解釈されるとあるし。
5144:2009/09/01(火) 21:39:58
>>45,46
ありがとうございます、とりあえず
spec.startsWith("?")
で対策することにします。
52デフォルトの名無しさん:2009/09/01(火) 21:40:50
>>47
JTextAreaのgetInputMap()のCTRL+CとかCTRL+XとかCTRL+Vのエントリに適当なダミーのオブジェクトを入れる
ちなみにMacではMETA+CとかMETA+XとかMETA+Vのはずなので注意
キーバインド全部消し去りたいなら新しい空のInputMapをnewしてsetInputMapした方が楽かもしれない
5352:2009/09/01(火) 21:43:46
読み返してみたら、任意の処理に置き換えたいってことか・・・
じゃあActionMapの対応するエントリもセットする必要がある
まぁJavadocでも読みながらやってみればできると思う
5444:2009/09/01(火) 21:45:14
>>50
RFCまで示してくれてありがとうございます。
やっぱりブラウザの方が、おせっかいしてくれてるだけだったのか〜。
でも、ページ作成屋さんは「ブラウザで動くから」ってことで既にこの書き方が
世の中に氾濫してしまってるようなので、システム屋はやはり泣く泣く >>51 みたいに
するしかないのでしょうね。。。
55デフォルトの名無しさん:2009/09/01(火) 21:48:47
>>50
ttp://a/b/c/に対して」の間違いじゃね?
56デフォルトの名無しさん:2009/09/01(火) 22:00:14
>>47
JTextAreaのInputMapに登録されている書き換えたいキーストロークのバインディングを変更する。
例えばCtrl+Cならcopy-to-clipboardというアクション名にバインドされているので、これを必要な処理を表すものに変える。
必要な処理を表す既存のアクション名がない場合は新しく任意のアクション名を作成して、
InputMapにキーストロークとそのアクション名の組を登録した上で、
JTextAreaのActionMapにそれをキーとし必要な処理を実装したActionへのマップを追加する。
57デフォルトの名無しさん:2009/09/01(火) 22:58:20
J2SE 1.6.0_14, Tomcat 6.0.20, MySQL 5.0.45 で Web アプリをちまちま作ってます。
データソースを使用してDBにアクセスすべく、META-INF/Context.xml に
URL/ユーザ名/パスワード等必要な設定を記述して、正常に動作はしているんですが
Eclipse が Context.xml に対して
「文書に対する文法制約 (DTD または XML スキーマ) が検出されませんでした。」
と警告を出していて、これをどうしても取り除きたいのですが、いろいろと調べても
Context.xml に必要な DTD やスキーマについての情報が見つかりません。
作成した Context.xml は以下のような内容です。

<?xml version='1.0' encoding='utf-8'?>
<Context>
<Resource name=・・・ type=・・・ url=・・・/>
</Context>

上記警告を取り除くには、どう記述したら良いでしょうか?
58デフォルトの名無しさん:2009/09/01(火) 23:04:48
>>57
もともとXMLについてた公開識別子つけたら?
<!DOCTYPE PUBLIC ~~>
59デフォルトの名無しさん:2009/09/01(火) 23:08:17
ページ作成屋ってなに?
どこの業界用語?
6057:2009/09/01(火) 23:33:28
>>58
Context.xml の内容はネットで得た情報を元に新規に作成したもので
参考にした Web サイトには DTD や XML スキーマの記述はありませんでした。
Tomcat にも conf/Context.xml がありますが、これにも特にそのような記述はありません。

試しに「<!DOCTYPE PUBLIC>」だけ追加してみたら、警告はなくなりましたが
全然理解できていないので、きっと間違いなんでしょう。
61デフォルトの名無しさん:2009/09/01(火) 23:44:58
>>60
そもそもDTDないっぽいね。
ってか警告出してるのEclipseか。
じゃあ、無視ってOK。
62デフォルトの名無しさん:2009/09/02(水) 00:04:02
>>54
ウェブ製作もやっている身から言わせてもらうが、相対リンクが?から開始ってかなり行儀悪いぞ
63デフォルトの名無しさん:2009/09/02(水) 00:27:19
で、「ページ作成屋さん」ってなに?
6457:2009/09/02(水) 00:28:03
>>61
スルーすることにします。
御回答ありがとうございました。
65デフォルトの名無しさん:2009/09/02(水) 00:52:36
それで・・・
「ページ作成屋さん」てのは一体なんですか?
「システム屋はやはり泣く泣く」ってなんのことですか?

卑怯な教えて君が一番嫌われますからちゃんと答えてもらえませんかね?
66デフォルトの名無しさん:2009/09/02(水) 01:00:31
>>65
何でそんなに必死なんだ。
67デフォルトの名無しさん:2009/09/02(水) 01:14:35
リアルでいじめられっこだから
68デフォルトの名無しさん:2009/09/02(水) 01:23:48
>>65
「ページ作成屋さん」でググって出なかったから答える。
ウェブデザイナーのこと。
69デフォルトの名無しさん:2009/09/02(水) 01:34:45
「ページ作成屋さん」ってのは、「お花屋さん」とどう違うんですか?
70デフォルトの名無しさん:2009/09/02(水) 02:11:07
結構違う
71デフォルトの名無しさん:2009/09/02(水) 02:25:21
お花屋さんをなめんなよ
72デフォルトの名無しさん:2009/09/02(水) 02:26:46
>>68
具具って見たんですけど、もしかして「お弁当屋さん」と似たものですか。
73デフォルトの名無しさん:2009/09/02(水) 02:56:13
JTextPaneについて教えてください。

・単一行(=改行は不可)
・入力文字数(列数)を制限


Jtextareaにあるような、メソッドはないようなので、
困っています。

よろしくお願いします。

74デフォルトの名無しさん:2009/09/02(水) 03:05:48
>>73

追記です。

・自動改行(行がある程度文字が埋まると自動で改行する)
をなくす


キーボードからの改行は、キーボード入力のイベントリスナを、
改行を受け付けないようにすればいいと考えています。

よろしくお願いします。
75デフォルトの名無しさん:2009/09/02(水) 04:03:56
Swingてテキストフィールドなかったっけ?
76デフォルトの名無しさん:2009/09/02(水) 05:18:12
>>75

レスありがとうございます。

アトリビュート編集機能」が必要です。
そこで、Jtextpaneを選択しています。
77デフォルトの名無しさん:2009/09/02(水) 07:11:07
ないなら自分で実装すればいいじゃん
78デフォルトの名無しさん:2009/09/02(水) 07:30:03
無理やりだがDocumnetのchangeListenerで、改行がきたら消すとか
79デフォルトの名無しさん:2009/09/02(水) 08:00:01
int型の変数で計算を行っていて
それを一度 LinkedList に入れて処理をした後に
またint型の変数に戻そうとしたら
Object を int にキャストできませんとエラーになりました。
Object型をint型に正常に変換するにはどうすればいいのでしょうか?
80デフォルトの名無しさん:2009/09/02(水) 08:08:05
>>79
使っているJavaのバージョンとLinkedList変数の宣言をどうぞ。
81デフォルトの名無しさん:2009/09/02(水) 08:25:18
>>80
バージョンはjre1.6.0_03

LinkedList list = new LinkedList();
list.addFirst(x);
int ans = (int)list.get(i);
こんな感じでコンパイルすると上述のエラーになりました。
8279:2009/09/02(水) 08:37:31
ああ、すいません
LinkedList<Integer> list = new LinkedList<Integer>();
とするだけでできました。
ありがとうございました。
83デフォルトの名無しさん:2009/09/02(水) 09:41:22
素人のようだから念のために言っておくが・・・ループの中でListにintをつめたり出したりやってないよな?
ボクシングとジェネリクスは理解しておかないとアホさらすぞ
8479:2009/09/02(水) 09:45:22
listではaddFirstとgetしか使っていません。
削除とかはしていないです。

正直全然ジェネリクスをわかっていません。
ボクシングに至っては今初めて聞いたような状態です。
勉強しておきます・・・
アドバイスありがとうございます。
85デフォルトの名無しさん:2009/09/02(水) 11:36:52
jspで携帯向けのサイトを作成しているのですが、キャリアに応じて
文字コードを変更したいです。
しかし、jspでは、pageディレクティブにて文字コードを静的に
設定してしまっており、動的に切り替えることができないように思います。
※jsp中にてsetContentを行っても、JspPrintWriterが作成されてしまった
 あとなので文字化けを起こしてしまいます。
そもそも、jsp単体での動的なContentTypeの変更はムリなのでしょうか?
86デフォルトの名無しさん:2009/09/02(水) 11:40:45
JSP単体とかありえないから
87デフォルトの名無しさん:2009/09/02(水) 12:07:12
出来ないことはない、全部JAVAの命令でスクリプトレットに書ける
88デフォルトの名無しさん:2009/09/02(水) 12:30:56
まともなサイトならありえないな
8985:2009/09/02(水) 12:51:06
やはり無理みたいですね…
現在、filterをかまして自作PrintWriterを使わせるようにして、
colse or flush されるタイミングで任意のContentTypeを吐く
ようにしているのですが、あまりにも、あまりにもと思ったので…
参考になりました。ありがとうございました。
90デフォルトの名無しさん:2009/09/02(水) 13:46:13
ひでえな
昼まっから遊んでるアマチュアばっかりかよ
91デフォルトの名無しさん:2009/09/02(水) 18:07:03
と昼間から遊んでるアマチュアが申しておりました
92デフォルトの名無しさん:2009/09/02(水) 20:32:59
Apache httpClient使うのと自分でjava.net.HttpURLConnectionを使って
ガリガリと書いたのではスピードどのくらい違いますかね?
93デフォルトの名無しさん:2009/09/02(水) 21:28:00
>>92
実測するしか。直観では、ネットワークの方がはるかに遅いから対して変わらないように思うけど。
もっとプリミティブなレイヤーから書いた場合には、アクセスパターンに対する最適化やバッファリングの仕方などで大きな差が出るかも。
94デフォルトの名無しさん:2009/09/02(水) 21:41:09
何か色々面倒なこと言ってるけど>>47のって関数オーバライドしちゃえばいいんじゃ・・・
95デフォルトの名無しさん:2009/09/02(水) 22:06:46
>>93
>ネットワークの方がはるかに遅いから対して変わらないように思うけど
なるほど、たしかにそう言われてみれば
わかりました。ありがとうございます
96デフォルトの名無しさん:2009/09/02(水) 22:36:13
配列の添え字にマイナスを使いたいのですが、どうすればいいですか?
どこかにサンプルコードはありませんですか?
delphiなどでは普通につかって、forループしてますけど。
97デフォルトの名無しさん:2009/09/02(水) 22:41:37
>>96
delphi言語を使えばいい
98デフォルトの名無しさん:2009/09/02(水) 22:47:24
>>96
使いたきゃ使えばいい。
ArrayIndexOutOfBoundsExceptionが出るだけだが。
99デフォルトの名無しさん:2009/09/02(水) 22:50:28
Javaでは添え字にマイナスも使えないんですか!とかバカジャネーノ
100デフォルトの名無しさん:2009/09/02(水) 22:52:51
まだJavaで継続(CP)やりたいんですが、とかのほうがよかったね。
101デフォルトの名無しさん:2009/09/02(水) 23:03:39
delphiではマイナスの添え字ってどういう意味があるの?
スレ違いでスマンが
102デフォルトの名無しさん:2009/09/02(水) 23:15:04
>>101
例えば風の計算するとき、境界条件の計算に、
計算領域の2〜3個外側の値(ダミーの値)を使う
ことがあるんだけど、そのときにマイナス添え字
の配列があると楽なんです。
103デフォルトの名無しさん:2009/09/02(水) 23:39:59
え、配列上限+1を0に見立てたアクセスかと思ってた。違うのか。
104101:2009/09/02(水) 23:56:30
>>102
書いてくれた説明はさっぱり解らないけど検索して調べたら解った
Javaの場合は添え時の部分でマイナスにならないように値を加算すればいいんじゃない
例えば
for(int i=-100;i<100;i++){
  d[i+100] = i;
}
みたいな感じで
105デフォルトの名無しさん:2009/09/03(木) 00:03:23
>>104
ぼくは配列のほうじゃなくて、カウンタの部分を補正しようか、
あるいはポインタを使うとスッキリとするんじゃないかとも思
ったけど。
なるほどです。それでやってみます。ありがとう。

106デフォルトの名無しさん:2009/09/03(木) 00:45:01
負のインデックスを使うと自動的に
allocしてくれる配列かリストが欲しいって言ってたってこと?
代入不能な負のインデックスってだけなら
メソッドかませばいいだけの話だしなあ。
107デフォルトの名無しさん:2009/09/03(木) 01:00:15
自分で好きにラッパを作ればいいじゃん
108デフォルトの名無しさん:2009/09/03(木) 01:53:55
>>102
それ単にダミーが終わるindex + nでアクセスすればいいんじゃないの?
109デフォルトの名無しさん:2009/09/03(木) 15:28:01
C言語はひととおり出来るんだけど
今からJAVAは無理?

というかむずかしい?
110デフォルトの名無しさん:2009/09/03(木) 15:29:00
ぜんぜん
111デフォルトの名無しさん:2009/09/03(木) 17:49:34
jadを許可しているソフトを逆コンパイルしたら、内部クラスを使いまくっていた
他の人に聞いたら、業務では内部クラスは使わないよって言っていた
そこんところ、本当はどうなの?
112デフォルトの名無しさん:2009/09/03(木) 17:56:33
>>111
もちろん使いまくりはダメだが、適切に使う分には強力な武器になる。
業務もクソも関係ない。
113デフォルトの名無しさん:2009/09/03(木) 17:57:26
業務ってもなぁ
携帯みたいな容量きつい環境ではあまり無闇に使うわけにはいかないけど
デスクトップやサーバならまったく問題ない
114デフォルトの名無しさん:2009/09/03(木) 18:56:45
内部クラスはそれなりのメリットがあるんです
115デフォルトの名無しさん:2009/09/03(木) 19:09:02
2つの配列を、ひとつの配列にするには
どうしたらいいですか。

a[ ] =+ b[]

こんなかんじでしょうか?
116デフォルトの名無しさん:2009/09/03(木) 19:13:45
>>115
System.arraycopy
117デフォルトの名無しさん:2009/09/03(木) 20:14:30
文字列の長さを得る方法など、あらゆるコマンドが載ったリファレンスってないのでしょうか?
ちょっと大きめの書店に行ってみましたが、見つかりませんでした。
良い本があれば教えてください!
118デフォルトの名無しさん:2009/09/03(木) 20:15:59
javadocで十分だろが。釣りか?
119デフォルトの名無しさん:2009/09/03(木) 20:17:26
紙信者って奴だ
120デフォルトの名無しさん:2009/09/03(木) 20:18:49
Javadocじゃあ視認性悪いね。
121デフォルトの名無しさん:2009/09/03(木) 20:21:12
紙媒体のリファレンス求めるのは諦めた方がいい
非効率過ぎる

微妙に畑が違うが、Win32APIのリファレンスなんて3000ページ以上あったぜ
122117:2009/09/03(木) 20:25:37
Javadocというものを知らなかったので検索してみましたが、
自分で書いたコードの解説をHTML形式で作成できる機能でしょうか?
123デフォルトの名無しさん:2009/09/03(木) 20:25:49
改訂のたびに廃棄してたらとんでもねーな。
124デフォルトの名無しさん:2009/09/03(木) 20:28:31
>>117 はそもそもJavadocを知らなさそうだな
これだ
http://java.sun.com/javase/ja/6/docs/ja/api/index.html
標準で入ってるあらゆるクラス・インタフェイス・メソッド・フィールドが載っている
125デフォルトの名無しさん:2009/09/03(木) 20:28:57
>>122
とりあえず↓で事足りないかい?
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/
126デフォルトの名無しさん:2009/09/03(木) 20:29:49
貼る奴間違えた
127デフォルトの名無しさん:2009/09/03(木) 20:35:30
>>124-125
十分事足ります!
>>124さんのリンクのほうが新しいみたいですね。

機能からの逆引きの仕方がわかりませんけど、ブックマークして後で部分的に目を通してみます。
(Firefoxでスクリプトの処理に時間がかかる、みたいなダイアログが出ますけど…)

ありがとうございました!!
128デフォルトの名無しさん:2009/09/03(木) 20:37:54
API仕様書
129デフォルトの名無しさん:2009/09/03(木) 20:50:56
Win32APIってやっぱりMSDNしかないの?あそこIEじゃないとMSの嫌がらせが多いから嫌なんだよな・・・
130デフォルトの名無しさん:2009/09/03(木) 20:54:52
JSFのリファレンスっていうかチュートリアルっていうか、公式なやつない?
131デフォルトの名無しさん:2009/09/03(木) 21:43:49
質問。
総称型配列を返すメソッドを持つクラスを楽に作れるような改良は、予定に
ありませんか?
class GenArray<T> {
public T[] RetArray() {...}
}
というか、T[] = new T[100]; もできんし。
132デフォルトの名無しさん:2009/09/03(木) 22:00:11
List<T> の何が不満なんだ?

133デフォルトの名無しさん:2009/09/03(木) 22:10:41
List<笑>
134デフォルトの名無しさん:2009/09/03(木) 22:14:49
イレイジャなのでnew T[]は出来る予定はまずない
135デフォルトの名無しさん:2009/09/03(木) 22:24:06
>>132
某クラウドのWEBサービスのプロキシで配列渡すんだけど、一回に渡せる
個数が制限されていて何回も分割して処理しなきゃならないんだ。
んで、指定した個数の部分配列をイテレータみたいにgetNext()できるクラス
を書いたんだけど、総称型つかえねーよとコンパイラに怒られた。
仕方なくList<T>返すようにしてtoArray(new String[0])して渡したんだけど、
これはちょっとなぁぁと思った。
136デフォルトの名無しさん:2009/09/03(木) 22:33:16
>>135
「これはちょっとなぁぁ」と思っても仕方がない
Javaの場合、後方互換性を保つため、実行時には型情報はなくなる
なので、明示的な型を指定しない限り配列は作ることが不可能
おかげで1.4の頃のライブラリが使えるんだから諦めてくれ
137デフォルトの名無しさん:2009/09/03(木) 23:57:08
>>135
リフレクションじゃいかんの?
138137:2009/09/04(金) 00:15:02
一応補足しとくか。
T[] array = (T[]) java.lang.reflect.Array.newInstance(elem.getClass(), 100);

>>135の要件だと、
配列に詰める(適当な)要素のオブジェクトからgetClassしないとダメ。
ただしT[]作る時の要素はTのサブクラスだとダメ。
TのサブクラスでT[]作っても、T入れる時点でArrayStoreExceptionが出る。

明示的にクライアントAPIからClass<T>貰うのが
配列型の共変が無くて一番無難。
139デフォルトの名無しさん:2009/09/04(金) 00:23:08
>>127
こっちも見とけ。
JDK 6 ドキュメント
http://java.sun.com/javase/ja/6/docs/ja/index.html
公式のドキュメントは全部ここからたどれる。
140131:2009/09/04(金) 01:07:11
やはり予定には無いですか。ありがとうございました。
おまけに 138 さんにインスパイアされて・・・Array・・・Arraysってあったよな。
public class Main {
public static void main(String[] args) {
String[] arr = new String[] {"0","1","2","3","4","5","6","7","8","9","10"};
GenArray<String> gen = new GenArray<String>(arr);
String[] strs;
while ((strs = gen.retArray(3)).length>0) {
System.out.println("---");
for (String str : strs) { System.out.println(str); }
}
}
static class GenArray<T> {
T[] array;
int pos = 0;
public GenArray(T[] arr) { array = arr; }
public T[] retArray(int count) {
int size = Math.min(array.length-pos, count);
T[] ret = java.util.Arrays.copyOfRange(array, pos, pos+size);
pos += size;
return ret;
}
}
}
あれれ・・・通った _orz
141デフォルトの名無しさん:2009/09/04(金) 01:20:07
Arraysの中を覗いたら、まさに 138 さん方式でした。
T[] copy = ((Object)newType == (Object)Object[].class)

? (T[]) new Object[newLength]

: (T[]) Array.newInstance(newType.getComponentType(), newLength);

142デフォルトの名無しさん:2009/09/04(金) 02:29:24
>>116
ありがとうございます。

64個配列作って、
一部分だけ、指定したい。

1,  String image_gif[ ] = new String[64];
2,  image_gif[ ] = {"panda.gif","midori.gif","hi.gif","nobasu.gif","ha.gif","",};

2行目の書き方がとても楽。
→けど、これではエラーになる。
→2つ配列を作って、くっつけよう。

そこで質問しました。
143デフォルトの名無しさん:2009/09/04(金) 12:03:16
>>111
クラス名を HOGE010010 とか記号でつけて管理台帳で管理するような現場だと
*.java と *.class の数がそろわず管理できないから
というわけのわからん理由で内部クラスが禁止になったりする
144デフォルトの名無しさん:2009/09/04(金) 12:05:59
ワラタw
そうなると、匿名クラスも禁止?
145デフォルトの名無しさん:2009/09/04(金) 12:25:45
>>143
イミフw
146デフォルトの名無しさん:2009/09/04(金) 12:37:25
>>143
そんなアホな現場があるなんて信じられないし信じたくない


そう思っていた時期が俺にもありました
147デフォルトの名無しさん:2009/09/04(金) 13:00:08
まさに今の現場だw
内部クラスサブクラス禁止で1クラス3000行とか普通にあるww
148デフォルトの名無しさん:2009/09/04(金) 13:05:52
管理台帳に修正内容は1行1行書かないと行けないんですね、わかります
149デフォルトの名無しさん:2009/09/04(金) 15:58:37
>>147
アマチュアの製作現場ですね
よく分かります
150デフォルトの名無しさん:2009/09/04(金) 18:20:00
アホか、銀行とかむしろ基幹系の方がそういうルール残っているんだよ
151デフォルトの名無しさん:2009/09/04(金) 18:45:04
クラス設計がウンコなんだろ
152デフォルトの名無しさん:2009/09/04(金) 18:53:21
COBOLを前提としたルールとかある。
経験の無いツールに移行する時は、どの前提が間違っているか分からないまま詳細設計とかに進むこともまま。
153デフォルトの名無しさん:2009/09/04(金) 19:04:31
>>152
<アマチュアの製作現場ですね
154デフォルトの名無しさん:2009/09/04(金) 19:07:28
>>153
そういうところほど、いいお金をもらってる…
155デフォルトの名無しさん:2009/09/04(金) 20:45:40
質問です!

常駐してるjavaプログラムAに対して
新しくコマンドプロンプトを開き、そこからデータを送信することおは可能でしょうか?
パイプとか、いろいろ調べてみたんですがなかなかー・・・
156デフォルトの名無しさん:2009/09/04(金) 20:51:34
つ socket
157デフォルトの名無しさん:2009/09/04(金) 20:59:31
C→Java
Java→Java
みたいに言語間で通信できるのはわかったんですが
DOS窓から直に送るって方法がわからんのです(´・ω・`)
158デフォルトの名無しさん:2009/09/04(金) 21:02:58
DOS窓からCなりJavaのプログラムを起動すればいいだろ、お前は何を言っているんだ?
159デフォルトの名無しさん:2009/09/04(金) 21:03:34
>>156
データグラムだとたまに取りこぼしがあるとか言う話ですがどういうときに発生するんですか?
160デフォルトの名無しさん:2009/09/04(金) 21:09:30
>>159
伝送路が混んでるときとか
161デフォルトの名無しさん:2009/09/04(金) 21:13:07
>>158
大量のデータを裁かなくてはいけないので
その都度プロセスを起動するのは心もとなくて

同時に300くらいは軽く裁きたいのです
162デフォルトの名無しさん:2009/09/04(金) 21:35:55
同時に300くらい軽く捌くjavaなりCのプログラムを1回起動すればいいだろ
お前は何を言っているんだ?
163デフォルトの名無しさん:2009/09/04(金) 21:44:05
DOS窓に垂れ流されてるコマンドを
1行ずつ常駐してるJavaに送信したいんですが
たった一回の起動で可能なのです?

調べてみたんですが、今ひとつわからないのでヒントを(´・ω・)
164デフォルトの名無しさん:2009/09/04(金) 22:00:51
>>163は仕様書をかけないタイプ
165デフォルトの名無しさん:2009/09/04(金) 22:09:38
>>160
配信するときTTLの寿命で死んじゃうからパケットは消滅するんですか?
そうするとメッセージが渡ったかどうかチェックする必要があるのでTCPしかないですよね。
166デフォルトの名無しさん:2009/09/04(金) 22:19:12
「DOS窓に垂れ流されてるコマンド」
まず、これが何のことだか
167デフォルトの名無しさん:2009/09/04(金) 22:25:09
>>165
TCPが持つ他の機能は不要で、メッセージが必ず渡ることだけを保証するのなら、
データグラムの上にそういうプロトコル階層を作るか持ってきて乗っけるという手もある。
この話題はJavaとは無関係なのでネットワーク関係のスレへいけ。
168デフォルトの名無しさん:2009/09/04(金) 22:27:12
>>165
消滅というか、送信先にたどり着かないこともあろう
送信した方もちゃんと届いたかどうかわからない
そういうのが要らない場面で使うのが前提
169デフォルトの名無しさん:2009/09/04(金) 23:32:55
IPデータグラムにポート番号とチェックサムついただけなのがUDP
170デフォルトの名無しさん:2009/09/04(金) 23:37:02
jreがダウンロードできない。
サンのサイト死んでない?
171デフォルトの名無しさん:2009/09/04(金) 23:37:56
ごめん繋がった。なんだこりゃ
172デフォルトの名無しさん:2009/09/05(土) 00:07:24
UDPだとデータ損失しちゃうだろ
173デフォルトの名無しさん:2009/09/05(土) 00:19:49
それじゃメッセージ用途でsocketを使うというのはTCPを使うってことじゃないですか!
SOCKETやRCPをも含め結局メッセージはOSが必要でJAVAだけじゃ無理ってことでいいですか?
174デフォルトの名無しさん:2009/09/05(土) 00:20:58
はぁ〜?
175デフォルトの名無しさん:2009/09/05(土) 01:33:37
176デフォルトの名無しさん:2009/09/05(土) 01:51:40
>>174がみやむーの声で再生されたorz
ちょっとアスカに馬鹿にされてくる・・・。
177デフォルトの名無しさん:2009/09/05(土) 01:52:10
>>173
意味不明過ぎる。
Javaが動くにはOSが必要だし、Javaのネットワーク機能はOSの機能を呼び出してるだけ。
あと、UDPで信頼性が欲しけりゃUDPの上に俺々プロトコルを構築すればいい。
178デフォルトの名無しさん:2009/09/05(土) 02:18:25
TCPで信用ならないならSHA1のハッシュを配布するもよし
179デフォルトの名無しさん:2009/09/05(土) 02:36:04
>>178
TCPで信用ならないってどういうときですか?
SHA-1とかパケットがちゃんと届いたかどうかの信用性に関係ないでしょ。
180デフォルトの名無しさん:2009/09/05(土) 02:38:24
>>177
他アプリへのメッセージはJAVAでは原則サポートしてないでしょ。
RPCとかOS関係ないし、さっきはメッセージならsocket使えっていったよね?
181デフォルトの名無しさん:2009/09/05(土) 02:39:46
既に最初の質問者と違ってる件
構って君なのでしばらく付き合ってやってください
182デフォルトの名無しさん:2009/09/05(土) 02:59:49
自己紹介乙
183デフォルトの名無しさん:2009/09/05(土) 04:16:37
>>180
その「他アプリへのメッセージ」って具体的に何よ。
Javaが標準でサポートしてる、ソケットやRMIやCORBAは「他アプリへのメッセージ」に入らないのか?
184デフォルトの名無しさん:2009/09/05(土) 04:16:59
185デフォルトの名無しさん:2009/09/05(土) 04:19:20
>>183
はいりません
186デフォルトの名無しさん:2009/09/05(土) 06:34:23
>>183
XML-RPCも入れてあげて下さい
187デフォルトの名無しさん:2009/09/05(土) 07:05:13
>>180
Windowsメッセージと誤解しているとエスパー。
188デフォルトの名無しさん:2009/09/05(土) 09:20:35
Aクラスにメソッドを追加したクラス名はどのような名前にしたらいいですか?
189575:2009/09/05(土) 09:58:17
>>188
190デフォルトの名無しさん:2009/09/05(土) 10:02:20

クラス名がAじゃなくても何でもよくて名前の前や後ろに文字を付け加える方法でお願いします。
191デフォルトの名無しさん:2009/09/05(土) 10:10:36
>>188
Readerにバッファリングを付けたから BufferedReader とか、追加機能にちなんだ
名前をつける以外には正解は無い。

正直な話、「メソッドを追加した」という情報だけの質問が、まじめな答えが戻って
くるような質問だと思っているのか?と小一時間略
192デフォルトの名無しさん:2009/09/05(土) 10:12:28
じゃあ、Aクラスは数学的な機能しかないものに、機能追加でコピーペーストや文字の検索なんかの
機能をつける場合は何をつけますか?
193デフォルトの名無しさん:2009/09/05(土) 10:22:34
>>192
馬鹿に付ける薬
194デフォルトの名無しさん:2009/09/05(土) 10:39:30
>Aクラスは数学的な機能しかないものに、機能追加でコピーペーストや文字の検索
今思いついただけのいい加減なクラスだろうから、「000」「001」でOK
ユーティリティ以外でそんなクラスをつくるなら、関数に戻した方がいい
195デフォルトの名無しさん:2009/09/05(土) 10:52:57
SomethingExtendedA
196デフォルトの名無しさん:2009/09/05(土) 10:54:46
AImplX
197デフォルトの名無しさん:2009/09/05(土) 11:01:14
なにかのメソッドを追加したA
198デフォルトの名無しさん:2009/09/05(土) 11:05:16
何か便利な機能を詰め込んだクラスの名前を教えてください。
例えば配列を繋げたりするようなものなどが沢山入ってます。

>>195
有難うございます。
199デフォルトの名無しさん:2009/09/05(土) 11:06:58
配列を繋げたりするようなものなどが沢山入っているA
200デフォルトの名無しさん:2009/09/05(土) 11:08:48
便利な機能を詰め込んだA
201デフォルトの名無しさん:2009/09/05(土) 11:08:55
日本語は使いたくないので英語でお願いします。
202デフォルトの名無しさん:2009/09/05(土) 11:10:12
AWithUsefulUnkoMethods
203デフォルトの名無しさん:2009/09/05(土) 11:12:31
AfeaturingEXILE

AWithSupportingSomeOperations
204デフォルトの名無しさん:2009/09/05(土) 11:13:57
>>198
ManyBigBenClass
205デフォルトの名無しさん:2009/09/05(土) 11:14:14
ありがとうございます!
206デフォルトの名無しさん:2009/09/05(土) 11:14:56
>>204
Manyなのかは審議が必要
207デフォルトの名無しさん:2009/09/05(土) 12:03:54
>>187
DOS窓とやり取りするって話じゃなかったっけ?
208デフォルトの名無しさん:2009/09/05(土) 13:42:56
>>192
リスコフの置換原則に反するからそういう設計はしない。
209デフォルトの名無しさん:2009/09/05(土) 13:47:39
>>208
反してませんよ?
クラスをコピペして別のクラスをつくってやってますから。
なぜかというと、再帰を使っているので、
210デフォルトの名無しさん:2009/09/05(土) 14:12:40
>>209
DRYの、
211デフォルトの名無しさん:2009/09/05(土) 17:03:58
ようやくEffective Java 第2版を昨日手に入れたぜ
他にいい感じのjava本ないか
212デフォルトの名無しさん:2009/09/05(土) 18:45:59
>>208
君は何もわかってないバカなんだから
これ以上しゃべらない方がいいよ


>>211
軽快なJava
213デフォルトの名無しさん:2009/09/05(土) 19:05:57
だが俺は鈍重
214212:2009/09/05(土) 19:07:36
>>208
じゃなくて
>>209
な。
215デフォルトの名無しさん:2009/09/05(土) 20:09:01
>>211
Java魂 だけどEffectiveの前に読むレベルの本
216デフォルトの名無しさん:2009/09/05(土) 20:20:37
>>211
APIドキュメント読んだほうがましなぐらいの本
Javaチュートリアルのほうが無料で内容濃くてどこでも読める
217デフォルトの名無しさん:2009/09/05(土) 20:25:28
>>216
Effective Javaホントに読んだことあるのか?
218デフォルトの名無しさん:2009/09/05(土) 20:29:33
>>217
俺もその本はあんまり薦めんよ
219デフォルトの名無しさん:2009/09/05(土) 20:31:33
チュートリアルとそのリンクたどるだけでそこらに出てる本の内容は軽く超えるでしょ
入門書なんて日本語でしか読めない人向けだし
220デフォルトの名無しさん:2009/09/05(土) 21:15:57
Web上のチュートリアルがすばらしい具体例を一つお願い。
221211:2009/09/05(土) 21:19:33
>>212,>>215-216
ありがとうございます

>>217
昨日かったばっかりだから、まだ読んでいないよ
学生なのでお金がなかなか貯らないから、次に買う本を今のうちに決めたいと思ったわけ

今回はEffetive javaを買ったの理由は、知人に読んどけみたいな事を言われたからです
apach jakarta common関係の本がおもしろそうだったので買おうと思ったのですが、森博嗣の本が欲しかったのでやめました
以前から「java 魂」、「Javaネットワークプログラミングの真髄」あたりが気になっています
222デフォルトの名無しさん:2009/09/05(土) 21:30:55
> チュートリアルとそのリンクたどるだけでそこらに出てる本の内容は軽く超えるでしょ

効率良く情報を仕入れるための仕組みが「本」なわけで。


> 入門書なんて日本語でしか読めない人向けだし

意味不明。

223デフォルトの名無しさん:2009/09/05(土) 21:41:04
>>222
おまえは日本語すら読めないカスw
224デフォルトの名無しさん:2009/09/05(土) 21:46:43
日本語も読めない人でしたね
225デフォルトの名無しさん:2009/09/05(土) 21:54:24
>>222
英語も日本語も読めないだけでしょ
226デフォルトの名無しさん:2009/09/05(土) 22:02:51
そんなやつにはもう「ひまわり」しかないよ。
227デフォルトの名無しさん:2009/09/05(土) 22:24:31
Head First Java or Effective Java からcore java行ってオライリーのSwing本だな。
228デフォルトの名無しさん:2009/09/05(土) 22:38:04
日本人の書いた本はイマイチばかりだよ
Effectiveも日経SJCPのも全部日本人じゃない
229デフォルトの名無しさん:2009/09/05(土) 23:21:26
>>227>>228
APIdocとチュートリアルだけで10年目ですね私
一回も本読んだこと無いです
はっきり言って不要でした
230デフォルトの名無しさん:2009/09/05(土) 23:23:02
本に頼ってると技術的にも遅れを取るしね
書き写しは出来ないこの業界ですから
231デフォルトの名無しさん:2009/09/05(土) 23:42:05
>>229
はいはい、凄いでちゅね
232デフォルトの名無しさん:2009/09/05(土) 23:43:06
>>229-230
真髄まで知りたいならそれでいいんじゃないの。
といってもどうせこの板に来る鼻糞君たちは、「SQL叩いて今流行りのジャヴァだぜ!」「ジャバってないとバカだよね〜」が大半だと思いますけど・・・
233デフォルトの名無しさん:2009/09/05(土) 23:44:32
鼻糞乙
234デフォルトの名無しさん:2009/09/05(土) 23:48:26
>>229
それでどういうアプリ(ツール)作ったんですか?
まさか10年もやってるのに未だにアプレットでアニメーションとかなわけないですよね。
235デフォルトの名無しさん:2009/09/05(土) 23:58:37
俺も5年ぐらいだけど、本読んでないな

資格試験のために読んだだけw
236デフォルトの名無しさん:2009/09/06(日) 00:06:02
言語自体は別にいいんだけど
イディオムとかサードパーティ製のライブラリ使いたいときに
いちいちネットブラウジングするのが面倒になる
237デフォルトの名無しさん:2009/09/06(日) 00:40:38
>>234
なわけないよねw
いろいろ作ったよ
238デフォルトの名無しさん:2009/09/06(日) 00:49:03
布団に潜り込んで寝っ転がって読むのが好き
239デフォルトの名無しさん:2009/09/06(日) 00:55:54
>>237
無理しなくていいよw
240デフォルトの名無しさん:2009/09/06(日) 01:08:42
Java流のやり方とか、ありがちな問題への対処方法、
悪いコードを書かないためとか、教養とかそういう意味では
Effective Javaを読むのは必要。
シリアライズ、マルチスレッド、Enum、Generics、Annotation
などの機能について正しい認識を持つことが大事だしね。
やっつけ仕事するだけなら読む必要は全く無い。

英語のチュートリアルもいいけど、Java使ってる大半の現場で
英語まともに読める奴に出会ったことないんだが。

まあ、本を批判するのもいいけど、
それならきちんとURLの一つもかけないのかな。
これはすばらしい記事だったとか。
241デフォルトの名無しさん:2009/09/06(日) 01:16:55
I think that an article of ibm confuses some beginner programmers in java.
Probably some programmers agree with me.
242デフォルトの名無しさん:2009/09/06(日) 03:40:37
String image_gif [ ] = new String[64];
String image_gif_temp [ ] = {"panda.gif","midori.gif","hi.gif","nobasu.gif","ha.gif"};

System.arraycopy(image_gif_temp [ ], 0, image_gif [ ], 0, 5);

-----------------------------------
MyFirstApplet.java:141:.class' がありません。
System.arraycopy(image_gif_temp[],0,image_gif[],0,4);
MyFirstApplet.java:141: ')' がありません。
エラー 2 個

アプレットなのが原因でしょうか。
よろしくお願いします。
243デフォルトの名無しさん:2009/09/06(日) 04:08:48
141行目をコメントアウトしてもっかいやってみるとどうなる?
どっか括弧閉じ忘れてるんだと思う。

Javaは基本的に変数名らくだ型だよ。
image_gif_tempならimageGifTemp
244デフォルトの名無しさん:2009/09/06(日) 04:13:51
>>242
どこにそんな馬鹿な引数の渡し方をしている入門書があったんだ?
ちゃんと金を払って買ったJavaの入門書で一から文法を勉強し直せ。
245デフォルトの名無しさん:2009/09/06(日) 04:14:48
>>243
レスありがとうございます。

>>141行目をコメントアウトしてもっかいやってみるとどうなる?
コンパイル終了 (^−^;)

らくだ型」?
ちょいとぐぐって調べてみます。
246デフォルトの名無しさん:2009/09/06(日) 04:19:00
>>242
コードからみて>>142と同じ人なんだろうけど自分勝手に文法を妄想してはいかんよ
引数の中の変数に[]なんてなぜ付けようと思ったの
247デフォルトの名無しさん:2009/09/06(日) 04:20:31
>>245
変数の命名規則を調べるよりももっと大事なことを調べるべきだろうが
248デフォルトの名無しさん:2009/09/06(日) 04:27:26
image_gifという変数はString[]型
String image_gif[]というように宣言もできるけれど
これはあまり推奨されない書き方で
String[] image_gifと宣言した方がいいと思うよ
メソッドに渡す変数もString[]型を渡すのなら変数名だけを書くことになる
249デフォルトの名無しさん:2009/09/06(日) 04:27:31
おそらく書いた本人さえどう動くのか理解できないと推測される酷いコードがあっても、
「プログラムなんて動けばいんだろ!」と言ってくる奴を黙らす方法を知らない。
250デフォルトの名無しさん:2009/09/06(日) 04:34:22
>>239
精一杯の見栄張り乙
251デフォルトの名無しさん:2009/09/06(日) 04:36:19
というか実際動かしもしないで聞くか普通?
252デフォルトの名無しさん:2009/09/06(日) 04:38:06
> おそらく書いた本人さえどう動くのか理解できないと推測される酷いコードがあっても、
そういうコードは動いていてもたいてい正しく動いていないなw
253デフォルトの名無しさん:2009/09/06(日) 04:43:41
レスありがとうございます。

>>246
はい、142 です。
String image_gif [ ]  = 型  変数名
ですから、変数名は image_gif[ ]
となってしまいました。

>>248
とても納得できました。
以後String [ ] image_gif  にします。

以下でコンパイルできました。(意図のとおりできているかわかりませんが・・・)

String image_gif [ ] = new String[64];
String image_gif_temp [ ] = {"panda.gif","midori.gif","hi.gif","nobasu.gif","ha.gif"};

System.arraycopy(image_gif_temp,0,image_gif,0,4);←修正
254デフォルトの名無しさん:2009/09/06(日) 09:42:00
>>253
意図がわからんが、その場合ha.gifはコピーされない。
255デフォルトの名無しさん:2009/09/06(日) 10:52:12
問題が発生すると、全力で突破しようと思うから
その分野について結構詳しくなるね
これが修羅場ってやつか?
256デフォルトの名無しさん:2009/09/06(日) 11:57:56
あれ俺の修羅場と違う・・・
257デフォルトの名無しさん:2009/09/06(日) 12:40:20
>>254

はい。

String [] image_gif = new String[64];
String [] image_gif_temp = {"panda.gif","midori.gif","hi.gif","nobasu.gif","ha.gif"};

System.arraycopy(image_gif_temp,0,image_gif,0,5);

for(int i=0; i<64; i++){

icon[i] = new ImageIcon(image_gif[i]);
jbtn[i] = new JButton(icon[i]);


これをやりたい。
image_gif は 一部だけ指定する。 」
のに、
あらためて条件式で書き分けるのが面倒だな。」
と思ったんです。

imageicon は 一部しかインスタンス化?できずエラーになりましたけど、
思ったより手間がかかるなぁと感じてます。

imageiconが 引数が null なら、引数なしの場合で処理してくれれば
OKなんでしょうけど。
258デフォルトの名無しさん:2009/09/06(日) 12:58:16
>>257
もうちょっとデータ構造を見直せば
思ったより手間がかからなくなりそうだな
259デフォルトの名無しさん:2009/09/06(日) 13:21:14
>>255
そうそう、本は読まないがトライアンドエラーで無理やり突破
google先生に教えて貰った資料の力が一番でかいけどな
260デフォルトの名無しさん:2009/09/06(日) 13:26:34
>>259
でも資料が古かったりすると現在では推奨されていないやり方をやってしまったりするから、そこには注意な。
261デフォルトの名無しさん:2009/09/06(日) 17:32:26
参考書を一冊読み終わった初心者です。
次に読む本を探していて、立ち読みで次の2つに絞ったんですけど、良本でしょうか?

 a. Java完全マスターブック
 b. 15歳からはじめるJavaオンラインゲームプログラミング教室

bのほうはEclipseという環境を使用する前提で解説されているようですが、
パソコンが古くてNetbeansが重くて使い物にならなかったので、
Eclipseも動かなそうです。

Eclipseを使わないと動作しない、あるいは理解しにくいのでしょうか。

読んだことがある方のご意見をお待ちしています。
262デフォルトの名無しさん:2009/09/06(日) 17:55:59
学習の目的が解らない
263デフォルトの名無しさん:2009/09/06(日) 18:14:16
ノートユーザーでないなら、5万円以下でも買えるメモリ2GBのCore2マシンに
買い替えをお勧めしよう。Windows7UPG対象品の奴。
ノートでも8万出せば買える。
264デフォルトの名無しさん:2009/09/06(日) 18:22:00
戻り値が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();

ではどちらが早いですか?
265デフォルトの名無しさん:2009/09/06(日) 18:28:36
>>264
同じ
266デフォルトの名無しさん:2009/09/06(日) 18:45:24
>>261
EclipseとかNetBeansを使えば、本質的でない部分(コンパイルのやりかたとか)
を人任せにできる。
初心者が気軽に触ってみるためには不可欠に近い。
267デフォルトの名無しさん:2009/09/06(日) 18:56:37
>>263 >>266
アドバイスありがとうございます。
そうですか…。今新しいパソコンを買える状況ではないので…(涙)


読んだ方のレビューもどうぞお願いします。
268デフォルトの名無しさん:2009/09/06(日) 19:23:11
パソコンを買い換えなくとも、メモリを2GBくらいまで増設すればだいぶ軽くなる
高々数千円だし、本を買うよりも優先するべき
269264:2009/09/06(日) 19:26:55
>>265
トンクス
270デフォルトの名無しさん:2009/09/06(日) 19:34:08
>>268
現在256MBで、最大384MBなんです。
128MB増やすだけで使えるようになるんでしょうか。
NetBeansはサンプルを開くだけでしばらく時間がかかりました。
271デフォルトの名無しさん:2009/09/06(日) 19:36:05
DDR2入れれるPCじゃなさそうだからこまる
272デフォルトの名無しさん:2009/09/06(日) 19:39:03
>>261
どちらも読んだことはないが、Java完全マスターブックは
古いのでやめた方がいい。
273デフォルトの名無しさん:2009/09/06(日) 19:40:59
むかし親が所有していた2001年製のSOTECのノートがそのくらいの性能だったな
PC100-SODIMMだった気がしますよwww
274デフォルトの名無しさん:2009/09/06(日) 19:42:15
そりゃ、流石にIDEは諦めろ、WindowsXPすら微妙なレベル
我慢してテキストエディタでやるべき
あとSwingとかGUI系は諦めたほうが良いと思う

恐らくは7−8年くらい前のノートPCだろ?
128MBの専用増設メモリ探すだけで大変だわ
1万程度でいいから中古PC買ってメモリ増設、中古のモニタ買っても2万程度。
よくPCを買い換える友達いるなら適当に古いマシンもらうべき
275デフォルトの名無しさん:2009/09/06(日) 19:50:28
cel 2.6G mem 256Mでeclipse動かしてたけど苦労した。
いまはオクタコアが2個あっておいしいです。
276デフォルトの名無しさん:2009/09/06(日) 19:54:49
時代を感じるね
277デフォルトの名無しさん:2009/09/06(日) 19:55:11
オタクコア に見えた
278デフォルトの名無しさん:2009/09/06(日) 20:01:22
>>272
5年前の本だと、今では使えないような技術だったりするんでしょうか。
既に読み終えた参考書は幸い昨年の本でした。

>>274
対応したメモリは見つかりましたが、128MB増は効果が低いと思って買ってません。
最初からXPが入ってて、なんとか動いてます。

Javaの勉強ではCPadっていうソフトを使って勉強してますが、これは軽いので
ちゃんと動きます。
Swingも簡単なものしか試してませんが、動きますよ。
279デフォルトの名無しさん:2009/09/06(日) 20:10:33
>>264ではないが

static private String addString(){
  return "abcde" + "fghij" + "klmno" + "pqrst" + "uvwxy";
}



static StringBuilder sb = new StringBuilder();
static private String appendString(){
  sb.delete(0,25);
  sb.append("abcde");
  sb.append("fghij");
  sb.append("klmno");
  sb.append("pqrst");
  sb.append("uvwxy");
  return sb.toString();
}

をたくさん呼び出して時間を計ったら、上の方がだいぶ早かったんだけど
何か間違ってる?
280デフォルトの名無しさん:2009/09/06(日) 20:11:39
Java SE5の頃よね。5年前って。
281デフォルトの名無しさん:2009/09/06(日) 20:13:34
>>279
>return "abcde" + "fghij" + "klmno" + "pqrst" + "uvwxy";

この部分最適化されるからだろ
282デフォルトの名無しさん:2009/09/06(日) 20:16:12
>>279
たくさんって何回だ?
数百回程度じゃ大差ないよ

>>278
動かすだけなら動く、ストレス無く動かせて開発できる話とは別の話
283デフォルトの名無しさん:2009/09/06(日) 20:30:09
>>279
文字定数の+演算子による結合はコンパイル時に
結合されると言語仕様に規定されている。
"abc" + "def" == "abcdef" // 必ずtrue

たまにこういうのまでStringBuilderに書き直せ、
とか言う奴いるんだけど、なんなのあれ…
284279:2009/09/06(日) 20:31:28
>>282
100万回回して、System.nanoTime() で計って二桁ぐらい違うけど
二桁 [ns] ぐらいなら誤差の範囲か すまん
285281:2009/09/06(日) 20:32:37
言語仕様では「結合してもよい」だったと思うけど。
たいした違いはないが。
286279:2009/09/06(日) 20:36:56
>>281,283
ぬぉ それだったみたい
文字列を変数にしたら append の方が三割ほど早くなった
287デフォルトの名無しさん:2009/09/06(日) 20:38:03
jadで逆コンパイルすればおk
288デフォルトの名無しさん:2009/09/06(日) 20:39:46
>>285
それじゃあ大した違いになるし、結合される、ってことでOKだったと思う。
文字列定数は同じ内容なら同一のインスタンスを指すことになってる。
だから文字列定数のみ使っているという限りでは==で比較してもよい。

まあこれでも見てくれ。
http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.10.5
>Strings computed by constant expressions (§15.28) are
>computed at compile time and then treated as if they were literals.
289デフォルトの名無しさん:2009/09/06(日) 20:47:20
メジャーバージョンの小さい昔の eclipse などの統合環境ならメモリ少なくても動く
290デフォルトの名無しさん:2009/09/06(日) 20:50:23
eclipse.iniのJVMのメモリ量でも気づかずに
作業してる奴がいるぐらいなんだから
最近のでも大丈夫じゃね?
291261:2009/09/06(日) 20:52:29
みなさん、いろいろなアドバイスをどうもありがとう。

とりあえず「15歳から〜」の本を買って読むことにします。

>>289さんの小さい昔のやつを試しに入れてもダメだったら、
読書だけで頭でっかちになって
新パソコン購入後に実際に動作させてみます。
292デフォルトの名無しさん:2009/09/06(日) 20:55:47
CPadで入力して動かすことはできるよね。
初心者はEclipseみたいなIDEを使ったほうがいいって言うけど、
初心者だからこそ全部手動でやったほうが身につくと思う。
293デフォルトの名無しさん:2009/09/06(日) 21:02:36
最初はコマンドプロンプトで作業するのは有益だと思うよ。
結局、どうやって何が動いてるか分からないと意味ないからね。

でもそれは最初だけで後はEclipseでいい。
特に文法エラーなんかで数時間悩む意味はない。
即時エラー教えてくれるのは便利。
294デフォルトの名無しさん:2009/09/06(日) 21:04:23
初心者レベルなら、身についても仕方ないんじゃない?
295デフォルトの名無しさん:2009/09/06(日) 21:09:30
誰でも最初は初心者なのに、ちょっと上達すると初心を忘れて偉そうな気持ちになって上から物を言っちゃうんだよね
296デフォルトの名無しさん:2009/09/06(日) 21:10:51
プログラミングの基礎を覚えたいならエディタ+コンパイラでも十分
プログラムでなんか作ってみたいならばIDE使った方がいい
コンパイルエラーはさっさと教えてもらい修正する方がモチベーションが持続する
297デフォルトの名無しさん:2009/09/06(日) 21:11:57
>>290
それは起動だけなら充分だろうが、その後の作業がもっさりじゃね?
俺としては、みりんなしのバージョンがオヌヌメ
298デフォルトの名無しさん:2009/09/06(日) 21:19:22
>>283
> なんなのあれ…
ただの馬鹿と思っておk。
299デフォルトの名無しさん:2009/09/06(日) 21:40:33
携帯から失礼します
GUIにスプレッドを使いたいのですが、フリーか評価版で何かありませんか
300デフォルトの名無しさん:2009/09/06(日) 21:42:34
>>280
いまJava SE5の本で勉強すると問題ある?
301デフォルトの名無しさん:2009/09/06(日) 21:49:08
>>270
それだとテキストエディタ+DOS窓+手動コンパイルでいいんでない?
実際IDEはGUI作るときは必要になるけど、java.io, java.net使う程度とか小物ツール(自作Base64とか)を多く作るならエディタだけで十分だったりする。
機能を分けていってクラスが10個ぐらいになるとIDEが欲しくなってくるけどね。
小物ツールなら例えばアプレットでアニメーションなんかクラスは3,4個(多くて合計1000行)でしょ。
302デフォルトの名無しさん:2009/09/06(日) 21:51:30
>>300
言語仕様でいえば問題なし。4は問題外だが。
303デフォルトの名無しさん:2009/09/06(日) 21:52:45
そんな中Java1.3が開発言語の現在の勤務先。
304デフォルトの名無しさん:2009/09/06(日) 21:59:54
>>300
6 は劇的な変更は無いね。高速化パッチの親玉。

Java SE 6 の互換性
http://java.sun.com/javase/ja/6/webnotes/compatibility.html

大きな変更としてはせいぜいコレクションが拡張されただけ。
Collections Framework の拡張機能
http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/collections/changes6.html
>140 のArrays#copyOfRange()も1.6で追加された新機能の一つ。
305デフォルトの名無しさん:2009/09/06(日) 21:59:58
Java1.4のリファレンスをもらったんだけど問題あるかな。

java.lang
java.io
java.util
java.net
java.nio
java.math

だけの簡易リファレンスなんだけど。
306デフォルトの名無しさん:2009/09/06(日) 22:00:22
>>302
d
307デフォルトの名無しさん:2009/09/06(日) 22:02:30
>>304もありがと、チュッ♥
308デフォルトの名無しさん:2009/09/06(日) 22:07:45
>>305
1.4 -> 1.5 で総称型が追加されたため、はっきり言って「古い」という問題が。
特にjava.utilのコレクション周りに関して壊滅状態じゃないか?
309デフォルトの名無しさん:2009/09/06(日) 22:29:04
public class Hoge extends JPanel {

public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new Hoge());
frame.pack();
frame.setVisible(true);
}

private JScrollBar scrollBar = new JScrollBar(Adjustable.VERTICAL);

public Hoge() {
setBackground(Color.white);
setPreferredSize(new Dimension(300, 300));

add(scrollBar,BorderLayout.EAST);
}
}
なんで、スクロールバーが右側にならないんですか
310デフォルトの名無しさん:2009/09/06(日) 22:39:12
根本的にJScrollBarの使い方がおかしい
311デフォルトの名無しさん:2009/09/06(日) 22:53:47
リテラルが増えて旧式って言うなら、次の1.7が出ちゃうと1.5, 1.6なんかも旧式ってなっちゃうよ。
1.7の言語(文法)リテラルは結構増えてrubyのようにカオスってるから。
312デフォルトの名無しさん:2009/09/06(日) 22:56:31
>>303
ブラック派遣乙
313デフォルトの名無しさん:2009/09/06(日) 23:15:01
リテラルって何のこといってんのかと思ったら予約語のことか。
314デフォルトの名無しさん:2009/09/06(日) 23:18:20
>>275
スレとは関係ないが8コアCPU2発って何使ってるん?
315デフォルトの名無しさん:2009/09/06(日) 23:24:22
ていうか、次のリリースではクロージャはいらなかったけど、かわりに文法(言語)リテラルを多数サポートして
map["key1"]="val1"とか、map={key: "val1", k:"v"....,}とかjsみたくなる。
だからスクリプトみたいな現代風なコードになるから5,6は少なくともコード上では旧式(冗長)になるんじゃないかな。
316デフォルトの名無しさん:2009/09/06(日) 23:34:45
流石に7がリリースされても未だに1.4を引きずっている業界で導入されるのは先だろうなぁ
317デフォルトの名無しさん:2009/09/06(日) 23:35:04
>>305
いらない。
http://java.sun.com/javase/ja/6/download.html
から落とせるドキュメントに必要なものは一通り入ってる。
318デフォルトの名無しさん:2009/09/06(日) 23:36:25
SAStruts
でフレーム分割を扱う方法を教えてください
HTTPステータス 400 - Direct access for JSP is not permitted.
と表示されてしまします
319デフォルトの名無しさん:2009/09/06(日) 23:43:27
メーリングリストで質問しろ
320デフォルトの名無しさん:2009/09/06(日) 23:59:51
Javaってマルチスレッドだから、同期化に気をつかわなければなりません。
同期化が問題なくできているかは、コードレビューで確認するしかないのでしょうか?

単体テストか結合テストで何らかのツールを用いて確認することは無理ですか?
321デフォルトの名無しさん:2009/09/07(月) 00:04:26
Javaはマルチスレッドではなく、マルチスレッドに設計すればマルチスレッドで動くだけ
322デフォルトの名無しさん:2009/09/07(月) 00:05:59
>>321
アホじゃあるまいし。それくらい理解しています。
323デフォルトの名無しさん:2009/09/07(月) 00:12:43
なさげ
でも一応エージェントつかえばデッドロックは検査できるっぽい
324デフォルトの名無しさん:2009/09/07(月) 00:37:49
>Javaってマルチスレッドだから、同期化に気をつかわなければなりません。
これはアホの文章だな

それはさておき、マルチスレッドのテスト技法はぶっちゃけない。
コードレビューというよりは設計の段階から安全に作る以外の方法はない
詳しくはJava変更処理プログラミングって本を嫁
325デフォルトの名無しさん:2009/09/07(月) 00:59:41
ロック用に専用のオブジェクト作ればよくね?
326デフォルトの名無しさん:2009/09/07(月) 01:06:34
Threadを生のまま使わないのが早道
327デフォルトの名無しさん:2009/09/07(月) 01:07:22
タイミングに起因するテストはまず無理
328デフォルトの名無しさん:2009/09/07(月) 01:07:52
JAVAのIDEで名前が思い出せないものがあります
思い出させてください
糞士痛のApworkusoの続バージョンのような雰囲気のIDEでした
329デフォルトの名無しさん:2009/09/07(月) 01:10:58
>>309
ヒント。Hoge のレイアウトは?
330デフォルトの名無しさん:2009/09/07(月) 01:15:14
328じゃないけどJava の古いIDEで思い出したのがTeikado・・・ググっても14件。
スペルまちがってる?
331デフォルトの名無しさん:2009/09/07(月) 01:16:20
最近の人なので知りません
332デフォルトの名無しさん:2009/09/07(月) 01:18:27
質問する気があるなら正しい名前書けよ
想像するにApworksとかそういう名前だと思うが
333デフォルトの名無しさん:2009/09/07(月) 01:25:24
>>332
うんいい感じ
そしてその数年後の記憶も書いてください
334デフォルトの名無しさん:2009/09/07(月) 01:33:09
Teikadoではなかったと思います
大文字アルファベット3文字だった気がしますが自信がないです
335318:2009/09/07(月) 01:56:36
仕方ないのでTilesとc:importを組み合わせてみようと思います
336318:2009/09/07(月) 02:18:49
やっぱダメだ
相対リンクがおかしくなるみたい
フレームでなんとかしないと
http://www.ibm.com/developerworks/jp/java/library/j-jsp06173/
337デフォルトの名無しさん:2009/09/07(月) 02:33:21
結局iframeにした
チラウラすまそ
338デフォルトの名無しさん:2009/09/07(月) 02:35:36
>>330
teikade のこと?
339デフォルトの名無しさん:2009/09/07(月) 07:17:33
InterStageだろ
340デフォルトの名無しさん:2009/09/07(月) 10:25:03
keyからvalueを得るの反対の事をするにはどうしたらいいですか?
341デフォルトの名無しさん:2009/09/07(月) 10:32:25
valueをkeyにしておく
342デフォルトの名無しさん:2009/09/07(月) 10:34:04
そうするとkeyからvalueが得られません。
343デフォルトの名無しさん:2009/09/07(月) 10:35:15
両方作れやw
344デフォルトの名無しさん:2009/09/07(月) 10:42:13
keyからvalueを得るインスタンス名がaとしたら
valueからkeyを得るインスタンス名を何にしたらいいのですか?
一つにまとめられればこの問題を解決できると考えたのです。
345デフォルトの名無しさん:2009/09/07(月) 10:44:05
aなんていう意味を持たない名前を付けるのはやめれ
346デフォルトの名無しさん:2009/09/07(月) 10:44:59
aというのは例えばです。
この場合わかりやすくpoolとでもしておきましょうか。
347デフォルトの名無しさん:2009/09/07(月) 10:54:41
同じvalueの場合は複数のkeyが取れるようにすんの?
348デフォルトの名無しさん:2009/09/07(月) 10:57:46
全単射です。
349デフォルトの名無しさん:2009/09/07(月) 11:02:57
reversePool
350デフォルトの名無しさん:2009/09/07(月) 11:05:38
ありがとうございました。
351デフォルトの名無しさん:2009/09/07(月) 11:12:37
1:1対応ならvalueのインスタンス変数にkeyもたせれば解決だろ、アホ?
352デフォルトの名無しさん:2009/09/07(月) 11:20:12
valueがStringとかなら_
353デフォルトの名無しさん:2009/09/07(月) 11:21:59
アホ杉
class ValueWrapper {
Key key;
String value;
}
Map<Key, ValueWrapper> map;
終了
354デフォルトの名無しさん:2009/09/07(月) 11:25:45
>>353
ValueWrapperからkeyとvalueは取れるが、
valueからkey取れなくね?
355デフォルトの名無しさん:2009/09/07(月) 11:27:23
keys()からvalueで取得するの追加すりゃいいだけだろ
356デフォルトの名無しさん:2009/09/07(月) 12:31:14
頭いいけど、自分で考えたわけじゃないだろ。
357デフォルトの名無しさん:2009/09/07(月) 14:07:01
改行は\r\nか\nのどちらを使えばよろしいですか?
358デフォルトの名無しさん:2009/09/07(月) 14:14:30
>>357
システム使うのが一番安全
359デフォルトの名無しさん:2009/09/07(月) 16:41:49
>>356
おまえは頭悪すぎ
たぶん向いてないから止めれ
360デフォルトの名無しさん:2009/09/07(月) 16:53:01
みんな最初は業務からjava始めたの?

最近業務で弄ってるんだけど教えてくれる人がいない
というか、新人教育みたいなのもないから、どうしようもなくて・・。
何から勉強していいものやらね・・。

覚えたいのは山々なんだけど、うまくいかなくてイライラするんだよなー。
なんかいい方法ないかな?
たぶん入門書嫁っていわれるだろうけどw
361デフォルトの名無しさん:2009/09/07(月) 16:55:22
>>360
俺はHelloworldからはじめて、とりあえず書いてJavaDocだけでいけたよ
本買ってもあんまり意味はない
無論、他の言語の基礎がないなら基礎から覚える必要はあるけど
362デフォルトの名無しさん:2009/09/07(月) 17:00:11
本を嫁、
後は勉強会とかセミナーに参加
自力でやれないことはないが効率悪すぎる
363デフォルトの名無しさん:2009/09/07(月) 17:01:34
>>362
それは君が他力本願だからだよ。
独学の方が効率がよい。
君の限界値もたかが知れているね。
364デフォルトの名無しさん:2009/09/07(月) 17:04:09
特に初学者の独学では何が重要で何を優先すべきかの判断ができない
365デフォルトの名無しさん:2009/09/07(月) 17:08:49
>>364
現場を知らない君が語ることじゃないね。
366デフォルトの名無しさん:2009/09/07(月) 17:19:44
上から目線w
367デフォルトの名無しさん:2009/09/07(月) 17:43:18
そりゃ事実上だもの
368デフォルトの名無しさん:2009/09/07(月) 18:07:17
俺がJavaプログラマとして未経験で入社したころ、上司に

「アセンブラや機械の構造を知っていたほうが、後々上達するんだ!」

っていわれて、無理やりやらされたけど、その後出てくる言語(PHPやC#、VB.NET)
やってるとなんにもアセンブラなど役に立たん。
369デフォルトの名無しさん:2009/09/07(月) 18:12:19
少なくともJavaにアセンブラの知識が生きることは無さそうだな…
生きる所というより生かす所がない
370デフォルトの名無しさん:2009/09/07(月) 18:12:55
>>368
ないなw
先輩にコボラーとかいそうw
371デフォルトの名無しさん:2009/09/07(月) 18:20:51
アセンブリを勉強したらメモリの仕組みがわかるから、
他の言語を学ぶ際に多少理解の助けになるってことでしょ。

あと、高速な動作を要する場合に、インラインアセンブラとかで役立つことはあるね。
372デフォルトの名無しさん:2009/09/07(月) 18:21:59
Java関係ねえじゃん
373デフォルトの名無しさん:2009/09/07(月) 18:22:33
Javaにインラインアセンブラなんてあったの?
10年やってきて初めて聞いたわ。
374デフォルトの名無しさん:2009/09/07(月) 18:23:16
いやそういうのいいから
375371:2009/09/07(月) 18:25:15
Javaに関しては>>369に同意ね
376デフォルトの名無しさん:2009/09/07(月) 18:25:22
Cだろ
JNIでも使わせる気かよw
377デフォルトの名無しさん:2009/09/07(月) 18:26:21
言語の性格もアセンブラって手続き型だろう?
378デフォルトの名無しさん:2009/09/07(月) 18:32:25
てかプロは写し書きしてたらいかんだろw
379デフォルトの名無しさん:2009/09/07(月) 18:55:03
独学はやめとけ
380デフォルトの名無しさん:2009/09/07(月) 19:03:47
>>379
無職の君ならそうだろうけど、
彼は業務から覚えることが可能だからね。
所詮教わった知識なぞ現場じゃ役に立たないよ。
世間を知りなさい。
381デフォルトの名無しさん:2009/09/07(月) 19:38:59
どうでもいいが独学で配属されるPGって面倒だよな
無駄にプライドあったり、俺ルールで書こうとしがち
382デフォルトの名無しさん:2009/09/07(月) 19:42:42
質問・相談スレではなく雑談スレになってるね
383デフォルトの名無しさん:2009/09/07(月) 19:42:44
>>381
それは独学関係ないよ。
君の薄汚い心のこじつけだよ。
コーディング規約守れないのは独学だろうと人間として歪んでいるだけさ。
君の塵の欠片にもすぎない固定観念なんて、なんて愚かだろうと思うでしょ。
それだけのことを君は言っているのだよ。独学だからコーディング規約守らないなんてどこに根拠あるの?
君の皆無に等しいサンプルで簡単に決めつけないほうが身のためだよ。
384デフォルトの名無しさん:2009/09/07(月) 20:01:48
>>469>>471は優秀な翻訳者。
385デフォルトの名無しさん:2009/09/07(月) 20:03:01
誤爆りましたスマソ
386デフォルトの名無しさん:2009/09/07(月) 20:06:42
エクリプスはリファクタリングが凄い
387デフォルトの名無しさん:2009/09/07(月) 20:19:42
たしかアセンブラ(bytecodeだけど)あったような・・・次のリリースからだったかな・・・
388デフォルトの名無しさん:2009/09/07(月) 20:30:04
色々沸いているのがいるな
389デフォルトの名無しさん:2009/09/07(月) 20:33:35
エクリプスと読むことを今知った俺
390デフォルトの名無しさん:2009/09/07(月) 20:38:29
>>348-356
いまさらレスだけど、双射ならApache Commonsの
BidiMap(bidirectional Map)使えば済む話。
http://commons.apache.org/collections/api-3.1/org/apache/commons/collections/BidiMap.html

>>360
俺は中学から始めた。もちろん本だけ見て。

>>368
アセンブラやってJVMの仕様を勉強すれば完璧じゃないだろうか。

>>381
勉強もしないでVB風にif(condA){if(condB)}とか
他言語で身についたカスコード書かれるよりは数千万倍マシ。
391デフォルトの名無しさん:2009/09/07(月) 20:50:41
jusched.exeっていうのが頻繁に何かしようとして
ファイアウォールが反応します。
これってアップデート関係のファイルですよね?
月1回の設定にしてるはずなんですけど・・・。
392デフォルトの名無しさん:2009/09/07(月) 20:51:01
ワームだね
393デフォルトの名無しさん:2009/09/07(月) 21:08:31
MicroSoftUpdateに64bitのIEでアクセスすると
勝手に32bitのIEの方が起動するんだけど
Javaであんなことできるん?Javaじゃ無理だよね。
394デフォルトの名無しさん:2009/09/08(火) 00:26:40
>if(condA){if(condB)}とか
例えになんだがこれ書いた人はどういう意図で書いてるん?
395デフォルトの名無しさん:2009/09/08(火) 00:41:26
しらねーよ
condA部分でなんらかの処理してるんじゃね?
396デフォルトの名無しさん:2009/09/08(火) 00:43:18
if(condB)の前にあった文を削ったとか
397デフォルトの名無しさん:2009/09/08(火) 00:47:44
>>395
ああ、旧VBは条件文を全部評価しちゃうのな。

condAでコネクションを開いて結果を取得、condBはコネクションを前提って場合に、
condA&&condBってしちゃうと、condAがfalseでもcondBを処理しちゃうんだっけ。
398デフォルトの名無しさん:2009/09/08(火) 00:53:11
condでいろんな処理すんなよ、面倒だから
399390:2009/09/08(火) 01:35:52
>>394,397,398
別に大掛かりな副作用は無くてもOK。こういうコードとか典型的。
if(a != null){
 if(a.length > 0){
 }
}
ちなみにifのネストはEclipseのCtrl+1で一発で修正できるよ。
大概、VB前歴の人は論理演算を整理して書けないことが多い。

あとCの人とかだと変数宣言メソッドの先頭に持ってくるとか、
final理解できないとか、変数に無駄な初期値与えちゃうとかやるね
(そのせいで変数を代入していないパスに気づけないとか)。

スレ違いなのでそろそろおしまいにしよう。
400デフォルトの名無しさん:2009/09/08(火) 05:48:02
それって副作用のある式を条件式に含めるのが悪いんじゃ・・・
401デフォルトの名無しさん:2009/09/08(火) 06:21:21
>>400
副作用が無くても同じだし、副作用があってもjavaでは困ること無いでしょ。
402360:2009/09/08(火) 09:10:36
まだ上司がいるって環境のがいいですよね・・・。
私も業務で使うからってことで、新たに始めましたけども。
全部ネットからであったり、創るNetbeans見たりで
動くプログラムは多少なり創れる様にはなったんだけどさ。
やっぱり早く動かそうとか、ちゃんとしたクラス分けとか
そういうとこが分からないんだよね。
オブジェクト指向っていうか、そのあたりが理解できてないのか・・・・

どっかの誰かが言ってたみたいに、どこに重点を置いて、
どの場所にどういう風にコーディングすればいいかわかんないんだよねー。

確かに動くには動くんだけどね・・・

はあ宇津田志納
403デフォルトの名無しさん:2009/09/08(火) 09:43:30
なんでもかんでもオブジェクト指向のせいにスンナ
オブジェクト指向なんか意識しなくても、効率よく組んでいれば自然にオブジェクト指向っぽく書ける
404デフォルトの名無しさん:2009/09/08(火) 10:05:38
アセンブラ信者か
Javaには珍しいな
405360:2009/09/08(火) 10:08:17
>>403
オブジェクト指向のせいにしてるつもりはないんだけね。
でも、そこも含めて理解しないと今後伸びないかと思って。
っていう話です。
要は未経験でいきなり創れって言われて
創ってみたら基礎は入ってないけど動くのだけはなんとか
サンプルを見つつかつかつできるよ。
っていう程度。

もっと判るようになればなぁ。って思う。
406デフォルトの名無しさん:2009/09/08(火) 10:23:30
解ってるなら愚痴ってないで勉強しろ
407360:2009/09/08(火) 10:24:11
406>>
ちょこちょこ見ながら業務中。
というか開発中。

がんばるさ。ありがとうー
408デフォルトの名無しさん:2009/09/08(火) 14:22:53
どの言語の基礎もない奴は迷惑極まりないだけ
言いわけは「動くから問題ない」と表面上だけの薄っぺらいことを言う
409360:2009/09/08(火) 16:31:52
>>408
だからどうすればいいかと聞いてたんだけど
問題ないと思ってないから質問したんだが。
俺が間違ってたか?
410デフォルトの名無しさん:2009/09/08(火) 16:37:25
>>409
お前には言っていない
自覚があるお前は伸びる
将来有望だろうな
411デフォルトの名無しさん:2009/09/08(火) 16:38:08
>>409
とりあえず、できる人のデスクの上に載っている本のタイトルをメモしてきて
本屋で立ち読みしてみれば?
リファレンス的なものは必要じゃないの?
412デフォルトの名無しさん:2009/09/08(火) 17:03:34
>>409
だから独学せずに本を読めと
ある程度の基礎が解ったらソース嫁
413360:2009/09/08(火) 17:12:58
>>410
勘違いすまん。
頑張っていきたいのは確かなんだ。
会社を休職して専門にいこうかも迷ったけど
基礎はできても業務では生かせないだろうから
それなら独学で っていう心理にたどり着いた

>>411
できる人がいればできる話・・・orz

>>412
本も読んでみないといけないな。
やっぱりちょっと難波のジュンクでもいって見てくる。
とりあえず今日このスレで情報収集した本とか参考にしてみるよ。



高卒でIT界に入りたくてはいったから苦労するのは目に見えてたけど
ここが第一の正念場だよな。
414360:2009/09/08(火) 17:13:39
連投すまん。

正直ここまで励まされるとは思ってなかった
ありがとう
415デフォルトの名無しさん:2009/09/08(火) 17:15:08
勉強会に出ることを勧めるわ
技術は勿論だが、なるべく早く人脈を作るべき
416デフォルトの名無しさん:2009/09/08(火) 17:17:43
上達の近道は他人のソースを見ること

なんて格言があったような気がするが、今捏造したかもしれん
JAVAの標準ライブラリとかapatchのソースとか見てると面白いよ
417デフォルトの名無しさん:2009/09/08(火) 17:18:51
>>413
俺も高卒でITだよw
今はフリーでやってるけど。
418360:2009/09/08(火) 17:36:30
>>415
それも考えてるけど基本理解しないとSunとかは敷居が高すぎるしね・・・。
ITスクールもどこにいっていいものやらって感じかな。

>>416
ほうほう。いろいろ見てみるよ。d

>>417
俺は社長にスカウトされて入った感じ。
メイン業務はPGの仕事ではないけど
そっちを新規でやるからってことでやってる感じ。
でも、同じ様な境遇って案外いるよね。
親近感沸いた。
419デフォルトの名無しさん:2009/09/08(火) 18:23:41
>>404
アセンブラ信者はJavaVMを理解してるのだろうか?
420デフォルトの名無しさん:2009/09/08(火) 18:24:40
>>413
まあ、高卒なら周りの期待も即戦力ってことはないから、これからでいいだろ。
421デフォルトの名無しさん:2009/09/08(火) 18:26:21
>>419
そもそも信者じゃないだろ
レス嫁ドカス
上司に言われたってだけってあるだろ
422デフォルトの名無しさん:2009/09/08(火) 18:58:31
JEditorPaneのコード(JDK)を見ていたら、
JEditorPane.this と hyperlinklistener.classってのをコードの中でみつけた
何なのこれ?
423デフォルトの名無しさん:2009/09/08(火) 19:01:08
>>422
とんでもない素人だな
424デフォルトの名無しさん:2009/09/08(火) 19:08:39
前者はクラスを明示したthis, インナークラスなどで使われる
後者はgetClass() のようなもの
425422:2009/09/08(火) 19:23:48
>>424
レスありがとうございます
>後者はgetClass() のようなもの
これって、リフレクションとかで使っているような記憶があるのは気のせいですか
確かな記憶ではないです
426デフォルトの名無しさん:2009/09/08(火) 20:48:24
アセンブラで全部作るとか
効率悪い素人の典型だろ
427デフォルトの名無しさん:2009/09/08(火) 20:58:32
携帯からですみません。

JSF2ってリリースされてました?
428デフォルトの名無しさん:2009/09/08(火) 21:33:38
Treeset setItems = new TreeSet();
List<Customer> item = customer.getCustomers(num);
setItems.addAlls(items);

List<Custome>で取得した itemに重複した値があるから
Treesetで重複を取り除こうと思ったのにclasscastexceptionが
でてしまった。
はぁ・・・こんなところでつまずいてしまっている。。。

429デフォルトの名無しさん:2009/09/08(火) 22:07:51
>>428
そうですか。
よかったですね。
430デフォルトの名無しさん:2009/09/08(火) 22:11:19
何が良かったってんだよ
適当ぶっこいてると潰すぞごるぁ
431デフォルトの名無しさん:2009/09/08(火) 22:19:30
containsでチェックしながら1つづつ詰めればいいだろ・・・
432428:2009/09/08(火) 22:22:31
うーん、自己解決だ。
compareToか。
433428:2009/09/08(火) 22:26:24
>>431
containsですか、ありがとうございます。
434デフォルトの名無しさん:2009/09/08(火) 22:54:55
何だこいつww
これが噂の「雑魚」?w
435デフォルトの名無しさん:2009/09/08(火) 22:56:09
>>428
<Custome>
って何?
436デフォルトの名無しさん:2009/09/08(火) 23:00:21
重複排除したいだけで本当にTreeSetが必要かと小一時間…。

Tree系はComparableを実装した要素でないといけない。
やりたいこと的には、おそらくequalsもオーバーライドしないとだめ。
437デフォルトの名無しさん:2009/09/08(火) 23:40:50
TreeSetにジェネリックスが付いてないことについて、小一時間問い詰めたい
438デフォルトの名無しさん:2009/09/09(水) 14:35:10
JavaでCD-Rに記録するプログラム(ごく簡単なやつでいいですーフロッピーにコピーするみたいな感じのやつ)
を作りたいんですが、できますか?
439デフォルトの名無しさん:2009/09/09(水) 15:20:03
CD-Rに書き出すプログラムを起動することならできるよ。
440デフォルトの名無しさん:2009/09/09(水) 18:06:22
Java の仮想マシンには CD-R ドライブは搭載されておりません。ご了承ください。
441デフォルトの名無しさん:2009/09/09(水) 19:17:39
Windows版のJavaで使われているDirectXのヴァージョンはいくつなの?
442デフォルトの名無しさん:2009/09/09(水) 19:41:33
Javaの標準パッケージに3Dアクセラレータ関係ってあったっけ
OpenGLじゃね
443デフォルトの名無しさん:2009/09/09(水) 19:47:47
ないよ
Java3Dで選択できる
444デフォルトの名無しさん:2009/09/09(水) 19:52:26
Java2Dで使われるDirect3Dパイプラインのことじゃね
しかしバージョンは知らん
445デフォルトの名無しさん:2009/09/09(水) 20:27:22
JavaプログラムAprogをコマンドプロンプトで
java Aprog 1
java Aprog 2
java Aprog 3
.
.
.

とbatファイルで重複起動させたかったんですが
一つのプログラムが終了するまで次のプログラムを起動してくれません。
javawで起動しても駄目だったのですが、何か方法はありますか?

CPU使用率等の負荷の計測をしたいのですが・・・
446デフォルトの名無しさん:2009/09/09(水) 20:38:11
そりゃJavaの話じゃなくてコマンドプロンプトの話だろ
447デフォルトの名無しさん:2009/09/09(水) 20:54:45
なんですかね?
batじゃなくて手動でやるとできるんですよね
コマンドプロンプトの問題なのか・・・
448デフォルトの名無しさん:2009/09/09(水) 20:59:19
start java ~~
ってやれよ。
449デフォルトの名無しさん:2009/09/09(水) 21:07:48
極一般的なServletプログラムをtomcatに乗せて動かしてます。
リクエストがきて、処理が終了して、レスポンスが返るわけですが

HTTPの応答コード200になった時、
HttpServletResponseにcookieにJSESSIONID=[セッションID]がHTTPのレスポンスにのります。
セッションの管理に使われていることは存じておりますが、
このJSESSIONID=[セッションID]をHttpServletResponseからどうにか消したいです。
何か手段はありませんでしょうか?
(環境は変えない前提なのでどうにかプログラム内で対応の前提
クライアント側はcookieをサポートしたクライアントの前提)
450デフォルトの名無しさん:2009/09/09(水) 21:14:38
追記
Cookie cookie = new Cookie("JSESSIONID", "");
cookie.setMaxAge(0);
response.addCookie(cookie);

では消せませんでした。
451デフォルトの名無しさん:2009/09/09(水) 21:23:41
レスポンスそのものには触ることができるならラップしてしまえばいいだろう
452デフォルトの名無しさん:2009/09/09(水) 21:45:28
addじゃなく上書きすれば良いだけだろ
頭悪すぎ
453デフォルトの名無しさん:2009/09/09(水) 21:48:18
perlを久しぶりにちょろっと書いてみたけど、
javaの方がファイル関係の処理に時間がかかるのは気のせい?
454デフォルトの名無しさん:2009/09/09(水) 21:53:14
作り手が悪い
455デフォルトの名無しさん:2009/09/09(水) 21:54:26
SwingのWindow分割について教えてください。
Winsowを4分割したいと考えているのですが、これを実装しようとするとどのような方法があるでしょうか?
3Dモデラのメタセコイアのような、境界をドラッグすることで動的に各領域のサイズが変えられる、田の字型の画面を実現したいと考えています。

まず考えたのが、JSplitPaneでいったん左右に分けて、それぞれの領域をさらにJSplitPaneで縦に分割する方法ですが、
枠が左右で独立してしまい、縦に分割している境界をドラッグしても左右が一緒に動いてくれません。
イベントを拾って追従させることで高さをあわせる…というのも考えたのですが、
これだと実装があまり綺麗ではないですし、結局は分割を2回繰り返しているだけなので、
田の字の中心をドラッグしても(単なる左右間の分割線ですので)境界は横にしか動かせません。

何か、もっとスマートな実現方法はありますでしょうか?
456デフォルトの名無しさん:2009/09/09(水) 21:57:56
コードがないと一般論しか言えないけど、
他言語と比べての大きなオーバーヘッドはないはず。
457デフォルトの名無しさん:2009/09/09(水) 22:00:17
JInternalFrame使えば?
458453:2009/09/09(水) 22:00:33
>>454
やぱり、オブジェクトを作りまくっているクラスと比較しちゃだめだよな
perlは単純に正規表現だけのプログラムだったし
やっぱり、オブジェクトの生成ってコストかかってんだね
459デフォルトの名無しさん:2009/09/09(水) 22:00:58
JavaでC言語は作れますか?
460デフォルトの名無しさん:2009/09/09(水) 22:03:07
コンパイラを実装するって意味ならできるよ。
461デフォルトの名無しさん:2009/09/09(水) 22:03:16
C言語は作れないが、C言語のコンパイラかインタプリタなら作れる
462デフォルトの名無しさん:2009/09/09(水) 22:05:28
>>458
オブジェクトの生成コストなんてナノ秒のオーダーだが、いったいどんな事をしたら遅さを体感できるのか教えてくれ
463デフォルトの名無しさん:2009/09/09(水) 22:07:11
>>448
何それ!
464455:2009/09/09(水) 22:09:14
>>457
その場合は、たとえば領域が

AB
CD

というように分割されているとして、それぞれをJInternalFrameで表現する感じでしょうか?
その場合だと、「境界をドラッグして大きさを変える」という処理を行う際に
「Aの右端のドラッグを検知した場合、その情報を使ってBのサイズを動的に変更」
「Aの右下のドラッグを検知した場合、その情報を使ってBCDのサイズを動的に変更」
という処理は自分で書く必要がありそうな気がします。
田の字型を維持してくれるようなAPIが無いものかと思ったのですが、やはりその辺は自前で処理する必要があるでしょうか。
465デフォルトの名無しさん:2009/09/09(水) 22:10:51
コマンドプロンプトだしてstart /?って打とうな。
466デフォルトの名無しさん:2009/09/09(水) 22:13:25
start?
467デフォルトの名無しさん:2009/09/09(水) 22:13:54
>>451
ラップするというのがいまいちわかりませんが、全力でググってきます

>>452
同名でaddすれば上書きすると思ってました。
頭悪くてごめんなさい
明示的に上書きする方法があればご教授いただけると幸いです。
468デフォルトの名無しさん:2009/09/09(水) 22:27:13
>>465
まじ有難う
お陰で明日電車止めずに会社行けそうだわ
469デフォルトの名無しさん:2009/09/09(水) 22:35:16
どういった理由でJSESSIONIDが邪魔なのか後学のためにお教え願いたい。
470デフォルトの名無しさん:2009/09/09(水) 22:35:42
何故Fileクラスに簡単にファイルをコピーするためのメソッドがないのでしょうか?
検索するとFileChannelクラスがどうとかこうとか出てきました。
renameみたいな感覚でcopyとか出来ないんでしょうか?
471デフォルトの名無しさん:2009/09/09(水) 22:38:50
右クリック→コピー
472デフォルトの名無しさん:2009/09/09(水) 22:40:37
何でないのって言われたってさあ

なんでこの世に幽霊がいないの?って聞かれてるみたいで非常に馬鹿馬鹿しいんだが
473デフォルトの名無しさん:2009/09/09(水) 22:41:40
>>462
オブジェクトを生成しているから、全体の処理で1秒くらいかかっている(javaのコード)
でも、それを別にしてもコンソール上でperlを動かしたらめちゃくちゃ速かった気がする
コンソールに表示される文字列に騙されたのかな?
474デフォルトの名無しさん:2009/09/09(水) 22:43:48
技術者なら体感じゃなくて具体的な数値をまとめろよ
475デフォルトの名無しさん:2009/09/09(水) 22:44:38
>>470
Jakarta CommonsのFileUtils
476デフォルトの名無しさん:2009/09/09(水) 22:44:53
>クラス File
>ファイルおよびディレクトリのパス名の抽象表現です。

とあるように、Fileクラスが示すのはディスク上のファイルそのものではない。
だからコピーみたいな機能はない。
477デフォルトの名無しさん:2009/09/09(水) 22:44:56
>>470
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4032604
こんな理由で存在しない。

FileChannel src = new FileInputStream(file1).getChannel();
new FileOutputStream(fileDestination).getChannel().transferFrom(src, 0, src.size());
上のコード書くかCommons IO使おう。
478デフォルトの名無しさん:2009/09/09(水) 23:04:05
>>473
時間計ってないのかよwww
479デフォルトの名無しさん:2009/09/10(木) 00:27:41
クラスパスとビルドパスって何が違うのん?
480デフォルトの名無しさん:2009/09/10(木) 00:44:03
クラスパス=起動時
ビルドパス=コンパイル時
481デフォルトの名無しさん:2009/09/10(木) 09:23:07
ところで、IMEの切り替えできるの?
このオブジェクトを表示されたら半角→全角
とか。

Swingの文字列操作はできないっていうのを見つけたんだけど
いかんせんLastUpdateが2002年なもんで。
http://satoshi.kinokuni.org/tech/SwingTipsString.html

何か知ってる方いる?
482デフォルトの名無しさん:2009/09/10(木) 10:41:33
出来るよ
483デフォルトの名無しさん:2009/09/10(木) 11:07:23
>>482
ウホッ まじか

ほんとだ・・・ggったら普通にPukiwikiにあった
なんでさっき出なかったのかと思ったけど単に俺が寝ぼけてただけか。
484デフォルトの名無しさん:2009/09/10(木) 11:08:30
>>482
あとd
485デフォルトの名無しさん:2009/09/10(木) 16:41:28
>>478
まるっきり同じ処理で、しかも時間を計っていたらわざわざ書き込まないよ
486デフォルトの名無しさん:2009/09/10(木) 21:35:13
>>485
なんだ、ただのバカか
487デフォルトの名無しさん:2009/09/10(木) 21:54:53
485が書いたコードの品質が想像できて萎える
488デフォルトの名無しさん:2009/09/10(木) 22:26:29
doxygenってjavadocより良いの?
489デフォルトの名無しさん:2009/09/10(木) 22:41:55
専門学校の卒業研究のテーマで悩んでます
javaを使用したいと考えているのですがなかなかやりたい事などが思い浮かばないです
何かアイディアなどを教えてください。
490デフォルトの名無しさん:2009/09/10(木) 22:47:15
無難にAI付きオセロでも作ってろ
491デフォルトの名無しさん:2009/09/10(木) 22:52:48
就職したらJ2EEの基盤技術がわかってると重宝される。あとDBとか。

卒研のテーマとして面白さを出したいなら、ありがちではあるが
ゲームとネットワークのうまい融合を探ってみれば。

集合知AIとかOpenCVあたりはトピックとしての注目度は高いかも。
(面接で売りにできるよ)
492デフォルトの名無しさん:2009/09/10(木) 22:55:00
あ、OpenCVはPureJavaで完結しないけどJNI経由でたたくことは一応可能。

http://ubaa.net/shared/processing/opencv/
493デフォルトの名無しさん:2009/09/10(木) 22:55:15
アイデアマップとかアイデアエディタとかそれ系のうさんくさいやつ
494デフォルトの名無しさん:2009/09/10(木) 23:24:46
javaでOpenCVかー。集合知AIに一票。

java関係ないがwwwに強い人間が見るならXHTML2.0とHTML5.0の相違点となぜXHTML2.0WGが解散するのかっていうテーマはいいね。
この二つはWWWに与える影響が大きいのでこのテーマを正確に把握し自分なりの考えを示せるなら
WWWの将来ビジョンを見据えられる人材として評価されるかも知れん。
ただこれは卒論で収まる話じゃないね。
495デフォルトの名無しさん:2009/09/10(木) 23:30:48
集合知は本当にアイディア勝負になりそーだな
496デフォルトの名無しさん:2009/09/10(木) 23:37:38
wwwwwwwwww
497デフォルトの名無しさん:2009/09/10(木) 23:44:00
予想通りというか、Javaというよりはアルゴリズムの勝負になってないか
498デフォルトの名無しさん:2009/09/10(木) 23:47:51
だってJavaじゃないとできないことって別に…ね
499デフォルトの名無しさん:2009/09/10(木) 23:49:36
プログラムの価値なんて言語そのものに左右されるわけじゃないし。

やっぱ中身(アルゴリズム)勝負になるのはしゃーないのでは。
500デフォルトの名無しさん:2009/09/11(金) 02:35:24
java限定で>>492答えてるやつがいないんだからそんなもんよw
501デフォルトの名無しさん:2009/09/11(金) 03:33:37
>>494
w3cが既にグーグルにのっとられてるっとことだろw
もともとw3cなんか何の権威もないじゃん。
502デフォルトの名無しさん:2009/09/11(金) 12:03:07
503デフォルトの名無しさん:2009/09/11(金) 12:27:37
ValueOfのOfは何を指しているんですか?
それとgetValueとは違いはあったりするんですか?
関数クラスがあったとして、ある変数の値を得る
メソッドの名前はなににしたらいいですか?
504デフォルトの名無しさん:2009/09/11(金) 12:36:02
1個目
valueOfに渡した引数

2個目
インスタンスのフィールド

3個目
getXXX
XXXはフィールド名
CamelCase使用
505デフォルトの名無しさん:2009/09/11(金) 13:08:30
3個目は
変数がxだとしたら
valueOfXの略のvalueOfじゃないんですか?
なぜgetXXXなんですか?
フィールドなんてないんですけど。
506デフォルトの名無しさん:2009/09/11(金) 13:18:25
valueOfは引数を対象にするんだ
String.valueOf(7)ってあったら、メソッドの対象は7だろ
この場合は「7のString型を返せ」だ

>関数クラスがあったとして、ある変数の値を得る

じゃあこの変数って何だ
言葉は正確に頼むぜ
507デフォルトの名無しさん:2009/09/11(金) 13:19:15
xを与えるとyという値をえるメソッドの名前ですよ。
508デフォルトの名無しさん:2009/09/11(金) 13:26:14
それは『引数』と言うのよ
今後気をつけろよ

で、本題だが、関数の機能を名前にすればいい
Math.cosとか
509デフォルトの名無しさん:2009/09/11(金) 13:28:38
関数な機能はクラス名なんで
それは出来ない仕様です。
510デフォルトの名無しさん:2009/09/11(金) 13:31:15
クラスは関数じゃないのに機能名つけてどうすんだアホ


クラス名はPascal形式なら関数名はCamel形式で併用できるはずだが
511デフォルトの名無しさん:2009/09/11(金) 13:35:26
じゃあ、例えばcosのみの関数が入っているクラス名はなににしたらいいんですか?
512デフォルトの名無しさん:2009/09/11(金) 13:43:40
cosのみが入っててもMathで問題ないでしょう?
逆に何が問題だと言うのか。

プロジェクト内だけで使うのならTestProjectMathMethodsとでもするとか。
少しは考えろっての。
513デフォルトの名無しさん:2009/09/11(金) 13:46:42
Mathだと初期化できませんよ。
2Xみたいな関数なら初期化するときに2を入れないといけないじゃないですか。
514デフォルトの名無しさん:2009/09/11(金) 13:48:14
横から一言言わせて貰うと、メンバが1個しかないなら分離する必要性がないと思う。
515デフォルトの名無しさん:2009/09/11(金) 13:49:28
本題からずれてきたな
クラスの設計については聞いてねーぞ
516デフォルトの名無しさん:2009/09/11(金) 13:50:18
適切な設計をしていないから、適切な名前を与えられない
517デフォルトの名無しさん:2009/09/11(金) 13:50:44
>>513
そんなの初期化するまでもねーだろ

public double 2X(double v){ return v*2; }
518デフォルトの名無しさん:2009/09/11(金) 13:51:39
問題がわかってないみたいなので詳しく書くと。
ax+ax^2+みたいなクラスをつくります
Class Polynomial{

519デフォルトの名無しさん:2009/09/11(金) 13:52:31
いい機会だからそれ以外の部分も書け。クラス図とか。
520デフォルトの名無しさん:2009/09/11(金) 13:52:42
aを初期化します
int a;
Polynomial(a){
this.a=a;
521デフォルトの名無しさん:2009/09/11(金) 13:54:08
int xxxxx(int x){
return a*x+a*x^2....;

}
のxxxxxの名前が分かりません。
522デフォルトの名無しさん:2009/09/11(金) 13:55:50
Operate(演算)とか
523デフォルトの名無しさん:2009/09/11(金) 14:04:46
untie、work through、resolve
solve、solve for

恐ろしく無駄なやり取りだったね。
>>518-521が初めから書いてあれば速攻答えが出たんだろうけど。
524デフォルトの名無しさん:2009/09/11(金) 14:04:59
apply
525デフォルトの名無しさん:2009/09/11(金) 14:05:58
>問題がわかってないみたいなので

問題はひた隠しだったろアフォ
526デフォルトの名無しさん:2009/09/11(金) 14:08:39
すみませんが、解くとか演算とかは違うと思うんですよ。
10個のなかから1個をランダムに選ぶみたいな計算しなくても答えが出る関数もあるわけだし。
だからvalueOfかgetValueじゃないかなと思っているんですよ。
527デフォルトの名無しさん:2009/09/11(金) 14:08:44
だいたいPolynomial(多項式)のどこが機能名だ。
付き合って損した。
528デフォルトの名無しさん:2009/09/11(金) 14:09:55
>>526
その二つは用途が決まってるからどちらも不正解だ。
529デフォルトの名無しさん:2009/09/11(金) 14:10:38
また何かわけのわからぬことを言い出しました
530デフォルトの名無しさん:2009/09/11(金) 14:12:15
たぶんValueという単語に特別な意味を感じているのだろうw
531デフォルトの名無しさん:2009/09/11(金) 14:12:31
関数の値を得るだからgetValueかvalueOfじゃないのはどうしてですか?
532デフォルトの名無しさん:2009/09/11(金) 14:14:14
getValueは関数の値じゃなくてインスタンスの値用です。
これに限らずgetXXXは基本的にアクセサです。
んで、valueOfはインスタンス生成用です。
どちらも関数用途ではありません。
533デフォルトの名無しさん:2009/09/11(金) 14:17:13
get系はすでに存在する値をただ単に取得するだけという感じが強い
valueOfは一般にインスタンスメソッドじゃない
Valueという単語を入れたいならcomputeValueとかにすれば
534デフォルトの名無しさん:2009/09/11(金) 14:17:31
もうxnituitekeisansuruとでも書いとけよ
535デフォルトの名無しさん:2009/09/11(金) 14:18:50
じゃあValueという単語を入れたいのです><

と初めから書いてくれればいいのに。
面倒くさい奴だ。
536デフォルトの名無しさん:2009/09/11(金) 14:20:09
そんなことより変数の命名規則がわかんねえ・・・
537デフォルトの名無しさん:2009/09/11(金) 14:20:19
計算しない場合もあるのでcomputeは使えません。
538デフォルトの名無しさん:2009/09/11(金) 14:21:27
じゃあただ単にvalueでいいんじゃね
539デフォルトの名無しさん:2009/09/11(金) 14:22:14
面倒だからparseIntに1票。
540デフォルトの名無しさん:2009/09/11(金) 14:22:19
じゃあvalueにします。ありがとうございます。
541デフォルトの名無しさん:2009/09/11(金) 14:23:34
Polynomial p = new Polynomial(2);
int answer = p.value(3);

となるのか。意味分からんな。
542デフォルトの名無しさん:2009/09/11(金) 14:25:48
もういい止めろ終了解決したのこれで終わりこれ以上引きずらないうるさい黙れ
543デフォルトの名無しさん:2009/09/11(金) 14:40:34
これは爆釣ですねと言わざるを得ない
544デフォルトの名無しさん:2009/09/11(金) 14:42:20
後の三平である
545デフォルトの名無しさん:2009/09/11(金) 19:20:24
釣りではなく燃料です
勘違いしないでください
あたまおかしいですよ
546デフォルトの名無しさん:2009/09/11(金) 19:22:02
臭いのがいるな
547デフォルトの名無しさん:2009/09/11(金) 19:48:25
private static List<String> list = new ArrayList<String>();
ってあるけど、なんでstaticにしているのですか?
メリットを教えていただきたい
548デフォルトの名無しさん:2009/09/11(金) 19:49:40
しらねーよw
549デフォルトの名無しさん:2009/09/11(金) 19:57:24
どこにあるんだよw
550デフォルトの名無しさん:2009/09/11(金) 20:00:50
声出してワラタw
551デフォルトの名無しさん:2009/09/11(金) 20:07:16
複数のインスタンスから参照される共通のオブジェクトを保持するため
552547:2009/09/11(金) 20:18:25
>>548-549
JDKのソース

>>551
>共通のオブジェクトを保持するため
なるほど、こういうことですか
>複数のインスタンスから参照される
なんで、複数のインスタンスから参照されるのかは
頭が足りないのでいまいちわかりませんでしたorz
553デフォルトの名無しさん:2009/09/11(金) 20:42:42
public class Hoge {
private Hoge() {}
public static void hoge1() {}
public static void hoge2() {}
public static void hoge3() {}
}
もし、メソッドがstaticしかないクラスを作った場合、
デフォルトのコンストラクタを作らせないためにprivate Hoge() {}
みたいなのを作っておくのは普通ですかね?
それとも、staticなメソッドしかないクラスは作るべきじゃないのか
554デフォルトの名無しさん:2009/09/11(金) 21:00:03
>普通ですかね?
どっちでも良い。
一部ではインスタンス化をしないことを明示するために書くべきと頑固に主張する人もいる。
個人的には書いたほうがいいとは思うけど、コメント書けと思う
// dont create instance
private Hoge(){}

>staticなメソッドしかないクラスは作るべきじゃないのか
作らないのはベターとは言われる
とはいえ、拡張性のないようなメソッドはあるわけで、作る事自体には問題なし
555デフォルトの名無しさん:2009/09/11(金) 21:03:49
標準ライブラリのMathクラスが一つの例になる
556デフォルトの名無しさん:2009/09/11(金) 22:01:22
>>554-555
ありがとうございます

Effective javaを読んでいて思ったんだけど、
thisとstaticっていろいろな使い方があっておもしろいね
557デフォルトの名無しさん:2009/09/11(金) 22:01:51
クラスメソッドしか持たないUtilityクラスを作るのは普通
少なくともWeb系であれば
558デフォルトの名無しさん:2009/09/12(土) 00:01:00
頭の悪そうな質問で恐縮だが、脱初心者ってどういうレベルのことを言うの?
559デフォルトの名無しさん:2009/09/12(土) 00:05:12
Javaをやりつつ童貞卒業したら
560デフォルトの名無しさん:2009/09/12(土) 08:37:36
初心者はバズワードです
561デフォルトの名無しさん:2009/09/12(土) 13:23:54
DIコンテナに乗っかってると、
Utilityクラスもstaticメソッドじゃなくして、
インタフェース作りたくならない?
562デフォルトの名無しさん:2009/09/12(土) 14:10:19
それユーティリティじゃない。
ちゃんとオブジェクトに固有の振る舞い持ってる。
563デフォルトの名無しさん:2009/09/12(土) 15:50:51
教えてください。Java初心者の為、意味がわかりません。
Java言語で「変数A = new String(変数B)」と書いたらDevPartnerに
「Stringコピーコンストラクタを使用しています」と言われた
何?
564デフォルトの名無しさん:2009/09/12(土) 15:56:55
>>563
じゃ・・・ば・・・?
565デフォルトの名無しさん:2009/09/12(土) 16:13:54
DevPartner?
566デフォルトの名無しさん:2009/09/12(土) 16:34:28
567デフォルトの名無しさん:2009/09/12(土) 16:59:59
市販品じゃねーか
こんなもんがある環境ならレクチャーしてくれる人の1人や2人くらい周囲にいそうなものだが
568デフォルトの名無しさん:2009/09/12(土) 17:15:32
使いこなせもしないのにこんな製品買うのか・・・いいねぇ、金があって
569デフォルトの名無しさん:2009/09/12(土) 17:20:17
貧乏人くやしいのうwwwwwwwwwwwくやしいのうwwwwwwwwwwwww
570デフォルトの名無しさん:2009/09/12(土) 17:27:43
くやしいです
571デフォルトの名無しさん:2009/09/12(土) 17:32:15
そもそも>>563は何を質問しているんだ?
コピーコンストラクタの意味なのか、コピーコンストラクタで警告される理由なのか、
エラーを解決する方法なのか、それとももっと別のことなのか
572デフォルトの名無しさん:2009/09/12(土) 17:48:16
>>571
Stringはイミュータブルなので、本質的にはコピーコンストラクタ呼び出しを必要とする理由がありません。

変数bはaと同じ内部状態を持つ別のオブジェクトとして作成されますが、
bオブジェクトの内部状態を変更することはできません(イミュータブルなため)。

オブジェクトaとオブジェクトbは、そのオブジェクトのライフサイクルの全ての期間において、
全く同じ値を持つ別のインスタンスとして存在し続けることになってしまいます。

以下のコードが理解の助けになるでしょう。

String a = "string";
String b = new String(a);
String c = a;
System.out.println(a == b);
System.out.println(a == c);

結果
false;
true;
573デフォルトの名無しさん:2009/09/12(土) 17:51:28
>>567
>>568
私が持っているのではないので・・・誰も教えてくれる人が周りにいないのですよ。

>>571
レスさんくすです。
すいません、ほんとに初歩的なところからで申し訳ないのですが、
コピーコンストラクタの意味もあまりわかっていないのです・・・。
エラーというわけではなくて、アプリとして動いているけどこの
ソフトで分析すると警告(?)が出るらしい。
ということでとりあえず「コピーコンストラクタで警告される理由」が知りたいところです。

String 変数A = "";
String 変数B = "あたい";
変数A = new String(変数B);

いろいろ調べてみたのですが、もしかしてnewしているのが悪いって事かな?
参考にしたWeb > ttp://www.javaroad.jp/java_character2.htm
574デフォルトの名無しさん:2009/09/12(土) 17:56:48
>>572
レスさんくすです!
おお!どうやら私の調査結果と近い答えが!
一言に要約すると「文字列変数間の文字列コピーにnewを使うな」ってことでOK?
変数A=変数B;
って書けばよかったのかな。
575デフォルトの名無しさん:2009/09/12(土) 17:57:14
Javaを解る人間雇えよ・・・
576572:2009/09/12(土) 18:04:19
アンカ間違えてた。スマソ

そうです。newで同じ値を持つ別のオブジェクトをわざわざ作るのは、
bオブジェクトの内部状態を変えても、
その影響がaオブジェクトに響かないようにするためのはずです。

しかし、Stringは値の変更ができないため、
そもそも値が同じ別のオブジェクトを作り出すメリットがありません。

bの値を変えた場合は、新しいオブジェクトとして作成される(プログラマが意識しているかは別として)ため、
同じ値である間は、同じオブジェクトを参照していて問題がありません。
577デフォルトの名無しさん:2009/09/12(土) 18:15:39
自分用にフォント選択ダイアログ作ってたんだけど
親ウィンドウのフォント情報って取得どうすればいいんでしょうか?
フォント情報ごと渡すしかありませんか・・・?
親ウィンドウのgetFontしてもNULLでした
578563:2009/09/12(土) 18:18:37
>>576
Java詳しいみなさんありがとうでした!
ふぅ・・・オブジェクト指向?とやらは概念が難しいですね。

ちょっとびっくりしたのは、(あと今後の自分の為のメモ書きとしても)
私がString変数だと勘違いしているStringはClassというオブジェクトであり、
通常Javaはゲッターセッターで内部と値をやり取りしているが、
Stringにはセッターが無い(?)ので、代入をすると毎回コンストラクタが発動(?)して
名前は同じだけど別のオブジェクトとして変数の箱が存在しているという事かな。

じゃぁさ、私みたいにDISKBasic〜VB6時代のPGしかわからん人が考えているような
ループ処理などのカウンタなどにString変数を使うとなんか変な気がしてきた。
これやるとメモリにオブジェクトが大量にできあがってしまうのか!?な?

うぅもうちょっと勉強してみよう。

あと、ソフトに関して書いていた人へ
DevPartnerというソフトは、使ってみるとすごいよ。
コーディングチェックだけじゃなくてメモリ解放し忘れとか
いろいろコンパイルエラーじゃないけど今回のような問題箇所を
ばしばしと見つけてくれるので。で、さっき書いたURLに行けば
体験版DLできるから試してみたら良いと思う。
579デフォルトの名無しさん:2009/09/12(土) 18:25:04
カウンターにString変数・・・?
Stringってオブジェクトじゃなかったっけ・・・変数だっけ?
580デフォルトの名無しさん:2009/09/12(土) 18:32:25
>>563
悪いがEclipseとか無償で入手できるツールで大抵のことは可能なんだわ
有償が悪いとは言わないが、誰も使ったことのないツールよりも相談すれば誰かが回答できるツールのが良い
581デフォルトの名無しさん:2009/09/12(土) 18:36:34
>>578
普通のループカウンタにオブジェクトを使うメリットはみあたらない。
というか、Stringオブジェクトをどうやったらカウンタに使えるのか
わかりません(^^;;
いままでそういう発想をしたことすらなかった
582デフォルトの名無しさん:2009/09/12(土) 18:52:16
>>578

なんていうの
小学生が大学教授に数学の講義でもしようっての?
アドバイスくれてやろうなんてお前には100年早い
583デフォルトの名無しさん:2009/09/12(土) 20:06:50
for(String sCounter = ""; !sCounter.equals("11111"); sCounter += "1"){
 処理
}
584デフォルトの名無しさん:2009/09/12(土) 20:07:43
うっわ。そんなウンコみたいな処理よく考え付くね。
585デフォルトの名無しさん:2009/09/12(土) 20:30:26
そいつの脳じゃこんなんだろ
for(String sCounter = ""; sCounter != "11111"; sCounter = new String(sCounter + "1")){
 処理
}
586デフォルトの名無しさん:2009/09/12(土) 20:30:47
文法的に可能ってだけで、実用上あり得る記述なのか
587デフォルトの名無しさん:2009/09/12(土) 20:34:25
ねーよw
588デフォルトの名無しさん:2009/09/12(土) 20:34:58
遊び心を忘れないって素晴らしいことですよ

よ?
589デフォルトの名無しさん:2009/09/12(土) 20:37:39
ねえよなw
586は最後に?を入れ忘れた
590デフォルトの名無しさん:2009/09/12(土) 21:11:21
>>583
現実に存在したら、全力でハリセンチョップをぶちかましたくなるよーなコードだ……。
591デフォルトの名無しさん:2009/09/12(土) 21:18:31
for(String sCounter="A"; sCounter.charAt(0) != 'Z';

むりか・・・C++ならいけそうだが・・・
592578:2009/09/12(土) 21:34:03
>ループ処理などのカウンタ
あぁすいません、みんなを混乱させてしまった。
ループ処理でブレイクキーに
の書き間違いです。

いろいろ書かれちゃったけど、
とりあえず自分の悩みは解決したよ、
みなさんありがとね!
593デフォルトの名無しさん:2009/09/12(土) 21:36:38
>>591
Stringはimmutableだと何度も(ry
594デフォルトの名無しさん:2009/09/12(土) 21:56:11
どうじてもやりたいっていうなら
MutableStringクラス使うんだろうな
595デフォルトの名無しさん:2009/09/12(土) 21:58:58
>>592
ブレイクキーってフラグみたいなもんか?
enum 使おうぜ。
596デフォルトの名無しさん:2009/09/12(土) 22:10:43
>>593
>>591をよく読めばいいのに
597デフォルトの名無しさん:2009/09/12(土) 23:44:45
てかそのDev何とかはワレズとかじゃないの?
オープンのプロジェクトが実用レベルになってるご時世で、それもJavaといったらオープンの中心だろ?
それなのに、いまどき割れ物とかクラックものとかはやってるのかね…
納品するのにどうしても写真屋形式じゃないと駄目、MSワード形式じゃだめってなら使う価値もあるとおもうんだが。
598デフォルトの名無しさん:2009/09/12(土) 23:46:13
会社の支給品だろ。
599デフォルトの名無しさん:2009/09/12(土) 23:57:03
それより>>577がエスパーすぎる
600デフォルトの名無しさん:2009/09/13(日) 00:18:05
>>591
cも満足に出来ないのにそんなこと書かなくてもいいんじゃね
見てて恥ずかしい
601デフォルトの名無しさん:2009/09/13(日) 00:21:16
それなら会社のやつに聞けよ
MSのでもワードエクセル程度しか興味ないのに、そんなマイナー商品のことなんか知らんわw
602デフォルトの名無しさん:2009/09/13(日) 00:22:43
無知が語るなよ。
603デフォルトの名無しさん:2009/09/13(日) 01:32:18
>>591のやりたいことって
for(char counter = 'A' ; counter != 'Z' ; counter++){
cout << counter << endl;
}
for(string counter = "A"; counter[0]!='Z'; counter[0]++){
cout << "string"<< counter << endl;
}
じゃないの?これなら普通に動くし、C++ならーとかって意味もわかるが・・・
>>600は何にかみついてるのかわからん
604デフォルトの名無しさん:2009/09/13(日) 10:54:05
クロームってJavaも速いって噂ですよね?
ネットブック(cpu 1.4Ghz程度)でもサクサクですか?
605デフォルトの名無しさん:2009/09/13(日) 11:00:32

for(char counter = 'A' ; counter != 'Z' ; counter++){

('A' )…
606デフォルトの名無しさん:2009/09/13(日) 11:08:15
>>605
何か不満か?Zの分もループしたいか?
607デフォルトの名無しさん:2009/09/13(日) 11:09:41
for(int counter = 'A' ; counter <= 'Z' ; counter++){

('A';;;)…
608デフォルトの名無しさん:2009/09/13(日) 11:13:11
ああそういう意味か
609デフォルトの名無しさん:2009/09/13(日) 11:24:41
何回やりたいのかによるんじゃね
のっとが好きな人と大なり小なりが好きな人といるよね

後、三項演算子嫌う人
610デフォルトの名無しさん:2009/09/13(日) 11:57:45
流れを切るようで申し訳ないですがVelocity の質問ってここでいいですか?

Tomcat上で、画面出力ではないテンプレートエンジンとして
Velocityを使いたいのですが、いくつかの点がよくわかりません。

1. 別々の設定(例えばクラスパスからの読み込みとファイルパスからの読み込み)等で
同じTomcat上で動かす可能性があるので、
Velocity クラスではなく VelocityEngineクラスを使う必要があると思いますが
これは合っているでしょうか?

2. VelocityEngineを使うとして、結構頻繁に呼び出す部分で
いちいち初期化するコストが心配なので、
VelocityEngine のインスタンスは設定ごとに Singleton で保持しようかと思うのですが
それでスレッドセーフに使うことが出来ますか?

ご存知の方いたらお願いします。
611デフォルトの名無しさん:2009/09/13(日) 12:27:43
とりあえず、やってみればいいのに・・・
やる前に質問してしまう意味がわからない
612デフォルトの名無しさん:2009/09/13(日) 12:39:10
Velocityスレなかったっけ?
613デフォルトの名無しさん:2009/09/13(日) 12:49:15
>>577
JFrameを継承して作ったメインのウィンドウからThisを渡してDialogのインスタンスを実行
このメインのウィンドウのフォントを取得したいの?
614デフォルトの名無しさん:2009/09/13(日) 13:08:58
>>611
自分で試して問題なく動いたからといって、
その実装に問題がないとは限らないので。

特にスレッド間での処理を見るのは、
同時処理自体に失敗している(微妙にずれている)から正常に動いているのか
複数のスレッドから呼ばれても大丈夫なようになっているから正常に動いているのか
判断出来ないなと。
615デフォルトの名無しさん:2009/09/13(日) 13:11:22
>>614
いや、まず試す→解析する→それでもわからなきゃ質問
じゃねーのか・・・
質問→やるっておかしいだろう
616デフォルトの名無しさん:2009/09/13(日) 16:04:34
byte a = (byte)0x20;
System.out.println(a);

これを実行すると32となります。
この32は何を表しているのでしょうか?

バイナリの20は半角空白のはずなのですが、なぜか32とでます。
半角空白を出す方法を教えてください。
617デフォルトの名無しさん:2009/09/13(日) 16:06:42
>>616
これだと、単に16進の20を十進出力してるだけだからでしょう
618デフォルトの名無しさん:2009/09/13(日) 16:08:09
>>616
byte a = (byte)' ';
とすれば、できるんじゃない?
やったことないからわからんけど
619デフォルトの名無しさん:2009/09/13(日) 16:09:38
>>616
文字として扱いたいならchar型を使うんだ
620デフォルトの名無しさん:2009/09/13(日) 16:19:56
printlnのどのオーバーロードを使うかで挙動が変わる
文字を出力したいなら、println(char)を使え
621デフォルトの名無しさん:2009/09/13(日) 16:21:10
System.out.println((char) a);
622デフォルトの名無しさん:2009/09/13(日) 16:23:27
charでキャストしたらいけました。ありがとうございまいした。
623デフォルトの名無しさん:2009/09/13(日) 16:33:27
>>609
!=好きはC++使い。おそらく++counterと書くだろう。
624デフォルトの名無しさん:2009/09/13(日) 19:29:35
>>615
ライブラリのソース解析までしてから質問するスレだったんですね。
勘違いしていました、すみませんでした。
自分で頑張ってみます。
625デフォルトの名無しさん:2009/09/13(日) 19:56:16
>>624
いろんな人がいるからね
人によっては細かくおしえてくれるし。
基本、まずは自分でやってみるのが、質問する側の姿勢としては
大切だね
626デフォルトの名無しさん:2009/09/13(日) 20:33:35
プログラミングに触った事のない俺が趣味程度でjavaを始めてみようと思ってるんだけど
参考書みたいなのは明解Java 入門編 (単行本) これで大丈夫かな?
ど素人にオススメの本ってある?
627デフォルトの名無しさん:2009/09/13(日) 20:36:37
やさしいJavaでも読んでろ
628デフォルトの名無しさん:2009/09/13(日) 20:39:12
口調が厳しいのは2ch住人の仕様です
629デフォルトの名無しさん:2009/09/13(日) 21:58:49
Blobクラスを使い、データベースからバイナリデータ(エクセルファイル)を
出力するとファイルが壊れてしまいます。
どこが悪いのかわかりません。
お詳しい方が居たら、ご教授いただけませんでしょうか?

環境:WindowsVista
データベース:Derby
630デフォルトの名無しさん:2009/09/13(日) 22:01:09
631629:2009/09/13(日) 22:02:18
ソース:

Connection con = DriverManager.getConnection(url, user, pass);

String query = "select * from test";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);

while(rs.next()){
Blob blob = rs.getBlob(3);
InputStream is = blob.getBinaryStream();

FileOutputStream fos = new FileOutputStream("Copy"+rs.getString(2));
BufferedOutputStream bos = new BufferedOutputStream(fos);

int bytes;
byte b[] = new byte[512];
while((bytes = is.read(b)) != -1){
bos.write(b, 0, bytes);
}

}
632デフォルトの名無しさん:2009/09/13(日) 22:14:56
最後closeしてないの?
633デフォルトの名無しさん:2009/09/13(日) 23:14:56
大量の文字を高速にswing上のコンポーネントに、描写する方法はないですか?
できれば、任意にハイパーリンクのようなものを配置したいです
634デフォルトの名無しさん:2009/09/13(日) 23:16:47
普通に描画しても遅い気はしないが?
635633:2009/09/13(日) 23:23:29
>>634
だいたい、10万文字くらい表示しようと考えています
なので、部分的に表示しないと重くなります
どうやれば部分的に文字を表示する機能を実装するか、教えていただきたいです
636デフォルトの名無しさん:2009/09/13(日) 23:33:33
想像と桁が違ったわ
637デフォルトの名無しさん:2009/09/13(日) 23:34:56
現在の表示位置と表示エリアの高さとFontMetricsがあれば計算できるでしょ
638デフォルトの名無しさん:2009/09/14(月) 00:07:56
10万文字描画したとしても、画面に表示できないと思うんだが
639デフォルトの名無しさん:2009/09/14(月) 00:11:21
文字サイズ0.5くらいなんだろ
640デフォルトの名無しさん:2009/09/14(月) 00:17:05
>>631
出力されるファイルとオリジナルのファイルで差分とるとなにが違ってる?
ソースは問題なさそうに見えるけど、途中でException吐いて死んでない?
641デフォルトの名無しさん:2009/09/14(月) 03:55:10
>>635
もしかしてスクロールさせたいの?
642デフォルトの名無しさん:2009/09/14(月) 04:16:29
スクロールさせたいです
643デフォルトの名無しさん:2009/09/14(月) 04:29:54
前スレのswingでスレデータを表示したいとか言ってた奴の臭いがする
644デフォルトの名無しさん:2009/09/14(月) 05:50:34
>>635
> だいたい、10万文字くらい表示しようと考えています 
> なので、部分的に表示しないと重くなります
本当に重くなるの?
645629:2009/09/14(月) 08:21:46
レス遅くなりすみません。
>632
2chだと改行が多すぎると出るので、
必要最低限の部分を書き込みました。

>640
ファイルの差分を調べてみます。
とりあえず、Exceptionは出てません。
(NetBeans6.7で実行しました。)

ありがとうございました。
何か分かりましたら、ご報告いたします。
646デフォルトの名無しさん:2009/09/14(月) 08:46:05
EJBの良いところを教えてください。
開発がめんどくさくなるだけのように思えるんです。
647デフォルトの名無しさん:2009/09/14(月) 08:50:53
>>646
素人はJBOSSでもいじって勉強してろ
648デフォルトの名無しさん:2009/09/14(月) 08:56:33
勉強する意味のあるものならいいですがね
あんなのいいところがまったくなさそうなんですが
649デフォルトの名無しさん:2009/09/14(月) 09:01:44
>>647
age素人乙
650デフォルトの名無しさん:2009/09/14(月) 09:03:17
>>649
無能はそれしか言えないようだな
651デフォルトの名無しさん:2009/09/14(月) 09:13:49
>>648
J2EE理解できない君じゃとやかく言う資格はないでしょう。
652デフォルトの名無しさん:2009/09/14(月) 09:26:56
>>651
2chのルールも守れないageおまえが何を言うw
653デフォルトの名無しさん:2009/09/14(月) 09:28:53
アプリケーション開発が目的ではなくEJBを使うことが目的な
プロジェクトが多すぎる
654デフォルトの名無しさん:2009/09/14(月) 09:34:08
>>652
勘違い乙。
655デフォルトの名無しさん:2009/09/14(月) 10:23:02
import unnamed.* すると、無名パッケージの全てのクラスを使うことができるのでしょうか?

よろしくお願いします。
656デフォルトの名無しさん:2009/09/14(月) 10:32:01
できません
657デフォルトの名無しさん:2009/09/14(月) 10:50:40
>>656さん
素早い回答ありがとうございます。

では、import unnamed.* が実装されている目的やメリット等は何なのでしょうか?

よろしくお願いします。
658デフォルトの名無しさん:2009/09/14(月) 11:07:06
わかりません
659デフォルトの名無しさん:2009/09/14(月) 11:17:10
目的、メリットが分からないと手も出せないカスじゃこの先も伸びないだろうな
素人未満の塵といったところか
660デフォルトの名無しさん:2009/09/14(月) 11:21:21
そういうな
661デフォルトの名無しさん:2009/09/14(月) 11:22:31
なんだ民主党員か
662デフォルトの名無しさん:2009/09/14(月) 11:24:40
まぁ大抵の人は動かしてみてから聞くんだろうね。
理論から入る頭でっかちには向いてないよ。
文系が使えないのはそこにあるんだろうね。
理系は実験(ここで言うプログラミング)を通してから考察だし。
663デフォルトの名無しさん:2009/09/14(月) 11:28:45
なんだ理系詐欺もいたか
664デフォルトの名無しさん:2009/09/14(月) 11:29:25
俺は別に必要ないものがあっても気にしないタイプだからなあ
665デフォルトの名無しさん:2009/09/14(月) 11:30:56
とりま技術バカにならないためにも今日も勉強してますかの
666デフォルトの名無しさん:2009/09/14(月) 11:31:54
H2B技術者とJava技術者はどちらが上ですか?
667デフォルトの名無しさん:2009/09/14(月) 11:37:14
自分が分かってない奴と露呈するのが恥ずかしくて、質問する相手を中傷することで自分を保とうとする屑っているよな
答えられない知識不足のくせに自尊心だけ高くて、その上周りに不満や暴言を吐く有害なゴミ
>>658除く
668デフォルトの名無しさん:2009/09/14(月) 11:40:16
◆一番分かっていない公害物質
>>667
669デフォルトの名無しさん:2009/09/14(月) 12:12:05
>>667
ていうか、まだなんで生きてんの?
670デフォルトの名無しさん:2009/09/14(月) 12:15:03
死にたくないからです
671デフォルトの名無しさん:2009/09/14(月) 12:49:10
小学生かお前ら
672デフォルトの名無しさん:2009/09/14(月) 12:52:09
>>652
ageただけで吠える無能
さすがに技術じゃ勝てないか
重箱の隅つつくようじゃ底が知れてるね
673デフォルトの名無しさん:2009/09/14(月) 13:14:36
何を言ってんだこのゴミはw
674デフォルトの名無しさん:2009/09/14(月) 13:25:48
>>673
2chのルールも守れないageおまえが何を言うw
675デフォルトの名無しさん: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デフォルトの名無しさん:2009/09/14(月) 13:34:10
というか、import unnamed.* なんて書けるの?
678デフォルトの名無しさん:2009/09/14(月) 13:35:15
>>672
ええ、技術?
ていうか、死にたくないからっすよね?
679デフォルトの名無しさん:2009/09/14(月) 13:35:29
>>677
やってみたらnetbeansに怒られた
680デフォルトの名無しさん:2009/09/14(月) 13:37:04
netbeans使ってる奴は池沼
681デフォルトの名無しさん:2009/09/14(月) 14:35:42
レイアウトやりやすいんだぞ!

Eclipseに乗り換えようと何度思ったことか
682デフォルトの名無しさん:2009/09/14(月) 14:37:55
YOU乗り換えちゃいなよ
683デフォルトの名無しさん:2009/09/14(月) 14:46:15
おまえんちはまるで便所だなw
684デフォルトの名無しさん:2009/09/14(月) 14:59:06
それにしてもEJBって必要ないな
685デフォルトの名無しさん:2009/09/14(月) 15:52:19
はー
やっとEJBマスターしたけどやっぱめんどくさいだけだな
686デフォルトの名無しさん:2009/09/14(月) 15:53:11
>>685
何を持ってマスターなの?
687デフォルトの名無しさん:2009/09/14(月) 16:11:47
HelloEJBが表示できた。
688デフォルトの名無しさん:2009/09/14(月) 18:42:21
逝ってよし
689デフォルトの名無しさん:2009/09/14(月) 19:03:30
スルー力が大事。
この業界こだわっちゃう人が多いし。(いい意味で)

んでEJBは微妙。学習コストが高くて生産性も高くはない。
でも3.0はかなり良くなってるから本気出したほうがいい。
690デフォルトの名無しさん:2009/09/14(月) 19:05:38
2ちゃんねるブラウザを作ろうと、毎日頑張って調べてきたけど
どうしてもV2Cみたいに高速にスレッドを表示できね
ぜんぜん、わかんね
691デフォルトの名無しさん:2009/09/14(月) 19:07:40
何に時間かかってる?
692デフォルトの名無しさん:2009/09/14(月) 19:10:22
Javaから.Netを使うにはどうすればいいの?
693デフォルトの名無しさん:2009/09/14(月) 19:12:21
>>691
わかんね
694デフォルトの名無しさん:2009/09/14(月) 19:13:20
>>692
JNIでいいんじゃね?
695デフォルトの名無しさん:2009/09/14(月) 19:14:07
>>693
俺にもわかんね。
696デフォルトの名無しさん:2009/09/14(月) 19:18:34
http://pc12.2ch.net/test/read.cgi/tech/1250369910/872
こんなことやってて速くなるわけねーだろ
697690:2009/09/14(月) 20:03:40
>>696
JEditorPaneでやることはスピード以前にいろいろと問題が発生しそうだと気がついたので、
かなり前にあきらめた

>>691
HDDからの読み込み→インスタンス化までは1秒くらいになった
でも、swingコンポーネントに文字を高速表示する方法がわかんね

V2C作者に質問したら、JPanel + DrawString()で描写をしていると教えてもらった
だが、Graphics2Dの管理と高速化の両立は厳しい
698デフォルトの名無しさん:2009/09/14(月) 20:05:20
おそらく、ちょっと移動するたびに表示エリア内を全部書き直してるだろ
699690:2009/09/14(月) 20:30:34
>>698
その通りだよ。だから、部分的に表示して画面を考えているんだけど
なかなか、簡単にできないからずーっと困っている

Graphics2D.drawString()だと自動で文字列改行をしてくれないし、
スクロールバーもどうやったら適切なサイズ(長さ)にできるのかとか
調べても調べてもヒントになるページが引っかからない
700デフォルトの名無しさん: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デフォルトの名無しさん:2009/09/14(月) 21:17:12
703デフォルトの名無しさん:2009/09/14(月) 21:18:25
>>701
とりあえずwikiでも読んで一通り試してみて
http://www.wikihouse.com/java/?path,classpath
704デフォルトの名無しさん:2009/09/14(月) 21:18:33
>>701
>>1すら見えない脳みそではJavaは無理です。あきらめなさい。
705デフォルトの名無しさん:2009/09/14(月) 21:24:39
そんな、ひどい…
706701:2009/09/14(月) 21:26:11
すいません、あせって>>1をよく見てませんでした。もう一回出直します
707デフォルトの名無しさん:2009/09/14(月) 21:28:13
>>705
2ちゃんねるで質問すると答えが厳しいから、気にすんな
linuxだと環境変数を設定しなくてもよかったりする
よくわかんなかったら、Eclipseでもインストールしろ
インストールを説明するサイトとかで、環境変数の事について調べられる
708デフォルトの名無しさん:2009/09/14(月) 21:29:31
EJBのCMPってどうやってDBとつながってるの?
709701:2009/09/14(月) 21:29:42
>>703さん、有難うございますm(__)m
710701:2009/09/14(月) 21:30:36
>>705さんも有難うございます。頑張ります
711デフォルトの名無しさん:2009/09/14(月) 21:36:06
Pathの設定してないじゃん。。


それはそうと、何でJavaのパスやクラスパスくらい自動設定する
ソフトがないんだろうな。。

ただ単に環境変数にPathとクラスパスつけてやればいいだけじゃん。
俺が造ってもいいけど、XPしかもってないし、Vistaがどのフォルダにインスコされて
なんか権限とかぜんぜんしらねから、Visco対応のは作れない。

XPだけでもいいなら、作ってやってもいいが、7もでるしなあ。

なんで、ほかのプログラマはそんくらいの物作って、うpしてやらないんだろうな・・
712デフォルトの名無しさん: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をちゃんと設定すれば直るよ。まあ、がんばりいな。
714701: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 現状のまま
で宜しいのでしょうか?何度もすいません
715690: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デフォルトの名無しさん:2009/09/14(月) 21:58:42
すげぇ
さすが>>1すら見ないだけのことはある
Javaの環境変数設定ができない・・Orz
http://pc11.2ch.net/test/read.cgi/prog/1252928150/
717デフォルトの名無しさん:2009/09/14(月) 22:02:56
そりゃ、エディタの描画部分なんて自作しようというのは余程の暇人かドMだからな。
java.awt.font.* とかはちゃんと見た?
718デフォルトの名無しさん:2009/09/14(月) 22:03:40
もうやめちまえ。
おまえじゃ時間の無駄
719デフォルトの名無しさん:2009/09/14(月) 22:06:07
問題のコードとテストドライバがあれば誰かチューニングしてくれんじゃねーの
720デフォルトの名無しさん:2009/09/14(月) 22:12:14
>>708
CMPの名前のとおり、コンテナに管理させたデータソースをコンテナ経由で使ってる
721デフォルトの名無しさん:2009/09/14(月) 22:24:42
>>717
>余程の暇人かドMだからな
コンピュータをやる時はなるべくいろいろな事を、勉強出きるようにしている
それに、思う存分出きるのは今年までだから最後くらいはと思ってね

java.awt.font.*は必要に応じて読んでる
722デフォルトの名無しさん:2009/09/14(月) 23:26:21
とりあえずSwingスレに帰れ
723デフォルトの名無しさん:2009/09/14(月) 23:40:46
>>630
わざわざありがとうございます。
VelocityEngineはスレッドセーフだけど
contextはスレッドセーフじゃないから都度インスタンス作るように
って書かれてるみたいですね、
安心できました、助かりました。
724デフォルトの名無しさん:2009/09/15(火) 00:28:01
>>701
QTが入っていると、Pathの設定とかうまくいかないみたいだよ↓。
http://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デフォルトの名無しさん:2009/09/15(火) 11:04:45
hibernateって重いな
727デフォルトの名無しさん:2009/09/15(火) 11:10:58
iBatisのがお勧めだぞ。
新規でhibernate採用してるとこまだある?
728デフォルトの名無しさん:2009/09/15(火) 12:46:08
関連の強いデータ,ってかPOJOとRDBテーブルって
分離して書きたいけど,分離して読み解きたくないジレンマ
729デフォルトの名無しさん:2009/09/15(火) 13:23:27
HQL便利だな
730デフォルトの名無しさん:2009/09/15(火) 15:06:41
ここ2年くらいJavaから離れていたんですが、最近のO/Rマッパーの主流はiBatisですか?
S2Daoとかhibernateは何回か使ったことありますが、最近のオススメを教えてください
731デフォルトの名無しさん:2009/09/15(火) 15:14:49
一番いいのはO/Rマッピングしないことだよね
732デフォルトの名無しさん:2009/09/15(火) 15:23:45
しないって全部生で書くのか?
733デフォルトの名無しさん:2009/09/15(火) 15:34:17
生はある意味気持ちいいけど生まれたものは責任取らなくっちゃね
734デフォルトの名無しさん:2009/09/15(火) 15:40:20
はしたない
735デフォルトの名無しさん:2009/09/15(火) 15:46:17
なんでO/Rマッピングする派が多いの?
736デフォルトの名無しさん:2009/09/15(火) 16:25:56
詰め直す手間を省きたいから?
UML図からのコード生成から、そういったフレームワークに乗せられるから?
737デフォルトの名無しさん:2009/09/15(火) 18:41:06
ドメインモデル礼賛派が多数を占めてるからじゃね?ケッ
738デフォルトの名無しさん:2009/09/15(火) 19:43:50
マジレスするとS2JDBCが最強
ドメインモデルがけなされるのは業務ファットなプロジェクトで使ってないからだと思う。
そーなってくるとドメインモデルの問題というより設計の問題といえる。
739デフォルトの名無しさん: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デフォルトの名無しさん:2009/09/15(火) 20:28:44
無論死ぬまで
741デフォルトの名無しさん:2009/09/15(火) 20:37:15
>>740
ありがとうございます
742デフォルトの名無しさん:2009/09/15(火) 20:41:15
ワロタ
743デフォルトの名無しさん:2009/09/15(火) 20:58:11
なんでantなのか?
makefile,batではだめだったのか?
xmlの文字量ならJavaをantのように使えたほうがよかったのに
744デフォルトの名無しさん:2009/09/15(火) 21:11:25
俺もそう思う
745デフォルトの名無しさん:2009/09/15(火) 21:30:07
>>743
ExcelVBAとかからゴリゴリ
Ant生成するときはXMLの方が楽です…。
746デフォルトの名無しさん: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デフォルトの名無しさん: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デフォルトの名無しさん:2009/09/15(火) 21:45:53
>>746
このスレか前のスレに同じような質問があった気がする
749デフォルトの名無しさん:2009/09/15(火) 21:46:04
>>746
http://d.hatena.ne.jp/suer/20090427/1240758191
なんだが・・・あるぇー、文字列連結ってコンパイル時にStringBufferだか
StringBuilderに置き換えられてなかったっけ?
750デフォルトの名無しさん:2009/09/15(火) 21:48:36
>>749
そうだよな
でも、このhatena記事みると、あれー?って感じだなw
751デフォルトの名無しさん:2009/09/15(火) 21:51:14
コンパイラの最適化オプション-Oとかで結構変わったりするかもな
最新のは最適化オプションがデフォルトで入るときいたこともあるが
752デフォルトの名無しさん:2009/09/15(火) 21:53:55
そりゃループの中で毎回 str += s; してるからだろ
str += s; は str = new StringBuilder(str).append(s).toString(); みたいなことになるから無駄だらけ
753デフォルトの名無しさん:2009/09/15(火) 21:58:13
>>752
つまりはnewしてるのがオーバーヘッドの要因ってこと?
じゃあ、>>746のような+をつなげたような書き方なら
str.append(str.group(1)).append(str.group(2)).....
な感じになって、あんまり変わらない?
754デフォルトの名無しさん:2009/09/15(火) 22:15:56
>>753
途中で定数文字列の足し算が複数回続くとか無い限り、
変わらないと思っていい。

ただ、言語仕様上は別に+演算子は二つのStringオブジェクトの
内容をくっつけたStringオブジェクトを新規作成する、
とだけで別にStringBuilderを絶対に使う、とは書いてないんだよねえ。
http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.18.1.2
755デフォルトの名無しさん:2009/09/15(火) 22:20:32
何回「+」でつなげるかってーのは(あまり)重要じゃない。
Stringのインスタンスが何回生まれるかってことが大事。
756デフォルトの名無しさん: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デフォルトの名無しさん:2009/09/15(火) 22:30:39
>>756
すばらしい
逆コンパイルすることで、わかりやすく解析できるな
やっぱnewの連発(インスタンス生成)が問題なんだな
758デフォルトの名無しさん:2009/09/15(火) 22:34:25
このへんはコンパイラ依存
759デフォルトの名無しさん:2009/09/15(火) 22:35:38
C++で作ったコンパイラはやっぱり安心できる
760デフォルトの名無しさん:2009/09/15(火) 22:52:08
8 new java.lang.StringBuilder [18]

これ自体は10ナノ秒/一回程度のコストだから
文字列連結処理全体から見た場合の影響度はきわめて小さい


23 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [33]

問題なのはこれが繰り返されること
761デフォルトの名無しさん:2009/09/15(火) 22:57:30
>>760
なるほど、いっかいいっかい、Stringオブジェクトへ変換
(新規Stringオブジェクトを生成してる)がまずいのか
762デフォルトの名無しさん:2009/09/15(火) 23:44:21
まずかどうかは状況次第
10回程度連結しようが普通のアプリじゃオーバヘッドにはならんよ
763デフォルトの名無しさん:2009/09/15(火) 23:48:01
StringとStringBuilderの間で文字データを何度もやりとりしてるのが大きいんじゃないかなぁ
StringからStringBuilderへ文字データをコピー、StringBuilderからStringへ文字データをコピー・・・
文字列が長くなるほどつらい
764デフォルトの名無しさん:2009/09/16(水) 00:03:56
java.nio.*が利用出来ない環境で、その実行環境でサポートされている
エンコーディング(ISO-2022-JPやEUC-JPなど)の一覧を取得する方法は
ありませんか?
具体的にはjava.nio.charset.Charset#availableCharsets()相当の情報を
取得する方法が知りたいです。
765デフォルトの名無しさん:2009/09/16(水) 01:33:02
sunのjavacはコンパイル時の最適化はあんまりしない。
JITとかにまかせる方。
766デフォルトの名無しさん:2009/09/16(水) 02:15:59
jadの入手先が見つかりません。
767デフォルトの名無しさん:2009/09/16(水) 02:32:48
googleの一番上に出てくるけど?
768デフォルトの名無しさん:2009/09/16(水) 02:37:52
ありがとう、見つかりました。
769デフォルトの名無しさん:2009/09/16(水) 08:30:28
>>764
ない。

代替方法としては jre/lib/charsets.jar の中をのぞいてみるとか
既知のエンコーディング名を String#getBytes(String) につっこんでみて
UnsupportedEncodingException になるかテストするとか
770デフォルトの名無しさん:2009/09/16(水) 10:10:28
クラスパスにjarとかzipじゃなくフォルダを指定すると
そのフォルダにあるXMLとかをフルパスで指定しなくても
読めるようになるんでしょうか?
771デフォルトの名無しさん:2009/09/16(水) 10:11:26
>>770
当たり前
772デフォルトの名無しさん:2009/09/16(水) 10:12:42
>>771
すっげー
773デフォルトの名無しさん:2009/09/16(水) 10:55:08
>>771
かっけー
774デフォルトの名無しさん:2009/09/16(水) 10:56:33
パネェ…
775デフォルトの名無しさん:2009/09/16(水) 12:27:20
(´・ω・`)うっほっほ
776デフォルトの名無しさん:2009/09/16(水) 18:36:52
型パラメータを持つクラスのオーバーロードがうまくいかないんですが、どう書けばよいのでしょうか?
今は、Vectorにそれぞれの名前を持たせたい(JTreeにつっこむときのために)のですが、型パラメータ部分を無視すればコンパイルできるし、
動くことは動くのですが、型が一致しない可能性について警告みたいなのがでて。
具体的には
警告:[unchecked] raw 型 java.util.Vector のメンバとしてのacd(E)への無検査呼び出しです。


よろしくお願いします。
777デフォルトの名無しさん:2009/09/16(水) 18:59:03
ソースうpするよろし
778デフォルトの名無しさん:2009/09/16(水) 19:11:19
ありがとうございます。

class MyVector extends Vector{
private String name;
public MyVector(String s){
super();
this.name = s;
}
public String toString(){
return this.name;
}
}

これのVector のもともとの場合、インスタンス化の時にVector<String,String>みたいに指定
できるじゃないですか?っていうか、それをしないと、コンパイラに怒られるみたいなんですけど、
上みたいにするとどうもそれができなくなって。それなのにコンパイラには怒られるので・・・。
779デフォルトの名無しさん:2009/09/16(水) 19:21:23
class MyVector extends Vector<String> {
または
class MyVector<E> extends Vector<E> {
のようにするといいよ
780デフォルトの名無しさん:2009/09/16(水) 19:26:58
うまくいきました。
ありがとうございます!
781デフォルトの名無しさん:2009/09/16(水) 19:29:33
<T> じゃないと嫌どす
782デフォルトの名無しさん:2009/09/16(水) 19:34:46
インデントくれーつけろや
783デフォルトの名無しさん:2009/09/16(水) 20:25:52
インデントとインシデントの区別がつかん
784デフォルトの名無しさん:2009/09/16(水) 20:40:58
あ、すみません、コピペしたらタブでのインデントが消えていたみたいです。
ごめんなさい。
785デフォルトの名無しさん:2009/09/16(水) 20:45:14
>>766
MergeDoc で Pleiades All In One 入れちゃうのが Jad 入手にはいっちゃん
手っ取り早かったりする。

ただ貧弱なPCだと Pleiades は無茶だから薦めない。
786デフォルトの名無しさん:2009/09/16(水) 20:51:32
>>778
Vectorは使わないほうがよいよ。
以前の互換性のために残してある過去の遺物。
787デフォルトの名無しさん:2009/09/16(水) 20:52:32
Vectorがなくちゃプログラム作れない
788デフォルトの名無しさん:2009/09/16(水) 20:53:06




                   !?




.
789デフォルトの名無しさん:2009/09/16(水) 21:20:06
インデント・・・・・字下げ
インシデント・・・入れ歯洗浄剤
790デフォルトの名無しさん:2009/09/16(水) 21:25:21
インシデントって言ったら、ITILくらいしか思い浮かばないけどな〜
791デフォルトの名無しさん:2009/09/16(水) 21:29:27
CERTでしょ
792デフォルトの名無しさん:2009/09/16(水) 22:57:29
しかしVectorの代価手段がおざなり
793デフォルトの名無しさん:2009/09/16(水) 23:18:30
同期ラッパーが不要。以外に何か特徴あったっけ?
794デフォルトの名無しさん:2009/09/16(水) 23:28:18
それそれ
795デフォルトの名無しさん:2009/09/16(水) 23:41:17
いいかげん Collections#synchronizedList() 使うことを覚えてください。
796デフォルトの名無しさん:2009/09/17(木) 00:13:10
あらら・・・
797デフォルトの名無しさん:2009/09/17(木) 00:26:20
しかしそれでは解せない
798デフォルトの名無しさん:2009/09/17(木) 01:00:12
よすよす
799デフォルトの名無しさん:2009/09/17(木) 08:43:14
なにこの流れ?w
最近変なのがいついちゃったからな・・・
800デフォルトの名無しさん:2009/09/17(木) 08:45:32
Vector使ってる奴はよほどの素人だな
801デフォルトの名無しさん:2009/09/17(木) 08:54:06
でもお前らList<T>つかってんだろw
802デフォルトの名無しさん:2009/09/17(木) 08:57:46
最近の流れについていけないんだけど
<T>ってなんぞ・・・?
List<String>とかならジェネリクスだよねってのはわかるんだけど
1.4時代からなかなか抜けれない・・・
803デフォルトの名無しさん:2009/09/17(木) 08:59:27
>>802
                     _ ___
    / ̄ ̄ ̄ ̄\,,      /−、 −、    \
   /_____  ヽ    /  |  ・|・  | 、    \
   | ─ 、 ─ 、 ヽ |  |   / / `-●−′ \    ヽ
   |  ・|・  |─ |___/   |/ ── |  ──   ヽ   |
   |` - c`─ ′  6 l   |. ── |  ──    |   |
.   ヽ (____  ,-′   | ── |  ──     |   l
     ヽ ___ /ヽ     ヽ (__|____  / /
     / |/\/ l ^ヽ    \           / /
     | |      |  |     l━━(t)━━━━┥
804デフォルトの名無しさん:2009/09/17(木) 13:26:09
ヒント

< > ←これは両腕を腰に当てている様子

あとはわかるな?
805デフォルトの名無しさん:2009/09/17(木) 14:47:19
【読者参加型企画】2,000行のJavaソースコードを読むのに何分かかりますか?
http://codezine.jp/article/detail/4388

▼ ここからすぐに参加できます ▼
コードレビュー オンライン ハンズオン
http://se.aist-nara.ac.jp/html/review/code_review_cost_estimation/html/
806デフォルトの名無しさん:2009/09/17(木) 16:09:16
>>802
だっせーなwww
807デフォルトの名無しさん:2009/09/17(木) 16:13:21
煽りはいいからさっさと答えろクズども
ここは質問スレだろ
俺様の目が黒いうちに早く答えやがれ
808デフォルトの名無しさん:2009/09/17(木) 16:21:46
List<T> ならわかる?
List<E> ならわかる?
809デフォルトの名無しさん:2009/09/17(木) 17:11:54
クズはクズかごへ入れましょう
地球に優しいJAVAスレです
810デフォルトの名無しさん:2009/09/17(木) 21:17:42
なんかvectorを勘違いしてるやつがいないか?
811デフォルトの名無しさん:2009/09/17(木) 21:25:46
>>804
T はネクタイだな
海パン刑事にしか見えなくなってきた
812デフォルトの名無しさん:2009/09/17(木) 22:07:55
なんか寒いな。このスレ
813デフォルトの名無しさん:2009/09/17(木) 22:10:34
じゃあ、あなたの知性であっためてやってください
814デフォルトの名無しさん:2009/09/17(木) 22:47:09
うききっ(寒い)
815デフォルトの名無しさん:2009/09/17(木) 22:59:55
(∩´∀`)∩ワーイ!<T>ダァ!
816デフォルトの名無しさん:2009/09/17(木) 23:17:12
javaでflashをやるにはどうすればいいのですか?
教えて下さい!
817デフォルトの名無しさん:2009/09/17(木) 23:22:15
すいません、初心者です。
戻り値を複数戻したい場合どうすればいいのですか?
よろしくお願いします。
818デフォルトの名無しさん:2009/09/17(木) 23:30:17
>>817
戻り値をオブジェクトで返す
819デフォルトの名無しさん:2009/09/17(木) 23:32:17
メモリ上にオブジェクトが何個作られのるかという内容を質問させて頂きたいのですが、
下記のソースですと「仮」オブジェクトが2つメモリ上に作られ、その2つのオブジェクトの参照先がaとbの参照変数に格納管理されていると今までは考えていたのですが、eclipseのデバッグ機能でオブジェクトIDを見ながら処理させていくと、どちらもIDが同じになります。
ということは、
メモリ上には1つの「仮」オブジェクトしか作られていないということになるのでしょうか?

public class StringTest {
  public static void main(String[] args) {
    String a=new String("仮");
    String b=new String("仮");
    if(a==b){
      System.out.println("等しい");
    }else{
      System.out.println("等しくない");
    }
  }
}
820デフォルトの名無しさん:2009/09/17(木) 23:32:18
>>817
配列にして返す
821デフォルトの名無しさん:2009/09/17(木) 23:34:48
>>817
複数回呼び出す。
822デフォルトの名無しさん:2009/09/17(木) 23:34:53
>>819
String型の場合はそうさね
823デフォルトの名無しさん:2009/09/17(木) 23:35:05
おい、うるせーぞ
824デフォルトの名無しさん:2009/09/17(木) 23:38:02
たしかに〜
825デフォルトの名無しさん:2009/09/17(木) 23:40:53
>>819
ちなみに、そのコードの実行結果はどうなったの?
826デフォルトの名無しさん:2009/09/17(木) 23:42:14
>>822
newしたら別のもん。Stringとか関係ない。

>>819
newしたらオブジェクトは絶対に作られるし参照も別になる。
但し別の箇所に書かれた同じ内容の文字列リテラルは参照が同一となる。

その例でいえば、"仮"自体はどっちも同じオブジェクト。
しかしnew Stringで2つの新規オブジェクトが作成される。
まあ、"仮"自体も、その2つのオブジェクトもプライベートフィールドに持ってる
char[]配列は同じもの指してるが。
827デフォルトの名無しさん:2009/09/17(木) 23:43:33
>>822
適当なこと言わないように
828デフォルトの名無しさん:2009/09/17(木) 23:45:51
あの...flashを...
829デフォルトの名無しさん:2009/09/17(木) 23:46:40
>>828
flashやるんだったらjavaいらなくね?って感じですが
正直いいますと。。。
830デフォルトの名無しさん:2009/09/17(木) 23:48:07
そうでしたか。マイクロソフトでやってみます。
831デフォルトの名無しさん:2009/09/17(木) 23:49:05
832デフォルトの名無しさん:2009/09/17(木) 23:50:02
それはトイレのウンチを流す方のフラッシュだな
833デフォルトの名無しさん:2009/09/17(木) 23:50:51
>>831
こ、これとは違うと思うんですが。。
flash、"a"の方ですよたぶん、>>828が言ってるのは
834デフォルトの名無しさん:2009/09/17(木) 23:51:56
( ^ω^)ググレカレー。うまいお!
835デフォルトの名無しさん:2009/09/17(木) 23:54:58
Don mai keru
Sou iu toki mo arusa
836デフォルトの名無しさん:2009/09/17(木) 23:57:32
Souiutokibakkadesu
837デフォルトの名無しさん:2009/09/18(金) 00:31:19
なんだかもう人生につかれたので人生オフラインしてくる
838デフォルトの名無しさん:2009/09/18(金) 02:17:19
オブジェクトIDってなんだ?
ハッシュナンバーなら分かるが
839デフォルトの名無しさん:2009/09/18(金) 02:26:00
ハッシュコードだった
840デフォルトの名無しさん:2009/09/18(金) 02:27:52
>>839
( ´,_ゝ`)プッ
841838-839:2009/09/18(金) 02:31:49
ハッシュコードをオブジェクトIDと間違えてるなら

ハッシュコードはオーバーライドされてるから
文字列が同じなら同じ結果が計算されるんだから
同じメモリー上のオブジェクトだとは言えない
842デフォルトの名無しさん:2009/09/18(金) 09:07:54
Object#equals()でもみてこい
843デフォルトの名無しさん:2009/09/18(金) 10:13:11
Javaでファイルの読み込みは
FileReader fr = new FileReader(fileName);
BufferedReader br = new BufferedReader(fr);
//ファイルの読み込み
fr.close();

ファイルの書き込みは
FileWriter fw = new FileWriter(scoreFile);
BufferedWriter bw = new BufferedWriter(fw);
//ファイルの書き込み
bw.close();

のような感じでやると習ったのですが、
読み込みではfrをcloseするのに対して
書き込みではfwではなくbwをcloseするのはなぜなのでしょうか?
fwはcolseしなくていいのでしょうか?
844デフォルトの名無しさん:2009/09/18(金) 10:13:55
また逆に読み込みでbrをcloseしなくてもいいのでしょうか?
845デフォルトの名無しさん:2009/09/18(金) 10:17:46
>>843
bw.close() すれば内部で fw.close() する。
fw.close() じゃなくて bw.close() するのは
bw にバッファリングされた文字を書き出させるため。
846デフォルトの名無しさん:2009/09/18(金) 10:18:44
素人だな
847デフォルトの名無しさん:2009/09/18(金) 10:27:23
動けばいいです
848デフォルトの名無しさん:2009/09/18(金) 10:33:05
動けばいいならclose要らないなw
849デフォルトの名無しさん:2009/09/18(金) 10:40:59
close()の委譲は激しく実装依存の話なので
可能ならば委譲の先っぽから全部close()していってください
850デフォルトの名無しさん:2009/09/18(金) 10:41:58
動けばいいとは・・・
おバカな質問大歓迎w
851デフォルトの名無しさん:2009/09/18(金) 11:00:03
>>845
なんとなくわかりました。
じゃあ読み込みでbrをcloseしないのは
どういうふうに説明できるのでしょうか?
852デフォルトの名無しさん:2009/09/18(金) 11:06:05
>>851
そこは fr.close() でも br.close() でもどっちでもいいから。
bw.close() との対称性とか気にせずに fr.close() してるだけ、かな?

よくわからん。
853デフォルトの名無しさん:2009/09/18(金) 11:41:14
あ…ありのまま 今 起こった事を話すぜ

ソースの重複してる部分をサブルーチン化して短くコンパクトに
してみたんだが、コンパイル後のjarファイルの総量は増えてた

な… 何を言ってるのか わからねーと思うが(略

854デフォルトの名無しさん:2009/09/18(金) 11:44:36
"さらに実行すると遅くなる"不思議が含まれてないぞ
855デフォルトの名無しさん:2009/09/18(金) 11:52:18
重複してても圧縮されるからな
856デフォルトの名無しさん:2009/09/18(金) 11:57:36
なんか変なやつがいついちゃってるな・・・
857デフォルトの名無しさん:2009/09/18(金) 12:00:11
>>856
お前だろ?
858デフォルトの名無しさん:2009/09/18(金) 12:11:07
>>856
ageんなカス
859デフォルトの名無しさん:2009/09/18(金) 12:15:09
もうだめだ…こんあ糞スレ……
860デフォルトの名無しさん:2009/09/18(金) 16:11:13
class hoge {
public static void main(String[] args) {
String a = new String("java");
String b;

b = a;
a = a.toUpperCase();

System.out.println(b);
}
}

String型のbにaと同じオブジェクトを参照させたいのですがどうすればいいのでしょうか。
配列の場合はできるのですが、String型の場合はできません。

aを加工すればbはaと同じオブジェクトを参照しているので
同じ文字列をを出力できると思っていたのですが。
861デフォルトの名無しさん:2009/09/18(金) 16:23:12
同じオブジェクト参照してないよそれ
862デフォルトの名無しさん:2009/09/18(金) 16:25:51
StringBufferにすればいいんじゃない
863デフォルトの名無しさん:2009/09/18(金) 16:30:01
>>860
> a = a.toUpperCase();
この時点で a != b だ、よぉ〜く考えてみな。
864デフォルトの名無しさん:2009/09/18(金) 16:31:55
Stringクラスは変更不能だから
865860:2009/09/18(金) 16:55:51
つまりaの値を変更した時点でaは新たなオブジェクトとして再生成されてしまうということですね。
866デフォルトの名無しさん:2009/09/18(金) 17:31:53
toUpperCaseは自分自身の値を変更しないよ
大文字の新しいStringを返すメソッド
867860:2009/09/18(金) 18:07:43
String型は値を変更できないんですね。基礎的な部分での誤解で申し訳ございません。
オブジェクトの値を変更したい場合はStringBufferを使えば良いとのことですので
そちらの方法を試してみます。いろいろと有難うございます。
868デフォルトの名無しさん:2009/09/18(金) 19:31:04
★嫌がる女子中学生に無理矢理★
http://pc11.2ch.net/test/read.cgi/prog/1180796247/
869デフォルトの名無しさん:2009/09/18(金) 21:57:01
Javaでテキストエディタを作りたいのですがパフォーマンス的にはどうでしょうか。
C/C++と比べるとJavaは遅いと言われていますが、NetBeansなどのエディタは相当速い気もするのですが。
Javaで作るべきでしょうか。
870デフォルトの名無しさん:2009/09/18(金) 22:11:24
多言語と比較して、Javaのパフォーマンスが見劣りするような状況は見られなくなっています。
これはCやC++と較べた場合にも当てはまります。

エディタを作る場合、高機能なものが作りたいのであればJavaを選択するメリットは大きいと思います。
逆に、とにかく高性能なものが必要であれば、より低水準な領域に手が出せる
C/C++を検討してみるのがいいかもしれません。
871デフォルトの名無しさん:2009/09/18(金) 22:25:59
V2CがJaneより速いことを考えるとネイティブと遜色ない速さということが
わかる
872デフォルトの名無しさん:2009/09/18(金) 22:28:38
CPUが3Gとかマルチコアになってる時代なのに、その速い・遅いってのは何が基準なわけ?
873デフォルトの名無しさん:2009/09/18(金) 22:37:00
皆が最新鋭と思っちゃ大間違い。1GHz512MBも意外と現役・・・退役させろよホント。
874デフォルトの名無しさん:2009/09/18(金) 22:41:42
>>869

jEdit
875デフォルトの名無しさん:2009/09/18(金) 22:50:22
2002年製ノートが1GHz512MBくらいだった気がするな
胸が熱くなってきた
876デフォルトの名無しさん:2009/09/18(金) 22:52:38
ネットブック(回線同時契約で実質1万ぐらい)のスペックがそのくらいじゃなかったか?
877デフォルトの名無しさん:2009/09/18(金) 23:10:14
きちんと作ればJavaだろうがなんだろうが速くなる。
878デフォルトの名無しさん:2009/09/18(金) 23:11:01
で、その速いって言うのは何と比べてるわけ?
879デフォルトの名無しさん:2009/09/18(金) 23:38:31
>>842
遅レスだが
equalsも文字を比較するようにオーバーライドされているから
同じオブジェクトかどうかを比較する事はできない
880デフォルトの名無しさん:2009/09/18(金) 23:38:57
C#
881デフォルトの名無しさん:2009/09/19(土) 00:33:57
( ^ω^)おっおっお
882879:2009/09/19(土) 01:31:42
サブクラスのインスタンスから
スーパークラス部分のequals、hashcodeって呼び出せないよね?
これってわざとこういう仕様にしたのかな?
883デフォルトの名無しさん:2009/09/19(土) 01:33:14
>>882
super.メソッド名()
884デフォルトの名無しさん:2009/09/19(土) 01:33:59
>>882
まずはやってみようぜ
885879:2009/09/19(土) 01:36:37
>>883
>>884
それはStringクラスの中なら出来るんだが
実際インスタンをObjectにキャストした物経由でやるとサブクラスのが呼び出される
886デフォルトの名無しさん:2009/09/19(土) 01:41:54
>>885
サブクラスを作るときにオーバーライドしなければいいだけの話
オーバーライドした=スーパーインスタンスメソッドは要らないはず
両方ひつようなら、両方に対応できるよう、サブクラスを実装すれば
いいだけ
887デフォルトの名無しさん:2009/09/19(土) 01:43:19
>>885
低脳の相手は疲れるわ
888879:2009/09/19(土) 01:44:02
オブジェクトが等しいかどうか調べるには
Stringのequals、hashコードを改造して書き換えたくなってくるがどうよ?
Stringのequals.hashcodeの中で比較したい
889デフォルトの名無しさん:2009/09/19(土) 01:47:51
Stringのhashcode、equalsのfinalを解除したい
890デフォルトの名無しさん:2009/09/19(土) 01:48:09
>>888
じゃあ、Stringクラスのサブクラスつくって、equalsでもhashでも、
オーバーライドすりゃいいじゃないか
ちがうんか?
891デフォルトの名無しさん:2009/09/19(土) 01:49:02
関数テーブルの実行はmethodクラスとinvocableでするのが普通なの?
892デフォルトの名無しさん:2009/09/19(土) 01:49:47
JavaFXってどうなの?
893879:2009/09/19(土) 01:50:35
すまん、別にequals、hashcodeを書き換えなくも良いか
Stringクラスを継承して、super.superとやれば良いかな
894デフォルトの名無しさん:2009/09/19(土) 01:53:20
>>892
終わってる
895デフォルトの名無しさん:2009/09/19(土) 01:55:09
>>893
ざんねんながら、super.super.メソッド名()のような、2つ以上
上のスーパークラスのメンバにはアクセスできんのだよ
896デフォルトの名無しさん:2009/09/19(土) 01:55:53
>>893
アホ杉ワロタ
897879:2009/09/19(土) 01:56:12
>>890
String、final 付いてるな
これはあやしい
Stringをぶっ壊すしかない
898デフォルトの名無しさん:2009/09/19(土) 01:57:43
Stringクラスはfinalクラスのようだな
じゃんねん
899879:2009/09/19(土) 01:58:48
Stringのソースコードってあるの?
あればオリジナルなStirngを作れば良いか
900デフォルトの名無しさん:2009/09/19(土) 01:59:27
>>888
オブジェクトが等しいか比較するのは == だろ。
equals メソッドを使う必要はない。
901デフォルトの名無しさん:2009/09/19(土) 01:59:42
ところでだ
なんで、879はそんなにequalsメソッドを書き換えたいの?
902デフォルトの名無しさん:2009/09/19(土) 02:00:10
ポリモルフィズムを理解してないからだろw
903デフォルトの名無しさん:2009/09/19(土) 02:01:41
>>902
おまえはおまえで、どうしてここでそれが出てくるんだ?
904879:2009/09/19(土) 02:08:15
>>900
あれ?そういえばそうだな
public class StringTest {
public static void main(String[] args) {
String st1 = new String("moji");
String st2 = new String("moji");
System.out.println(st1 == st2);
}
}
やっぱりfalseになったわ
どこかで同じになったって書いてあって気になったから実験してみた
905デフォルトの名無しさん:2009/09/19(土) 02:11:02
>>904
>>819
同じになったなんて書いてない。
906デフォルトの名無しさん:2009/09/19(土) 02:12:17
>>904
前に書いてあったのは、Stringオブジェクトの内部変数char[]が
同じリテラルのオブジェクト同士は同じだっていうはなしじゃなかったか?
907デフォルトの名無しさん:2009/09/19(土) 02:13:54
908879:2009/09/19(土) 02:22:20
>>906
そういうことか
それなら同じになってもおかしくはないな
909デフォルトの名無しさん:2009/09/19(土) 02:51:05
単一のリテラルから複数のStringオブジェクトを生成する意味がねーんだっつーの。
finalなのもサブクラスでイミュータブルが不用意に破られないようにしている意味が大きいんだから。
910デフォルトの名無しさん:2009/09/19(土) 03:06:24
関数テーブルの実行はmethodクラスとinvocableでするのが普通なの?
911デフォルトの名無しさん:2009/09/19(土) 03:18:21
JavaではInterface切るのが普通じゃないの。
912デフォルトの名無しさん:2009/09/19(土) 04:51:37
>>908
レベルの低い奴は初質に行けよ
913デフォルトの名無しさん:2009/09/19(土) 07:45:22
おまえごときじゃジャヴァは無理
日本男児なら素直にRUBYを使え
914デフォルトの名無しさん:2009/09/19(土) 07:47:50
だな
915デフォルトの名無しさん:2009/09/19(土) 08:24:19
>>889
オーバーライドされる前のhashcode見たければ
System#identityHashCodeを使えばいいよ。

実際にこれ使ったIdentityHashMapとかあるわけだし。
916デフォルトの名無しさん:2009/09/19(土) 10:13:43
そうか、そうしてみるわ
でも、ほとんど必要ないな
917デフォルトの名無しさん:2009/09/19(土) 10:23:25
まつもとゆきひろ(笑)
918デフォルトの名無しさん:2009/09/19(土) 10:24:23
坂本と鳥谷は比べる意味が無いな
チームへの貢献度なら桁違いだし
919デフォルトの名無しさん:2009/09/19(土) 10:26:04
スレ間違えた
920デフォルトの名無しさん:2009/09/19(土) 15:47:51
// 独自のスレッドで動く
public void run() {
  while (true) {
    current = blockingQueue.take();
    // current を処理する (略)
  }
}

// e がキューに入っているか現在処理中であるなら true
synchronized boolean check(Object e) {
  return (e == current) || blockingQueue.contains(e);
}

(つづく)
921デフォルトの名無しさん:2009/09/19(土) 15:49:20
(つづき)

以上のようなコードを書いたのですが、
ある x というオブジェクトが
キューから take() で取り出された後 current に代入されるまでの
わずかな間に check(x) が呼ばれると false を返してしまいます。

複雑なやり方をすれば何とか解決できそうなんですが、
何かシンプルな解決法か、
こういった場合の一般的なイディオムはありますか?
922デフォルトの名無しさん:2009/09/19(土) 16:00:38
ロックオブジェクト使えばいいだけじゃねーの…
排他制御とかスレッドの基本中の基本だから入門書でも読んでからやってくんねーか

お前入門書レベルの分からない壁にぶち当たる度にこのスレに質問しに来る気か?
923デフォルトの名無しさん:2009/09/19(土) 16:08:50
currentをlockすればいいだけじゃね
924デフォルトの名無しさん:2009/09/19(土) 16:13:46
>>922-923
バカじゃねーの
current = Queue.peek()してから次にQueue.poll()すればいいだけだろ
頭おかしいんじゃねーのか
知ったかの初心者が回答するんじゃねーんだよ
お前らこそ入門書読んでやがれクソハゲ
925デフォルトの名無しさん:2009/09/19(土) 16:16:24
(`;ω;´)
926デフォルトの名無しさん:2009/09/19(土) 16:17:39
=≡つ)ω;´)
927デフォルトの名無しさん:2009/09/19(土) 16:20:36
平和だね
928デフォルトの名無しさん:2009/09/19(土) 16:23:12
currentの処理スレッドが1スレッドだけならそうだね。

currentのスコープがようわからんし、checkを誰が呼びたいのかもよくわからんけど。
ついでにblockingQueueの型も。
929920:2009/09/19(土) 16:55:18
ブロッキングキューの take() は、キューが空のとき待機するので、
単純に synchronized を使うとデッドロックする可能性があります。
take() を使うのをあきらめて、
peek() が非 null を返すまでビジーウェイトするべきでしょうか?

画像ファイルを次々にキューに入れていって、
それを1つずつロードするというイメージです。
check() が false を返したファイルをキューに追加するとか、
check() が true を返した画像ファイルには
「ロード中」の印をつけるとかいった使い方をします。
930デフォルトの名無しさん:2009/09/19(土) 17:04:11
そういうのは最初に書けよ。
931デフォルトの名無しさん:2009/09/19(土) 17:04:26
誰かさん専用質問スレの様だ
分からないことは全部ここで聞きたいらしい
932デフォルトの名無しさん:2009/09/19(土) 17:05:22
嫌なら出てけよ
933デフォルトの名無しさん:2009/09/19(土) 17:06:08
嫌なら追い出せよ
934デフォルトの名無しさん:2009/09/19(土) 17:07:54
( ^ω^)
935デフォルトの名無しさん:2009/09/19(土) 17:08:32
これは>>931にとって予期せぬExceptionだ。
936デフォルトの名無しさん:2009/09/19(土) 17:08:59
だな
937デフォルトの名無しさん:2009/09/19(土) 17:11:35
>>935
(`;ω;´)
938デフォルトの名無しさん:2009/09/19(土) 17:12:02
=≡つ)ω;´)
939デフォルトの名無しさん:2009/09/19(土) 17:14:51
もう次スレいらねぇだろこれw
940デフォルトの名無しさん:2009/09/19(土) 17:17:30
平和だね
941デフォルトの名無しさん:2009/09/19(土) 17:25:07
何のためのブロッキングキューなのかわからなくなってきた
942デフォルトの名無しさん:2009/09/19(土) 17:29:15
もうプログラミング辞めてくれないですか。
943デフォルトの名無しさん:2009/09/19(土) 17:29:52
  ∧_∧
  (´・ω・) いやどす
  ハ∨/~丶
  ノ[三ノ |
 (L|く_ノ
  |* |
  ハ、__|
""~""""""~""~""~""
944デフォルトの名無しさん:2009/09/19(土) 17:31:10
×もうプログラミング辞めてくれないですか。
○もうプログラミング辞めてくれませんか。
945デフォルトの名無しさん:2009/09/19(土) 17:39:16
ClassNotFoundExceptionっていうエラーが出るのですが
なにをどうすればFoundできるんでしょうか?
クラスファイルはあるんですよ。
946デフォルトの名無しさん:2009/09/19(土) 17:40:04
見えてないか触れないか
947デフォルトの名無しさん:2009/09/19(土) 18:11:23
>>929-930
currentに処理前 処理中 処理完了のフラグをフィールドで持たせるのは?
948デフォルトの名無しさん:2009/09/19(土) 18:14:20
>>947
逝ってよし
949デフォルトの名無しさん:2009/09/19(土) 19:47:46
スレッド間の接点は極力少ないほうが良い
950デフォルトの名無しさん:2009/09/19(土) 22:19:30
javaでこんなメソッドを作りたいです。
例えばあるファイルを複数のフォルダにコピーするメソッドで、
引数に元ファイルパスを指定し、コピー先ファイルパスを以下のように指定します。
文字列で、"C:\\Program Files\\folder(hoge)" ※hogeはあらかじめ決めておく任意の文字列
そしてhogeが1から10までだとすると1や10も引数に指定してやります。
具体例:
boolean method("C:\\SourceForge\\textfile.txt", "C:\\Program Files\\folder(hoge)\\copyfile.text", 1, 10)
メソッド内で何をするかと言うと、第2引数の文字列から予め決めてある文字列が含まれているか検索します。
勿論、見つからなかったらfalseを返します。
見つかったら文字列をそこで分解してやります。
この場合は、"C:\\Program Files\\folder(" と ")\\copyfile.text"です。
そしてforループを1から10で回してやって
C:\\Program Files\\folder(1)\\copyfile.text
C:\\Program Files\\folder(2)\\copyfile.text
|
C:\\Program Files\\folder(10)\\copyfile.textとコピーするんです。

やっぱりこんなメソッドおかしいでしょうか?
何か他にこうすればいいじゃんっていうのがあったら教えて貰えませんか?
951デフォルトの名無しさん:2009/09/19(土) 22:23:15
こたえは、、頭がおかしい。
952デフォルトの名無しさん:2009/09/19(土) 22:29:48
method("C:\\SourceForge\\textfile.txt", "C:\\Program Files\\folder", "copyfile.text", 1, 10)

でいいのでは
953デフォルトの名無しさん:2009/09/19(土) 22:35:16
>>951
すみません。プロではなくただの素人なので変なことを言ってるかもしれません。

>>952
なるほど。それは確かにそうですね。
>>952のようなメソッドってそんなにおかしなメソッドじゃなく割とありそうなメソッドでしょうか?
954デフォルトの名無しさん:2009/09/19(土) 22:44:20
>>953
ageるなカス
955デフォルトの名無しさん:2009/09/19(土) 22:47:11
>>953
「おかしなメソッド」の意味がわからん
処理の内容のこと? 引数のこと?
956デフォルトの名無しさん:2009/09/19(土) 22:57:32
メソッド内部で使用するループのインデックスを引数にとるようなメソッドです。
957デフォルトの名無しさん:2009/09/19(土) 22:59:00
別におかしくないと思う
method(int startIndex,int length)とか普通に書くし
958デフォルトの名無しさん:2009/09/19(土) 23:03:34
そうでしたか。
なら安心ですね。
変な質問に付き合ってくれて有難うございました。
959920:2009/09/19(土) 23:25:05
>>941
「take() を使うのをあきらめる」というのは
「BlockingQueue を使うのをあきらめる」とおなじ意味です。

>>947
何か上手いフラグの使い方があるでしょうか?
単純にフラグを使っても、おそらくおなじ結果になると思います。
current の値が、事実上フラグとおなじようなものだからです。
960デフォルトの名無しさん:2009/09/19(土) 23:38:17
>peek() が非 null を返すまでビジーウェイトするべきでしょうか?

これは発想できるのに、なんで直前にwaitを挟むって考えに至らないんだろう
961デフォルトの名無しさん:2009/09/19(土) 23:41:01
>>929を何度読み返してもBlockingQueueである必要性が全く見えてこないんだが
962デフォルトの名無しさん:2009/09/19(土) 23:49:57
単に待機するためだけに使ってるんでしょう。
963デフォルトの名無しさん:2009/09/20(日) 00:02:55
とりあえずQueueでContainsとか使うなよ見苦しいJavaDoc嫁。
964デフォルトの名無しさん:2009/09/20(日) 00:05:17
>>950
1.5移行なら PrintStream(OutputStream out) でPrintStream作って
PrintStream#printf() を通して書式を管理できるかも
965デフォルトの名無しさん:2009/09/20(日) 00:20:11
キューに入れるオブジェクトに処理中フラグみたいなのを持たせて
キューに入れる前にtrueにして、処理が終わったらfalseすればどう?
966デフォルトの名無しさん:2009/09/20(日) 00:21:03
却下。
967デフォルトの名無しさん:2009/09/20(日) 00:24:23
じゃあそのアプリの開発を中止して5連休を目いっぱい楽しむというのはどう?
968デフォルトの名無しさん:2009/09/20(日) 00:26:14
>>959
Object eが読み込み中かどうかが知りたいのだから
Object eにそういうフィールドを作って、処理する時に適宜書き換えればいいよ
isLoadingとかisQueuingとか
969デフォルトの名無しさん:2009/09/20(日) 00:27:47
「処理中かどうか」なんてもろオブジェクトの性質なのになんでわざわざ分離して分かりにくくしてんねん。
970デフォルトの名無しさん:2009/09/20(日) 00:34:40
面倒臭いから嫌ですって言い出すから見てろw
971デフォルトの名無しさん:2009/09/20(日) 00:38:09
てか初歩的なないようだから初心者の方でやれば良いよこの質問に関しては
972デフォルトの名無しさん:2009/09/20(日) 00:42:40
いや、初心者スレは元々ここで(略
973デフォルトの名無しさん:2009/09/20(日) 00:54:38
>>972
それは過去の話ですね
別々にしようと思って、スレタイを前スレから替えたんじゃないんだけどな〜
>>1の俺が言うんだから間違いない
974デフォルトの名無しさん:2009/09/20(日) 01:01:50
俺が>>1だボケ
975973:2009/09/20(日) 01:09:34
今回もスレ作りました
★★Java質問・相談スレッド133★★
ttp://pc12.2ch.net/test/read.cgi/tech/1253376151/

>>974
嘘は寝てから言え
なぜ、2つに分けたのかのか理由を答えてみろ
976デフォルトの名無しさん:2009/09/20(日) 02:06:24
>>974
馬鹿も休み休みいえ
俺こそが本物の>>1
977デフォルトの名無しさん:2009/09/20(日) 05:19:14
Java村のあーさだよ。あーさだよ。ぴよぴよ。
978デフォルトの名無しさん:2009/09/20(日) 07:17:14
「ヤッターキング強すぎだコロン!」
979デフォルトの名無しさん:2009/09/20(日) 08:29:53
連休中までプログラミングしてるなんてもはや病気だな。

そろそろ梅。
980デフォルトの名無しさん:2009/09/20(日) 09:59:03
finalを使いまくると速くなるって記事を読んだことがあるんだけど
今も時代のJVMも速度に変化あるわけ?
981デフォルトの名無しさん:2009/09/20(日) 10:05:26
982デフォルトの名無しさん:2009/09/20(日) 10:09:26
983デフォルトの名無しさん:2009/09/20(日) 18:32:08
>>921
や、そもそもthis.currentを別スレッドで見てるなら、this.currentに代入する部分と、this.currentを参照する部分の両方で排他制御しなきゃだめだろ。
synchronized (this) { current = blockingQueue.take(); }
984デフォルトの名無しさん:2009/09/20(日) 18:35:45
>>910
関数テーブルを作ることが皆無とは言わないが、普通はポリモフィズムで十分だ。
985デフォルトの名無しさん:2009/09/20(日) 22:51:05
char[] = str;って出来たら楽なのに
String#getChars()とかまんどくせ
986デフォルトの名無しさん:2009/09/20(日) 23:54:51
>>983
synchronizedするとtake()がブロックし続けるからまずいって言ってるっぽいよ。

別スレッドがエンキューするためにcheck()->add()/put()呼びたいけど、
take()でブロックされてるとデッドロックになるってことでしょ。
987デフォルトの名無しさん:2009/09/21(月) 06:10:57
ポリモフィズムって言葉が大げさだね
988デフォルトの名無しさん:2009/09/21(月) 06:28:57
じゃポリリズムで
989デフォルトの名無しさん:2009/09/21(月) 09:05:44
>>986
ああ、確かに。take()でブロックされたらthisもロックされたままになるか。
しかし、920をよく見てみると、take()からcurrentの部分がatomicになっても、
check()を呼び出す部分が、
if (!check(e)) add(e);
だったら、
1) thread-A: check(e)->false
2) thread-B: check(e)->false
3) thread-A: add(e);
4) thread-B: add(e);
となる可能性はあるよな。……920自体を根本的に考え直す必要があるような気がする。
990デフォルトの名無しさん:2009/09/21(月) 09:46:26
>>989
初歩的な質問は【初心者】Java質問・相談スレッド132【専用】でしてください。
991デフォルトの名無しさん:2009/09/21(月) 09:56:05
(´・ω・`)フンフンフン♪
992デフォルトの名無しさん:2009/09/21(月) 11:29:24
同一オブジェクトに対して入力・チェック・出力の三つが同時実行される可能性があるのがだめぽ
バッファ分けるか処理分けるかしなさい
993デフォルトの名無しさん:2009/09/21(月) 11:45:01
せやな
994デフォルトの名無しさん:2009/09/21(月) 12:41:17
梅。
995デフォルトの名無しさん:2009/09/21(月) 16:41:37
Class.forName("クラスA");
Class.forName("クラスA");
Class.forName("クラスA");
Class.forName("クラスA");
Class.forName("クラスA");

これを実行した場合、JavaVMには同じクラスが5個ロードされるのでしょうか?
それともクラスローダは同じクラスが存在すると、ロードしないのでしょうか?
996デフォルトの名無しさん:2009/09/21(月) 16:45:55
しない
997デフォルトの名無しさん:2009/09/21(月) 16:48:28
本当でしょうか?
998デフォルトの名無しさん:2009/09/21(月) 16:49:23
疑うならstaticイニシャライザでprintlnでもしてみなさい
同じクラスを5個ロードするには少々面倒なことをしないといけない
999デフォルトの名無しさん:2009/09/21(月) 17:02:06
本当でしょうか?と問う位なら聞くなっていう…
1000デフォルトの名無しさん:2009/09/21(月) 17:07:05
1000ならJava8で総称型仕様変更。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。