X



Java入門・初心者質問スレ Part.5©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
0611デフォルトの名無しさん
垢版 |
2017/11/17(金) 23:38:35.39ID:aGWwpVlc
>>608
それは説明が面倒だからインナークラスになっているのかもしれない。
0612デフォルトの名無しさん
垢版 |
2017/11/18(土) 00:01:03.60ID:aGnQcjwq
見やすさ考えたら別のクラスに分ける方がいいと思うんだけどね

入門書の違和感が凄いのは パッケージを使って複数の単純なjavaファイルを組み合わせろって言ってるのにも関わらず
実際にはインナー使いまくって
javaファイル1個で収めてしまってるっていうところかな

勉強にならないっていう
0619デフォルトの名無しさん
垢版 |
2017/11/18(土) 10:39:06.66ID:9qldwfu/
TreeSetのソースコードを見てみましたが、Red Black Treeの実装はそこには含まれていませんでした。

たくさんのクラスやインターフェースが関係しているようで、全貌を理解するのは容易ではないみたいですね。

そこで質問なのですが、入門書を読み終わった後に、本格的に勉強するにはどの本を読めばいいのか
教えていただけないでしょうか。

本屋で見てみた結果、どうも日本語のJavaの本はやさしい入門書ばかりのようです。

Javaによるライブラリーの設計の仕方の本のようなものはないでしょうか?
0620デフォルトの名無しさん
垢版 |
2017/11/18(土) 11:04:32.59ID:mXawvBur
リスナーはインナーで当然としても、
各種機能は別クラスで書いて欲しいよ

実際には別クラスにする事が多いだろう
その為の教則本であり参考書なんだから頼む
それとも今はネイティブなんてどこも書かんのかね
0621デフォルトの名無しさん
垢版 |
2017/11/18(土) 11:15:36.08ID:1t/7h042
>>619
何が目的なのか説明してくれ
0622デフォルトの名無しさん
垢版 |
2017/11/18(土) 11:19:41.03ID:grusuN0I
>>619
クラス分けでどう役割を分けるかとかならデザインパターンで、処理の効率とかメモリ消費とか言ってるんならアルゴリズムら辺じゃない?
0623デフォルトの名無しさん
垢版 |
2017/11/18(土) 11:21:23.13ID:9qldwfu/
>>621

Javaのような広く使われている言語のライブラリーがどのようなものなのかを
理解したいです。

アルゴリズムとデータ構造の本のあるトピックを読んだ後に、実際に広く使われている
ライブラリーではどのように実装されているのかが知りたくなります。

細かいテクニックも使われていると思いますし、プログラミングの勉強にもなると思います。
0624デフォルトの名無しさん
垢版 |
2017/11/18(土) 11:23:37.89ID:sryiIqkf
>>619
入門書ちゃんと読んでればTreeSetはTreeMapを使ってるってわかるっしょ
TreeMapがRed Black Treeの実装だよ
0625デフォルトの名無しさん
垢版 |
2017/11/18(土) 11:24:14.86ID:9qldwfu/
>>622

ありがとうございます。

TreeSetのソースコードを読んでみてあまりにも沢山のクラスやインターフェースが
からんでいるので、圧倒されてしまいました。

肝心のRed Black Treeの実装部分以外の部分がコードの行数の大半を占めている
というのに驚きました。

デザインパターンの本を読んでみようと思います。
0627デフォルトの名無しさん
垢版 |
2017/11/18(土) 11:28:40.42ID:9qldwfu/
>>624

ありがとうございます。

コアな部分を見つけるのですら大変な感じで、見つけられませんでした。
0628デフォルトの名無しさん
垢版 |
2017/11/18(土) 11:38:42.95ID:sryiIqkf
>>627
TreeSetはTreeMapに処理を委譲してるスカスカのクラスじゃん
見つけられないわけないだろ

たとえばTreeSetのaddメソッドを見ればこうなってるから
mがなんのオブジェクトか調べるだけっしょ

public boolean add(E e) {
 return m.put(e, PRESENT)==null;
}
0629デフォルトの名無しさん
垢版 |
2017/11/18(土) 14:01:42.10ID:1t/7h042
>>623
オープンソースの製品を見ればいい。
0631デフォルトの名無しさん
垢版 |
2017/11/18(土) 16:17:35.67ID:6foiYhRZ
平衡二分木の赤黒木を図解している本は、あまりない。
川中真耶の本で、図解していたかも知れない

まず、AVL の図解で、木の回転・縮約などを勉強する。
それから赤黒木

AVL では、木の高さをそろえるため、最小最大の高さの差が、2になると、
木の回転・縮約をして、差を1以内に収束させる。
この処理が頻繁に入るため、赤黒木が考案された

赤黒木では、最小最大の高さが2倍になるまで、何もしない。
例えば、最小の高さが10、最大の高さが20になると、木の高さをそろえる

Linux で、数ミリ秒毎にプロセスを切り替える、プロセス実行ツリーは赤黒木。
プロセスをツリーに挿入し、実行されたら、ツリーから削除する

同じノードの挿入・削除が繰り返される場合に、
一々、木の高さをそろえないから、赤黒木は効率的
0632デフォルトの名無しさん
垢版 |
2017/11/18(土) 17:22:26.42ID:6foiYhRZ
>Linux で、数ミリ秒毎にプロセスを切り替える

間違えた。もっと速い。
コンテキストスイッチは、1秒間に10万回だったな
0633デフォルトの名無しさん
垢版 |
2017/11/19(日) 17:48:09.87ID:kX4SliJD
javafxのButtonでボタンの大きさ変えるには?
0635デフォルトの名無しさん
垢版 |
2017/11/20(月) 00:44:14.05ID:1mq1CQ1q
Java始めるためにEclipseダウンロードしました
人気らしいんですが使ってる人いますか?
あと他の言語を使う場合Eclipse一つで賄えるのですか?
ここにいる人たちのおすすめ統合開発環境かエディタ教えてもらいたいです
0636デフォルトの名無しさん
垢版 |
2017/11/20(月) 01:25:50.57ID:mDfqs7je
ほとんどの入門書がeclipse導入を前提にしていると思う
だから学習用途でならユーザー数は多いんでないかね
0637デフォルトの名無しさん
垢版 |
2017/11/20(月) 09:55:37.07ID:XIksiTJJ
>>635
何せ古いからねー
困ってもググればなんとかなるし、
よほど複雑な事しない限りはeclipseでいいと思うよ
0639デフォルトの名無しさん
垢版 |
2017/11/20(月) 12:34:55.29ID:teQ/6eqN
無茶苦茶速いゲーミングPCでも使ってやればよい
0641デフォルトの名無しさん
垢版 |
2017/11/20(月) 13:03:06.04ID:GA+fru4l
IntelliJは?
0642デフォルトの名無しさん
垢版 |
2017/11/20(月) 16:03:17.43ID:ohy70QIE
>>641
Kotlin用またはAndroid Studioのベース用
既存プロジェクトがIntelliJで動いてるとか職場になんでも知ってるIntelliJマイスターがいるとかでない限り新規で選ぶ積極的理由はない
加えて、きちんとしたプロジェクト方向性(と有償IDEに使えるお金)があるならAndroidスマホはC#&UnityでもC++でもいいからAndroid Studioの優位性は思ったほど高くない
IntelliJはいまが踏ん張りどころ
0643デフォルトの名無しさん
垢版 |
2017/11/20(月) 16:08:42.84ID:GA+fru4l
>>642
なるほど
素直にEclipseにしとくのが良さそうですね
0644デフォルトの名無しさん
垢版 |
2017/11/20(月) 22:00:35.84ID:1mq1CQ1q
Java使ってる人って何作ってるの?
ゲームで使うにしてもJavaダウンロードしなきゃ動かないんじゃないの?
てか同人ゲーの主な言語って何?C#?C++?
0645デフォルトの名無しさん
垢版 |
2017/11/21(火) 01:54:49.24ID:zUV8sDjk
>>644
サーバ用プログラムとAndroid用プログラムが一番多いんじゃないかな。
PCでクライアント用プログラムというのも業務用だとたまにある。
個人向けPC用だとやはり JavaVM インストールしなきゃいけなかったりするのがあってかあまりないように思う。

2chの専ブラにJavaで作ったやつがあったが、2chが接続に関して制限をした時に対応しなかったので
2ch用としては終わった(その他互換性のある掲示板には使えたが)。
0647デフォルトの名無しさん
垢版 |
2017/11/21(火) 07:31:51.24ID:OOffmQFA
>>644
ゲーム製作はゲーム用ライブラリやゲームエンジンに強く依存する
むろん、言語から選んでOpenGLバインディングをゼロからごりごり書いてもいいが、それは言語の理解のためにゲームを利用してる状態で、あんまりゲーム製作とは言えない
(企業ならそうやって時間とコストかけて特定言語の自社製フレームワークを作ってもいいが、それは企業だから維持できることだ)
いまいちばん新しくて個人人気があるのがUnity+C#。PC/スマホの両対応。有料アセットストアのゲーム用リソース支援が強すぎる。おかねは正義
ゲーム用途ではJava+JavaライブラリはAndroidですら少数派だと思う(昔はこれしかなかったから今もこれで作ってる人は多いが)

もっとプログラミングレベルを下げたもの、つまりやれることが減ってるがその分作りやすいもの、となると各種ゲームエディタやツクールになる(スマホ向けはあまりうまくいってないようだ)
ゲーム製作プログラミング自体をしたいわけじゃない、ネタやリソースはすでに持っててありものに反映させたいだけ、という人が効率よく使う
ツクールツクール言って煽る人がいるが、そう馬鹿にしたものでもない。だって願望の実現効率がいいんだから
0651デフォルトの名無しさん
垢版 |
2017/11/21(火) 23:05:59.16ID:PCscOrJ1
彼の言ってることを3行にまとめると
Unity3Dスキスキだいすきー
あれC#だ、Java使わない
金ないならツクールで作れ
0652デフォルトの名無しさん
垢版 |
2017/11/22(水) 02:55:16.46ID:Nn/9sF3F
やっぱなんかソフトを思い描いて作りながら勉強するほうが効率的なのかなぁ
今スッキリ入門、実戦、SQLまで読んだ、というか何回も読んでる途中だけどソフト作れる気がしねぇ
0653デフォルトの名無しさん
垢版 |
2017/11/22(水) 03:05:25.75ID:Fja20xY7
最初から実用レベルのアプリを作るのは難しくて
小さいツールをたくさん作っていくうちに
パターンが分かってきて作れるようになっていく
0655デフォルトの名無しさん
垢版 |
2017/11/22(水) 13:44:16.88ID:04NSPu4h
>>652
目的がないのにやるのはおかしい。
0656デフォルトの名無しさん
垢版 |
2017/11/22(水) 15:56:14.43ID:NgxFNsMl
>>655
あんがいそうでもない
プログラミングの思考が好きでプログラミングをやっている、という向きもある
0658デフォルトの名無しさん
垢版 |
2017/11/22(水) 17:04:48.21ID:MbIFD/uR
プログラミングのお題スレでも見て作れそうなの作れば良いのではないかな
0659デフォルトの名無しさん
垢版 |
2017/11/22(水) 17:21:17.55ID:ENKJMmst
この本で、オブジェクト指向を学んだら、
スッキリわかる Java入門 第2版、2014

その後、この2冊をこの順に読む。
たのしいRuby 第5版、2016
みんなのPython 第4版、2017

これで基礎ができるから、パズルを解くか、ツールを作れる
0660デフォルトの名無しさん
垢版 |
2017/11/22(水) 17:55:08.98ID:Q4N3BSHt
・スッキリわかる Java入門 第2版、2014
これは読みました。
わかりやすさに感銘を受けました。

ところでこの2冊を読む意義はなんでしょうか?
言語としてのRubyとPythonには興味がない人でも読む価値はありますか?
・たのしいRuby 第5版、2016
・みんなのPython 第4版、2017
0662デフォルトの名無しさん
垢版 |
2017/11/22(水) 18:18:15.55ID:ENKJMmst
Ruby, Python は、シェルスクリプトの代わりになる。
OS のコマンドを実行できる。
その後に、PowerShell もやった方が良い

Vagrant, Chef も、Rubyだから、仮想OS, Linux で使える。
つまり、環境構築に強くなる

関数型言語の勉強にもなるから、Kotlin, JavaScript へ移行しやすい。
さらに、ツールも作りやすくて、パズルも解きやすい

ここまでが基礎で、その後に数言語を学ぶ
0664デフォルトの名無しさん
垢版 |
2017/11/22(水) 18:34:07.61ID:milfaijK
Eclipseを使っていますが、タブキーを押すとスペースが4個入力されるようにするにはどうすればいいのでしょうか?
0665デフォルトの名無しさん
垢版 |
2017/11/22(水) 18:55:16.70ID:/wgdkUUe
>>664
趣味が変わってるな
0666デフォルトの名無しさん
垢版 |
2017/11/22(水) 22:29:18.03ID:Clb/PdqY
>>664
設定をtabで検索
0667デフォルトの名無しさん
垢版 |
2017/11/23(木) 01:29:11.09ID:F7iNVWnV
>>655
作ってみたいプログラムならあるよ
データベースとウェブを組み合わせた何かを作ってみたい
具体的にはゲームのwikiページみたいなのとか
ネットによくある装備シュミレーターみたいなのとか
ネットショップとかの会員管理や取引決済管理みたいなのとか
ネトゲがどういう形でデータベースを使ってるのかわからないけどネトゲみたいな自由自在にデータベースの使う方法を知りたいとかもある
ただどれも今は雲をつかむような感じで出来る気がしねぇ

>>657
何書いていいかわからないんだから書けないよ
C言語から入って入力を求めて数学的処理をしてテキストに出力するようなプログラムは数個書いた
でもなんか思ってたのと違うと思ってJava勉強してるんだけどこっちでも何書いて良いかわかんない
0668デフォルトの名無しさん
垢版 |
2017/11/23(木) 01:34:20.60ID:F7iNVWnV
あとスッキリの例題なんかもやってるけどミナト君のRPGとかなんか書いててしょぼく感じるんだよなぁ・・・
0669デフォルトの名無しさん
垢版 |
2017/11/23(木) 02:54:03.42ID:zrxDpziz
>>668
俺もスッキリの問題解いてみたけど、問題を解くだけだとアルゴリズムを考える力が
あまり付かない感じがした。ああ、あくまでも入門書なんだなあって。
前AOJのサイトこのスレで勧められたんだけど、良かったらやってみたら?
本見てコード打つより考える力が付く気がする。
0671デフォルトの名無しさん
垢版 |
2017/11/23(木) 06:45:47.99ID:NKBG+ZId
息抜きにawtでもswingでも簡単なguiをつくればモチベには繋がると思う
自分の思い描いていたプログラミング感みたいな
0673デフォルトの名無しさん
垢版 |
2017/11/23(木) 12:09:43.44ID:ZxDTak3A
>>667
こんな感じのそれぞれのやり方を調べてやってみれば勉強にはなるんじゃない?
Springとライブラリ使った方が簡単だけど
1.JSONを解析して内容を返すクラスを作る
2.JSONをPOSTされたら内容に応じて特定の応答を返すWebアプリを作る
3.そのWebアプリをDB使うように変更する
4.ブラウザで見られるページを作る
5.WebページからJSONをPOSTできるようにする
6.レスポンスに応じてWebページを変えてみる
0674デフォルトの名無しさん
垢版 |
2017/11/23(木) 13:03:34.43ID:2mSc0LjS
java始めたきっかけは
仕事の効率化やったな
エクセル集計やpdf整理や雛形メール送信できたらなあってのがきっかけだった
目的があれば逆引きで勉強しながらトライアンドエラーの繰り返しですぐできるようになるよ
0676デフォルトの名無しさん
垢版 |
2017/11/23(木) 13:56:39.07ID:JkIKu46w
まず本を読む
良いコードとは何かについて考える
考えをまとめたら実際に書いて確かめる
書くものは実用性のないサンプル用の課題でいい
例えば架空のオンラインショップなど

この思索の経験が実務で活きてくる
これをやらない奴のシステムはいつもめちゃくちゃ
0677デフォルトの名無しさん
垢版 |
2017/11/23(木) 14:07:22.20ID:AMXsylzt
>>675
ちょっと違和感がある
目的に沿うのが良いコードだと思う
コードがきれいなのも使いやすさのうち
0678デフォルトの名無しさん
垢版 |
2017/11/23(木) 17:17:20.32ID:2mSc0LjS
確かに寄せ集めだったり 動けばいいって感じだから最初は汚いなwww
でもまずは動くものを完成させるというのが大切よ
そこがスタートライン
0680デフォルトの名無しさん
垢版 |
2017/11/23(木) 19:44:46.58ID:0qz2CzGv
ほんとここって質問に対してゴミみたいな返しばっかだなw
まぁここで質問する奴も馬鹿なんだが回答とは程遠い的外れレスしかなくて呆れるわ
0681デフォルトの名無しさん
垢版 |
2017/11/23(木) 19:49:55.51ID:uF7hi9HH
座学と実技は交互にやるのがいいよ
飽きにくくなるし
Javaに限らず

なかなか座学に戻るきっかけがない
通勤中の読書とかいいね
0682デフォルトの名無しさん
垢版 |
2017/11/24(金) 00:11:30.15ID:XU2XTCN8
ゲーム作るなら正直C#のがいいの?
マイクラのMOD作りたかったらやっぱマイクラと同じJava使わないといけないの?
0684デフォルトの名無しさん
垢版 |
2017/11/27(月) 19:15:24.32ID:pOrXaMs/
バカはお前だろ
初心者相手に何イキってんだよ
0686デフォルトの名無しさん
垢版 |
2017/11/28(火) 03:03:07.11ID:399RPoge
サーブレットの勉強をしているのですが、web.xmlの仕様がよく分かりません。ググっても説明を羅列しているのが多く、具体的にどういう時に使用するのか理解できていません。
(Welcomefile、アノテーションで代替されたサーブレットのタグは除く)

なにかよい本かサイトはありますでしょうか
0687デフォルトの名無しさん
垢版 |
2017/11/28(火) 10:49:06.91ID:wXhMIi8n
>>685
なんでだよ?
0688デフォルトの名無しさん
垢版 |
2017/11/28(火) 12:12:47.83ID:VI0KQalJ
GoFの入門にお勧めの本ありませんか
Java言語で学ぶデザインパターン入門は買って見たけど全然意味解りませんでした
0689デフォルトの名無しさん
垢版 |
2017/11/28(火) 12:22:39.90ID:BSaeQFIU
>>688
あれって、サンプルプログラムなかったっけ

ちゃんとプログラムを動作させてみた?

単にコピペするだけじゃなくて、多少アレンジしてどのような挙動をするのかの確認とかもしないとね
0690デフォルトの名無しさん
垢版 |
2017/11/28(火) 12:57:36.68ID:Ym/qH3G+
Javaのfocusの使い方が分かりやすい本があれば教えて頂きたい(Swing)

トップコンテナをFlameとして
子コンテナをjpanel
孫コンポーネントをlabelとかtextとか
キーイベントで画像出すとか

簡単なもの作って見ようかとやってたんだけど focusの使い方がサッパリ分かりません

今持ってる入門書は明快入門javaですが
Guiについてはほとんど書かれてない

書店や図書館行って見てきたけども
これといってguiの本は無かったので
どのように勉強すればいいか
ご教授お願いします
0691デフォルトの名無しさん
垢版 |
2017/11/28(火) 21:51:06.98ID:PkJOT8pW
>>686
スッキリわかる サーブレット&JSP入門、2014

>>690
Javaで、GUI の本は無いね。
Kotlin で、Android とか、Web(HTML)とかかな?
0692デフォルトの名無しさん
垢版 |
2017/11/28(火) 23:13:50.65ID:399RPoge
>>691
遅くなりましたがスッキリシリーズの本紹介ありがとうございます。
実は何年版かわかりませんが既に持っているのですが、2014版が詳しく載ってるんですかね
まずは持っている版を見なおしてみます
0693デフォルトの名無しさん
垢版 |
2017/11/30(木) 18:34:00.77ID:A1E/mSxW
セジウィックとウエインのcourseraのオンライン講義を聴講しています。

java.util.List
java.util.Stack
java.util.Queue

は最低だそうですね。

Best practices: Use our implementations of Stack, Queue, and Bag.

だそうです。
0694デフォルトの名無しさん
垢版 |
2017/11/30(木) 19:52:37.31ID:REpnm3ls
>>693
どういう理由で?
0695デフォルトの名無しさん
垢版 |
2017/11/30(木) 19:56:29.88ID:7wApdvUL
まあ誰も使ってなさそうなListIteratorとかgetがO(1)である保証がなかったりするのとかはクソだと思う
0697デフォルトの名無しさん
垢版 |
2017/11/30(木) 20:41:40.24ID:n7dx9HSj
zipファイル、7zファイルを読み込み、圧縮されているファイルを
ランダムアクセスで処理するプログラムを作ろうと思ってます

ファイルを実際に展開してそのファイルをランダムアクセスする、
ということになるのかなと思ってるのですが、一応、パスワード付きzipにも
対応する必要があって、例えばプログラムを強制終了したときに
パスワードを入れて展開した一時ファイルが残ると嫌だなあと思ってて、
メモリ上に展開し、メモリの内容をランダムアクセスして、ということが
できないかと思ってます

圧縮ファイルの内容をメモリ上に展開し、それをランダムアクセスする方法を
教えてください
0699デフォルトの名無しさん
垢版 |
2017/11/30(木) 20:59:36.57ID:aDlGM/9P
>>697
Ruby なら、IO の振りをする、StringIO というクラスがあるけど

つまり、メモリ内だけに存在する、単なるバッファ
0700デフォルトの名無しさん
垢版 |
2017/11/30(木) 23:34:58.88ID:REpnm3ls
>>693
ど う い う 理 由 で ?
0703デフォルトの名無しさん
垢版 |
2017/12/01(金) 07:25:24.88ID:4WTG5BjQ
インスタンスフィールドが初期化されるのはオブジェクトが作られたときでは
あるけれどもコンストラクタではないっすよ

なぜならばコンストラクタよりも先に実行される初期化ブロックで
すでに初期化された値を使用できるから

細かいようだけれども細かいことを問う試験なので用語は慎重に選んだがよいかと

>>701
0になる理由がわからないということだけれども
100になると思ったとするならば、クラスとオブジェクトの理解が不十分かと
クラスは設計図でオブジェクトはクラスをもとにメモリを確保したもの。
値を保持するのはオブジェクト。

Employee emp = new Employee();
Sales sal = new Sales();

これらの2つは別のオブジェクトなので
empに設定した値がsalに引き継がれるわけじゃないっすよ
0705デフォルトの名無しさん
垢版 |
2017/12/01(金) 10:02:11.12ID:9wzwhss2
java10からはvarとかexprswitchとか大分モダンになりそうだな
特にvarは左辺にジェネリクス書く必要性で代入のコードが大分見苦しかったから嬉しいわ
0706デフォルトの名無しさん
垢版 |
2017/12/01(金) 12:43:09.58ID:0P5bG9O7
JavaはC++になりたいのだろうか。
0707デフォルトの名無しさん
垢版 |
2017/12/01(金) 12:43:32.32ID:At9jdIip
>>701
emp.empNo には 100 を代入してるけど sal.empNo には何も代入してないからだ。
0710デフォルトの名無しさん
垢版 |
2017/12/01(金) 18:38:31.83ID:LP6gYbOQ
Item が Generic Type Parameter のときに

new Item[n]

とするのが禁止されている理由は何ですか?
0711デフォルトの名無しさん
垢版 |
2017/12/01(金) 19:39:56.19ID:22T+oeFd
>>710
Javaのジェネリクスは引数渡すときと戻り値受け取るときに暗黙的に片っ端からObjectからのダウンキャストを挿入しまくるだけ
当時のSunにはJVM弄る金がなくて、無理にC#に対抗しようとしてこんな手抜き実装になった
Javaのジェネリクスの不可解な制限は、「型パラメータの箇所は実際には全てObjectになる」と考えると理解できる
■ このスレッドは過去ログ倉庫に格納されています

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