Java入門・初心者質問スレ Part.3 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/04/04(火) 20:41:11.59ID:y0EcmGB0
Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.2
http://echo.2ch.net/test/read.cgi/tech/1478863511/
2017/06/01(木) 23:06:15.32ID:NqeRoS6b
>>650
そもそもImmutableの意味が分かってる?
分かってるなら大きいデメリットどころか無意味だということが分かるはず
2017/06/01(木) 23:32:03.74ID:vNOzF29i
>>651
わかんないです><;
教えて下さい>人<
2017/06/01(木) 23:42:20.35ID:NqeRoS6b
>>652
外側から絶対に変更できないというのがImmutable
この例だとMutableクラスの参照を保持しておくかMutableクラスかどうかを判別してキャストしてしまえばいくらでも書き換えられるのでImmutableではない
目指してるのはRubyのfreezeみたいなものだと思うからそんな感じのフラグ建てるメソッドを用意してセッター側でフラグ建ってたら例外返すようにしとけばいいかな
2017/06/02(金) 06:57:04.51ID:p54lEqX7
>>653
ありがとうございます!
てことは、ガチのImmutableにしかたったら、Immutableクラスをnewするしかないんですね
う〜ん、やっぱImmutableて地味にハイコストなんですかね?
2017/06/02(金) 06:59:28.02ID:p54lEqX7
確かにsetterで例外吐いて実質Immutableにするのもよさげですけど
できればsetterの定義自体削ぎ落としたいですよね
setterが存在しないことがコンパイルで保証できるので
2017/06/02(金) 07:00:58.41ID:ZHMaGoYo
>>654
大半のプログラムはオブジェクト生成以外の部分がボトルネックになるから気にしなくていい
Immutableによりデバッグコストを削減するほうがよっぽどいいと思うぞ
2017/06/02(金) 07:14:47.05ID:3hRLDe2o
確率で分岐させようと思うのだけど、確率は一定ではなく、その時配列aに入っている数値の確率で分岐させたいと思っています
配列aに入っている数値が{ 6,0,4 }の場合、
6/10の確率で一つ目の分岐、0/10の確率で2つ目の分岐、4/10の確率で3つ目の分岐といった具合です
今までは配列bを作って{1,1,1,1,1,1,3,3,3,3 }と全部個数分入れてその中からランダムでひとつ選ぶと言う形にしてたのですが
もっとわかりやすい方法があれば教えてください
658デフォルトの名無しさん
垢版 |
2017/06/02(金) 07:32:50.35ID:Xj1xll0Q
>>657
int getBunki(int[] a) {
 int i = new Random().nextInt(10);
 if (i < a[0]) {
  return 1;
 } else if (i < a[0] + a[1]) {
  return 2;
 } else {
  return 3;
 }
}
659デフォルトの名無しさん
垢版 |
2017/06/02(金) 12:24:24.49ID:rAIQacev
>>658
もちっと汎用性持たせてみたら?
2017/06/02(金) 12:40:35.41ID:ogRcISVS
配列難しいなら使わなくてもいいんでないかな
乱数とif文でもできるのでは。
後々の管理性はどちらが良いかわからぬが
2017/06/02(金) 12:54:11.98ID:SapFDfFK
配列aを元に「処理1,処理1,処理1,処理1,処理1,処理1,処理3,処理3,処理3,処理3」で
構成されたリスト作って、シャッフルして最初の奴を取り出す
2017/06/02(金) 13:25:44.47ID:5w1B1rxg
int[] array = { /* ... */ };

int sumTotal = Arrays.stream(array).sum();
int selected = new Random().nextInt(sumTotal);

int accumlated = 0;
for(int idx = 0; idx <= array.length; idx++) {
accumlated += array[idx];
if (selected < accumlated) return idx;
}

こんな感じ?
最後のforループをなんとかしたいけど添字をうまく処理できない…
2017/06/02(金) 15:37:47.71ID:yyLeCvfJ
if (selected < accumlated) return idx;

return は関数を脱出する。
ループを脱出するのは、break じゃないの?
2017/06/02(金) 15:41:15.73ID:5w1B1rxg
idxか欲しいならそれで良いと思うんだけどなんか変かな…
2017/06/02(金) 22:48:36.11ID:p54lEqX7
>>656
そうはいっても、未だにIntegerは重いから
数字のリストはint[]を使えとかいうオッサンがおるわけで
666デフォルトの名無しさん
垢版 |
2017/06/03(土) 14:08:01.48ID:ep62Y9tf
Boxing, Unboxing のコストかい?

オブジェクト ←変換→ Primitive
2017/06/03(土) 14:51:35.39ID:7jetN193
Javaはそもそも遅いものだからなぁ
少しでも軽くするか、そこは割り切ってJavaの強みを活かすかは性格が出る
2017/06/03(土) 19:12:09.25ID:pA7NlTbo
サーブレットでのファイルダウンロードで質問です
ダウンロードをキャンセルしたりダウンロード中に別のページ行ったりするとサーブレット側で例外が起きてるんだけど、これってどういう対応すれば良いんでしょう
発生してるのはClientAbortExceptionとかいうやつと、SocketExceptionってやつの2種類です

環境はTomcat8.5とJava8とServlet3.1で、StrutsとかSpringとかフレームワークは使ってないです
669デフォルトの名無しさん
垢版 |
2017/06/03(土) 19:55:40.64ID:rGTJ2+S3
try catchで囲むだけちゃうのん?
2017/06/03(土) 21:50:09.75ID:ksYUIpeu
>>668
クライアントにどう返すか決めて実装するだけだろw
2017/06/03(土) 22:21:34.56ID:cALIqpIy
その「どう返すか」がよくわからないのでご質問しました

別のページに移動した場合は出た例外から何か返そうとしても元のレスポンスには返せないような気がします
キャンセルの場合は同じページにいるのですが、例外に対して何かレスポンス返そうとするとまた別の例外(IllegalStateException)になります

try-catchで囲んだとして、catchしたあとどうするのが普通なのでしょうか?
2017/06/03(土) 22:49:10.26ID:xUQGENML
大人しくFW入れとけ
自前でフルスクラッチWebサービスなんて死しか見えてないぞ
673デフォルトの名無しさん
垢版 |
2017/06/03(土) 22:54:54.15ID:rGTJ2+S3
握りつぶしておしまいにすればいいじゃん
2017/06/03(土) 23:24:48.06ID:ksYUIpeu
>>671
ご質問したってなんだよ、自分の行動に御をつけんなよw

で、もう別のページに行ってんならなにもしなくていいだろ
もうこっち側の関知することじゃない
キャンセルされたときも、こっちから特に通知することはない
だからもう無視でいいじゃん
それじゃダメな思いがなにかある?
675デフォルトの名無しさん
垢版 |
2017/06/03(土) 23:30:04.99ID:rGTJ2+S3
>>674
「ご〜する」は謙譲語だよ
自分の行動で問題ないっすよ
2017/06/04(日) 00:25:26.49ID:V+A2VcF1
本当に教えを乞うてるのなら
誠に恐縮ながらご質問させて頂きました。
くらい言えビチグソが
2017/06/04(日) 00:38:07.06ID:2FeiGNPe
>>675
自分のために行う自分の行動に御はつけませんw
2017/06/04(日) 00:59:05.42ID:tVfHoFED
>>674
ともに無視で大丈夫なんですね、ありがとうございます

正常なパターンは書籍もWebサイトも情報多いんですが異常な場合は情報が少なくて難しいです
具体的な方針のレスをいただけてとても助かりました
みなさまありがとうございました
2017/06/04(日) 04:22:07.90ID:ovRWSkxq
異常時の処理は、君が決めること。
ビジネスロジック・仕様

ページを閉じても、保持していたデータを解放するとは限らない。
メールアプリでは、一旦ページを閉じても、
再度開いたら、ログインしたままになってる

10分間、何もしなかったら、ログアウトになっていたり、
何がエラーなのかなど、仕様は各自が考えるもの
2017/06/04(日) 04:25:38.04ID:ng0ziLO2
>>675
質問の場合は自分が誰かに依頼してその誰かを動かす事になるので「ご質問」はおかしい。人が自分に何か聞いてきた時は「ご質問」で良い。
681デフォルトの名無しさん
垢版 |
2017/06/04(日) 09:19:19.03ID:XpxkKcu8
>>676
「させていただく」は謙遜的傲慢表現と言われていて
みっともないからやめましょう


>>677
謙譲語だから問題ないんだよ

謙譲語は自分を低めるものだから
自分の行動につけるもの

道をお尋ねしますがとか
ご相談したいことがなど

(お|ご)〜する で謙譲語


>>680
おかしくないよ
「ご〜する」で謙譲語だから
美化語と謙譲語の違いは中学校で習ったでしょ?思い出して!
682デフォルトの名無しさん
垢版 |
2017/06/04(日) 09:27:29.03ID:XpxkKcu8
「(お|ご)〜する」で謙譲語だから

客が会社に問い合わせて、会社が客に答えるとき

「お問い合わせいただきありがとうございます」は良いけれども
「お問い合わせしていただきありがとうございます」はダメなんだよ

なぜならば「(お|ご)〜する」で謙譲語だから、問い合わせた客を下げることになるから
2017/06/04(日) 09:35:23.42ID:FZQRsZV2
次スレからスレタイは敬語入門・初心者質問スレにしておけよ
684デフォルトの名無しさん
垢版 |
2017/06/04(日) 09:38:04.80ID:B1StEn/h
客が質問してきた時はその質問は「ご質問」だよな。
自分が質問する時も「ご質問」なのか?明らかにおかしいだろうが。
2017/06/04(日) 09:42:27.99ID:4LTGGdrM
なんというタイムリーな展開w
俺も先日メールのサブジェクトに「ご質問」ってつけちゃって
1) 自分の質問に「ご質問」はおかしい、どう考えても間違った
2) でも「質問」だとなんか言葉がトゲトゲしてる

おまえら質問あるときどうしてる?
俺は基本的にはいつも「お尋ね」って書いて誤魔化してた
686デフォルトの名無しさん
垢版 |
2017/06/04(日) 09:51:01.58ID:XpxkKcu8
>>684
「ご〜する」で謙譲語だから
ご質問します、とかならおkだよ

相手を上げる尊敬語、自分を下げる謙譲語、中立の丁寧語・美化語
で覚えれば良い

「先程私がご質問になった」といったらおかしいよ
「ご〜なる」で尊敬語だから自分を上げることになるからね
687デフォルトの名無しさん
垢版 |
2017/06/04(日) 10:01:33.92ID:XpxkKcu8
>>685
「ご質問」は美化語だから問題ないよ

ご連絡が遅れましてとか
お酒を飲んでいましたとか言うでしょ

おちんぽみたいなもんだよ
上品だよね
688デフォルトの名無しさん
垢版 |
2017/06/04(日) 10:08:25.74ID:B1StEn/h
めんどくせえなあ。
まあ言語は変化し続けるから微妙な問題ではあるが、少なくとも現代の今の時代では
自分の質問に「ご質問」は止めとけ。敬語と受け取らない人が大半だから。

https://www.google.co.jp/search?q=%E3%81%94%E8%B3%AA%E5%95%8F&;ie=utf-8&oe=utf-8&client=firefox-b&gfe_rd=cr&ei=pVwzWcmgFO-Q8QfNhKO4DA
2017/06/04(日) 10:10:37.28ID:B1StEn/h
あ、編集ミスった。まあいいや。わかるでしょ。変な個所は消し忘れね。
690デフォルトの名無しさん
垢版 |
2017/06/04(日) 10:19:13.28ID:XpxkKcu8
おコーヒーをお召し上がりにおなっていました
691デフォルトの名無しさん
垢版 |
2017/06/04(日) 10:21:03.11ID:XpxkKcu8
>>688
「ご〜する」は謙譲語だから立派な敬語だよ
692デフォルトの名無しさん
垢版 |
2017/06/04(日) 10:22:48.74ID:XpxkKcu8
世界中のJavaプログラマーを代表して言わせてもらうが
目上の人にご苦労様がダメとか現代のマナーと称したリクルートやNHKどもの
言葉狩りにはうんざりだ
2017/06/04(日) 10:31:26.34ID:FZQRsZV2
ジャップランド土人は敬語に拘って生産性を落とすのが大好き
694デフォルトの名無しさん
垢版 |
2017/06/04(日) 10:38:32.36ID:XpxkKcu8
>>693
Javaにも敬語を導入すべきだ
forよりもwhileが丁寧と言っていいでしょう
695デフォルトの名無しさん
垢版 |
2017/06/04(日) 11:02:37.53ID:B1StEn/h
>>691
じゃあお前はそれを啓蒙し続けて現代の日本語を変えるがよい。
696デフォルトの名無しさん
垢版 |
2017/06/04(日) 11:25:15.76ID:XpxkKcu8
>>695
「ご〜する」が謙譲語なのは現代の日本語の常識だから無問題
2017/06/04(日) 12:23:19.92ID:LF56+oK/
いい加減スレチでうるせえよ
2017/06/04(日) 12:33:39.21ID:FZQRsZV2
うるさいでございます。
死んで頂けますでしょうか?クズ
2017/06/04(日) 12:36:37.88ID:63HT6T2I
お客様、もしよろしければ回線をお切りになってそのまま首をお吊りになられてお亡くなりになって頂けませんでしょうか。
2017/06/04(日) 13:07:40.83ID:mLhi0pMh
いい歳したオヤジや爺どもが子供の喧嘩のような言い合いしてると思うと悲しくなるな
701デフォルトの名無しさん
垢版 |
2017/06/04(日) 13:43:16.85ID:XpxkKcu8
>>700
おじさんたちが技術的な議論を繰り広げててとても建設的なやり取りで
勉強になったし晴れ晴れとした気持ちになれました
本当にありがとうございます

こういうふうに言い換えれば周りの人もうれしい気持ちになるだろ

幸せっていうのは与えられるものじゃなくて与えるものなんだよね
悲しみは自分から動くことを止めた怠惰の証
702デフォルトの名無しさん
垢版 |
2017/06/04(日) 13:44:25.32ID:XpxkKcu8
ポエム勝負なら負ける気がしない、かかってこい
2017/06/04(日) 13:59:32.72ID:FZQRsZV2
>>701
きっしょクッサ
ワキガハゲチビデブ童貞死ね
2017/06/04(日) 14:41:02.70ID:mLhi0pMh
腐ってんなまじで
705デフォルトの名無しさん
垢版 |
2017/06/04(日) 14:54:32.38ID:N3Ss45Z5
そういうことだな
2017/06/04(日) 19:06:22.58ID:B8B9uyxS
質問です。
このスレは何のスレですか?
2017/06/04(日) 19:07:44.69ID:m5pbsJz9
>>706
>>1
708706
垢版 |
2017/06/04(日) 19:18:39.53ID:B8B9uyxS
>>707
ではなぜみんなJavaについての会話をされてないのですか?
2017/06/04(日) 19:21:07.49ID:fUXBibRW
>>708
基地外だからね、こういうのは気になるならNGしとくに限る
2017/06/04(日) 19:39:38.34ID:+nw7hQLa
>>708
>>542
711706
垢版 |
2017/06/04(日) 19:57:39.00ID:B8B9uyxS
>>709
はい。
ありがとうございました。
712デフォルトの名無しさん
垢版 |
2017/06/04(日) 20:14:47.99ID:Y5c4w+fz
ナイス自演
2017/06/06(火) 02:36:35.75ID:PILvAxC4
java使ってみたら、画像処理おっせーなーって思いました。
2017/06/06(火) 18:32:28.47ID:4JBki8CO
オブジェクト指向(の基礎)や例外などを勉強し終えたのですが、
次はどんなことを勉強すればよいでしょうか?
自分ではSwingを考えているのですが。
2017/06/06(火) 18:36:30.51ID:XTHFLjT+
34歳、発達障害の無職ですが…7 [無断転載禁止]©2ch.net
http://medaka.2ch.net/test/read.cgi/prog/1496679311/
2017/06/06(火) 18:36:35.20ID:OrB6yYNK
GUIアプリケーションもいいですがtomcatなどでサーバを建ててServletやJSPするのも、出来ることが広がり良いと思います
717デフォルトの名無しさん
垢版 |
2017/06/06(火) 18:43:11.74ID:WDLmSc1C
>>714
いまさらSwingは時間の無駄かもしれない
2017/06/06(火) 19:25:42.43ID:e3GXNMQX
swingで作られた基幹システムの新規画面作らされたことあるけど地獄だぞ
1回あんなゴミのようなもんを体験したら二度と作ろうと思わないだろうから
swingはいずれ絶対になくなる
2017/06/06(火) 20:23:54.95ID:sIr/52oR
え,今からawt/swingをやろうとおもっていた‥なにがいいの?
2017/06/06(火) 21:28:54.76ID:e3GXNMQX
なんのためにやろうとしてんのか知らんけど仕事のためっていうなら
仕事でjavaのguiアプリなんてまず作らんから時間の無駄
2017/06/06(火) 22:39:03.54ID:mZslSucp
>>718
サイズ調整とイベントではまるのはどれ使っても一緒
C#のXAMLになる前のやつが一番よかった

別にswingが他のにくらべて悪いわけじゃないと思うんだが
2017/06/06(火) 23:06:52.04ID:/YRUpnWE
「*」を使って二等辺三角形をfor文で書きたいのですが、底辺の*の数を変数とした時はどうすれば出来るのでしょうか?
723デフォルトの名無しさん
垢版 |
2017/06/06(火) 23:45:48.14ID:Qy4U0ic0
>>719
たぶん実務経験がないような人が書いている本でも読んでいるんだろうが、好きなのやればいいよ。

画面よりデータベースとのやりとりの勉強でもした方がいい。
2017/06/06(火) 23:47:35.50ID:JC0VRSkb
>>722
アナルを使って二等辺三角形をフォーとか頭おかしいね君
725714
垢版 |
2017/06/07(水) 00:14:45.34ID:uMDm/LY7
遅くなりましたが、レスをくれた方ありがとうございました。
726デフォルトの名無しさん
垢版 |
2017/06/07(水) 00:44:03.11ID:cTN/k6yF
>>722
どういう出力にしたいの?例えば3だったらこんなのでいいの?

*
**
***

だったら簡単だよね。forの二重ループだ。出力行数は底辺の値と同じだからその分だけ外側ループさせて、内側は*の個数に従って一回目は1、二回目は2という感じで一つづつ増えるようにして*を出して終わったら改行。
2017/06/07(水) 07:33:28.64ID:cmAbIhKY
二重にしなくてもいい気もするが…
底辺の数をlengthとして、


char[] cArr = new char[length];
Arrays.fill(cArr, '*');
String base = new String(cArr);

for (int i = 0; i < length; i++)
System.out.println(base.substring(0, i + 1));

こんなんででない?
728デフォルトの名無しさん
垢版 |
2017/06/07(水) 09:18:54.00ID:tzF2fxtK
>>727
俺は StringBuilder に一つづつ * 足しては出すっての思い付いたが、果たしてそれで初心者のためになるのかというと微妙なところだ。
まあ、最終的には貯めといて出す形式と全く貯めずに出す形式両方がすぐ思い浮かぶようになった方が良いだろうけどね。

そういや他にもストリームの仕組み使ってできそうだな。
2017/06/07(水) 11:53:26.03ID:cmAbIhKY
>>728
お題がfor使ってだからなー
streamはレギュレーション違反じゃないか?w
2017/06/07(水) 12:14:03.70ID:CH9XguNK
ストリームとかレギュレーションとか使えばできるんですねありがとうございます!
2017/06/07(水) 12:28:50.65ID:yHTVbtVQ
int n = 3;
String c = "*";
Stream.iterate(c, x -> x + c).limit(n).forEach(System.out::println);

試してないけどこれでいけるかな?
2017/06/07(水) 12:33:36.27ID:yHTVbtVQ
ああこれだと直角三角形か
二等辺三角形にしたいならまた別だな
733デフォルトの名無しさん
垢版 |
2017/06/07(水) 14:05:11.97ID:tzF2fxtK
>>732
ま、>>726も直角三角形だし、縦横同じ間隔で*が表示される状態なら二等辺三角形に見えるものにはなる。
2017/06/07(水) 17:01:49.58ID:3Fne/ooH
chromeブラウザのF12で表示される「NetWork」タブみたいに
URLにアクセスした際に送受信されるリクエスト全部取得する処理ってどうやれば実現できますか?
たぶんhttpClientかsocketあたり使うと思うけどhttpClientはレスポンスぐらいしか取れないように見える
2017/06/07(水) 18:34:21.88ID:0eEwVViY
>>734
HttpClientでできるよ
2017/06/07(水) 18:45:17.43ID:SX0vFLz7
ブラウザはhtmlをパースしてリクエスト投げまくってるんじゃ……
2017/06/07(水) 18:59:01.67ID:3Fne/ooH
>735
あのなぁそういう糞みてーな回答いらねぇーんだよ
できるならちゃんとした回答書け
ホントイラつく奴だな
2017/06/07(水) 19:13:54.26ID:oWxqnrnZ
>>737
簡単にできるから安心して
2017/06/07(水) 19:24:04.91ID:kRVrqaAQ
>>737
キーワード出たんだから後は調べろよ
2017/06/07(水) 19:26:39.78ID:nc/k9gk4
>>737
そんなに怒らないで
普通の人なら的確に分かりやすく答えてくれるけど
オタクはみんなコミュニケーションが下手糞なんだよ・・・
2017/06/07(水) 19:27:42.43ID:3Fne/ooH
キーワード出たからってそんなもん質問の時点で書いてるのに馬鹿か?
httpClientなんて既に英語のサイト全部見たしレスポンスヘッダーの中身もメソッドも全部見たわアホ
こういう適当に知ったかで回答する馬鹿が最高にイラつく
まぁ最初から2chの低レベルアホどもに期待なんか1_もしてねーから別にいいけど
ほんと糞の役にも立たねぇスレだな
俺が質問側で今までに役に立ったことなんて1度もねぇわここ
ほんとレベル低すぎる
2017/06/07(水) 19:38:01.63ID:YmPQB+Dc
ここ初心者スレやし・・・…
こっちの方が良いんで無いの?
★★Java質問・相談スレッド180★★ [無断転載禁止]©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1492780397/
2017/06/07(水) 20:28:52.18ID:oWxqnrnZ
>>741
そろそろできたかな?
2017/06/07(水) 20:29:44.33ID:oWxqnrnZ
煽れば回答が出てくると思ってる奴には教えないからね
745デフォルトの名無しさん
垢版 |
2017/06/07(水) 20:43:40.03ID:qUTOfmgR
chromeでF12?やったことないなあ。後で思い出したら押してみよう。
746デフォルトの名無しさん
垢版 |
2017/06/07(水) 20:47:01.83ID:qUTOfmgR
>>741
そのまま一生イライラしてれば?
こちらは特に困らないし構わないぞ。
思う存分苛立っててくれ。
よかったな。
747デフォルトの名無しさん
垢版 |
2017/06/07(水) 21:06:15.71ID:izePe9Zb
>>741
気持ちはわかるがそう言うのしかいないからココ 昔から(ココがって、別にこのスレや板だけじゃなく、サイトレベルの話な?)

知ったか理論
質問者=素人
っていう短絡的思考だから


知ったか俺氏「ん?この質問は聞いた事ある単語があるぞ?ググって見よう コレか!キリッ!!どや!!」

玄人質問者
「いやそう言う次元の話じゃないから・・・・」

今日も平常運行です
2017/06/07(水) 22:22:38.96ID:rFNnrxIw
ネットで他人を煽って反応を得ようとするのはコミュニケーション欠乏の典型的な症状
749デフォルトの名無しさん
垢版 |
2017/06/07(水) 22:40:13.87ID:cTN/k6yF
Chrome の F12 のネットワークタブようやっとわかった。こんなのあったんだな。知らなかった。
2017/06/07(水) 23:10:09.57ID:zRjRKRgh
>>748
自己紹介乙
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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