- 1 名前:デフォルトの名無しさん [2007/07/27(金) 08:46:32 ]
- プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/ これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、 wikiからのリンクをおたどりください。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド103【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1182896607/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝なく存じます。 次スレは>>980あたりで。
- 151 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 14:33:43 ]
- >>149
Boolean はimmutableなのでインスタンスの状態の変更はできない。 そしてJavaは全て値渡し。 error_frag の参照値がコピーされて _found_error に渡され、 _found_error ではコピーされた参照値をBoolean.valueOf(true) が戻す参照値で上書きする。 その際、readFromData の error_frag は影響を受けない。 解決法としてはインスタンスメソッドなら error_frag をインスタンス変数にする、 それが嫌なら boolean[] やら class MyBoolean{ boolean flag; } を使うなどして インスタンスの状態を変更できるものを使う。
- 152 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 14:38:54 ]
- 考えてみれば
error_frag = Boolean.valueOf(true); ではerror_fragの実体の指す先が変わってしまいますよね、失礼しました。 値を変えたいboolean型をこれらのメゾッドの関数が含まれるクラスのメンバー変数にして 解決することにしました。 どうもありがとうございます。
- 153 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 15:10:46 ]
- 連絡がありません。いいかげんな対応をされては困ります。あと一週間以内に何も連絡が無い場合、
落札者都合で削除すると同時に悪い評価が付きます。
- 154 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 15:42:52 ]
- ServerSocket.accept()や、BufferedReader.readLine()のような
入力がある、終わるまで待機するような方法を探しているのですが、スレッドを使って値を
- 155 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 15:45:24 ]
- 途中で書き込んでしまったorz
ServerSocket.accept()や、BufferedReader.readLine()のような 入力がある、終わるまで待機するような方法を探しているのですが、スレッドを使って値を 監視する、以外に方法はないでしょうか?なんかこれだとCPUの無駄遣いのような気がしますし もっと効率のいい方法がないかなと。
- 156 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 16:05:35 ]
- 何を待ちたいのかわからないが、
自スレッドを Object#wait で寝かせて、他のスレッドから #notify もしくは #notifyAll で起こすことはできる
- 157 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 16:09:32 ]
- それか、複数のソケットを同時に待ちたいってことなら、Selector を使うと幸せかもしれない。
ぜんぜん違う話なら、もっとくわしく・・・
- 158 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 18:22:06 ]
- 初期状態の時にJListが描画(表示)されません。
中央の"set"の下らへんをクリックするとJListが初めて描画される感じです。 これを簡単に解決したいんですが、どうしたらいいでしょうか? やはり、上の描画部分はCanvasで下はボタン等のパネルにすべきでしょうか? up.spawn.jp/file/up39072.txt
- 159 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 18:22:51 ]
- すいません、"set"じゃなくて"m"です。とりあえず中央のボタンの下らへんにJListがあります。
- 160 名前:デフォルトの名無しさん [2007/08/03(金) 19:00:50 ]
- thread内でDBにSELECTしたりINERTしたりする時ってデッドロックって起きる?
同じテーブルの同じレコードに同時にINSERTしたりしたら起きるんかな?
- 161 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:01:20 ]
- >>159
まあ、SwingというかAWTから勉強した方が良い。
- 162 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:12:21 ]
- >>158
とりあえず super.paint(g); レイアウトマネージャとか、AWTとSwingを混ぜるなとか、色々あるけど、まぁね。がんばれ。。
- 163 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:18:01 ]
- そもそもprintConponent()な。
- 164 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:20:08 ]
- paintComponentじゃね?
- 165 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:25:51 ]
- >>157
Jinputを使ってgamepadからの入力を受け付けるんですけど Jinputだといわゆるイベント(keyEvent)とかを発行しないんです。 だから現状はいつボタンが押されたか常にスレッドで〜msごとに どのボタンが押されてるかチェックしてるんですが、 もっと効率よくイベント発行するタイミング(ボタンおされた時)を調べるにはどうしたらいいかなと。
- 166 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 00:33:16 ]
- jinputなんか知りまへん・・・と言いたいが、そのうち自分も使いたくなるかもしれないから調べてみる。
・・・・・・ だめっぽいね。 一定時間ごとに poll するしかなさそうです。 よく考えたら DirectInput も joyGetPos も自分で取りに行くしかないっけか。。。 結論 → むり
- 167 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 09:28:53 ]
- ソースコード上に書いたクラスのフィールドやメソッドの順番って、
コンパイル後やHotSpotコンパイラがネイティブコンパイルした後も維持されますか? どのVMならというのではなくて、言語仕様としてどうなのかなと。
- 168 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 10:37:28 ]
- ソースの字面出現順にメモリにアラインメントされるかってこと?
それなんて構造体? javaはレジスタすら動的に配置して定期的にメモリ内容かわってるのに。 ていうか配列すら最適化のために連続しておかれる保証はないのに。
- 169 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 11:24:42 ]
- >>155
Swingとかでの話か? 1文字入力がある度に、KeyEventListenerで拾って処理するってのが定石 お前さんが思うほど不可はかからない もしくは、フォーカスが外れたタイミングで処理する CUIとかでの話であれば、System.in.read() 等はブロックする筈
- 170 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 11:54:11 ]
- 自作classの使用方法についての質問です。
次のような構造でDBにアクセスするプログラムを作成しています。 (Console)--[入力取得と出力]--[データ加工]--[DBAHelperImpl implements DataStoreAccessHelper]--(MySQL) 注 [xxx]:自作Javaクラス、(xxx):システム外部を表します [DataStoreAccessHelper]は、情報の取得、情報の保存、取得した情報からオブジェクトを作成、 取得した情報をjava.util.Listで戻す、などのメソッドを宣言したインタフェースです。 [DBAHelperImpl]は、そのインタフェースをMySQL用に実装したクラスです。 ここで、[DBAHelperImpl]を使用する方法について調べたところ、3通りの方法が見つかりました。 (1) DBAHelperImplをnewして使用する (2) DBAHelperImpl内にstaticなインスタンスを作成し、 作成したインスタンスをDataStoreAccessHelperとして戻すメソッドを通じて使用する (3) DBAHelperImplをDataStoreAccessHelperとして作成して戻すクラスを新たに作り、 そのクラス経由で取得、使用する 私は(1)の方法で使用していたのですが、(1)の方法はあまり勧められないとの記述があり、迷っています。 諸兄のご意見をお聞かせください。
- 171 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 12:03:26 ]
- >>168
> 配列すら最適化のために連続しておかれる保証はない まじでか。まあデカイ配列で落ちられても困るから有りだけど。
- 172 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 12:34:34 ]
- >>170
(1)の方法で勧められない理由は何か説明できる? 説明できないならば、(1)の方法でも何も問題ない。 (2)は結局はImplがどれかを知らなければならないので(1)と何も変わらない (3)はいわゆるFactoryクラスを作るパターンだが、Implを状況に応じて使い分ける必要がないならばただのオナヌー
- 173 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 12:42:55 ]
- (2)は後のリファクタリングを意識した冗長設計だな。
シングルトンにしたほうが都合が良いなら、内部でそうすればいいし、 DBAHelperImplに致命的なバグがあり、 工数的に他所のDAOをラップして返した方が都合が良い場合もある。
- 174 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 12:49:43 ]
- >>167
フィールドは並び替えられているという話を読んだ覚えがある。 char a; int b; char c; みたいなのを順番どおり並べると隙間が出来て無駄なんで int b; char a; char c; に並び替えて隙間を詰める。
- 175 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 13:17:36 ]
- 低レイヤーの話をするのは無意味。Cじゃないし。
- 176 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 13:23:32 ]
- >>171
javaの配列が短形でなくて良いのはどうせ最適化されて実行時に都合の良いように再配置され凸凹になるから。 メモリアドレスで言えば番地が連続している訳ではないし、その必要も無い。 配列要素nがあったとして番地的にn+1の要素が隣の番地にあるとは限らない。 だからjavaの配列は順次アクセスが早いとは限らない。
- 177 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 13:27:36 ]
- まあこのくらいの問題なら自分でアラインするより
よっぽどスマートなメモリの使い方する(文字列以外)から気にしたら負け。
- 178 名前:デフォルトの名無しさん [2007/08/04(土) 14:58:42 ]
- javaで構造体(みたいなもの)を定義してその中のある要素でソートするにはどうしたらいいですか?
たとえば 名前、身長、体重のデータからなる構造体を身長の高い順から表示するようなプログラムを作りたいんですが。
- 179 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 15:30:54 ]
- compareTo
- 180 名前:デフォルトの名無しさん [2007/08/04(土) 15:31:04 ]
- OSのシステム言語を英語にするとコンソールの日本語が文字化けしてしまうのですが
システム言語に関係なく日本語を文字化けさせないためには、どのようにすればよいのでしょうか? ロケールなどを設定してもダメでした…
- 181 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 15:32:07 ]
- 仕様です
- 182 名前:170 mailto:sage [2007/08/04(土) 15:45:23 ]
- お答えありがとうございます。
現時点では(1)を否定する理由が思いつかないため、(1)でいこうと思います。 その後いろいろ調べてみました。 (2)を採用する理由は、実装クラスの内部的な変更に強くなる(インタフェースのメソッドのみを使用している限り、利用する側の修正がない)。 (3)を採用する理由は、実装クラスそのものが別のクラスに変更されることに強くなる(データストアがWeb、Fileなどに変わっても使える)。 このように理解したのですが、これで問題ないでしょうか。
- 183 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 17:36:18 ]
- > (2)を採用する理由は、実装クラスの内部的な変更に強くなる(インタフェースのメソッドのみを使用している限り、利用する側の修正がない)。
> (3)を採用する理由は、実装クラスそのものが別のクラスに変更されることに強くなる(データストアがWeb、Fileなどに変わっても使える)。 (2) と (3) はほとんど同じことだと思うが。 (2) は DBAHelperImpl のメソッドで取得するとはいえ、 実際に何のクラスが返されてるか外からはわからないわけで。 別のクラスにすりかえることはカンタン。
- 184 名前:デフォルトの名無しさん [2007/08/04(土) 18:04:03 ]
- どなたかListについて教えていただきたいのですが
例えばArrayListでインスタンスを生成したListの変数があり そのリストには1000個の要素(文字列)が入ってるとします。 もっと具体的に書くと文字列"AAA"と"BBB"と"CCC"が それぞれ100個、400個、500個リストに格納されてるとして (格納されてる文字列の並びは適当) このときリストに格納されている各文字列の存在個数を高速に割り出す方法はありますでしょうか? パフォーマンスを無視すれば配列のサイズ分だけ回せば可能ですが それだと配列のサイズの二乗になってしまうので可変長データでやるにはかなり非現実的ですので
- 185 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 18:14:53 ]
- >>184
ソートしてからなら1次でしょ。 StringはComparable<String>を実装してますよん。
- 186 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 18:17:15 ]
- コピーしてマージソートしてから1週舐めるなら
文字列の種類が少ない場合に遅くなるかもしれんけどね。
- 187 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 18:22:50 ]
- ハッシュマップで数えるとか。
for (String s : list) { if (hashmap.containsKey(s)) { hashmap.put(s, map.get(s) + 1); } else { hashmap.put(s, 1); } }
- 188 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 18:26:02 ]
- TreeSetじゃだめなん?
- 189 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 18:27:08 ]
- あーSetはだめだった。
- 190 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 18:40:40 ]
- >>187の方法でやったことあるけど十分早かったような
- 191 名前:デフォルトの名無しさん [2007/08/04(土) 18:41:43 ]
- いま軽くコレクションクラスでソートしてみたら恐ろしく簡単にソートできたので
>>185様の案で行くことにしました。ありがとうございました。
- 192 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 18:52:16 ]
- ソートする必要なければ TreeMap/TreeSet よりか HashMap/HashSet のが速いよ
Tree の利点はキーが常にソート順を維持されてるところ Hash は順序不定
- 193 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 18:58:05 ]
- それじゃ187様の方法で行きます。ありがとうございました
- 194 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 19:12:46 ]
- ところでListの配列をHashMapに変換または簡単に作成する方法ある?
- 195 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 19:32:16 ]
- キーはいかがなさいますの?
- 196 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 19:44:35 ]
- やっぱソートして比較することにした
- 197 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 19:50:02 ]
- Stringのマイクロベンチマークは、String.equalsが落とし穴になるよな。
例えば定数をコンソールやテキストから入力するなら、s1 == s2 で true になることは無い。 静的にデータを持つならnew String(CONST_STR)みたいにしとくことが必要になる。 こういう正しいテストデータ作成用のライブラリってない?
- 198 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 19:53:25 ]
- >>197
何がやりたいか分からん
- 199 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 19:54:20 ]
- マイクロベンチマークがしたい。
- 200 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:01:55 ]
- >>180
コンソール側のページコードでどうにかならない?
- 201 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:02:07 ]
- >new String(CONST_STR)みたいにしとくことが必要
ここがわからない。 >正しいテストデータ ここもわからない。
- 202 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:04:55 ]
- >>201
> ここがわからない。 >> 例えば定数をコンソールやテキストから入力するなら、s1 == s2 で true になることは無い。 言語仕様がわからないなら介入しなくていいから。
- 203 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:05:37 ]
- equalsつかえよ
- 204 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:08:27 ]
- 迷惑だからキミは絡まないで。
- 205 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:08:54 ]
- とりあえず>>197はアホ
- 206 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:10:20 ]
- String.equalsの仕様を知らない馬鹿がなんか邪魔してくる・・・
- 207 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:43:25 ]
- オブジェクトが一致する場合と一致しない場合で、equals が true になる場合の計算コストが違うことをいってるわけ?
トーシロの俺には何がなんだか(´・ω・`)
- 208 名前:197 mailto:sage [2007/08/04(土) 20:46:30 ]
- 事故解決しますた
- 209 名前:208 mailto:sage [2007/08/04(土) 20:48:48 ]
- 誤爆です><
- 210 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:57:44 ]
- /ニYニヽ
/( ゚ )( ゚ )ヽ /::::⌒`´⌒::::\ でっていうwwwwwwww | ,-)___(-、| | l |-┬-| l | \ `ー'´ /
- 211 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 21:55:52 ]
- 存在個数なら、ListなめてMapにカウント突っ込んでいけばいいんじゃないの?
- 212 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 22:36:53 ]
- パフォーマンスの問題は、実際にパフォーマンス上の問題が起きてボトルネックが発見できた場合に対処すればいい。
机上の空論でのパフォーマンス対処ほど無駄なものはない
- 213 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 22:40:59 ]
- /i /{/'⌒'} }}Y/ / ,r-、ヽ, /
ノ、|、ヾ_,,ノ ノ ノ{ ヾ {^')) }フ/ / _/ \ヽ、 彡'`、、 'ー' ノ //",,゙ """ / ヽ 理 議 そ ヽ-、ミ‐-、、 、,r=‐'¬ー=、、,-‐'_ ヽ、 /ノ / 解 論 の ミ/ ~  ̄ノ /\ /彡 "" |/ で し な / ,' u ∪ ! ヽ | i、゙ー''"彡 /| き て め 、、∪ / ノ / _,,,...-‐‐ニ=,ノ,,/ ヽ、,,_ \ ,イ / | な い 方 ニ、=!, l_. レr=-ニ二、,,,.-'" ー、==-ヽ'"/ / ヽ い る を 、(・,)>ノ⌒ ∠,(・,)_く ゙` ヽ゚ノ`ー=、_ /// ∠ の こ  ̄/""゙ ヽ ̄ ̄ \ヽ  ̄ ̄ // ノ か と u 〈 、 u (ヽ //  ̄ノ ? も ヽ -' lj >、 // /  ̄ヽ、 /ヽー‐ 、 /'"´ 'i // / ∨ヽ/ ^゙"⌒ヾ、 ,i| ,"__} // / / ー- - ヽ_人`'′ // / / / i'゙' /-─‐‐''/_/_ 、 _/-‐ヽ、___,,,, -‐‐  ̄ ー-、、,,__,-‐'//ノゝノ ノ ヽ\
- 214 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 22:45:30 ]
- >問題が起きてボトルネックが発見できた場合に対処すればいい
どこの腐れ初心者ですか? あ、ここは初心者スレか。悪かった >机上の空論でのパフォーマンス対処ほど無駄なものはない 何千件とデータ回す場合を考えたら目に見えて明らかなんだが頭大丈夫かお前?
- 215 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 23:00:33 ]
- それは凄い動体視力
- 216 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 23:20:25 ]
- >>214
マジレスしとけば、数千件程度でパフォーマンスに影響出るって何時の世代のマシンだよw 数千回DBアクセスでもすんの? 数千回IOでもすんの?
- 217 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 23:24:49 ]
- じゃあ数百万件に変更な。これでいいか?
- 218 名前:デフォルトの名無しさん [2007/08/04(土) 23:27:47 ]
- >>217
素直にDB使え
- 219 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 23:36:24 ]
- >>217
そりゃアルゴリズムか設計に問題あるだろ
- 220 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 23:42:42 ]
- >184だが、Listに文字列を突っ込む時にMapにカウントしておく
適当に書いたのでコンパイルは通らないと思うがこんな感じだ class StringList { List<String> list; Map<String, Integer> counter; public int add(String str) { Integer count = counter.get(str); if(count == null) { count = new Integer(0); counter.put(str, count); } count++; list.add(str); return count; } } 最初から数えておけばいいってこと
- 221 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 23:57:17 ]
- 最初からカウントしてたら誰も質問しねぇわなww
オナニーコードもほどほどにな
- 222 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 00:09:22 ]
- プッ
- 223 名前:デフォルトの名無しさん [2007/08/05(日) 00:34:48 ]
- longやintといったプリミティブ型の数値をbyte配列に変換するにはどうしたらいいでしょうか?
longの値をbyte[8]の配列に入れたいのです。 何か方法がありましたらぜひお教えください。
- 224 名前:デフォルトの名無しさん [2007/08/05(日) 00:38:27 ]
-
くそ天皇 くそ天皇 くそ天皇 くそ天皇 いい加減死ねっつってんだろ屑ニートくそ天皇が 相変わらず病的な粘着っぷりだな屑ニートくそ天皇が 毎日毎日毎日粘着出来て良いでちゅねくそ天皇 くそ天皇さっさと死にやがれゴミが 東京に在住している精神病珍米糞ニートくそ天皇君の末路 さっさと精神病院逝くか首吊って逝くか選べや糞天皇が 早く死ねよ糞ニート天皇が 粘着精神病屑ニート天皇君は自らニートくそ天皇であると公言しました さっさと死ねやくそ天皇が 早く死ねっつってんだろ屑ニートくそ天皇が お前みたいなゴミクズ天皇は息してるだけで空気が汚れるからさっさと死ねや とっと死に晒せや糞ニート天皇が
- 225 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 00:40:17 ]
- どういうふうに変換したいのよ。
どういうふうでもいいなら、これでどう↓ long x = 0; byte[] b = new byte[8]; new DataOutputStream(new ByteArrayOutputStream(b)).writeLong(x);
- 226 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 00:42:33 ]
- >>223
long l = 1000; byte b = (byte) l; という形でダウンキャストを行う そうすれば、上位ビットを無視するので、最下位のバイトが格納される。 上位バイトの取得は、ビットシフトを使えばOK
- 227 名前:デフォルトの名無しさん [2007/08/05(日) 00:42:42 ]
-
くそ天皇 くそ天皇 くそ天皇 くそ天皇 いい加減死ねっつってんだろ屑ニートくそ天皇が 相変わらず病的な粘着っぷりだな屑ニートくそ天皇が 毎日毎日毎日粘着出来て良いでちゅねくそ天皇 くそ天皇さっさと死にやがれゴミが 東京に在住している精神病珍米糞ニートくそ天皇君の末路 さっさと精神病院逝くか首吊って逝くか選べや糞天皇が 早く死ねよ糞ニート天皇が 粘着精神病屑ニート天皇君は自らニートくそ天皇であると公言しました さっさと死ねやくそ天皇が 早く死ねっつってんだろ屑ニートくそ天皇が お前みたいなゴミクズ天皇は息してるだけで空気が汚れるからさっさと死ねや とっと死に晒せや糞ニート天皇が
- 228 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 00:42:51 ]
- byte[] binary = new byte[8];
ByteBuffer buff = ByteBuffer.wrap(binary); buff.put(longValue) もっといい方法が在るかもしれん。 あとJava内部のバイト配列はビッグエンディアンのはずだから気をつけること。
- 229 名前:デフォルトの名無しさん [2007/08/05(日) 01:01:41 ]
-
くそ天皇 くそ天皇 くそ天皇 くそ天皇 いい加減死ねっつってんだろ屑ニートくそ天皇が 相変わらず病的な粘着っぷりだな屑ニートくそ天皇が 毎日毎日毎日粘着出来て良いでちゅねくそ天皇 くそ天皇さっさと死にやがれゴミが 東京に在住している精神病珍米糞ニートくそ天皇君の末路 さっさと精神病院逝くか首吊って逝くか選べや糞天皇が 早く死ねよ糞ニート天皇が 粘着精神病屑ニート天皇君は自らニートくそ天皇であると公言しました さっさと死ねやくそ天皇が 早く死ねっつってんだろ屑ニートくそ天皇が お前みたいなゴミクズ天皇は息してるだけで空気が汚れるからさっさと死ねや とっと死に晒せや糞ニート天皇が
- 230 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:07:06 ]
- 初心者じゃないんだけど、axisとかlog4jとか使ってるフリーのJavaライブラリを
複数使ってるとjarの中にあるクラスがバージョン違いで実行エラーになるんだけど どうしたらいいんだろう。 実行中にロードされたクラスファイル全部を見直して、モジュールの競合を解決してくれたり 何がいけないのかを判断してくれるツールないかなー?
- 231 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:12:54 ]
- >>230
・競合ライブラリを最新のものに統一する。動かない部分は自前で修正 ・それかクラスローダを分ける
- 232 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:14:47 ]
- >>231
クラスローダを分けるとClassクラスとかでインスタンス生成するとき面倒じゃない? 競合ライブラリを最新のものにして、古いメソッドや仕様変更したAPI使ってたら、アウトだし。
- 233 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:18:44 ]
- 初心者じゃないって前振りはいったいなんだったのだろうか。
- 234 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:21:31 ]
- class A<T> {
List<T> list = new ArrayList<T>; public List<T> getList() { return list; } } みたいにクラスにリストを持たせたとき、 A<Hoge> a = new A<Hoge>(); に対して a.getList.add(hoge1); とか a.getList.remove(hoge2); って出来ないの?やってみたところできてないっぽいんだけど
- 235 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:26:58 ]
- できるでしょ。
>a.getList.add(hoge1); a.getList().add(hoge1);
- 236 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:29:07 ]
- uho-勘違いしていました
お恥ずかしい(-_-) >>235 回答ありがとうございました
- 237 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 02:33:58 ]
- 複数のスレッドから操作されるフィールドcountに
volatlieを付けるとする。どの程度保障されるもの? while (count < 0) { } public void setCount() { this.count = count; }
- 238 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 02:35:06 ]
- 仮引数書き忘れた。。。
- 239 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 02:44:20 ]
- そんな意味不明なコード片じゃ何が言いたいのかわからん。
count++; みたいなコードは、volatile であってもアトミックにならない。他のスレッドが割り込む可能性がある。 つまり count++; をするスレッドが複数あったらだめ。 書き込むスレッドがひとつだけの場合は複数のスレッドから読んでも大丈夫。 ・・・ていう話? それとも volatile の正確な定義が知りたいのん?
- 240 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 02:45:56 ]
- Java の volatile はいい加減な実装になってる可能性がある、
って話を見たことがあるんだけど、今でもそうなの?
- 241 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 02:55:30 ]
- 可能性の話をされてもなぁ。
1.4 以前と 5.0 以降で volatile の仕様が変わったという話はある。 少なくとも 5.0 以降は仕様どおり実装されてんじゃない? Sun の VM では。 でなきゃ、java.util.concurrent.* あたりが今ごろ異常動作しまくりのはず。 詳しい話はこのへんでもどうぞ↓ www-06.ibm.com/jp/developerworks/java/040416/j_j-jtp02244.html www-06.ibm.com/jp/developerworks/java/040514/j_j-jtp03304.html www-06.ibm.com/jp/developerworks/java/library/j-jtp06197.shtml
- 242 名前:223 mailto:sage [2007/08/05(日) 03:25:44 ]
- >>225,226,228
回答ありがとうございます。 勉強になりました。 昔ならったコボルでは long l=0x0123456789abcdefL; byte[] b=new byte[8]; b=l; で、lをbに代入すると [01][23][45][67][89][ab][cd][ef] こんな感じにカパッと当てはまったなー、javaではどうやればいいんだろうと思ったしだいです。 ビッグエンディアンには注意します。
- 243 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 04:02:50 ]
- Java内部がビッグエンディアンというか、
Data*StreamやデフォルトのByteBufferがそう補正してるってのが正しい?
- 244 名前:デフォルトの名無しさん [2007/08/05(日) 04:09:43 ]
- 正しくない。
というか意味がわからん
- 245 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 04:40:07 ]
- 意味が分からないなら書くな。てかJavaDocに載ってる。
- 246 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 05:17:10 ]
- 最近byteとintの単項数値昇格ネタ増えたな。
俺自身バイト指向でデータ扱うことが減ったのですっかり忘れてた。 "& 0xFF"で下位bitのみとれって話だよね。
- 247 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 09:05:18 ]
- Jakarta CommomsのHttpClientについてのいいページない?
ググったけど、情報量が足りないページばかり。
- 248 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 09:22:41 ]
- >>247
情報量って。。。本家にいくらでもあるだろ
- 249 名前:デフォルトの名無しさん [2007/08/05(日) 09:27:21 ]
- ファイルの入出力をしているのですが、
もしプログラムと同じディレクトリに入出力用ファイルあれば、 そのファイルから中身を取り出し・加工して再びそのファイルに書き出す。 もし無ければ、新しいファイルを作成して、そこに書き出す。 という用に行いたいのですがどの様にしたら良いでしょうか? 教えてください。
- 250 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 09:50:44 ]
- >>249
どのJAVAの入門書でもサンプルコードが載ってるだろ ググれば山ほどあるだろ
- 251 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 11:27:43 ]
- >>242
時代の流れだな Javaでバイトを意識してデータを扱うケースは稀だし、知らない技術者も多い
|

|