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

レス数が950を超えています。1000を超えると書き込みができなくなります。
2020/05/06(水) 22:12:08.99ID:q8N1X/Ij0
プログラミング言語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質問・相談スレッド182★★
https://mevius.5ch.net/test/read.cgi/tech/1542595026/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2021/06/27(日) 11:54:20.25ID:zVK842NzM
>>869
微妙?
この文のvolatileは安全であるに掛かってて、その理由は可視性の問題
排他制御に掛かってると読むのは誤読だし、ID:nwZ7YrBt0のほうが全然理解が深いでしょ
2021/06/27(日) 16:11:30.15ID:115i7XI20
>>872
何をもってスレッドセーフと言うかという前提の違いなのかな

volatile付ければ安全って書いてるから
ほぼ同時にスレッド1でwriteしてスレッド2でreadした時に
実際に実行された順序通りの結果が保証されてなければ
writeやreadはスレッドセーフじゃないって考え方でしょ?

オレは順序の保証がなくてもアトミックならreadやwrite自身はスレッドセーフって考え方
順序が問題になるような使い方してるならvolatile付けるだけじゃ駄目だしね
2021/06/27(日) 16:48:02.42ID:FgMNC6o4M
>>873
「volatileが排他制御のためのものである、なんて言ってる人いないよね」ってのが俺の発言だよ
反論するなら暗に名に「言ってる人がいるかどうか」がポイントであって、各人が安全をどう捉えるかの違いなんてどうでもええがな
反論ではなく皆さん気を付けましょうねという話ならわかる
2021/06/27(日) 16:50:58.94ID:FgMNC6o4M
>>873
そもそもID:nwZ7YrBt0の発言は明らかに参照の更新がatmicであることを理解した上での一歩進んだ可視性の話を付け加えて安全と言及してるんだから何れにしても釈迦に説法
2021/06/27(日) 17:18:56.98ID:115i7XI20
「volatileを付けると安全になる」

これが微妙なんよ
volatileをスレッドセーフティを提供する手段として考えてるのが超微妙

排他制御云々書いた人の考えはわからないけど
volatile付ければ安全て言われるとそりゃないわってなる
2021/06/27(日) 17:28:21.23ID:I46qTe+f0
>>876
C/C++ では volatile なんて全く当てにぜずに、例えば posix-thread を使う(し C++11 lator では p-thread が取り込まれてしまった)のですが、Java ではまだ volatile を当てにするコードが生き残っているのですか?
2021/06/27(日) 17:44:55.74ID:FgMNC6o4M
volatile付けるだけで安全なんて発言ないよ
その解釈には無理がある
文脈を理解できない人にまでいちいち配慮してらんないよ
スレ民の個々のスキルなんてマチマチなんだからvolatileをうまく使えるかどうかは本人次第
スレッドセーフティを語る上で可視性を軽視している方が微妙だと思う
879デフォルトの名無しさん (ワッチョイ 0f2c-m5uv)
垢版 |
2021/06/27(日) 18:54:32.76ID:2/k3XUCT0
プリミティブの振舞いは知ってるんだけど…Stringを同時に…読み書きすると…どうなりますか?
結局…スレッドセーフにするんだけど…今まで…なんで動いてたのかって…事で…
880デフォルトの名無しさん (ワッチョイ 0f2c-m5uv)
垢版 |
2021/06/27(日) 19:22:39.09ID:2/k3XUCT0
全ての参照割り当ては…アトミックと…言っているが…本当なんでしょうか?
https://stackoverflow.com/questions/7421558/is-string-s-foobar-atomic

Stringなので…クラスポインタ…書き換える所で…でっていう事で…
クラッシュしなかったら…間違っててもいいんだよ
とりあえず…運が良かっただけだろうね…直しとくわ…
881デフォルトの名無しさん (ブーイモ MM53-eHno)
垢版 |
2021/06/27(日) 19:32:14.10ID:Kcllj5ZjM
>>876
排他制御をコードブロック(複数ステートメント)にのみ使うものだと思ってるのかな?そこが認識が一致しない原因かもしれない

複数ステートメントだったらsynchronized等を使って排他制御する
これはあなたの言う通り、間違ってないです
でも単一ステートメントでフィールドの読み取り・書き込みをする場合は?
これもlongやdoubleの場合は排他制御が必要になる
もちろん複数ステートメントの場合と同じくsynchronized使ってもいいんだけど、この場合はvolatileでも代用できる
上位32ビットの書き込みと下位32ビットの書き込みの間に他スレッドからの読み取りがおこなわれないことが保証されるのだからこれも立派な排他制御ですよ
2021/06/27(日) 20:05:58.60ID:tkVDl+qA0
volatile を付けて、仮想アセンブラを見てみれば?

どういう仮想命令に変換されているか
883デフォルトの名無しさん (ワッチョイ 0f2c-m5uv)
垢版 |
2021/06/27(日) 20:12:36.74ID:2/k3XUCT0
結局…動いてたのは…アトミックだったからだろう…直すか直さないか…しとくわ…
ありがとう…
2021/06/27(日) 20:17:48.74ID:xerWA0240
素人に恐いものはない
885デフォルトの名無しさん (ワッチョイ 4ffd-wfqF)
垢版 |
2021/06/30(水) 18:50:01.91ID:SrJcnOwy0
Java Silverって黒問さえ出来れば同じような問題が出るのでしょうか
受験者の方のご意見いただけたらと思います。
2021/06/30(水) 19:30:31.78ID:QIg09vqWM
>>882
JVMの中間コードは元よりも少しだけ機械が処理しやすい形に変換されたソースコードに過ぎず、実際のマシンの動作と対応するものではない
そんなものを見たところで何の証拠にもならん
お前の好きなルビ糞のVMだって一緒だ
巣に帰れ
887デフォルトの名無しさん (ワッチョイ ff01-V8Fg)
垢版 |
2021/06/30(水) 21:37:57.25ID:Hi9reO8F0
>>885
ほとんど同じだった、ブロンズ、シルバー、ゴールドとったけど
ブロンズが一番難しかった、オブジェクト指向の概念とかよくわからん
2021/06/30(水) 21:50:02.41ID:lfrgx5MM0
質問者が回答者を選ぶ、なぜか腹が立つ
2021/06/30(水) 22:43:14.72ID:DQSwdxmSr
同じですか、ありがとうございました。
890デフォルトの名無しさん (ワッチョイ 0dfd-a+1V)
垢版 |
2021/07/12(月) 13:43:04.09ID:dUo50+T10
Javaの勉強始めたところですが、メソッドのソースって何処を見れば掲載されていますか?
equalsメソッドをAPIドキュメントで見ても、
サマリーやパラメーターや条件は記載さているのですが、
以下のソースはどこ見ればわかるのでしょうか?

public boolean equals(Object obj) {
return (this == obj);
}
2021/07/12(月) 13:44:40.62ID:YE0/YpnC0
初心者がメソッドのソース見る必要があるの?
892デフォルトの名無しさん (ワッチョイ 0dfd-a+1V)
垢版 |
2021/07/12(月) 14:23:03.18ID:dUo50+T10
現時点では必要はないかと思いますが
ご参考に、どのようなところを調べれば分かるのでしょうか?
ご教示いただけたら幸いです。
2021/07/12(月) 14:56:37.86ID:iPT4JJtm0
https://github.com/openjdk/jdk
oracle jdkとは差分があるかもしれんけどここ見れば
894デフォルトの名無しさん (ワッチョイ ad9c-mQSs)
垢版 |
2021/07/12(月) 15:01:08.80ID:rKHfv/e/0
いまのJDK配布物にはsrc.zip同梱されてないんだっけ?
IDEにもよるけどsrc.zipアタッチしておけばメソッド名クリックで中身を潜っていけるのでおすすめ
895デフォルトの名無しさん (ワッチョイ 9b01-s9p1)
垢版 |
2021/07/12(月) 15:05:11.24ID:dUQus4h70
EclipseならF3でOK
2021/07/12(月) 15:23:34.28ID:dUo50+T10
皆さんありがとうございました。
2021/07/14(水) 17:00:58.19ID:x3WS9adnM
Angularが良くわかないんだけど、例えばmd-toobarとmat-toolbarはなにが違うの?
いま触っているのが全部md-xxxだけど、ググるとmat-xxxばかり
package.jsonも、angularーmaterialになっているけど、ググって出てくるのは@angular/materialで、違いが分からない
2021/07/14(水) 17:09:17.78ID:1IdsjIna0
JavascriptってJavaじゃないんやで
2021/07/14(水) 17:14:14.74ID:x3WS9adnM
あ、ここjavaか。すまんな
2021/08/17(火) 23:53:03.30ID:6gOpyHQGd
マルチです。すみません
どうか教えてください
以下のようにarrayList要素を2つ含んだarrayListがあります。
alist = [["a","b","c"],["d","e","f"]]

["a","b","c"]を取得したい場合は以下です。
alist.get(0);

ではarrayList["d","e","f"]の"d"を取得したい場合はどのように書けばいいのでしょうか?

alist.get(0).get(0)とは書けませんでした。
901デフォルトの名無しさん (ワッチョイ ed9c-TWS8)
垢版 |
2021/08/18(水) 06:34:54.57ID:4h49Xkkm0
ジェネリクスList<List<T>>を使ってないんじゃないの?
getしたのがObject型だとgetメソッドがないことになる
ジェネリクスかキャストしてみて
2021/08/18(水) 12:47:55.01ID:g2Z9RZkpd
>>901
ああ確かに宣言時に指定してなかったかもしれません
助かりました。ありがとうございます
903デフォルトの名無しさん (ワッチョイ 42ad-NTPF)
垢版 |
2021/08/18(水) 14:46:55.39ID:vS4c4jwy0
>>900
alist.get(1).get(0)

これできない?
できないとすると本当に2重の ArrayList になっているのかだな。
もし一番内側のリストが ArrayList ではなく実は配列というのであれば alist.get(1)[0] になる。
2021/08/18(水) 14:48:02.52ID:vS4c4jwy0
むう。>>902>>903の時間が逆転している・・・
2021/08/18(水) 21:10:08.46ID:EBcQPiZh0
ありがとうございます。無事躓いた箇所をパスできました。
結論から言ってジェネリクスのしていがされておりませんでした。
ただ字分が不勉強なこともあり、get(0)で取り出したものをnew listに入れてそこからgetすることとしました。

喫緊の課題だったとはいえ、マルチに関わらず回答寄せて下さりありがとうございます。
今後はマルチにならぬよう気をつけます。

>>903
回答下さりありがとうございます。また申し訳ないです。
2021/08/19(木) 14:33:15.26ID:upZnt1cl0
初歩的な質問ですみません。
ある文字列を半角の?マークで分割したいのですが、
splitメソッドに?を渡そうとするとエラーが出ます。
バックスラッシュでエスケープを試みても同じです。

半角の?を文字列として、メソッドに渡す方法はありませんでしょうか?
907デフォルトの名無しさん (ブーイモ MMb6-Vt5m)
垢版 |
2021/08/19(木) 14:53:50.75ID:XQ1nrb4AM
"?"としたまえ
908デフォルトの名無しさん (ワッチョイ 4601-Tn3C)
垢版 |
2021/08/19(木) 15:10:56.83ID:ABdCgNW20
>>906
\\?
これでok
2021/08/19(木) 15:16:27.69ID:upZnt1cl0
ありがとうございますm(__)m
バックスラッシュ2つでいけました!
910デフォルトの名無しさん (ワッチョイ 1f5f-zH/y)
垢版 |
2021/08/20(金) 12:47:48.85ID:QkMgvsE90
Javaでオンラインゲーム作りたいんですが
できますか?
2021/08/20(金) 13:06:32.12ID:eBEK5Rhc0
できます
912デフォルトの名無しさん (ワッチョイ ff01-7woR)
垢版 |
2021/08/20(金) 13:54:53.34ID:7UgQcF6b0
主語もわからんのにそんなこと言って大丈夫なの?
2021/08/20(金) 14:10:29.26ID:eBEK5Rhc0
大丈夫V
2021/08/20(金) 16:18:48.55ID:YUyGX/9NM
世界で最も売れたマインクラフトも作れるよ!
やったね!
2021/08/21(土) 11:41:42.20ID:UPN4qgoSa
>>910
大槻 有一郎
「15歳からはじめるJavaオンラインゲームプログラミング教室」
ISBN-10 ‎4899772319
ISBN-13 ‎978-4899772316
916デフォルトの名無しさん (ワッチョイ 1f5f-zH/y)
垢版 |
2021/08/21(土) 12:47:02.52ID:qzzQq94j0
ぽくの構想のオンラインゲームは
0.1秒おきに通信が成功しないとならぬのです
でもそんな無料高速サーバーどこにあるのか全然わかりません
ググっても見つかりませんでした
だれか教えてください
917デフォルトの名無しさん (ワッチョイ 1f9c-Z3+k)
垢版 |
2021/08/21(土) 14:42:56.57ID:EfeYC8gY0
>>916
localhostっていうサーバーが超高速らしいです
1ms未満で応答返ってきます!
918デフォルトの名無しさん (ワッチョイ 1f5f-zH/y)
垢版 |
2021/08/21(土) 14:46:08.06ID:qzzQq94j0
>>917
ありがとうございます!!
919デフォルトの名無しさん (ワッチョイ 7fad-WNkQ)
垢版 |
2021/08/22(日) 05:14:13.60ID:A76jzPe90
うーん・・・
2021/08/22(日) 12:52:39.90ID:PKjbMGu50
127.0.0.1
というサイトもものすごく応答が早いよ!
2021/08/22(日) 13:21:57.93
127.0.0.1 は私が予約しているから勝手に使わないで!
2021/08/22(日) 13:47:33.23ID:v6JyVGHE0
マンダム
2021/08/22(日) 14:49:30.00ID:5h3w1M8Ba
15歳以下だったらニオイなんて気にして無かったかも
924デフォルトの名無しさん (ワッチョイ 1f2f-nV9M)
垢版 |
2021/08/22(日) 15:31:06.54ID:SRwqp0HO0
>>923
なんのニオイですの?
2021/08/22(日) 16:18:21.11ID:miFwJk/ua
ビーンズの香ばしいニオイはジャコウネコのトムのもの
2021/08/23(月) 02:11:06.33ID:UaBHP8Yo0
ブラックアイボリー
927デフォルトの名無しさん (ワッチョイ ffba-hCLa)
垢版 |
2021/08/23(月) 20:00:55.11ID:qzHQYW1V0
BufferedImage[] imgs
ImageIO.write(imgs[i], "jpeg", new File(i+".jpg"));にファイルを書き出したところ、プロジェクトファイルの直下にファイルが書き出されます。
ファイルの書き出し先は指定できるのでしょうか?
2021/08/23(月) 22:04:20.91ID:LokP4VO50
new Fileにファイル名だけじゃなくて出力したいパスも指定すれば指定したとこに出力できる
929デフォルトの名無しさん (ワッチョイ ffba-hCLa)
垢版 |
2021/08/23(月) 22:32:48.53ID:qzHQYW1V0
>>928
ありがとうございます。出来ました。
2021/08/31(火) 07:52:28.15ID:pP/IgB5+0
Javaから始める人は
プログラマに向いてないって本当ですか?
2021/08/31(火) 08:01:57.96ID:eSOB1PXDM
こういう質問する人は向いてないと思う
2021/08/31(火) 08:14:17.65ID:TL2gsmuJ0
世の中にはVBプログラマもいるが、例えばホリエモン
933デフォルトの名無しさん (ワッチョイ 3d5f-4thN)
垢版 |
2021/09/01(水) 12:05:25.41ID:eI7tP8IQ0
なぜ
int a[]=new int[10];
だといけないのでしょうか?
int[] a=new int[10];
にしろと命令されます
2021/09/01(水) 13:01:14.71ID:t2r33tCJa
上はint型のa[]って名前の変数にint型配列を代入しようとしてるからだめ
下はint型配列のaって名前の変数にint型配列を代入してるから正しい

さすがに変数宣言の書き方はググってたどり着けるようにしないとこの先厳しいと思うよ
935デフォルトの名無しさん (ワッチョイ 8601-lA7B)
垢版 |
2021/09/01(水) 13:10:44.21ID:1+gvptgP0
>>934
文法的にはどちらも正しいよ
936デフォルトの名無しさん (ワッチョイ 8601-lA7B)
垢版 |
2021/09/01(水) 13:14:42.64ID:1+gvptgP0
int a[]=new int[10];

これは古い書き方
C言語から移行しやすいようにしたんだろうね

int[] a=new int[10];
これで統一したほうがわかりやすいからだと思う
2021/09/01(水) 13:23:36.86ID:t2r33tCJa
>>935
どっちも通るのな...知ったかしちゃって恥ずいわー
Cの名残だったりするんかね
2021/09/01(水) 18:20:43.24ID:vuix+QPUM
「型の情報 変数名」という語順の原則を破る例外的な文法規則だからね
C言語をデザインした人が当時はどっちの書き方もアリだろと感じたけど、やっぱ新規のソースではイレギュラーは少ないほうがいいよ
2021/09/01(水) 18:26:11.54ID:vuix+QPUM
ポインタのある言語の頃は変数の前や後ろに&だの*だのがべたべたくっついてたから
int a[] みたいな宣言も今ほどキモくなかったんだと思う
2021/09/03(金) 23:12:35.49ID:RIfj3Zez0
知ったかする奴ほど光の速さでレスつけるのはやっぱり
無知無能な奴ほど周りから認められようと必死で自己顕示欲が強いからなんだろうね
2021/09/04(土) 03:07:46.56ID:7+Hy81Ja0
おまえもな
2021/09/04(土) 13:03:11.28ID:4KE7eTOK0
人格攻撃するだけの卑屈な振る舞いが善意の回答より勝ることがあるとは思えん
鶏口となるも牛後となるなかれと思うよ
2021/09/04(土) 14:07:14.98ID:ptFG7Yts0
Spring Boot, h2, @Entityでテーブルを自動生成しようとしているのですが
失敗します。このバージョンの組み合わせでは動かないという情報は
どこかないでしょうか?
2021/09/04(土) 15:22:30.96ID:uPvdFPCo0
質問乞食
>善意の回答
945デフォルトの名無しさん (ワッチョイ 5fad-YUgI)
垢版 |
2021/09/05(日) 04:00:09.94ID:OxVmaStA0
牛後となるも鶏頭となるなかれ
2021/09/05(日) 10:11:33.83ID:vITLPSKB0
まだ午前中
947デフォルトの名無しさん (ワッチョイ 5fad-YUgI)
垢版 |
2021/09/05(日) 15:37:15.63ID:OxVmaStA0
午前の紅茶も売れば倍儲かるのに何故売らないのか?
2021/09/06(月) 10:24:14.67ID:Y4LXqNKCM
久し振りに趣味プログラミング再開してみたら何だこれ。えらいこと面倒くさい手順が必要なのな。
949デフォルトの名無しさん (ワッチョイ 675f-lYlz)
垢版 |
2021/09/06(月) 12:43:21.63ID:Ubm/Rxbd0
他の言語でやればいいんじゃない?
2021/09/06(月) 21:33:18.97ID:3OGE1cne0
GUIをやめてスクリプトで動かすようにすれば
面倒くさい手順が簡単になるよ
2021/09/07(火) 18:55:36.51
>>947
ナイスですねえ
2021/09/09(木) 07:13:37.29ID:34pZkkAD0
androidアプリを作れるようになりたいのですが
習得するのならjavaよりkotlinのほうがいいでしょうか?
2021/09/09(木) 08:45:33.09ID:4hw+ZbsfM
その選択にはあまり意味はない
KotlinはJavaのスーパーセットなので、Kotlinを習得するためには実質的にはJavaを習得しなければならない
モノが作れるようになるまでの時間をなるべく短縮したいならJavaから入ったほうがよい
その上でKotlinに進んでも学んだことは一切無駄にならない
954デフォルトの名無しさん (ワッチョイ e72f-FGfd)
垢版 |
2021/09/09(木) 11:15:34.97ID:w4gLCK1Q0
サブセットじゃないか?
2021/09/09(木) 11:31:00.08ID:KLTQEctg0
コトリン厨のアホ
2021/09/09(木) 12:19:18.29ID:2ycGW8k00
サブセット??
間違って覚えてるのか、何かの皮肉?
957デフォルトの名無しさん (ワッチョイ bf01-sU3j)
垢版 |
2021/09/09(木) 12:48:33.38ID:ZSdmmObG0
皮肉という言葉を使うやつはバカのサブセット
2021/09/09(木) 13:27:18.07ID:hvR+3cwr0
皮肉という言葉を使わないバカがいるのか
2021/09/09(木) 14:44:07.67ID:KLTQEctg0
皮肉って何の肉?
2021/09/09(木) 16:26:07.20ID:fNpnVgR+0
もしかして: 脾肉
2021/09/09(木) 17:11:55.22ID:8lUjtUOPM
>>950
どう笑えばいいんだよ。
2021/09/09(木) 20:38:07.18ID:34pZkkAD0
アドバイスありがとうございました

それにしてもjavaのスレってこんな感じなんですね(涙
2021/09/09(木) 20:53:23.35ID:WIcK+YQIM
精神の壊れた多重下請奴隷ばかりだからね
こうなりたくなければJavaなんかに手を出さないことだ
964デフォルトの名無しさん (ワッチョイ 5fad-YUgI)
垢版 |
2021/09/09(木) 23:10:50.58ID:kagvhl0N0
Kotlinもよろしく
2021/09/10(金) 05:03:50.68ID:ku3eY57ja
予定では9月21日にCorretto 17 LTSが一般公開されるみたいだね

Correttoサポ−ト終了日
8 LTS 2026年6月
11 LTS 2027年9月
15 FR 2021年4月20日
16 FR 2021年10月19日
2021/09/10(金) 10:35:27.79ID:ztEGHR83a
Java 17 and IntelliJ IDEA
ttps://blog.jetbrains.com/idea/2021/09/java-17-and-intellij-idea/
967デフォルトの名無しさん (ワッチョイ 799c-/nPW)
垢版 |
2021/09/10(金) 10:41:38.47ID:0CqCA27A0
9月21日? 遅いなあ
Oracle Open JDK は9月14日じゃなかったか
2021/09/15(水) 14:14:29.35ID:tFUc2/Q00
オラクル、Oracle JDKを再び無料提供へ、本番環境でも利用可。昨日リリースのJava 17から − Publickey
https://www.publickey1.jp/blog/21/oracle_jdkjava_17.html
2021/09/15(水) 14:55:26.31ID:5Wm3kBkb0
MSと尼に屈したw
2021/09/15(水) 17:21:18.08
>>968
迷走してますね‥例の訴訟はどうなったのでしょうか?API にも著作権があるのでしょうか?
2021/09/15(水) 17:36:02.36ID:u+gVrdUNM
どうせなら特許侵害とかで尼などの野良JDKを潰しにかかればよかったのにな
APIの著作権を主張するよりは勝ち目はあると思うが
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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