トップページ⇒tech
1001コメント273KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/10/20(日) 19:30:39.35
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    http://pc11.2ch.net/hp/
Webプログラミング http://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() を使え。※

前スレッド
★★Java質問・相談スレッド164★★
http://toro.2ch.net/test/read.cgi/tech/1378219684/
0192デフォルトの名無しさん2013/10/31(木) 16:23:04.87
Objectのfinalizeってデストラクタと同じ?
0193デフォルトの名無しさん2013/10/31(木) 18:14:42.08
ちがう

いつ呼び出されるか分からない
書くだけでGCによるメモリ開放が遅れてパフォーマンスに悪影響が出る

重要な外部リソースの開放は自分でやるかCloseableインターフェースを使うべきだし
外部リソースを持たないなら書くだけ無駄だし
基本的にはいらない子
0194デフォルトの名無しさん2013/10/31(木) 18:18:00.34
>>192
つかわない
0195デフォルトの名無しさん2013/10/31(木) 18:21:03.57
3.10.5 java.lang.Object.finalize()についての注意事項
http://software.fujitsu.com/jp/manual/manualfiles/M080037/J2S21060/02Z2A/note03/note0088.htm
0196デフォルトの名無しさん2013/10/31(木) 18:21:43.61
【Java】GCとfinalizeメソッドの関係 - 16bit!
http://sakuramochi702.hatenablog.com/entry/2013/06/03/125052
0197デフォルトの名無しさん2013/10/31(木) 18:22:53.61
>>195
不治痛だしsolarisだろう
0198デフォルトの名無しさん2013/10/31(木) 18:24:04.91
現場から学ぶWebアプリ開発のトラブルハック(9):JavaのGC頻度に惑わされた年末年始の苦いメモリ (3/3) - @IT
http://www.atmarkit.co.jp/ait/articles/0712/27/news081_3.html
0199デフォルトの名無しさん2013/11/01(金) 01:05:00.96
javaにRAIIをってのはどうなったの?
0200デフォルトの名無しさん2013/11/01(金) 01:11:25.44
try with resourcesでお茶を濁して終了
0201デフォルトの名無しさん2013/11/01(金) 01:29:11.36
お前ら基本が出来てなさすぎ

>>188
この場合はidentifierじゃなくてidentity。Object#equalsとObject#hashCodeの汎用規約はidentityと決まってる。
だからequivalencyが必要な時オーバーライドするんだろうがggr
ttps://www.google.com/webhp?q=java+equals+identity&safe=off

>>182
collections frameworkの実装はHashMap以外にもObject#hashCode使ってる。(List実装は使ってないけど)
Object#equalsをオーバーライドするとき常に一緒にオーバーライドするのがObject#hashCodeの要件だし、
Object#hashCodeはObject#equalsがfalseのときでも同じハッシュ返してもいいからObject#equalsがfalseのとき常に違う値返すようにしないとパフォーマンス悪い。

>>187
ハードウェアでノイズ生成でもしないと必ず一意になる値は生成不可能だから一般的にはダブる確率が低くてコストも低いメモリアドレスで代用する。
openjdkの実装もそうなってるしjavadocにも記述されてるからラッパークラスのキャッシュと同じでAPI側の仕様。

>>191
nullのidentity hashは必ず0と決まってるからnull時の動作は別途記述がない限り定義済み。
collections frameworkの実装は基本的にnullableだから>>168の話とnullは関係ない。
0202デフォルトの名無しさん2013/11/01(金) 01:33:28.49
>>199
project sumatraでGPUと共有するメモリをGPUが使い終わるまでGCしないようにVMに変更入った。
RAII自体はとっくの昔に方向性が変わって成果物はtry with resourcesとその他諸々になってる。
0203デフォルトの名無しさん2013/11/01(金) 01:56:35.26
>>201
野良ライブラリ作った奴がMapやListの実装にequalsやhashCode使ってるかは分からないだろJK
0204デフォルトの名無しさん2013/11/01(金) 02:02:07.60
>>201
細かいやつだな。キーを定義しなおすほど潔癖症なのかそれともHashMapをHashSetと勘違いしてないかい?
0205デフォルトの名無しさん2013/11/01(金) 02:36:52.95
hash codeは完全一意に作れるわけじゃないのでIDの定義には当てはまりません
hash codeに求められるのは一様に分布することです
0206デフォルトの名無しさん2013/11/01(金) 02:51:38.69
>>201
そーゆーのはブログでやって
0207デフォルトの名無しさん2013/11/01(金) 07:59:02.46
>>201
http://d.hatena.ne.jp/chiheisen/20120318/1332071962 によると、
デフォルトではメモリアドレスじゃなくて乱数使ってるっぽいが。
0208デフォルトの名無しさん2013/11/01(金) 09:24:13.31
>>201のどこが間違ってるのかわからん
お前らは自分のチンケな自尊心を守るために難癖つけてるだけだろう
0209デフォルトの名無しさん2013/11/01(金) 11:00:19.43
チンケな自尊心を持つのは>>201本人w
0210デフォルトの名無しさん2013/11/01(金) 12:42:06.83
>>201はきっと職場でも浮いた存在なんだろうな
0211デフォルトの名無しさん2013/11/01(金) 15:45:43.26
>>207

Object - hashCode() (Java Platform SE 7)
http://docs.oracle.com/javase/jp/7/api/java/lang/Object.html#hashCode()
> これは通常、オブジェクトの内部アドレスを整数に変換することによって実装されます

Object - hashCode() (Java Platform SE 6)
http://docs.oracle.com/javase/jp/6/api/java/lang/Object.html#hashCode()
> 通常、これはオブジェクトの内部アドレスを整数値に変換する形で実装されます

Object - hashCode() (Java 2 Platform SE 5.0)
http://docs.oracle.com/javase/jp/1.5.0/api/java/lang/Object.html#hashCode()
> 通常、これはオブジェクトの内部アドレスを整数値に変換する形で実装されます
0212デフォルトの名無しさん2013/11/01(金) 15:46:39.29
※通常
0213デフォルトの名無しさん2013/11/01(金) 15:49:18.39
16bitマシンや64bitマシンではメモリアドレスを返すという仕様は満たせない
0214デフォルトの名無しさん2013/11/01(金) 16:01:54.36
Object - hashCode() (Java 2 プラットフォーム SE v1.4.0)
http://docs.oracle.com/javase/jp/1.4/api/java/lang/Object.html#hashCode()
> 通常、これはオブジェクトの内部アドレスを整数値に変換する形で実装されます
0215デフォルトの名無しさん2013/11/01(金) 16:07:47.10
>>211
へんなところで文章切るなよ。

> (これは通常、オブジェクトの内部アドレスを整数に変換することによって実装されますが、
> この実装テクニックは JavaTM プログラミング言語では必要ありません。)
0216デフォルトの名無しさん2013/11/01(金) 16:07:59.73
Java 2 Platform SE 1.3: クラス Object - hashCode()
http://docs.oracle.com/javase/jp/1.3/api/java/lang/Object.html#hashCode()
> 通常、これはオブジェクトの内部アドレスを整数値に変換する形で実装されます
0217デフォルトの名無しさん2013/11/01(金) 16:09:48.44
> この実装テクニックは JavaTM プログラミング言語では必要ありません

これはオーバーライドするときに内部アドレスのこと気にせずにオーバーライドできるよって意味だろJK
0218デフォルトの名無しさん2013/11/01(金) 16:14:56.95
Java言語では必要ありません、に対しての通常なわけだから
「他の言語では内部アドレスを整数に変換することによって実装されますが」と同等の意味だろう。

普通に読めば。
0219デフォルトの名無しさん2013/11/01(金) 16:16:11.57
ObjectのhashCode()の実装はJavaで書かれてません
0220デフォルトの名無しさん2013/11/01(金) 16:18:22.78
しかも1.2の頃から確認できる文だからなぁ。10数年前は一般的だったテクニックだったっつー事だね。
0221デフォルトの名無しさん2013/11/01(金) 16:19:16.50
>>218
どうしてこんな頭の悪い奴ほど主張が強いのだろう。
0222デフォルトの名無しさん2013/11/01(金) 16:20:19.00
Javaで書かれてないけどデフォルトでは os::random() 呼んでるからなぁ。
02232212013/11/01(金) 16:22:31.29
アンカーミス>>218ではなく>>216
0224デフォルトの名無しさん2013/11/01(金) 16:22:39.22
っつかVMのソースコードからデフォルトで乱数使ってるの判明してんのに、さすがに見苦しいわ。
0225デフォルトの名無しさん2013/11/01(金) 16:23:18.01
偶数しか返さないhashCode()、とか、やだなあ。おい
0226デフォルトの名無しさん2013/11/01(金) 16:23:50.84
そりゃ内部アドレスを返してたらセキュリティ的に危ないだろJK
0227デフォルトの名無しさん2013/11/01(金) 16:27:31.81
JDKのインスト―ルフォルダ内にあるsrc.zip
0228デフォルトの名無しさん2013/11/01(金) 16:39:40.93
>>227
今回の Object#hashCode() の場合はネイティブだからそれ見ても無駄。
0229デフォルトの名無しさん2013/11/01(金) 16:43:33.77
これやれば分かる

Object[] obj = new Object[200];
for (int i = 0; i < obj.length; i++) {
  obj[i] = new Object();
  System.out.printf("%d %d\n", obj[i].hashCode(), obj[i].hashCode());
}
0230デフォルトの名無しさん2013/11/01(金) 16:56:13.81
はい、この話はこれでオシマイ、次の質問どうぞー
0231デフォルトの名無しさん2013/11/01(金) 16:59:34.57
おーばーらいどってなんですかー?
0232デフォルトの名無しさん2013/11/01(金) 17:09:36.54
おーらいおーらい
0233デフォルトの名無しさん2013/11/01(金) 17:11:01.03
>>229
やったお
http://ideone.com/vYNDS4
0234デフォルトの名無しさん2013/11/01(金) 17:25:23.65
>>207
おもしろい実験だな
0235デフォルトの名無しさん2013/11/01(金) 17:34:31.67
勉強になったので記録させていただいた

http://www54.atwiki.jp/projecthikky/pages/40.html
0236デフォルトの名無しさん2013/11/01(金) 17:54:32.32
本来の争点からズレてないか?hashCodeのオーバーライドについて話してたんじゃなかったのか?
0237デフォルトの名無しさん2013/11/01(金) 18:54:18.47
オブジェクトはIDだよおっかさん
0238デフォルトの名無しさん2013/11/01(金) 18:56:50.44
乱数はID
0239デフォルトの名無しさん2013/11/01(金) 21:48:01.12
論破完了
0240デフォルトの名無しさん2013/11/01(金) 21:54:21.91
>>151-
この辺りからの流れか、えらく続いてるな
もうループしてるだけだろ
0241デフォルトの名無しさん2013/11/01(金) 21:55:43.29
iPad air ほぢい
0242デフォルトの名無しさん2013/11/02(土) 01:25:29.23
>>201
そーゆーのはブログでやれよ雑魚
0243デフォルトの名無しさん2013/11/02(土) 01:27:33.65
馬鹿には無理
0244デフォルトの名無しさん2013/11/02(土) 01:37:04.66
eclipseでメソッドのヘルプをeclipseについてるブラウザで閲覧しようとしたところ、
eclipseごと固まってしまいました。

1時間ほどの作業を保存していないので、
消えるとショックなんですが、
復元機能はついてますか?
0245デフォルトの名無しさん2013/11/02(土) 01:39:15.54
こちらへどうぞ。
eclipse総合
http://toro.2ch.net/test/read.cgi/tech/1361510049/l50
0246デフォルトの名無しさん2013/11/02(土) 03:00:39.61
>>172
0247デフォルトの名無しさん2013/11/02(土) 07:39:35.86
次の方
0248デフォルトの名無しさん2013/11/02(土) 12:19:39.67
javaの中級レベルのテキストでお勧めのものはありませんか?
0249デフォルトの名無しさん2013/11/02(土) 12:26:52.72
effective java
0250デフォルトの名無しさん2013/11/02(土) 12:34:38.02
有難うございます
0251デフォルトの名無しさん2013/11/02(土) 12:38:46.61
でも第二版が品切れだな。
他のんない?
0252デフォルトの名無しさん2013/11/02(土) 15:02:28.40
>>249
改版するわけでもなさそうなのに、ピアソンて商売気ないのね
0253デフォルトの名無しさん2013/11/02(土) 16:00:47.98
ピアソン日本として活動してた会社がグループ離れて、全部絶版になった
0254デフォルトの名無しさん2013/11/02(土) 16:05:34.16
以前も業務提携解消で同じようなことがあったような気がするけど、
その時は、一部の本が別の会社が出て、
しばらくして、ピアソン日本で出るようになった記憶。
0255デフォルトの名無しさん2013/11/02(土) 17:14:11.82
使用しているサーバはTomcat5.5なんだけど、JDBCRealmのdigestをMD5に設定した途端に認証に失敗します。もちろんテーブルにMD5のパスワードを入れてるのですがうまくいきません。どうすればいいか教えてください。
0256デフォルトの名無しさん2013/11/02(土) 17:18:01.22
7.0にする
0257デフォルトの名無しさん2013/11/02(土) 18:01:43.61
spring <--> mybatisの連携をやろうと思っているんですが、
どうやってmybatisに依存性を注入すればいいんですか?

これじゃだと、依存性が注入されないんですが、やり方おかしいですか

@Service
public class Sample extends HttpServlet {
@Autowired
SqlSession sqlSession;
0258デフォルトの名無しさん2013/11/02(土) 18:50:10.95
Javaでわからないことを質問するスレ
http://kohada.2ch.net/test/read.cgi/prog/1363851093/
0259デフォルトの名無しさん2013/11/02(土) 19:03:05.10
>>258
このスレと何が違うの
0260デフォルトの名無しさん2013/11/02(土) 19:07:47.82
そこはこのスレより過疎、意味ない
0261デフォルトの名無しさん2013/11/02(土) 20:35:38.29
>>257
spring
http://toro.2ch.net/test/read.cgi/tech/1322414231/
0262デフォルトの名無しさん2013/11/02(土) 21:10:15.59
5 名前: 1 投稿日: 2013/03/21(木) 16:53:49.51
でもリンク書いてくれたスレ、レベル高いなぁ
もっとこう、初心者が気軽に書けるスレがあればいいんだが・・・

warota
02632572013/11/02(土) 22:28:32.53
>>261
誘導先に書き込んだら、自己解決してしまったorz

アスペクト指向って役に立つの?
ロギング、トランザクション、認証以外に用途が全く思いつかないんだけど
0264デフォルトの名無しさん2013/11/02(土) 22:36:42.97
>>263
コメント:書き方に気をつけましょう
0265デフォルトの名無しさん2013/11/03(日) 00:54:09.19
methodA()が呼び出される前・後に、ロギングするようにしたいのですが
どのようにすればいいでしょうか?
0266デフォルトの名無しさん2013/11/03(日) 01:43:29.34
リスペクトされてないアスペクト
02672642013/11/03(日) 08:16:43.37
>>263
「後だし」ていうんだよ
0268デフォルトの名無しさん2013/11/03(日) 08:21:09.13
>>265
「java メソッド呼び出し フック」ggrbしあわせ
0269デフォルトの名無しさん2013/11/03(日) 08:42:21.45
アスペは役に立たない
0270デフォルトの名無しさん2013/11/03(日) 13:51:29.11
ggrasaws
0271デフォルトの名無しさん2013/11/03(日) 15:54:33.89
gdgdurusai
0272デフォルトの名無しさん2013/11/03(日) 17:07:40.76
javaってas演算子無いんだね
キャストに失敗した時、nullがセットされるからめちゃ便利なのに
0273デフォルトの名無しさん2013/11/03(日) 17:12:33.14
>>272
castに失敗したらnullが返るけど

Class#cast (Java Platform SE 7 )
http://docs.oracle.com/javase/jp/7/api/java/lang/Class.html#cast(java.lang.Object)
0274デフォルトの名無しさん2013/11/03(日) 17:13:16.49
嘘はよくない
0275デフォルトの名無しさん2013/11/03(日) 17:18:52.73
SocketChannelクラスにbindが実装されてたんだな
0276デフォルトの名無しさん2013/11/03(日) 17:50:40.17
>>273
おもいっきり、DOCに例外が発生するって書いてないか
0277デフォルトの名無しさん2013/11/03(日) 17:51:36.30
>>273
おまえ一度もjavaに触ったことないんじゃね?
0278デフォルトの名無しさん2013/11/03(日) 20:49:32.47
きっとVMがSunやOracleやGoogleじゃないんだよ
MSとかさ
0279デフォルトの名無しさん2013/11/03(日) 22:44:53.52
それをいうならSunやOracleやIBMだろ
GoogleのああいうのこそまさにえせJava
0280デフォルトの名無しさん2013/11/03(日) 22:48:03.45
プログラミング言語としてのJava言語は特許とってないのか
0281デフォルトの名無しさん2013/11/03(日) 22:51:30.59
JVMやライブラリの中は特許だらけだよ
Oracle神以外が作った処理系をJavaとして世に出すには
Oracle神に大金を支払ってライセンスを受ける必要がある
0282デフォルトの名無しさん2013/11/03(日) 22:53:00.48
JVMを借用する言語を作ったらなんらかのライセンス問題にひっかかりますか?
0283デフォルトの名無しさん2013/11/03(日) 22:57:39.58
馬鹿には無理
0284デフォルトの名無しさん2013/11/03(日) 22:58:29.04
JVM上で動くJava言語ライクな言語を作ったらライセンス違反ですか?
0285デフォルトの名無しさん2013/11/03(日) 23:10:07.47
このご時世、何かしら特許で言いがかりを付けることは可能だろうね
ただ現実としてScalaみたいなのが問題になっていない以上、
あなたの言語がそれを超えることはあり得ないのでまず問題ないといえる
0286デフォルトの名無しさん2013/11/03(日) 23:20:32.59
じゃあ逆にJDKでのコンパイル物が実行できる俺俺JVMを作るのは
0287デフォルトの名無しさん2013/11/04(月) 00:45:08.93
>>286
それはアウト
GoogleとOracleは実際それで絶賛喧嘩中
0288デフォルトの名無しさん2013/11/04(月) 00:49:00.54
x86のエミュレータはOKだのにJVMのエミュレータはアウトなのか
0289デフォルトの名無しさん2013/11/04(月) 01:09:06.18
OpenJDKからフォークしたことにすればおk
GPLになっちゃうからドブに捨てるようなもんだけどな
0290デフォルトの名無しさん2013/11/04(月) 01:23:09.57
Integer Java Virtual Machine のエミュレータ試作 - 日本大学
www.tani.cs.chs.nihon-u.ac.jp/g-2004/karaika/ijvm.pdf

教育用JVMエミュレータの設計と試作
www.gsim.aoyama.ac.jp/~ida/jvm-emu

4L-3 教育用 JVM エミュレータの設計と試作
ci.nii.ac.jp/naid/110002894678

教育用なら大丈夫なんじゃね
0291デフォルトの名無しさん2013/11/04(月) 01:27:24.81
IKVM.NETとかKaffeもOracleに特許料を払ってたりするのか?
■ このスレッドは過去ログ倉庫に格納されています