1 :
デフォルトの名無しさん :
2010/05/01(土) 12:46:59
ありゃ、1行余分にコピーしてるな、まあいいか 乙>俺w
5 :
デフォルトの名無しさん :2010/05/01(土) 13:44:13
1>>乙
otu
何故、左シフトには論理左シフトと算術左シフトの2種類無いの?右シフトには論理右シフトと算術右シフトの両方あるのに
中央シフトが無いのは差別ニダ!
>>7 それはね、論理左シフトと算術左シフトは結果が同じだからですよ。
符号には影響されないってことか
つまり算術左シフトは符号無視して論理左シフトと同じように 10000010 (-126) → 00000100 (4) になるってこと? 1000100(-60) にはならないってこと?
清清しいまでの自演
自演乙
(´・ω・`)
>>11 算術シフトは符号ビットを入れるルール
× 1000100
○ 1000101
あれ俺まで混乱してきた 1001 1000 (-104)を算術左シフトすると 1011 0000 (-80)になっちまう
算術左シフトの定義からして符号ビットは無視します^^;;
元 1 000 1000 (符号付8ビット整数) 算術 左シフト 0 001 0000 右シフト 1 100 0100 論理 左シフト 0 001 0000 右シフト 0 100 0100
どうやら俺の理解が足りていないようだ
>>21 論理シフトは符号付に向いてないからいいとして
算術左シフトで、結果的に元の数が負だったのが
00010000という負でない数になってるのは正しいのですか?
CASL II だと算術左シフトは符号ビット残す。 CやJavaだと算術左シフト=論理左シフトになる。
>>19 符号ビット残すと数値がおかしくなるので
算術左シフト自体に利用価値が無い。使うような用途が無い。
だから存在しない
つまり 10011000 (-104)を-208にするためにはどうすればいいってばよ?
>>21 8bitしかかいてないのでbyteデータだとすると
論理
×右シフト 0 100 0100
○右シフト 1 100 0100
なぜなら、論理シフトであろうと、シフトする前に32bitに符号拡張される謎仕様だから
理論上じゃなくてまずJava仕様だったなwスレ的にw
>>27 int a=-104;
System.out.println("a="+a);
a*=2;
System.out.println("a="+a);
//Output
// a=-104
// a=-208
自分をシフトしたいわ
>>31 8bit整数を負符号オンリーで現せば ほら 0〜-255 この通り1
34 :
デフォルトの名無しさん :2010/05/01(土) 21:30:38
そんな一般的でない符号化が許されるなら、1ビットで-208表したっていいだろ。0ビットでもいいかもな。
0bitは無理だろ
36 :
デフォルトの名無しさん :2010/05/01(土) 22:19:55
Javaに限らず 算術左シフトなんて需要ないだろ・・・
>>34 int hugo(byte n) {
return -127+(int)n;
}
>>36 Javaに限らなければ需要はあるぞ
オーバーフローフラグを持つCPUなら算術シフトと論理シフトでフラグの変化が違う
それでも負数に使うことは無いだろう
内部クラスでthisって使ったらthisは何を参照してることになるの?
>>41 なるほど。以外に不便そうだな内部クラスってのは
class ClassA { private static ClassA classA; ClassA() { classA=this; ClassB classB=new ClassB(); } void hoge() { System.out.println("hoge!"); } class ClassB { ClassB() { this.hoge(); ClassA.classA.hoge(); } void hoge() { System.out.println("hoge?"); } } }
44 :
デフォルトの名無しさん :2010/05/02(日) 10:52:12
全ての植物は植物クラスを継承する 全ての食物は食物クラスを継承する このような考えを元に継承を考えたとき、多重継承が無いJavaでは どちらにも該当するりんごクラスなどをどのように実装すればいいんでしょうか?
class Plant{ } interface Eatable( } class Apple extends Plant implemnts Eatable{ } こんなんでどうでしょ? 食べられるものにはEatableを実装と言うことで。
正直継承よりはインタフェースにこだわった方がいいよ。 あと別にクラスで無理やり自然界を記述しなくてもいいから。
で、Java 7 は何時出るんだよ?
>>43 そんな危ないことしなくても、外側のメンバを直接呼び出すか、
名前がかぶっているなら ClassA.this.hoge(); でいい
>>48 クラス名.thisの参照方法を知らないんだろ。
public ClassA {
private static ClassA classa = new ClassA();
private ClassA() { new ClassB(); }
public ClassA getInstance() { return classa; }
public void hoge() { System.out.println("hoge!"); }
private class ClassB {
public ClassB() { hoge(); ClassA.hoge(); }
public void hoge() { System.out.println("hoge?"); }
}
}
何となく、
>>43 のを書き直してみた
専ブラで書いたから、スペルとか間違えてるかも
51 :
デフォルトの名無しさん :2010/05/02(日) 23:25:06
>>50 本来の形から
>>40 の意図に合わせて単純化されたクラスをそのように直してしまってもいいのでしょうか?
結論: 設計を見直せ
class ClassA { ClassA() { new ClassB(); } class ClassB { ClassB() { new ClassA(); } } }
別にコンストラクタで無限ループさせるなら内部クラス経なくてもよろしくてよ
出来る出来ないという仕様的な話はありかと思うけど、 実際にこんなコード渡されたらぶちぎれるw
switchのジャンプで一番最後のところでもbreak;って入れたほうがいいの? 例えば switch (n) { case 1: hoge(); break; case 2: hoge2(); break; //←これとか } switch (p) { case 1: hogehoge(); break; case 2: hogehoge2(); break; default: hogehoge3(); break; //←これとか }
一々選択的に書いたり書かなかったりしていると何時かうっかりミスが出るから 書く癖を付けとけ。
switch多重ネストでソースがごちゃごちゃしてわけわかんなくなった
switchのcaseをインデントする癖がついてるんだけど、やめたほうがいいのかな
今時は IDE も色分けするしフォーマッターも付いてるから 仕事でコーディング規約とかなければその程度は良いんじゃねぇか。
ある程度まではオートフォーマッタとCheckstyleやら Findbugsに全てを委ねてる
defaultで処理をするのは意味的にどうかと思う。 っていう宗教戦争を投げかけてみる。
まあ列挙に対する全てのパターンを記述する場合とか、 defaultにAssertionErrorをスローするコードとか書くんじゃね?
LinkedHashSetにはなぜlistIterator()メソッドがないのだろう。 ListIterator#previous()で反復子を前に移動したかったのに。 next()しかできないよ。 しぶしぶLinkedHashSet使うの辞めてLinkedListにしたけど。 Setは重複を許さないから使い勝手がいいと思ったんだけどな。 LinkedListにしたので挿入時に重複チェックしなきゃならない。 もっといいCollection型はないかな?
あと、ListIterator#next()とprevious()の仕様、反復子の隣の要素取ってから反復子を隣に移動させているが これを、反復子を移動させてから隣の要素とるように指定できないだろうか。
68 :
67 :2010/05/03(月) 16:29:46
一応、自己解決したかも知れない。 List<String> ll = new LinkedList<String>(); ll.add("A"); ll.add("B"); ll.add("C"); ListIterator<String> it = new ListIterator<String>(); String result; it.next(); result = it.next(); it.previous(); return result; .//これでカーソルをAとBの間に移動しつつBを取得できる。 next()二回実行してprevious()を実行するというやり方。 逆方向の場合はprevious()を二回実行してからnext()を実行。 問題はListの末端に来たときの処理も作っておかないといけないのが難点。 if(lt.hasNext())とかif(it.hasPrevious())とかでまいどまいどチェックしないといけない。 本当は、末端に来てnext()したら先頭に戻る永久ループ型のIteratorが欲しいのだが…。 時計の針のように12時になったら0時からスタートする、というIterator。 Apache Common Collectionsあたりでも探すしかないだろうか…。しかしあのCollection Frameworkはまだ Genericsに完全対応していないし…。
69 :
67 :2010/05/03(月) 16:48:13
Set は List のように順序性を維持するものではない。
それくらいテメェで作れよと。
>>69 > しかしLinkedListにはこのIteratorに変換するメソッドがない。
コンストラクタに放り込むだけじゃない?
#include standard io.h
76 :
67 :2010/05/03(月) 21:59:19
>>71 しかし、LinkedHashSetは順序性を維持するものになっている。
LinkedHashMapも同様。LinkedとついたSetとMapはadd()した順番にオブジェクトが並び順序性が保証されている。
順序性が保証されないのはHashSetとHashMap。
>>72 おお自作物。アルゴリズムとデータ構造の本に載ってそうなコードだ。
すでにCommons CollectionsにLoopingListIterator
という便利なクラスを見つけたので一応は解決したと思う。
>>74 それも一応、
>>70 のユーティリティクラスを使うという解決策を見つけた。
今探しているのは反復子を移動してからデータを取り出す方法。
現状のnext()はデータを取り出してから反復子を移動している。
何をやりたいかというと、時計の針のようなものを再現したいだけ。
Iteratorを継承した新しいIteratorクラスを作ってそこに独自のnext()メソッドを実装する
しかないだろうか。
俺はIteratorの間違った使い方を試そうとしているのかもしれない。
>>74 IteratorUtilsが必要と思ったら
コンストラクタもあった。
LoopingListIterator(java.util.List list)
int h=100,i=100,j=100; h += ++h; i += i++; j += (j+=1) + (j+=10); System.out.println("h="+h); System.out.println("i="+i); System.out.println("j="+j); 無精できねえ・・・なんてこったい
80 :
デフォルトの名無しさん :2010/05/04(火) 02:20:03
>>35 1ビットあれば、二つの数(例えば0と-208)を符号化できる。
0ビットあれば、一つの数(例えば-208)を符号化できる。
一般にnビットあれば、2のn乗個の数を符号化できる。
81 :
デフォルトの名無しさん :2010/05/04(火) 02:56:50
その0biって奴tはハードウェア的にもソフトウェア的にも実現不可能だな 概念的には存在しうるみたいだけど イデアみたいなもんか?
セットにイテレータなんてないだろ。 自作すりゃいいもんをだらだら張り付けるな。 ブログでやれ。
え?SetはCollectionだからIterableだろ?
>>83 それはJava Collection Frameworkの実装の都合だろ。
setてのはふつう順不同というか要素の前後関係は知らないもんだろ。
そういう用途はlinkedlistだ。
たとえIteratorを持ってたとしてもputやsetした順に
取得できる保証もないし前後関係を知らないんだからprevで要素が取れるわけもない。
LinkedHashSetがあがってるがこれは実装由来のコレクション。特殊な要件で使うもんだ。
>>84 SetがIterableであることが、実装上の都合だという
ソースはどこにあります?
86 :
デフォルトの名無しさん :2010/05/04(火) 16:53:06
実装されているが、仕様に規定がないなら、それは実装上の都合ということ。 ないことは示せない。あえて示すならこの世の仕様をすべて見ろと言うしか無い。
いや、意味が分からないんだが。IterableはCollectionの契約だろ? まあ気にくわないならUnsupportedOperationExceptionでも投げればいいけど。 正直何をいいたいのかさっぱり。
お前がコレクションやらコンテナと呼ばれるものの使い方を理解してないだけだろ。 だいたいLinkedHashSetは既存のsetを守りつつ順序を保ちたいときに使うラッパーだ。 IterableなのはCollectionインターフェイスで強制されてるからだ。
>>87 たぶん
「Setってーのは重複要素がないコレクションなんだぜ。」
「Setの実装クラスが何を持とうとそれは実装都合なんだぜ。」
「CollectionってーのはIterableだが、順序付けされているかそうでないかは実装クラス次第なんだぜ。」
ってことをいいたいんじゃないのかな。
>>89 いや、
>>82 でSetにイテレータ無いって言ってるから
どういう意味かと思って。
91 :
89 :2010/05/04(火) 18:17:25
>>90 それは、ミスったんじゃないかな。
>>84 で、
「Iteratorがあっても(入れた時の)順序を保障するものではない。」※括弧内はおれ補完
と記載されているし。
ところで、なんだかIteratorとIterableをゴチャゴチャに書かれている書き込みが多い気がする。
Collectionの話してるんだ。混ぜて構わんだろ。
列挙性とその順序性は全く別の話。 分かっていないバカが一匹混ぜ繰り返している。
94 :
デフォルトの名無しさん :2010/05/04(火) 22:36:28
あるメソッドの中だけ別のpackageを参照するように出来ますか? クラスのあたまで import org.easymock.EasyMock; とやると そのクラスのメソッド内で EasyMock. と呼び出すと上のパッケージのクラスを参照するじゃないですか? で、あるメソッドだけ org.easymock.classextension.EasyMock のクラスを参照したいのですが、上記のようにフル修飾名をいちいち入れるとソースが見づらくなるので、あたまでなんか宣言して、そのメソッドだけ別のパッケージを参照するように出来ませんでしたっけ? 方法ありましたらお願いします
JavaScript なら出来るが。
Effective Java 2版 140p に通常のキャストと Class.cast の説明があったのですが、意味がよく分かりませんでした。 class Favorites { private Map<Class<?>, Object> favorites = new HashMap<Class<?>, Object>(); // Class.cast public <T> T getFavorite(Class<T> type) { return type.cast(favorites.get(type)); } // キャスト演算子 public <T> T getFavorite(Class<T> type) { return (T)favorites.get(type); } } 上記の Class.cast を使う場合ととキャスト演算子を使う場合ではどのような差があるのでしょうか? この二つに差があるのだとしたら、どのようなときにどう使い分けるのでしょうか? どうかお願いします。
>>96 public Favorites() {
favorites.put(Integer.class, "string");
}
と変なもの入れて
Favorites f = new Favorites();
try {
System.out.println(f.getFavoriteCast(Integer.class));
} catch (Exception e) {
e.printStackTrace();
}
try {
System.out.println(f.getFavorite(Integer.class));
} catch (Exception e) {
e.printStackTrace();
}
と使ってみるといい。f.getFavoriteCastはClass.cast版ね。
質問です。 getClass()メソッドのテストをしようと思い、次のようなソースを実行しました。 配列int[]とStringクラスでgetClass()を行い、結果をprintln()で出力するものです。 出力結果の" class [I "というのはどういう意味なんでしょうか? (てっきり"class java.lang.reflect.Array"あたりが出力されると思ったのですが…) そもそも配列にgetClass()を行うのは好ましくないのでしょうか? 【ソース】 public class Test1 { public static void main(String[] args){ int[] a = {1,2,3}; System.out.println(a.getClass()); System.out.println((new String("abc")).getClass()); } } 【出力結果】 class [I class java.lang.String 以上です。 どうぞよろしくお願いします。
>>99 こんな仕様があったとは知りませんでした。勉強になります。
夜遅くにご回答いただき、どうもありがとうございました。
>>97 キャスト演算子は型が一致しなくても放置で
Class.cast は型が一致しなければ ClassCastException を投げる
の違いということですか?
Class#castだと Integer.class.cast("") とかコンパイル通っちゃう。
class ClassA { private String name=null; ClassA(String name) { this.name=name; } String getName() { return name; } void setName(String name) { this.name=name; } } class ClassB { static void method1(ClassA c) { c.setName("Method 1"); } static void method2(ClassA c) { c=new ClassA("Method 2"); } } とあったとき ClassA a=new ClassA("Class A"); System.out.println(a.getName()); ClassB.method1(a); System.out.println(a.getName()); ClassB.method2(a); System.out.println(a.getName()); としたら Output: Class A Method 1 Method 2 ってなるよね?
>>104 最後のMethod 2はMethod 1のままだろ。
Javaでは参照渡しはできない。参照の値渡しなら出来る。
なるほど・・・残念
Class.cast なんて初めて知った どっちも実行時に型チェックして例外投げると思うんだが何が違うの?
>>97 で相違動作のサンプルまで書いてあるじゃねーか。
未チェック警告抑止しなきゃならない時に手元に Class オブジェクトがあれば Class#cast() でやってる。 private final Map<String,Object> values = new HashMap<String,Object>(); public <T> T getValue(String key, Class<T> type){ Object value = values.get(key); if(value == null) return value; assert(type.isAssignableFrom(value.getClass()): value.getClass().getSimpleType(); return type.cast(value); }
>>97 やってみたけどf.getFavoriteが例外投げないのは何故?
通常のキャストも実行時の型チェックやってるよね?
>>110 ジェネリクスのイレイジャ機構により、
おそらくキャストしてる方は実行時Integer型ではなく
Object型そのまんまで扱ってる。(実行時に型情報は消えるから)
ただ、もちろん
Integer i = f.getFavoriteCast(〜〜);
とすればClassCastExceptionが発生する。
>>109 Classオブジェクトが無いときはどうするの?
>>112 Classを用意できない場合ってあるかい?
curses的なことができる何かってないですか? jcursesというのとlibjcsiというのを使ってみたけど、 マルチバイト文字に対応してない?っぽいので、 いいの知ってる方教えてください。
>>113 1.5以前とか総称型を想定してないのとか
普通のプログラミングとネットワークプログラミングは別なんでしょうか? ネットワークプログラミングを習得しないといけないことになったんですが 即ネットワークプログラミング? 普通のプログラミング習得⇒ネットワーク? プログラムに関してはC言語をファイルの入出力なんかあたりまでやった程度です。
jcursesもlibjcsiなんかして日本語通ったはずだが忘れた。 CHARVAは無理だった。
1.5以前というか総称型以前はそもそも未チェック警告が無いからキャストで 問題なかったはず。
>>116 普通の業務アプリではネットワークプログラミングはしません。
そういう意味では別です。それ以外を除けば別じゃありません。
ネットワークプログラミングというのは、
簡単に言えば、ちょっと面倒くさいファイル入出力です。
プロトコル考えなきゃ行けないからちょっとでは済まんだろw
じゃあ面倒くさいファイル入出力でいいよ。
ファイル入出力もネットワーク入出力も同じようなもの。には同意。 「普通」って発言にはちょっと引っかかるな。 自分トコだとJavaサーバと.Netリッチクライアントが「普通」なんだが。 また別のトコだとWEBアプリが「普通」だったり、Excel+ODBCが「普通」だったり。 RubyサーバにJavaリッチクライアントが「普通」なんてトコもある。 皆それぞれに「普通」。
>>118 そういう意味じゃなくて、総称型を想定しないで作ったクラスだとメソッドの追加が必要になるけど言語仕様ごとにクラスの修正やメソッドの追加は出来ないってこと。
ほとんどのクラスはもともと総称型を意識しないような設計だからClassをいちいち用意できない。
同じ様なものって、ストリーム型入出力の基礎の基礎のところだけじゃねえか。 まともに使おうと思ったら相手方のアプリの知識も非同期処理の知識も、 もちろんバークレイソケットの知識も必要になる。プロトコルによっては 状態管理もパケ落ち対応も必要。
125 :
116 :2010/05/05(水) 23:10:12
文字見ただけで難しそうですね・・・ P2PにおけるDHT関連をやるんですが。
>>124 詳細言い出したらキリないだろうが。
ファイル入出力だってファイルシステム言い出したらキリないし、
そもそもフォーマットはどうだの、即時追記に対応するだの、
クラッシュ時安全にするだの、あるよ。
お前はいちいち全部言わないと気が済まないのか
>>125 P2PでDHTとかってのは業務的なことでネットワークプログラミング
の範疇に入れるべきなのだろうか?
スレッド間でロジックをシミュレートすることだって出来る部分だし。
確かどっかでアプレット見た気がする。ノード毎に伝搬していく様子の。
あ、スマン。それ言い始めたらアプリケーション層のアプリって軒並み ネットワークじゃねぇってことになる。
>>126 それらを同じ様なものと言いのける低脳。
スーパークラスのメソッド呼ぶときって必ずsuper.method();ってしたほうがいいの? つまり class ClassA { void hoge() { System.out.println("Hoge!"); } } class ClassB extends ClassA { void hogehoge() { super.hoge(); //← super. つけたほうがいいの? hoge(); //← super. つけないほうがいいの? } } classBでhoge()をオーバーライドしてないとして
>>130 どっちでもいい。
むしろhoge()のほうをthis.hoge()にしてほしいわ。
>>131 スーパークラスのメソッドってthis.で呼び出せるって知りませんでした。勉強になりました。
ありがとうございます
>>131 ちなみにsuper使う場合もthisってつけたほうがいいんですか?
this.super.hoge(); ? super.this.hoge(); ? なんか細かいことばっか訊いてすみません
>>94 static import?
リフレクション?
>>84 >
>>83 > それはJava Collection Frameworkの実装の都合だろ。
> setてのはふつう順不同というか要素の前後関係は知らないもんだろ。
> そういう用途はlinkedlistだ。
>
> たとえIteratorを持ってたとしてもputやsetした順に
> 取得できる保証もないし前後関係を知らないんだからprevで要素が取れるわけもない。
そもそもあるコレクションにlistIterator()メソッドがないとprevious()が使えない。
コレクションによってはiterator()メソッドしか実装されてないのがある。
> LinkedHashSetがあがってるがこれは実装由来のコレクション。特殊な要件で使うもんだ。
SortedSet、TreeSetもComparableが実装されたオブジェクトをadd()できるから
(挿入ソートで挿入したときにComparable#compareTo()が働いて自動的に順番が並ぶ)
順序関係は保証される。これも特殊だと?
LinkedHashSetとArrayListとの違いはオブジェクトが重複を許すか許さないかの違いでしか無いと思うが。
使えるメソッドも若干違うが。
抽象化と実装仕様の区別も付いていない人が何で Java なんかやってんの?
>>132 >>133 なぜthisやsuperをつけるのかわかってないような気がする。
途中からClassBにhoge()という名前のメソッドを
新たに作ることになったとき(hogeをオーバーライド)は、thisをつけると
新たに作ったメソッドのほうが呼ばれるのだが。
後でhoge()メソッドをオーバーライドするときに備えてsuperというキーワードが用意されている。
いかなる状況でもClassAのhoge()メソッドを呼び出したいのに、あとからClassBのhoge()メソッドを実装すると
なぜかClassBのhoge()メソッドを呼び出してしまう。そういう問題を防ぐために、superというキーワードがある。
だから将来のオーバーライドや、同じ名前のメソッド名衝突に備えてsuperクラスのメソッドを呼びたいときはsuperをつけるべき。
(ちなみにスーパークラスに同じ名前のメソッドがあることに気付かずメソッド名衝突する問題はJava5から登場した@Overrideアノテーションで回避できる)
自分のクラスのメソッドを呼びたいときはできるかぎりthisをつけるべき。インスタンスメソッドはできるかぎりthis.メソッド名()
staticなメソッドはthisつけないでクラス名.メソッド名()とするのが望ましい。Checkstyleとか使ってコーディング規約を守るなら。
そもそもthis.superとかsuper.thisなんて記述ではコンパイル通らない。
詳しい説明ありがとうございます
となると、変数や定数のフィールドもsuperやthisをつけて使ったほうがよさそうですね・・・ 今後気をつけます
仮に
>>130 の例で
ClassBでhoge()をオーバーライドしたとき
他のクラスからClassBのインスタンスからスーパークラスであるClassAのhoge()を呼び出すってことできます?
例えば
class ClassB extends ClassA {
void hoge() { System.out.println("Hoge Override"); }
}
class ClassC {
void nanika() {
ClassB b=new ClassB();
b.hoge(); //←ここでClassBのhoge()じゃなくてスーパークラスのほうのhoge()を呼び出すことって出来ますか?
}
}
できないしできたらおかしい
class ClassC { void nanika() { ClassB b=new ClassB(); ClassA a=(ClassA)b; a.hoge(); //←もしかして、こうしたらスーパークラスのほうのhoge()になりますか? b.super.hoge();とかありそうな気もします } }
>>94 Javaでは無理ですね。1ファイル中に登場するクラスの単純名が重複している場合は
そのうち1つだけしか単純名で扱えず、それ以外はFQNで書く必要があります。
Groovy(Scalaも?)は別名をつけられるので、上記のようなJavaの煩わしさは
軽減できるようですが。
>>141 できない。
>>143 できない。ためしにコンパイルしようとすればわかる。
どうしてもそんなことしたかったら
ClassA a = new ClassA();
a.hoge();
こうする。
bを(ClassA)にキャストしても中身はこれと同じだからオーバーライドしたメソッドしか呼び出されない。
ClassA a = new ClassB();
というかいい加減に自分でコンパイルして自分の目で確かめろと。
>>142 ,145
回答ありがとうございます。
出来ないのですか・・・となるとどちらも使いたい場合は
何とかメソッド名を変えるなり対応するしかなさそうですね・・・
わかりました
149 :
114 :2010/05/06(木) 19:48:50
>>117 機種依存部分に対してなんかするんだったか、
jar内のjava部分に対してなんかするんだったか、
自分が書いたコードに対してなんかするんだったかだけでも思い出せませんか?
いすれにしても素敵なヒントありがとうございました。
>>149 罫線がSJISとかだと半角カタカナの領域できめうちだったりしたような。
Java6からQueueが追加されたっていうんで調べてみたら LinkedListがQueueを実装してpop()が使えるようになってた。 早速使ってみたが private List<String> list = new LinkedList<String>() this.list.add("test"); this.list.add("abc"); this.list.add("def"); String result = list.pop(); という使い方はさすがにできなかった。 pop()はQueueで定義されListで定義されてないため。 private Queue<String> list = new LinkedList<String>() とやりたかったがLinkedList#listIterator()を使いたかったために 仕方なく private LinkedList<String> list = new LinkedList<String>() ってやった。 なんだかな。
おまえはコンクリートクラスをベタ書きで使ってるのがお似合い。
>>151 意味が分からない俺は初心者です。ハイ。
>>151 まさにLinkedListの性質が必要となっているので、
インタフェースを指定する必要はない。
ところで、<E, T extends List<E> & Deque<E>>
とか&指定する機会ってあんまりないよねー。
>>151 意味がわからん。
なんでqueue使うのにlistIteratorが要るんだ?
だいたいLinkedListじゃなくてArrayDequeue使うところだろ。
listIterator使うってことはカーソル基準の相対位置にアクセスしたいのか?
pop要らんしpopしたら意味が変わってくるだろ。
ところでリスト更新したらConcurrentModificationでない?
>>155 というかさ、LinkedListだとしても普通に
Queue<String> queue = new LinkedList<String>();
queue.add("1");
queue.add("2");
queue.add("3");
String elm;
while((elm = queue.poll()) != null ){
System.out.println(elm);
}
だと思うんだ。
>>151 Queue<String> q = new LinkedList<String>();
q.add("test");
q.add("abc");
q.add("def");
Iterator<String> i = q.iterator();
while (i.hasNext()) {
System.out.println(i.next());
}
System.out.println("-----");
String s;
while ((s=q.poll())!=null) {
System.out.println(s);
}
とかはダメなのか?ListIteratorしか使えない呪いでも?
159 :
157 :2010/05/07(金) 00:00:16
>>158 Iterator<String> i = q.iterator();
while (i.hasNext()) {
System.out.println(i.next());
}
の部分は、
for(String s : queue){
System.out.println(s);
}
の方がスッキリして好きだな。
前の LinkedList 厨だからスルーが吉
え?厨?
162 :
デフォルトの名無しさん :2010/05/07(金) 09:04:58
初心者です。試験勉強用の事で、言葉の定義とかなんですが、質問させて下さい。 1)メソッドに渡した基本型のフィールド変数は、メソッド内側の操作は、 外側の変数には反映されないでしょうか。(合っていますよね。) 2)このメソッド内の変数をローカル変数と呼ぶ、合っていますか。 3)通常、引数で渡した変数の反映を読んだ側でも反映して返すには、 戻り値で返すのが普通でしょうか。(static変数との使い分けがよく分からない;) 4)メソッドに参照型の参照で渡した場合、 メソッド内部のインスタンスに対する操作は反映される、っていうのが、 当たり前だと個人的には感じるんだけども、 わざわざ参考書とかで説明してあるのが謎です。 例えば、 method1(Vector v)の中で Vector v = new Vector(); v.add(new String("abc"); とやった場合には外側のvにはabcはくっつかない、 method2(Vector v)の中で v.add(new String("abc"); とかやると、くっつく、と。 当たり前の様な気もしますし、どうなんでしょう。 5)この4)の場合と、1)の場合を比較した時の理論がよくわかりません。 1)だと、メソッド側に引数で渡された基本型の値はコピーされて (多分JVMのメモリにはその値用の領域が確保されますよね) メソッド内の操作はそのコピーされた領域に保存された値を操作しているんだと 思いますが、4)で参照を渡した時も、参照は別の領域にコピーされるんですよね。 すると、4−method2の場合には、v.add〜のvで指せる参照はコピーされた 値な様な気がして・・どうなんでしょうか。
>>162 1:反映されません。というよりは、関数内の変数に値がコピーされます。
2:ローカル変数と読んでもいいです。パラメータって普通言うけど。
3:staticは基本的に何度も値を書き込むのに使わないでください。
基本的に定数に使うものです。
返り(戻り)値で済むなら返り値を使ってください。
返り値で済まないなら、状態を持つクラスのインスタンスを渡して、
それに対してメソッド内部で操作を行います。
void method(VOClass vo){
vo.setXXXX("hogehoge");
}
クラスを作るのが面倒な時は配列で渡します。
あんまりやらないほうがいいですが。
void method(Object[] o){
o[0] = "hogehoge";
}
4.どうなんでしょう?っていわれてもね、参考書は初学者のためのものだからね。
でもオブジェクトの値渡しするような言語(C++)は、普通に引数にモノを渡すと
一般的にはオブジェクトがコピーされるんで、その理論は通用しません。
どうでもいいですが、Stringのコンストラクタは意味がないどころか
普通はコスト的に有害なので超特別な理由がない限り呼ばないでください。
あとVectorじゃなくて普通はArrayListを使います。
5.Javaには参照渡しはありません。メソッドのオブジェクトを渡した時は、
オブジェクトへの参照がコピられて値渡しされてるだけ。
オブジェクト以外の基本型(プリミティヴ)を
渡した時もその値がコピられて値渡しされてるだけ。
method2はmethod2に渡した引数(オブジェクト)の参照がコピられて
method2のvパラメータに設定されているだけ。
参照ってのは32bitのメモリ空間を表す数字ね。
>>163 >staticは基本的に何度も値を書き込むのに使わないでください。
>基本的に定数に使うものです。
定数のときはstatic final
クラス内で共通、唯一つな時に使えばいいのであって何度も値を書いて問題なし
FPSでの弾の数とか
>>164 弾の数… ビミョー。使っちゃダメってことはないけど、
あんまり正当化できるシーンは少ない。
少なくともstatic変数が現れたら「きちんと使っているかどうか」
ってのは見てしまうね。コードレビューの時とか。
だいたい「使う正当な理由はないよね。じゃやめて。」
って注意して終わる。
javaの公式サイトにここ数日まったく繋がらないんですが・・・
>>155 それArrayDequeueじゃなくてArrayDeque
javadocにも書いてある通りdequeとdequeueでは英語的にもまったく意味が違う
話を戻して、Listに入れたい要素のオブジェクトを作るクラスを独自に作って
前後関係をもたせたので結局Iteratorを使う必要がなくなってしまった。
Chain of Responsibilityのたらい回しを参考に、となりどうしのオブジェクトがお互い参照しあう方式をとることにした。
それとは別にこういうデータ構造が必要だった。
・基本的に、Stackのように端からしかデータを取得除去する必要がないからpop()を使う。
・ひたすら端からデータを取るだけ。
・要素が空になったときのみ一気に補充する。
・感覚としては弾薬の再装填や燃料補給に近い。しかし個々の要素はまったく異なるものを含み重複を許可する。
だから削除速度が速いらしいLinkedListにした。
Dequeによるとpoll()はpollFirst()と同じ。
pop()はremoveFirst()同じ。
removeFirst()は空のときNoSushElementExceptionをthrowするpollFirst()。空のときはnullを返す。
(isEmpty()を使えば例外は気にしなくていい)
みたいだったがnullで判定するのが好きな人が多いね。
>>165 >
>>164 > 弾の数… ビミョー。使っちゃダメってことはないけど、
> あんまり正当化できるシーンは少ない。
> 少なくともstatic変数が現れたら「きちんと使っているかどうか」
> ってのは見てしまうね。コードレビューの時とか。
> だいたい「使う正当な理由はないよね。じゃやめて。」
> って注意して終わる。
複数のインスタンスでひとつの状態を共有するときはstatic変数は重宝する。
だから"ビミョー"なんじゃないの?
書籍『Java言語仕様』によると、純粋主義者はインスタンスフィールドはすべてprivateにすべき staticフィールドはfinalにすべきというが、そんな感じの意見か。 staticなフィールドの代替をCollectionを集約したSlngletonで代用するとかいう感じか。
172 :
デフォルトの名無しさん :2010/05/07(金) 21:51:12
入力するときに、import java.io.* とimport java.io.* って何が違うの? JAVA初めて即効分からなくなった。 どっちのがいいとかある? IOで解説してるサイトが多いからそっちのが簡単とか?
間違えた。 java.util.
( ゚Д゚)ポカーン
イギリスとフランスって何が違うの?級の質問
176 :
デフォルトの名無しさん :2010/05/07(金) 22:09:21
そうなんですか。 ではテキスト通りutilにします。 有難うございました。
test
質問させてください。 現在コンソール入力でヒットアンドブロー(数字当て)のゲームを開発中で詰まっている点があります。 まず、プログラム上で乱数にて4桁の数字をセットします。 コンソール画面上の例 : ▲回目:1234 ⇒ Hit :● Blow :● ※▲には入力の回数カウンタを表示。 ※●には入力した数字に対して正否の数字がそれぞれ入る。 @『 ▲回目: 』 と表示させた後、ユーザーが入力で4桁の数字を入力してEnterを押す。 ABufferedReaderクラスのInputStreamReaderメソッドにてSystem.Inを入力し変換させ表示 B正否判定を表示 『 ⇒ Hit :● Blow :● 』 このAとBの間で、改行させずに入力を行いたいのですがうまくいきません。 改行はBの正否の判定を表示した時にSystem.out.printlnでするだけにしたいんです。 以下のような形での画面・入力仕様が目標です。 1回目:1234 ⇒ Hit :0 Blow :4 2回目:2525 ⇒ Hit :2 Blow :2 1回目:7777 ⇒ Hit :4 Blow :0 Congratulation・・・
>>178 どうせBufferedReaderでreadlineとかしてんでしょ。
>>168 おれなら、
public class Test {
public static void main(String[] args) {
Deque<String> queue = new ReloadableDeque<String>() {
@Override public void reload() {
System.out.println("リロードっ");
this.add("1");
this.add("2");
this.add("3");
} };
String elm;
while ((elm = queue.pollFirst())!=null)
System.out.println(elm);
}
}
public abstract class ReloadableDeque<E> extends ArrayDeque<E> implements Reloadable{
@Override public E pollFirst() {
E elm;
if ((elm = super.pollFirst()) == null) {
reload();
elm = super.pollFirst();
}
return elm;
}
}
public interface Reloadable { void reload(); }
だな。
>>180 readlineは一行分読み込みが終わるまで読み込めない。
ファイルが読み込み元なら改行文字にブチ当たるまで読み込めない。
コンソールが読み込み元なら改行してくれるまで読み込めない。
別の読み込みメソッドを使いましょう。
183 :
182 :2010/05/07(金) 22:43:17
と思ったけど、無理だな
184 :
178 :2010/05/07(金) 22:54:36
>>183 ありがとうです。
やっぱり無理なんですかねぇ
3日3晩APIの仕様書熟読とWeb中探しがしんどい・・・orz
>>184 一応言っておくと、
Java6使ってるならSystem.console()使おうぜ
>>172 は?
java.sql.Date
と
java.util.Date
との違い、
これらを同時に使用するにはどうすればいいのかっていう質問ならわかるんだが。
それともimport java.io.*とimport java.io.PrintWriterとの違いやimport java.util.Collectionとimport java.util.*との違いのことをいっているのか?
>>184 どうしてもやりたかったらawt.keyevent
あとはlinux、cygwinとか?
191 :
178 :2010/05/07(金) 23:24:46
>>181 そこまでやるか。
Template Methodに匿名クラスに抽象メソッドにインタフェース全部作ってまでやるか。
そこまでやりだすメリットってそんなにあるのか?
ジェネリックスにワイルドカード指定すればもっと凄い堅牢性が高いものが
できあがりそうだが、やりだすと苦労しそうだ。
>>185 C#のSystem.Console.WriteLine()かと思った。
そんなメソッドとjava.io.Consoleが追加されていたとは。
これでScannerクラスを使う必要もなくなるのか
>>194 cliってgetoptみたいなものでは。
196 :
デフォルトの名無しさん :2010/05/08(土) 00:14:24
超初心者増えたなぁ
>>192 匿名クラスなのは、ReloadableDequeの中でreloadを実装すると融通効かなそうだから(部品として弱そうだから)、
匿名クラスでReloadable#reloadを実装した。それから、クラス名考えるのめんどくさかったからってのもある。
抽象クラスなのは、ReloadableDequeを使う人に、
確実にreloadをOverrideさせるため。
Reloadableをインタフェースにしたのは、なんか全然違うところでも使いそうじゃない?そんな理由。マーカ的につかえるかなぁ〜って。
誤)Reloadableをインタフェースにしたのは、 正)Reloadableインタフェースをつくったのは、
>>193 正直いってConsoleは微妙
というかeclipseで使えない
うわあマジだ。ある意味正しい動きではあるが。クソだな。
初心者の域を抜け出せない初心者が初心者批判してるんですね
>>200 利点はioexceptionなげないのとpasswordだけ・・・
自分はIDE上で登録済み
br
Java ステートメント
try {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String line;
while((line=br.readLine())!=null){
${cursor}
}
} catch (IOException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
マルチスレッドについての質問です。 マルチコアCPUの場合、プロセスのコア割り当てはOSが管理しますよね。 Javaプロセスを複数立ち上げれば、OSが適切にプロセスごとに割り振るのは分かります。 でも、一つのJavaプロセスの中で複数スレッドを走らせた場合、 OSからは一つのJavaプロセスに見えてると思うのですが、 どうやって複数コアへ処理の割り当てを行っているのでしょうか。
205 :
デフォルトの名無しさん :2010/05/08(土) 05:51:05
/ 名前を読み込んで挨拶する(その2:nextLine()版) import java.util.Scanner; class HelloNextLine { public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); System.out.print("お名前は:"); String s = stdIn.nextLine(); // 1行分の文字列を読み込む System.out.println("こんにちは" + s + "さん。"); // 表示 } } Exception in thread "main" java.lang.NoClassDefFoundError: HelloNextline (wrong name: HelloNextLine) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(Unknown Source) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) Could not find the main class: HelloNextline. Program will exit. 上記のようになったのですが、エラーが出た時はどの部分をみればいいのでしょうか?
HelloNextline (wrong name: HelloNextLine)
207 :
デフォルトの名無しさん :2010/05/08(土) 07:37:04
compress形式で圧縮されたファイル(拡張子 .z のファイル)を解凍したいのですが、 どうすればいいのでしょうか?
>>204 vmのスレッディングapi実装はosネイティブのスレッディングapiを利用して行われる
バックグラウンドで画像のサムネールを作る処理を走らせたときに MIN_PRIORITY に 設定しても CPU 100% 行ってしまい、枚数が多いと CPU 熱のフェールセーフが働いて スリープ状態になってしまう。もうこれ以上って Timer か何かから細かい間隔で suspend resume してやるしかないかな。
>>207 標準 API には無いから Runtime#exec() 使ってシェル経由でやるしかない。
ネットで探せばどこかにライブラリが落ちているかもしれないが。
>>204 今時の Java VM 実装では OS は Java のスレッドまで見えているので
スレッドを適切に CPU に割り当てられる。
>>209 100%になるのが悪いんじゃなくて冷却が足らないだけだ
ヒートシンク掃除して扇風機でも当てとけ
ハードウェア的な話だから続けるならよそでやってくれ
ThinkPad だからどうしようもない。役に立たないしょうもない煽りだけならよそでやってくれ。 で、200ms ごとに suspend, resume 繰り返すようにしたらとりあえず 80% ほどに落ち着いた。 TimerTask × ImageIO の閉じた処理どうしなのでデッドロックもないだろう。 少し調整の余地はあるがこれでやるか。
216 :
207 :2010/05/08(土) 13:10:46
>>210 標準にはないですか。ありがとうございます。
Windowsでも動かすかもしれないので、シェルはちょっと不味いです。
ライブラリ探すか、自作してみます。
デュアルコアならCPU1つに制限するとかなしなの?
>>199 なんでEclipseで使えないんだ
と思ってやってみたら本当に例外を吐いて
DOSプロンプトではちゃんと動く。
さすがにEclipseのコミュニティにバグ報告されている内容だろうか。
すんませんjavaの練習したいと思ってJDKインスコしたんですが。ユーザー変数にC:\Sun\SDK\bin入れてるけどコマンドプロントで認識しません。 いまいま始めたばっかでよく分からないんですが。 とにかくコマンドプロントで練習できるようにするにはどうすればいいんでしょうか?
PATH %PATH%;C:\Sun\SDK\bin
インストール先のフォルダそれで合ってるの? ユーザー変数?環境変数のこと?
C:\Program Files\Java\jdk1.*.*_**\bin
SDKファイルの中の何を指定すればいいのかがよくわかりません・・・
C:\Sun\SDK\bin フォルダの場所自体はこれであってるんですが
>ユーザー変数にC:\Sun\SDK\bin入れてるけど これを具体的に説明
環境変数のユーザー編集 変数名 PATH 変数値 C:\Sun\SDK\bin にしてて、フォルダの位置も正しいはずなんですが コマンドはC:\>setでやってます
環境変数の設定変更したあとPC再起動した?
先程しましたが結果は同じでした
>>230 OSはCです
JDKはC:\Sun\SDKです
環境変数の設定をsetコマンドでやってるならPC再起動したらダメじゃん
設定はパフォーマンスとメンテナンスのシステムからやってます
>>220 は何をしたかったの?
javacが実行されないってこと?
コマンドプロントでjavaが認識されないってことです 'java' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 ってメッセージがでるんです
>>227 環境変数の設定画面見て、一度、スペルミスが無いかチェック
コロンとセミコロンの打ち間違いや、ドットとカンマの打ち間違いとかの可能性はあるかも
問題なかったらコマンドプロンプトでpath[エンター]打つと
現在のPATHが表示されるからPATHにC:\Sun\SDK\binが含まれていることを確認
それと、C:\Sun\SDK\binのフォルダ内に、javac.exe等のファイルが存在してるかを確認
もしかするとインストール失敗してるのかも
cmdでpathと打つとC:\Sun\SDK\binは含まれてます binのフォルダの中にjavac.exeらしきファイルが見当たらないんですが
うちはJDKインストールしたら
>>223 のように
Program Files\Jana\ のところにインストールされたけど
C:\Sun\SDK\bin って自分でフォルダ指定してインストールしたの?
実はJDKをインスコしたつもりでJREをインスコしたとか… んなわけないかw
もう一回違うJDKインスコします
jreがインスコされちまった。これはJKDとは違うの?
JKD? Joshi Kousei Daisuki 女子 高生 大好き ?
JDKもインスコされてました。 新しいファイルは C:\Program Files\Java\jdk16.0_20\binに指定しましたが結果は同じです 他に設定するべき所があるんでしょうか・・・・?
コマンドプロンプトでpathと入力
C:\Program Files\Java\jdk1.6.0_20\bin がちゃんと指定されているか確認
(
>>244 C:\Program Files\Java\jdk16.0_20\bin ← 16.0は間違いじゃね?)
C:\Program Files\Java\jdk1.6.0_20\binフォルダに
java.exeやjavac.exeが存在していることを確認
もし、java.exeやjavac.exeが存在していなかったら
可能性としては、インストール時にセキュリティソフトがjava.exeやjavac.exeをウィルスと誤検知して、削除か移動された可能性もある
>>1 よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
ttp://www.wikiroom.com/java/
249 :
デフォルトの名無しさん :2010/05/08(土) 17:44:56
どうした
他クラスのpublicな定数を利用するときって定数名だけじゃダメなんですか?
public staticな定数ならstatic importという物があってだな。
全部自前のクラスなら 定数だけのインターフェース作って全部のクラスにインプリメントしてる
253 :
250 :2010/05/08(土) 18:55:46
即レスどうもです
>>251 無事出来ました、ありがとうございます
>>252 今度からはそういう風に設計してみます、ありがとうございます
>>210 Apache Commons Compressにあるか?
と思って探してみたがそれっぽいのはなかった。
GZIPのメソッドでそのまま使えそうな気がするがそうでもないか。
>>252 おい、定数はenum使えよ
っていうかinterfaceつかうと勝手に実装できるし
それがint型だと変な使い方できるし
Effective Java第2版読めよ
257 :
デフォルトの名無しさん :2010/05/08(土) 20:04:29
Effective Java第2版を読んだやつっているのかな 職場、関係会社、派遣、下請けを今まで見てきたけど、一人だけ読んでいそうな雰囲気だった。 (そもそもenumって何?って返ってくるぐらいだったからなぁ)
実際その読んだ人の書いたコードって綺麗だった?
えっ、そういう設計はダメなんですか? 初心者なのでよくわからないです…
だからEffecitive Javaを読めと Java5以降のバージョン(enum)が使えないなら第一版(と、結城浩の『Java言語で学ぶデザインパターン入門』)でもいいから 定数にinterfaceを使うなんぞ論外。 定数はコンストラクタの作成を禁止したfinalクラスかSingletonパターンを使うべき Java5以前の環境では最低でもこの程度のことはすべき。 public final Constant { public static final int CONSTANT_A = 1; public static final int CONSTANT_A = 2; private Constant(){} } これでもまだ不十分だが。 Java5以降はこれで十分 public enum Constant { CONSTANT_A(1). CONSTANT_B(2); }
>137あたりのsuper,this関連(?)の質問なんだけど 内部クラスにもthisとかつけたほうがいいの? ClassAという内部クラスがあったとき this.ClassA a = new this.ClassA(); と記述したほうがいいのかな?
>>261 定数クラスはclass装飾子が抜けてたりCONSTANT_Aが二つあったり、
enumの方は,が.になってたり、コンストラクタやメンバ変数が必要だったりしませんか?
また Effective Java かぶれが暴れてんのか。
カオティックな板だな
初心者じゃなくなったって実感した時って どんな事を理解・実装できたあたりからですか? 教えてる新人の場合なら〜ってケースでも 教えてもらえると有難いです
30年もJavaばかりやってると新人って気持ちじゃなくなるな
30年なんてまだまだ新人だろ
15年前、これは世界を震撼させる!と思って始めて まったくそんなことは無かった
>>266 interface の使い方を理解したときも、その1つと言えるんじゃないかな。
interface には実装のないメソッド宣言だけがあって、
それを implements したクラスはメソッドの実装を書かなくてはならない、
ということ事態は初心者でも理解できるんだけど、
実際どういうふうに interface を使えばいいかが、初心者には難しい。
厳密に定義するなら、始めてから一定の期間が経過していれば初心者ではなくなるな Javaの場合どの程度の期間が妥当かは知らんが、自動車なら1年だな
入門書に書いてあること 一通り、入門書見ずに出来るようになれば 初心者を脱したと。初級者だ 入門書レベルのことじゃ仕事にはならないし 趣味でやってる人間なら十分かもしれないがw
まぁそんなところだな。
未だに初心者のころと同じようにわからないことばかり。
たいていの新人は、Java初心者ってだけじゃなくプログラミング初心者も兼ねてるから
>>261 が紹介してるような本をそういう初心者が最初から読んだってあまり効果は無いと思う
入門書クリアレベルじゃたいしたソース書いたことないだろうし
せめて中級者くらいの人が参考に読めばいいと思うよ
本は勉強開始してから、1、2年くらいの新人が読むものかと。 それを過ぎたら面白そうなOSSのソースでも読んで、知的欲求を満たすもんだと思う。
すみません、実行時に unable to load native library: can't find dependent libraries と でてしまいます。どうすれば実行できるように なるのでしょうか?
>>277 Classpathとjavaのバージョン
280 :
277 :2010/05/09(日) 13:23:50
>>279 レスありがとうございます。
バージョンはjdk1.6.0_20で、
classpathはカレントを指定してます。
282 :
277 :2010/05/09(日) 13:56:06
>>281 カレントに置いても実行できませんでした。
284 :
277 :2010/05/09(日) 14:16:06
>>283 同じエラーです。
jdkインストールしてから一度も実行できてないです。
別のパソコンにインストールしたのは普通に使えているのに、
なぜかできないです。
例外処理で整数が入力されるまで、何度も再入力を求める場合はどういう風に書けばいいのでしょうか? まず整数かどうかを判別する式が思い浮かびません。
小数点以下は丸め込むと注意しておいてintにキャストすればいいじゃん
288はなんか脊椎反射で煽っている気がするなぁ。 普通に読んで Integer.decode(入力文字列) とかで変換しちまえという話じゃないのか。
と、小数入っていると変換できなかったか。
んーと、Double.valueOf(入力文字列).intValue() とやればいい。
整数じゃなかったらという判定がいいなら Integer.decode(入力文字列) で例外catch。
293 :
デフォルトの名無しさん :2010/05/09(日) 17:35:03
ようじょクラスを継承するようちえんじクラスがあって、 ようじょ ょぅι゛ょ = new ようちえんじ(); という感じにスーパークラスの型でサブクラスを インスタンス化する場合がありますが、 何の為にわざわざそんな事をするのでしょうか。 ようちえんじ ょぅちぇんじ = new ようちえんじ(); と何が違うのでしょうか。 教えて下さい。
ようじょクラスに対する操作を書いておけば ようじょクラスだろうがようちえんじクラスだろうが適用できる 継承関係がなければ ようじょクラス用とようちえんじクラス用に それぞれ別々に同じような操作を書かないといけなくなる
295 :
デフォルトの名無しさん :2010/05/09(日) 18:01:12
>>294 有難うございます。
その、継承関係でオーバーライドが機能するのは分かるのですが、
ようちえんじ ょぅちぇんじ = new ようちえんじ(); では
継承関係は反故になってしまうのでしょうか。
別に継承関係があって、 共通処理をようじょクラスで記述できるのなら、 ようちえんじクラスで持っててもいいよ
297 :
デフォルトの名無しさん :2010/05/09(日) 18:55:48
>>296 うーん難しいですね。
よく本とかにのっている
List list = new ArrayList();
は
ArrayList arraylist = new ArrayList();
とどうちがうのか分かりかねているのです。
どっちでもいいけど、ある日ArrayListの代わりに パフォーマンス上の理由でLinkedListを使わざるをえなくなった場合、 ArrayList arraylist のコードの方は直さなきゃならないね。 同様に、以下のようなメソッドを別に用意していたとしよう、 void method(ArrayList arraylist){ arraylist.add("unko"); } 上記メソッドはaddメソッドにしか用事がないのに ArrayListで型宣言してるばっかりにLinkedListが渡せない。 これは大いに問題。 上記のような問題が起こらないと言える範囲、 もしくはArrayList特有のメソッドが重要な場合とかは ArrayListをそのまんま変数宣言で使っていいよ。
>>263 素で間違い
片方はCONSTSANT_Bに
でもあれでもまだ問題あり
とにかくEffective Javaでも読む
.は,に戻す
List list = new ArrayList(); やっぱり ArrayList じゃなくて LinkedList にしようとか思った時に List list = new LinkedList(); にすれば動く。 ArrayList list = new ArrayList(); だと LinkedList list = new LinkedList(); に修正したとしても、例えば list.ensureCapacity(100); とかいう文があったらエラーになる。 まあ普通はこういうことは起こらないけど、あくまで例として。
301 :
デフォルトの名無しさん :2010/05/09(日) 19:34:36
>>298 >>300 分かりました!
有難うございます!!
余談ながら、実は『=』の左側で型を宣言するのはメモリに
領域を確保する為だという考え方がぬぐえず、だから大抵の
場合スーパークラスよりサブクラスの方がメソッドとかも
増えているので、スーパークラスで確保した領域にサブク
ラスを代入すると、オーバーライドや独自メソッドなど
確保領域からはみ出る部分が切り落とされると思えて仕方
なかったのです。
>>262 thisつけるかどうかはどこのスコープかによる。
迷ってるならCheckStyleを使うべき。CheckStyleがthisの付け忘れを指導してくれる。
もしEclipseを使って開発してるならEclipseにもCheckStyleプラグインがあるからそれを使うといい。
> 内部クラスにもthisとかつけたほうがいいの?
> ClassAという内部クラスがあったとき
> this.ClassA a = new this.ClassA();
そもそもnewのあとにthis.は不要。
型の頭にthis.つけたらコンパイルエラー。
インスタンス生成のことをよくわかってないようなので
基礎から勉強し直した方がいいと思う。実際に自分でそのソースコードを書いて、
コンパイルして自分の目で確かめてみましょう。
内部クラス等の扱いについての詳しい解説は『Java言語仕様』を読むかそこいらのJava入門サイトでも読んだほうが早い。
>>263 CONSTANT_A(1)という書式は無理にする必要ない。
CONSTANT_Aでもいい。toString()が返す値が1になるかわりに"CONSTANT_A"にかわるだけ。
そこいらのサイトを検索して出るJavaのenumの仕様とサンプルを見るべし。
>>267 Javaはそんな老けてない。それってC/C++の間違い。Javaは登場してからまだ15年しか経ってないから。
>>269 10年前にJava始めたときは興奮した。それまではC/C++大学で弄っててついでに大学の鯖でHTMLとかCGIとか弄ってたから。
あの頃の多くのJava本がまえがきでJavaの魅力を熱烈にアピールしてC++とここが違うということを強調しまくっていた。
あの頃にあんなまえがき読んだら興奮する。当時はC/C++が最強と言われていたんだから、身震いを覚えた。「C/C++に慣れきっていたら
なんだこの変な言語」と思っていたがまだC++もほとんど十分に把握していなかったこととC言語の煩雑さに不満を覚えていたから
あのときのインパクトは衝撃的だった。
>>276 しかし、Java以外の言語にある程度経験がある場合、とくにC/C++経験豊富でJava初心者の場合はEffective Javaはおすすめできる。
enumのところに書いてあるコードはそれほど難しくないから読む価値はある。というかenumだけなら買わなくてもここでほとんどそっくりな解説を読めたりする。
惑星から物体の重量を計算するenum型のサンプルとかもろにEffective Java第2版と同じことがかいてある。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/language/enums.html あとインタフェースを定数にするのがなぜいけないかは、ここを読むのがおすすめ。
http://www.ibm.com/developerworks/jp/java/library/j-enums/
>>286-292 文字列の中にドットが含まれていれば小数をみなす
というんなら、そんなめんどうくさいことやらずにこうすればいい
while(true){
//コンソールから小数を入力するコード
if(!input.contains("."))
break;
}
}
例外のことは考えてない
"one"とかだったらどうするよ?
306 :
286 :2010/05/09(日) 21:48:41
みなさん回答ありがとうございます。
>>305 さんがおっしゃってる通りなのですが、文字が入力された場合などの判別も条件に入れての質問です。
条件があいまいな質問になってしまい申し訳ございません。
まあ問題はlistでやると使えないメソッドがかなりあると void addFirst(E e) void addLast(E e) void clear() E getFirst() E getLast() boolean offer(E e) boolean offerFirst(E e) boolean offerLast(E e) E peek() E peekFirst() E peekLast() E poll() E pollFirst() E pollLast() E pop() void push(E e) E removeFirst() boolean removeFirstOccurrence(Object o) E removeLast() boolean removeLastOccurrence(Object o)
>>308 それらはListではなくDequeだな
>>305 java.util.regexか
Apache Jakarta ProjectのApache OROを使って正規表現で文字列を除外する。
>>308 何の話題?
元の話の流れがわからないのでリンク元を
>>311 linkedlistで使えてlistで使えないメソッド
なるほど。 そやな。 あれはDequeのメソッドも混じってるからな。
314 :
262 :2010/05/10(月) 00:51:56
内部クラスの内部クラスの内部クラスの内部クラスをオーバーライド
ご苦労さんとしか言いようがないが…
>>316 ('a')
('A')
('3')
('-')
顔文字に見えた
>>318 static importして
sysout(MINIS10 +" massage "+ MINIS10)
って便利かなと思うけどどう考えてもGRAVE_ACCENT100とか使わないよね・・・
320 :
デフォルトの名無しさん :2010/05/10(月) 18:00:50
どうでもいいことかもしれんけど 式書くとき n=m+12; ←のように詰めて書く? n = m + 12; ←のようにスペース空けて書く? 引数とかでも hoge(n,1,true,a,"abc"); 詰めて書く? hoge( n, 1, true, a, "abc"); 空けて書く?
>>320 Eclipse で Ctrl+Shift+F
>>256 定数にenum使うってswitch文とかで分岐に使うような複数ある定数の場合でしょ?
他の定数と関連付ける必要ない定数はenum使っちゃだめじゃないの?
エフェ厨に構うなよ。2ch 用語覚えた中学生みたいなもんだから。
俺が昔読んだ入門書には定数だけのインターフェース作る様なこと書いてあった気がした
昔の入門書といえば、そんなもんかも
文字列を10文字幅にして、足りない部分は先頭に'0'を付けるにはどうすればいいですか? 例えば "deadbeef"を入力すると"00deadbeef"と返還する処理を書きたいです。 String.format("%010s", "deadbeef"); とやってもダメでした
>>322 あとは多少気持ち悪いけど、
Java上でSingletonやりたい場合かな。
>>322 駄目っていう理由はないと思ってるんだけど。
何でそう思ってるのか知りたい。
329 :
デフォルトの名無しさん :2010/05/10(月) 20:24:25
public class Rect{ package a; public class AA{ int ai; protected int aj; } package b; import a.AA; class BB extends a.AA{ BB(){ AA aa = new AA(); aa.ai = 7;(1) aa.aj = 9;(2) ai = 7;(3) aj = 9;(4) } } (1)-(4)のなかで正しいのはどれですか?
>>329 目の前のPCで動かせばいいだろうが。
何でも聞けると思ってんじゃねえぞ。
>>326 System.out.println(org.apache.commons.lang.StringUtils.StringUtils.leftPad("123", 10, '0'));
StringUtilsがカブったw System.out.println(org.apache.commons.lang.StringUtils.leftPad("123", 10, '0')); な
>>316 Apache Commons LangのStringUtilsクラスかと思ったぜ。
あっちのクラスには不満かい?
>>320 スペースあける。
>>321 のようにEclipse使う。すると自分で設定したコードフォーマットに従って
コードが自動的にフォーマットされる。
詰めてかいたコードは読みにくい。というかそういうコード書くやつのソース読まされるとそいつを殴りたくなる。
アフォが出たぞー
なんつーか、社会人プログラマ三年目くらいか? まぁ教典にかぶれるのは若さの特権だけどさ。
339 :
デフォルトの名無しさん :2010/05/11(火) 02:29:15
340 :
デフォルトの名無しさん :2010/05/11(火) 02:32:06
341 :
デフォルトの名無しさん :2010/05/11(火) 02:33:04
342 :
デフォルトの名無しさん :2010/05/11(火) 02:34:40
何故アンチパターンがダメなのか
テンプレートパターンなんか普通に Call Super するけどな。 何でもパターンを盲信すりゃ良いってもんでもない。
>>339 思いっきりアンチパターンって書いてるぞ。
まさかアンチパターンとしら書いてなかったらどうしうようかと思ったぜ
Use of this anti-pattern has a few other downsides:
It pollutes the class namespace with read-only variables that may not be of use.
Contrary to the compile-time tactical utility of implementing a constants interface, the incidental run-time artifacts have little practical purpose (cf. marker interfaces which also have no methods but are useful at run-time).
If binary code compatibility is required in future releases, the constants interface must remain forever an interface (it cannot be converted into a class), even though it has not been used as an interface in the conventional sense.
Without an IDE that resolves where the constant are coming from, tracking it back to its containing class or interface can be time consuming.
A variable (representing an instance) of the interface is syntactically no more useful than the interface name itself (since it has no methods).
>>342 COBOLerのようにスパゲティコード書く馬鹿のコードを読むのは苦労してウザイから
>>338 アジャイル開発も無視ってやつか
せめてデザインパターンのひとつくらい覚えて使いこなせよ
そういうのすら無視して汚くて読みにくいコードばかりかいて
そんな上から目線で威張ってるのか?
初学者 (初心者はとりあえず越えたあたり) 〜中級手前あたりはべからず集をありがたがる傾向があるな。
見てると、それを遵守して失敗しても自分のせいじゃないと心のどこかで言い訳できるからっぽい。
あと設計突っ込まれたときに他人の言葉を借りないと返せないから。ちゃんと経験を積めば
「何故このケースではアンチパターンを使った方が良いか」個別に判断出来るようになるが。
まぁその典型が
>>348 みたいな。
Wikipediaに書いてあることなんぞ信用ならん
>>341 >車輪の再発明
俺よくやるわwwダメじゃんwww
>>350 コアライブラリと同じ機能を再発明してたらアレだが、それだって外部 JAR の追加
(管理構成に関するアンチパターン) との兼ね合いだよ。
専門板で鼻の穴膨らませてパターン系の Wiki 貼ってるバカは何なの? 新卒?
>>349 具体例を示さないで妄想を騙る言い訳COBOLer老害乙
アンチパターンを使った方がいい例を実例で示してごらん
>>350 信頼できる情報源に恵まれた出典が載っていれば信用できる
具体例を示さないでアンチパターンをマンセーしているようじゃ
ただのオッサンとしか思われないだろうな。
そんな環境が勧められる案件は組み込みくらいだしな。
>>350 みたいなのがメモリがたっぷりあるのに無駄にメモリ節約に拘る傾向にあるんだよな。
>>355 おまえさ、不適合ケースが思い付かないって事はどういう経緯や利点があってパターン化されたか
理解してずに (つまりパターンの欠点も理解せずに) 盲信していますと白状しているようなもんだぜ。
どこかで覚えたような単語ばかり並べつらうよりも、もう少し自分の言葉で話せるよう経験を積んだ
方が良いな。ここは技術板だぜ。
そいつ Eclipse スレのアフォウヨだよ。
>>356 出典元から正しく引用等されてるかの保障が無い
出典元がインターネットサイトなら確認は容易いが
書籍の場合はどうしようもない
361 :
デフォルトの名無しさん :2010/05/11(火) 04:38:47
おまえら早起きだな
経験浅い小心者は指摘恐怖症に陥って原理主義、教典主義に走りがち
世間様から遅れてのGW
パターンどうこうなんて深く論じても宗教論争にしかなんねーよ。
TeraPad使ってJavaのソース書いてる俺は異端
たまに深夜枠で宗教論争あるよなこのスレw
連休が終わったというのに
手打ちなのでタイプミスがあるかもしれませんが class Parent{} class Child extends Parent{} public class Test { public void check(Parent p) { //省略 } public static void main(String[] arg) { Parent p = new Child(); new Test().check(p); // @ } } @の記述は何? checkを呼び出しているのはわかるのですが、このような記述は見たことがありません。
この業界的な GW の過ごし方は新システム入れ替え作業だろう。 代休じゃねぇの。
>>368 Test t = new Test();
t.check(p);
と同じ
>>349 それもそうだが、そもそも、「初学者なんだけど、本人は中級者気取り」ってやつが多いw
というか本至上主義のヤツ多いの?
本の知識なんてそこそこの優等生なら勉強できる。そんなものには価値はない。(勉強しないやつよりはそりゃできるが。)
すげー技術者から教わる知識や考え方の方が価値が高い。
会社で一人くらいいるだろ?オプソのコミッタやってるやつとか、自社のフレームワークつくったやつとか。
そういうやつから教わる生きた知識の方が、役に立つぜ。
>>371 知識の種類による。至上主義とかの問題じゃないだろう。
件のEffective Javaだってそこらの開発者が書いたなら
そこそこの信頼しかおけないが、書いた奴が言語の根幹に関わってる
とかなら信頼できる。それこそそこらにいるオープン開発者なんてのより。
でも定数に必ずenum使えなんて書いてあった覚えないんだけど。
件の彼は文字列定数にもenum使えって言っているのだろうか。
まあどちらにしろ
>>252 のようなインタフェースならざる
定数インタフェースは、俺が現場にいたら「やめて」と言う。
もっと別の方法でできるし、クラスに変な継承関係持って欲しくない。
見た時混乱するし、なにより嫌なニオイがする。
static import があるから今時そんなんどうでも良いよ。
>>360 おいおい、その書籍を読めばいいだろ
絶版で入手困難な書籍はつらいがさ
図書館やそこいらの書店で手に入る書籍ならまだいいほうだろ
中には国会図書館まで出かけて確認する必要があるものすらあるんだぜ
>>358 そんなにいうなら
なんでお前はアンチパターンの定数インタフェースを肯定しているんだ?
明らかに悪用されるケースが多いんだが。
まさか、メモリ節約だとか組み込み系メインだから、
先人が書いたシガラミにとりつかれたコーディング規約を守らなければならないから
とかいうその程度の不適合ケースで偉そうに吹聴しているわけではないよな?
ところでお前はenumの仕様わかってるか?
あふぉうよとかいってる朝鮮人はマジこのスレにこなくていいよ
多分
>>358 は無意味な禅問答をしているかハッタリかましてるだけじゃないかな
JavaのenumをCのenumと勘違いしているレベル
定数インタフェースのかわりにenumを使っちゃいけない理由なんてJavaのバージョンが古いとき
以外思いつかないんだが。
「関係ない要素を1つのenumに混ぜるから使って欲しくない」というなら
enum型を2つに分割すればいいだけの話だしな
>>372 文字列定数って"SUNDAY","MONDAY", ... みたいなやつ?Enum使うんじゃないかなあ。
>>372 は定数インタフェースもenumも使わないなら
かわりにどうやって定数を定義するつもりかね
まさか、ResourceBundleとか言わないよねw
あれ定数じゃないから
なにこの連投厨
人がいっぱい居るように見えるんだろう。
分身の術www
384 :
デフォルトの名無しさん :2010/05/11(火) 14:59:21
javaって響きが嫌だ
>>349 曰く「Properties使って定数を作りました。それがenumよりも優れたパターンです。」
どうすんだよこの粘着…
みんなJavaのenumとC/C#のenumは仕様が違うこと前提で話してるよね?
Java スレでそんな疑問を持つ方がどうかしている。
389 :
372 :2010/05/11(火) 16:03:17
>>379 列挙したくないものに対して無理やりenum使う必要はないよ。まったくの労力の無駄。
てか、文字列定数を列挙にするって、toStringでも実装させる気?
あと定数は文字列に限らないよ。
コレクションクラスによる定数とかあるでしょ。
>>380 定数インタフェースは使わないで、
適切な場面でのみenum使うって言ってるんだけど。
普通の定数はユーティリティクラス的なものに定義するか、
各クラスに定義するでしょ。
もうちょっと他人の言ってることを理解する努力をしようぜ。
脳内で>>XXX=>>YYYなんてやってるから
他人の言うことを曲解してしまうんだよ。
>>389 >
>>379 > 列挙したくないものに対して無理やりenum使う必要はないよ。まったくの労力の無駄。
> てか、文字列定数を列挙にするって、toStringでも実装させる気?
enumで定数名をそのまま文字列に置き換える場合はわざわざtoString()のオーバーライドは不要ですが
>
>
>>380 > 定数インタフェースは使わないで、
> 適切な場面でのみenum使うって言ってるんだけど。
> 普通の定数はユーティリティクラス的なものに定義するか、
> 各クラスに定義するでしょ。
それてその定数はほとんどpublicでint型なんですね
はい問題がおきましたね
>>388 C/C#慣れしたJava初心者はよく勘違いするんだこれが
Cのenumとまったく同じだと
どう考えても勘違いするようなスキームじゃないが。 なんか話作ってないかおまえ。
>>389 このスレ(この流れ)ではそれをもうちょっと具体的に示した方が良いんじゃないの?
>>379 はenum使う例だよね、じゃあ使わない例は?
(あるいは
>>379 が使わない例だとすると、使う例は?)
>>390 enumの列挙のシンボルと文字列表現が一致しているような
場合ってのはそんなに無い。むしろ特殊例。
まさかとは思うけど、同じ感覚でordinal()使ってないよね?
某有名FWが列挙にordinal()依存の設計してて殴りたくなった。
で、publicでint型だと何の問題があるの?
一体Effective Java第2版をどういう読み方をしたら
そういう意味不明な考え方に至るのか不思議だわ。
>>393 SUNDAY, MONDAYを列挙する必要があるなら
enumでよい。EnumSet.of(SUNDAY, SATURDAY)やら好きにやってくれ。
使用する場面が限定されていて、単純に
"日曜日"、"月曜日"を出したいだけなら定数でよい。
そもそも、通常の業務系開発だとenumで文字列を切り出すにしても
enumの文字列表現自体は別の定数クラスに切り出すこと多いけどね。
で、enum使わない例。そんなのはいくらでもあるだろ:
/** デフォルトのXXXの長さ */
public static int DEFALUT_LENGTH = 50;
そもそもenum使う予定すらないのに、
enum使い始めたりするとYAGNIに反するわけだ。
だいたいenumが提供できるのはオブジェクトの値というよりは、
オブジェクトのシングルトンなアイデンティティなわけだろう。
値を返すために、どれぐらい実装工数割きたいのか理解不能。
>>394 お前の考えてる例のほうがよっぽど特殊例
Effective Java読んでいればordinal()が以下にヤバいものかわかってるはずだが
int型定数の問題点もな
お前がint型定数どうしで加減乗除した判定メソッドを作る馬鹿の暴走を防ぐことを考えていないのがまるわかりだ
そんな低レベルなコーダー抱えてる下請けは大変だな。
俺は
>>396 君が一体何と戦っているのか
理解できないので、そろそろ退散します。
>>395 > で、enum使わない例。そんなのはいくらでもあるだろ:
> /** デフォルトのXXXの長さ */
> public static int DEFALUT_LENGTH = 50;
ここがアウトだな
その定数をそのクラスか同じパッケージでしか使わないならわざわざpublicにする必要がない
> そもそもenum使う予定すらないのに、
> enum使い始めたりするとYAGNIに反するわけだ。
> だいたいenumが提供できるのはオブジェクトの値というよりは、
> オブジェクトのシングルトンなアイデンティティなわけだろう。
> 値を返すために、どれぐらい実装工数割きたいのか理解不能。
enum型書くのにそんなに工数かからないわけだが
曜日の例もenum { SUNDAY, MONDAY };程度で非enumや内部クラスよりも簡潔だ
>>396 下 2 行って enum じゃ解決できない (関係ない) し、メソッドで隠蔽しても同じ事じゃね?
どういう魔法使ったら防げるの?
あと何で後出し条件で勝ちほこってんの?
>>400 そもそも防ぐ必要すらないと思うよ。
たぶん今暴れてる子は大きなプロジェクトに入って
開発したことないんじゃないかな。
>>395 > 使用する場面が限定されていて、単純に
> "日曜日"、"月曜日"を出したいだけなら定数でよい。
>379がどういうケースかしらんが後から火曜日〜土曜日を追加すること考えると
enumのほうがましといえばましだな。
> そもそも、通常の業務系開発だとenumで文字列を切り出すにしても
> enumの文字列表現自体は別の定数クラスに切り出すこと多いけどね。
無駄に定数クラスを増やしてんな。そういうときこそenum内でtoString()オーバライドしたほうがまし。
どっちがどんだけ実装工数割いてるんだ。
>>398 ただの逃げかよインタフーフェース定数パターンオヤヂw
>>400 >
>>396 > 下 2 行って enum じゃ解決できない (関係ない) し、メソッドで隠蔽しても同じ事じゃね?
> どういう魔法使ったら防げるの?
加減乗除したくない定数どうしをそれぞれ異なるenum型で宣言すれないい。
>>402 定数インターフェースオヤジの最後の言い訳かよw
どっちが暴れてんの
>>405 いやだからバッファサイズとかスレッドプール数とか具体値が必要な場合は
どうすんのって。コアライブラリ全部ラッパー化する気?
>>407 何のバッファサイズとスレッドプール数が欲しいのかいってごらん
具体的に
>>407 enum BUFFER_SIZE{
BUFFER_SIZE{ @Override int getValue(){return 1024;} };
abstract int getValue();
}
こうしたいんじゃないんだろうかw
>>409 じゃあ例としてファイル入出力のためのバッファサイズ (BufferedInputStreamを使用) を
Windows の標準スペックに合わせて 4*1024 バイト (8kだっけ?) で指定する場合は
どう 4kB を enum で定義すんの?
>>411 enum { B4096 }
new BufferedInputStream(new FileInputStream(file, Integer.parseInt(B4096.name().substring(1))));
こうじゃね?w
>>412 String B4096="B4096";
new BufferedInputStream(new FileInputStream(file, Integer.parseInt(B4096.substring(1))));
こうじゃね?
いやいやどう考えてもこうだろ。 enum IS { IN1K(1024), IN2K(2048), IN4K(4096), IN8K(8192), ; private final int bufsize; private IS(int bufsize){ this.bufsize = bufsize; } public InputStream getInputStream(File file) throws IOException{ return new BufferedInputStream(new FileInputStream(file), bufsize); } } InputStream in = IS.IN4K.getInputStream(file);
ISの特定値を複数クラスで参照するような場合があったとして、 その定数を作りたいんだけど、その特定値含むenum定数作んなきゃダメ?
>>411-415 そもそもそんなものをpublic static finalにする必要があんのかと
そんな定数作るなら使う場所が限られてるんだからpublicな定数インターフェースパターンなんかにする必要ないだろって
話だと思うんだが。
俺だったらそういうのはpublicにしないが。
だいたいそのクラスでしか使わないならパッケージプライベートかprivateな定数として宣言する。
Eclipse のアフォ零細ウヨと同時に現れる enum 厨。
>>416 えーと、勝手にケース想定作らずに答えて頂けませんか?
Eclipse って Eclipse スレか。 偏見ウヨで教典主義ってエンジニアとして終わってんな。
その話題はもういい
>>417 平日の昼間からアフォウヨ連呼して暴れてるチョンニートか
>>419 ウヨという言葉を不用意に使うと在日と間違えられるぞ
民団がサイトで「外国人参政権を取得するためにネット・右翼と戦う」とか
変なこと書いてるからな
リアルで在日だったらご愁傷さまだが
Eclipse スレの アフォウヨ ってマジで enum 厨だったのかw
>>423 実家は江戸初期に開拓された土地で周囲も同じ名字ばかりだし、直系で明和、
分家で戦国、史料で室町まで遡れるんでご心配なく。君はどこから日本人?
ここは質問スレッドだ スレッド荒らすな
オマエガナー
>>425 とりあえずソース出そうか
ネトウヨを連呼している奴はルーピーズって呼ばれるくらいろくなヤツがいないがな
聞いてるのはこっちなんだが、どうも出生は言えないみたいだな。 半島起源の街宣ウヨだったか。
ネトウヨを連呼している奴が実は在日朝鮮人で街宣右翼やってるヤクザって話は有名だな
キムチ臭い奴がいるな とりあえずお前の持ってるクレジットカード使って 本人認証でもしてみw
こうやって保守の名を落とす活動って本国からの指令なんだろうな。 さっさと祖国へ帰れば良いのに。
>>425 媚中のアホ犯罪者小沢一郎が信じてる騎馬民族征服王朝説をお前も信じてるのか
こんやは酷い電波ですね
ガイキチはせめて Eclipse スレから出てくるな
そんな例は他の板で見かけるがな だがお前は何か勘違いしているようだ
いや「ウヨ」を連呼しているクズはEclipseスレからもJavaスレからも出て行って欲しい いやこのプログラム技術板から出て行って欲しい
そうやって相手にするから居座られて、 さらなる糞スレ化が進むわけだが
ネットルピどもが暴れようが、お前らが黙々とJavaの話題を続けていれば糞スレ化は免れるんだよ
440 :
デフォルトの名無しさん :2010/05/12(水) 03:46:13
新しいJDK使ってコンパイルしたものは古いJavaVM上では動作しない?
ProGuard?
なるほど。ありがとう
ジャヴァアプレットってやっぱ需要無いんかな
物理・数学系の学生が勉強のためにアプレット作ったりするが ゲームとかではFLASHのほうが一般的なのかな
>>432 > こうやって保守の名を落とす活動って本国からの指令なんだろうな。
> さっさと祖国へ帰れば良いのに。
こういうことを言う奴が実は保守ではない例ってよくあるんだよな
「同じ日本人として恥ずかしい」とかいう発言も、実は日本人でなかったり
特亜人かぶれだったり反日左翼だったりな
>>430 街宣右翼=実は左翼団体だからな
褒め殺し活動をして保守層を貶めるために右翼団体を名乗っていた左翼の朝鮮系ヤクザがわざとやっていたことが
最近になってわかってきたという
>>429 まず自分から出生をあかしてごらん
在日君
極東板行け
バイブル振りかざして反論できなくなったらファビョって在日認定 & ネット亡国論とか、 どこの恥ずかしいバカだよこいつ。
ああ、バカだからバイブルやコピペ振りかざすしかないのか。
斜陽 Java 産業にふさわしい展開
public class Test { private String msg; public Test(){ this("Good");} public Test(String msg){msg=msg;} public String toString(){return("msg:"+msg);} //@ public static void main(String[] arg) { System.out.println(new Test()); } } 実行結果は、msg:nullになります。 質問は、@の行のtoStringがどこから呼ばれているのか?です。 よろしくお願いします。
>>454 > public Test(String msg){msg=msg;}
public Test(String msg){this.msg=msg;}
>>454 msg=msg; はパラメータ変数 msg 自身に自分の値を設定しているので、
インスタンス変数の方の msg は null (初期値) のまま。つまり結果的に
何の状況も変わっていない。
正しくは this.msg = msg;
>>454 "msg." + msg は以下に翻訳される
new StringBuilder("msg.").append(msg);
StringBuilderのappendメソッドの中で
String.valueOf(msg)が呼ばれる。
このときmsgがnullであれば"null"という文字列に変換される。
null以外であれば、msg.toString()の結果の文字列に変換される。
コンストラクタのthisって初めて知った
>>451 ネット亡国論とかどこで覚えたんだよ
お前のほうがよっぽど恥ずかしいよ
そんなこと言う奴はネットで左翼的な発言や小泉改革に対する陰謀論を繰り返し唱えている
ミラーマンやリチャード・コシミズのようなアホどもだけだよ
そもそも定数インタフェース信者からの反論がない時点で(ry
どっちが反論できない馬鹿なのかわかりきったことだけどねぇ 定数インタフェース信者は具体的になにが悪いのか説明できない時点でファビョって 左翼発言連呼してっからな
どうしてこうなった・・・
性格が自分の間違いを認めない中国人や朝鮮人そっくりだな なんか中国を崇拝しているようだが、とんだ馬鹿だな この馬鹿は社会主義思想に陥ったか?
他人の意見にはただ否定ばかりして文句をつけておいて自分の考えを表明しない奴は たいがいはハッタリでしょ
何このものすごい連投。
完全に居座ったみたいだな。どうすんだよこの厨二病。
変なのはスルーして 他の質問等にたんたんと答えていけばいいんじゃね
香ばしいスレは即 NG。 2ch で時間を無駄にしないための鉄則。これ。
しゃあねえな ほとぼりが冷めるまで このスレ放置。bye
>>469 悪名高い中国人と朝鮮人を追い出せば解決するんでね?
notepad.exeでjavaやってる俺って もしかして最強じゃね?
475 :
デフォルトの名無しさん :2010/05/12(水) 19:45:52
古いバージョンってどうやったらダウンロードできます?どうもアップロードしたら機能してなくてシステム一覧からも消え去って
476 :
デフォルトの名無しさん :2010/05/12(水) 19:55:10
OSが古くてJDKが動かないとかじゃないの
478 :
デフォルトの名無しさん :2010/05/12(水) 19:57:01
>>475 ブックオフ等の古書店池
CD付きの古いJava雑誌とか入門書ゲとしてこい
toString ってどこから来るの、という問に誰も答えようとしない点についてw
>>454 調べ方(基本編)
APIヘルプで System.out を調べると PrintStream なわけだ。
そしてオブジェクトを受ける println(Object x) を辿ると、
「このメソッドは、最初に String.valueOf(x) を呼び出して、出力されたオブジェクトの文字列値を取得します。」
とある。
String.valueOf(x) それもやはりオブジェクトを受ける valueOf(Object obj) を見てみる。すると戻り値の項に
「引数が null の場合は、"null" に等しい文字列。そうでない場合は、obj.toString() の値」
とあって、toString() が呼ばれていることが分かる。
調べ方(応用編)
ヘルプが正しいとか完璧とは限らない。しかし JDK のフォルダを見ると src.jar というファイルがある。
これはソースをzip圧縮したものなので、src.zip と名前を変えて解凍するとソース見える。
ここで PrintStream で println(Object x) を探すと
String s = String.valueOf(x);
そこで今度は、String の valueOf(Object obj) を探すと
return (obj == null) ? "null" : obj.toString();
と書かれているので、toString が呼ばれていることが実際に確かめられる。
調べ方(邪道編) ソースがあるなら良いのだが、無かったらどうするか? Eclipse はバイトコードをソースに逆コンパイルするjadというツールが組み込まれている。 デバッガで、関数の中にステップインするとバイトコードが逆コンパイルされる。 これを追えば、ソースが無くとも確認できる。
調べ方(金持ち編) ゴスリンに聞きに行く。
>>478 そんなありえない話あるかw
Sunがいままでそこまでひどいことをしたことがあるかw
>>481 組み込まれてないから。
自分でインストールしないと使えないから。
EclipseはJadclipseとJadを自前でインストールしないと逆コンパイラ使えないぞ在日チョン
486 :
デフォルトの名無しさん :2010/05/12(水) 23:31:25
7年くらい前にjavaをちょっとかじって、その後ずっとC#ばっかりやっていたのですが 最近javaをやることになりました。 無名クラスというC#の匿名メソッドみたいなのがありますが あれって最近javaに対応されたのですか? 7年くらい前にはなかった気がするのですが。 C#もjavaも本当に似ていますね。
C#は初期の頃javaの模倣品なんて言われてたが、その後独自の進化を遂げた その結果C#からjavaに輸入された機能も数多くある
普通の内部クラスも anonymous な内部クラスも JDK 1.1 時代 (1997年頃) から使えます。0.9 や 1.0 の頃は多分使えなかった (そんな書き方聞いたことが無かった)。
>>488 匿名メソッドとかあったんすね。
C#がどんどんjavaの良いところを取り入れたって感じですね。
C#は2.0から匿名メソッドが対応されたからなあ。
blank finalのこともたまにでいいのでry
1. Object obj1 = new Object(); Object obj2 = new Object(); Class<?> clazz1 = obj1.getClass(); Class<?> clazz2 = obj1.getClass(); boolean b = (clazz1 == clazz2); 2. boolean b = (Void.TYPE == void.class); このような場合、両方ともbooleanはtrueになると思うのですが、 Class<T>クラスというのは1つの種類のクラスにつき常にVM上には1つしか存在しないのでしょうか?
typoです、すみません。 誤 : Class<?> clazz2 = obj1.getClass(); 正 : Class<?> clazz2 = obj2.getClass();
違うクラスローダでクラスをロードした場合とか。
staticじゃない変数にfinalを付ける事ってある?
Button button = new Button("How are you?"); final TextField textfield = new TextField(); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { textfield.setText("I'm fine!"); } }); こんなんとか
スーパークラスAのサブクラスBのサブクラスCからAのメソッドとか参照できるとか知らなかった。勉強になります
>>495 これってfinal付ける場合と付けない場合でどういう違いがあるの?
継承とな何ぞや、から再整理した方がいいんじゃないか
finalがないとコンパイルできない。
>>499 それじゃ不親切すぎるだろwwww
>>497 JDK1.1に変更入った部分だから相当前のことだけど、
メソッドのパラメータやローカル変数でfinalをつけると、
inner classつーか匿名クラスでもその変数を参照できるようになる。
まあfinalを外して動いちゃったとしても、参照先がズレそうだしな
わかりました。ありがとうございます。勉強しなおしますです・・・
可変長引数って使うことある?
Arrays.asList('foo', 'bar', 'baz') とか便利でしょ?
>>502 System.out.printfとか使わない?
>>504 それが可変長引数だって知りませんですた。勉強になります。ありがとございやす
>>505 おまえはなにを可変長引数だと思ったんだ?w
これからアプレット始めるなら、AppletとJAppletとどっち使ったほうがいい?
>>508 どっちでもいいんじゃね?
両方対応させるのも難しくはなさそうだし
>>489 C#はC++の悪いところも取り入れているのが難だな
>>494 ばりばりあるぞ。
純粋主義者はよく使う。
不変性でググれ。
>>508 機能性を考慮すると後者。
複雑なことやりたいなら断然Java SwingAPI(JAppletがあるほう)を使うのが望ましい。
この2行目のprivate String holidayをSundayの位置にもってくるにはどう書けばいいの? enum Day{Sunday,Monday,Tsusday; private String holiday;} こうかと思ったんだけどコンパイル通らない enum Day{private String holiday; Sunday,Monday,Tsusday;}
>>514 enum 定数の修飾子は許可されていません
というかpublic static finalです
>>514 列挙は先、クラス定義は後にしか書けません。
JITとJNIって共存できるんでしょうか。 過去に作ったJNI経由で作ったコードがそのまま動くか不安で。。。
全然別物だから共存は可能。
共存は可能だが、JNI部分はJITの最適化対象にできないから相性はあまりよくないと言われてる。
一つ前のバージョンはどこでダウンロードできる?
>>514 どうしてもそれをprivateにしたかったら
enum型自身をprivateにして他のクラスのフィールドにツッコむ。
public class Test {
private enum Day { Sunday,Monday,Tsusday};
private enum Holiday {};
}
Java FAQ: よくある質問とその回答集
ttp://javafaq.jp/ ↑このサイトに書いてあることどの程度信頼できる?
初心者向きなサイトとかあったら教えてほしいです
>>521 おまえ
>>514 の前提コードの意味分かってないだろ。
enum 云々言ってたわりにその程度も理解してなかったのか。
>>522 だいたい信頼できるが更新とまってるんじゃなかったっけ?
元は日本のメーリングリストっぽいので不安だけど、そのメーリングリストって研究者・開発者相当いそうだし・・・
java source>api doc>オラクル本>改訂を行ったことがある本=javafaq ぐらいじゃね?
どーもです
こういうスレ見てるとコーディング手法に対する意識が高そうに見えるけど 出向でいくつも渡り歩いた大小企業ではトンデモコーディングばかりお目にかかった このネットと現実のギャップの大きさがいつも不思議でたまらんよ
ヒント:ガイキチは声がでかい
万年実装要員に甘んじてたらそりゃ職人的こだわりだって出て来るさ。 多少狂ってて無駄に声がでかいぐらいの方が成功する業界なんだよw
クラス定義部分を列挙シンボルより先に書きたいという話。
>>522 最終更新日が2005年じゃあな。
ちょうどJava 5が出た年でしかもそのJava5以降ならではのFAQが全然載ってない。
>>523 そもそも
>>514 が自分の書いたコードでコンパイルエラーが出ることを知らないのが問題。
彼が何をしたいのかはっきり言えば彼に望みどおりの答えがでやすくなると。
世の大半は中小零細というからな
>>514 がしたいことを想像してみる
曜日と休日の型が欲しい そもそも休日が日曜日だけなら余計なこと考える必要ねえ
休日だけ特別扱いしたいならこんなコードでも書けばいい
enum Day {
Sunday(Holiday.Holiday), Monday(Holiday.Weekday), Tuesday(Holiday.Weekday),
Wednesday(Holiday.Weekday), Thursday(Holiday.Weekday), Fryday(Holiday.Weekday), Saturday(Holiday.Weekday);
private final Holiday holiday;
Day(Holiday holiday){ this.holiday = holiday; }
double method(){ return this.holiday.anyMethod(); }
private enum Holiday {
Weekday {
double someMethod(){ //平日の処理
return 何か;
}
},
Holiday {
double someMethod(){ //休日の処理
return 何か;
}
};
abstract double method();
double anyMethod(){ //someMethod()を使った何かの処理
何かの値 = someMethod();
return 何かの値;
}
}
}
どこで聞けばいいのか判らなかったので、ここで聞かせてください。 Javaでプログラム作成して、そのプログラム向けのインストーラーを 作りたいんですけど、Win,Mac両方のインストーラーを作れる ツールってありますでしょうか?
>>538 例えばScalaのインストーラ版はIzpackというプロダクトを利用しているみたいですね。
http://izpack.org/ It is fully cross-platform and generates a single installer.
As such, it is an alternative to native solutions
such as platform-specific installers and package managers.
何だこの糞みてぇなコテは
542 :
538 :2010/05/13(木) 22:00:18
>>539 ,541
izpackって凄そうですね。何でもできそうな雰囲気ですね。
試してみます。
ありがとうございました。
.NET Frameworkのクラスを使って作成したDLLはJNIやJNAで呼び出せますか?
>>539 Java Web Startがあればいらない気がする
>>539 そのトリップすでに割れたトリップだよな
ググると9年ほど前から使ってるそうじゃないか
-Xmx256m というオプションをつけなくても 最大ヒープサイズが256MBになってるんだけど、前からそうだっけ? 以前は64MBだった記憶があるんだけど。 それともうちの環境だけ?
548 :
547 :2010/05/14(金) 01:05:23
あ、コピペする行間違ってた。 物理メモリの 1/4 か、1GB かの小さい方。J2SE 5.0 より前のデフォルトの 最大ヒープサイズは 64MB。
550 :
546 :2010/05/14(金) 01:20:41
情報ありがとう。 うちのマシンはメモリ1.5GBなので、 最新のJREでは1/6に変更されたとか? JDK1.6のjava.exeでは64MBのままなのも気になる。 覚えていないだけで、自分で設定をいじってしまった可能性も否めない。
上級者気取りで定数インターフェイスを愛用している?
>>349 は
これについてどう思っているんだい?
http://java-house.jp/ml/archive/j-h-b/038501.html >>349 が見てきた失敗例とやらがどういうものか見てみたいんだけど。
アンチパターンを避けてEffective Javaなどに載っているテクニックやべからず集を遵守したから
失敗したわけではないよね?
遵守したからではなくどこか設計が間違っていたから失敗したんだと思うけどね。
アンチパターンを使った方がよいケースはメモリが限られているときや
今後拡張する予定がないと確実にわかった時や納期が遅れているとき
くらいではないのかい?
べからず集を否定するっていう行為が危険な思想だと思うけどね。
>>349 が新たに部下をかかえたときに、べからず集を否定して、その思想を引き継いて
新人が勘違いしてとんでもないことをしでかすんじゃないかとね。
ようするに歴史を繰り返すということ。
日に一度レスしないと済まないほどこたえたのか
連投始まるから相手すんなよ。
しょーじきどっちが連投してんだか
>>551 だからYAGNI原則に反するといってるだろ
>>349 がenumを否定してかわりに使用している定数インタフェイスの問題点
interface A {
public static final int CONST = 1;
}
public class B implements A {
public static void main(String[] args){
System.out.println(A.CONST);
}
}
>>551 349はC言語時代の人かと思われ
途中で送信してしまった。レス番がなんかぐちゃぐちゃになってるけど気にしないで 定数インタフェイスの問題点はこれ interface A { public static final int CONST = 1; } public class B implements A { public static void main(String[] args){ System.out.println(A.CONST); 正しい使い方 System.out.println(B.CONST); //こんな使い方ができてしまう } } Effective Javaに載ってる問題点は載せなくてもいいよね みんな読んでるだろうから
>>552 その上から目線の妄想も凄いわ。1日待ってレスしないと気が済まないのかっていってるが
お前は毎日暇なのか?
常に自分が正しいってみとめないわけな?
俺は初心者向けのスレッドで良書Effective Javaを否定していることが問題視しているんだよ。
初心者がEffective Javaが使えない本だと勘違いすることね。
あれだけJavaのイディオムまとまった洗練された本はそうそうないものだ。
そこいらの鉄則本や落とし穴本と比べるとよくできている本だと思うんだが。
あの本には一見よさそうに見えてよくないコードの例も載せているしなあ。
単なるべからず集だと思ったら大間違い。
詭弁でEffective Javaに対する変なこと広めないでくれないかな。
C言語から来た奴がああいう本を否定する気持ちがわからないでもないけどさ。
ああいう本を読むと、コードも綺麗になってバグも減るものだろう。
昔の『Java謎+落とし穴徹底解明』、『Javaの落とし穴』、『Javaの格言』といった本と比べたら
全然内容が洗練されていると思うんだが。あそこいらの本はJavaのバージョンがちょっとでも上がると内容が古くなって
どうしようもないのが多くてな。Effective JavaもJava 5が登場してから版上げを迫られたが、それと比べると
他の落とし穴本は内容がもっと古すぎてな。あてにならないことはよくわかる。
で、お前さんは、コードが綺麗になると自分の仕事がなくなる奴にとっては否定したくなるもんなのかね?
ほら見ろ。
>>558 ちょっと長いけどだいたい同意
『Javaの落とし穴』、『Javaの格言』はたしかよんだことあるけど、これも悪くはないよ
まあアンチ?がつくのも良書かねぇ
Java関連で買ったやつはやさしいJava、EffectiveJavaとGOFデザインパターンかな
どれもいい感じだったよ やさしいJavaはさすがにもう読まないがw
なんか、詭弁の特徴のガイドラインを貼りつけたくなるなぁw 例:「定数インターフェイスははたして危険なものか」という議論をしている場合、あなたが 「犬は哺乳類としての条件を満たしている」と言ったのに対して否定論者が… 1:事実に対して仮定を持ち出す 「定数インターフェイスはアンチパターンだが、もしアンチパターンを作らない定数インターフェイスが存在したらどうだろうか?」 2:ごくまれな反例をとりあげる 「だが、時として定数インターフェイスのようなアンチパターンを使った方が良いこともある」 3:自分に有利な将来像を予想する 「何年か後、犬に羽が生えないという保証は誰にもできない」 4:主観で決め付ける 「初学者 (初心者はとりあえず越えたあたり) 〜中級手前あたりはべからず集をありがたがる。ちゃんと経験を積めば 『何故このケースではアンチパターンを使った方が良いか』個別に判断出来るようになるはずだ。」 5:資料を示さず自論が支持されていると思わせる 「初学者 (初心者はとりあえず越えたあたり) 〜中級手前あたりはべからず集をありがたがる傾向が一般的だ。」 「初学者〜中級手前あたりは、それを遵守して失敗しても自分のせいじゃないと心のどこかで言い訳できるからという見方が一般的だ」 6:一見関係ありそうで関係ない話を始める 「ところで、定数インタフェイスがよいアンチパターンだということは知っているか?」 7:陰謀であると力説する 「それは、べからず集と認めないと都合の悪いJoshua Blochが画策した陰謀だ」 8:知能障害を起こす 「何、定数インタフェイスとEffective Javaごときにマジになってやんの、バーカバーカ」
9:自分の見解を述べずに人格批判をする 「Effective Javaを薦める奴は、初学者〜中級手前あたりで失敗しても自分のせいじゃないと 心のどこかで言い訳している証拠。現実をみてみろよ」 10:ありえない解決策を図る 「結局、定数インタフェイスがアンチパターンにならなければ良いって事だよね」 11:レッテル貼りをする 「定数インタフェイスがアンチパターンだなんて過去の概念にしがみつく右翼はイタイね」 12:決着した話を経緯を無視して蒸し返す 「ところで、定数インタフェイスがどうやったらアンチパターンの条件をみたすんだ?」 13:勝利宣言をする 「定数インタフェイスがアンチパターンだという論はすでに何年も前に論破されてる事なのだが」 14:細かい部分のミスを指摘し相手を無知と認識させる 「定数インタフェイスって言っても使った方が良いケースとよくないケースがある。もっと勉強しろよ」 15:新しい概念が全て正しいのだとミスリードする 「定数インタフェイスがアンチパターンではないと認めない限りJavaに進歩はない」 「Effective Javaが初学者〜中級者向けの、設計をつっこまれたときに他人の言葉を借りないと言い訳できない奴専用の書籍だと 認めない限りお前らに進歩はない」
まだ続くのかよ。
醜いスレになったもんだな
>>560 『Javaの落とし穴』はJava5よりもずっと前の、Swingすら標準APIに組み込まれる前の
かなり古い本。とくにGUI関係は今ではほとんど参考にならないと思った方がいいぞ。
当時はかなり参考にはなったが。
『Java謎+落とし穴徹底解明』は著者が他の言語と比較してJavaを批判しひたすら愚痴をこぼしているだけの酷い本だった。
今となってはほとんど改善され対応策がいくらでもあるのでほとんど無価値な本に成り下がってしまった。
『Javaの格言』もちょっといまいちなところあったかな。当時はけっこう役に立った。
『Javaの鉄則』も、finalize()や序盤と例外処理の箇所は参考になった。今では類似した内容でIBMのdeveloper worksの記事のほうが
内容が新しくて役に立つが。『Javaの格言』と内容が似ていたな。
結城浩の『Java言語で学ぶデザインパターン』は始めはいいが、徐々に物足りなくなってくるブツだ。
あと『リファクタリング』『テスト駆動開発入門』。
YAGNIを崇拝するしているであろう>?349?はテスト駆動開発入門には否定的そうだが。
『リファクタリング』はかなり良書だ。結城浩が書いたリファクタリング本より内容が濃厚で参考になる。
定数インターフェースとかの話続けるならコテハンつけてほしい。NGするから 他の質問とか回答が探しにくくなる
>>566 そんな我侭言うな。検索しろよ。
自分でオリジナル正規表現作ってNG指定しろ。
>>349 が本当に上級者だと思って騙された奴は哀れだな
>>567 おまえ同様わかりきってる知識だから
いちいち書くなと
どっかブログにでも書き溜めて
URLだけ貼り付けろ
C言語から入ってオブジェクト指向をろくに知らない奴にはEffective Java
なんて本は嫉妬の対象なんだろ。
バリバリオブジェクト指向を使っているから
C言語時代に培われたテクニックが一切通用しない。
すると自分の立場が弱まる。だからそういう本やそういう本に載っているテクニックを
使っている者を否定したくなるんだろう。
まぁその典型が
>>349 みたいな。
いつまでこの話題続ける気だよ・・・・
>>349 がこのスレ見てるとは限らんだろ・・・定数インタフェのスレでも立ててそっちでやれよ
恨み言ならブログでやれ。
>>570 おいお前、「狭量」という言葉知ってるか?
いますぐ辞書で調べてみろ。
このスレにいる全員がお前と同じように知っているとは限らないぞ。
このスレは初心者がよく質問し、よく閲覧するスレだ。
お前だけのスレじゃねえんだ。静かにしろ。
>>574 >お前だけのスレじゃねえんだ。静かにしろ。
ブーメラン乙
>>572 >>349 が見なくても初心者は見てるからな。
初心者に勘違いさせてはならないからな。
Effective Javaの価値を貶めて初心者を騙す奴は許さん
577 :
デフォルトの名無しさん :2010/05/14(金) 03:28:29
キチガイが大車輪中wwwwwっwwwwwwwwwww
昔のこのスレはほとんどが学生や新人研修でJavaを教わるJava初心者しか来なかったと思う。 ところがここ5年ほどでアンチも流入してきたっぽい。 5年以上前まではアンチはほかのスレにいたのに、アンチが好んでいた言語の案件が減り、 Javaの案件が増えてから、Javaの仕事をやらされる羽目になって、習得したくないJavaを習得するために このスレを覗くようになったアンチもいるのではないかと思う。 ここ5年ほどの影響はそれかもしれない。
>>579 アンチなんてもっと前から居るだろ。
C# が出た頃の死滅スレ乱立時代がどんだけ凄まじかったか知らんのか。
なにこの惨状。
>>579 高級言語ひとつ知ってたら後は似たようなもんじゃん
新しい言語嫌なんて言ってる輩がこの奴隷業界で生き残れるとは思えん
仕事で心身ともに病んでしまった人がたまにスレで発狂してるんだよ多分
同情するぜ
病んでるな。このキチガイ振りと出現時間帯じゃ社会生活も上手く行ってないんだろうが。
悪口が上手なほうが優勢に見える。
>2010/05/14(金) 04:44:57 >出現時間帯 そこまで自己分析できてるなら上出来 夜ちゃんと寝付けたらカッカするのも治る あとは週末ゆっくりと心を休ませなさい
連日ミンスの連中相手にネット情報戦で常勝している俺は週末も寝る暇がないがな。
よっぽど信用できないコーダー相手にしてるんだろうなぁ。
589 :
デフォルトの名無しさん :2010/05/14(金) 11:54:13
>>576 >初心者
これを理由にするのおかしい
定数インターフェースだけこと丁寧に説明する理由にはならない
初心者を理由にするなら
他の質問等にも懇切丁寧に回答すべき
そもそも定数インターフェースを使ってるのが老害だけだというのなら
初心者には尚のこと関係ない
>>588 電波が過ぎて信用されなくなったが正しいと思われ。
ここどこ?
Javaの質問スレッドではないことだけは確かだね
こんなどうでも良いネタでよく鬼の首取ったように喜べるもんだ
鬼の首を取ったようとか、 小学生がいかにも最近覚えましたというような 言葉は使わないほうがいい
さあ、始まるザマスよ!
>>596 お前が究極変態バカ。トーラス状に脱肛してるぐらいバカ。
598 :
デフォルトの名無しさん :2010/05/14(金) 16:32:17
初心者どもがあ 質問しろよぉおおお
気狂いが荒らしてるスレに初心者が来るかよ
うるせえ30年ROMってろ
601 :
デフォルトの名無しさん :2010/05/14(金) 16:50:39
30年後もjavaはあるのだろうか
余裕で存在してるにきまってんだろ 30年後滅びるのはGroovy
603 :
デフォルトの名無しさん :2010/05/14(金) 17:15:07
30年後ってたしか 1900/1/1から8バイト符号付き整数でカウントしてるプログラムがおかしくなるんだっけ?
息をする暇もなさそうだなw
605 :
デフォルトの名無しさん :2010/05/14(金) 17:30:27
1ヶ月くらい前にJavaの入門書をブックオフで買ってきたんだけど どうやら10年前ほどの入門書らしい(だから100円とお安かったのかも) どうすればいい?
606 :
デフォルトの名無しさん :2010/05/14(金) 17:31:35
そりゃ中身見ないで100円安いじゃん買い!ってノリで買った自分が悪いんだけどさ
>>605 基礎的な部分はそこまで変わってないから読み進めるのもアリ。
だがそれで十分かというと、内容が古すぎるので十分ではない。
>>605 ブックオフで売るのもアリ
他の古書店で売ってもいい
最先端技術に関する書籍を古本で買うのが間違い
新規出版でも既に古いなんてことだってザラだっていう 目まぐるしく情報技術は進んでいるっていうのに
Java の何処が最先端だよ。6 が出たの何時だと思ってんだ。
まぁJavaはそうかも知れんが 一般的にIT関連の書籍買うなら最新のを買うべき
エフェ厨
EffectiveJavaを引き合いに出されるのが嫌い?な人がいるみたいだけど この本の内容以上にJavaを知り尽くしてる人ってこのスレにいるのかな? EffectiveJavaの○○の項は○○の理由によって適切でないと思う、とか そういう意見があるなら勉強になるから是非書き込んで欲しいんだけどなぁ
EffectiveJavaを所有してないので EffectiveJavaの話をされてもサッパリ意味不明です
今買って損は無いよ。 次のJavaのバージョンもたぶん来年〜再来年ぐらいに出るだろうから。
少なくとも今は持ってないので
プログラミング言語JavaとEffectiveJava買うならどっち? Java暦3ヶ月、プログラミング暦3年。Java極めたい。
両方
極めたいなら良書とされてるものは全部読む気で挑まんと
>>618 プログラミングをやる理由は?
1.職業プログラマー(仕事)
2.学生(授業・研究等)
3.趣味(サークル活動、同人活動等で二人以上で活動)
4.趣味(個人的活動)
そんな事きいてどうすんの?
特に意味はない
今のペースで5時間切り行けるん?
>
>>612 普通に考えて1じゃねーの?知らんけど
質問です。 よく、入門用のサンプルソースで try{ PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file))); ~何か処理をする~ }finally{ if(pw!=null) pw.close(); } とありますが、BufferedWriter,FileWriterが全てちゃんとclose()される保証はありますか? 失敗するとしたら、どんなケースでしょうか。 個人的には、何か怖いので、 try{ FileWriter fw = new FileWriter(file) BufferedWriter bw = new BufferedWriter(fw) PrintWriter pw = new PrintWriter(bw); ~何か処理をする~ }finally{ ~fw,bw,pwをそれぞれclose() } とした方が良いような気がするのですが、どうなのでしょうか。
javaやったことないからわからない
public class Test { public static void main(String[] arg) { Test t = new Test(); //←@ } } 入門書のサンプルソースとか見ると@のような記述を見かけます。 すごーく違和感があります。自分自身のインスタンスを作るのはなんで?
>>629 クラスメソッドがそのクラスのインスタンスを作るのは普通では?
シングルトンの実装とか。
サンプルのは Java が起動時に指定したクラスの main を呼ぶっていうお約束があるからだけどね。
おまえの下手くそな説明じゃ理解できないってよ
>>627 "何か処理をする"で System.exit() を呼んでしまうと、finallyは処理されない。
あとclose()に関してはPrintWriterとかBufferdWriterのソースのコンストラクタと
close()を見て「自分で確認」してみるといいよ。
>>627 if(pw != null) を評価しているあたりで OutOfMemory や ThreadDeath などが発生した場合。
最終的に OutputStream のファイナライザでクローズ処理はするから、そういう
実行環境的なレアケースはそれほど神経質になる必要はない。
>>629 staticメソッドでインスタンス生成する理由として
・より分かりやすい名前が付けられる
・インスタンスの数を制御したり、共用したりできる。
・mainメソッド
mainメソッドがエントリーポイントってのは、JavaがCからの
移行をターゲットにしたという事情で仕方ないかも。
public interface Executable {
void execute(String[] args);
}
とかの方がJavaの思想に近いかな
>>629 別にmainはTestクラスに記述しなくてもいい。
staticと非staticの世界は別だと思えばいい。
>>627 もしやるならpw -> bw -> fwの順番にクローズしてね。
>>629 少し語弊のある説明だが
static と付いているメソッドは Test クラスに属してはいるが Test インスタンスの一部ではない。
単に Test というクラスの中で定義場所を借りているだけの、C で言うなら関数。だから
この中で Test のインスタンスを作るのは普通に行われる。もう一つ、Test インスタンスの
中で別の Test インスタンスを作るのも取り立てておかしな事ではない。
多分クラスとインスタンスの違いをもう少し理解すれば分かると思う。
>>600 30年前にJavaは存在していなかった
30年前に2chは存在していなかった
そして2chはJavaよりも若い
>>605 そなたがもしC#を極めたものなら
即座にゴミ箱に放り込むべき
>>610 しかし、デザインパターン本は10年たってもそこそこ使える
古いのはサンプルコードだけ
>>615 Effective JavaはJava本ランキングで1位を長期間キープした人気書籍
超おすすめ。
スパゲティコード書いて他人に迷惑かけることしか考えていない末端コーダが
末端コーダから脱出するにはぜひとも必読すべき本。
>>618 前者は言語仕様についての本。内容をすべて把握すれば基本を完璧にマスターできるだろう。
読めば読むほどC#とJavaとの違いもわかってくるだろう。
後者はJavaの応用本。内包をすべて把握すればかなり多くの分野で応用が効くだろう。
C#,C++、Rubyなど他の言語でプログラミングするさいにも役立つ。
買うならなるべく最新の版のを買うこと。
Java5以前(2005年より前のは古いから買わないこと)
644 :
デフォルトの名無しさん :2010/05/15(土) 17:21:44
Java5以前の形式でプログラム作らなきゃいけない場合ってあるの?仕事とかで
官公庁の司法試験のサイトが 未だにJava1.1のJVMが必要っていうのがあったな
647 :
デフォルトの名無しさん :2010/05/15(土) 18:30:19
ってことは仕事人は古いJavaも知ってなきゃならないのか・・・大変だな
648 :
デフォルトの名無しさん :2010/05/15(土) 18:56:16
Javaの正規表現について質問です。 "nickname":"何らかのテキスト" という文字列から「何らかのテキスト」だけを抜き出す場合\"nickname\":\"([^\"]+)\"でいけるとおもうのですが、 何らかのテキストの中に"が含まれてしまう場合を想定すると、どのように正規表現を書けばよいでしょうか?
後方互換だから、新しいバージョン仕様知ってるんだったらそんなに大変でもないんじゃないかな… SwingじゃなくてAWT使わないと駄目、みたいなのはあると思うけど。
"nickname":"(.*)"
>>648 ^"nickname":"(.*)"$
じゃダメなの?
# $無くても基本最長一致だから問題ない
>>648 ()の中の[^\"]を外して最長一致とか、
"$で行末の"まで一致とか?
>>647 そんなに知る必要ないよ。
非推奨なAPIなんてセキュリティ上問題があるからパス。
>>647 信託銀行の仕事やってたが、下手に新しいのを知ってると混乱して大変。
そこはおととしまで1.3のシステムを騙し騙し使ってた。
ホイホイ変更なんかやってられっかっー話。
・・・んでどうして1.5にリプレースとかアホな決定したんだろ。もう関係ないが。
>>654 それは新しいAPIのことをよく知らないからだろう。
中途半端な知識では悪影響必至。
かといって古いままでいいとおもってると何時まで経ってもシガラミを引き継ぐ。
1.3って2000年ごろだろ。 これを古いシステムとかって平気で言っちゃうってことは、flashとかadobeとかで浮かれた髪の毛染めてるファッションに見たいな奴らがついにジャバの世界にも入ってきたってことだろうな。 そいう奴はジャバには来て欲しくないしMSやC#の方が断然いいよ。
1.5で結構変わったからなー
普通に変わったよ
正直1.4以前の現場が嬉しい人間なんてほとんどいないと思う。 Java=恐怖って考え方なら古いのがありがたいのはわかるけど。
>>644 iアプリ
仕事じゃないひとで1.4以下というとモバイル環境ぐらいしか思い浮かばない
1.5 1.6 それらの機能を使わないなら無理にアップ必要もない。 さすがに1.2のコレクションは使いたいとは思うけど、必要ならコレも自分で作れたり出来るしな・・・
>>656 おいおい、いまどき髪の毛染めてるのがファッションって
2000年頃じゃその後すぐに1.4が出始めたころだろ
2000年頃といえばSwingとServletが注目されていたころだな。
あの頃はWeb開発といえばCGI + PerlかASPが主流でServletの仕事は
登場したばかりでJavaエンジニアの募集も膨れていた頃。
あの頃がJavaの案件が増え始めた時期だな。1.4が出ても
すぐに導入するところはそうそう多くなかった。
1.4からassertがキーワードになってJUnitのassert()が使えなくなって一時的に困惑したのは2002年頃だった。
すでにHot Spotで高速化しているにもかかわらず2000年頃は「Java遅い」って文句言うアンチがまだまだ多かった時期。
>>661 Genelics、foreach、enum、static import、autoboxing、printf
annotation,java.awt.Desktop,java.util.Arrays,他 SWING/AWT
まあ使わなくてもできなくはないけど、慣れた今となってはつらいな
どっちみちflashやadobeで浮かれた奴にはJavaなんてほとんど理解できないもんだが。 PHPすらろくにできない。知ってるのはHTMLくらい。そもそもflashすらろくに使いこなせない。
いまどき髪の毛染めた奴に対する偏見を持ってるおっさんがいるとは。 そんなのを引き合いに出してMSやC#のほうがいいと言ってる奴は どこのおっさんだ?
アノテーションはないと困るわな。 Genericsとenumもないと困る。 すくなくとももう1.5より前に戻ることはできない。
私服で仕事ができる環境で茶髪や金髪に文句言ってC#の宣伝してるやつは どこの世界にいる人間だ?
ジャバに限ったことではないけど、1.4が出て枯れるまで2年ぐらいは普通はどこも導入しないんだけど、そういうのを知らないでいろいろ妄想してるんだろうな・・・
1.6の魅力はjavafx(とスクリプト言語)かなって思うけど、去年はサン本体が混乱してたから1.6よりも1.5の方が普及してしまった。
>>663 もよほどシステムに近いコアな機能(nioとか)じゃないから、なくてもいかなって感じはする。実際2−4行程度のコードだし。
例えばスクリプトサポートとか、invokedynamicとか、1.6じゃないとそのコア機能が使えないって言うなら1.6だろう。
そうじゃないなら別に1.4で言いと思うよ。さすがにnioは欲しい。
>>666 も確かに大事だからそれならjreも1.5で十分ともいえる。
netbeansによってファッションな奴らが大量に入ってきたけど、現在のジャバの得意分野はgui以外のところだからな・・・
javafxが少しまともになってきたからこれが上手くいくごとに全体がjre 1.6に移行するんじゃないかと思う。
いま業界ではadobe色の排除は凄いでしょ。
そいつらと話していても、IT系の記事書いてる奴の主張とか見ても分かるけど、少なくともファッションの奴らはスパゲッチー・コードだからシステム系を理解することは絶対無理。
>>656 Java 1.0 正式リリース前から使ってるけど普通に古いだろ。
地銀信金街金あたりだと都銀のお下がりシステム 20 年くらい使い廻される事も
あるけど、だからといって古くない訳じゃない。
>>670 invokedynamic って 1.7 からじゃね?
>>668 うちでは即座に導入していたけどな。
5.0のときはEclipseが完全に対応していなかったのでそうはいかなkったが。
>>670 > netbeansによってファッションな奴らが大量に入ってきたけど、現在のジャバの得意分野はgui以外のところだからな・・・
ソースくれ。ファッションな奴ってのが単なるウェブデザイナーとか言わないよな?
Java Studio Creatorが出た頃、JavaのことをろくにわかってないHTMLしかしらない、Dreamweaverしか使えない30代後半のオバサンが
嬉しそうにJava Studio Creatorに期待していたが結局使わずじまいだったな。HTMLしか知らないのが
いきなりJavaに手をだしても挫折するだけってことを証明してしまった。あのIDEは当時重たかったしな。
奴らの世界では、"コーディング"といえば「HTMLを書く」ことだからな。
そして未だにCGIがどうこうといってる。他LAMPとはどういうものかという概要くらいしか知らない知ったかぶり程度。
Webデザインの知識があってもソフトウェアデザインの知識はゼロ。
> javafxが少しまともになってきたからこれが上手くいくごとに全体がjre 1.6に移行するんじゃないかと思う。
> いま業界ではadobe色の排除は凄いでしょ。
> そいつらと話していても、IT系の記事書いてる奴の主張とか見ても分かるけど、少なくともファッションの奴らはスパゲッチー・コードだからシステム系を理解することは絶対無理。
ああいうのは、スパゲティすら書けないぞ。Webデザイナーの中にはFlashすら使いこなせる奴もごく小数で、ActionScriptとくればさらに小数。
1.7が出るころになって1.6の目玉の1つだったスクリプト・サポート(とくにjavafx)が業界の要求する水準に達して、やっと1.6が普及し出すってことだろう。 並列とかももっと普及しても言いかなって思うけど並列を使うような人は少ないんだろうかと思うけど。 それよか、ログとテキストとコンソールはもう見飽きたからgui(javafx)の方に資源を投資してジャバ・グーイを整備してくれたほうがうれしい。それだとやっぱり1.6か。
専業分業でやればいいよ。フロントからバックエンドまで、深さより広さのスキルが 必要なのって零細だけだろ。
というか主要なアプリケーションサーバで 1.6 に追いついていないのなんてあるか? 新規開発なら大抵 1.6 だろ。ミドルウェア環境最新にしとかないとサポートがゴネるからな。
>>674 え?
flashの業界ってそんなに酷いの?
それならもう、髪の毛染めてるんじゃなくて、髪の毛が北斗になってる奴らか・・・
1.4のころの北斗は、携帯アプリで無償労働されてる派遣(年収210万)か日雇いニート(日払い5000円交通費無し)だったけど・・・あのときの北斗たちは今頃どうしてるんだろう・・・
679 :
デフォルトの名無しさん :2010/05/15(土) 22:59:05
標準偏差ってJavaでどうやって求める?
>>677 システム設計ってのは、jreのリリースのたびにそのシステムも一緒にアップデートするものだと思うか?
>>680 ミドルウェアと一緒にアップデートするだろ。
サポート終わった環境いつまでも使ってんならご愁傷様。
北斗www
>>680 普通に FIX プランに乗ってくるが?
自己責任オープンソースでも使ってんの?
686 :
679 :2010/05/15(土) 23:25:26
>>686 ひょっとしたら、お前の質問に答えるために必要な情報だったんじゃね?w
そのくらい答えてやればいいのに。
>>674 javascriptは実際は言語仕様と少数のライブラリーだけで普通の人には扱えないから何ともいえない。
ただjavascriptを大して知らなくてもjava以上のguiができるとなるとjavafxはまだまだかなって思う。
flashやjavafxのデザイナー・エディタを見てると、少なくともideとswingでポトペタはもう時代遅れになるのかもしれない・・・(HTMLはポトペタのエディタって普通無いでしょ)
689 :
デフォルトの名無しさん :2010/05/15(土) 23:48:45
>>679 Math#powとかMath#sqrtとかつかって普通に求めればいいんじゃね?答えになっているか?
それとも「コード書けないから誰か書いてくれ。」とか、「ぐぐってまさにコレって内容を教えてくれ。」ってこと?
なんかムダに熱いなお前ら
>>679 宿題なら宿題スレにいったほうがいい
数学とか統計学で使うような標準偏差を求める式とか知ってるの?
あなたはどの程度Javaが分かるの?
この程度だったらjavaというよりただのアルゴリズムだから算数の問題だよね
694 :
デフォルトの名無しさん :2010/05/16(日) 00:26:42
Σが登場するから算数じゃないな
高校数学なんて算数みたいなもんだろ
エリートだな 文系の俺には分からん
中学生〜高2ぐらいじゃねーの 大学生にもなって以下略
698 :
デフォルトの名無しさん :2010/05/16(日) 01:36:14
標準偏差って 学校の成績や大学入試とかのと 一般的な統計学のとじゃ 意味違ったような気がしたけど
偏差値のこと言ってるのか? 標準偏差とは名前からして違うものだ
>>701 学力偏差値が標準偏差と
無関係であるかのような言い回しだったから
学力偏差値にリンクしたんだが
間違いだと思う?
>>702 >学力偏差値が標準偏差と
>無関係であるかのような言い回しだったから
う〜ん・・・そう読めるのか?
俺は単純に
>>698 は言葉の定義を理解してないものだと感じたんだが
質問主がいないからな 意味無い議論
javaには統計の関数みたいなの無かったんだっけ?
次のコードがあります package com.se.myapp; public class Test { 省略 } Testクラスが/usr/com/se/myappの直下に配置されています。 環境変数classpathはカレント( . )が設定されています。 実行方法として正しいのはどれ? という問題があります。 選択肢の中に /usr/com/se/myappディレクトリの場所で、java Testを実行 というのがあるのですが、ハズレ選択肢でした。 packageが階層設定されている場合、親ディレクトリの場所でないと実行出来ないの?
>>707 Mathmaticaの領域じゃね?
非標準ライブラリはいくらでもある
>>708 クラスパスが「.」であるなら
/usr/ で java com.se.myapp.Test と実行しないとダメ。
クラスパスに /usr/ を追加するか、あるいは
java -cp /usr/ com.se.myapp.Test でもよい。
Test クラスがパッケージに含まれているなら、
クラスパスやカレントディレクトリの位置に関わらず
java Test では実行できない。
>>678 単なるウェブデザイナーの世界な。
HTMLとDTPだけ知っててFlashを使いこなせない奴なんてそこら中にうじゃうじゃいる
>>679 どうみてもJavaとは直接関係ない話だな
統計学の本でも読めば答えが書いてあるだろうに
>>688 Webデザイナ厨が使うJavaScriptなんてコピペ。
Ajaxも適当に使いこなすことしかできない。
そこいらのAjax本買って真似るレベル。
JScriptとJavaScriptとActionScriptとの区別もつかないような馬鹿ばかり。
715 :
デフォルトの名無しさん :2010/05/16(日) 14:06:34
>>689 平均値との差を2乗するんじゃなかったっけ?
>>715 V[X] = Σ(x-E[X])^2 / n = E[X^2] - (E[X])^2
一発で解決だね、はあ・・・
JavaScript と Flash で愚痴こぼしてるバカはスレタイ100回見直して首吊れよ。
>>717 不偏推定量が要求されているのかどうかを使用者が理解していないと解決しない。
単に「分散」という単語だけだと解釈しかねる。
>>621 なんか遅くなったけどごめん。
4の趣味だよ。
普段は職業プログラマ(まだ1年くらい)でPHP, JavaScriptを扱ってるけど
Javaはどうしても作りたいものがあるので始めた。
少しばかり大規模なもの。
>>643 この場合だと前者のほうが良さそうだね。
Java始めたばかりだし、もうすこし理解が必要かもしれない。
Effectiveは応用ということだけど、大抵はPHPのような
他の言語で得てきたようなことが書かれてるのかな?
それともJava言語としての応用がメイン?
Java独自のことが書かれているなら絶対に持っておいたほうが良さそうだけど。
722 :
デフォルトの名無しさん :2010/05/16(日) 16:22:41
723 :
デフォルトの名無しさん :2010/05/16(日) 16:55:07
>>694 1 + 2 + 3 +.....は十分に算数だと思うぞ。
728 :
デフォルトの名無しさん :2010/05/16(日) 18:30:51
優越感に浸りたかっただけだろ 言わせんな恥ずかしい
>>722 http://commons.apache.org/math/api-2.1/src-html/org/apache/commons/math/stat/descriptive/moment/StandardDeviation.html#line.40 そのJavadocでクラス名をクリックするとソースコードが見える。
これによると中で分散を平方していることが分かる。
136 /**
137 * Returns the Standard Deviation of the entries in the input array, or
138 * <code>Double.NaN</code> if the array is empty.
139 * <p>
140 * Returns 0 for a single-value (i.e. length = 1) sample.</p>
141 * <p>
142 * Throws <code>IllegalArgumentException</code> if the array is null.</p>
143 * <p>
144 * Does not change the internal state of the statistic.</p>
145 *
146 * @param values the input array
147 * @return the standard deviation of the values or Double.NaN if length = 0
148 * @throws IllegalArgumentException if the array is null
149 */
150 @Override
151 public double evaluate(final double[] values) {
152 return Math.sqrt(variance.evaluate(values));
153 }
>>694 高校生までに教わる数学は実質算数とかわらない。
応用数学と呼ばれることもあるが、数学者が言う数学とは異なるものである。
数学者が言う数学は、数論や暗号理論等で扱う純粋数学。
工学、経済学、ビジネスでよく使われる数学はほとんどが、統計学、数値解析などを含む応用数学。
>>721 大規模めざすならEffective JavaはTipsを読む程度に役に立つ。
初心者がJava言語仕様を読むケースなんて大学でJavaを教わるときくらい。
読めば正しい知識が身につき、Java認定試験でも役立つかもしれないが、実践で即座に役立つとは限らない。
しかも分厚くて内容が濃すぎてJavaを習得するまでに少々の時間を要することになる。
何にか作りたいものがあるなら無理せず初心者向けJava本でも読んだほうがおすすめ。
>>723 JavaとJavaScriptは違う。
JavaScriptはWebProg板で扱っている。
WebProg
http://pc11.2ch.net/php/
つうか、標準偏差って二種類あるから
C++屋で大学で教わってるわけでも無いJava初心者は何を読んだらいいの? とりあえず「Effective Java」から入ったけど、失敗だったか orz その後「パーフェクトJava」読んだけど、確かに逆のほうが良かった気がする。
C++屋だったら、JavaのAPIのドキュメントの lang, util, io 付近を全部読めばプログラムくらい書けるんじゃないかな?
>>734 本当に初心者なら結城さんのプログラミングレッスンをオススメしたいが、
C++ちゃんと知ってるんだったらプログラミング言語Java読むのが一番いいよ。
他の本とは比較にならないくらい詳細に書かれてるから一気に深く分かるよ。
もちろん Effective Java を読むためのバックグラウンドも十分身につく。
>>731 とはいうけどコンピュータは数学じゃなくて算数だと思うよ。
C++やってるならGUI以外は楽勝のはず。ちょびっと悩むとしたらio周り? Javaが出た当時、io周りのアイデアは画期的と思った。 元ネタは何かあるのかな。
740 :
734 :2010/05/16(日) 19:44:38
>>735 そんな風に考えていた時期が俺にもありました。
Android の入門書3冊くらい読んで、さあプログラム作るぞ〜、と思ったら、書けないの。
言語仕様や文化や定石は、あるていど身につけてないとね。
>>736 原典に当たるべきだよね、とは思うんだけど、あの本分厚いしw
アマゾンの書評、第3版と第4版でえらくわかれてるのはなんでだろう。
「Effective Java」読む限り、柴田 芳樹さんの訳は読みやすいと思うんだけど。
>>734 C++屋ならEccective C++読んでるだろ
>>739 とはいうけどC++でprintfを使ってるやつは多い。
>>740 お前本当にC++屋?
ただのC言語屋じゃねえの?
代替手段に MessageFormat あったからそれほど悩まなかったなぁ。 1.5で更にString#formatとかPrintWriter#printfとか追加されたし。
○○屋って言い方は痛いよ。
「おれC++できるぜ! すごいだろ!」 実際にやらせてみると実はCしかできなかったというマニフェスト詐欺師が 実はC言語厨には多い。 C++できると称して実は、メソッドがすべてstaticだったり クラスをろくに作れなかったりデザインパターンをろくに知らなかったり ということはよくある話。
>>740 Android は Activity の仕様を把握するしかないけど、あれも、サンプルプログラムだけで
なんとかならないだろうか?
Java は例外処理とかイベント処理とかの手法が既に提供されているところが
C++ と違うとは思うけど。
748 :
679 :2010/05/16(日) 20:34:31
128bitの浮動小数(quad)はいつcpuに組み込まれるんだろう・・・
Stringの配列を for(String str : hoge) みたいな、ジェネリクス使ってループさせるやり方教えてください。
>>751 for(String str : new String[]{"a", "b", "c"})
質問はもっと具体的に書くこと。
for(String str : hoge)とジェネリックスはベツモノだから言ってる意味がわからないがArrayList使えばいいんじゃね?
754 :
751 :2010/05/16(日) 22:44:16
>>752 >>753 申し訳ありません。
List<String> ar = new ArrayList<String>();
ar.add("1");
ar.add("2");
for (String str : ar) {
System.out.println(str);
}
こんな感じで、
String[] strList = new String[5];
strList[0] = "str0";
strList[1] = "str1";
for (int count = 0; count < strList.length; count++) {
System.out.println(strList[count]);
}
↑ こうではなく
for ( String str : strList ) {
System.out.println(str);
}
こんな感じで出来ないかなぁと思ったわけです。
>>754 出来ますよ。
そのまんまでいいからコンパイルしてみたら?
>>753 拡張for文とジェネリクスは無関係ではないと思うけど。
Iterable<T> に対して使うものでしょ。
>>749 それもApache Commons Mathにあるんだよな。
Fraction型とかRational型とか
ある文字列で、後ろから2つ目の文字を検索するにはどのようにすればよいでしょうか。 lastIndexOfメソッドで、後ろから1つ目は簡単に探せるようなのですが。。
>>757 同じようですけどジャバ的にどう違うんですか?
伸びたな
windowsでJavaプログラミングをしてるんですが、 ソースコードの文字コードをUTF-8にして保存したらエラーが出るようになったんですが、なんでですか? >> 警告:この文字は、エンコーディング MS932 にマップできません。 というエラーが出ます。 Javaの内部コードはユニコードじゃないんですか?
素人の初心者の俺がその質問に答えます 「それはどこで発生したエラーですか?」
>>761 Javaの内部の文字符号化コードはUTF-16。
でもソースコードは別にどの文字コード使ってもいい。
エラーによるとShift_JISが使われる想定なのにUTF-8が来てしまったということだね。
javacで-encodingスイッチ指定できるからそれでUTF-8指定すればいいと思われ。
>>763 おお、できました。
ありがとうございます。
765 :
762 :2010/05/17(月) 01:52:41
フッ 俺への礼なら要らないぜ
767 :
762 :2010/05/17(月) 02:12:44
お前らもう寝ろよw
とっくに寝てるがな
夢遊病?こわっ
早起きだね
>>759 わるいが
よくみりゃRational型なんぞなかった
RealMatrixのReal
BigRealのRealと間違えていたようだ
たしかにBigDecimalはいまいち使いにくいよな。 extendsもできるけど何のためにあるんだろう・・・
Number インターフェースに四則演算メソッド付けて構文レベルでのシンタックスシュガーが あっても良かったかもしれない。アンチ operator 厨が文句いうかも知れないが。 あと BigDecimal や Date のようなプリミティブに近いデータ型は全て final で immutable な 設計にして欲しかった。
BigDecimalは十分にimmutableのようだけど・・・
finalにしないってことは それつかって派生クラスを作る可能性があるってこと?
サブクラスがMutableになりうるのでMutableだと仮定できない。 まあ、仮定しちゃっていいと思うけど。
×Mutableだと仮定できない。 ○Immutableだと仮定できない。
スーパークラスにサブクラスは代入出来ますが、どのような場面で使用されるのでしょうか? サブにはスーパーのメソッドなどは引き継がれているから無意味だと思うのですが。 (極端なサンプルソース) Object o1; Test t1 = new Test(); o1 = t1; //←ここ
>>773 メソッドの追加やスケール、MathContext(制度、丸めモード)の設定を修正できるようにするためでない?
現状、スケールがint型で、内部はString[]で処理しているからなああれ。
>>774 それやるならNumber型限定で。
行列やベクトルなどに対しても同じことできればいいけど標準APIには
いまのところMatrix型がないからな。
2つのdouble[]型で同じインデックスどうしの要素どうし加減乗除できる演算子もあれば便利かもしれないが
>>779 (極端なサンプルソース)
String hogehoge(Object o){
return o.toString();
}
とか、ポリモーフィズムが生きている。
>>780 内部でString[]というのはどういうこと?
BigIntegerだからていは2でしょ?
public class Parent { private String parentId; @Override public String toString() { // 文字列化 } } public class Child extends Parent { private String childId; } class Child extends Parentの関係があるとして、 ParentでtoString()をオーバーライドして、フィールド情報を出力したいと思っています。 実際に扱われるのはChildの方なのですが、ChildをtoString()してもParentの情報が出せなくて困っています。 ソース上は、オーバーライドしているParent#toString()にて getClass().getDeclaredFields()でフィールド一覧を取得して、 ApacheのBeanUtilのPropertyUtilを使用して文字列を出力しています。 ですが、APIを読むとClass#getDeclaredFieldsもgetFieldsも継承元のフィールド情報は取ってくれないみたいです。 上記の例ですとchildIdは出力できるのですが、parentIdが取れないということです。 こうした場合、どのような手法を使って実現するのがいいのでしょうか?
>>783 Class を引数にとってフィールド文字列を生成する static メソッドを別に作り、
Parent#toString() から Parent.class を明示的に指定して呼ぶ。
クラス構造の上から下まで遡りたい場合は Parent#toString() 内で
this.getClass() から順繰りにスーパークラス拾って実行。
>>786 Childを継承したサブクラスができたら死ぬしかないってことだろ
言わせんな恥ずかしい
意味不明だし、どう見てもよく読まずに 「super.toString() 呼べ」 って言ってるようにしか見えない。 本当の意味で恥ずかしい。
javaをインストールしようとすると(選択した機能は現在使用できないネットワークリソースにあります。) とかでてokおしても先に進まないんですけどどうしたらインストールでかこますか? 下に代替パスがなんちゃらとかもでてますがさっぱりです
ジャバなんかよりも Microsoft .Net 戦略とその具体化 C# に素直に従った方が断然いいですよ。
>>789 ファイル壊れてんじゃね? もっかいダウンロードしてみたら?
792 :
783 :2010/05/17(月) 23:05:16
ごめんなさい
何回もダウンロードして古いバージョンもダウンロードしてインストールしましたけど同じくでした
あなたを救ってくれるのはもう Microsoft しかないですね。
>>789 たぶん自分と症状だな
おそらくWindowsフォルダのどこかにあるmsiファイル消したんだと思う
Javaじゃなくてインストーラー全般の問題だと思う
796 :
751 :2010/05/17(月) 23:22:02
>>755 妙な質問をして申し訳ありませんでした。
↓これで希望どうりの動作をしました。
String[] strList = new String[5];
strList[0] = "str0";
strList[1] = "str1";
strList[2] = "str2";
strList[3] = "str3";
strList[4] = "str4";
for (String str : strList) {
System.out.println(str);
}
>>753 >for(String str : hoge)とジェネリックスはベツモノだから言ってる意味がわからないがArrayList使えばいいんじゃね?
ジェネリクスはArrayListみたいな可変配列の要素に特定のクラスを格納することを強制することが出来る。
だから、ループで回すときにキャストが不要になる。
「for(String str : hoge)とジェネリックスはベツモノ」
つまり、配列の個数はジェネリクスとは関係なく取得できるから、ループの回数とジェネリクスは直接的な関係はない、
ということであっているでしょうか?
>>795 ほかのソフトはインストールできたんですけど、どうやったら直せますか?
>>797 msiの話ならさすがにスレチ
ggれば死ぬほど情報出てくる
まあ、 Microsoft とったら Excel ですからね。しようがないですよ。
>>798 他のソフトはインストールできるんですけどこれはmsiってやつが問題じゃなさそうなんですが
スレタイを読み直すか、JExcelApiの話に移ってもらおうか
__ , ‐' ´ ``‐、 / ̄:三} . /,. -─‐- 、. ヽ / ,.=j _,.:_'______ヽ、 .! ./ _,ノ `‐、{ へ '゙⌒ `!~ヽ. ! /{. / `! し゚ ( ゚j `v‐冫 , '::::::::ヽ、/ そんなモノよりPOIにしようぜ! . {.l '⌒ ゙ 6',! / :::::::::::::::/ __ . 〈 < ´ ̄,フ .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、 . ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠. ヽ_} ゙ヽ ,.r` "´ /:::::::::::::::::::ィ´ `ゝ !、 / / / :::::::::::::::: ; '´ /´\ / r'\ . i ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、 { {:::::::::::;:イ / ‖i:::::::/:::::::::::::/ \ . ヽ ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: /
POIとかジャカルタとか定番ライブラリの簡単な使い方のHPないですか? 仕事でよく使ってるとか自分が得意なライブラリとかで、チップ・メモ程度のところじゃなくてもう少し体系だってまとめてるところです。 wikiは解説をするようなサイトとじゃないし、ジャバのようなライブラリ指向だと正直多すぎて多くてよく分からんとです・・・
java media framework とか使い方を紹介したサイトがなかったからまったく流行らなかったよな。 javafxなんかもその二の舞なんだろうか。
JavaFX なんて既に勝てる見込みなし。やる気もなし。
勝負の土俵にすら上がれてない
どうしてだろう・・・
>>806 ,807
そうなんですか。
やっぱりマイクロソフトとアドビに従順に従っていたほうが幸せになれるんですね。
ならジャバなんか入門本なんかを何冊も読んで無理してやらなくてもいいんじゃないかな・・・?
ggrks
確かにククレカレーは美味しい
>>800 msi に問題が無くて良かったね。インストールおめでとう。
>>782 すまんが間違えた。
内部ではint[]で保持していた。
>>789 >>795 >>797-798 >>800 昔似たような経験をしたことがある。
msiファイルを消したのではなく、msiファイルを使った他のインストーラーによる
インストールを中途半端に終わらせたときに発生する。
他のインストーラーのインストールが途中なら、もう一度それを実行して完全に終わらせるか
完全にキャンセルさせるかインストーラーメニューから出る修復、サインインストールを実行する。
するとうまくいった。
>>802 POIといっても通じない可能性があるぞ。ポイ捨てと勘違いされるんじゃないのか?
http://poi.apache.org/ Apache POI
http://ja.wikipedia.org/wiki/Apache_POI POIという名称は、Microsoft Officeのファイル形式をリバースエンジニアリングした際、その形式が意図的に、
しかも中途半端に分かりにくくされていたため、
皮肉を込めて "Poor Obfuscation Implementation" (中途半端に曖昧な実装) と呼んだものの頭字語に端を発している。
このようにユーモラスな正式名称を当てはめる方法はかつていろいろなサブプロジェクトに見られたが、
ユーモアを不適切と捉えるビジネス界への進出を意識し、公式ウェブページからは削除されている。
もうひとつの由来は、ハワイの珍味Poiから来た。
ハワイ人がこれを食べ続けると巨人になるとも言われている。
>>803 おい、まずHPという言葉を使うのやめろ。HPといえばヒューレット・パッカードのことだ。
それにウェブサイトのことをホームページとかHPと呼ぶな。
それにWikipediaとWikiを一緒にするな。Wikipediaは解説をするようなサイトではないが
Wikipediaの姉妹プロジェクトWikibooksは解説をするようなサイトだ。
他にも、同じWikipediaの創設者ジミー・ウェールズが作ったWikiaという、
そこいらにある@Wikiやwikiwikiやwikihouseに類似したサービスがある。そこにApacheのWikiがあればそれを閲覧、
それがなければWikiaの英語版を探す、それでもなければWikiaに新しいApache Wikiを作る。
というくらいのことをしろ。
そもそもApacheにはすでにWikiが用意されているわけだが。
http://wiki.apache.org/
>>809 はたしてそれはどうかな。
それらの主張はアンチによる意見。
このスレにはいまだにM$を崇拝しC#を押し付けるアンチが常駐していることをお忘れなく。
雑学だけは人一倍ガンバッテマスから
>>809 あれ嫌いこれ無理なんて言ってるのは素質が無い(プログラマ向いてない)人
比較的良く使われている言語については最低入門レベル程度まで勉強した方がいい
一つの言語に偏ったら転職したりプロジェクト変わったりすると慌てる事になるよ
>>818 みたいな人にはまだまだ頑張ってWikipediaをWikiと略す厨房を叩いてほしい
雑学だけじゃなくてIT知識だって人一倍ガンバッテマスよ
>>820 そんなに意地張ったりしないでそろそろマイクロソフトに降伏したらどうですか?
javafxなんかよりもアドビの方が断然いいんですよね・・・
>>817 他のソフトがインストール途中ってそれどうやったら確認できます?
簡単に確認できるよ。
>>821 嫌われたら嫌い返せばよい
それだけのことだ
バカの発言を恐れたらそれで終わり
>>824 叩くのではない
間違いを正すのだ
>>813 は明らかにwikiとwikipediaに対するミスリードを行っていた。
>>826 お前は数年前に死滅スレで暴れていたMS厨房の餓鬼みたいだな
Adobeなんかほとんど使わないだろ
個人で買う奴もそうそういない
芸術家やデザイナーでもなきゃ誰も買わない
大規模開発には不向き
>>827 なんでもいいからmsiをダブルクリック
するとメッセージがでる
そのメッセージをよめばわかる
>>818 顔真っ赤にして何やってんの?w
おまえ真性馬鹿だろ(笑)
サンクスです やっぱり解決方がみつかりません 同じ症状になって解決した人がいたらアドバイスください
839 :
783 :2010/05/18(火) 22:30:29
以下の方法で可能でした、ありがとうございました。 // 継承元の情報も出力する Class<?> clazz = this.getClass().getSuperclass(); while (true) { if (Object.class == clazz) break; Field[] fields_ = clazz.getDeclaredFields(); for (int i = 0; i < fields.length; i++) { if (fields.length > 0) buf.append(", "); String fieldName = fields_[i].getName(); buf.append(fieldName).append("="); try { buf.append(PropertyUtils.getSimpleProperty(this, fieldName).toString()); } catch (IllegalAccessException e) { buf.append("IllegalAccessException !!"); } catch (InvocationTargetException e) { buf.append("InvocationTargetException !!"); } catch (NoSuchMethodException e) { buf.append("NoSuchMethodException !!"); } catch (NullPointerException e) { buf.append("null"); } } clazz = clazz.getSuperclass(); }
>>818 おい、まずHPという言葉を使うのやめろ。HPといえばホームページのことだ。
それにヒューレットパッカードのことをHPと呼ぶな。
全くだ HPじゃなくてhpだしな
>>841 あ〜
雑学君だったから黙ってたのに・・・
それ言っちゃ駄目だよ
843 :
783 :2010/05/18(火) 23:03:07
誤 if (fields.length > 0) buf.append(", ");
正 if (i > 0) buf.append(", ");
完成した部分から切り取ってきたので、もしかしたら他にもおかしな箇所があるかもしれませんが・・・
アイディアを下さった
>>785 、他、ありがとうございました。
844 :
デフォルトの名無しさん :2010/05/18(火) 23:07:11
____ / \ /\ キリッ / (ー) (ー)\ / ⌒(__人__)⌒ \ | |r┬-| | ウェッブサイトのことをホームページとかHPと呼ぶな \ `ー'´ / ノ \ /´ ヽ | l \ ヽ -一''''''"~~``'ー--、 -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒)) ____ /_ノ ヽ、_ \ ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ /⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒) | / / / |r┬-| | (⌒)/ / / // だっておwwwwwwwww | :::::::::::(⌒) | | | / ゝ:::::::::::/ | ノ | | | \ / ) / ヽ / `ー'´ ヽ / / バ | | l||l 从人 l||l l||l 从人 l||l バ ン ヽ -一''''''"~~``'ー--、 -一'''''''ー-、 ン ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
jmfはsunのページで十分。 あれだけ詳しく書いてあるのにほかに何が必要なのか
> WikipediaとWikiを一緒にするな 携帯電話を「携帯」と略さない人だけが許される主張だね
JavascriptをJavaと略す人は許されますか!?!?!?!?!?
>>831 私は芸術家じゃありませんけどコカコーラをよく買います
このプログラムがなぜ System.out.println(j.getValue()); で 5 ではなく 4 が出力されるのか理解できません、どなたかお願いします class ArgTest2 { void run() { int i = 1; myInt j = new myInt(2); iMod(i); jMod(j); System.out.println(i); System.out.println(j.getValue()); } void iMod(int val) { val = 3;} void jMod(myInt val) { val.setValue(4); val = new myInt(5); } public static void main(String[] args) { ArgTest2 app = new ArgTest2(); app.run(); } } class myInt { private int i; myInt(int val) {i = val;} void setValue(int val) {i = val;} int getValue() {return i;} }
>>851 ちゃんとおしえてやれよww
>>850 簡単にいうと参照を値渡ししてるから4になるんだ。
パラメータで渡されたオブジェクト型は、
渡し先でnewなどをして参照先を切り替えると、
呼び出し元では切り替えたはずの参照先は取得できず、
古い情報への参照を保持し続ける。
>>851 それじゃ足りてねえだろww
854 :
852 :2010/05/19(水) 00:53:26
そう?参照を値渡ししてるって情報だけで十分だと思うけど。
たしかに、
>>853 の説明は丁寧だとは思うよ。
引数としてもらった参照に、別の参照を(←newしたもの)代入している。
そしたら元々引数としてもらった参照の先の変数は変化しない。
って理屈だから、足りてないという認識はないなぁ。
5が出るはずなのに4が出る
├
>>851 そりゃ4をセットしたからだ ← 4が出る原因のみを提示
├
>>852 値が参照渡しだからだよ ← 原因の概要を提示
├
>>853 5が出ると思っている原因を推測 ← 原因の具体箇所を提示
└
>>854 騙り
>>851-854 なるほど、恥ずかしながら初めて知りました
みなさんご丁寧にありがとう!
HP=ヒューレット・パッカードであって読む方はまず最初はホームページとは読まない Wiki=ウィキであってウィキペディアでは無い あながち間違ってないと思うおw ちゃんと社会に出て働いていればの話だけどw
社会に出てれば両方の可能性を考えて文脈からどちらか判断する。 それができないならよほどコミュニケーション能力に欠けてる。
ただドキュメントにHPなんて書いたら修正させるけどね
862 :
デフォルトの名無しさん :2010/05/19(水) 11:11:33
グラマースレでどうぞ。
芸術家乙
>>835 >>837 >>840 >>844 お前
>>803 本人か?
図星か
一連の流れをみるとお前のほうが顔真っ赤にしてるように見えるんだが
>>841 hpはヒューレット・パッカードのロゴ。「HP」と書いて解説している書籍やサイトも
いくらか存在するわけだが
>>847 それは誤解をうけなければ問題ないんだが。
>>803 の言い方は明らかに誤解を招くもの。
バカが読めばウェブサイトのことをホームページとかHPと書いても
かまわないと思い込み、Wikipediaのことを他のWikiとの区別も意識せず
Wikiと読んでもかまわないと思い込む。
バカが第二のバカ、第三のバカを量産する。
こういうときは、これ以上誤解やこじれを減らすためにできるかぎり早めに指摘しておくべきことだ。
間違った言葉が当たり前のように使われる前にな。
>>860 この場合、質問者としてコミュニケーション能力に欠けているのは
>>803 のほうだな。
クラッカーやコンピューター犯罪者のことをハッカー同一視する無礼な輩や
ハンドルのことをハンドルネームとかHNとほざく輩のように相手に不快感を与えている。
アフォウヨが出たぞー
>>865 ハズレ
hp・HPの違いは気付たので840に入れなかった
>>803 の言いたいことはwiki・wikipedia・blog・ホームページだろうがどうでもいい
Apache POIとcommonsが体系だってまとめてあればいいこと blogじゃあ難しいだろうけどね
>>866 いいからお前は巣に帰れ
で、その「アフォウヨ」って何だ?
朝鮮語か?
こういうやつじゃね?
ある人物がネットで民主党を批判したら
>>866 みたいなバカが
ネトウヨのレッテルを張った。
ところが、まさかの朝日新聞がそのある人物とまったく同じ主張で民主党を批判した。
「朝日新聞はネトウヨ」
そして、ネトウヨ連呼厨の論理的矛盾から次々と「〜はネトウヨ」というパターンがいくつも生まれていった。
「Javaプログラマーはネトウヨ」
「オバマはネトウヨ」
「TBSはネトウヨ」
「共産党はネトウヨ」
「中国はネトウヨ」
それをこう置き換えたというやつじゃね?
「朝日新聞はアフォウヨ」
「Javaプログラマーはアフォウヨ」
「オバマはアフォウヨ」
「TBSはアフォウヨ」
「共産党はアフォウヨ」
「中国はアフォウヨ」
何だこの臭ぇ奴。
ここはどこ?
Javaの質問スレッドじゃないことだけは確か。
反論できなくなるとこうなるのか 支那キムチは
おまいが来てると必ずこういう展開だな。
海外のプログラマの質って日本と比べてどうなんだろうな
プログラマ板で語れ だが中韓の評判で良い話は聞いたことが無い
お前が特亜に行けよ池沼
サーブレットの入門書で良いものありますか
>>879 10日でおぼえる JSP/サーブレット入門教室
>>880 勉強になりました。ありがとうございます
君はジャバに向いてないだろうな
それはおまえが決める事じゃないな
884 :
デフォルトの名無しさん :2010/05/19(水) 23:33:48
>>818 ____
/ \ /\ キリッ
/ (ー) (ー)\
/ ⌒(__人__)⌒ \
| |r┬-| | ウェッブサイトのことをホームページとかHPと呼ぶな
\ `ー'´ /
ノ \
/´ ヽ
| l \
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
>>865 キーボードクラッシャーの動画をジャバで見たいのですがどこにありますんでしょうか?
Javaで見てどうすんだ
>>888 初期の確保領域なら指定できる。
あとはaddAllするしかない。
>>889 ありがとうございます。 addAll の使い方を調べてみます。
SwingGUIでメインのフレームとは別に設定画面的なダイアログ出すとして ダイアログに設定対象のオブジェクトを丸投げして叩いてもらうのか、 設定終了ボタンかなんか押されたときに設定されたデータを回収して 設定対象のほうで処理するのか、とか悩んでいるんですけど何か定石ありますか
EJB3の勉強中なんですが、webアプリでいうところのアプリケーションコンテクストに当たるものはあるのでしょうか。 また、あった場合はどうやってパラメータ設定等を行うのでしょうか。 EJB用ののweb.xmlみたいな存在があるのか気になってます。
>>891 定石はない。俺はダイアログにオブジェクトの設定を任せる作りが多いが。
>>893 設定を保存する可能性を考えると、設定データをまとめたクラス
のほうがいいのかなとかは考えたりしましたけど、必要がなさそうなら
多少気を使うことになっても丸投げのほうが簡単そうですね……。
ありがとうございました。
895 :
デフォルトの名無しさん :2010/05/20(木) 21:45:37
899 :
デフォルトの名無しさん :2010/05/21(金) 03:32:59
>>818 ____
/ \ /\ キリッ
/ (ー) (ー)\
/ ⌒(__人__)⌒ \
| |r┬-| | ウェッブサイトのことをホームページとかHPと呼ぶな
\ `ー'´ /
ノ \
/´ ヽ
| l \
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
892です。 JNDIはコンテクストとは別物な感じがするのですが… やりたいことはふたつあって、 ひとつはEJBへのアクセスに対してfilterを適用したいのです。 もう一つはEJBからさらに別のEJBをjava:comp/env名で呼ぶ時に、 web.xmlの<ejb-ref>にあたる情報をどこに書くのか知りたいのです。 引き続きよろしくお願いいたします。
>>900 Mediatorパターン理解してきました。
種々の対象に対して一手に設定を加えられるようですね。
気を使う箇所がひとつで済むのもとても救いになりそうです。
とても参考になりました。ありがとうございました
903 :
デフォルトの名無しさん :2010/05/21(金) 18:33:24
Integer[] i = new Integer[2] i[0] = new Integer(1); object[] array = i; array[1] = "Hello" 上記のようにInteger型の配列をObject型の配列にキャストして Object配列にStringオブジェクトを追加しようとすると実行時エラーが発生して追加できません。 オブジェクト型にキャストしてるのになぜ追加できないのでしょうか?
arrayの本当の型がInteger[]だから
arrayが指している配列の実体はInteger[2]のままだから
>>901 ejb-jar.xmlにejb-refを追加
j2eeって何だ? J2EEなら知ってるが
アホだこいつwww
910 :
デフォルトの名無しさん :2010/05/22(土) 03:15:26
>>818 ____
/ \ /\ キリッ
/ (ー) (ー)\
/ ⌒(__人__)⌒ \
| |r┬-| | ウェッブサイトのことをホームページとかHPと呼ぶな
\ `ー'´ /
ノ \
/´ ヽ
| l \
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
911 :
デフォルトの名無しさん :2010/05/22(土) 08:29:11
構成についてアドバイスをお願いします。 ■現状 現在個人で、Webから情報を収集し、それを解析してWebで公開する プログラムを組んでいます。言語は、VB.netでIDEはVisualStodio、DBはSQL SERVERです。 ■相談内容 当初の予定では、静的ページのみにする予定でしたが、色々と欲張った結果 動的ぺージも利用することにしました。IDEはVisualStodioですのでIISを利用しようかと 思ったのですが、いかんせんOSの制限で厳しそうなので Eclipse+ApacheTOMCATでの開発を考えております。 機器構成はPC2台でAP+DBサーバとWEBサーバを考えています。 VB.net+SQL SERVER+JSP+Apacheという組み合わせに気持ち悪さ全開なのですが もうちょっとベストな方法はありませんでしょうか? ■要望 @VB.net+SQL SERVERはかなりの工数を割いて愛着もあるので変更したくありません。 A動的ページの利用方法は、自サイト内のアクセス解析からランキングリンクを表示したり 新着を表示する予定です。
PHPがいいよ。そのうちIISにも乗るし
ASP 使えよ。
914 :
903 :2010/05/22(土) 09:45:12
>>904-905 レスありがとうございます。
とうことは
配列では、本来の型の配列を別の型でキャストした場合、別の型の値は代入できないってことなのでしょうか?
Object[] にキャストしてみたところで実体は Integer[] のまま。 代入できません。
VB.net + PostgreSQL + linux(apache+php)がいいよ。
>>907 なんでいまどきJ2EEなんだ
Java EEならわかるが
どっちでも良いんじゃねぇの。
ファイルのクローズ処理のことで質問です。 ファイルから文字を読みこむ処理をしたく、次のプログラムを書きました。 //入力ストリームと入力リーダ FileInputStream fis; InputStreamReader isr; BufferedReader br; try{ fis = new FileInputStream(file_name); isr = new InputStreamReader(fis); br = new BufferedReader(isr); ・ ・ }//try catch (Exception e) { System.out.println(e); } finally{ //ストリームとリーダのクローズ fis.close(); isr.close(); br.close(); //異常終了 System.exit(1); } この場合fisの生成時に例外が発生した場合、isrとbrは生成してないから closeする時にまた例外が発生してしまうのでしょうか? 何かいい書き方があれば教えてください。
>>916 普通はLAMPかLAPPをすすめるものだと思うんだけどな
>>921 FileInputStream fis = null;
InputStreamReader isr = null;
BufferedReader br = null;
・・・
if (fis != null) fis.close();
if (istr != null) isr.close();
if (br != null) br.close()
とでもすれば
それにしても Java の close() って IOException 投げるのが糞仕様だな;
>>923 レスありがとう。
あぁそっか。それでいいですね。
開いてないファイル閉じようとしてたら例外投げないとダメってことじゃないですかね。私は自然だと思いましたけど
口を閉じてろって言われて、喋ってなんかいませんなんて回答したりしたら それは相手を小馬鹿にしていると、一般的な解釈では思われるぞ。
>>916 LAPPをすすめるならVB.NETを進めないでPHPをすすめるだろ
これじゃLAPVだ
>>928 PHPすすめてるやん
VBはデータを収集するツールだろ。それは変えたくないって
いってるやん
なんなのいったい。
変なところにphpの文字が +両端に空白がないから見落とした
眼科行け
もう次スレだね まともな書込みと病気っぽい書込みが5:5ぐらいになってきたね
アフォキティが常駐してからだろ。
>>934 こんなスレにまで工作活動のために出張しにきたアフォチョン乙
簡単にあぶり出されてほんと分かりやすいねぇこのバカウヨ。
マ板でやれ。 何度も言わせんな。
気をつけろ友愛されるぞ。
ウヨかサヨかは知らんが質問の趣旨から外れた力説始めて gdgdにするバカは常駐してるな。
941 :
デフォルトの名無しさん :2010/05/23(日) 02:07:42
JDBC関連の質問です。 以下のように複数のSELECT文を実行してそれぞれの結果セットを取得することはできますか? Stamement s = ...; s.execute(Select文1); s.execute(Select文2); s.execute(Select文3); ResultSet rs1 = s.getResultSet(); ResultSet rs2 = s.getResultSet(); ResultSet rs3 = s.getResultSet();
944 :
デフォルトの名無しさん :2010/05/23(日) 09:01:51
byte型の値はint型の変数に代入可能なのに なぜbyte型の配列はint型の配列に代入できないのでしょうか?
インタフェースの存在意義がわかりません。 メソッドも宣言だけで空っぽ・・・。 多態性とかいうのを実現していますよ!っとアピールするためにSUNが実装した機能ではないでしょうか?
>>944 byte は 1 バイト。new byte[10] なら 10 バイトの配列。
int は 4 バイト。new int[10] なら 40 バイトの配列。
そもそも物理的に違うものだから代入はできません。
>>945 違います。存在意義が分からないうちは多態性は理解できてませんよ。
多重継承を回避できるのが一番の導入理由じゃね インタフェースはそれだけのものではないが
>>945 「インタフェース 抽象クラス 違い」とかでぐぐったらいいかも。
俺それで理解したから。
950 :
デフォルトの名無しさん :2010/05/23(日) 10:50:04
>>945 定数を大量に定義して、そこら中にImplementsする
嫌がらせに使える
よっぽどそのネタ気に入ったのか。
よっぽどそのネタ気に入ったのか。
大量に定数を定義したインタフェース同士をextendsして スーパークラスとサブクラスにそれぞれimplementsすると良いよ
質問です。 今ArrayList使おうとして「import java.util.ArrayList;」と書いたら、 Eclipseに「インポートしたjava.util.ArrayListは見つかりません」と怒られちゃいました。 考えられる原因って何がありますかね・・? JDKのバージョンは6です。一応再インストールしても変わりませんでした。 よろしくお願いします。
>>944 配列の要素は、構成要素型と呼ぶ同じ型を持つ必要がある。
つまり、これは配列にとっての型に相当する。
プリミティブ型の配列に関して拡大縮小変換は言語として存在しない。
参照型の配列に関しての拡大縮小変換は構成要素型同士の拡大縮小変換の有無に従う。
Byte[] ba = new Byte[] { 1, 2, 3 };
byte[] pba = new byte[] { 1, 2, 3 };
Number[] na;
na = ba;
// 不可 Integer[] ia = na;
// 不可 na = pba;
最近、いろいろすっとばし過ぎて意味不明になってる回答が多いが同一人物か?
957 :
デフォルトの名無しさん :2010/05/23(日) 12:28:50
____ / \ /\ キリッ / (ー) (ー)\ / ⌒(__人__)⌒ \ | |r┬-| | ウェッブサイトのことをホームページとかHPと呼ぶな \ `ー'´ / ノ \ /´ ヽ | l \ ヽ -一''''''"~~``'ー--、 -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒)) ____ /_ノ ヽ、_ \ ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ /⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒) | / / / |r┬-| | (⌒)/ / / // だっておwwwwwwwww | :::::::::::(⌒) | | | / ゝ:::::::::::/ | ノ | | | \ / ) / ヽ / `ー'´ ヽ / / バ | | l||l 从人 l||l l||l 从人 l||l バ ン ヽ -一''''''"~~``'ー--、 -一'''''''ー-、 ン ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
959 :
286 :2010/05/23(日) 13:31:12
Junitで戻り値がないようなメソッドってどうやってテストするんだ?
>>958 なんでジャヴァなんかに関心を持ったんですか?
今も昔もマイクロソフトやアドビの方が業界をリードしてるわけだからジャヴァなんかよりそっちをマスターしたほうがいいじゃないですか。
961 :
954 :2010/05/23(日) 13:36:42
ダメだ・・どうしても分かんない。 インポートするクラスが入ってるのってJDKで合ってますよね?違うものをインストールしなきゃだめなのかな。
>>959 仕様で想定されるパラメータを渡して例外が出ないことを確認する。
あるいは想定した例外が発生することを確認する。
アウトプットが無いという事は大抵何かの状態 (インスタンス変数なりディスクなり
DB なり) が変わる機能だろうから、その状態が正しく遷移しているかを確認する。
>>961 プロジェクトのプロパティからビルドパス-ライブラリで JRE システムライブラリが参照されているか確認。
なければライブラリの追加。JDK 1.6 がちゃんと設定のインストール済み JRE に登録されてるか?
964 :
954 :2010/05/23(日) 13:56:49
>>963 あー・・・すごく申し訳なかった。
1.6はちゃんと登録されてたんですが・・・J2MEでの開発時はArrayListは非サポートでした;
J2ME初めてだったので普通のアプリと同じで開発進めてました・・・。
お兄さんそんなことは分かってたよ。
Javaでお勧めの正規表現のライブラリってある?
967 :
944 :2010/05/23(日) 15:07:58
>>946 さん
あまりわかって無いような気がします・・。
byte型の値をint型の変数に代入するとき、int型に変換された後、代入されますよね?
同じくbyte型の配列の値ではなぜそのような型変換が行われないのでしょうか?
>>964 MIDPならMIDPスレに行けCDCならスレがないからあきらめろ。
それ以前にJavaMEの仕様を読め。
JSR 139,118,218,219,217,216とあとは185あたりも覚えておくといい。
配列の代入というのは参照の代入なわけだが 変換が入ると単なる参照の代入じゃなくなっちゃうよね
プログラミングの超初心者ですが、昔のN88-BASICの命令の大部分は Visual Basic でも使えるのですか? 誰か、教えて下さい。
2chの初心者の間違いではw
>>971 そんなこと言って教えてやらないのは、オマイも分からないのだろう!
>>967 配列はオブジェクトだから、継承関係のない物には
キャストできないって事では。
Byte b = new Byte("127");
Integer i = (Integer)b;
が、出来ないのと同じ理由だと思うよ。
>>970 basicに限らず、もう別物だと思って一からやり直したほうがいいですよ。
How many files(0-15)?
How many failures did you have, when you were making the soft (0-15)?
>>967 ,944
>955で拙い説明で詳しく書いてる。
説明が分からなければ>958が情報元へのリンク。
馬鹿にはjavaは無理。 膿め。
世界でjava人口やc++,c#人口はどれぐらいかご存知ですか?
俺は全部使うから最低でもそれぞれ一人。
俺はjavaしか使わない
C#使ったことないなー
どちらにしろ低能には使えないから安心して
響きは悪いが低脳にも使えるから普及したんだろJavaとかC#は Java使えてる俺頭いいってかw
むしろどれか一つでも使えないっていうのは終わってるな。
>>941 ほうほう、おもしろそうっだな
だがJAVAはない
Javaな
>>942 ひとまず、O/Rマッピングフレームワークを使うことをおすすめする
>>945 存在意義を知りたければデザインパターンについて勉強してこい!
>>968 諦めろじゃなくて携帯電話開発スレあたりかそのスレで質問するか
新たにスレ立てるかすることを勧めろよ
乙うめ
うめ
1000!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。