>>3 1.4系は削った方が良くない? 今無償で入手可能なバイナリってセキュリティ的にやばいやつだから。
でも1.4環境はまだまだ多いのも現実。
インターネット関係は論外だが、社内で綴じたネットワークで使う分には在処と。
6 :
デフォルトの名無しさん:2009/08/31(月) 09:05:07
int long float double BigDidimal BigIntegerのどれかをつかうかプログラムを実行するときに
決めるには。ラッパークラスを作る以外に方法ありますか?
日本語で頼む
>>6 無いんではないか。特にプリミティブ型はオブジェクトではないので
ポリモルフィズムが実現できない
したがって、OOP的な手法で実装の決定を後回しにできない
知識が足りない人には理解できないだけ。
r⌒⌒⌒ヽ
(( ( ) ))
(( 人人人 ノ
(( ・ω・ )ノ ))
(( ( つ 丶
〉とノ )))
(_ノ(_)
r⌒⌒⌒ヽ
(( ( ) ))
(( 人人人 ノ
((´・ω・)ノ ))
(( ( つ ヽつ
〉 i ))
(_ノ(_)
r⌒⌒⌒ヽ
(( ( ) ))
(( 人人人 ノ
(( ・ω・ )ノ ))
(( ( つ 丶
〉とノ ) ))
(_ノ(_)
r⌒⌒⌒ヽ
(( ( ) ))
(( 人人人 ノ
((・ω・`)ノ ))
⊂/ ⊂ )
i ヽ
(( (_)^丶_) ))
12 :
デフォルトの名無しさん:2009/08/31(月) 10:50:51
BigDecimalの間違い
>>13 ジェネリクスつかうと足し算とか出来ない。
夏休みの宿題おわったか?
>>6には四則演算が必要かどうか書いてないな
どっちなんだ?
Iterable<T>とT[]を同一視できるようなやり方って無いよなあ。
単純に同じforeach文でぶん回したいだけなんだけど。
Arrays.<T>asList(T...)でT[]をシコシコ変換するぐらいかな。
>>16 必要に決まってるし、ジェネリックスはオブジェクトを作ることもできない。
エスパーの登場です
ごめん。
>>6の意味が全く分からない。
まず何をしようとしているのかが意味不明。
doubleとBigDecimalじゃあ根底の計算から違うって知ってるよね?
有効桁数とか丸め誤差とかどうなの?
なんか具体的な型に関わらない汎用的な計算処理を実装したいのかもしれない
使う側の都合に合わせて精度を選べるというのは場合によっては便利かもしれない
Numberクラスあたりにaddとかsubtractとかあればよかったんだろうけど、ないからな
無駄な話だが、型ごとに同じコードを書くしかないんじゃね
そこまで汎用的にする必要性が感じられない
24 :
デフォルトの名無しさん:2009/08/31(月) 16:08:27
彼は天才だから、汎用的であるべきだと思ったんだろう
Rubyでもやっていた方が幸せになれるだろう
確かに、まさにRuby向けだよね
Cだとマクロで解決できるけどJavaにはマクロがないからな。
javaの最新版をインストールしたら(ver6 update15)
F1のlivetimingやタカミンのお絵かきチャットが真っ白になって見れなくなった、
みなさんは見れてます?
知るか
そんなもん見る必要ない
ワロタ
助けてよ
作者に聞け
あの人に聞け
35 :
デフォルトの名無しさん:2009/08/31(月) 21:45:47
麻生閣下ばんざい!?
>>28 IE とかアドインの管理かコンパネで Java Plug-in を切り替えたりできない?
俺のは新品なんで今は 1.6.0_15 しか入ってないからよく分かんない・・・
板違いだ
テキストペインにおいて、
キャレットが点滅しないようにしたいです。
以下ではうまくいきません。(デフォルトどおり点滅してしまう)
(エラーは出ません)
よろしくお願いします。
//テキストペインを作成する
JTextPane tpane = new JTextPane();
//使用するキャレットを設定する
Caret c = tpane.getCaret();
c.setBlinkRate(0); ←キャレットの点滅間隔をゼロに設定
tpane.setCaret(c);
>>39 うちの環境(1.6.0_16)では
tpane.getCaret().setBlinkRate(0);
で普通にブリンクが止まったけど、
>>39のJavaのバージョンは?
getCaretで得られるCaretはtpaneが保持しているカレットそのものへの参照なので、
わざわざsetCaretしなくても大丈夫。しても構わないけど。
ついでにJDK5でも試したけど問題なく点滅は止まった。
プラットフォームはwinXP。
>>39ではテキストペインの作成とカレットへの設定を連続して書いているけど、
実際のプログラムでもそうなってる?
設定する部分が実際には実行されていないというようなことはない?
>>40 >>41 レスありがとうございます。
ブラウザに問題が合ったようで、
単にスクリプトの修正が反映されていなかったようです。(完全更新したはずが)
失礼しました。
44 :
デフォルトの名無しさん:2009/09/01(火) 19:38:56
45 :
デフォルトの名無しさん:2009/09/01(火) 19:58:42
46 :
デフォルトの名無しさん:2009/09/01(火) 20:41:59
まるでアンダーヘアみたいw
JTextAreaを使って入力フィールドを設けたのですが
Ctrl+C、Ctrl+X、Ctrl+V等デフォルトで動いてしまうアクセラレータを
任意の処理に書き換えたいのですがどうしたらいいのでしょうか?
デフォルトではスクロールすらしなかった気がするが、気のせいか。
スクロールはしないけどショートカットキーとしてCtrl+Cとかが使えるって話だろ?
試したら使えたけど。
51 :
44:2009/09/01(火) 21:39:58
>>45,46
ありがとうございます、とりあえず
spec.startsWith("?")
で対策することにします。
>>47 JTextAreaのgetInputMap()のCTRL+CとかCTRL+XとかCTRL+Vのエントリに適当なダミーのオブジェクトを入れる
ちなみにMacではMETA+CとかMETA+XとかMETA+Vのはずなので注意
キーバインド全部消し去りたいなら新しい空のInputMapをnewしてsetInputMapした方が楽かもしれない
53 :
52:2009/09/01(火) 21:43:46
読み返してみたら、任意の処理に置き換えたいってことか・・・
じゃあActionMapの対応するエントリもセットする必要がある
まぁJavadocでも読みながらやってみればできると思う
54 :
44:2009/09/01(火) 21:45:14
>>50 RFCまで示してくれてありがとうございます。
やっぱりブラウザの方が、おせっかいしてくれてるだけだったのか〜。
でも、ページ作成屋さんは「ブラウザで動くから」ってことで既にこの書き方が
世の中に氾濫してしまってるようなので、システム屋はやはり泣く泣く
>>51 みたいに
するしかないのでしょうね。。。
>>47 JTextAreaのInputMapに登録されている書き換えたいキーストロークのバインディングを変更する。
例えばCtrl+Cならcopy-to-clipboardというアクション名にバインドされているので、これを必要な処理を表すものに変える。
必要な処理を表す既存のアクション名がない場合は新しく任意のアクション名を作成して、
InputMapにキーストロークとそのアクション名の組を登録した上で、
JTextAreaのActionMapにそれをキーとし必要な処理を実装したActionへのマップを追加する。
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>
上記警告を取り除くには、どう記述したら良いでしょうか?
>>57 もともとXMLについてた公開識別子つけたら?
<!DOCTYPE PUBLIC ~~>
59 :
デフォルトの名無しさん:2009/09/01(火) 23:08:17
ページ作成屋ってなに?
どこの業界用語?
60 :
57:2009/09/01(火) 23:33:28
>>58 Context.xml の内容はネットで得た情報を元に新規に作成したもので
参考にした Web サイトには DTD や XML スキーマの記述はありませんでした。
Tomcat にも conf/Context.xml がありますが、これにも特にそのような記述はありません。
試しに「<!DOCTYPE PUBLIC>」だけ追加してみたら、警告はなくなりましたが
全然理解できていないので、きっと間違いなんでしょう。
>>60 そもそもDTDないっぽいね。
ってか警告出してるのEclipseか。
じゃあ、無視ってOK。
>>54 ウェブ製作もやっている身から言わせてもらうが、相対リンクが?から開始ってかなり行儀悪いぞ
63 :
デフォルトの名無しさん:2009/09/02(水) 00:27:19
で、「ページ作成屋さん」ってなに?
64 :
57:2009/09/02(水) 00:28:03
>>61 スルーすることにします。
御回答ありがとうございました。
65 :
デフォルトの名無しさん:2009/09/02(水) 00:52:36
それで・・・
「ページ作成屋さん」てのは一体なんですか?
「システム屋はやはり泣く泣く」ってなんのことですか?
卑怯な教えて君が一番嫌われますからちゃんと答えてもらえませんかね?
リアルでいじめられっこだから
>>65 「ページ作成屋さん」でググって出なかったから答える。
ウェブデザイナーのこと。
69 :
デフォルトの名無しさん:2009/09/02(水) 01:34:45
「ページ作成屋さん」ってのは、「お花屋さん」とどう違うんですか?
結構違う
71 :
デフォルトの名無しさん:2009/09/02(水) 02:25:21
お花屋さんをなめんなよ
72 :
デフォルトの名無しさん:2009/09/02(水) 02:26:46
>>68 具具って見たんですけど、もしかして「お弁当屋さん」と似たものですか。
JTextPaneについて教えてください。
・単一行(=改行は不可)
・入力文字数(列数)を制限
Jtextareaにあるような、メソッドはないようなので、
困っています。
よろしくお願いします。
>>73 追記です。
・自動改行(行がある程度文字が埋まると自動で改行する)
をなくす
キーボードからの改行は、キーボード入力のイベントリスナを、
改行を受け付けないようにすればいいと考えています。
よろしくお願いします。
Swingてテキストフィールドなかったっけ?
>>75 レスありがとうございます。
アトリビュート編集機能」が必要です。
そこで、Jtextpaneを選択しています。
ないなら自分で実装すればいいじゃん
無理やりだがDocumnetのchangeListenerで、改行がきたら消すとか
int型の変数で計算を行っていて
それを一度 LinkedList に入れて処理をした後に
またint型の変数に戻そうとしたら
Object を int にキャストできませんとエラーになりました。
Object型をint型に正常に変換するにはどうすればいいのでしょうか?
>>79 使っているJavaのバージョンとLinkedList変数の宣言をどうぞ。
>>80 バージョンはjre1.6.0_03
LinkedList list = new LinkedList();
list.addFirst(x);
int ans = (int)list.get(i);
こんな感じでコンパイルすると上述のエラーになりました。
82 :
79:2009/09/02(水) 08:37:31
ああ、すいません
LinkedList<Integer> list = new LinkedList<Integer>();
とするだけでできました。
ありがとうございました。
素人のようだから念のために言っておくが・・・ループの中でListにintをつめたり出したりやってないよな?
ボクシングとジェネリクスは理解しておかないとアホさらすぞ
84 :
79:2009/09/02(水) 09:45:22
listではaddFirstとgetしか使っていません。
削除とかはしていないです。
正直全然ジェネリクスをわかっていません。
ボクシングに至っては今初めて聞いたような状態です。
勉強しておきます・・・
アドバイスありがとうございます。
jspで携帯向けのサイトを作成しているのですが、キャリアに応じて
文字コードを変更したいです。
しかし、jspでは、pageディレクティブにて文字コードを静的に
設定してしまっており、動的に切り替えることができないように思います。
※jsp中にてsetContentを行っても、JspPrintWriterが作成されてしまった
あとなので文字化けを起こしてしまいます。
そもそも、jsp単体での動的なContentTypeの変更はムリなのでしょうか?
JSP単体とかありえないから
87 :
デフォルトの名無しさん:2009/09/02(水) 12:07:12
出来ないことはない、全部JAVAの命令でスクリプトレットに書ける
まともなサイトならありえないな
89 :
85:2009/09/02(水) 12:51:06
やはり無理みたいですね…
現在、filterをかまして自作PrintWriterを使わせるようにして、
colse or flush されるタイミングで任意のContentTypeを吐く
ようにしているのですが、あまりにも、あまりにもと思ったので…
参考になりました。ありがとうございました。
ひでえな
昼まっから遊んでるアマチュアばっかりかよ
と昼間から遊んでるアマチュアが申しておりました
Apache httpClient使うのと自分でjava.net.HttpURLConnectionを使って
ガリガリと書いたのではスピードどのくらい違いますかね?
>>92 実測するしか。直観では、ネットワークの方がはるかに遅いから対して変わらないように思うけど。
もっとプリミティブなレイヤーから書いた場合には、アクセスパターンに対する最適化やバッファリングの仕方などで大きな差が出るかも。
何か色々面倒なこと言ってるけど
>>47のって関数オーバライドしちゃえばいいんじゃ・・・
>>93 >ネットワークの方がはるかに遅いから対して変わらないように思うけど
なるほど、たしかにそう言われてみれば
わかりました。ありがとうございます
96 :
デフォルトの名無しさん:2009/09/02(水) 22:36:13
配列の添え字にマイナスを使いたいのですが、どうすればいいですか?
どこかにサンプルコードはありませんですか?
delphiなどでは普通につかって、forループしてますけど。
>>96 使いたきゃ使えばいい。
ArrayIndexOutOfBoundsExceptionが出るだけだが。
Javaでは添え字にマイナスも使えないんですか!とかバカジャネーノ
まだJavaで継続(CP)やりたいんですが、とかのほうがよかったね。
delphiではマイナスの添え字ってどういう意味があるの?
スレ違いでスマンが
102 :
デフォルトの名無しさん:2009/09/02(水) 23:15:04
>>101 例えば風の計算するとき、境界条件の計算に、
計算領域の2〜3個外側の値(ダミーの値)を使う
ことがあるんだけど、そのときにマイナス添え字
の配列があると楽なんです。
え、配列上限+1を0に見立てたアクセスかと思ってた。違うのか。
104 :
101:2009/09/02(水) 23:56:30
>>102 書いてくれた説明はさっぱり解らないけど検索して調べたら解った
Javaの場合は添え時の部分でマイナスにならないように値を加算すればいいんじゃない
例えば
for(int i=-100;i<100;i++){
d[i+100] = i;
}
みたいな感じで
>>104 ぼくは配列のほうじゃなくて、カウンタの部分を補正しようか、
あるいはポインタを使うとスッキリとするんじゃないかとも思
ったけど。
なるほどです。それでやってみます。ありがとう。
負のインデックスを使うと自動的に
allocしてくれる配列かリストが欲しいって言ってたってこと?
代入不能な負のインデックスってだけなら
メソッドかませばいいだけの話だしなあ。
自分で好きにラッパを作ればいいじゃん
>>102 それ単にダミーが終わるindex + nでアクセスすればいいんじゃないの?
C言語はひととおり出来るんだけど
今からJAVAは無理?
というかむずかしい?
ぜんぜん
jadを許可しているソフトを逆コンパイルしたら、内部クラスを使いまくっていた
他の人に聞いたら、業務では内部クラスは使わないよって言っていた
そこんところ、本当はどうなの?
>>111 もちろん使いまくりはダメだが、適切に使う分には強力な武器になる。
業務もクソも関係ない。
業務ってもなぁ
携帯みたいな容量きつい環境ではあまり無闇に使うわけにはいかないけど
デスクトップやサーバならまったく問題ない
内部クラスはそれなりのメリットがあるんです
2つの配列を、ひとつの配列にするには
どうしたらいいですか。
a[ ] =+ b[]
こんなかんじでしょうか?
117 :
デフォルトの名無しさん:2009/09/03(木) 20:14:30
文字列の長さを得る方法など、あらゆるコマンドが載ったリファレンスってないのでしょうか?
ちょっと大きめの書店に行ってみましたが、見つかりませんでした。
良い本があれば教えてください!
javadocで十分だろが。釣りか?
紙信者って奴だ
Javadocじゃあ視認性悪いね。
紙媒体のリファレンス求めるのは諦めた方がいい
非効率過ぎる
微妙に畑が違うが、Win32APIのリファレンスなんて3000ページ以上あったぜ
122 :
117:2009/09/03(木) 20:25:37
Javadocというものを知らなかったので検索してみましたが、
自分で書いたコードの解説をHTML形式で作成できる機能でしょうか?
改訂のたびに廃棄してたらとんでもねーな。
貼る奴間違えた
127 :
デフォルトの名無しさん:2009/09/03(木) 20:35:30
>>124-125 十分事足ります!
>>124さんのリンクのほうが新しいみたいですね。
機能からの逆引きの仕方がわかりませんけど、ブックマークして後で部分的に目を通してみます。
(Firefoxでスクリプトの処理に時間がかかる、みたいなダイアログが出ますけど…)
ありがとうございました!!
API仕様書
Win32APIってやっぱりMSDNしかないの?あそこIEじゃないとMSの嫌がらせが多いから嫌なんだよな・・・
130 :
デフォルトの名無しさん:2009/09/03(木) 20:54:52
JSFのリファレンスっていうかチュートリアルっていうか、公式なやつない?
質問。
総称型配列を返すメソッドを持つクラスを楽に作れるような改良は、予定に
ありませんか?
class GenArray<T> {
public T[] RetArray() {...}
}
というか、T[] = new T[100]; もできんし。
List<T> の何が不満なんだ?
List<笑>
イレイジャなのでnew T[]は出来る予定はまずない
>>132 某クラウドのWEBサービスのプロキシで配列渡すんだけど、一回に渡せる
個数が制限されていて何回も分割して処理しなきゃならないんだ。
んで、指定した個数の部分配列をイテレータみたいにgetNext()できるクラス
を書いたんだけど、総称型つかえねーよとコンパイラに怒られた。
仕方なくList<T>返すようにしてtoArray(new String[0])して渡したんだけど、
これはちょっとなぁぁと思った。
>>135 「これはちょっとなぁぁ」と思っても仕方がない
Javaの場合、後方互換性を保つため、実行時には型情報はなくなる
なので、明示的な型を指定しない限り配列は作ることが不可能
おかげで1.4の頃のライブラリが使えるんだから諦めてくれ
138 :
137: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>貰うのが
配列型の共変が無くて一番無難。
140 :
131: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
Arraysの中を覗いたら、まさに 138 さん方式でした。
T[] copy = ((Object)newType == (Object)Object[].class)
? (T[]) new Object[newLength]
: (T[]) Array.newInstance(newType.getComponentType(), newLength);
>>116 ありがとうございます。
64個配列作って、
一部分だけ、指定したい。
1, String image_gif[ ] = new String[64];
2, image_gif[ ] = {"panda.gif","midori.gif","hi.gif","nobasu.gif","ha.gif","",};
2行目の書き方がとても楽。
→けど、これではエラーになる。
→2つ配列を作って、くっつけよう。
そこで質問しました。
>>111 クラス名を HOGE010010 とか記号でつけて管理台帳で管理するような現場だと
*.java と *.class の数がそろわず管理できないから
というわけのわからん理由で内部クラスが禁止になったりする
ワラタw
そうなると、匿名クラスも禁止?
>>143 そんなアホな現場があるなんて信じられないし信じたくない
そう思っていた時期が俺にもありました
まさに今の現場だw
内部クラスサブクラス禁止で1クラス3000行とか普通にあるww
管理台帳に修正内容は1行1行書かないと行けないんですね、わかります
>>147 アマチュアの製作現場ですね
よく分かります
アホか、銀行とかむしろ基幹系の方がそういうルール残っているんだよ
クラス設計がウンコなんだろ
COBOLを前提としたルールとかある。
経験の無いツールに移行する時は、どの前提が間違っているか分からないまま詳細設計とかに進むこともまま。
>>153 そういうところほど、いいお金をもらってる…
質問です!
常駐してるjavaプログラムAに対して
新しくコマンドプロンプトを開き、そこからデータを送信することおは可能でしょうか?
パイプとか、いろいろ調べてみたんですがなかなかー・・・
つ socket
C→Java
Java→Java
みたいに言語間で通信できるのはわかったんですが
DOS窓から直に送るって方法がわからんのです(´・ω・`)
DOS窓からCなりJavaのプログラムを起動すればいいだろ、お前は何を言っているんだ?
>>156 データグラムだとたまに取りこぼしがあるとか言う話ですがどういうときに発生するんですか?
>>158 大量のデータを裁かなくてはいけないので
その都度プロセスを起動するのは心もとなくて
同時に300くらいは軽く裁きたいのです
同時に300くらい軽く捌くjavaなりCのプログラムを1回起動すればいいだろ
お前は何を言っているんだ?
DOS窓に垂れ流されてるコマンドを
1行ずつ常駐してるJavaに送信したいんですが
たった一回の起動で可能なのです?
調べてみたんですが、今ひとつわからないのでヒントを(´・ω・)
>>160 配信するときTTLの寿命で死んじゃうからパケットは消滅するんですか?
そうするとメッセージが渡ったかどうかチェックする必要があるのでTCPしかないですよね。
「DOS窓に垂れ流されてるコマンド」
まず、これが何のことだか
>>165 TCPが持つ他の機能は不要で、メッセージが必ず渡ることだけを保証するのなら、
データグラムの上にそういうプロトコル階層を作るか持ってきて乗っけるという手もある。
この話題はJavaとは無関係なのでネットワーク関係のスレへいけ。
>>165 消滅というか、送信先にたどり着かないこともあろう
送信した方もちゃんと届いたかどうかわからない
そういうのが要らない場面で使うのが前提
IPデータグラムにポート番号とチェックサムついただけなのがUDP
jreがダウンロードできない。
サンのサイト死んでない?
ごめん繋がった。なんだこりゃ
UDPだとデータ損失しちゃうだろ
それじゃメッセージ用途でsocketを使うというのはTCPを使うってことじゃないですか!
SOCKETやRCPをも含め結局メッセージはOSが必要でJAVAだけじゃ無理ってことでいいですか?
はぁ〜?
>>174がみやむーの声で再生されたorz
ちょっとアスカに馬鹿にされてくる・・・。
>>173 意味不明過ぎる。
Javaが動くにはOSが必要だし、Javaのネットワーク機能はOSの機能を呼び出してるだけ。
あと、UDPで信頼性が欲しけりゃUDPの上に俺々プロトコルを構築すればいい。
TCPで信用ならないならSHA1のハッシュを配布するもよし
>>178 TCPで信用ならないってどういうときですか?
SHA-1とかパケットがちゃんと届いたかどうかの信用性に関係ないでしょ。
>>177 他アプリへのメッセージはJAVAでは原則サポートしてないでしょ。
RPCとかOS関係ないし、さっきはメッセージならsocket使えっていったよね?
既に最初の質問者と違ってる件
構って君なのでしばらく付き合ってやってください
自己紹介乙
>>180 その「他アプリへのメッセージ」って具体的に何よ。
Javaが標準でサポートしてる、ソケットやRMIやCORBAは「他アプリへのメッセージ」に入らないのか?
乙
>>180 Windowsメッセージと誤解しているとエスパー。
188 :
デフォルトの名無しさん:2009/09/05(土) 09:20:35
Aクラスにメソッドを追加したクラス名はどのような名前にしたらいいですか?
189 :
575:2009/09/05(土) 09:58:17
クラス名がAじゃなくても何でもよくて名前の前や後ろに文字を付け加える方法でお願いします。
>>188 Readerにバッファリングを付けたから BufferedReader とか、追加機能にちなんだ
名前をつける以外には正解は無い。
正直な話、「メソッドを追加した」という情報だけの質問が、まじめな答えが戻って
くるような質問だと思っているのか?と小一時間略
じゃあ、Aクラスは数学的な機能しかないものに、機能追加でコピーペーストや文字の検索なんかの
機能をつける場合は何をつけますか?
>Aクラスは数学的な機能しかないものに、機能追加でコピーペーストや文字の検索
今思いついただけのいい加減なクラスだろうから、「000」「001」でOK
ユーティリティ以外でそんなクラスをつくるなら、関数に戻した方がいい
SomethingExtendedA
196 :
デフォルトの名無しさん:2009/09/05(土) 10:54:46
AImplX
なにかのメソッドを追加したA
何か便利な機能を詰め込んだクラスの名前を教えてください。
例えば配列を繋げたりするようなものなどが沢山入ってます。
>>195 有難うございます。
配列を繋げたりするようなものなどが沢山入っているA
便利な機能を詰め込んだA
日本語は使いたくないので英語でお願いします。
AWithUsefulUnkoMethods
AfeaturingEXILE
AWithSupportingSomeOperations
204 :
デフォルトの名無しさん:2009/09/05(土) 11:13:57
ありがとうございます!
>>187 DOS窓とやり取りするって話じゃなかったっけ?
>>192 リスコフの置換原則に反するからそういう設計はしない。
>>208 反してませんよ?
クラスをコピペして別のクラスをつくってやってますから。
なぜかというと、再帰を使っているので、
ようやくEffective Java 第2版を昨日手に入れたぜ
他にいい感じのjava本ないか
>>208 君は何もわかってないバカなんだから
これ以上しゃべらない方がいいよ
>>211 軽快なJava
だが俺は鈍重
214 :
212:2009/09/05(土) 19:07:36
>>211 Java魂 だけどEffectiveの前に読むレベルの本
>>211 APIドキュメント読んだほうがましなぐらいの本
Javaチュートリアルのほうが無料で内容濃くてどこでも読める
>>216 Effective Javaホントに読んだことあるのか?
チュートリアルとそのリンクたどるだけでそこらに出てる本の内容は軽く超えるでしょ
入門書なんて日本語でしか読めない人向けだし
Web上のチュートリアルがすばらしい具体例を一つお願い。
221 :
211: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
224 :
デフォルトの名無しさん:2009/09/05(土) 21:46:43
日本語も読めない人でしたね
226 :
デフォルトの名無しさん:2009/09/05(土) 22:02:51
そんなやつにはもう「ひまわり」しかないよ。
Head First Java or Effective Java からcore java行ってオライリーのSwing本だな。
228 :
デフォルトの名無しさん:2009/09/05(土) 22:38:04
日本人の書いた本はイマイチばかりだよ
Effectiveも日経SJCPのも全部日本人じゃない
>>227>>228 APIdocとチュートリアルだけで10年目ですね私
一回も本読んだこと無いです
はっきり言って不要でした
本に頼ってると技術的にも遅れを取るしね
書き写しは出来ないこの業界ですから
232 :
デフォルトの名無しさん:2009/09/05(土) 23:43:06
>>229-230 真髄まで知りたいならそれでいいんじゃないの。
といってもどうせこの板に来る鼻糞君たちは、「SQL叩いて今流行りのジャヴァだぜ!」「ジャバってないとバカだよね〜」が大半だと思いますけど・・・
鼻糞乙
234 :
デフォルトの名無しさん:2009/09/05(土) 23:48:26
>>229 それでどういうアプリ(ツール)作ったんですか?
まさか10年もやってるのに未だにアプレットでアニメーションとかなわけないですよね。
235 :
デフォルトの名無しさん:2009/09/05(土) 23:58:37
俺も5年ぐらいだけど、本読んでないな
資格試験のために読んだだけw
言語自体は別にいいんだけど
イディオムとかサードパーティ製のライブラリ使いたいときに
いちいちネットブラウジングするのが面倒になる
237 :
デフォルトの名無しさん:2009/09/06(日) 00:40:38
布団に潜り込んで寝っ転がって読むのが好き
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.
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 個
アプレットなのが原因でしょうか。
よろしくお願いします。
141行目をコメントアウトしてもっかいやってみるとどうなる?
どっか括弧閉じ忘れてるんだと思う。
Javaは基本的に変数名らくだ型だよ。
image_gif_tempならimageGifTemp
>>242 どこにそんな馬鹿な引数の渡し方をしている入門書があったんだ?
ちゃんと金を払って買ったJavaの入門書で一から文法を勉強し直せ。
>>243 レスありがとうございます。
>>141行目をコメントアウトしてもっかいやってみるとどうなる?
コンパイル終了 (^−^;)
らくだ型」?
ちょいとぐぐって調べてみます。
>>242 コードからみて
>>142と同じ人なんだろうけど自分勝手に文法を妄想してはいかんよ
引数の中の変数に[]なんてなぜ付けようと思ったの
>>245 変数の命名規則を調べるよりももっと大事なことを調べるべきだろうが
image_gifという変数はString[]型
String image_gif[]というように宣言もできるけれど
これはあまり推奨されない書き方で
String[] image_gifと宣言した方がいいと思うよ
メソッドに渡す変数もString[]型を渡すのなら変数名だけを書くことになる
おそらく書いた本人さえどう動くのか理解できないと推測される酷いコードがあっても、
「プログラムなんて動けばいんだろ!」と言ってくる奴を黙らす方法を知らない。
というか実際動かしもしないで聞くか普通?
> おそらく書いた本人さえどう動くのか理解できないと推測される酷いコードがあっても、
そういうコードは動いていてもたいてい正しく動いていないなw
レスありがとうございます。
>>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);←修正
>>253 意図がわからんが、その場合ha.gifはコピーされない。
問題が発生すると、全力で突破しようと思うから
その分野について結構詳しくなるね
これが修羅場ってやつか?
256 :
デフォルトの名無しさん:2009/09/06(日) 11:57:56
あれ俺の修羅場と違う・・・
>>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なんでしょうけど。
>>257 もうちょっとデータ構造を見直せば
思ったより手間がかからなくなりそうだな
259 :
デフォルトの名無しさん:2009/09/06(日) 13:21:14
>>255 そうそう、本は読まないがトライアンドエラーで無理やり突破
google先生に教えて貰った資料の力が一番でかいけどな
>>259 でも資料が古かったりすると現在では推奨されていないやり方をやってしまったりするから、そこには注意な。
261 :
デフォルトの名無しさん:2009/09/06(日) 17:32:26
参考書を一冊読み終わった初心者です。
次に読む本を探していて、立ち読みで次の2つに絞ったんですけど、良本でしょうか?
a. Java完全マスターブック
b. 15歳からはじめるJavaオンラインゲームプログラミング教室
bのほうはEclipseという環境を使用する前提で解説されているようですが、
パソコンが古くてNetbeansが重くて使い物にならなかったので、
Eclipseも動かなそうです。
Eclipseを使わないと動作しない、あるいは理解しにくいのでしょうか。
読んだことがある方のご意見をお待ちしています。
学習の目的が解らない
ノートユーザーでないなら、5万円以下でも買えるメモリ2GBのCore2マシンに
買い替えをお勧めしよう。Windows7UPG対象品の奴。
ノートでも8万出せば買える。
戻り値が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();
ではどちらが早いですか?
>>261 EclipseとかNetBeansを使えば、本質的でない部分(コンパイルのやりかたとか)
を人任せにできる。
初心者が気軽に触ってみるためには不可欠に近い。
>>263 >>266 アドバイスありがとうございます。
そうですか…。今新しいパソコンを買える状況ではないので…(涙)
読んだ方のレビューもどうぞお願いします。
パソコンを買い換えなくとも、メモリを2GBくらいまで増設すればだいぶ軽くなる
高々数千円だし、本を買うよりも優先するべき
269 :
264:2009/09/06(日) 19:26:55
>>268 現在256MBで、最大384MBなんです。
128MB増やすだけで使えるようになるんでしょうか。
NetBeansはサンプルを開くだけでしばらく時間がかかりました。
DDR2入れれるPCじゃなさそうだからこまる
>>261 どちらも読んだことはないが、Java完全マスターブックは
古いのでやめた方がいい。
むかし親が所有していた2001年製のSOTECのノートがそのくらいの性能だったな
PC100-SODIMMだった気がしますよwww
そりゃ、流石にIDEは諦めろ、WindowsXPすら微妙なレベル
我慢してテキストエディタでやるべき
あとSwingとかGUI系は諦めたほうが良いと思う
恐らくは7−8年くらい前のノートPCだろ?
128MBの専用増設メモリ探すだけで大変だわ
1万程度でいいから中古PC買ってメモリ増設、中古のモニタ買っても2万程度。
よくPCを買い換える友達いるなら適当に古いマシンもらうべき
cel 2.6G mem 256Mでeclipse動かしてたけど苦労した。
いまはオクタコアが2個あっておいしいです。
時代を感じるね
オタクコア に見えた
>>272 5年前の本だと、今では使えないような技術だったりするんでしょうか。
既に読み終えた参考書は幸い昨年の本でした。
>>274 対応したメモリは見つかりましたが、128MB増は効果が低いと思って買ってません。
最初からXPが入ってて、なんとか動いてます。
Javaの勉強ではCPadっていうソフトを使って勉強してますが、これは軽いので
ちゃんと動きます。
Swingも簡単なものしか試してませんが、動きますよ。
>>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();
}
をたくさん呼び出して時間を計ったら、上の方がだいぶ早かったんだけど
何か間違ってる?
Java SE5の頃よね。5年前って。
>>279 >return "abcde" + "fghij" + "klmno" + "pqrst" + "uvwxy";
この部分最適化されるからだろ
>>279 たくさんって何回だ?
数百回程度じゃ大差ないよ
>>278 動かすだけなら動く、ストレス無く動かせて開発できる話とは別の話
>>279 文字定数の+演算子による結合はコンパイル時に
結合されると言語仕様に規定されている。
"abc" + "def" == "abcdef" // 必ずtrue
たまにこういうのまでStringBuilderに書き直せ、
とか言う奴いるんだけど、なんなのあれ…
284 :
279:2009/09/06(日) 20:31:28
>>282 100万回回して、System.nanoTime() で計って二桁ぐらい違うけど
二桁 [ns] ぐらいなら誤差の範囲か すまん
285 :
281:2009/09/06(日) 20:32:37
言語仕様では「結合してもよい」だったと思うけど。
たいした違いはないが。
286 :
279:2009/09/06(日) 20:36:56
>>281,283
ぬぉ それだったみたい
文字列を変数にしたら append の方が三割ほど早くなった
jadで逆コンパイルすればおk
メジャーバージョンの小さい昔の eclipse などの統合環境ならメモリ少なくても動く
eclipse.iniのJVMのメモリ量でも気づかずに
作業してる奴がいるぐらいなんだから
最近のでも大丈夫じゃね?
291 :
261:2009/09/06(日) 20:52:29
みなさん、いろいろなアドバイスをどうもありがとう。
とりあえず「15歳から〜」の本を買って読むことにします。
>>289さんの小さい昔のやつを試しに入れてもダメだったら、
読書だけで頭でっかちになって
新パソコン購入後に実際に動作させてみます。
CPadで入力して動かすことはできるよね。
初心者はEclipseみたいなIDEを使ったほうがいいって言うけど、
初心者だからこそ全部手動でやったほうが身につくと思う。
最初はコマンドプロンプトで作業するのは有益だと思うよ。
結局、どうやって何が動いてるか分からないと意味ないからね。
でもそれは最初だけで後はEclipseでいい。
特に文法エラーなんかで数時間悩む意味はない。
即時エラー教えてくれるのは便利。
初心者レベルなら、身についても仕方ないんじゃない?
誰でも最初は初心者なのに、ちょっと上達すると初心を忘れて偉そうな気持ちになって上から物を言っちゃうんだよね
プログラミングの基礎を覚えたいならエディタ+コンパイラでも十分
プログラムでなんか作ってみたいならばIDE使った方がいい
コンパイルエラーはさっさと教えてもらい修正する方がモチベーションが持続する
>>290 それは起動だけなら充分だろうが、その後の作業がもっさりじゃね?
俺としては、みりんなしのバージョンがオヌヌメ
>>283 > なんなのあれ…
ただの馬鹿と思っておk。
299 :
デフォルトの名無しさん:2009/09/06(日) 21:40:33
携帯から失礼します
GUIにスプレッドを使いたいのですが、フリーか評価版で何かありませんか
>>280 いまJava SE5の本で勉強すると問題ある?
>>270 それだとテキストエディタ+DOS窓+手動コンパイルでいいんでない?
実際IDEはGUI作るときは必要になるけど、java.io, java.net使う程度とか小物ツール(自作Base64とか)を多く作るならエディタだけで十分だったりする。
機能を分けていってクラスが10個ぐらいになるとIDEが欲しくなってくるけどね。
小物ツールなら例えばアプレットでアニメーションなんかクラスは3,4個(多くて合計1000行)でしょ。
>>300 言語仕様でいえば問題なし。4は問題外だが。
そんな中Java1.3が開発言語の現在の勤務先。
Java1.4のリファレンスをもらったんだけど問題あるかな。
java.lang
java.io
java.util
java.net
java.nio
java.math
だけの簡易リファレンスなんだけど。
>>305 1.4 -> 1.5 で総称型が追加されたため、はっきり言って「古い」という問題が。
特にjava.utilのコレクション周りに関して壊滅状態じゃないか?
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);
}
}
なんで、スクロールバーが右側にならないんですか
根本的にJScrollBarの使い方がおかしい
311 :
デフォルトの名無しさん:2009/09/06(日) 22:53:47
リテラルが増えて旧式って言うなら、次の1.7が出ちゃうと1.5, 1.6なんかも旧式ってなっちゃうよ。
1.7の言語(文法)リテラルは結構増えてrubyのようにカオスってるから。
312 :
デフォルトの名無しさん:2009/09/06(日) 22:56:31
リテラルって何のこといってんのかと思ったら予約語のことか。
>>275 スレとは関係ないが8コアCPU2発って何使ってるん?
315 :
デフォルトの名無しさん:2009/09/06(日) 23:24:22
ていうか、次のリリースではクロージャはいらなかったけど、かわりに文法(言語)リテラルを多数サポートして
map["key1"]="val1"とか、map={key: "val1", k:"v"....,}とかjsみたくなる。
だからスクリプトみたいな現代風なコードになるから5,6は少なくともコード上では旧式(冗長)になるんじゃないかな。
流石に7がリリースされても未だに1.4を引きずっている業界で導入されるのは先だろうなぁ
318 :
デフォルトの名無しさん:2009/09/06(日) 23:36:25
SAStruts
でフレーム分割を扱う方法を教えてください
HTTPステータス 400 - Direct access for JSP is not permitted.
と表示されてしまします
メーリングリストで質問しろ
Javaってマルチスレッドだから、同期化に気をつかわなければなりません。
同期化が問題なくできているかは、コードレビューで確認するしかないのでしょうか?
単体テストか結合テストで何らかのツールを用いて確認することは無理ですか?
Javaはマルチスレッドではなく、マルチスレッドに設計すればマルチスレッドで動くだけ
>>321 アホじゃあるまいし。それくらい理解しています。
なさげ
でも一応エージェントつかえばデッドロックは検査できるっぽい
>Javaってマルチスレッドだから、同期化に気をつかわなければなりません。
これはアホの文章だな
それはさておき、マルチスレッドのテスト技法はぶっちゃけない。
コードレビューというよりは設計の段階から安全に作る以外の方法はない
詳しくはJava変更処理プログラミングって本を嫁
ロック用に専用のオブジェクト作ればよくね?
Threadを生のまま使わないのが早道
タイミングに起因するテストはまず無理
328 :
デフォルトの名無しさん:2009/09/07(月) 01:07:52
JAVAのIDEで名前が思い出せないものがあります
思い出させてください
糞士痛のApworkusoの続バージョンのような雰囲気のIDEでした
328じゃないけどJava の古いIDEで思い出したのがTeikado・・・ググっても14件。
スペルまちがってる?
最近の人なので知りません
質問する気があるなら正しい名前書けよ
想像するにApworksとかそういう名前だと思うが
>>332 うんいい感じ
そしてその数年後の記憶も書いてください
Teikadoではなかったと思います
大文字アルファベット3文字だった気がしますが自信がないです
335 :
318:2009/09/07(月) 01:56:36
仕方ないのでTilesとc:importを組み合わせてみようと思います
336 :
318:2009/09/07(月) 02:18:49
337 :
デフォルトの名無しさん:2009/09/07(月) 02:33:21
結局iframeにした
チラウラすまそ
339 :
デフォルトの名無しさん:2009/09/07(月) 07:17:33
InterStageだろ
340 :
デフォルトの名無しさん:2009/09/07(月) 10:25:03
keyからvalueを得るの反対の事をするにはどうしたらいいですか?
valueをkeyにしておく
そうするとkeyからvalueが得られません。
両方作れやw
keyからvalueを得るインスタンス名がaとしたら
valueからkeyを得るインスタンス名を何にしたらいいのですか?
一つにまとめられればこの問題を解決できると考えたのです。
aなんていう意味を持たない名前を付けるのはやめれ
aというのは例えばです。
この場合わかりやすくpoolとでもしておきましょうか。
同じvalueの場合は複数のkeyが取れるようにすんの?
全単射です。
reversePool
ありがとうございました。
1:1対応ならvalueのインスタンス変数にkeyもたせれば解決だろ、アホ?
valueがStringとかなら_
アホ杉
class ValueWrapper {
Key key;
String value;
}
Map<Key, ValueWrapper> map;
終了
>>353 ValueWrapperからkeyとvalueは取れるが、
valueからkey取れなくね?
keys()からvalueで取得するの追加すりゃいいだけだろ
頭いいけど、自分で考えたわけじゃないだろ。
改行は\r\nか\nのどちらを使えばよろしいですか?
358 :
デフォルトの名無しさん:2009/09/07(月) 14:14:30
>>356 おまえは頭悪すぎ
たぶん向いてないから止めれ
みんな最初は業務からjava始めたの?
最近業務で弄ってるんだけど教えてくれる人がいない
というか、新人教育みたいなのもないから、どうしようもなくて・・。
何から勉強していいものやらね・・。
覚えたいのは山々なんだけど、うまくいかなくてイライラするんだよなー。
なんかいい方法ないかな?
たぶん入門書嫁っていわれるだろうけどw
>>360 俺はHelloworldからはじめて、とりあえず書いてJavaDocだけでいけたよ
本買ってもあんまり意味はない
無論、他の言語の基礎がないなら基礎から覚える必要はあるけど
本を嫁、
後は勉強会とかセミナーに参加
自力でやれないことはないが効率悪すぎる
>>362 それは君が他力本願だからだよ。
独学の方が効率がよい。
君の限界値もたかが知れているね。
特に初学者の独学では何が重要で何を優先すべきかの判断ができない
>>364 現場を知らない君が語ることじゃないね。
上から目線w
そりゃ事実上だもの
368 :
デフォルトの名無しさん:2009/09/07(月) 18:07:17
俺がJavaプログラマとして未経験で入社したころ、上司に
「アセンブラや機械の構造を知っていたほうが、後々上達するんだ!」
っていわれて、無理やりやらされたけど、その後出てくる言語(PHPやC#、VB.NET)
やってるとなんにもアセンブラなど役に立たん。
少なくともJavaにアセンブラの知識が生きることは無さそうだな…
生きる所というより生かす所がない
アセンブリを勉強したらメモリの仕組みがわかるから、
他の言語を学ぶ際に多少理解の助けになるってことでしょ。
あと、高速な動作を要する場合に、インラインアセンブラとかで役立つことはあるね。
Java関係ねえじゃん
Javaにインラインアセンブラなんてあったの?
10年やってきて初めて聞いたわ。
いやそういうのいいから
375 :
371:2009/09/07(月) 18:25:15
Cだろ
JNIでも使わせる気かよw
言語の性格もアセンブラって手続き型だろう?
てかプロは写し書きしてたらいかんだろw
独学はやめとけ
>>379 無職の君ならそうだろうけど、
彼は業務から覚えることが可能だからね。
所詮教わった知識なぞ現場じゃ役に立たないよ。
世間を知りなさい。
どうでもいいが独学で配属されるPGって面倒だよな
無駄にプライドあったり、俺ルールで書こうとしがち
質問・相談スレではなく雑談スレになってるね
>>381 それは独学関係ないよ。
君の薄汚い心のこじつけだよ。
コーディング規約守れないのは独学だろうと人間として歪んでいるだけさ。
君の塵の欠片にもすぎない固定観念なんて、なんて愚かだろうと思うでしょ。
それだけのことを君は言っているのだよ。独学だからコーディング規約守らないなんてどこに根拠あるの?
君の皆無に等しいサンプルで簡単に決めつけないほうが身のためだよ。
誤爆りましたスマソ
386 :
デフォルトの名無しさん:2009/09/07(月) 20:06:42
エクリプスはリファクタリングが凄い
387 :
デフォルトの名無しさん:2009/09/07(月) 20:19:42
たしかアセンブラ(bytecodeだけど)あったような・・・次のリリースからだったかな・・・
色々沸いているのがいるな
エクリプスと読むことを今知った俺
jusched.exeっていうのが頻繁に何かしようとして
ファイアウォールが反応します。
これってアップデート関係のファイルですよね?
月1回の設定にしてるはずなんですけど・・・。
ワームだね
MicroSoftUpdateに64bitのIEでアクセスすると
勝手に32bitのIEの方が起動するんだけど
Javaであんなことできるん?Javaじゃ無理だよね。
>if(condA){if(condB)}とか
例えになんだがこれ書いた人はどういう意図で書いてるん?
しらねーよ
condA部分でなんらかの処理してるんじゃね?
if(condB)の前にあった文を削ったとか
>>395 ああ、旧VBは条件文を全部評価しちゃうのな。
condAでコネクションを開いて結果を取得、condBはコネクションを前提って場合に、
condA&&condBってしちゃうと、condAがfalseでもcondBを処理しちゃうんだっけ。
condでいろんな処理すんなよ、面倒だから
399 :
390: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 副作用が無くても同じだし、副作用があってもjavaでは困ること無いでしょ。
402 :
360:2009/09/08(火) 09:10:36
まだ上司がいるって環境のがいいですよね・・・。
私も業務で使うからってことで、新たに始めましたけども。
全部ネットからであったり、創るNetbeans見たりで
動くプログラムは多少なり創れる様にはなったんだけどさ。
やっぱり早く動かそうとか、ちゃんとしたクラス分けとか
そういうとこが分からないんだよね。
オブジェクト指向っていうか、そのあたりが理解できてないのか・・・・
どっかの誰かが言ってたみたいに、どこに重点を置いて、
どの場所にどういう風にコーディングすればいいかわかんないんだよねー。
確かに動くには動くんだけどね・・・
はあ宇津田志納
なんでもかんでもオブジェクト指向のせいにスンナ
オブジェクト指向なんか意識しなくても、効率よく組んでいれば自然にオブジェクト指向っぽく書ける
アセンブラ信者か
Javaには珍しいな
405 :
360:2009/09/08(火) 10:08:17
>>403 オブジェクト指向のせいにしてるつもりはないんだけね。
でも、そこも含めて理解しないと今後伸びないかと思って。
っていう話です。
要は未経験でいきなり創れって言われて
創ってみたら基礎は入ってないけど動くのだけはなんとか
サンプルを見つつかつかつできるよ。
っていう程度。
もっと判るようになればなぁ。って思う。
解ってるなら愚痴ってないで勉強しろ
407 :
360:2009/09/08(火) 10:24:11
406>>
ちょこちょこ見ながら業務中。
というか開発中。
がんばるさ。ありがとうー
どの言語の基礎もない奴は迷惑極まりないだけ
言いわけは「動くから問題ない」と表面上だけの薄っぺらいことを言う
409 :
360:2009/09/08(火) 16:31:52
>>408 だからどうすればいいかと聞いてたんだけど
問題ないと思ってないから質問したんだが。
俺が間違ってたか?
>>409 お前には言っていない
自覚があるお前は伸びる
将来有望だろうな
>>409 とりあえず、できる人のデスクの上に載っている本のタイトルをメモしてきて
本屋で立ち読みしてみれば?
リファレンス的なものは必要じゃないの?
>>409 だから独学せずに本を読めと
ある程度の基礎が解ったらソース嫁
413 :
360:2009/09/08(火) 17:12:58
>>410 勘違いすまん。
頑張っていきたいのは確かなんだ。
会社を休職して専門にいこうかも迷ったけど
基礎はできても業務では生かせないだろうから
それなら独学で っていう心理にたどり着いた
>>411 できる人がいればできる話・・・orz
>>412 本も読んでみないといけないな。
やっぱりちょっと難波のジュンクでもいって見てくる。
とりあえず今日このスレで情報収集した本とか参考にしてみるよ。
高卒でIT界に入りたくてはいったから苦労するのは目に見えてたけど
ここが第一の正念場だよな。
414 :
360:2009/09/08(火) 17:13:39
連投すまん。
正直ここまで励まされるとは思ってなかった
ありがとう
勉強会に出ることを勧めるわ
技術は勿論だが、なるべく早く人脈を作るべき
416 :
デフォルトの名無しさん:2009/09/08(火) 17:17:43
上達の近道は他人のソースを見ること
なんて格言があったような気がするが、今捏造したかもしれん
JAVAの標準ライブラリとかapatchのソースとか見てると面白いよ
>>413 俺も高卒でITだよw
今はフリーでやってるけど。
418 :
360:2009/09/08(火) 17:36:30
>>415 それも考えてるけど基本理解しないとSunとかは敷居が高すぎるしね・・・。
ITスクールもどこにいっていいものやらって感じかな。
>>416 ほうほう。いろいろ見てみるよ。d
>>417 俺は社長にスカウトされて入った感じ。
メイン業務はPGの仕事ではないけど
そっちを新規でやるからってことでやってる感じ。
でも、同じ様な境遇って案外いるよね。
親近感沸いた。
>>404 アセンブラ信者はJavaVMを理解してるのだろうか?
>>413 まあ、高卒なら周りの期待も即戦力ってことはないから、これからでいいだろ。
421 :
デフォルトの名無しさん:2009/09/08(火) 18:26:21
>>419 そもそも信者じゃないだろ
レス嫁ドカス
上司に言われたってだけってあるだろ
JEditorPaneのコード(JDK)を見ていたら、
JEditorPane.this と hyperlinklistener.classってのをコードの中でみつけた
何なのこれ?
前者はクラスを明示したthis, インナークラスなどで使われる
後者はgetClass() のようなもの
425 :
422:2009/09/08(火) 19:23:48
>>424 レスありがとうございます
>後者はgetClass() のようなもの
これって、リフレクションとかで使っているような記憶があるのは気のせいですか
確かな記憶ではないです
アセンブラで全部作るとか
効率悪い素人の典型だろ
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が
でてしまった。
はぁ・・・こんなところでつまずいてしまっている。。。
何が良かったってんだよ
適当ぶっこいてると潰すぞごるぁ
containsでチェックしながら1つづつ詰めればいいだろ・・・
432 :
428:2009/09/08(火) 22:22:31
うーん、自己解決だ。
compareToか。
433 :
428:2009/09/08(火) 22:26:24
>>431 containsですか、ありがとうございます。
434 :
デフォルトの名無しさん:2009/09/08(火) 22:54:55
何だこいつww
これが噂の「雑魚」?w
435 :
デフォルトの名無しさん:2009/09/08(火) 22:56:09
重複排除したいだけで本当にTreeSetが必要かと小一時間…。
Tree系はComparableを実装した要素でないといけない。
やりたいこと的には、おそらくequalsもオーバーライドしないとだめ。
437 :
デフォルトの名無しさん:2009/09/08(火) 23:40:50
TreeSetにジェネリックスが付いてないことについて、小一時間問い詰めたい
438 :
デフォルトの名無しさん:2009/09/09(水) 14:35:10
JavaでCD-Rに記録するプログラム(ごく簡単なやつでいいですーフロッピーにコピーするみたいな感じのやつ)
を作りたいんですが、できますか?
CD-Rに書き出すプログラムを起動することならできるよ。
Java の仮想マシンには CD-R ドライブは搭載されておりません。ご了承ください。
Windows版のJavaで使われているDirectXのヴァージョンはいくつなの?
Javaの標準パッケージに3Dアクセラレータ関係ってあったっけ
OpenGLじゃね
ないよ
Java3Dで選択できる
Java2Dで使われるDirect3Dパイプラインのことじゃね
しかしバージョンは知らん
JavaプログラムAprogをコマンドプロンプトで
java Aprog 1
java Aprog 2
java Aprog 3
.
.
.
とbatファイルで重複起動させたかったんですが
一つのプログラムが終了するまで次のプログラムを起動してくれません。
javawで起動しても駄目だったのですが、何か方法はありますか?
CPU使用率等の負荷の計測をしたいのですが・・・
そりゃJavaの話じゃなくてコマンドプロンプトの話だろ
なんですかね?
batじゃなくて手動でやるとできるんですよね
コマンドプロンプトの問題なのか・・・
start java ~~
ってやれよ。
極一般的なServletプログラムをtomcatに乗せて動かしてます。
リクエストがきて、処理が終了して、レスポンスが返るわけですが
HTTPの応答コード200になった時、
HttpServletResponseにcookieにJSESSIONID=[セッションID]がHTTPのレスポンスにのります。
セッションの管理に使われていることは存じておりますが、
このJSESSIONID=[セッションID]をHttpServletResponseからどうにか消したいです。
何か手段はありませんでしょうか?
(環境は変えない前提なのでどうにかプログラム内で対応の前提
クライアント側はcookieをサポートしたクライアントの前提)
追記
Cookie cookie = new Cookie("JSESSIONID", "");
cookie.setMaxAge(0);
response.addCookie(cookie);
では消せませんでした。
レスポンスそのものには触ることができるならラップしてしまえばいいだろう
addじゃなく上書きすれば良いだけだろ
頭悪すぎ
perlを久しぶりにちょろっと書いてみたけど、
javaの方がファイル関係の処理に時間がかかるのは気のせい?
作り手が悪い
455 :
デフォルトの名無しさん:2009/09/09(水) 21:54:26
SwingのWindow分割について教えてください。
Winsowを4分割したいと考えているのですが、これを実装しようとするとどのような方法があるでしょうか?
3Dモデラのメタセコイアのような、境界をドラッグすることで動的に各領域のサイズが変えられる、田の字型の画面を実現したいと考えています。
まず考えたのが、JSplitPaneでいったん左右に分けて、それぞれの領域をさらにJSplitPaneで縦に分割する方法ですが、
枠が左右で独立してしまい、縦に分割している境界をドラッグしても左右が一緒に動いてくれません。
イベントを拾って追従させることで高さをあわせる…というのも考えたのですが、
これだと実装があまり綺麗ではないですし、結局は分割を2回繰り返しているだけなので、
田の字の中心をドラッグしても(単なる左右間の分割線ですので)境界は横にしか動かせません。
何か、もっとスマートな実現方法はありますでしょうか?
コードがないと一般論しか言えないけど、
他言語と比べての大きなオーバーヘッドはないはず。
JInternalFrame使えば?
458 :
453:2009/09/09(水) 22:00:33
>>454 やぱり、オブジェクトを作りまくっているクラスと比較しちゃだめだよな
perlは単純に正規表現だけのプログラムだったし
やっぱり、オブジェクトの生成ってコストかかってんだね
JavaでC言語は作れますか?
コンパイラを実装するって意味ならできるよ。
C言語は作れないが、C言語のコンパイラかインタプリタなら作れる
>>458 オブジェクトの生成コストなんてナノ秒のオーダーだが、いったいどんな事をしたら遅さを体感できるのか教えてくれ
464 :
455:2009/09/09(水) 22:09:14
>>457 その場合は、たとえば領域が
AB
CD
というように分割されているとして、それぞれをJInternalFrameで表現する感じでしょうか?
その場合だと、「境界をドラッグして大きさを変える」という処理を行う際に
「Aの右端のドラッグを検知した場合、その情報を使ってBのサイズを動的に変更」
「Aの右下のドラッグを検知した場合、その情報を使ってBCDのサイズを動的に変更」
という処理は自分で書く必要がありそうな気がします。
田の字型を維持してくれるようなAPIが無いものかと思ったのですが、やはりその辺は自前で処理する必要があるでしょうか。
コマンドプロンプトだしてstart /?って打とうな。
start?
>>451 ラップするというのがいまいちわかりませんが、全力でググってきます
>>452 同名でaddすれば上書きすると思ってました。
頭悪くてごめんなさい
明示的に上書きする方法があればご教授いただけると幸いです。
>>465 まじ有難う
お陰で明日電車止めずに会社行けそうだわ
どういった理由でJSESSIONIDが邪魔なのか後学のためにお教え願いたい。
470 :
デフォルトの名無しさん:2009/09/09(水) 22:35:42
何故Fileクラスに簡単にファイルをコピーするためのメソッドがないのでしょうか?
検索するとFileChannelクラスがどうとかこうとか出てきました。
renameみたいな感覚でcopyとか出来ないんでしょうか?
右クリック→コピー
何でないのって言われたってさあ
なんでこの世に幽霊がいないの?って聞かれてるみたいで非常に馬鹿馬鹿しいんだが
>>462 オブジェクトを生成しているから、全体の処理で1秒くらいかかっている(javaのコード)
でも、それを別にしてもコンソール上でperlを動かしたらめちゃくちゃ速かった気がする
コンソールに表示される文字列に騙されたのかな?
技術者なら体感じゃなくて具体的な数値をまとめろよ
>>470 Jakarta CommonsのFileUtils
>クラス File
>ファイルおよびディレクトリのパス名の抽象表現です。
とあるように、Fileクラスが示すのはディスク上のファイルそのものではない。
だからコピーみたいな機能はない。
クラスパスとビルドパスって何が違うのん?
クラスパス=起動時
ビルドパス=コンパイル時
出来るよ
>>482 ウホッ まじか
ほんとだ・・・ggったら普通にPukiwikiにあった
なんでさっき出なかったのかと思ったけど単に俺が寝ぼけてただけか。
>>478 まるっきり同じ処理で、しかも時間を計っていたらわざわざ書き込まないよ
485が書いたコードの品質が想像できて萎える
doxygenってjavadocより良いの?
専門学校の卒業研究のテーマで悩んでます
javaを使用したいと考えているのですがなかなかやりたい事などが思い浮かばないです
何かアイディアなどを教えてください。
無難にAI付きオセロでも作ってろ
就職したらJ2EEの基盤技術がわかってると重宝される。あとDBとか。
卒研のテーマとして面白さを出したいなら、ありがちではあるが
ゲームとネットワークのうまい融合を探ってみれば。
集合知AIとかOpenCVあたりはトピックとしての注目度は高いかも。
(面接で売りにできるよ)
アイデアマップとかアイデアエディタとかそれ系のうさんくさいやつ
javaでOpenCVかー。集合知AIに一票。
java関係ないがwwwに強い人間が見るならXHTML2.0とHTML5.0の相違点となぜXHTML2.0WGが解散するのかっていうテーマはいいね。
この二つはWWWに与える影響が大きいのでこのテーマを正確に把握し自分なりの考えを示せるなら
WWWの将来ビジョンを見据えられる人材として評価されるかも知れん。
ただこれは卒論で収まる話じゃないね。
集合知は本当にアイディア勝負になりそーだな
wwwwwwwwww
予想通りというか、Javaというよりはアルゴリズムの勝負になってないか
だってJavaじゃないとできないことって別に…ね
プログラムの価値なんて言語そのものに左右されるわけじゃないし。
やっぱ中身(アルゴリズム)勝負になるのはしゃーないのでは。
java限定で
>>492答えてるやつがいないんだからそんなもんよw
501 :
デフォルトの名無しさん:2009/09/11(金) 03:33:37
>>494 w3cが既にグーグルにのっとられてるっとことだろw
もともとw3cなんか何の権威もないじゃん。
あ
503 :
デフォルトの名無しさん:2009/09/11(金) 12:27:37
ValueOfのOfは何を指しているんですか?
それとgetValueとは違いはあったりするんですか?
関数クラスがあったとして、ある変数の値を得る
メソッドの名前はなににしたらいいですか?
1個目
valueOfに渡した引数
2個目
インスタンスのフィールド
3個目
getXXX
XXXはフィールド名
CamelCase使用
3個目は
変数がxだとしたら
valueOfXの略のvalueOfじゃないんですか?
なぜgetXXXなんですか?
フィールドなんてないんですけど。
valueOfは引数を対象にするんだ
String.valueOf(7)ってあったら、メソッドの対象は7だろ
この場合は「7のString型を返せ」だ
>関数クラスがあったとして、ある変数の値を得る
じゃあこの変数って何だ
言葉は正確に頼むぜ
xを与えるとyという値をえるメソッドの名前ですよ。
それは『引数』と言うのよ
今後気をつけろよ
で、本題だが、関数の機能を名前にすればいい
Math.cosとか
関数な機能はクラス名なんで
それは出来ない仕様です。
クラスは関数じゃないのに機能名つけてどうすんだアホ
クラス名はPascal形式なら関数名はCamel形式で併用できるはずだが
じゃあ、例えばcosのみの関数が入っているクラス名はなににしたらいいんですか?
cosのみが入っててもMathで問題ないでしょう?
逆に何が問題だと言うのか。
プロジェクト内だけで使うのならTestProjectMathMethodsとでもするとか。
少しは考えろっての。
Mathだと初期化できませんよ。
2Xみたいな関数なら初期化するときに2を入れないといけないじゃないですか。
横から一言言わせて貰うと、メンバが1個しかないなら分離する必要性がないと思う。
本題からずれてきたな
クラスの設計については聞いてねーぞ
適切な設計をしていないから、適切な名前を与えられない
>>513 そんなの初期化するまでもねーだろ
public double 2X(double v){ return v*2; }
問題がわかってないみたいなので詳しく書くと。
ax+ax^2+みたいなクラスをつくります
Class Polynomial{
いい機会だからそれ以外の部分も書け。クラス図とか。
aを初期化します
int a;
Polynomial(a){
this.a=a;
int xxxxx(int x){
return a*x+a*x^2....;
}
のxxxxxの名前が分かりません。
Operate(演算)とか
untie、work through、resolve
solve、solve for
恐ろしく無駄なやり取りだったね。
>>518-521が初めから書いてあれば速攻答えが出たんだろうけど。
apply
>問題がわかってないみたいなので
問題はひた隠しだったろアフォ
すみませんが、解くとか演算とかは違うと思うんですよ。
10個のなかから1個をランダムに選ぶみたいな計算しなくても答えが出る関数もあるわけだし。
だからvalueOfかgetValueじゃないかなと思っているんですよ。
だいたいPolynomial(多項式)のどこが機能名だ。
付き合って損した。
>>526 その二つは用途が決まってるからどちらも不正解だ。
また何かわけのわからぬことを言い出しました
たぶんValueという単語に特別な意味を感じているのだろうw
関数の値を得るだからgetValueかvalueOfじゃないのはどうしてですか?
getValueは関数の値じゃなくてインスタンスの値用です。
これに限らずgetXXXは基本的にアクセサです。
んで、valueOfはインスタンス生成用です。
どちらも関数用途ではありません。
get系はすでに存在する値をただ単に取得するだけという感じが強い
valueOfは一般にインスタンスメソッドじゃない
Valueという単語を入れたいならcomputeValueとかにすれば
もうxnituitekeisansuruとでも書いとけよ
じゃあValueという単語を入れたいのです><
と初めから書いてくれればいいのに。
面倒くさい奴だ。
そんなことより変数の命名規則がわかんねえ・・・
計算しない場合もあるのでcomputeは使えません。
じゃあただ単にvalueでいいんじゃね
面倒だからparseIntに1票。
じゃあvalueにします。ありがとうございます。
Polynomial p = new Polynomial(2);
int answer = p.value(3);
となるのか。意味分からんな。
もういい止めろ終了解決したのこれで終わりこれ以上引きずらないうるさい黙れ
これは爆釣ですねと言わざるを得ない
後の三平である
釣りではなく燃料です
勘違いしないでください
あたまおかしいですよ
臭いのがいるな
private static List<String> list = new ArrayList<String>();
ってあるけど、なんでstaticにしているのですか?
メリットを教えていただきたい
しらねーよw
どこにあるんだよw
声出してワラタw
複数のインスタンスから参照される共通のオブジェクトを保持するため
552 :
547:2009/09/11(金) 20:18:25
>>548-549 JDKのソース
>>551 >共通のオブジェクトを保持するため
なるほど、こういうことですか
>複数のインスタンスから参照される
なんで、複数のインスタンスから参照されるのかは
頭が足りないのでいまいちわかりませんでしたorz
public class Hoge {
private Hoge() {}
public static void hoge1() {}
public static void hoge2() {}
public static void hoge3() {}
}
もし、メソッドがstaticしかないクラスを作った場合、
デフォルトのコンストラクタを作らせないためにprivate Hoge() {}
みたいなのを作っておくのは普通ですかね?
それとも、staticなメソッドしかないクラスは作るべきじゃないのか
>普通ですかね?
どっちでも良い。
一部ではインスタンス化をしないことを明示するために書くべきと頑固に主張する人もいる。
個人的には書いたほうがいいとは思うけど、コメント書けと思う
// dont create instance
private Hoge(){}
>staticなメソッドしかないクラスは作るべきじゃないのか
作らないのはベターとは言われる
とはいえ、拡張性のないようなメソッドはあるわけで、作る事自体には問題なし
標準ライブラリのMathクラスが一つの例になる
>>554-555 ありがとうございます
Effective javaを読んでいて思ったんだけど、
thisとstaticっていろいろな使い方があっておもしろいね
クラスメソッドしか持たないUtilityクラスを作るのは普通
少なくともWeb系であれば
頭の悪そうな質問で恐縮だが、脱初心者ってどういうレベルのことを言うの?
Javaをやりつつ童貞卒業したら
初心者はバズワードです
DIコンテナに乗っかってると、
Utilityクラスもstaticメソッドじゃなくして、
インタフェース作りたくならない?
それユーティリティじゃない。
ちゃんとオブジェクトに固有の振る舞い持ってる。
教えてください。Java初心者の為、意味がわかりません。
Java言語で「変数A = new String(変数B)」と書いたらDevPartnerに
「Stringコピーコンストラクタを使用しています」と言われた
何?
DevPartner?
市販品じゃねーか
こんなもんがある環境ならレクチャーしてくれる人の1人や2人くらい周囲にいそうなものだが
使いこなせもしないのにこんな製品買うのか・・・いいねぇ、金があって
貧乏人くやしいのうwwwwwwwwwwwくやしいのうwwwwwwwwwwwww
くやしいです
そもそも
>>563は何を質問しているんだ?
コピーコンストラクタの意味なのか、コピーコンストラクタで警告される理由なのか、
エラーを解決する方法なのか、それとももっと別のことなのか
>>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;
>>567 >>568 私が持っているのではないので・・・誰も教えてくれる人が周りにいないのですよ。
>>571 レスさんくすです。
すいません、ほんとに初歩的なところからで申し訳ないのですが、
コピーコンストラクタの意味もあまりわかっていないのです・・・。
エラーというわけではなくて、アプリとして動いているけどこの
ソフトで分析すると警告(?)が出るらしい。
ということでとりあえず「コピーコンストラクタで警告される理由」が知りたいところです。
String 変数A = "";
String 変数B = "あたい";
変数A = new String(変数B);
いろいろ調べてみたのですが、もしかしてnewしているのが悪いって事かな?
参考にしたWeb >
ttp://www.javaroad.jp/java_character2.htm
>>572 レスさんくすです!
おお!どうやら私の調査結果と近い答えが!
一言に要約すると「文字列変数間の文字列コピーにnewを使うな」ってことでOK?
変数A=変数B;
って書けばよかったのかな。
Javaを解る人間雇えよ・・・
576 :
572:2009/09/12(土) 18:04:19
アンカ間違えてた。スマソ
そうです。newで同じ値を持つ別のオブジェクトをわざわざ作るのは、
bオブジェクトの内部状態を変えても、
その影響がaオブジェクトに響かないようにするためのはずです。
しかし、Stringは値の変更ができないため、
そもそも値が同じ別のオブジェクトを作り出すメリットがありません。
bの値を変えた場合は、新しいオブジェクトとして作成される(プログラマが意識しているかは別として)ため、
同じ値である間は、同じオブジェクトを参照していて問題がありません。
自分用にフォント選択ダイアログ作ってたんだけど
親ウィンドウのフォント情報って取得どうすればいいんでしょうか?
フォント情報ごと渡すしかありませんか・・・?
親ウィンドウのgetFontしてもNULLでした
578 :
563:2009/09/12(土) 18:18:37
>>576 Java詳しいみなさんありがとうでした!
ふぅ・・・オブジェクト指向?とやらは概念が難しいですね。
ちょっとびっくりしたのは、(あと今後の自分の為のメモ書きとしても)
私がString変数だと勘違いしているStringはClassというオブジェクトであり、
通常Javaはゲッターセッターで内部と値をやり取りしているが、
Stringにはセッターが無い(?)ので、代入をすると毎回コンストラクタが発動(?)して
名前は同じだけど別のオブジェクトとして変数の箱が存在しているという事かな。
じゃぁさ、私みたいにDISKBasic〜VB6時代のPGしかわからん人が考えているような
ループ処理などのカウンタなどにString変数を使うとなんか変な気がしてきた。
これやるとメモリにオブジェクトが大量にできあがってしまうのか!?な?
うぅもうちょっと勉強してみよう。
あと、ソフトに関して書いていた人へ
DevPartnerというソフトは、使ってみるとすごいよ。
コーディングチェックだけじゃなくてメモリ解放し忘れとか
いろいろコンパイルエラーじゃないけど今回のような問題箇所を
ばしばしと見つけてくれるので。で、さっき書いたURLに行けば
体験版DLできるから試してみたら良いと思う。
カウンターにString変数・・・?
Stringってオブジェクトじゃなかったっけ・・・変数だっけ?
>>563 悪いがEclipseとか無償で入手できるツールで大抵のことは可能なんだわ
有償が悪いとは言わないが、誰も使ったことのないツールよりも相談すれば誰かが回答できるツールのが良い
>>578 普通のループカウンタにオブジェクトを使うメリットはみあたらない。
というか、Stringオブジェクトをどうやったらカウンタに使えるのか
わかりません(^^;;
いままでそういう発想をしたことすらなかった
>>578 なんていうの
小学生が大学教授に数学の講義でもしようっての?
アドバイスくれてやろうなんてお前には100年早い
for(String sCounter = ""; !sCounter.equals("11111"); sCounter += "1"){
処理
}
うっわ。そんなウンコみたいな処理よく考え付くね。
そいつの脳じゃこんなんだろ
for(String sCounter = ""; sCounter != "11111"; sCounter = new String(sCounter + "1")){
処理
}
文法的に可能ってだけで、実用上あり得る記述なのか
ねーよw
遊び心を忘れないって素晴らしいことですよ
よ?
ねえよなw
586は最後に?を入れ忘れた
>>583 現実に存在したら、全力でハリセンチョップをぶちかましたくなるよーなコードだ……。
for(String sCounter="A"; sCounter.charAt(0) != 'Z';
むりか・・・C++ならいけそうだが・・・
592 :
578:2009/09/12(土) 21:34:03
>ループ処理などのカウンタ
あぁすいません、みんなを混乱させてしまった。
ループ処理でブレイクキーに
の書き間違いです。
いろいろ書かれちゃったけど、
とりあえず自分の悩みは解決したよ、
みなさんありがとね!
>>591 Stringはimmutableだと何度も(ry
どうじてもやりたいっていうなら
MutableStringクラス使うんだろうな
>>592 ブレイクキーってフラグみたいなもんか?
enum 使おうぜ。
597 :
デフォルトの名無しさん:2009/09/12(土) 23:44:45
てかそのDev何とかはワレズとかじゃないの?
オープンのプロジェクトが実用レベルになってるご時世で、それもJavaといったらオープンの中心だろ?
それなのに、いまどき割れ物とかクラックものとかはやってるのかね…
納品するのにどうしても写真屋形式じゃないと駄目、MSワード形式じゃだめってなら使う価値もあるとおもうんだが。
会社の支給品だろ。
>>591 cも満足に出来ないのにそんなこと書かなくてもいいんじゃね
見てて恥ずかしい
601 :
デフォルトの名無しさん:2009/09/13(日) 00:21:16
それなら会社のやつに聞けよ
MSのでもワードエクセル程度しか興味ないのに、そんなマイナー商品のことなんか知らんわw
無知が語るなよ。
>>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は何にかみついてるのかわからん
クロームってJavaも速いって噂ですよね?
ネットブック(cpu 1.4Ghz程度)でもサクサクですか?
for(char counter = 'A' ; counter != 'Z' ; counter++){
('A' )…
for(int counter = 'A' ; counter <= 'Z' ; counter++){
('A';;;)…
ああそういう意味か
何回やりたいのかによるんじゃね
のっとが好きな人と大なり小なりが好きな人といるよね
後、三項演算子嫌う人
流れを切るようで申し訳ないですがVelocity の質問ってここでいいですか?
Tomcat上で、画面出力ではないテンプレートエンジンとして
Velocityを使いたいのですが、いくつかの点がよくわかりません。
1. 別々の設定(例えばクラスパスからの読み込みとファイルパスからの読み込み)等で
同じTomcat上で動かす可能性があるので、
Velocity クラスではなく VelocityEngineクラスを使う必要があると思いますが
これは合っているでしょうか?
2. VelocityEngineを使うとして、結構頻繁に呼び出す部分で
いちいち初期化するコストが心配なので、
VelocityEngine のインスタンスは設定ごとに Singleton で保持しようかと思うのですが
それでスレッドセーフに使うことが出来ますか?
ご存知の方いたらお願いします。
とりあえず、やってみればいいのに・・・
やる前に質問してしまう意味がわからない
Velocityスレなかったっけ?
>>577 JFrameを継承して作ったメインのウィンドウからThisを渡してDialogのインスタンスを実行
このメインのウィンドウのフォントを取得したいの?
>>611 自分で試して問題なく動いたからといって、
その実装に問題がないとは限らないので。
特にスレッド間での処理を見るのは、
同時処理自体に失敗している(微妙にずれている)から正常に動いているのか
複数のスレッドから呼ばれても大丈夫なようになっているから正常に動いているのか
判断出来ないなと。
>>614 いや、まず試す→解析する→それでもわからなきゃ質問
じゃねーのか・・・
質問→やるっておかしいだろう
byte a = (byte)0x20;
System.out.println(a);
これを実行すると32となります。
この32は何を表しているのでしょうか?
バイナリの20は半角空白のはずなのですが、なぜか32とでます。
半角空白を出す方法を教えてください。
>>616 これだと、単に16進の20を十進出力してるだけだからでしょう
>>616 byte a = (byte)' ';
とすれば、できるんじゃない?
やったことないからわからんけど
>>616 文字として扱いたいならchar型を使うんだ
printlnのどのオーバーロードを使うかで挙動が変わる
文字を出力したいなら、println(char)を使え
System.out.println((char) a);
charでキャストしたらいけました。ありがとうございまいした。
>>609 !=好きはC++使い。おそらく++counterと書くだろう。
>>615 ライブラリのソース解析までしてから質問するスレだったんですね。
勘違いしていました、すみませんでした。
自分で頑張ってみます。
>>624 いろんな人がいるからね
人によっては細かくおしえてくれるし。
基本、まずは自分でやってみるのが、質問する側の姿勢としては
大切だね
プログラミングに触った事のない俺が趣味程度でjavaを始めてみようと思ってるんだけど
参考書みたいなのは明解Java 入門編 (単行本) これで大丈夫かな?
ど素人にオススメの本ってある?
やさしいJavaでも読んでろ
口調が厳しいのは2ch住人の仕様です
629 :
デフォルトの名無しさん:2009/09/13(日) 21:58:49
Blobクラスを使い、データベースからバイナリデータ(エクセルファイル)を
出力するとファイルが壊れてしまいます。
どこが悪いのかわかりません。
お詳しい方が居たら、ご教授いただけませんでしょうか?
環境:WindowsVista
データベース:Derby
631 :
629: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);
}
}
最後closeしてないの?
大量の文字を高速にswing上のコンポーネントに、描写する方法はないですか?
できれば、任意にハイパーリンクのようなものを配置したいです
普通に描画しても遅い気はしないが?
635 :
633:2009/09/13(日) 23:23:29
>>634 だいたい、10万文字くらい表示しようと考えています
なので、部分的に表示しないと重くなります
どうやれば部分的に文字を表示する機能を実装するか、教えていただきたいです
想像と桁が違ったわ
現在の表示位置と表示エリアの高さとFontMetricsがあれば計算できるでしょ
10万文字描画したとしても、画面に表示できないと思うんだが
文字サイズ0.5くらいなんだろ
>>631 出力されるファイルとオリジナルのファイルで差分とるとなにが違ってる?
ソースは問題なさそうに見えるけど、途中でException吐いて死んでない?
スクロールさせたいです
前スレのswingでスレデータを表示したいとか言ってた奴の臭いがする
>>635 > だいたい、10万文字くらい表示しようと考えています
> なので、部分的に表示しないと重くなります
本当に重くなるの?
645 :
629:2009/09/14(月) 08:21:46
レス遅くなりすみません。
>632
2chだと改行が多すぎると出るので、
必要最低限の部分を書き込みました。
>640
ファイルの差分を調べてみます。
とりあえず、Exceptionは出てません。
(NetBeans6.7で実行しました。)
ありがとうございました。
何か分かりましたら、ご報告いたします。
EJBの良いところを教えてください。
開発がめんどくさくなるだけのように思えるんです。
647 :
デフォルトの名無しさん:2009/09/14(月) 08:50:53
>>646 素人はJBOSSでもいじって勉強してろ
勉強する意味のあるものならいいですがね
あんなのいいところがまったくなさそうなんですが
>>648 J2EE理解できない君じゃとやかく言う資格はないでしょう。
>>651 2chのルールも守れないageおまえが何を言うw
アプリケーション開発が目的ではなくEJBを使うことが目的な
プロジェクトが多すぎる
import unnamed.* すると、無名パッケージの全てのクラスを使うことができるのでしょうか?
よろしくお願いします。
できません
>>656さん
素早い回答ありがとうございます。
では、import unnamed.* が実装されている目的やメリット等は何なのでしょうか?
よろしくお願いします。
わかりません
目的、メリットが分からないと手も出せないカスじゃこの先も伸びないだろうな
素人未満の塵といったところか
そういうな
なんだ民主党員か
まぁ大抵の人は動かしてみてから聞くんだろうね。
理論から入る頭でっかちには向いてないよ。
文系が使えないのはそこにあるんだろうね。
理系は実験(ここで言うプログラミング)を通してから考察だし。
なんだ理系詐欺もいたか
俺は別に必要ないものがあっても気にしないタイプだからなあ
とりま技術バカにならないためにも今日も勉強してますかの
H2B技術者とJava技術者はどちらが上ですか?
自分が分かってない奴と露呈するのが恥ずかしくて、質問する相手を中傷することで自分を保とうとする屑っているよな
答えられない知識不足のくせに自尊心だけ高くて、その上周りに不満や暴言を吐く有害なゴミ
>>658除く
死にたくないからです
小学生かお前ら
>>652 ageただけで吠える無能
さすがに技術じゃ勝てないか
重箱の隅つつくようじゃ底が知れてるね
673 :
デフォルトの名無しさん:2009/09/14(月) 13:14:36
何を言ってんだこのゴミはw
>>673 2chのルールも守れないageおまえが何を言うw
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
というか、import unnamed.* なんて書けるの?
>>672 ええ、技術?
ていうか、死にたくないからっすよね?
>>677 やってみたらnetbeansに怒られた
netbeans使ってる奴は池沼
レイアウトやりやすいんだぞ!
Eclipseに乗り換えようと何度思ったことか
YOU乗り換えちゃいなよ
683 :
デフォルトの名無しさん:2009/09/14(月) 14:46:15
おまえんちはまるで便所だなw
それにしてもEJBって必要ないな
はー
やっとEJBマスターしたけどやっぱめんどくさいだけだな
HelloEJBが表示できた。
688 :
デフォルトの名無しさん:2009/09/14(月) 18:42:21
逝ってよし
スルー力が大事。
この業界こだわっちゃう人が多いし。(いい意味で)
んでEJBは微妙。学習コストが高くて生産性も高くはない。
でも3.0はかなり良くなってるから本気出したほうがいい。
2ちゃんねるブラウザを作ろうと、毎日頑張って調べてきたけど
どうしてもV2Cみたいに高速にスレッドを表示できね
ぜんぜん、わかんね
何に時間かかってる?
692 :
デフォルトの名無しさん:2009/09/14(月) 19:10:22
Javaから.Netを使うにはどうすればいいの?
697 :
690:2009/09/14(月) 20:03:40
>>696 JEditorPaneでやることはスピード以前にいろいろと問題が発生しそうだと気がついたので、
かなり前にあきらめた
>>691 HDDからの読み込み→インスタンス化までは1秒くらいになった
でも、swingコンポーネントに文字を高速表示する方法がわかんね
V2C作者に質問したら、JPanel + DrawString()で描写をしていると教えてもらった
だが、Graphics2Dの管理と高速化の両立は厳しい
おそらく、ちょっと移動するたびに表示エリア内を全部書き直してるだろ
699 :
690:2009/09/14(月) 20:30:34
>>698 その通りだよ。だから、部分的に表示して画面を考えているんだけど
なかなか、簡単にできないからずーっと困っている
Graphics2D.drawString()だと自動で文字列改行をしてくれないし、
スクロールバーもどうやったら適切なサイズ(長さ)にできるのかとか
調べても調べてもヒントになるページが引っかからない
単純な計算の積み重ねのような気がするが
横着しようとして詰まってるだけじゃないの
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です。どなたか解る方、ご教授願います。
そんな、ひどい…
706 :
701:2009/09/14(月) 21:26:11
すいません、あせって
>>1をよく見てませんでした。もう一回出直します
>>705 2ちゃんねるで質問すると答えが厳しいから、気にすんな
linuxだと環境変数を設定しなくてもよかったりする
よくわかんなかったら、Eclipseでもインストールしろ
インストールを説明するサイトとかで、環境変数の事について調べられる
EJBのCMPってどうやってDBとつながってるの?
709 :
701:2009/09/14(月) 21:29:42
710 :
701:2009/09/14(月) 21:30:36
711 :
デフォルトの名無しさん:2009/09/14(月) 21:36:06
Pathの設定してないじゃん。。
それはそうと、何でJavaのパスやクラスパスくらい自動設定する
ソフトがないんだろうな。。
ただ単に環境変数にPathとクラスパスつけてやればいいだけじゃん。
俺が造ってもいいけど、XPしかもってないし、Vistaがどのフォルダにインスコされて
なんか権限とかぜんぜんしらねから、Visco対応のは作れない。
XPだけでもいいなら、作ってやってもいいが、7もでるしなあ。
なんで、ほかのプログラマはそんくらいの物作って、うpしてやらないんだろうな・・
>>707 linuxでもpathを通す必要があるのは変わらない。
713 :
デフォルトの名無しさん:2009/09/14(月) 21:39:20
>>701 ふんと、2chは不親切だからいやだよな。君が書いた↓
path →%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\QuickTime\QTSystem\
にJavaをインスコしたディレクトリ\binフォルダが追加記述されてないとだめだよ。
Javaをインスコしたディレクトリの中のbinディレクトリを覗いてごらん。
javac.exeがあるはずだよ。コマンドプロンプトも
>javac' は、内部コマンドまたは外部コマンド〜
といってるよね。javac.exeが見つからないっていってるんだよ。
pathをちゃんと設定すれば直るよ。まあ、がんばりいな。
714 :
701:2009/09/14(月) 21:44:23
>>713さん
path →%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Java\jdk1.6.0_16\bin
CLASSPATH 現状のまま
QT JAVA 現状のまま
で宜しいのでしょうか?何度もすいません
715 :
690:2009/09/14(月) 21:51:25
そりゃ、エディタの描画部分なんて自作しようというのは余程の暇人かドMだからな。
java.awt.font.* とかはちゃんと見た?
718 :
デフォルトの名無しさん:2009/09/14(月) 22:03:40
もうやめちまえ。
おまえじゃ時間の無駄
問題のコードとテストドライバがあれば誰かチューニングしてくれんじゃねーの
>>708 CMPの名前のとおり、コンテナに管理させたデータソースをコンテナ経由で使ってる
>>717 >余程の暇人かドMだからな
コンピュータをやる時はなるべくいろいろな事を、勉強出きるようにしている
それに、思う存分出きるのは今年までだから最後くらいはと思ってね
java.awt.font.*は必要に応じて読んでる
とりあえずSwingスレに帰れ
>>630 わざわざありがとうございます。
VelocityEngineはスレッドセーフだけど
contextはスレッドセーフじゃないから都度インスタンス作るように
って書かれてるみたいですね、
安心できました、助かりました。
724 :
デフォルトの名無しさん:2009/09/15(火) 00:28:01
725 :
デフォルトの名無しさん:2009/09/15(火) 00:31:10
>PATHの一番先頭に、
>C:\Program Files\Java\jdk1.4.2_17\bin;
>を追加しましたか?(最後でも良いですが、QTなどが入っていると不具合があったりします
hibernateって重いな
iBatisのがお勧めだぞ。
新規でhibernate採用してるとこまだある?
関連の強いデータ,ってかPOJOとRDBテーブルって
分離して書きたいけど,分離して読み解きたくないジレンマ
HQL便利だな
ここ2年くらいJavaから離れていたんですが、最近のO/Rマッパーの主流はiBatisですか?
S2Daoとかhibernateは何回か使ったことありますが、最近のオススメを教えてください
一番いいのはO/Rマッピングしないことだよね
しないって全部生で書くのか?
生はある意味気持ちいいけど生まれたものは責任取らなくっちゃね
はしたない
なんでO/Rマッピングする派が多いの?
詰め直す手間を省きたいから?
UML図からのコード生成から、そういったフレームワークに乗せられるから?
ドメインモデル礼賛派が多数を占めてるからじゃね?ケッ
マジレスするとS2JDBCが最強
ドメインモデルがけなされるのは業務ファットなプロジェクトで使ってないからだと思う。
そーなってくるとドメインモデルの問題というより設計の問題といえる。
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なフィールドに代入すると、どこまで値を保持してくれているんですか?
無論死ぬまで
ワロタ
743 :
デフォルトの名無しさん:2009/09/15(火) 20:58:11
なんでantなのか?
makefile,batではだめだったのか?
xmlの文字量ならJavaをantのように使えたほうがよかったのに
俺もそう思う
>>743 ExcelVBAとかからゴリゴリ
Ant生成するときはXMLの方が楽です…。
戻り値が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();
ではどちらが早いですか?
>>746 変わんないんじゃない?
Stringの+演算って、内部では結局StringBuilderのappendがやってる
内部char変数の足し算で実装されるときいたことがある
ただ、
>return str.group(1) + str.group(2) + str.group(3) + str.group(4);
の部分が
return sb.toString();
と同等のコードにコンパイルされるかは知らないっす
>>746 このスレか前のスレに同じような質問があった気がする
>>749 そうだよな
でも、このhatena記事みると、あれー?って感じだなw
コンパイラの最適化オプション-Oとかで結構変わったりするかもな
最新のは最適化オプションがデフォルトで入るときいたこともあるが
そりゃループの中で毎回 str += s; してるからだろ
str += s; は str = new StringBuilder(str).append(s).toString(); みたいなことになるから無駄だらけ
>>752 つまりはnewしてるのがオーバーヘッドの要因ってこと?
じゃあ、
>>746のような+をつなげたような書き方なら
str.append(str.group(1)).append(str.group(2)).....
な感じになって、あんまり変わらない?
何回「+」でつなげるかってーのは(あまり)重要じゃない。
Stringのインスタンスが何回生まれるかってことが大事。
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
最適化しないのね。
>>756 すばらしい
逆コンパイルすることで、わかりやすく解析できるな
やっぱnewの連発(インスタンス生成)が問題なんだな
このへんはコンパイラ依存
C++で作ったコンパイラはやっぱり安心できる
8 new java.lang.StringBuilder [18]
これ自体は10ナノ秒/一回程度のコストだから
文字列連結処理全体から見た場合の影響度はきわめて小さい
23 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [33]
問題なのはこれが繰り返されること
>>760 なるほど、いっかいいっかい、Stringオブジェクトへ変換
(新規Stringオブジェクトを生成してる)がまずいのか
まずかどうかは状況次第
10回程度連結しようが普通のアプリじゃオーバヘッドにはならんよ
StringとStringBuilderの間で文字データを何度もやりとりしてるのが大きいんじゃないかなぁ
StringからStringBuilderへ文字データをコピー、StringBuilderからStringへ文字データをコピー・・・
文字列が長くなるほどつらい
java.nio.*が利用出来ない環境で、その実行環境でサポートされている
エンコーディング(ISO-2022-JPやEUC-JPなど)の一覧を取得する方法は
ありませんか?
具体的にはjava.nio.charset.Charset#availableCharsets()相当の情報を
取得する方法が知りたいです。
sunのjavacはコンパイル時の最適化はあんまりしない。
JITとかにまかせる方。
jadの入手先が見つかりません。
googleの一番上に出てくるけど?
ありがとう、見つかりました。
>>764 ない。
代替方法としては jre/lib/charsets.jar の中をのぞいてみるとか
既知のエンコーディング名を String#getBytes(String) につっこんでみて
UnsupportedEncodingException になるかテストするとか
クラスパスにjarとかzipじゃなくフォルダを指定すると
そのフォルダにあるXMLとかをフルパスで指定しなくても
読めるようになるんでしょうか?
パネェ…
(´・ω・`)うっほっほ
型パラメータを持つクラスのオーバーロードがうまくいかないんですが、どう書けばよいのでしょうか?
今は、Vectorにそれぞれの名前を持たせたい(JTreeにつっこむときのために)のですが、型パラメータ部分を無視すればコンパイルできるし、
動くことは動くのですが、型が一致しない可能性について警告みたいなのがでて。
具体的には
警告:[unchecked] raw 型 java.util.Vector のメンバとしてのacd(E)への無検査呼び出しです。
と
よろしくお願いします。
ソースうpするよろし
ありがとうございます。
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>みたいに指定
できるじゃないですか?っていうか、それをしないと、コンパイラに怒られるみたいなんですけど、
上みたいにするとどうもそれができなくなって。それなのにコンパイラには怒られるので・・・。
class MyVector extends Vector<String> {
または
class MyVector<E> extends Vector<E> {
のようにするといいよ
うまくいきました。
ありがとうございます!
<T> じゃないと嫌どす
インデントくれーつけろや
インデントとインシデントの区別がつかん
あ、すみません、コピペしたらタブでのインデントが消えていたみたいです。
ごめんなさい。
>>766 MergeDoc で Pleiades All In One 入れちゃうのが Jad 入手にはいっちゃん
手っ取り早かったりする。
ただ貧弱なPCだと Pleiades は無茶だから薦めない。
>>778 Vectorは使わないほうがよいよ。
以前の互換性のために残してある過去の遺物。
Vectorがなくちゃプログラム作れない
!?
.
インデント・・・・・字下げ
インシデント・・・入れ歯洗浄剤
インシデントって言ったら、ITILくらいしか思い浮かばないけどな〜
CERTでしょ
しかしVectorの代価手段がおざなり
同期ラッパーが不要。以外に何か特徴あったっけ?
それそれ
いいかげん Collections#synchronizedList() 使うことを覚えてください。
あらら・・・
しかしそれでは解せない
よすよす
なにこの流れ?w
最近変なのがいついちゃったからな・・・
Vector使ってる奴はよほどの素人だな
でもお前らList<T>つかってんだろw
最近の流れについていけないんだけど
<T>ってなんぞ・・・?
List<String>とかならジェネリクスだよねってのはわかるんだけど
1.4時代からなかなか抜けれない・・・
>>802 _ ___
/ ̄ ̄ ̄ ̄\,, /−、 −、 \
/_____ ヽ / | ・|・ | 、 \
| ─ 、 ─ 、 ヽ | | / / `-●−′ \ ヽ
| ・|・ |─ |___/ |/ ── | ── ヽ |
|` - c`─ ′ 6 l |. ── | ── | |
. ヽ (____ ,-′ | ── | ── | l
ヽ ___ /ヽ ヽ (__|____ / /
/ |/\/ l ^ヽ \ / /
| | | | l━━(t)━━━━┥
ヒント
< > ←これは両腕を腰に当てている様子
あとはわかるな?
805 :
デフォルトの名無しさん:2009/09/17(木) 14:47:19
煽りはいいからさっさと答えろクズども
ここは質問スレだろ
俺様の目が黒いうちに早く答えやがれ
List<T> ならわかる?
List<E> ならわかる?
クズはクズかごへ入れましょう
地球に優しいJAVAスレです
なんかvectorを勘違いしてるやつがいないか?
>>804 T はネクタイだな
海パン刑事にしか見えなくなってきた
812 :
デフォルトの名無しさん:2009/09/17(木) 22:07:55
なんか寒いな。このスレ
じゃあ、あなたの知性であっためてやってください
うききっ(寒い)
(∩´∀`)∩ワーイ!<T>ダァ!
816 :
デフォルトの名無しさん:2009/09/17(木) 23:17:12
javaでflashをやるにはどうすればいいのですか?
教えて下さい!
すいません、初心者です。
戻り値を複数戻したい場合どうすればいいのですか?
よろしくお願いします。
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("等しくない");
}
}
}
おい、うるせーぞ
たしかに〜
>>819 ちなみに、そのコードの実行結果はどうなったの?
>>822 newしたら別のもん。Stringとか関係ない。
>>819 newしたらオブジェクトは絶対に作られるし参照も別になる。
但し別の箇所に書かれた同じ内容の文字列リテラルは参照が同一となる。
その例でいえば、"仮"自体はどっちも同じオブジェクト。
しかしnew Stringで2つの新規オブジェクトが作成される。
まあ、"仮"自体も、その2つのオブジェクトもプライベートフィールドに持ってる
char[]配列は同じもの指してるが。
828 :
デフォルトの名無しさん:2009/09/17(木) 23:45:51
あの...flashを...
>>828 flashやるんだったらjavaいらなくね?って感じですが
正直いいますと。。。
830 :
デフォルトの名無しさん:2009/09/17(木) 23:48:07
そうでしたか。マイクロソフトでやってみます。
それはトイレのウンチを流す方のフラッシュだな
>>831 こ、これとは違うと思うんですが。。
flash、"a"の方ですよたぶん、
>>828が言ってるのは
( ^ω^)ググレカレー。うまいお!
Don mai keru
Sou iu toki mo arusa
Souiutokibakkadesu
なんだかもう人生につかれたので人生オフラインしてくる
838 :
デフォルトの名無しさん:2009/09/18(金) 02:17:19
オブジェクトIDってなんだ?
ハッシュナンバーなら分かるが
ハッシュコードだった
ハッシュコードをオブジェクトIDと間違えてるなら
ハッシュコードはオーバーライドされてるから
文字列が同じなら同じ結果が計算されるんだから
同じメモリー上のオブジェクトだとは言えない
Object#equals()でもみてこい
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しなくていいのでしょうか?
また逆に読み込みでbrをcloseしなくてもいいのでしょうか?
>>843 bw.close() すれば内部で fw.close() する。
fw.close() じゃなくて bw.close() するのは
bw にバッファリングされた文字を書き出させるため。
素人だな
動けばいいです
動けばいいならclose要らないなw
close()の委譲は激しく実装依存の話なので
可能ならば委譲の先っぽから全部close()していってください
動けばいいとは・・・
おバカな質問大歓迎w
>>845 なんとなくわかりました。
じゃあ読み込みでbrをcloseしないのは
どういうふうに説明できるのでしょうか?
>>851 そこは fr.close() でも br.close() でもどっちでもいいから。
bw.close() との対称性とか気にせずに fr.close() してるだけ、かな?
よくわからん。
あ…ありのまま 今 起こった事を話すぜ
ソースの重複してる部分をサブルーチン化して短くコンパクトに
してみたんだが、コンパイル後のjarファイルの総量は増えてた
な… 何を言ってるのか わからねーと思うが(略
"さらに実行すると遅くなる"不思議が含まれてないぞ
重複してても圧縮されるからな
856 :
デフォルトの名無しさん:2009/09/18(金) 11:57:36
なんか変なやつがいついちゃってるな・・・
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と同じオブジェクトを参照しているので
同じ文字列をを出力できると思っていたのですが。
同じオブジェクト参照してないよそれ
StringBufferにすればいいんじゃない
>>860 > a = a.toUpperCase();
この時点で a != b だ、よぉ〜く考えてみな。
Stringクラスは変更不能だから
865 :
860:2009/09/18(金) 16:55:51
つまりaの値を変更した時点でaは新たなオブジェクトとして再生成されてしまうということですね。
toUpperCaseは自分自身の値を変更しないよ
大文字の新しいStringを返すメソッド
867 :
860:2009/09/18(金) 18:07:43
String型は値を変更できないんですね。基礎的な部分での誤解で申し訳ございません。
オブジェクトの値を変更したい場合はStringBufferを使えば良いとのことですので
そちらの方法を試してみます。いろいろと有難うございます。
Javaでテキストエディタを作りたいのですがパフォーマンス的にはどうでしょうか。
C/C++と比べるとJavaは遅いと言われていますが、NetBeansなどのエディタは相当速い気もするのですが。
Javaで作るべきでしょうか。
多言語と比較して、Javaのパフォーマンスが見劣りするような状況は見られなくなっています。
これはCやC++と較べた場合にも当てはまります。
エディタを作る場合、高機能なものが作りたいのであればJavaを選択するメリットは大きいと思います。
逆に、とにかく高性能なものが必要であれば、より低水準な領域に手が出せる
C/C++を検討してみるのがいいかもしれません。
V2CがJaneより速いことを考えるとネイティブと遜色ない速さということが
わかる
872 :
デフォルトの名無しさん:2009/09/18(金) 22:28:38
CPUが3Gとかマルチコアになってる時代なのに、その速い・遅いってのは何が基準なわけ?
皆が最新鋭と思っちゃ大間違い。1GHz512MBも意外と現役・・・退役させろよホント。
2002年製ノートが1GHz512MBくらいだった気がするな
胸が熱くなってきた
876 :
デフォルトの名無しさん:2009/09/18(金) 22:52:38
ネットブック(回線同時契約で実質1万ぐらい)のスペックがそのくらいじゃなかったか?
きちんと作ればJavaだろうがなんだろうが速くなる。
878 :
デフォルトの名無しさん:2009/09/18(金) 23:11:01
で、その速いって言うのは何と比べてるわけ?
879 :
デフォルトの名無しさん:2009/09/18(金) 23:38:31
>>842 遅レスだが
equalsも文字を比較するようにオーバーライドされているから
同じオブジェクトかどうかを比較する事はできない
C#
( ^ω^)おっおっお
882 :
879:2009/09/19(土) 01:31:42
サブクラスのインスタンスから
スーパークラス部分のequals、hashcodeって呼び出せないよね?
これってわざとこういう仕様にしたのかな?
885 :
879:2009/09/19(土) 01:36:37
>>883 >>884 それはStringクラスの中なら出来るんだが
実際インスタンをObjectにキャストした物経由でやるとサブクラスのが呼び出される
>>885 サブクラスを作るときにオーバーライドしなければいいだけの話
オーバーライドした=スーパーインスタンスメソッドは要らないはず
両方ひつようなら、両方に対応できるよう、サブクラスを実装すれば
いいだけ
888 :
879:2009/09/19(土) 01:44:02
オブジェクトが等しいかどうか調べるには
Stringのequals、hashコードを改造して書き換えたくなってくるがどうよ?
Stringのequals.hashcodeの中で比較したい
Stringのhashcode、equalsのfinalを解除したい
>>888 じゃあ、Stringクラスのサブクラスつくって、equalsでもhashでも、
オーバーライドすりゃいいじゃないか
ちがうんか?
891 :
デフォルトの名無しさん:2009/09/19(土) 01:49:02
関数テーブルの実行はmethodクラスとinvocableでするのが普通なの?
JavaFXってどうなの?
893 :
879:2009/09/19(土) 01:50:35
すまん、別にequals、hashcodeを書き換えなくも良いか
Stringクラスを継承して、super.superとやれば良いかな
>>893 ざんねんながら、super.super.メソッド名()のような、2つ以上
上のスーパークラスのメンバにはアクセスできんのだよ
897 :
879:2009/09/19(土) 01:56:12
>>890 String、final 付いてるな
これはあやしい
Stringをぶっ壊すしかない
Stringクラスはfinalクラスのようだな
じゃんねん
899 :
879:2009/09/19(土) 01:58:48
Stringのソースコードってあるの?
あればオリジナルなStirngを作れば良いか
>>888 オブジェクトが等しいか比較するのは == だろ。
equals メソッドを使う必要はない。
ところでだ
なんで、879はそんなにequalsメソッドを書き換えたいの?
ポリモルフィズムを理解してないからだろw
>>902 おまえはおまえで、どうしてここでそれが出てくるんだ?
904 :
879: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になったわ
どこかで同じになったって書いてあって気になったから実験してみた
>>904 前に書いてあったのは、Stringオブジェクトの内部変数char[]が
同じリテラルのオブジェクト同士は同じだっていうはなしじゃなかったか?
907 :
デフォルトの名無しさん:2009/09/19(土) 02:13:54
908 :
879:2009/09/19(土) 02:22:20
>>906 そういうことか
それなら同じになってもおかしくはないな
単一のリテラルから複数のStringオブジェクトを生成する意味がねーんだっつーの。
finalなのもサブクラスでイミュータブルが不用意に破られないようにしている意味が大きいんだから。
910 :
デフォルトの名無しさん:2009/09/19(土) 03:06:24
関数テーブルの実行はmethodクラスとinvocableでするのが普通なの?
JavaではInterface切るのが普通じゃないの。
913 :
デフォルトの名無しさん:2009/09/19(土) 07:45:22
おまえごときじゃジャヴァは無理
日本男児なら素直にRUBYを使え
914 :
デフォルトの名無しさん:2009/09/19(土) 07:47:50
だな
>>889 オーバーライドされる前のhashcode見たければ
System#identityHashCodeを使えばいいよ。
実際にこれ使ったIdentityHashMapとかあるわけだし。
916 :
デフォルトの名無しさん:2009/09/19(土) 10:13:43
そうか、そうしてみるわ
でも、ほとんど必要ないな
まつもとゆきひろ(笑)
坂本と鳥谷は比べる意味が無いな
チームへの貢献度なら桁違いだし
スレ間違えた
// 独自のスレッドで動く
public void run() {
while (true) {
current = blockingQueue.take();
// current を処理する (略)
}
}
// e がキューに入っているか現在処理中であるなら true
synchronized boolean check(Object e) {
return (e == current) || blockingQueue.contains(e);
}
(つづく)
(つづき)
以上のようなコードを書いたのですが、
ある x というオブジェクトが
キューから take() で取り出された後 current に代入されるまでの
わずかな間に check(x) が呼ばれると false を返してしまいます。
複雑なやり方をすれば何とか解決できそうなんですが、
何かシンプルな解決法か、
こういった場合の一般的なイディオムはありますか?
ロックオブジェクト使えばいいだけじゃねーの…
排他制御とかスレッドの基本中の基本だから入門書でも読んでからやってくんねーか
お前入門書レベルの分からない壁にぶち当たる度にこのスレに質問しに来る気か?
currentをlockすればいいだけじゃね
>>922-923 バカじゃねーの
current = Queue.peek()してから次にQueue.poll()すればいいだけだろ
頭おかしいんじゃねーのか
知ったかの初心者が回答するんじゃねーんだよ
お前らこそ入門書読んでやがれクソハゲ
(`;ω;´)
=≡つ)ω;´)
平和だね
currentの処理スレッドが1スレッドだけならそうだね。
currentのスコープがようわからんし、checkを誰が呼びたいのかもよくわからんけど。
ついでにblockingQueueの型も。
929 :
920:2009/09/19(土) 16:55:18
ブロッキングキューの take() は、キューが空のとき待機するので、
単純に synchronized を使うとデッドロックする可能性があります。
take() を使うのをあきらめて、
peek() が非 null を返すまでビジーウェイトするべきでしょうか?
画像ファイルを次々にキューに入れていって、
それを1つずつロードするというイメージです。
check() が false を返したファイルをキューに追加するとか、
check() が true を返した画像ファイルには
「ロード中」の印をつけるとかいった使い方をします。
そういうのは最初に書けよ。
誰かさん専用質問スレの様だ
分からないことは全部ここで聞きたいらしい
嫌なら出てけよ
嫌なら追い出せよ
( ^ω^)
これは
>>931にとって予期せぬExceptionだ。
だな
=≡つ)ω;´)
もう次スレいらねぇだろこれw
平和だね
何のためのブロッキングキューなのかわからなくなってきた
もうプログラミング辞めてくれないですか。
∧_∧
(´・ω・) いやどす
ハ∨/~丶
ノ[三ノ |
(L|く_ノ
|* |
ハ、__|
""~""""""~""~""~""
×もうプログラミング辞めてくれないですか。
○もうプログラミング辞めてくれませんか。
ClassNotFoundExceptionっていうエラーが出るのですが
なにをどうすればFoundできるんでしょうか?
クラスファイルはあるんですよ。
見えてないか触れないか
>>929-930 currentに処理前 処理中 処理完了のフラグをフィールドで持たせるのは?
948 :
デフォルトの名無しさん:2009/09/19(土) 18:14:20
スレッド間の接点は極力少ないほうが良い
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とコピーするんです。
やっぱりこんなメソッドおかしいでしょうか?
何か他にこうすればいいじゃんっていうのがあったら教えて貰えませんか?
こたえは、、頭がおかしい。
method("C:\\SourceForge\\textfile.txt", "C:\\Program Files\\folder", "copyfile.text", 1, 10)
でいいのでは
953 :
デフォルトの名無しさん:2009/09/19(土) 22:35:16
>>951 すみません。プロではなくただの素人なので変なことを言ってるかもしれません。
>>952 なるほど。それは確かにそうですね。
>>952のようなメソッドってそんなにおかしなメソッドじゃなく割とありそうなメソッドでしょうか?
>>953 「おかしなメソッド」の意味がわからん
処理の内容のこと? 引数のこと?
メソッド内部で使用するループのインデックスを引数にとるようなメソッドです。
別におかしくないと思う
method(int startIndex,int length)とか普通に書くし
そうでしたか。
なら安心ですね。
変な質問に付き合ってくれて有難うございました。
959 :
920:2009/09/19(土) 23:25:05
>>941 「take() を使うのをあきらめる」というのは
「BlockingQueue を使うのをあきらめる」とおなじ意味です。
>>947 何か上手いフラグの使い方があるでしょうか?
単純にフラグを使っても、おそらくおなじ結果になると思います。
current の値が、事実上フラグとおなじようなものだからです。
>peek() が非 null を返すまでビジーウェイトするべきでしょうか?
これは発想できるのに、なんで直前にwaitを挟むって考えに至らないんだろう
>>929を何度読み返してもBlockingQueueである必要性が全く見えてこないんだが
単に待機するためだけに使ってるんでしょう。
とりあえずQueueでContainsとか使うなよ見苦しいJavaDoc嫁。
>>950 1.5移行なら PrintStream(OutputStream out) でPrintStream作って
PrintStream#printf() を通して書式を管理できるかも
キューに入れるオブジェクトに処理中フラグみたいなのを持たせて
キューに入れる前にtrueにして、処理が終わったらfalseすればどう?
却下。
じゃあそのアプリの開発を中止して5連休を目いっぱい楽しむというのはどう?
>>959 Object eが読み込み中かどうかが知りたいのだから
Object eにそういうフィールドを作って、処理する時に適宜書き換えればいいよ
isLoadingとかisQueuingとか
「処理中かどうか」なんてもろオブジェクトの性質なのになんでわざわざ分離して分かりにくくしてんねん。
面倒臭いから嫌ですって言い出すから見てろw
てか初歩的なないようだから初心者の方でやれば良いよこの質問に関しては
いや、初心者スレは元々ここで(略
>>972 それは過去の話ですね
別々にしようと思って、スレタイを前スレから替えたんじゃないんだけどな〜
>>1の俺が言うんだから間違いない
975 :
973:2009/09/20(日) 01:09:34
Java村のあーさだよ。あーさだよ。ぴよぴよ。
978 :
デフォルトの名無しさん:2009/09/20(日) 07:17:14
「ヤッターキング強すぎだコロン!」
連休中までプログラミングしてるなんてもはや病気だな。
そろそろ梅。
finalを使いまくると速くなるって記事を読んだことがあるんだけど
今も時代のJVMも速度に変化あるわけ?
埋
>>921 や、そもそもthis.currentを別スレッドで見てるなら、this.currentに代入する部分と、this.currentを参照する部分の両方で排他制御しなきゃだめだろ。
synchronized (this) { current = blockingQueue.take(); }
>>910 関数テーブルを作ることが皆無とは言わないが、普通はポリモフィズムで十分だ。
char[] = str;って出来たら楽なのに
String#getChars()とかまんどくせ
>>983 synchronizedするとtake()がブロックし続けるからまずいって言ってるっぽいよ。
別スレッドがエンキューするためにcheck()->add()/put()呼びたいけど、
take()でブロックされてるとデッドロックになるってことでしょ。
ポリモフィズムって言葉が大げさだね
じゃポリリズムで
>>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自体を根本的に考え直す必要があるような気がする。
>>989 初歩的な質問は【初心者】Java質問・相談スレッド132【専用】でしてください。
(´・ω・`)フンフンフン♪
同一オブジェクトに対して入力・チェック・出力の三つが同時実行される可能性があるのがだめぽ
バッファ分けるか処理分けるかしなさい
せやな
梅。
Class.forName("クラスA");
Class.forName("クラスA");
Class.forName("クラスA");
Class.forName("クラスA");
Class.forName("クラスA");
これを実行した場合、JavaVMには同じクラスが5個ロードされるのでしょうか?
それともクラスローダは同じクラスが存在すると、ロードしないのでしょうか?
しない
本当でしょうか?
疑うならstaticイニシャライザでprintlnでもしてみなさい
同じクラスを5個ロードするには少々面倒なことをしないといけない
本当でしょうか?と問う位なら聞くなっていう…
1000ならJava8で総称型仕様変更。
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。