トップページ⇒tech
1001コメント273KB

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2013/10/20(日) 19:30:39.35
プログラミング言語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() を使え。※

前スレッド
★★Java質問・相談スレッド164★★
http://toro.2ch.net/test/read.cgi/tech/1378219684/
0855デフォルトの名無しさん2013/11/22(金) 00:27:01.99
>>854
昔ストリーム指向なんて言葉があってね。そんな限定的な目的で作られたんじゃないんだよストリームは
0856デフォルトの名無しさん2013/11/22(金) 00:28:40.01
流れ切りすみません

現在、JavaでAndroidアプリを開発する研修をうけているのですが、
その中で、HTMLとPHPファイルを端末の方に送信して、
端末側でHTMLとPHPを動かすことを習いました。

そこで思ったのが、
ゲームアプリを開発すると仮定して、
複雑な処理がいらず、画面を表示するだけならHTMLで記述し、
ゲームなど複雑な処理がいる部分はJavaで書き、
サーバーにアクセスする必要のある処理は、PHPで行うという、
言語の使い分けをして、一つのアプリを作るということは、
技術的に可能でしょうか?
それとメリットとかあるのでしょうか?
個人的には、HTMLは比較的短時間で完成するものなので、
全てJavaで行うよりは負担が少ないと考えているのですが、どうでしょうか?
0857デフォルトの名無しさん2013/11/22(金) 00:38:31.43
>>856
そりゃ画面がHTMLなら基本的に全てサーバーサイドだよ
アニメーションなどで必要ならJavaScriptを使う
AndroidアプリはWebView貼るだけでJavaはほとんどいらない
最近だとリッチなゲームを作るためにクライアントをUnity(C#)なんかで作ってるのも多いね
その場合はサーバーは画面に関知しないでAPIを提供するだけだよ
0858デフォルトの名無しさん2013/11/22(金) 00:41:25.52
>>856
端末でphpを使うの? それなんてフレームワーク?
普通はサーバ側でphpにより動的にhtmlやjsonを生成し、端末へ送る。
0859デフォルトの名無しさん2013/11/22(金) 00:42:26.04
AndroidのWebViewでアプリ作るなら、中で動かすHTML+CSS+JavaScriptは
なるべくシンプルにしないとドツボにはまるよ
WebViewのバグも多いし、特にCSS周りをリッチな作りにすると死ねる
CSSアニメーションとかは期待できない

何かのクライアントアプリなら充分いけるけど、ゲームとかを
AndroidのWebViewで作るのは自殺行為
0860デフォルトの名無しさん2013/11/22(金) 00:42:54.40
>>850のようにバッファで必要一括で取って来て処理するのが、メモリキャッシュも期待できるし、その外部イテレートのブロックで処理するので関数呼び出しコストもないし、処理だけに着目した方法としては従来の単純なそれが一番理にかなってます。
しかしjavaでいう効率化とは、外部イテレートを使うと一時変数が必要になったり(代表ではfor loopのcounter変数など)、ブロック外に状態を管理したりする変数が必要になったり、メイン処理以外の下準備が必要なことが多くなりますが、
内部イテレートだとそういった状態管理はsqlのように実装任せに出来ます。
例えば>>851だと、メモ化(キャッシュ)によってコードが大幅に簡略化し、ステートフルにも出来て、作業(処理)の効率化がなった(処理コードが分離した)といえます。
これは高速化とは別の効能であり、言語・ライブラリの仕様レベルでこのような効果が簡単にできる仕組みがlambda,streamで行えるということです。
速度を求めるだけならc++でやればいいでしょうが、javaではパフォーマンスは一応考慮してますが、ネイティブでもないですしc++とは目指しているところがまったく違います。
0861デフォルトの名無しさん2013/11/22(金) 00:45:49.71
>>854
javaでもfileのmemory mappingできるけど
0862デフォルトの名無しさん2013/11/22(金) 00:57:55.43
>>857
レスありがとうございます。
講師の先生は、HTMLとPHPを区別して述べていたので、それに習いました。
そうなると、サーバーにアクセスする必要な処理、例えば、ガチャのようなランダムでキャラクターが出る、
戦闘画面で登場する敵のデータとかをPHPで受け渡して、
そのデータをクライアントに渡して、ガチャを引き当てたり、
決まったステージの敵が出てきたりという処理を行う形になるでしょうか?

Unityも勉強していますが、プログラムがわからないので、
きちんとプログラム勉強してからチャレンジしたいと思い、
まずJavaできちんとしたゲームを作れてから、挑戦したいと思います。
0863デフォルトの名無しさん2013/11/22(金) 01:03:28.49
アンドロイドはすれ違い
0864デフォルトの名無しさん2013/11/22(金) 01:07:32.07
スレ間違えてすみませんでした。
androidアプリ開発向けのスレが見つからなかったので、
こちらに質問させてもらいました。
どちらに行けばよろしいでしょうか?
0865デフォルトの名無しさん2013/11/22(金) 01:57:08.02
>>864
Androidプログラミング質問スレ Part37
http://toro.2ch.net/test/read.cgi/tech/1382430603/
0866デフォルトの名無しさん2013/11/22(金) 02:05:36.84
>>865
ありがとうございます。
早速行ってきます。
0867デフォルトの名無しさん2013/11/22(金) 09:41:53.09
配列を後ろから取り出したいのですが綺麗な方法ありますでしょうか?
for (String hoge : hoges) {
}
みたいな綺麗な書き方ができればいいのですが、添え字を計算しないと
ダメでしょうか?
0868デフォルトの名無しさん2013/11/22(金) 10:55:02.20
>>867
http://docs.oracle.com/javase/jp/1.5.0/api/java/util/Collections.html#reverse(java.util.List)
0869デフォルトの名無しさん2013/11/22(金) 11:10:09.04
Collections.reverse(Arrays.asList(hoges));
for (String hoge : hoges) {
}
0870デフォルトの名無しさん2013/11/22(金) 11:17:13.72
reverseって降順にソートされちゃいませんか?
0871デフォルトの名無しさん2013/11/22(金) 11:31:53.24
ソートはしない
順番を上下ひっくり返すだけ
もういっかいやれば元に戻る
0872デフォルトの名無しさん2013/11/22(金) 11:37:49.16
おお。すばらしいです。ありがとうございます。
0873デフォルトの名無しさん2013/11/22(金) 18:07:37.63
逆順のイテレータ使うんは古いんすかねえ
0874デフォルトの名無しさん2013/11/22(金) 19:31:50.63
>>873
そういうゴチャゴチャしたの以外がないかってことかと
0875デフォルトの名無しさん2013/11/22(金) 19:51:27.38
File.existsでfalseが返ってくるのに
mkdirsするとエラーになってしまうのってどういう原因があるのでしょうか
0876デフォルトの名無しさん2013/11/22(金) 19:53:26.26
どうせ書き込みの権限がないんだろ
0877デフォルトの名無しさん2013/11/22(金) 19:56:18.50
sがついているから。
0878デフォルトの名無しさん2013/11/22(金) 20:21:30.70
>>876
たまになんです
0879デフォルトの名無しさん2013/11/22(金) 20:29:12.07
File.existsで確認したあと、かつ、mkdirするまえ
のタイミングでディレクトリが作成されてるとか
0880デフォルトの名無しさん2013/11/22(金) 20:31:47.07
>>878
たまにが、
同じパラメータなのに、たまに起きるのか、
たまに起きるパラメータがあるのか、
によって大きく違うと思う。
0881デフォルトの名無しさん2013/11/22(金) 20:54:17.83
質問です、組み込みの方の配列(int[] など)をコピーする際は
Arrays#copyOfを用いればネイティブな性能でコピーできることを教わったのですが、
例えば、int[]型のインスタンスをdouble[]型になるようにコピーしたり
キャストするような方法は提供されてるのでしょうか?
また、もし無い場合は効率的な方法などがありますでしょうか?
(自分で考えつくのはFor文でコピーしていく程度です・・・)
0882デフォルトの名無しさん2013/11/22(金) 20:54:45.85
>>879
そんなはずはないんですよね。

>>880
同じパラメータで連番がつくだけです。

ただ共有フォルダにmkdirしてます。
0883デフォルトの名無しさん2013/11/22(金) 21:19:02.62
>>881
ない。そもそもintからdoubleに変換する必要性がわからん。
そのままintを使えばいい。
0884デフォルトの名無しさん2013/11/22(金) 21:24:29.12
>>883
それもそうですね。ありがとうございます、設計を見なおしてみます
0885デフォルトの名無しさん2013/11/22(金) 22:42:51.71
アプリケーションサーバはどこがおすすめ?
JBossは本当に人気があるのか疑問
0886デフォルトの名無しさん2013/11/22(金) 22:48:38.57
>>875
なんてエラーメッセージが出てるの?

File (Java Platform SE 7 )
http://docs.oracle.com/javase/jp/7/api/java/io/File.html#mkdir()

File (Java Platform SE 7 )
http://docs.oracle.com/javase/jp/7/api/java/io/File.html#mkdirs()
0887デフォルトの名無しさん2013/11/22(金) 22:50:34.83
お前ら職業なに?
0888デフォルトの名無しさん2013/11/22(金) 22:52:37.94
SNEPというエリート職だよ
0889デフォルトの名無しさん2013/11/22(金) 22:57:13.06
農協の工員です
0890デフォルトの名無しさん2013/11/22(金) 23:46:52.58
自宅安全警備保障に24時間臨戦態勢で在籍しております。
0891デフォルトの名無しさん2013/11/23(土) 00:14:47.77
>>885
金があればベンダーにプレゼンさせろよ
0892デフォルトの名無しさん2013/11/23(土) 02:03:34.60
>>882
共有ってネットワーク経由か。そりゃ失敗するかも。
0893デフォルトの名無しさん2013/11/23(土) 08:18:17.82
>>892
なぜでしょうか?
遅延とかあるのでしょうか?
0894デフォルトの名無しさん2013/11/23(土) 08:51:17.79
>>893
ネットワークが繋がってないとか、サービスがbusyとか、普通にあるでしょう。特にSMBとかひどい。
0895デフォルトの名無しさん2013/11/23(土) 09:03:18.44
>>894
対策としてはリトライすればいいでしょうか?
0896デフォルトの名無しさん2013/11/23(土) 09:04:11.22
>>881
ByteBufferにバイトオーダ指定してから、intで書いてdoubleで読めばいい。
ダイレクトバッファ使えばさらに高速。
0897デフォルトの名無しさん2013/11/23(土) 09:32:12.14
>>896
JNI使ってネイティブコードがダイレクトバッファ触る場合は速くなる可能性高いけど、
Javaからダイレクトバッファ触る場合は速くなる可能性殆ど無いぞ。
0898デフォルトの名無しさん2013/11/23(土) 09:44:15.31
>>895
繋がってなかったら、リトライしても同じ。
0899デフォルトの名無しさん2013/11/23(土) 09:59:16.16
神に誓って普通にループ回してキャストしていった方が遥かに速い
0900デフォルトの名無しさん2013/11/23(土) 10:01:40.18
>>898
なるほど。やはりリトライしか無いのですね。
0901デフォルトの名無しさん2013/11/23(土) 11:12:26.60
わろた
0902デフォルトの名無しさん2013/11/23(土) 17:35:54.44
>>875
アクセス権、容量不足、誰かが同時に書いている、まだ親ディレクトリが無い、
CDROMだった、長すぎるパス、エントリがパンク、コネクタの緩み、
いろいろあるだろ。全部君が確認するんだよ。

mkdirsでなくmkdirで試すとか相対パスなら絶対パスにしてみるとか
0903デフォルトの名無しさん2013/11/23(土) 17:37:39.85
>>902
そんなに肩に力入れなくていいからw
0904デフォルトの名無しさん2013/11/23(土) 18:16:44.55
>>902
なるほど。やはりリトライしか無いのですね。
0905デフォルトの名無しさん2013/11/23(土) 21:09:39.76
eclipse wtpでtomcatデバッグをしたいのですが、*.javaはいつコンパイルされるのでしょうか?
0906デフォルトの名無しさん2013/11/23(土) 22:42:55.47
web.xmlはサーブレットの数だけ、<servlet><servlet-mapping>を書く必要があるんですか
0907デフォルトの名無しさん2013/11/23(土) 22:53:13.42
本買ってね byつだ
0908デフォルトの名無しさん2013/11/24(日) 02:35:22.83
ServletのapplicationContextに、session-idをkeyとした
数万件単位のkey-value値を格納して、
リクエスト毎にそれを出し入れするのはナンセンスですか?

key-valueを格納したMapなどを1つ用意して、それを
applicationContextに格納したほうがいいのでしょうか?
0909デフォルトの名無しさん2013/11/24(日) 02:42:13.10
>>908
ナンセンスだろ。ServletContextのアトリビュートは多目的だから一つのMapのためだけに使用すべきじゃない。
0910デフォルトの名無しさん2013/11/24(日) 09:48:44.58
エラーをキャッチして表示
0911デフォルトの名無しさん2013/11/24(日) 10:56:08.16
>>906
何のために書くかが分かれば答えは自ずと出てくるのでは
0912デフォルトの名無しさん2013/11/24(日) 17:44:29.18
自己解決しました
0913デフォルトの名無しさん2013/11/25(月) 04:49:05.89
なんかもう初歩以前の質問ですが、エクセルVBAを職業訓練で習ってjavaを独学で勉強しようと思ってるんですがやっぱり全然別物ですか?おすすめのサイトや本、ゆくゆくはゲームを作りたいと思ってるのですがこういう勉強法がいいよ!などアドバイスください
0914デフォルトの名無しさん2013/11/25(月) 05:12:20.84
早起きならそれでも良いけど夜更かしならまず生活習慣の改善からかな。
0915デフォルトの名無しさん2013/11/25(月) 06:36:17.36
>>913
似ているかどうかって主観的な問題だと思う。
シェパードとブルドッグは似てないけど、犬と猫よりは似てる。

両方ともオブジェクト指向というものに基づいている。VBAはかなり中途半端だけど。
型というものがあるのだけど、Javaは静的、VBAは動的。ここが一番違う。
文法的には両方とも、C言語を祖先にしているので近いものがある。

言語を理解するには、予約語の一覧を見るのが良い。

ただきっと知りたいのはクリックとか操作方法の違いとかで、そんなのは同じ言語ですらツールによって違う。
0916デフォルトの名無しさん2013/11/25(月) 09:57:32.56
>>913
ゲーム作るのに必要なのは絵、音楽、シナリオ、これらが全てで、
プログラマの役割はそれを機械的に繋ぎ合せるだけの空気みたいなもんだが。
つまりプログラマは「与えられた設計図を基にゲームという製品を完成させる人」であって、
設計図を作る人ではない。そういうのはプロデューサーの仕事。

プログラマーになりたいの?
プロデューサーになりたいの?
どっち?
0917デフォルトの名無しさん2013/11/25(月) 10:14:50.34
豆腐がビーム撃つぐらいのゲームなら絵だの音楽だのシナリオだのは要らんし、
勉強したいならその程度から初めてきゃいいでしょ。

そこから、3D勉強したければ立方体がビーム撃つゲームにしてもいいし、
ネット対戦したければ豆腐同士がビーム撃つゲームにしてもいいし。
0918デフォルトの名無しさん2013/11/25(月) 11:51:00.82
>>916
絵、音楽、シナリオが全てって、それノベルゲーだろ
どんな閉じた世界のゲームだよ
0919デフォルトの名無しさん2013/11/25(月) 12:18:24.96
アーティスト…素材を作る人
プロデューサー…素材の使い方を決める人
プログラマ…プロデューサーの決めた設計図に従う人

プログラミングを学んでも一番最後の土方仕事しかできない。
ゲームに必要な素材は作れないし素材の使い方も学べない。
0920デフォルトの名無しさん2013/11/25(月) 12:52:30.13
>>913
第一障壁「変数の名前と変数の値が区別できる」を突破したのなら、
たぶん君には素質がある。JavaでもなんでもGOGO
0921デフォルトの名無しさん2013/11/25(月) 13:04:59.64
>>919
これがワナビってやつか
0922デフォルトの名無しさん2013/11/25(月) 15:08:32.07
プロデューサーはプロデュースする人だ。馬鹿か
0923デフォルトの名無しさん2013/11/25(月) 15:53:35.22
ほっとけよ。バカがプロデューサになってプロジェクトが失敗して会社から追放されるのを見るのが楽しみなんだw
0924デフォルトの名無しさん2013/11/25(月) 18:43:21.12
雑魚相手にいちいちレスするな
09259082013/11/25(月) 18:48:55.49
>>909
ありがとうございます。
applicationContextには、マップを1つだけ入れて
そこにkey-valueをいろいろ出し入れすることにします。
0926デフォルトの名無しさん2013/11/26(火) 16:59:41.85
質問をさせてください。Java初心者です。
System.out.println("出力");
というコードに関してお願いします。

このコードに関して、テキストでは、Systemクラスの、outフィールドのprintlnメソッドを使い
コンソールに"出力"と出力させる、と書いてあります。
普通、メソッドってクラスから呼び出すものなのでは、と考えていたのですが、
上記の説明では、フィールドにあるメソッドを呼び出しているということですか?
printlnメソッドは、outフィールドに定義されている変数的な意味があるメソッドなのでしょうか?
0927デフォルトの名無しさん2013/11/26(火) 17:02:10.03
outはクラスだよ
0928デフォルトの名無しさん2013/11/26(火) 17:12:56.14
ありがとうございます。
自己解決しました
0929デフォルトの名無しさん2013/11/26(火) 17:20:51.29
>>927
こら。
0930デフォルトの名無しさん2013/11/26(火) 17:28:05.36
つってみたい年頃なのだろう
0931デフォルトの名無しさん2013/11/26(火) 18:52:17.94
信頼できるかどうか微妙なサイトを誤ってJava確認メッセージ不要状態にしてしまったのですが、
これを必ずメッセージで確認する状態に戻すにはどうしたら良いのでしょうか?
0932デフォルトの名無しさん2013/11/26(火) 20:20:39.70
>>931
ブラウザのクッキーを削除
0933デフォルトの名無しさん2013/11/26(火) 20:50:54.41
>>926
こう書けば、わかりやすいんじゃなかな。
PrintStream output = System.out;
output.println("出力");

System.outフィールドやローカル変数outputは、PrintStreamクラスのとあるインスタンスを参照してるだけ。

System.getProperties()などクラスのメソッドを直接呼び出す方が特殊。クラスメソッド、static メソッドという。

まず、クラスとインスタンスの違いを理解しよう。
0934デフォルトの名無しさん2013/11/26(火) 23:12:31.37
javaで開発している時、ストアド使いますか?
それとも、APサーバで頑張りますか
0935デフォルトの名無しさん2013/11/26(火) 23:32:16.53
ストアドは極力使わない方がいい
0936デフォルトの名無しさん2013/11/26(火) 23:33:43.72
日本語でおk、かな
0937デフォルトの名無しさん2013/11/26(火) 23:41:05.40
>>934
他のアプリからも使うときはスドアドも使う。そうでないなら、DBに依存しにくいようにする。後は性能と設計次第。
0938デフォルトの名無しさん2013/11/27(水) 00:12:27.65
JSP/Servletで、シンプルなWebアプリを作ってみたいのですが(画面2,3ぐらい)、
MVCモデルで作る場合、フレームワークなしでも簡単にできるのでしょうか?

素人ですみませんが、よろしくお願いします。
0939デフォルトの名無しさん2013/11/27(水) 00:29:43.16
できるよ
そんな小規模なアプリだとクソ見通し悪くなるだけで全くお勧めできないけど
0940デフォルトの名無しさん2013/11/27(水) 02:32:31.08
画面ってページのこと?
0941デフォルトの名無しさん2013/11/27(水) 02:39:50.14
小さいならHTML5で書いてlocalstorageでもいけそうだな
0942デフォルトの名無しさん2013/11/27(水) 10:50:36.35
>>933
ありがとうございました。
復習します!
0943デフォルトの名無しさん2013/11/27(水) 22:00:15.58
皆さんやっぱり仕事はプログラマなの?知識のレベルが高すぎだと思うんだけど。
もし趣味でプログラミングしている方がいたらどのようにして高度な知識を得たのかぜひ教えてください後を追いたいです
0944デフォルトの名無しさん2013/11/27(水) 22:02:11.99
質問の仕方が上手だね
ただこの低レベルな流れでそのヨイショは少し魂胆が見え透き過ぎてるかな
0945デフォルトの名無しさん2013/11/27(水) 22:03:11.40
荒らしたいに決まってんだろ
0946デフォルトの名無しさん2013/11/27(水) 22:24:01.22
仕事より趣味の方が拘れるから高度な知識を得られる。研究職とかは知らないけど。
0947デフォルトの名無しさん2013/11/27(水) 22:59:35.03
JSF使っている人居ますかー?
0948デフォルトの名無しさん2013/11/27(水) 23:00:51.97
仕事だとクソみたいな設計とかコーディングルールを押し付けられるんじゃないかと。変な内製ライブラリとか。
0949デフォルトの名無しさん2013/11/27(水) 23:05:14.57
仕事で得られる技術スキルなんてバッドノウハウばかり
0950デフォルトの名無しさん2013/11/27(水) 23:16:46.69
>>949
例えば何が?
0951デフォルトの名無しさん2013/11/27(水) 23:28:57.36
CUIで罫線使ったマス目を書きたいんですけど簡単に書くとしたらどうすれば良いんでしょうか?
0952デフォルトの名無しさん2013/11/27(水) 23:30:46.78
>>951
CUIならコンソールの問題だから言語は関係ない。
0953デフォルトの名無しさん2013/11/27(水) 23:32:58.55
>>951
テキストファイルに罫線を使ったマス目を出力したいんですけど、って質問と同じ。
そんなものはどういうテキストエディタで開くのかによって決まるだけ
コンソールの種類によって決まるだけ
0954デフォルトの名無しさん2013/11/27(水) 23:34:11.84
おなじような質問が過去ログにあったねー
レス数が950を超えています。1000を超えると書き込みができなくなります。