Java入門・初心者質問スレ Part.5©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
JavaでゲームだとLWJGLやjMonkeyEngineやlibgdxなど
ライブラリやフレームワークがいくつもあるみたいだね
どのみち応答速度や描画更新を考える必要があるから
JavaFXで作ろうとするとすぐ限界になると思う あるwebから読み込んだhtml内の改行コードに、「0x0A」が含まれていて
windows環境ではこの改行を正規表現での置換ができないっぽいんだが
対処方法おしえて 別に高速描画でなければならないゲームだけではないから作れるゲームジャンルは少なくはないのだが
使ったのはCanvasとImageとTextとTimelineだけだったみたいな「JavaFXのメリットって何だったっけ?」というオチになる
どうせなら>>586が挙げてるようなOpenGLとかにもっと近いライブラリがお勧めだ
困ったことに話題のKotlinでも同じ問題があって、新規さんが注目しそうなゲーム関連が標準ライブラリで超苦手という…
まあ、ゲーム製作なんてそんなもんだということで >>588
正規表現で変換すればいいの?
s/\x0a// で空になるんじゃないの?
(""の中では \ は \\ な) >>588
LINE_SEPARATOR_PATTERNで検索すると目当ての正規表現がScanner.javaの中にみつかる
参考にしながら自前で用意しなおすとか 正規表現て\r→0x0d \n→0x0aにヒットするんじゃなかと? >>592
Javaだとそれ固定だったっけ?
だったらそれで良い。 >>588
その質問、どういう状況なのかもうちょっと詳しく書いてみて。
何をやりたくて自分では何をやりそしてどのようにうまく行かなかったのか? Javaで実戦積むにはやっぱりプログラマーとして就業するしかないかな? Javaのコレクションについて詳しく解説している本はありますか?
実装でどのようなデータ構造が使われているのか知りたいです。 >>596
スッキリわかるの実践編でも説明されている。
アマゾンでJavaの本を見てる?
業務システムだとArrayListばかりだけど。 >>597-598
ありがとうございます。
スッキリわかるの実践編は見ました。
が、実装について詳しく書いていません。
たとえば、TreeSetが赤黒木を使って実装されているとかそういうことを知りたいです。 >>599
『(新)明解 Javaで学ぶアルゴリズムとデータ構造』
でアルゴリズムの基本を押さえれば実用上は問題ない
そうではなくどうしてもJava自体の実装が知りたいなら
Javaのソースコードを自力で読むしかないと思う いつでもオンラインリファレンスとsrc.zipへジャンプできるようにしときなよ
intelliJもeclipseも設定あるよ 遥か昔、惨舞黒という武人がいた
彼は邪葉という流儀を拓き、人々は目盛管理から(ひとまず)解放された
…そこに目を付けたのが親日派を筆頭に持つ悪羅狂である
民明書房刊「こんにちは世界!」より抜粋 >>600-601
ありがとうございました。
ソースコードを見られるとは知りませんでした。 すみません。
src.zip がパソコンの中に見つかりません。
どこを探せばいいでしょうか?
Javaのダウンロード&インストール時にはデフォルトを選択しています。 >>606
ありがとうございました。
Eclipseから見られるようになりました。 今使っているjavaの入門書がインナークラスを多用しすぎていて
実務的に使い物にならないのでいい本・・・というか
しっかり1クラスずつ分けて書いてある本が欲しいです。
入門用のサイトでも、インナークラスが大半で
アクションイベントの説明がインナーで書かれてる長すぎるコードで困っています。
どういう本を買う ないしはどういうサイトを参考にすれば良いでしょうか? 自力でアウタークラスに書き直せ、名前を追加するだけでよいのではないか? >>608
それな
実は超実用的だぞ
業務で好き勝手にファイルを追加なんてしたら処刑されてしまう
だからファイルを作らずにクラスを作れる内部クラスはありがたい >>608
それは説明が面倒だからインナークラスになっているのかもしれない。 見やすさ考えたら別のクラスに分ける方がいいと思うんだけどね
入門書の違和感が凄いのは パッケージを使って複数の単純なjavaファイルを組み合わせろって言ってるのにも関わらず
実際にはインナー使いまくって
javaファイル1個で収めてしまってるっていうところかな
勉強にならないっていう コンパイルしたらクラスファイルがもりもりできてびっくりするやつ >>614
イベントハンドラ記述するのにインナークラス多用っつったら十中八九Androidでしょ TreeSetのソースコードを見てみましたが、Red Black Treeの実装はそこには含まれていませんでした。
たくさんのクラスやインターフェースが関係しているようで、全貌を理解するのは容易ではないみたいですね。
そこで質問なのですが、入門書を読み終わった後に、本格的に勉強するにはどの本を読めばいいのか
教えていただけないでしょうか。
本屋で見てみた結果、どうも日本語のJavaの本はやさしい入門書ばかりのようです。
Javaによるライブラリーの設計の仕方の本のようなものはないでしょうか? リスナーはインナーで当然としても、
各種機能は別クラスで書いて欲しいよ
実際には別クラスにする事が多いだろう
その為の教則本であり参考書なんだから頼む
それとも今はネイティブなんてどこも書かんのかね >>619
クラス分けでどう役割を分けるかとかならデザインパターンで、処理の効率とかメモリ消費とか言ってるんならアルゴリズムら辺じゃない? >>621
Javaのような広く使われている言語のライブラリーがどのようなものなのかを
理解したいです。
アルゴリズムとデータ構造の本のあるトピックを読んだ後に、実際に広く使われている
ライブラリーではどのように実装されているのかが知りたくなります。
細かいテクニックも使われていると思いますし、プログラミングの勉強にもなると思います。 >>619
入門書ちゃんと読んでればTreeSetはTreeMapを使ってるってわかるっしょ
TreeMapがRed Black Treeの実装だよ >>622
ありがとうございます。
TreeSetのソースコードを読んでみてあまりにも沢山のクラスやインターフェースが
からんでいるので、圧倒されてしまいました。
肝心のRed Black Treeの実装部分以外の部分がコードの行数の大半を占めている
というのに驚きました。
デザインパターンの本を読んでみようと思います。 >>624
ありがとうございます。
コアな部分を見つけるのですら大変な感じで、見つけられませんでした。 >>627
TreeSetはTreeMapに処理を委譲してるスカスカのクラスじゃん
見つけられないわけないだろ
たとえばTreeSetのaddメソッドを見ればこうなってるから
mがなんのオブジェクトか調べるだけっしょ
public boolean add(E e) {
return m.put(e, PRESENT)==null;
} そんな実装だったんか…w
共通ライブラリのくせにムダすぎんだろ 平衡二分木の赤黒木を図解している本は、あまりない。
川中真耶の本で、図解していたかも知れない
まず、AVL の図解で、木の回転・縮約などを勉強する。
それから赤黒木
AVL では、木の高さをそろえるため、最小最大の高さの差が、2になると、
木の回転・縮約をして、差を1以内に収束させる。
この処理が頻繁に入るため、赤黒木が考案された
赤黒木では、最小最大の高さが2倍になるまで、何もしない。
例えば、最小の高さが10、最大の高さが20になると、木の高さをそろえる
Linux で、数ミリ秒毎にプロセスを切り替える、プロセス実行ツリーは赤黒木。
プロセスをツリーに挿入し、実行されたら、ツリーから削除する
同じノードの挿入・削除が繰り返される場合に、
一々、木の高さをそろえないから、赤黒木は効率的 >Linux で、数ミリ秒毎にプロセスを切り替える
間違えた。もっと速い。
コンテキストスイッチは、1秒間に10万回だったな javafxのButtonでボタンの大きさ変えるには? >>633
scenebuilder使って大きさ変えれば分かるだろ Java始めるためにEclipseダウンロードしました
人気らしいんですが使ってる人いますか?
あと他の言語を使う場合Eclipse一つで賄えるのですか?
ここにいる人たちのおすすめ統合開発環境かエディタ教えてもらいたいです ほとんどの入門書がeclipse導入を前提にしていると思う
だから学習用途でならユーザー数は多いんでないかね >>635
何せ古いからねー
困ってもググればなんとかなるし、
よほど複雑な事しない限りはeclipseでいいと思うよ Vimでええやん
Eclipseは大した機能ないくせに動作が緩慢すぎてイライラする xyzzyにantでビルドするという時代もありました >>641
Kotlin用またはAndroid Studioのベース用
既存プロジェクトがIntelliJで動いてるとか職場になんでも知ってるIntelliJマイスターがいるとかでない限り新規で選ぶ積極的理由はない
加えて、きちんとしたプロジェクト方向性(と有償IDEに使えるお金)があるならAndroidスマホはC#&UnityでもC++でもいいからAndroid Studioの優位性は思ったほど高くない
IntelliJはいまが踏ん張りどころ >>642
なるほど
素直にEclipseにしとくのが良さそうですね Java使ってる人って何作ってるの?
ゲームで使うにしてもJavaダウンロードしなきゃ動かないんじゃないの?
てか同人ゲーの主な言語って何?C#?C++? >>644
サーバ用プログラムとAndroid用プログラムが一番多いんじゃないかな。
PCでクライアント用プログラムというのも業務用だとたまにある。
個人向けPC用だとやはり JavaVM インストールしなきゃいけなかったりするのがあってかあまりないように思う。
2chの専ブラにJavaで作ったやつがあったが、2chが接続に関して制限をした時に対応しなかったので
2ch用としては終わった(その他互換性のある掲示板には使えたが)。 >>644
>同人ゲーの主な言語
ツクール(RGSS) >>644
ゲーム製作はゲーム用ライブラリやゲームエンジンに強く依存する
むろん、言語から選んでOpenGLバインディングをゼロからごりごり書いてもいいが、それは言語の理解のためにゲームを利用してる状態で、あんまりゲーム製作とは言えない
(企業ならそうやって時間とコストかけて特定言語の自社製フレームワークを作ってもいいが、それは企業だから維持できることだ)
いまいちばん新しくて個人人気があるのがUnity+C#。PC/スマホの両対応。有料アセットストアのゲーム用リソース支援が強すぎる。おかねは正義
ゲーム用途ではJava+JavaライブラリはAndroidですら少数派だと思う(昔はこれしかなかったから今もこれで作ってる人は多いが)
もっとプログラミングレベルを下げたもの、つまりやれることが減ってるがその分作りやすいもの、となると各種ゲームエディタやツクールになる(スマホ向けはあまりうまくいってないようだ)
ゲーム製作プログラミング自体をしたいわけじゃない、ネタやリソースはすでに持っててありものに反映させたいだけ、という人が効率よく使う
ツクールツクール言って煽る人がいるが、そう馬鹿にしたものでもない。だって願望の実現効率がいいんだから そんな融通の利く奴がプログラマやってるわけ無いだろ 彼の言ってることを3行にまとめると
Unity3Dスキスキだいすきー
あれC#だ、Java使わない
金ないならツクールで作れ やっぱなんかソフトを思い描いて作りながら勉強するほうが効率的なのかなぁ
今スッキリ入門、実戦、SQLまで読んだ、というか何回も読んでる途中だけどソフト作れる気がしねぇ 最初から実用レベルのアプリを作るのは難しくて
小さいツールをたくさん作っていくうちに
パターンが分かってきて作れるようになっていく >>655
あんがいそうでもない
プログラミングの思考が好きでプログラミングをやっている、という向きもある >>656
文から察するに>>652はプログラミングやってないぞ プログラミングのお題スレでも見て作れそうなの作れば良いのではないかな この本で、オブジェクト指向を学んだら、
スッキリわかる Java入門 第2版、2014
その後、この2冊をこの順に読む。
たのしいRuby 第5版、2016
みんなのPython 第4版、2017
これで基礎ができるから、パズルを解くか、ツールを作れる ・スッキリわかる Java入門 第2版、2014
これは読みました。
わかりやすさに感銘を受けました。
ところでこの2冊を読む意義はなんでしょうか?
言語としてのRubyとPythonには興味がない人でも読む価値はありますか?
・たのしいRuby 第5版、2016
・みんなのPython 第4版、2017 Ruby, Python は、シェルスクリプトの代わりになる。
OS のコマンドを実行できる。
その後に、PowerShell もやった方が良い
Vagrant, Chef も、Rubyだから、仮想OS, Linux で使える。
つまり、環境構築に強くなる
関数型言語の勉強にもなるから、Kotlin, JavaScript へ移行しやすい。
さらに、ツールも作りやすくて、パズルも解きやすい
ここまでが基礎で、その後に数言語を学ぶ Eclipseを使っていますが、タブキーを押すとスペースが4個入力されるようにするにはどうすればいいのでしょうか? >>655
作ってみたいプログラムならあるよ
データベースとウェブを組み合わせた何かを作ってみたい
具体的にはゲームのwikiページみたいなのとか
ネットによくある装備シュミレーターみたいなのとか
ネットショップとかの会員管理や取引決済管理みたいなのとか
ネトゲがどういう形でデータベースを使ってるのかわからないけどネトゲみたいな自由自在にデータベースの使う方法を知りたいとかもある
ただどれも今は雲をつかむような感じで出来る気がしねぇ
>>657
何書いていいかわからないんだから書けないよ
C言語から入って入力を求めて数学的処理をしてテキストに出力するようなプログラムは数個書いた
でもなんか思ってたのと違うと思ってJava勉強してるんだけどこっちでも何書いて良いかわかんない あとスッキリの例題なんかもやってるけどミナト君のRPGとかなんか書いててしょぼく感じるんだよなぁ・・・ >>668
俺もスッキリの問題解いてみたけど、問題を解くだけだとアルゴリズムを考える力が
あまり付かない感じがした。ああ、あくまでも入門書なんだなあって。
前AOJのサイトこのスレで勧められたんだけど、良かったらやってみたら?
本見てコード打つより考える力が付く気がする。 >>668
GUIがないからだろ
でもGUIは複雑で別物になるから
まずはCLIから始めるのが王道 息抜きにawtでもswingでも簡単なguiをつくればモチベには繋がると思う
自分の思い描いていたプログラミング感みたいな >>667
こんな感じのそれぞれのやり方を調べてやってみれば勉強にはなるんじゃない?
Springとライブラリ使った方が簡単だけど
1.JSONを解析して内容を返すクラスを作る
2.JSONをPOSTされたら内容に応じて特定の応答を返すWebアプリを作る
3.そのWebアプリをDB使うように変更する
4.ブラウザで見られるページを作る
5.WebページからJSONをPOSTできるようにする
6.レスポンスに応じてWebページを変えてみる java始めたきっかけは
仕事の効率化やったな
エクセル集計やpdf整理や雛形メール送信できたらなあってのがきっかけだった
目的があれば逆引きで勉強しながらトライアンドエラーの繰り返しですぐできるようになるよ まず本を読む
良いコードとは何かについて考える
考えをまとめたら実際に書いて確かめる
書くものは実用性のないサンプル用の課題でいい
例えば架空のオンラインショップなど
この思索の経験が実務で活きてくる
これをやらない奴のシステムはいつもめちゃくちゃ >>675
ちょっと違和感がある
目的に沿うのが良いコードだと思う
コードがきれいなのも使いやすさのうち 確かに寄せ集めだったり 動けばいいって感じだから最初は汚いなwww
でもまずは動くものを完成させるというのが大切よ
そこがスタートライン 1年前に自分が書いたソースはまるで他人が書いたソースだしなw ほんとここって質問に対してゴミみたいな返しばっかだなw
まぁここで質問する奴も馬鹿なんだが回答とは程遠い的外れレスしかなくて呆れるわ 座学と実技は交互にやるのがいいよ
飽きにくくなるし
Javaに限らず
なかなか座学に戻るきっかけがない
通勤中の読書とかいいね ゲーム作るなら正直C#のがいいの?
マイクラのMOD作りたかったらやっぱマイクラと同じJava使わないといけないの? modがjavaのクラスファイル読み込むならjavaで作るしかないだろ
バカかお前? サーブレットの勉強をしているのですが、web.xmlの仕様がよく分かりません。ググっても説明を羅列しているのが多く、具体的にどういう時に使用するのか理解できていません。
(Welcomefile、アノテーションで代替されたサーブレットのタグは除く)
なにかよい本かサイトはありますでしょうか ■ このスレッドは過去ログ倉庫に格納されています