[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 07/25 18:09 / Filesize : 271 KB / Number-of Response : 1055
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

☆★Java質問・相談スレッド173★★



1 名前:デフォルトの名無しさん mailto:sage [2015/04/22(水) 22:35:19.67 ID:XG+QDGZC.net]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    pc11.2ch.net/hp/
Webプログラミング pc11.2ch.net/php/
をご利用下さい。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 (p)ttp://www.wikiroom.com/java/?path,classpath
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
・String に == は使うな。equals() を使え。※

質問時の心得
・コンパイルエラーか実行時エラーか、エラーではないが意図しない動作なのかはっきりしろ。あとエラーメッセージちゃんと読め。
・前提条件としてOS、開発環境、バージョン、使用フレームワーク等を明記。

前スレ
★★Java質問・相談スレッド172★★
peace.2ch.net/test/read.cgi/tech/1419490897/

110 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 08:26:48.01 ID:xlHiidVT.net]
ドカタに責任追求すんなよ
仕様もマトモに満たさないんだから
ボクのパソコンでは動きました

111 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 11:14:52.92 ID:5OsBEZuX.net]
>>108
趣味たけてやってるやつはいいな。

112 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 11:37:15.81 ID:/JhMC04n.net]
jQueryや iPhone等の単語をクラス名の先頭に使う場合、大文字小文字どうしてますか?

113 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 12:15:10.38 ID:hlalZqNG.net]
>>110
webアプリで使えることが保証されてない、部品に何の意味があるのかと。

114 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 12:16:47.73 ID:hlalZqNG.net]
バッチならスレッドセーフじゃなくても良いけど。

バッチ専用www。

115 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 12:45:39.64 ID:5OsBEZuX.net]
>>112
使わないことが保証されてるとかもあるんだよ。
最近、マルチスレッドを理解して、誰かに話したかったのかなー

116 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 13:29:13.83 ID:WFSf5HfO.net]
>>112
状態を持たなければいいだけの話。
逆に、状態を持つオブジェクトならスレッドセーフな設計にするより都度インスタンス化したほうがいいでしょ。

117 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 13:32:46.15 ID:7K8JNkP3.net]
>>112
キチガイでwebしか脳が無いオマエには価値がないのかもな

118 名前:デフォルトの名無しさん [2015/05/01(金) 13:56:18.19 ID:werns+CW.net]
Java8がインストールできなくて7はできたデス!
8インストールするにはどうしたらいいデース?



119 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 14:08:02.83 ID:hlalZqNG.net]
>>115
それだけで済むはずがない

120 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 14:14:55.31 ID:97GggSGT.net]
>>117
インストールできたと思われるものをすべてアンインストールしてプログラミングのことは諦めよう

121 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 14:23:50.17 ID:HxX2ojlD.net]
8インストールした後に7インストールしてJAVA_HOME上書きされただけでしょ

122 名前:デフォルトの名無しさん [2015/05/01(金) 14:52:25.04 ID:werns+CW.net]
よくわかんないけどJava7使ってマース!

123 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 15:59:47.54 ID:5OsBEZuX.net]
できないとか、できるとか、なんで主観でしか物を言わないんだ。

124 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 16:00:48.57 ID:zDZULSSe.net]
LinuxのCUIコンソールやWindowsのコマンドプロンプトからJavaアプリケーションを起動した際に、そのコンソールに表示される文字列長や行数を取得するにはどうすればいいのでしょうか。

125 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 19:55:10.24 ID:UKdd3lbg.net]
wcコマンドで済む話ではないの?

126 名前:デフォルトの名無しさん mailto:sage [2015/05/02(土) 09:32:45.89 ID:eWVxg4yO.net]
JAVAのBRONZEって自宅でオンラインで受けられるってことは
参考書カンニングできるの?

127 名前:デフォルトの名無しさん mailto:sage [2015/05/02(土) 10:39:58.02 ID:5+kdHKSu.net]
真板でやれよ

128 名前:デフォルトの名無しさん mailto:sage [2015/05/02(土) 15:07:13.78 ID:jUtO03f6.net]
java.time.format.DateTimeFormatter#ofPatter って存在するのでしょうか?
https://ideone.com/LD7Q3I

docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#ofPattern-java.lang.String-
どうやってもこれを呼び出せない‥おっかしーなー



129 名前:デフォルトの名無しさん mailto:sage [2015/05/02(土) 15:07:50.52 ID:jUtO03f6.net]
失礼
java.time.format.DateTimeFormatter#ofPattern です.

130 名前:デフォルトの名無しさん mailto:sage [2015/05/02(土) 15:30:08.44 ID:nszzo0zn.net]
>>127
ideone.com/zdBCFX

staticメソッドだからnewが余分やね

131 名前:デフォルトの名無しさん mailto:sage [2015/05/02(土) 15:38:16.26 ID:nszzo0zn.net]
あとyyyy/MM/ddだと2015/5/2のparseに失敗するね
yyyy/M/dにしたらparse出来る

2015/05/02だったらyyyy/MM/ddでparse出来る

132 名前:デフォルトの名無しさん mailto:sage [2015/05/02(土) 16:28:55.75 ID:jUtO03f6.net]
>>129
>>130
ありがとうございます!確認できました。
インスタンスメソッドじゃない方だったんですね、javac のエラーメッセージの読み方が今やっとわかりました
まだまだ初学者ですが、これからもよろしくお願いいたします m(_ _)m

133 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 03:54:46.48 ID:AX1fII9R.net]
最近Javaの勉強をし始めました
CUIでRPGのようなものを作りながらやっています
全モンスター(武器でもアイテムでも何でも)リストを表示したいのですが、

List<Monster> monsters = new ArrayList<Monster>(Arrays.asList(new モンスターA,new モンスターB,new モンスターC,…));

とやっていけば全モンスターが入っているリストは完成しますし、あとは簡易for文でも回せば表示は出来ます
モンスターを追加するときも、クラスを作ってここだけを変更すれば他のところを全くさわらなくても大丈夫な気もします
でも、何か分からないけど何かが違う気がします
何かをリスト化するときにもっと良い方法はありますか?

134 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 04:27:58.29 ID:5I8c2lfE.net]
まーた棒人間RPGの奴か

135 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 06:42:20.63 ID:a1Nd+3H1.net]
データベースを使う(白目)

136 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 09:28:29.17 ID:LDSjGwbx.net]
棒人間のRPGの人です。
>>132は違う人です。

137 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 10:11:18.45 ID:PDSHhx++.net]
>>132
設定でどのクラスを追加するか指示する。
メタプログラミングで特定のパッケージのあるインターフェースを実装したクラスを全て追加する。

138 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 10:17:22.82 ID:40ee8aRr.net]
オブジェクト指向の学習に励んでるところ悪いけど、
モンスターの種類ごとにクラス作るなんて普通やらないよ
ちゃんと仕様さえ決めれば、データが違うだけでほとんど一緒だ



139 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 20:39:08.34 ID:hIDbeKPv.net]
Cliborってソフト定型にSystem.out.println();とかtry{Thread.sleep();}catch(InterruptedException e){}を入れておくと凄く便利。

140 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 20:45:11.70 ID:40ee8aRr.net]
>>138
いやEclipseのスニペット使えばいいでしょ

141 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 20:48:49.35 ID:hIDbeKPv.net]
>>139
Eclipseってそんな機能あるんだ。
NetBwans使ってるから知らなかった。

Eclipse使ったほうがいいのかな?

142 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 20:52:04.14 ID:40ee8aRr.net]
>>140
NetBeansにもその程度の機能は当然ある
あと、定型句コピペの使用は極力避けて
決まったコードはメソッドにすることを心がけた方がいいよ

143 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 20:53:54.18 ID:ScRGBqdT.net]
>>137
モンスター毎にスペシャルな処理を実装する気満々なんじゃ

144 名前:デフォルトの名無しさん [2015/05/04(月) 20:56:26.06 ID:TjfyY4D6.net]
>>142
dqnplus.6

145 名前:.ql.bz/cgi-bin/img-box/img20111121211956.jpg []
[ここ壊れてます]

146 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 21:02:29.19 ID:hIDbeKPv.net]
>>141
面倒な例外処理などはメソッドとして作っておけばいいと言う事ですか?
あと気になっていたんですがThread.sleep()ってどのような例外が発生するんですか?

147 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 21:15:39.45 ID:40ee8aRr.net]
>>144
他のスレッドからinterruptすることでsleepを中断させることができる
その際にInterruptedExceptionが発生する
メソッドを作るのはいいが、安易に例外を握り潰すと後でデバッグしづらくなって地獄を見る

148 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 21:23:31.06 ID:hIDbeKPv.net]
>>145
と言う事は通常使う分には問題ないと言う事ですね。ループの途中で呼び出されました警告も基本無視で良さそうですね。
例外は基本的に何らかの処理をしたほうがいいと言う事ですか?
System.out.println(e);だけだとマズいでしょうか?



149 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 21:50:53.40 ID:/90islqK.net]
自動テストって、どんな事を書けばいいの?

Exceptionをハンドルして、例外をファイルに書き込むメソッドを作ってみたんだけど
何書けばいいのかよくわからんorz

ソースはこちら
climbi.com/b/4058/0

150 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 22:10:24.12 ID:40ee8aRr.net]
>>147
こんなもん実際に普通に動かして確認でいいよ
やるとしたらuncaughtExceptionの中身をメソッドに切り出して
それをテストすることになるだろうけど、そのときのテストケースって
・引数に渡した例外のメッセージが出力されていること
・その時点のスタックトレースの文字列が出力されていること
だろ?
実際にこれでテスト書いてみりゃわかるけど、
メソッドの実装と同じコードをテストで繰り返すことにしかならないので意味ない
それに、どうせ異常時のデバッグ用なんだからどうでもいいでしょ

151 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 22:59:32.10 ID:/90islqK.net]
>>148
回答ありがとうございます。

システムの共通部分って、普通テストするもんなんですか?
業務システムの共通部分ってほとんど、画面周りの制御だったりする気がします。

152 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 23:04:10.84 ID:/RiyGk+g.net]
これはひどいw

153 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 23:07:15.46 ID:F4f6sgNa.net]
影響範囲は全部テストしようや

154 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 00:10:21.36 ID:pcpJvysD.net]
そもそも、テストってクラスを全部書き終わった後に書くべきなの?
メソッドを作ったら、テスト書くほうが現実的な気がする

そして、テストに書く内容なんだけど、今までは目視でやってた事をコードに落とせばいいんだよね
自動テストしない場合:メソッド作る → 動かす → メソッド修正
だったけど
自動テストする場合:メソッド作る→自動テスト作る→自動テストする→メソッド修正

みたいな感じ?

155 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 00:54:42.07 ID:P8IV0u4y.net]
いや本来はテストを先に書く
テストのみを仕様として認めるというところまで突き詰めるなら、
テストを書いたらとにかくそのテストを通るようにメソッドを無理矢理実装し、
それに対抗してテストを修正し、また実装を修正し、…を繰り返す

156 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 01:57:34.93 ID:i6lTVV+i.net]
ソフトウェアテスト
ja.wikipedia.org/wiki/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%86%E3%82%B9%E3%83%88

157 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 02:18:46.75 ID:AHzpMzOz.net]
>>152
TDD、テストファーストだと、先にテスト作って、テストが失敗することを確認しておくことも。
で、テストが通るようになったら、そのメソッドは完成。

テストしやすいような設計も要求される。

158 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 02:24:58.72 ID:i6lTVV+i.net]
ところで話ガラリと変わるんだけど
スレッドってどういうところでどういう処理をするときに使う?
プログラム自体の挙動全体をスレッド化する?それとも特定の関数だけスレッド化する?



159 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 02:25:00.49 ID:HU33fwDL.net]
むしろテストを突破するだけのニセコード書くドカタが多すぎて危険

160 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 02:27:19.95 ID:HU33fwDL.net]
>>156
サブスレッド実行したい時としか言いようがない
プログラム全体とかメソッドだけとかいう発想はない

161 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 02:35:26.00 ID:i6lTVV+i.net]
例えば「ある重たい処理を走らせるときに,画面が固まっている状態を防ぐために
プログレスバーを出すとする。この時,主処理とは別にプログレスバーを動かす処理を
同時に動かす必要がある。これはマルチスレッドで実現する」みたいな話がある。

つまり,今まで作ってた処理だとどうも動きがよろしくないな,という時に
マルチスレッドで作ってみてはどうか,という選択が生まれるという感じで認識してればOK?
未だにマルチスレッドでプログラムを本格的に作ったことがなくて
そういう機会がないだけなのかよく分からなくてさ

162 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 03:14:30.12 ID:AHzpMzOz.net]
>>156
何もしなくても1つはスレッド走ってるだろ。
並列化したいところはマルチスレッドにする。
サーバーとか、複数人を相手にするものを作ってみればわかるんじゃないか。

163 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 03:37:59.87 ID:i6lTVV+i.net]
>>160
なーるほどなー
機会があれば作ってみますわ( ・ω・) dd

164 名前:126 mailto:sage [2015/05/05(火) 13:35:57.68 ID:L//ecjsr.net]
たびたび失礼します.
今記述しているクラス uSentence にて,インスタンス変数が10個ほどあり,
コンストラクタでは String[] ssをうけとって,個々のインスタンス変数に順に代入しようとしています.

そこで相談なんですが
ss[0] -> uSentence.SerialNumber
ss[1] -> uSentence.textEnglish
ss[2] -> uSentence.textJapanese
...
ss[12] -> uSentence.trainning30days
と代入するペアをテーブルをつくって対応付けることは可能でしょうか?
それとも以下のように switch で分岐するしかないのでしょうか?
あるいは,こういう時の見通しのいい方法があるのでしょうか?

ideone.com/v7tBnL

よろしくお願いいたします.

165 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 14:06:29.55 ID:IMCgsh6x.net]
>>162
インスタンス変数名をキーにして
Mapとか使ってみるとよいかも。

166 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 14:08:07.56 ID:VqcgXOX/.net]
なんでループと関係ないものをループにしたがらかなあ
日付解析をメソッドにしてSerialNumberと同様につらつらと代入を書くのが筋

167 名前:126 mailto:sage [2015/05/05(火) 14:12:09.33 ID:L//ecjsr.net]
>>163
それは凄い発想ですね
個々のクラスはインスタンス変数群の代りに一個のマップを持ち(あるいは int 用の map, double 用の map とか)
変数名はただのキーワードに成り下がる‥

どうでもいい場合でも効率について突っ込まれる C/C++ ではありえない話です,ありがとうございます.

168 名前:126 mailto:sage [2015/05/05(火) 14:29:12.64 ID:L//ecjsr.net]
>>164
のぞいてくださりありがとうございます.

>SerialNumberと同様につらつらと代入を書くのが筋

ああ,やっちまった
ideone.com/yB3Er6
確かに書いてみると非常に楽でした,書いてみるまでわかりませんでした‥



169 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 14:38:08.89 ID:9i5Yx/sk.net]
>>166
こういう方法もあるけど確かJava 8以降の文法
ideone.com/Qn3Xpj

170 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 16:06:01.53 ID:67f08jzO.net]
これだと1000個のダイアログを表示したり消したりするのにとても時間が掛かってしまいます。これを一瞬でする方法はありませんか?
public class Main {
public static void main(String[] args) {
Dlog[] d=new Dlog[1000];
for(int i=0;i<d.length;i++){
d[i]=new Dlog(100,100,"あいう.gif");
}
for(int i=0;i<d.length;i++){
d[i].setVisible(true);
}
try{Thread.sleep(5000);}catch(InterruptedException e){}
for(int i=0;i<d.length;i++){
d[i].setVisible(false);
}
}
}

171 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 16:07:47.04 ID:67f08jzO.net]
インポート省略
public class Dlog extends JDialog{
Dlog(int x,int y,String str){
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle rect = env.getMaximumWindowBounds();

setSize(x, y);
int x2=new java.util.Random().nextInt(rect.width)+1-x;
if(x2<0){
x2=0;}
int y2=new java.util.Random().nextInt(rect.height)+1-y;
if(y2<0){
y2=0;}
setBounds(x2,y2,x,y);
setResizable(false); //サイズ変更不可

JPanel p = new JPanel();
p.setPreferredSize(new Dimension(x, y));
p.setOpaque(false);

Container contentPane = getContentPane();
contentPane.add(p, BorderLayout.CENTER);//フレームにパネルを追加
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

dispose(); // 表示枠の状態を切り替えるために一旦解放
setUndecorated( !isUndecorated() ); // トグル切り替え

JLabel l = new JLabel(new ImageIcon("./img/"+str));

setBackground(new Color(0,0,0,0));//透明

p.add(l);}}

172 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 16:28:01.70 ID:2BN427HT.net]
1000個のダイアログ表示とかウイルスでも作ってんのか

173 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 16:51:01.86 ID:67f08jzO.net]
ウイルスではありません。ソースを見てください。
透明フレームを使い画像(透過gifなど)を画面のランダムな位置に表示したいです。

174 名前:126 mailto:sage [2015/05/05(火) 17:22:40.96 ID:L//ecjsr.net]
>>167
なるほど
なんとかできました ideone.com/8tXdlA
アイディアありがとうございました

175 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 17:27:17.35 ID:Gs+oRm+R.net]
staticなメソッドを呼ぶのに、クラス名でなくインスタンスを指定した場合など、
黄色い警告は出るがプログラムは普通に走ります。
それでも修正する必要があるのでしょうか?
修正しない場合、予期せぬエラーなどが出るのでしょうか?
教えてくだちゃい。

176 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 18:38:21.81 ID:AHzpMzOz.net]
>>173
Javaを書く人は全てその何か知らない黄色い警告が出る環境で書いてると思うか?

177 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 19:02:44.19 ID:S01jPe5f.net]
多くのドカタは黄色の線を気にしてないな

178 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 19:23:52.16 ID:t65JX4y1.net]
SuppressWarningsおじさん「SuppressWarnings」



179 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 22:01:57.82 ID:tLMXbbMx.net]
>>173
予期しないエラーは無い
なんでこんなおかしな文法がJavaにあるのか不思議

180 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 22:17:30.72 ID:U6jrbx/w.net]
>>171のサンプル作りました。
ux.getuploader.com/tkr_java/download/18/ 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)


181 名前:デフォルトの名無しさん mailto:sage [2015/05/06(水) 02:37:36.38 ID:98HapcQN.net]
static宣言されたフィールドやメソッドはクラスに用意されるけど、
インスタンスを生成したときにはそのインスタンスにもstaticフィールドとメソッドが用意される
そのクラスのインスタンスから何個生成しても全部のインスタンスに用意されて、共有されてる
だからインスタンスAが手に入れたものが、インスタンスBにも共有したいときとかに使えば良い

例えばとあるクラスから夫と妻インスタンスを生み出したとする
夫の稼ぎは妻も共有するから、金フィールド

182 名前:ヘstaticにしなければならない
でも、クラス自体の金フィールドに代入するのは夫が金を稼いでくるんだから意味的におかしい
だから夫インスタンスの金フィールドに代入して、それを妻も共有するようにするようにすれば、意味的に合う

っていう意味的な解釈をしてプログラムを組むときにこういう文法は必要
[]
[ここ壊れてます]

183 名前:デフォルトの名無しさん mailto:sage [2015/05/06(水) 02:44:18.11 ID:yunSymH1.net]
非常に疑問

184 名前:デフォルトの名無しさん mailto:sage [2015/05/06(水) 03:47:24.43 ID:o42IIic2.net]
これからのORACLE MASTERはPaaSのスキルが必須に
www.atmarkit.co.jp/ait/articles/1504/30/news009.html

185 名前:デフォルトの名無しさん mailto:sage [2015/05/06(水) 03:49:28.67 ID:o42IIic2.net]
寝ぼけてて貼る記事間違えた

日本の開発者コミュニティが次世代Java仕様策定に貢献、Lambdaを手に入れたJavaテクノロジのその先へ
www.atmarkit.co.jp/ait/articles/1505/01/news011.html

186 名前:デフォルトの名無しさん mailto:sage [2015/05/06(水) 17:08:49.46 ID:4WkU8mIY.net]
やっぱり楽天はこういうアピールの仕方がうまいな
MSのイベントではMSが富士通に気を遣ってくれていたけど
そうされずとも自分から言ったほうがいいことだってあるんだよね

187 名前:デフォルトの名無しさん mailto:sage [2015/05/06(水) 18:55:20.35 ID:o0J6yf1x.net]
JSFが使われるようになるといいね(棒)

188 名前:デフォルトの名無しさん mailto:sage [2015/05/06(水) 19:59:45.34 ID:J212QRbO.net]
c+始めたいけど、ここはjavaと違うから注意しとけみたいなのある?



189 名前:デフォルトの名無しさん mailto:sage [2015/05/06(水) 20:08:02.85 ID:mbn+dbFM.net]
プログラミングに対する考え方を根本的に変える必要がある。
Javaは適当に作ってもなんとなく動くし間違ってればちゃんとその場でコケて分かりやすいエラーを出してくれるが、
C++では原因箇所と全く無関係なところで突然逝くという極めてタチの悪いトラブルが頻発する。
バッファオーバーランのようなメモリ絡みのセキュリティホールを全く作り込まないのは基本的に不可能。C++の熟練者でさえ例外ではない。
常にメモリを意識し、不正な操作を行わないように細心の注意を払ったコーディングが必要。

190 名前:デフォルトの名無しさん mailto:sage [2015/05/06(水) 20:08:21.70 ID:o0J6yf1x.net]
ここはc+スレではないので質問取り下げたら

191 名前:デフォルトの名無しさん mailto:sage [2015/05/06(水) 20:53:12.56 ID:J212QRbO.net]
そっか。c+はGCないからメモリ管理が面倒なんだっけ?
その場でコケるっていうのはコンパイルエラーの事?つまりc+はコンパイルエラーがないor甘くて実行時エラーが多いって事?

192 名前:デフォルトの名無しさん mailto:sage [2015/05/06(水) 21:48:19.82 ID:mbn+dbFM.net]
>>188
違う
Javaで配列に書き込むとき配列サイズ以上のインデックスを指定すると例外が発生するだろ?
C++では何事もなかったようにそのまま動作する。配列の領域外の値が書き換わったままで。
どこに影響が出るのかは予測できない。何らかのデータの値が狂っていることが後で発覚しても
そのデータは問題の配列と何の関係もないし再現性もないので、原因を特定するのが極めて難しい。

193 名前:デフォルトの名無しさん mailto:sage [2015/05/06(水) 21:51:25.06 ID:o0J6yf1x.net]
語りたいw

194 名前:デフォルトの名無しさん [2015/05/06(水) 23:27:15.60 ID:0pmmMRzu5]
質問なんですが、
javaに限ったことではないんですけど、
doubleで小数点の演算を行うと2進数だから誤差が発生しうるというサイトをよく見ますが、
なぜdoubleに直接0.1などを設定して、すぐ表示を行っても
ちゃんと0.1が表示されるのでしょうか?
2進数で0.1は表現できないため、設定した時点で誤差が発生してるのではないのでしょうか?

195 名前:デフォルトの名無しさん mailto:sage [2015/05/07(木) 00:10:47.51 ID:jWOvFDzb.net]
誤差が出るのは10進数小数と2進数小数の相互変換をするときである
0.1など特定の10進数小数を表現できるのは内部では特定の値だけ(数値を表示するときに)特別な扱いをしているから

196 名前:デフォルトの名無しさん mailto:sage [2015/05/07(木) 01:01:46.51 ID:+62vHunc.net]
>>192
>内部では特定の値だけ(数値を表示するときに)特別な扱い

すみませんがソースを教えてください

197 名前:デフォルトの名無しさん mailto:sage [2015/05/07(木) 08:10:37.78 ID:+T/0NNBx.net]
>>189 怖い。範囲外って事はそのアドレスに別の変数が入る可能性があるんだよね。
例外も発生しないとか。。

198 名前:デフォルトの名無しさん mailto:sage [2015/05/07(木) 12:38:39.29 ID:8TV6VEhu.net]
Javaのメモリリークの方が怖くね?



199 名前:sage [2015/05/07(木) 14:54:46.46 ID:Sw2tawdNr]
>>10進数小数と2進数小数の相互変換

doubleは10進数も許容しているということでしょうか?
ならば2進数で表現できない数値を全て10進数で表現すれば
誤差なんて生まれないと思っているのですが、
根本的に考え方が間違っていますか?

200 名前:デフォルトの名無しさん mailto:sage [2015/05/07(木) 15:15:48.62 ID:JT7pwAxA.net]
Javaのメモリリークなんかプロファイラ使えば楽勝
問題のオブジェクトが生まれた場所から、参照掴んで離さない粘着野郎の所在まで一目瞭然

201 名前:デフォルトの名無しさん mailto:sage [2015/05/07(木) 19:33:43.41 ID:CIjoBrB2.net]
doubleの内部表現は2進数小数
一方でソースコードに記述するのは10進数小数、画面表示するなど文字表現する時もだいたい10進数小数
10進数小数で正確に計算したいのならBigDecimalというクラスを使う

202 名前:デフォルトの名無しさん mailto:sage [2015/05/07(木) 19:40:02.76 ID:vFd+wfOU.net]
いうならIEEE754でdoubleのフォーマットが決まってるところまでいわないと

203 名前:デフォルトの名無しさん mailto:sage [2015/05/07(木) 19:40:08.58 ID:FA1idOpP.net]
お前らこれでも嫁

docs.oracle.com/javase/jp/8/docs/api/java/lang/Double.html#toString-double-

204 名前:デフォルトの名無しさん mailto:sage [2015/05/07(木) 20:14:28.28 ID:FA1idOpP.net]
hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/lang/Double.java

ほれ、これも見ておけ

205 名前:デフォルトの名無しさん mailto:sage [2015/05/07(木) 20:19:23.15 ID:FA1idOpP.net]
色々複雑な計算やっとるで

hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/sun/misc/FloatingDecimal.java

206 名前:デフォルトの名無しさん mailto:sage [2015/05/07(木) 22:26:23.62 ID:9qCHaQMT.net]
JDBCがロードできません
jar自体はtomcat/6.0/lib内に格納しjspファイルからはよべるようです
しかしWEB-INF/src/配下からはNo suitable driverとなります
またその後WEB-INF/libへjarをコピーしたのですが状況は変わっていません
どうしたらよいでしょうか?
EclipseIndigoでやっているので操作方法はこの上から行える方法でお願いします!

207 名前:デフォルトの名無しさん mailto:sage [2015/05/07(木) 22:47:19.42 ID:9qCHaQMT.net]
>>203
自己レス
解決しました。
考えてくれた人ごめんなさいm(_ _;)m

208 名前:デフォルトの名無しさん mailto:sage [2015/05/07(木) 23:03:25.75 ID:Sw2tawdNr]
計算を行わなければ、doubleに2進数で表現できない数値を
代入しても誤差が発生しないことがわかりました。
ありがとう



209 名前:デフォルトの名無しさん mailto:sage [2015/05/07(木) 23:12:05.93 ID:vVioZ1TW.net]
1.情弱
2.設計が間違っている

210 名前:デフォルトの名無しさん mailto:sage [2015/05/08(金) 00:08:58.85 ID:jPhNbEKa.net]
普段面倒だからint→Stringの変換は
String s=int+"";
でしているんですが
String s = String.valueOf(int);
のほうがいいんですかね?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<271KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef