- 1 名前:デフォルトの名無しさん mailto:sage [2016/10/17(月) 21:15:23.40 ID:3TSUYd8+.net]
- プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 pc11.2ch.net/hp/ Webプログラミング 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() を使え。※ 質問時の心得 ・コンパイルエラーか実行時エラーか、エラーではないが意図しない動作なのかはっきりしろ。あとエラーメッセージちゃんと読め。 ・前提条件としてOS、開発環境、バージョン、使用フレームワーク等を明記。 前スレ ★★Java質問・相談スレッド178★★ [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/tech/1466119015/
- 454 名前:デフォルトの名無しさん [2017/01/11(水) 21:40:13.25 ID:N/Vxl167.net]
- akka良いよ
- 455 名前:デフォルトの名無しさん [2017/01/12(木) 09:30:07.93 ID:us5ONQNv.net]
- いやしかしマルチスレッドはあると便利だよ。非同期入出力でもメインの処理の邪魔をせずに裏でバッファから送信だのバッファに受信だのできるしね。
まあ、そういうのがほとんどないGUI画面で人間との対話ばかりならあまり必要ないかも知れないけどね。人間は一度に一つの事しかできないから。 ゲームとかだマルチスレッドで書いた方が楽になるのはあるかな?
- 456 名前:デフォルトの名無しさん mailto:sage [2017/01/12(木) 09:38:52.01 ID:2R6CrnF4.net]
- イベント処理で全部済むならnginxが裏でワーカースレッド8個とか16個とか持ってるのはなぜ
- 457 名前:デフォルトの名無しさん mailto:sage [2017/01/12(木) 09:43:22.06 ID:gDCHiAoV.net]
- >>447
マルチプロセスで全部済むならインプロセスのマルチスレッドなんていうデリケートな仕組みを使う必要はないだろ 済むかどうかはケースバイケースだけど
- 458 名前:デフォルトの名無しさん mailto:sage [2017/01/12(木) 09:46:01.67 ID:RGf+hnFO.net]
- GUIでマルチスレッド普通に使うだろ
何か処理要求するごとにウィンドウ全体が固まるとかクソアプリじゃん
- 459 名前:デフォルトの名無しさん [2017/01/12(木) 10:33:11.00 ID:us5ONQNv.net]
- その処理が終わってからでないと次の処理ができない場合はマルチだったとしてもせいぜい「しばらくお待ちください」出すぐらいのものだ。固まってんのと同じ。
- 460 名前:デフォルトの名無しさん mailto:sage [2017/01/12(木) 12:26:58.59 ID:gDCHiAoV.net]
- 非同期プログラミングならユーザーコードがシングルスレッドでも固まらないよ
Ajaxなんかリクエストの最中に固まったりしないでしょ プログラミングモデルとしてマルチスレッド&同期モデルと継続&非同期モデルのどちらが優れてるかどうかは自分で判断すればいいけど、 さすがに今時知らないのはヤバイぞ
- 461 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 08:17:11.76 ID:NQh6x04N.net]
- >>450
途中でキャンセルもできない糞アプリ作んな >>451 非同期なんてそれしか使えない時にやむを得ず使うもんだよ 知らないのは無知だと思うがむやみやたらに使うのはバカ
- 462 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 08:26:17.63 ID:NMRw63WY.net]
- >>452
おまえ個人の開発ポリシーを他人に押しつけないで 迷惑だから
- 463 名前:デフォルトの名無しさん [2017/01/13(金) 08:41:31.37 ID:nVxQCvXm.net]
- 非同期タスクはマルチスレッドを使っての同期タスク実行の抽象度高めただけでしょ
非同期IOだって大抵のOSの非同期IO用システムコールのパフォーマンスは糞だからマルチスレッドで裏で同期IOで実行して非同期に見せかけてる。 抽象度が高いおかげで未熟なプログラマによるマルチスレッドでの間違い(データ競合など)を少なくする事ができるし、スレッド間でむやみに変数を共有させない事によって実装もシンプルになる。 長々書いたけどまとめると非同期タスクで済むことをむやみにマルチスレッドで実装する方がバカ
- 464 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 09:14:53.53 ID:WGrJXBVd.net]
- Javaは伝統的に「非同期APIなんか要らんスレッド使え」でやってきたから
今更移行するのは難しいだろうな Androidは非同期処理多いから移行しやすいだろうけど、サーバーが非同期になる日はなかなか来ないだろう
- 465 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 12:30:19.65 ID:NQh6x04N.net]
- >>453
個人の開発ポリシーだと思ってるところがバカっぽい w
- 466 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 12:34:33.36 ID:xEiCBlzV.net]
- >>456
あ、ごめん 即座に罵倒するようなヤツとは関わらないって決めてるので後は独りで勝手に盛り上がってください
- 467 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 13:06:07.65 ID:TryNDMwR.net]
- 自分が日頃使っている言語以外の一般常識を何も知らない奴がいるのは別にJavaに限ったことではないが、
VB厨やペチパーなんかと違ってJava屋は自分達がスタンダ
- 468 名前:ードだと信じてて自覚がない奴が多いから厄介 []
- [ここ壊れてます]
- 469 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 13:40:08.05 ID:7t+hNZnh.net]
- なんかあったのか?
- 470 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 16:53:41.20 ID:i/Nl3uZN.net]
- マルチスレッドや並列分散系ぜんぜんわからんのだけどどうやって勉強すればいい?
学生のころに習ったコンシステンシモデルとかいうのがまったく理解できないんよね
- 471 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 17:04:17.84 ID:YYdJyp6W.net]
- 餌がきたぞー
- 472 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 17:48:11.19 ID:J1Dr1Cwv.net]
- まず服を(ry
- 473 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 20:06:56.93 ID:TZ1yXK65.net]
- >>454
> 非同期タスクはマルチスレッドを使っての同期タスク実行の抽象度高めただけでしょ 全然違う > 非同期IOだって大抵のOSの非同期IO用システムコールのパフォーマンスは糞だからマルチスレッドで裏で同期IOで実行して非同期に見せかけてる。 アホか デバイスは(プロセッサに比べて)遅いからデバイスにコマンド投げて応答があるまで待つんじゃなくて元のスレッドを実行してるだけ マルチスレッドになんてなってない > 抽象度が高いおかげで未熟なプログラマによるマルチスレッドでの間違い(データ競合など)を少なくする事ができるし、スレッド間でむやみに変数を共有させない事によって実装もシンプルになる。 実際に組んだことないだろ? フレームワークないと結構辛いしそれなら普通にマルチスレッドで組んだ方がいい > 長々書いたけどまとめると非同期タスクで済むことをむやみにマルチスレッドで実装する方がバカ そもそも使いどころが違う >>457 恥をかきたくないならその方がいいと思う 賢明な判断
- 474 名前:デフォルトの名無しさん mailto:sage [2017/01/14(土) 01:48:26.36 ID:i/zar2z9.net]
- 横からだけど.NETはCPUの機能(忘れた)とスレッドプールで>>454見たいにしてるって記事はあったよ
463 が何に噛み付いてるかわからないけど
- 475 名前:デフォルトの名無しさん mailto:sage [2017/01/14(土) 08:17:34.42 ID:0tIyFjNU.net]
- SpringもPlayも完全非同期で作れるけどね
JavaはNIOのゴミのようなAPIのせいでノンブロッキングIOが使いにくいから糞面倒だが
- 476 名前:デフォルトの名無しさん mailto:sage [2017/01/14(土) 09:19:00.94 ID:yS+ngl8t.net]
- 非同期はなんの役に立つの?
- 477 名前:デフォルトの名無しさん mailto:sage [2017/01/14(土) 09:39:38.38 ID:zmTeKxXB.net]
- >>466
スレッドを消費することなくリクエストを並列でたくさん捌ける GUIアプリで長い処理をやるときにいちいちスレッド立てて同期取るような面倒なことをしないでUIスレッド上でやっちゃっても固まらない
- 478 名前:デフォルトの名無しさん mailto:sage [2017/01/14(土) 09:41:45.41 ID:yS+ngl8t.net]
- >>467
後半はどうでもいいとして、前半のトレードオフは?
- 479 名前:デフォルトの名無しさん mailto:sage [2017/01/14(土) 09:44:34.61 ID:yS+ngl8t.net]
- 100個のタスクを並列に処理することで説明して
- 480 名前:デフォルトの名無しさん mailto:sage [2017/01/14(土) 09:45:05.98 ID:zmTeKxXB.net]
- >>468
Javaは非同期APIが全般的に使いにくい&充実してないから単純に開発がめんどくさい フレームワーク側のサポートも必須だがJavaは遅れてる
- 481 名前:デフォルトの名無しさん mailto:sage [2017/01/14(土) 10:26:59.85 ID:0tIyFjNU.net]
- >>469
C#の例だけどこの記事がわかりやすい https://blogs.msdn.microsoft.com/tsmatsuz/2012/05/08/asp-net-mvc-async/
- 482 名前:デフォルトの名無しさん [2017/01/14(土) 11:11:08.12 ID:Q3G32+hm.net]
- 100個も同時実行したらCPUコア数一桁の普通のコンピューターだと効率落ちるだけだよな
IOでもネットワークだと相手に迷惑だし、ディスクならランダムアクセスになって遅くなる
- 483 名前:デフォルトの名無しさん mailto:sage [2017/01/14(土) 12:33:47.60 ID:LDRAWf8F.net]
- >>470
それが説明かアホ
- 484 名前:デフォルトの名無しさん mailto:sage [2017/01/14(土) 12:35:16.51 ID:LDRAWf8F.net]
- >>471
MS厨な了解、以下スレチということで
- 485 名前:デフォルトの名無しさん mailto:sage [2017/01/14(土) 12:42:46.41 ID:DO73KmNH.net]
- そりゃ無理ですね
馬鹿だから一日も我慢できずに煽りに反応すると思いますよ
- 486 名前:デフォルトの名無しさん mailto:sage [2017/01/14(土) 12:55:04.44 ID:QoXdCSFA.net]
- うっせハゲ頭ちんちん!
とりあえず煽られてないけど言ってみた
- 487 名前:デフォルトの名無しさん [2017/01/14(土) 15:05:00.83 ID:LKjMj2Iy.net]
- ちんちんの話ですか?
- 488 名前:デフォルトの名無しさん [2017/01/14(土) 18:52:08.71 ID:qxTRl4/L.net]
- enumの定義ってコンストラクタでは記述できない?
stateListをstaticにするのに何か抵抗があるから。 出来れば変数定義箇所は余りゴリゴリ書きたくない。 import java.util.List; public class A { /**static */List<String> stateList; // 他の変数も数多くdoSomething内部で処理として使用する enum MenuList { AAA { void doSomething() { stateList.add(
- 489 名前:デフォルトの名無しさん [2017/01/14(土) 18:53:58.14 ID:qxTRl4/L.net]
- enum MenuList {
AAA { void doSomething() { stateList.add("Aaaaaaaa"); }}, BBB { void doSomething() { stateList.add("Bbbbbbbb"); }}, CCC { void doSomething() { stateList.add("Cccccccc"); }}; abstract void doSomething(); } public A() { } void setState(MenuList state) { state.doSomething(); } }\"
- 490 名前:デフォルトの名無しさん mailto:sage [2017/01/14(土) 20:40:01.89 ID:MyC8V23n.net]
- switchでいいだろそんなもん
手段と目的を履き違えるな
- 491 名前:デフォルトの名無しさん [2017/01/14(土) 21:01:56.60 ID:qxTRl4/L.net]
- リファクタリング勉強してたらsetState()でswitch使うよりいいんじゃないかと思ったから。
引数の数が多くなるとバグの温床になりやすいと書かれていた。
- 492 名前:デフォルトの名無しさん [2017/01/14(土) 21:03:41.25 ID:LKjMj2Iy.net]
- こう?
enum MenuList { AAA("Aaaaaaaa"), BBB("Bbbbbbbb"), CCC("Cccccccc"); public final String msg; private MenuList(String msg) { this.msg = msg; } } void setState(List<String> stateList, MenuList state) { stateList.add(state.msg); }
- 493 名前:デフォルトの名無しさん [2017/01/14(土) 21:46:21.86 ID:qxTRl4/L.net]
- >>482
すみません。stateList.add("Aaaaaaaa");などは他の変数など使用しますという意味で書きました。 よって、実際には以下のようなコードをstateパターンみたく書きたいです。 void setState(MenuList state) { // 現在のコ0ド switch (state) { case AAA: hoge1(); hoge2(); break; case BBB: hoge3(); break; .... という風に分岐で処理を記述しているのをenum内部で書きたいと思っています。 その際、enum内部で使う他のグローバル変数をstaticにしないと記述できないみたいなのです。 他のグローバル変数はstaticにせず、enum MenuListを定義する方法はないでしょうか? 書けるか分からないけど理想は、enum MenuList;と定義してコンストラクタ内部で MenuList = 定義したMenuList();みたいに書きたいです。 あまりstaticの使い方が分からないなどが理由です。
- 494 名前:デフォルトの名無しさん mailto:sage [2017/01/14(土) 22:18:15.64 ID:Z4YPx582.net]
- >>483
https://ideone.com/thGKsr よーわからんがこう?
- 495 名前:デフォルトの名無しさん [2017/01/14(土) 22:45:55.75 ID:6eo6VXz3.net]
- だいたい単にJavaはJavaはなんて言ってるやつがいるけど、どういう構成のシステムのことを言ってんのかわからんw
- 496 名前:デフォルトの名無しさん [2017/01/14(土) 22:48:37.75 ID:6eo6VXz3.net]
- Javaしか分からないプログラマって異様にマルチスレッドにこだわったりするのも変。
マルチプロセスの方がいい場合でもなぜかマルチスレッドにしたがる。
- 497 名前:デフォルトの名無しさん [2017/01/14(土) 22:52:18.81 ID:qxTRl4/L.net]
- >> 484
そう!そんなコードです。 これでsetState()内部でswitchを使用せずに保守性も上がると思います。 ありがとうございます!助かりました。
- 498 名前:デフォルトの名無しさん mailto:sage [2017/01/15(日) 00:55:48.40 ID:cnFoYVJO.net]
- >>486
お前はJavaスレで何を言っているんだ?
- 499 名前:デフォルトの名無しさん [2017/01/15(日) 01:48:42.60 ID:OwCHVx6x.net]
- JavaスレだからといってJava以外も知ってる人が居ないわけじゃないよね
- 500 名前:デフォルトの名無しさん mailto:sage [2017/01/15(日) 09:04:54.58 ID:rUeODzII.net]
- >>486
結論からいうと、488のようにJavaに閉じ籠りたい子が多いから。 スレッドだとJavaの枠組みから出なくていいからそれはそれで楽なんだよ
- 501 名前:デフォルトの名無しさん mailto:sage [2017/01/15(日) 09:20:31.71 ID:vkigWSlF.net]
- ꧁ ꧂ 。
- 502 名前:デフォルトの名無しさん [2017/01/15(日) 20:27:17.97 ID:0Ag5G2kH.net]
- >>487
enum の中でやらないで EnumMap に処理を書いたクラスのインスタンス(例えば Runnable のインスタンス) 突っ込んでおいてそこから引っ張り出して実行すればいいような気がするが。 ま、どっちでもいいのかな?
- 503 名前:デフォルトの名無しさん mailto:sage [2017/01/15(日) 20:33:46.95 ID:itmwtKVV.net]
- >>485
お前はなんでここにいる?
- 504 名前:デフォルトの名無しさん mailto:sage [2017/01/15(日) 22:43:00.61 ID:3ZZvF1jZ.net]
- 煽るため
- 505 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 01:32:32.42 ID:0qyxTvqH.net]
- ꧁ ꧂ 。
- 506 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 10:30:39.54 ID:CwAqvFXp.net]
- ぱたぱたぱた
- 507 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 12:48:08.62 ID:6pMMhvrL.net]
- まあ涼しい
てか寒いわ!
- 508 名前:デフォルトの名無しさん [2017/01/16(月) 15:47:20.84 ID:7FNzXcKk.net]
- Javaでできるかどうか分からないことがあって、
たぶんできるはずだと思ってググるも、キーワードが分からない。 色々考えながら色々キーワードを試したが、出てこない。 そもそもできることなのかどうかも分からない。 ここで質問しようとも思ったが何か癪だから調べ続けたらやっと出てきた。 基礎からきっちり勉強していれば調べるまでもなく知ってるような内容だった。
- 509 名前:デフォルトの名無しさん [2017/01/16(月) 16:22:11.49 ID:7FNzXcKk.net]
- Java
sssp://o.8ch.net/nahv.png
- 510 名前:デフォルトの名無しさん [2017/01/16(月) 16:27:01.66 ID:OjZkdWCf.net]
- 質問いいですか?
- 511 名前:デフォルトの名無しさん [2017/01/16(月) 16:30:09.80 ID:OjZkdWCf.net]
- https://twitter.com/t4ny_/status/820892316990722048
このツイートの画像のエラーなのですが 間違っているところ教えていただけないでしょうか?
- 512 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 16:31:57.00 ID:B5rWKi6Q.net]
- 新言語Jabba
- 513 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 17:30:00.08 ID:YrFY70zk.net]
- Javascriptの質問は、ここでは受け付けておりません
- 514 名前:デフォルトの名無しさん [2017/01/16(月) 18:45:22.14 ID:6AZwHPE5.net]
- >>501
それ、なんて言語?
- 515 名前:デフォルトの名無しさん [2017/01/16(月) 18:48:08.02 ID:6AZwHPE5.net]
- >>498
このスレはJavaの質問や相談を書くスレです。 日記はご遠慮ください。どうしても書きたいというのなら日記用のスレを作ってそちらにお書きください。
- 516 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 19:15:04.09 ID:1pcrKd1S.net]
- docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.26.2
何故コンパイルエラーではなくて、キャストして代入する扱いになっているんでしょうか?
- 517 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 19:20:29.67 ID:fS/S5G7w.net]
- すいません 初歩的な質問で申し訳ないんですが
違うディレクトリにあるクラスファイルを実行するのってどうしたらいいんですか? subっていうディレクトリにはいってるHelloWorld.classを親ディレクトリから実行したくて > javac sub/HelloWold.java でコンパイルすると sub の下に実行ファイル HelloWorld.class はできるんですけど >java sub/HelloWorld って実行しようとしたらみつかりませんっていわれます
- 518 名前:デフォルトの名無しさん [2017/01/16(月) 19:26:33.43 ID:7FNzXcKk.net]
- >> javac sub/HelloWold.java
>でコンパイルすると sub の下に実行ファイル HelloWorld.class はできるんですけど お前は一体何を言ってるんだ? 自分が何を言ってるのか分かっているのか? Javaにそんな機能はないぞ。 Javaじゃなくても児童でそんなことをする機能はないはずだ。
- 519 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 19:40:58.44 ID:fS/S5G7w.net]
- スレ違い申し訳ありません
確かに Java 言語仕様のはなしではなく Oeacle の配っている JDK の使い方の問題でした 他スレをあたってみます
- 520 名前:デフォルトの名無しさん [2017/01/16(月) 19:41:53.30 ID:ND2fgWUU.net]
- >>507
そもそもカレントディレクトリはどこなんだよ? フルパスならいけるだろ。
- 521 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 20:15:04.56 ID:6pMMhvrL.net]
- >>506
なぜって言語仕様作る人がその方が便利だと思ったんでしょ
- 522 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 20:15:29.36 ID:msgU5aLq.net]
- >>507
本買って勉強しろ、この度素人
- 523 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 20:20:30.61 ID:0qyxTvqH.net]
- 本買えまで言うと質問スレではスレチ
答えなければいい
- 524 名前:デフォルトの名無しさん [2017/01/16(月) 20:25:24.33 ID:6AZwHPE5.net]
- >>507
> >java sub/HelloWorld > って実行しようとしたらみつかりませんっていわれます java sub.HelloWorld では?
- 525 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 20:29:36.36 ID:d9EPt8Vi.net]
- 改行コードのない1GBのテキストデータ(ASCII8bit)を100byteずつ読み込み、解析して変数に格納したいのですがその場合どのように記述するのがスマートでしょうか?
ネット上に転がっている方法のうち、 FileInputStreamをbyte配列でreadする方法だと取得したバイト配列を新しいStringオブジェクトに渡せば 100byteの文字列が取得できますが膨大なレコードデータを解析するのに全て新しいStringオブジェクトを作成することで取得するのはいささかダサい気がします。
- 526 名前:デフォルトの名無しさん [2017/01/16(月) 20:37:04.25 ID:6AZwHPE5.net]
- >>515
100バイト読んでStringにしないで解析できるならそうすればいいのでは? まあでもそんなに気にしなくてもいいと思うがなあ。
- 527 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 20:43:19.86 ID:msgU5aLq.net]
- >>513
さよか、すまんへんなー管理人さん(笑)
- 528 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 20:59:01.28 ID:msgU5aLq.net]
- >>507
ここで聞け、ど素人 Java入門・初心者質問スレ Part.2 [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/tech/1478863511/
- 529 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 21:15:02.26 ID:0qyxTvqH.net]
- >>518
それならよし(笑)
- 530 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 21:21:28.68 ID:msgU5aLq.net]
- >>519
ゴミレスすんなよ(笑)
- 531 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 21:57:19.54 ID:0qyxTvqH.net]
- >>520
ゴミレスすんなよ(笑)
- 532 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 21:59:29.01 ID:Q95QGsMQ.net]
- >>511
誤って精度落としてしまうリスクを上回る便利さに、どんなものがあるか知りたいです
- 533 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 22:16:22.88 ID:tblkocpB.net]
- >>516
そんなに気にしないでいいのなら気にせずStringオブジェクトを生成します。 オブジェクト生成コストがパフォーマンスに大きな影響を与えると言う記事を見たもので聞いてみた次第です。
- 534 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 23:21:06.01 ID:Afs2A6pw.net]
- >>522
そんなアホなことする奴は滅多にいないから
- 535 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 23:28:20.36 ID:fQ38ceFt.net]
- >>515
解析処理次第だけど、ASCIIならbyteのまま処理すれば?
- 536 名前:デフォルトの名無しさん mailto:sage [2017/01/17(火) 01:25:54.82 ID:FxsNRt/T.net]
- 1Gってことは100バイトづつなら10737418個取れるってことだけど、
この程度なら実際にやってみればいいのでは? 1Gのランダムな 文字列の入ったテストファイル用意して 100 バイトづつ読んで byte のまま List に add するとか、String にしてから add するとか。 java コマンド実行時の -Xmx や -Xms でのメモリ容量の設定にも よるだろうけど、どっちも大差ないと思うぞ。(まあ、メモリ容量に 関しては String は中で char[] で保持しているだろうから ASCII なら倍のバイト数食うことになるんだろうけどね)。 遅くなるとしたら解析部分が悪いか、または -Xmx や -Xms の 設定が悪いか、または物理メモリの少ないマシンで動かして しまって激しくスワップしてスラッシングに陥った場合だと思う。
- 537 名前:デフォルトの名無しさん mailto:sage [2017/01/17(火) 01:34:59.72 ID:FxsNRt/T.net]
- あ、そうそう。ファイル読むときは BufferedInputStream 経由で読んだ方が良いぞ。
むき出しの FileInputStream と比較してみるとわかると思うけどな。普通はバッファ リングすると速くなる。
- 538 名前:デフォルトの名無しさん mailto:sage [2017/01/17(火) 01:35:46.94 ID:8yDF0Um6.net]
- >>524
かいとうになってない
- 539 名前:デフォルトの名無しさん mailto:sage [2017/01/17(火) 02:23:38.51 ID:O4XROzH3.net]
- >>515
>改行コードのない1GBのテキストデータ(ASCII8bit)を100byteずつ読み込み、解析して変数に格納したいのですがその場合どのように記述するのがスマートでしょうか? 解析ってのがどんな事するのか分からないけど、java.nio.ByteBufferに入れれば?
- 540 名前:デフォルトの名無しさん mailto:sage [2017/01/17(火) 06:48:47.62 ID:pDqJREhG.net]
- >>528
かいとうしたつもりもないし w > 誤って精度落としてしまうリスク を心配する前にお前のオツムを心配しろってこった
- 541 名前:デフォルトの名無しさん mailto:sage [2017/01/17(火) 07:33:34.52 ID:rIfocs2Z.net]
- >>522
「他の式の型を強制されるケース(引数など)に比べると変数への代入は明示的であるので、より暗黙的な変換を許してもよい」 というのはプログラミング言語ではそんなに珍しい考え方ではない そうでもないだろうと思うかもしれないが(俺もそう思わないでもない)
- 542 名前:、昔からそういうもんだから仕方ない []
- [ここ壊れてます]
- 543 名前:デフォルトの名無しさん mailto:sage [2017/01/17(火) 13:29:54.56 ID:LWL6JOI1.net]
- 主要言語の中でも強い静的型つき言語だから、型が書いてあるってことが一番の仕様書みたいに思えばええんじゃね
- 544 名前:デフォルトの名無しさん [2017/01/17(火) 14:16:11.94 ID:+P/sLkq1.net]
- 【言語のバージョン】Java SE 8
【OS】Windows 10 【開発環境】コマンドプロンプト、Atomエディタ 【Java歴】3ヶ月 【javadocは見たか】いいえ 【質問事項】インタフェースは抽象クラスを継承できますか? 【回答期限】なし
- 545 名前:デフォルトの名無しさん mailto:sage [2017/01/17(火) 14:19:41.71 ID:tLZtUotE.net]
- >>533
できません
- 546 名前:デフォルトの名無しさん mailto:sage [2017/01/17(火) 16:15:15.61 ID:gFA1cdN3.net]
- >>515
ファイルを一気にすべて読み込まずに、 Java8の、Stream APIを使って、100バイトずつ遅延読み込みすれば? 動画のように100バイト読んだら、それを捨てて、次の100バイトを読む。 この方法なら、使用メモリも少なくて済む
- 547 名前:デフォルトの名無しさん mailto:sage [2017/01/17(火) 22:03:43.56 ID:LeUXFh+F.net]
- 皆さんありがとうございます。
Stream APIも試してみます。 頂いたヒントをもとにしばらく試行錯誤してみて困ったらまた相談します。
- 548 名前:デフォルトの名無しさん [2017/01/18(水) 12:06:45.75 ID:CzpcbZaV.net]
- ジャーの作り方教えて
- 549 名前:デフォルトの名無しさん [2017/01/18(水) 12:29:41.64 ID:tbh5mPnt.net]
- 水道の蛇口を開くと水が出てジャーって音が
- 550 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 12:34:11.28 ID:wx9jdeiQ.net]
- じゃーあ
- 551 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 12:49:33.00 ID:ifGmvdln.net]
- Amazonや家電量販店で売ってます
圧力IHでもピンキリですので気をつけてくだちい
- 552 名前:デフォルトの名無しさん [2017/01/18(水) 13:58:22.16 ID:OE1dZhGe.net]
- 確かプロレスの技でジャーなんとかってあったよね
- 553 名前:デフォルトの名無しさん [2017/01/18(水) 14:39:59.74 ID:CzpcbZaV.net]
- ジャヴァのジャーです
作り方教えて
- 554 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 14:54:43.67 ID:GDkF9nEk.net]
- Java8 SE 121 来た
|

|