[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 03/09 05:43 / Filesize : 261 KB / Number-of Response : 1047
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Java入門・初心者質問スレ Part.7



1 名前:デフォルトの名無しさん mailto:sage [2018/01/10(水) 11:06:04.02 ID:ijSgjgrG.net]
Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.6
mevius.2ch.net/test/read.cgi/tech/1513783473/

357 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 15:56:23.84 ID:OCfZq+43.net]
それか抽象クラス作ってテンプレメソッドパティーンみたいな感じにするかだな
必ず実行したい親クラスの具象メソッド内にサブクラス用の
抽象メソッドを呼び出しておいて、この具象メソッドだけを実行するようにすれば
必然的にお前のやりたいことと同じになるだろう

358 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 18:19:12.08 ID:5rhXD+Wa.net]
なるほど理解しましたありがとうございます!

359 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 00:49:06.79 ID:V/uZYmoA.net]
フォルダを階層構造にするのが複雑なので、統合開発環境を使わず
コマンドプロンプトでパッケージ化する手法はマスターしなくても
いいでしょうか?

360 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 02:15:03.86 ID:q6pXgTbr.net]
すみません、長くなるので2つに分けます
public class CopiedMethod {
static int a = 10;
static int b = 20;

public static void main (String[] args) {
printOneValue();
printThreeValues();
}
private static void printOneValue() {
int maximum = a;
if (b > a) {
maximum = b;
}
System.out.println(" 最大値;" + maximum);
}
private static void printThreeValues() {
int maximum = a;
if (b > a) {
maximum = b;
}
int minimum = a;
if (b < a) {
minimum = b;
}
int average = (a + b) / 2;
System.out.println("最大値:" + maximum);
System.out.println("[最小値:" + minimum);
System.out.println("[平均値:" + average);
}
}
というコードについてなのですが、

361 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 02:40:02.45 ID:q6pXgTbr.net]
すみません、>>346は長いコードになってしまったので、こちらのコードでお願いします;

public class OneMethod {
static int a = 10;
static int b = 20;

public static void main (String[] args) {
printThreeValues(); /////A
}
private static void printThreeValues() { /////B
int maximum = a;
if (b > a) {//[22]
maximum = b;
}
int minimum = a;
if (b < a) {//[25]
minimum = b;
}
int average = (a + b) / 2;
System.out.println("[28] 最大値:" + maximum); /////C
System.out.println("[29] 最小値:" + minimum); /////D
System.out.println("[30] 平均値:" + average); /////E
}
}

実行結果↓
[27] 最大値:20
[28] 最小値:10
[29] 平均値:15

こちらについてなのですが・・・

362 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 02:53:29.54 ID:q6pXgTbr.net]
1
実行結果は、A(/////A)の部分から出力されているのでしょうか?
もしそうなら、C、D、Eの部分も続けて読み込まれて、実行結果は、
[27] 最大値:20
[28] 最小値:10
[29] 平均値:15
[27] 最大値:20
[28] 最小値:10
[29] 平均値:15
と2回同じのが繰り返される実行結果表示にならないのは何故でしょうか?
mainメソッドの中にBのprintThreeValuesメソッドがあるのならわかるのですが、
コードを見た感じ2つは平等(?)な立場の位置に見えまして・・・

2
こちらのコードを上から順番に読みますと、
最初にAの部分が目に入り、ここだけですとこのメソッドが何なのかわからず、
続けてBからEまで読んで初めて理解できると思うのですが、
先にB-Eまでを表記して、その後にmainメソッドを書いた方が読みやすい気がするのですが、
それではなぜ駄目なのでしょうか?

質問が伝わらなかったらすみません
宜しくお願いします

363 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 03:08:54.99 ID:1MQV5vND.net]
>>348
1行ずつ命令を実行していくという考えが間違え
このプログラムはOneMethodというものを定義しているだけ

ただし指定したクラスのmainメソッドが呼ばれるという特例ルールがあるだけ

364 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 12:44:11.63 ID:Rjtb0hvw.net]
>>349
そんな説明でなにかが伝わるとは思えないんだけど
どんだけ説明ヘタクソなんだよ

365 名前:デフォルトの名無しさん mailto:age [2018/04/18(水) 13:37:38.62 ID:kBhJS0dX.net]
>>350
嫉妬か?



366 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 14:05:49.15 ID:AEcEsWpP.net]
まぁ言いたいことはわかるけど ID:q6pXgTbr レベルの奴に返す回答ではないね
基本的このスレは俺を除いて質問者も回答者もほぼ全員が誇張なしに馬鹿だと思う

367 名前:デフォルトの名無しさん [2018/04/18(水) 14:09:44.34 ID:gg2GabAw.net]
>>348
コンピュータは人間が文章を読む時と同じように上から下にプログラムを読んで実行して行くが、
その文章の途中に「○○を読め」と書いてあり、それが出てきたら馬鹿正直にそちらを読んで実行し、
それが終わったら元に戻って続きを読む。

そんな感じで実行していくので文章の見た目の上下とは無関係に上に行ったり下に行ったりする。
同然文章の終わりが一番下になっているとは限らず、真ん中で終わることもある。

見た目に惑わされてはならない。

368 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 15:02:23.36 ID:q6pXgTbr.net]
>>349
>>353
ありがとうございます
そういう仕組みなのですね

どこを見れば
「ここのメソッドはあちらの方で処理されるからここでは処理されない」
といった判断ができるのでしょうか?

処理されるのはMain関数の中身だけ、といった訳ではないのですよね

369 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 15:29:51.02 ID:yobQufC7.net]
実行されるのは main 関数の中身だけだよ

370 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 15:39:39.32 ID:EU/tZBmZ.net]
>>354
関数が実行される順序は
最初はmainで後の法則は>>353
ファイルの先頭からではなくmainの先頭から

mainのAでprintThreeValuesに入ってBへ
そこから1行ずつ進みC, D, Eの順に通り
printThreeValuesの}に到達したらAの次の行へ
mainの}に到達したので終わり

371 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 16:04:40.45 ID:AEcEsWpP.net]
お前らって断片的な回答ばっかで質問者が求めてる根本的な回答を全くできないよね

372 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 16:24:51.29 ID:q6pXgTbr.net]
>>355
>>356
実行されるのはmainのみなのですね;
知りませんでした・・・

今回のコードはmain以外のメソッドが1つしかありませんが
これが数百、数千のコードになっても
結局はmain関数の{から}までしか実行されないということでしょうか?

373 名前:デフォルトの名無しさん [2018/04/18(水) 17:57:52.91 ID:HOJmEonZ.net]
>>358
そう。しかし普通はmainの中から他のメソッドを使うように書いてあるのでそこでそちらに処理が移って終わったら帰ってくるという形式になる。

374 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 19:34:08.75 ID:1MQV5vND.net]
こうやってひとつの関数に全部書いた方がわかりやすいって奴が育っていくんだな

375 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 20:15:05.19 ID:La1cFYoE.net]
>>358
mainは書かずにJUnitのようなテストランナーで実行した方がいい
その方がクラスをコンポーネントとして捉える感覚が身に付く
mainを基準にすると処理を連続した手続きとして捉える考え方が染みついてしまう
仕事でプログラミングする場合もmainを書くことは殆どない



376 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 20:40:56.23 ID:AEcEsWpP.net]
お前らのアドバイスって段階がおかしいんだよね
初心者に対してそういうのってアドバイスになってないどころか悪手中の悪手なんだわ
物事には学習する順序ってもんがある
総じてレベルが低い

377 名前:デフォルトの名無しさん [2018/04/18(水) 20:47:37.52 ID:DGBedneT.net]
そう?

378 名前:デフォルトの名無しさん [2018/04/18(水) 20:48:23.55 ID:DGBedneT.net]
>>362
お手本を見せてくれ。

379 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 20:54:21.02 ID:EvWKjHxH.net]
ID:AEcEsWpP先生が、レベルの高い返事の見本を書いてくれればいいよ
そしたらテンプレにするから

380 名前:デフォルトの名無しさん [2018/04/18(水) 21:08:08.83 ID:UGx4xvOk.net]
+   +
  ∧_∧  +
 (0゜・∀・)   ワクワクテカテカ
 (0゜∪ ∪ +        
 と__)__) +

381 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 21:31: ]
[ここ壊れてます]

382 名前:40.64 ID:mEUoKwFS.net mailto: >>358
main も printThreeValues も単に定義してるだけでしょ?
定義してるだけなので、呼び出されない限り実行されない。
だが main は呼び出される。これが main の特殊性。
main が呼び出されたので、その記述に従って printThreeValues が呼び出される。
main の中身がカラなら printThreeValues は呼ばれない。
[]
[ここ壊れてます]

383 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 12:38:13.50 ID:zY/x8X7C.net]
継承とかでもここ呼んだらsuper通ってこっち行って…とか言ってるやついるよな
定義に従って完成されたものがメモリ上にロードされてるイメージだろ

んーちょうどいい言葉ではないな

384 名前:345 mailto:sage [2018/04/20(金) 00:15:24.50 ID:KttnuZKi.net]
よろしければ、俺の質問にも答えてもらえると嬉しいです
>>345です

385 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 00:49:16.60 ID:K+iBTFnO.net]
言ってることが意味不明すぎて1_も理解できないのでスルー



386 名前:345 mailto:sage [2018/04/20(金) 01:59:16.14 ID:KttnuZKi.net]
すいませんでした
JDKでpackageを使う方法は、出来なくても仕事とかで問題無いでしょうか?

387 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 02:29:27.65 ID:8BwjvaFI.net]
>>371
パッケージ使わないと名前が衝突することがあるので無理
仕事なら一人でやるわけでないし尚更
場合によっては知らない人が作ったパッケージをいじることも

CLASSPATHが理解できないのか

388 名前:345 mailto:sage [2018/04/20(金) 02:37:41.72 ID:KttnuZKi.net]
>>372
レスありがとうございます

フォルダを階層構造にするのが煩雑で嫌なんです
(一般に、)統合開発環境を用いたpackage化が出来る、というだけでは駄目ですか?

389 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 13:10:09.62 ID:8BwjvaFI.net]
>>373
ファイルが1000個とか煩雑過ぎるだろ

390 名前:デフォルトの名無しさん mailto:age [2018/04/20(金) 15:16:16.19 ID:bJgJ2nSn.net]
多分話が噛み合ってない

391 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 15:59:16.02 ID:5NB8H1Vn.net]
>>373
packageの構成も含めて設計だから、できるようにならないとね

392 名前:デフォルトの名無しさん mailto:age [2018/04/20(金) 16:30:35.14 ID:bJgJ2nSn.net]
手作りする意味は皆無だけどな

393 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 21:10:35.11 ID:qDS4Ifrc.net]
Kotlin は同じディレクトリに全ソースぶち込んでパッケージ違ってても問題ないんだよね。
やっぱ不便だから改良したってことなんだろうな。

394 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 23:24:08.50 ID:K+iBTFnO.net]
JavaアンチもそうだけどJavaスレでいつもkotlinガーkotlinガーって言ってる奴って何なんだろうね

395 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 23:57:34.11 ID:NIkAJy/D.net]
俺、出来るよ。

あピってるんだよw



396 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 00:31:53.95 ID:Oxipuy33.net]
>>379
布教活動

397 名前:345 mailto:sage [2018/04/21(土) 00:58:04.69 ID:dCQEqsTo.net]
>>376の方をはじめ、答えて頂いた方ありがとうございました
理解を深めたいと思います

398 名前:デフォルトの名無しさん [2018/04/21(土) 13:04:10.38 ID:O/LyWgef.net]
スーパクラスのメソッドをオーバライドする時に
アクセス修飾子の公開範囲を狭めることができないのは何で?

399 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 13:24:22.24 ID:deWsZ6vs.net]
スーパークラスにキャストしたらメソッド使えちゃうガバガバ仕様になる。

もしくはほぼ全てのメソッド呼び出しで継承先で公開範囲が狭められたインスタンス使ってる可能性があるので
コンパイル時(Javaの場合はクラスロード時)でなくメソッド呼び出し実行時に毎回アクセス範囲チェックが必要になる。
当然実行速度は遅くなる。

どっちにしろアホすぎるので普通はやらない

400 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 16:40:35.81 ID:/j4q6H3B.net]
>>383
2つは外から見た時に同じものであるべきだから
違うなら継承しないか別のメソッドであるべき

401 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 21:58:22.29 ID:7eG7nCds.net]
>>383
is-a関係の基本
スーパークラスのメソッドをサブクラスに対しても同じように呼び出せなきゃポリモーフィズムできないじゃん

例えば、Objectクラスのサブクラスは必ずtoStringメソッドを持つはずなのに、いざ呼び出したらprivateになってて
呼び出せませんでしたってことが起こってしまう

402 名前:デフォルトの名無しさん [2018/04/24(火) 00:20:30.16 ID:3Pw6zIwf.net]
https://i.imgur.com/sFfh3Sr.jpg
https://i.imgur.com/10sVFpD.jpg

解説見ても分からん、、、
なんでコンパイルエラーなの?

403 名前:デフォルトの名無しさん [2018/04/24(火) 00:57:13.36 ID:dNZ0kff2.net]
getPrice()をオーバーライドするなら、ちゃんとthrowsも付けろよ、って書いてあるまんまじゃね?

404 名前:デフォルトの名無しさん [2018/04/24(火) 02:53:39.07 ID:swLaOBA7.net]
>>387
Javaはチェック例外のハンドリングコードがないと構文違反という仕様だから。

405 名前:デフォルトの名無しさん mailto:sage [2018/04/24(火) 04:26:57.89 ID:PQebw9pG.net]
質問です
インターフェースはObjectクラスを継承しておらず、何らかのクラスに実装した時に
Objectクラスを継承する、という理解で合ってるんですよね?



406 名前:デフォルトの名無しさん mailto:age [2018/04/24(火) 08:28:13.84 ID:zK8TVl/a.net]
>>390
違います

407 名前:デフォルトの名無しさん [2018/04/24(火) 09:06:54.35 ID:hoPd7aBI.net]
>>390
どんなクラス作っても必ずObjectは継承されている。interfaceは無関係。

408 名前:デフォルトの名無しさん mailto:sage [2018/04/24(火) 16:11:36.60 ID:wVocooKs.net]
https://www.wareko.jp/blog/post-13612

非同期処理+Promiseで非同期処理が終わってから次の非同期処理が始まるけど、
それって同期処理と何が違うのですか?

409 名前:デフォルトの名無しさん mailto:sage [2018/04/24(火) 16:31:00.91 ID:1D4v+3Mx.net]
非同期は処理中でも、画面が固まらない

410 名前:デフォルトの名無しさん mailto:sage [2018/04/24(火) 17:00:45.22 ID:wVocooKs.net]
同期処理だとUIスレッドまで止めるのかな?
処理の終了を待ちたいけど出来るだけ軽くしたいのならPromiseを使うのが良さそうね、ありがとう。

411 名前:390 mailto:sage [2018/04/24(火) 17:28:01.29 ID:PQebw9pG.net]
>>391
>>392
ありがとうございました

412 名前:デフォルトの名無しさん mailto:sage [2018/04/25(水) 16:22:50.98 ID:fwgr11+u.net]
https://pastebin.com/hm55QbiV
上のコードの4行目で、throws IOExceptionという記述が無いと
コンパイルエラーになるのですが、
それはException系の例外が発生する可能性がある命令を呼ぶ場合、
例外処理をすることが課せられるからですか?

413 名前:デフォルトの名無しさん mailto:sage [2018/04/25(水) 17:26:52.29 ID:2C7nhQLD.net]
例外処理しなかったら投げた例外はどこいくんだよ
宇宙の果てにでも飛んでくのか?

414 名前:デフォルトの名無しさん mailto:sage [2018/04/25(水) 17:31:33.29 ID:Arb+HwkF.net]
>>398
スタートアップが処理するのでは?

415 名前:デフォルトの名無しさん [2018/04/25(水) 17:34:11.55 ID:vN7xx/wG.net]
人気グループ「TOKIO」の山口達也メンバーが、自宅マンションの部屋で女子高校生に無理やりキスをするなどの行為をしたとして、警視庁は強制わいせつの疑いで書類送検しました。

全文は以下
https://www3.nhk.or.jp/news/html/20180425/k10011417181000.html



416 名前:デフォルトの名無しさん [2018/04/25(水) 18:42:45.48 ID:F5XB7b+1.net]
>>398
そう。そしてブラックホールに飲み込まれる。

417 名前:デフォルトの名無しさん [2018/04/25(水) 18:54:49.29 ID:F5XB7b+1.net]
>>397
そう。どこかで例外を処理する必要がある。
そのメソッドの中でやる必要がなく、呼び出した側に任せたい場合はメソッドにthrows付けてその例外を並べておく。

418 名前:397 mailto:sage [2018/04/25(水) 19:30:28.04 ID:fwgr11+u.net]
>>398
>>402
分かりました ありがとうございました

419 名前:デフォルトの名無しさん [2018/04/25(水) 20:44:16.06 ID:3+niHUT+.net]
【マイトLーヤとPS4】 FFとDQの最新作、VR開発は危険、プレーヤーの日常感覚を損なうおそれ
rosie.5ch.net/test/read.cgi/liveplus/1524621704/l50

420 名前:デフォルトの名無しさん mailto:sage [2018/04/25(水) 23:17:47.60 ID:2C7nhQLD.net]
内容が陳腐で今まで読んでなかったスッキリ入門

421 名前:実践編を
この前ウンコしながら読んでたんだけど
listのremoveって内部でobjectのequal読んでるって初めて知ったわ
仕事でremove使ってるときに何かうまく削除できねーなぁって言うのが
何回かあったような気がしたから納得したわ
こんな本でも役に立つとは思わんかった
[]
[ここ壊れてます]

422 名前:デフォルトの名無しさん mailto:sage [2018/04/26(木) 01:41:03.96 ID:rfIza21B.net]
APIリファレンスに書いてなかったか?

423 名前:デフォルトの名無しさん mailto:age [2018/04/26(木) 08:48:52.90 ID:2wH2d+Gx.net]
JK的にそれしかありえんだろ

424 名前:デフォルトの名無しさん [2018/04/26(木) 09:39:16.37 ID:M6xSFYLV.net]
JK的?

425 名前:デフォルトの名無しさん mailto:sage [2018/04/26(木) 11:22:14.87 ID:ug01vewW.net]
メンバーか



426 名前:デフォルトの名無しさん [2018/04/26(木) 11:46:33.29 ID:zm91irPY.net]
35歳の間違いだろ

427 名前:デフォルトの名無しさん mailto:sage [2018/04/26(木) 14:20:36.08 ID:LZqqVlEY.net]
共同ツール 1
https://seleck.cc/685

https://trello.com/
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
ttp://www.kikakulabo.com/service-eft/
trelloのオープンソースあり

共同ツール 2
https://www.google.com/intl/ja_jp/sheets/about/

共同ツール 3
https://slack.com/intl/ja-jp
https://www.dropbox.com/ja/
https://bitbucket.org/
https://ja.atlassian.com/software/sourcetree
https://sketchapp.com/extensions/plugins/
ttp://photoshopvip.net/103903

ttps://goodpatch.com/blog/sketch-plugins/

428 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 01:23:44.80 ID:jNhgPBcU.net]
>>410
ここで出すな

429 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 10:56:04.65 ID:3DjLi910.net]
アレルギー発症するしな

430 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 23:14:20.81 ID:RZcX+AlMt]
JAVAというよりプログラミングの設計の話なのかもしれないのですが,相談させてください.
例えばクラスで表(テーブル)を書くクラスを作るとして,使う側は表の定義情報をそのクラスに
setterで渡すとします.

渡された定義情報はクラス内部の多くのメソッドで使われるのですが,この場合クラス内の
各メソッドは,引数に定義情報を取った方が良いのか,メソッド内部でgetterを使って取得
するのが良いのか迷っています.(各メソッドは使用側からは呼ばれない予定です.)

細かいかもしれませんが,皆さんならどうするかアドバイスいただけないでしょうか?

431 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 06:41:39.46 ID:vbqExxbx.net]
int[] dt=new int[100];
これはやはり空白入れて
int[] dt = new int[100];
と書くのが一般的なんですかね?

432 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 08:57:33.33 ID:jd++Ii8/.net]
好きにしたらええ

433 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 12:00:36.28 ID:yhgdtgpW.net]
>>415
なにそのアホみたいな質問
どっちが一般的か、本当にわからなくて聞いてる?
前者の方が一般的もしくは半々ぐらいである可能性もあると思って聞いてんの?

434 名前:デフォルトの名無しさん [2018/05/03(木) 20:35:04.46 ID:BzzsX7PA.net]
>>415
ワシは後者で書く
それで話は終わり

>>417
まあまあ
こんなカス掲示板で
マジにならんでもよろしい
ワシも多少はそう思ってる

435 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 20:44:54.98 ID:x/CfAno2.net]
コンマの後ろは空白入れる派?
(1, 2, 3)



436 名前:デフォルトの名無しさん [2018/05/04(金) 03:59:25.88 ID:id/9DuDj.net]
マンコの後ろの穴にチンコ入れる派

437 名前:デフォルトの名無しさん [2018/05/04(金) 03:59:46.06 ID:id/9DuDj.net]
マンコの後ろの穴にチンコ入れる派

438 名前:デフォルトの名無しさん [2018/05/04(金) 04:06:53.55 ID:WkIAkx0r.net]
マンコの後ろの穴にチンコ入れる派
( * )←ω

439 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 06:18:21.42 ID:HEa1U9rI.net]


440 名前:数値リテラルとかビット〜みたいな細かい数字の話が基礎知識として出てきてとりあえず読み飛ばしてるんですが、やはり理解するのは必須なんでしょうか []
[ここ壊れてます]

441 名前:デフォルトの名無しさん [2018/05/04(金) 21:01:19.41 ID:sij7cbOA.net]
必須だと思うよ。
そういう基礎的部分がわからないままではプログラム作れないだろう。

442 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 00:41:00.51 ID:4BKiiZ7N.net]
やはりそうですか……
ありがとうございます

443 名前:デフォルトの名無しさん [2018/05/05(土) 02:57:52.54 ID:ia6t0Ogc.net]
Javaの基礎的な部分で混乱しそうな所は文字列定数かな。特にCやC++に慣れた人がダブルクォーテーションで括られてるだけでそれがStringのインスタンスであることを理解せずに String s = new String(”abc”); みたいな無駄な書き方をしてしまったりする。

444 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 10:46:34.95 ID:7fXWffH9.net]
>>426
そんなところで混乱する奴なんていないよ

445 名前:デフォルトの名無しさん [2018/05/05(土) 15:19:26.83 ID:ia6t0Ogc.net]
そうかなあ?前はよく見たけどなあ。



446 名前:デフォルトの名無しさん [2018/05/05(土) 16:41:30.46 ID:FiSjDjb0.net]
未だにequalsと==のバグ見かける
C#といったりきたりしてるとうっかりやるから
そろそろ言語仕様変えてほしい

447 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 17:06:56.84 ID:ZO4AhgIr.net]
めっちゃ分かる

448 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 17:19:52.83 ID:HbTEHU9f.net]
なまじ似てるのが悪い。

449 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 19:43:03.62 ID:6mpGGgHw.net]
https://pastebin.com/Ls4mpSCv
本に載っていた上のコードの11行目で、byte型にキャストを行っているのですが、
その理由が分かりません
リファレンスで調べると、FileOutputStreamのwrite()メソッドは、byte[]か
intしか(第1)引数に取らないと書いてあります
どなたかこのキャストの理由が分かる方がいましたら、教えてもらえませんで
しょうか?

450 名前:デフォルトの名無しさん [2018/05/05(土) 19:55:03.40 ID:fekIGidl.net]
>>432
理由はない、完全に無駄なキャストだしflushも呼ばなくていい

451 名前:デフォルトの名無しさん [2018/05/05(土) 20:08:07.19 ID:ia6t0Ogc.net]
それだけでなくなんか無駄があるな。9〜13行目はこれでいいよなあ。

int data;
while ((data = is.read()) != -1)
 os.write(data);

452 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 20:10:31.11 ID:ia6t0Ogc.net]
あ、でも、何れにしてもバッファリングしてないから遅くなるかな。
BufferedInputStream() や BufferedOutputStream() を通すことをお勧めする。

453 名前:431 mailto:sage [2018/05/05(土) 22:47:05.28 ID:6mpGGgHw.net]
答えてくれた方、ありがとうございます

>>433
flush()を呼ばないと書き込まれずにデータが残る恐れがある、と本には
書いてあるんですが…

>>434
>>435
分かりました

454 名前:デフォルトの名無しさん [2018/05/05(土) 22:50:45.34 ID:fekIGidl.net]
>>436
どこの本じゃおらあああ!!!
説教してやるわ!
>>434さんお願いします

455 名前:431 mailto:sage [2018/05/05(土) 23:14:03.22 ID:6mpGGgHw.net]
>>437
有名な、「スッキリわかるJava入門 実践編」です
該当箇所(p252)を引用します

「…flush()を呼び出さないとファイルに正しくデータが書き込まれないことがある
からです。
 実は、write()メソッドはデータの書き込みを要求するだけの命令であり、
呼び出したらすぐにファイルにデータが書き込まれるとは限りません。
これはファイルの読み書きを高速化するためのバッファというしくみによって、
後でまとめて書き込み処理がされることがあるためです。…」



456 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 23:14:53.02 ID:ukbnMY+E.net]
普通はcloseの内部でflushが呼ばれるか同等の処理がされるから、
きちんとcloseするプログラムの場合は明示的なflushは不要。

457 名前:431 mailto:sage [2018/05/05(土) 23:44:43.67 ID:6mpGGgHw.net]
>>439
そうなんですか?
ありがとうございました






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<261KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef