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

■ このスレッドは過去ログ倉庫に格納されています
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
181デフォルトの名無しさん (ワッチョイ 3e01-cXqP)
垢版 |
2020/06/03(水) 23:19:32.10ID:KDlF+5RH0
max関数はジェネリクスでは難しいかも
ジェネリクスが使えることもあるだろうけど
182デフォルトの名無しさん (ワッチョイ 3e01-cXqP)
垢版 |
2020/06/03(水) 23:20:51.83ID:KDlF+5RH0
浮動小数点数と整数は比較の仕方から違ったりするから
処理を共通化できるならジェネリクスでそうじゃないならオーバーロードで
というわけ方になるのだろうね
2020/06/03(水) 23:38:06.32ID:GRsAFI0id
為替レートをデスクトップに表示できるアプリはjavaで作成できるんでしょうか?SBIからリリースされていた「カベプラ」のようなアプリです
2020/06/03(水) 23:44:56.81ID:K30dfupma
ブラウザに表示させたいのか、ウインドウを独自で開けて表示したいのかによる。
どちらも可能だけど
2020/06/04(木) 00:10:31.38ID:m7MzBqypd
>>184
java作成できるんですね、ありがとうございます
ウィンドウ表示で画面の端に置いておきたいのです
2020/06/04(木) 00:58:00.11ID:aW9GlgKjM
そんなもんいくらでも既存のがあるだろ
2020/06/04(木) 03:24:33.64ID:eWLlw/BB0
>>180
java.lang.Mathが実際maxを始めとしてそういうオーバーロードだらけだよ
既に言われている実装の違いはJDKのソースで見れる
演算やロガーみたいに激しく高頻度で呼ばれるメソッドの場合、ボクシングのコストを嫌って各種プリミティブのオーバーロードを揃えることが多い
2020/06/04(木) 09:20:41.44ID:YHmVCqxa0
明日の為にその一、打つべし
2020/06/05(金) 22:50:50.73ID:V6U0Dhlla
>>185
それだと swing かなあ
2020/06/07(日) 02:46:37.42ID:Yd5U2TwLa
もっとJavaジャバしたいのにどんどん頭から抜けていって全然泳げません
もっと深くためるにはどうしたら良いですか?
2020/06/07(日) 10:49:02.62ID:n6jkV7Xx0
風呂の栓をして水をためてからジャバを投入する
2020/06/07(日) 11:42:04.29ID:qN1gMDl90
本人の記憶力が乏しいのは誰かに聞いて治るもんじゃない
2020/06/07(日) 12:07:38.48ID:EBmXi5wra
>>191
なるほど滝行ですねありがとうございます
>>192
もっと沢山水を浴びないとダメなんですね
2020/06/07(日) 12:43:10.81ID:/m0mrLuk0
Java経験者と未経験者とではKotlinへの学習効率が大きく異なると聞いたことがあるのですが、
Kotlin経験者も、Kotlin未経験者に比べるとJavaの学習効率は高くなりますか?
195デフォルトの名無しさん (ワッチョイ 86b0-FXWY)
垢版 |
2020/06/07(日) 13:10:05.32ID:rGpM3+QL0
未経験でJavaエンジニア目指す場合じゃんけんゲームみたいなしょぼい作品はgitにのせない方がいいの?
2020/06/07(日) 17:10:33.93ID:w5y6UNTd0
>>194
もちろん
必要な知識の一部が共通だから、必要な学習量自体が少なくなる
効率はKotlinを先にした方が多分悪い
2020/06/07(日) 17:13:18.43ID:w5y6UNTd0
>>195
のせていいよ
友人間のプライベートな動画をYouTubeにのせていいのと同じ
198デフォルトの名無しさん (ワッチョイ 86b0-FXWY)
垢版 |
2020/06/07(日) 17:42:24.39ID:rGpM3+QL0
>>197
履歴書に書く場合は?
2020/06/07(日) 17:49:14.45ID:h3PveQsa0
どうだろうなあ
自己PR用のポートフォリオとして使うならくだらないものは載せないほうがいいと俺は思うが
実際はgithubアカウント持ってるエンジニア自体が少ないからね

「なんだこの程度のものしか作ったことがないのか」
「少なくともgithubアカウント作るくらいの意欲はあるしgitも使えるんだな」

良くとられらるか悪くとられるかは相手次第だろうか
2020/06/07(日) 17:52:28.43ID:h3PveQsa0
あとはgithubとSNSの区別が付いてない馬鹿もいる
「こいつを雇ったらうちの資産をネットにアップして晒されるかも」みたいなトンチンカンな判断する人もいるよ
だから俺はネットでの活動をリアル社会で繋がりのある人に話したり自慢したりはしない
201デフォルトの名無しさん (ワッチョイ 86b0-FXWY)
垢版 |
2020/06/07(日) 20:26:38.88ID:rGpM3+QL0
実務未経験でも掲示板とかTwitterの模倣サイトみたいなの作らないとプラス評価にはならないのかな
2020/06/07(日) 20:35:48.60ID:n6jkV7Xx0
ギフハブか、何それ?
2020/06/07(日) 23:23:06.34ID:4d+8+idP0
>>199
逆にベンチャー系だとソースだけ欲しがったりするから、公開するのも考えものだったりする
2020/06/08(月) 02:13:30.90ID:8PuYYr2u0
Vue vs React vs Angular Part.3
https://mevius.5ch.net/test/read.cgi/tech/1560333895/586

プログラミング未経験のポートフォリオ作成動画

Ruby on Rails, Bootstrap, Github, Heroku
2020/06/21(日) 01:49:46.76ID:sG9DIwmM0
Javaって例外遅いんですか?
Goみたいにエラー、エラー判定、エラー、エラー判定…
って繰り返して巻き戻していくより早い気がするんですが
2020/06/21(日) 09:35:03.20ID:9wk+Rjth0
速い・遅いの基準は?
2020/06/21(日) 10:02:22.74ID:yJkQ5Ayp0
エラー戻り値で組むのに比べて
2020/06/21(日) 11:16:36.86ID:Cvmphw/V0
遅くないよ
何百万回も実行したら数ミリ秒の差は出るかもしれないというレベル
ちなみに例外が遅いと言われていたのは例外機構ではなく例外インスタンスの生成な
例外インスタンスが保持するスタックトレースを作るのが重いと言われていた(昔の話)
2020/06/21(日) 12:08:53.35ID:FwDCKMLP0
遅いよ。超遅い。
エラーコードによる判定が1msで終わるところを例外だと100msくらいかかる。






10億回試行で。
2020/06/21(日) 12:38:15.03ID:9wk+Rjth0
足し算よりは遅い、キリィ
211デフォルトの名無しさん (ワッチョイ 7601-KnoZ)
垢版 |
2020/06/21(日) 13:57:12.31ID:DdBoZ7r/0
paizaだと例外の方が時間がかかったけどローカルでJITコンパイル切って実行したら逆の結果になった
これはわからんな
https://paiza.io/projects/IcXMFru7MVKOOVFx7YMzSQ
2020/06/21(日) 14:30:57.05ID:mTHYklnAM
>>211
208が書いてるように、遅いのはスタックトレースなんで、例外が発生しなければ大して遅くならない。
2020/06/21(日) 16:23:59.80ID:yJkQ5Ayp0
ありがとうございます

ただ例外が起こらんときのことが知りたくて
戻り値方式だと
関数呼び出すたびに呼び出し元で毎回エラー判定いるから

これみたいに、エラー起こりまくるときに例外使うと遅くなるだろうけど
エラーがめったに起きないとき
戻り値方式で毎回エラー判定処理入ったら
その判定分通常処理が遅くなったりしないかと
2020/06/21(日) 16:24:59.62ID:yJkQ5Ayp0
ってあれ?
これもINTEGER_MAXまで例外起きないのに遅いのか
2020/06/21(日) 16:35:30.17ID:yJkQ5Ayp0
クラスのロードで変な差がついてんじゃね?と思って2回回したら
2回目のほうが遅くなった
そんな馬鹿な…
2020/06/21(日) 16:41:15.34ID:yJkQ5Ayp0
testExceptionとtestResultの実行順序入れ替えたらtestExceptionのが早くなった
どういうわけか1回目の計測ちゃんと結果でてない
2020/06/21(日) 17:25:06.59ID:IV+d62C50
遅い遅くないって、10億回繰り返した後の100ミリ秒の差に一喜一憂してるの?
冗談やネタじゃなくて?

なお例外が出る場合は10万や100万throwくらいのオーダーで有意差が出る模様
2020/06/21(日) 18:43:47.83ID:DdBoZ7r/0
>>216
vmのパラメータに-XintをつけてJITコンパイルを止めると良いかも
実際に動くときはJITコンパイルは行われるだろうけどコストを調べるだけなら
2020/06/21(日) 18:46:39.25ID:DdBoZ7r/0
速度よりは書いてるコードにどっちが向いてるかで選んだか良いかも、基本例外使うけどたまにEitherオブジェクト使った方がきれいに書けることある
2020/06/21(日) 21:16:16.06ID:yJkQ5Ayp0
2回目以降のほうがおそくなるのPaizaのせいかと思ったらローカルでもなった

ほんとに特殊なコンパイルされてるのかなあ
俺の常識がこわれた
2020/06/21(日) 21:25:52.01ID:FwDCKMLP0
gcは?
2020/06/21(日) 21:28:30.74ID:yJkQ5Ayp0
やったけどかわらんかった
2020/06/23(火) 16:15:08.83ID:4QDBM1xJM
CDIでAmbiguousResolutionExceptionが発生した場合ってどう対処すればいいんですか?
同じインターフェースを実装するクラスが2つあって、片方は自作のクラスなんですが、もう片方はライブラリに組み込まれていてコードの修正ができません
クラスのクライアント側もライブラリ内なので手出しできません
自作のクラスを優先して使わせたいのですが可能でしょうか?
224デフォルトの名無しさん (ワッチョイ 0ab9-ERT+)
垢版 |
2020/07/03(金) 04:18:25.71ID:K25ENh2J0
jdkの内部実装を学ぼうと思ってるんだけど
良いサイトとか本ある?
2020/07/03(金) 08:56:45.20ID:okkk9Kl+0
openjdk
226デフォルトの名無しさん (ワッチョイ a3f1-Ji0+)
垢版 |
2020/07/03(金) 09:32:21.44ID:lDWf2b6S0
外クラスから内クラスのprivateメンバが見れるのはなぜですか?

超論理的思考によるとどう考えても理論に欠陥があり矛盾してる。
みなさんはこのJavaにおけるクラス体系をおかしいと思いながら割りきって使ってるのですよね?
227デフォルトの名無しさん (ワッチョイ 0aa5-ayTQ)
垢版 |
2020/07/03(金) 09:41:22.08ID:OljhRJZm0
カプセル化の有害性、オブジェクト指向は愚かな考え
https://mevius.5ch.net/test/read.cgi/tech/1592491656/

こっちでやってろ
228デフォルトの名無しさん (ワッチョイ a3f1-Ji0+)
垢版 |
2020/07/03(金) 10:36:03.96ID:lDWf2b6S0
ところで継承したサブクラスをインスタンス化したときは
メモリ上にはスーパークラスの情報も存在するのですか?

だってsuper.xxx、とスーパークラスのオーバーライド前のフィールドやメソッドも使えるはずだし。
2020/07/03(金) 19:21:53.81ID:TUVANe+hM
>>226
クラスさえもメンバの一種と考えれば良い
2020/07/03(金) 20:22:27.88ID:kzJb1xMFM
private可視性といえばインスタンスを跨げるのも違和感あるよな
MyClassにprivateフィールドnameがあるとき
MyClassのインスタンスaからMyClass bのnameが見れちゃう

人間にはチンポついてるじゃん
でもaさんがbさんのチンポ見れちゃまずいでしょ
aさんが見れるのは自分のチンポだけってほうが自然じゃない?
2020/07/03(金) 20:24:18.91ID:kzJb1xMFM
ごめんチンポじゃなくてアナルだった
2020/07/03(金) 22:31:34.26ID:22sFhG6i0
最新のpleiadesでjframeをやろうと思ったらエラー出ました
openJDKだからだと思うんですが何をしたらswingなどが
使えるようになりますか?
system.out.printlnはうまくいったのでコードの書き方には
問題はないはずです
2020/07/04(土) 07:08:49.43ID:alhj5XD00
>>232
JDKのバージョンを下げてみる。
2020/07/04(土) 09:54:16.99ID:l/UGkzzj0
Javaのprivateは同じソースファイルからなら見えるの意だな
ひとつのソースは巨大すぎず、また同じ人が上から下まで書くだろうという前提に立つと、アクセスしたくなければ当人が判断してアクセスしなければ良い
コントロール下にあるなら自由にさせろという、合目的的な線引きの仕方
小さく完結してるならprivateというコンパイラ支援を受けるメリットが少ない
一方、後から手を入れる必要があるときは勝手にpublicに書き換えられたりgetterを増やされたりまで注意が必要
それはもはやスコープ指定の仕事じゃない
2020/07/04(土) 12:59:43.96ID:3Z3LdE0ta
>>232
最新のパソコンを買ってやってみる
2020/07/04(土) 14:22:07.70ID:Em2AcreDa
>>232
>>1
質問時の心得
・コンパイルエラーか実行時エラーか、エラーではないが意図しない動作なのかはっきりしろ。あとエラーメッセージちゃんと読め。
・前提条件としてOS、開発環境、バージョン、使用フレームワーク等を明記。
2020/07/04(土) 22:12:26.95ID:ihmD8+jR0
エラーメッセージくらい書けばよかっですね
すみません
プロジェクトを一旦削除して
バージョン(1.8)のjdkに変えたら動きました
2020/07/04(土) 22:39:48.15ID:w+5/VaEy0
>>231
そういう問題ですか?
wwwwwww
2020/07/05(日) 22:14:28.48ID:UlkHztnN0
Javaを始めたばかりの初心者です
Androidアプリを開発してるのですが
このような動作は出来るのでしょうか?

動作A(UIの読み込み&操作等)
for (int i = 0; i < forNum; i++) {
動作B
インターバル(数秒)
}

の用にしたいのですが、
インターバルにSystemClock.sleep()を使うと動作A(UIの動作)まで止まってしまいます。
どうにか動作Bのみを数秒待機させる方法はないのでしょうか?
2020/07/05(日) 23:20:43.41ID:jg0qNhIf0
androidはjavaではない
2020/07/05(日) 23:26:36.51ID:MQ9nuMmc0
>>239
スレッドを分ければ良いよ
2020/07/05(日) 23:57:29.71ID:bHlBs/hO0
>>239
メインスレッド(UIスレッド)でスリープするのは禁じ手なので、threadなりasynctaskなりを作ってその中で動作Bの処理をする。
終わったら必要に応じてメインスレッドに通知する。

詳細
https://developer.android.com/guide/components/processes-and-threads?hl=ja
2020/07/06(月) 00:34:56.97ID:cUwYYqlK0
>>241
>>242
ありがとうございます!
明日試してみます
244デフォルトの名無しさん (ワッチョイ 0ab9-ERT+)
垢版 |
2020/07/06(月) 04:05:20.60ID:As2E4FLw0
実行時環境がv6対応してるか調べる方法ある?
2020/07/06(月) 06:34:13.61ID:wta+2TH60
>>244
System.getProperty("java.version");
246デフォルトの名無しさん (ワッチョイ 0ab9-ERT+)
垢版 |
2020/07/06(月) 15:49:03.47ID:As2E4FLw0
v6はIPv6だぞ
2020/07/06(月) 16:15:38.23ID:h1z4qRFu0
偉そうに後出し
248デフォルトの名無しさん (ワッチョイ 0601-bAMZ)
垢版 |
2020/07/06(月) 16:32:34.97ID:ODctk1XU0
v3は仮面ライダーだからな
2020/07/06(月) 17:16:34.43ID:sYjFaVN/0
v8は犬の名前です
250デフォルトの名無しさん (ブーイモ MMef-Ji0+)
垢版 |
2020/07/06(月) 17:30:52.11ID:K0spL5LtM
10base-Tの10はテン
100base-Tの100はヒャクだぞ
2020/07/06(月) 19:57:01.40ID:h1z4qRFu0
京はスパコン
252デフォルトの名無しさん (アウアウウー Sacf-Im8i)
垢版 |
2020/07/07(火) 18:45:15.60ID:e1WbjzO/a
2位じゃいけないんですか?
253デフォルトの名無しさん (ブーイモ MMb6-Ji0+)
垢版 |
2020/07/07(火) 20:10:02.00ID:zJDYRW2WM
>>252
ダメだ。
アルツハイマーでもこれくらい分かる。
254デフォルトの名無しさん (ワッチョイ ad10-7Vnq)
垢版 |
2020/07/08(水) 13:42:39.75ID:i1rS618L0
数独のプログラムで3×3マスの部分で被りがないか判定するにはどうすればいいの?
2020/07/08(水) 14:08:40.06ID:Z8A6jaoN0
配列[行][列]

同じ列の行なら、
ary[0][0], ary[1][0], ary[2][0]

同じ行の列なら、
ary[0][0], ary[0][1], ary[0][2]
256デフォルトの名無しさん (ワッチョイ ad10-7Vnq)
垢版 |
2020/07/08(水) 14:27:54.31ID:i1rS618L0
そのやり方だと9つのブロックに名前つけて9通りのfor文を用意する必要があると思うんだけどもう少しスマートなやり方ないかな?
2020/07/08(水) 15:08:37.42ID:I47WXMxT0
Set<Integer>に突っ込んで要素数が8以外だったら重複してる
2020/07/08(水) 15:09:25.75ID:I47WXMxT0
以外じゃなくて以下ね
2020/07/08(水) 15:15:56.97ID:VE+zTS1fa
範囲内全部足して45かどうかで判定するとかどう?
2020/07/08(水) 15:23:46.20ID:I47WXMxT0
それじゃダメでしょ
114456789
2020/07/08(水) 16:28:25.47ID:hEQaHqpN0
>>256
行や列と同じでブロックも要素数9のコレクションとして表現すればいいんでは?

javaだと少し面倒くさそうなのでpythonの例で
https://ideone.com/9vaTYC
2020/07/08(水) 17:25:19.18ID:xy5ryNRG0
9X9の配列から縦一列、横一列、3X3のブロックを取り出すルーチンが大事やで。
2020/07/08(水) 18:10:39.89ID:CKA99sQd0
mementoというAndroidのDBを使っています
主キー(プライマリキー)の設定がないようで
javaで書くしかないようです

過去のレコードで最大の物に+1ずつしていく、というのはどう書くのですか?
2020/07/08(水) 18:11:03.36ID:lQhyGabo0
Set<Integer>に一票だけど、本質的には要素のソーティングだと思う。配列とかソーティングをうまくすると、Set<Integer>より少し速くなるかも。
265デフォルトの名無しさん (ワッチョイ ad10-7Vnq)
垢版 |
2020/07/08(水) 20:41:07.61ID:i1rS618L0
俺のレベルだと
switch(row){
case 0: case 1: case 2:
blockrowstart =0;
break;
case 3: case 4: case 5:
blockrowstart=3;
break;
って分けていく案を出すのでやっとだった
Set<Integer>でどうやればいいのかわからない
というか未経験でIT業界入って1ヶ月もたたないうちに挫折しそう
2020/07/08(水) 20:59:35.74ID:wtc6YQgJ0
数学的に抽象化して考えれば、写像であることは明白。
写像が分からないなら、大学で写像と集合論を勉強すれば?
2020/07/08(水) 21:07:21.10ID:ZDW1gQXpM
行列の基本法則も知らなかったのにずい分偉そうだな。
2020/07/08(水) 21:21:09.43ID:wtc6YQgJ0
剰余使え。
2020/07/08(水) 21:29:58.27ID:wtc6YQgJ0
剰余の演算子は%
2020/07/08(水) 23:06:54.42ID:lQhyGabo0
ビンソート使って
int[] b=new int[10];
for(int i=0; i<a.length; i++){
for(int j=0; j<a[i].length;j++){
b[a[i][j]]++;
}}
ってやれば、この後b[1-10]のチェックをしても、配列アクセス18回位で重複検出できる。
2020/07/08(水) 23:08:09.41ID:lQhyGabo0
>>270
チェックはb[1-9]だった
272デフォルトの名無しさん (ワッチョイ 0501-oJH7)
垢版 |
2020/07/09(木) 00:39:58.51ID:TcuT23Ts0
ラムダ式とか考えたやつは死ねばいいと思うんですけど
使ってる方たちはやっぱ難しい構文使えてるおれカッコイとか思ってるんでしょうか?
2020/07/09(木) 00:59:38.62ID:Ij/UNV0zH
>>272
軽薄なラムダ野郎かそうでないかを識別する良い質問がある
「ラムダ式で不動点コンビネータを記述できる者のみラムダ式を使うがよい」
2020/07/09(木) 01:06:09.11ID:BSG/cjvO0
>>272
良いソーティングのプログラムを作った後で、比較の仕方をちょこちょこ変えたい時、どんな方法を取る?
2020/07/09(木) 01:40:29.67ID:CLykJNt50
俺もラムダ式あまり好きじゃないなあ
書くのは楽なんだよIDEの補完機能があるから
だけど後で見直したときに変数名だけで型が分からないからコード読みにくいなあって思う
変数名にマウスカーソル合わせればIDEの機能で型がポップアップ表示されるけどね
コード読みながらそんなことしててバカらしくなっちゃった
276デフォルトの名無しさん (ワッチョイ 2361-kYYI)
垢版 |
2020/07/09(木) 08:09:25.29ID:FmMAEwI70
>>274
ただのStrategyの話で、それがラムダかどうかなんてどうでもいいことじゃん。
277デフォルトの名無しさん (ワッチョイ 75f1-+b0N)
垢版 |
2020/07/09(木) 08:33:03.78ID:q8rS1ZvE0
オギノ式がいいよ
2020/07/09(木) 09:02:18.72ID:VH59KAi30
無名クラスよりよっぽどマシだろ
2020/07/09(木) 09:38:42.75ID:7c7Do2x00
スクリプト言語とか使ったことない感じだ?
2020/07/09(木) 10:40:53.67ID:S3cMKryX0
VBおじさんやCOBOLおじさんがオブジェクト志向なんて分かりにくくなるだけだ必要ない!って怒ってるのと同じ構図?
卵から孵ったときに最初に何を見たかだけの域を出ないなら微妙な話
ストラテジーのような頻出のデザインパターンがスッキリ簡潔に書けるだけでも嬉しいじゃん
慣れてないとStreamでビックリしちゃうし読むときにペースが落ちると思うけど、それでもifとforで書いてあるよりステップ数も圧縮されてるんだから別に損してないと思うぞ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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