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

レス数が1000を超えています。これ以上書き込みはできません。
2018/02/10(土) 17:49:40.56ID:l9ZzjyKP
プログラミング言語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() を使え。※

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

前スレ
★★Java質問・相談スレッド180★★
https://mevius.5ch.net/test/read.cgi/tech/1492780397/
2018/11/11(日) 11:27:22.91ID:wM/j3zKs
>>965
普通にWHERE書け
SQL分からないんならJavaの前にSQLの入門書を終えてきなさい
967デフォルトの名無しさん
垢版 |
2018/11/11(日) 12:00:45.21ID:6MwZdEZT
"SELECT * FROM fruit WHERE PRICE = X"だと
Xが文字列になってしまうと。
Str1とXを比較すればよいと考えていましたが難しい
2018/11/11(日) 13:07:00.71ID:iJkGWVs5
プレースホルダ
969デフォルトの名無しさん
垢版 |
2018/11/11(日) 18:24:10.42ID:0F8Q4Ddx
>>967
prepare にするかそのまんまSQL文の中に文字列で埋め込まれるようにするか、だな。

prepare の場合はこんな感じね。PreparedStatement クラス使うやつ。"?" の部分が置き換え部分。
https://qiita.com/ika_katsuo/items/dfbf9ed227ca08256760
970デフォルトの名無しさん
垢版 |
2018/11/11(日) 18:43:06.39ID:KBFxC5Cm
もし変数xの値が一つしかないなら
プリペアドステートメントでいちいち事前コンパイルする必要がない
ふつうにSQL問い合わせの文字列作るほうが速い簡単お手軽
2018/11/11(日) 21:38:36.99ID:3JRsWB+V
今時直接データ埋め込みとかあり得んだろ…
972デフォルトの名無しさん
垢版 |
2018/11/11(日) 22:00:57.21ID:KBFxC5Cm
知能が低いと
文字列の加工すらできないのか

なるほどな
2018/11/11(日) 22:26:11.35ID:cBZ/CGbZ
それが何を意味するのかも考えずどっかからコピペしてるからそういう質問が出るんだろうけど、技術書見ればプリペアードステートメントとか順序を追って書いてあるもんでもないのかね
2018/11/11(日) 22:28:33.94ID:VPyBQ4Rk
質問スレで質問に対して煽るやつの知能も大概だとおもうぞ
2018/11/11(日) 22:31:24.54ID:3JRsWB+V
文字列の加工程度でドヤるとか w
2018/11/11(日) 22:32:01.58ID:4KGbvnyj
何も調べずに質問する方が大概だろ、質問者は神様ですってかw
2018/11/11(日) 23:35:34.02ID:infpFr5m
>>963
> わかってると思うが当然標準ライブラリとして提供してるAPI自体は環境に依存してない
>
> まぁ internal なコードに環境による場合分けくらいは書いてあるかもしれんけど、
> JVMにはその環境用のコードさえあればいいから、全環境のネイティブコードは必要ない

そんなことないから。java6以降環境依存な標準API追加してるからjava側で場合分けする必要ある。
978デフォルトの名無しさん
垢版 |
2018/11/12(月) 00:34:16.10ID:MtlIUxHY
>>970
prepare にしとくとSQLインジェクション防止になるというのもある。
https://blogs.oracle.com/sec/042_sqlinjection_1
もちろんどうやってもそんなことは起こり得ないし1回しか同じSQL文使わないみたいな場合は埋め込めばいい。
979デフォルトの名無しさん
垢版 |
2018/11/12(月) 16:56:20.13ID:ayEXvCJf
spring frameworkはMVCですか?
2018/11/12(月) 17:14:22.45ID:cpYKEuEA
spring frameworkはフレームワークで、MVCはプログラムの一つのモデルです。
2018/11/12(月) 17:37:37.98ID:xaL5+kQv
>>977
> 環境依存な標準API
例えば?
982デフォルトの名無しさん
垢版 |
2018/11/12(月) 17:50:53.29ID:ayEXvCJf
>>980
どのモデルを採用してるのですか?
2018/11/12(月) 22:41:38.37ID:JKEbmYKN
>>981
awtのDesktop、nio2(more nio)のファイルパーミッション等、apple javaのeawt移植。

あと6以前からのjava soundもjreに含まれてるのは単なるRIで仕様と実装は別物で、
実装部分のLineの挙動はプラットフォーム依存。7以降MIDIのソフトシンセはクロスプラットフォームになったけど。
984デフォルトの名無しさん
垢版 |
2018/11/12(月) 23:02:27.75ID:THHCGQKY
Javaのメモリ管理に関して教えてください!

例えば、PCのメモリが32GBあるPCで、
インスタンスを大量生成するプログラムを動かすとします。
また、このプログラムの起動引数に、ヒープ最大使用量=2GB
を設定して起動していたとします。

この場合、大量のインスタンスを生成していった場合ですが...
ヒープ最大使用量=2GBを超えてヒープを使用することはありますか?

それと、ヒープサイズがヒープ最大使用量に近付いた場合、
ガベージコレクションが発生するようになりますか?
2018/11/13(火) 06:25:54.30ID:qPPBH0nu
>>984
インスタンスて何?
プロセスのことか?
986デフォルトの名無しさん
垢版 |
2018/11/13(火) 06:56:40.27ID:t6QPVwz9
>>984
> ヒープ最大使用量=2GBを超えてヒープを使用することはありますか?

ないよ、ヒープ最大使用量を超えるとOutOfMemoryErrorが投げられる

> ヒープサイズがヒープ最大使用量に近付いた場合、
> ガベージコレクションが発生するようになりますか?

なるよ、サーバを管理してるけどたまにアプリにメモリリークがあって
メモリが解放されなくてGCが頻発して最終的にOutOfMemoryErrorになる
ことがある、急速にメモリを消費してGCが稼働する間もなくエラーになることもある
987デフォルトの名無しさん
垢版 |
2018/11/13(火) 08:44:10.18ID:z+WaWgDc
>> 985

Object o = new Object();
とかです!

>> 986

ありがとうございます!
ということは、PCのメモリを全部食い潰すことはないのですね。
助かります。
2018/11/13(火) 09:22:02.07ID:3SCk9MN5
あほやな
989デフォルトの名無しさん
垢版 |
2018/11/13(火) 16:13:23.72ID:BO12xGFO
参照にnull渡してもすぐに廃棄してくれないから
メモリぎりぎりの処理をするとGC発生せずに落ちる
OutOfMemoryErrorの前に1度はフルGCしろよと思う
2018/11/13(火) 23:42:29.05ID:u0U8MmUH
hotspotはやってるだろ?今やってないのか?
991デフォルトの名無しさん
垢版 |
2018/11/18(日) 19:34:14.79ID:pZxF/iWK
java11に移行しようとすると、ライブラリ類が対応してるのか不安
自分のアプリだけテストしても不十分だ
例えばNettyもjava11で少し問題が出たようだ
992デフォルトの名無しさん
垢版 |
2018/11/18(日) 19:51:16.43ID:pZxF/iWK
java8からの移行を考えてたけど、やっぱり一部パッケージが削除されたせいで
動作しないものが出るようだ
移行作業はまずビルドが成功するかという問題があって、
失敗したら最悪ライブラリを自分で修正しないといけなくて、
ビルドに成功したとしてもライブラリはjava11でテストされていないという状況

ほんの1年ちょい前はjava8が最新だったんだが・・・
こんなの新規プロジェクト間に合わないだろ
移行作業しつつ開発進めないといけない
993デフォルトの名無しさん
垢版 |
2018/11/18(日) 21:06:07.68ID:pZxF/iWK
https://builder.japan.zdnet.com/sp_oracle/35095997/2/
>Java Policy Tool

これの代替手段はありますか?

>時代遅れとなったセキュリティAPI
これはjava.securityのことですか?java11でそのパッケージが無くなるんですか?
2018/11/18(日) 23:08:00.76ID:JqgRfJJT
>>993
>これの代替手段はありますか?
ない。どうせpolicy toolはカスタムポリシー対応してないからポリシーファイルは手書きする必要がある。
そもそも、これ技術デモだから。

>これはjava.securityのことですか?java11でそのパッケージが無くなるんですか?
非ポリシーベースのsecurity apiのうち1.1時代のだけ。
995デフォルトの名無しさん
垢版 |
2018/11/18(日) 23:39:07.26ID:pZxF/iWK
java8から11に移行する場合、security apiは特に変わってないと考えていいですか?
996デフォルトの名無しさん
垢版 |
2018/11/19(月) 00:09:28.48ID:MZ1FDVWs
あー1.1のAPIを8で使ってたらそうじゃないのか
2018/11/19(月) 00:35:10.50ID:7qQcp7Oe
正確にはcheckPermissionに転送してるだけのSecurityManagerの一部のメソッドだけどね。
今のところ削除予定なのは特殊なやつだけだけど1.1/1.2時代のapi削除するのは時間の問題だと思うよ。
998デフォルトの名無しさん
垢版 |
2018/11/19(月) 00:47:13.92ID:MZ1FDVWs
何で最初から理想的なAPIにできないんだろう?
999デフォルトの名無しさん
垢版 |
2018/11/19(月) 11:00:29.57ID:C68x9bSi
>>998
君が作ってないからさ
君が作れば理想的なものになる
今すぐ新言語を作れ
1000デフォルトの名無しさん
垢版 |
2018/11/19(月) 11:04:42.70ID:X6/A5UND
>>998
バグと同じで改修に次ぐ改修で無理が想定外や見落としが出て、結果継ぎ接ぎになるんだろ。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 281日 17時間 15分 2秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況