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


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

☆★Java質問・相談スレッド179★★



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/

302 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 21:36:51.65 ID:/aGxLpEu.net]
>>291
そんなレベルの学校出た生徒なんてどうせ全員底辺コーダーになるんだから、
派遣先の人にサンプルコードを要求してそれをコピペしろと教えとけばいい

303 名前:デフォルトの名無しさん [2016/12/08(木) 22:41:23.16 ID:1SK2lmQA.net]
教え方としてまずはメモ帳とかの何の言語サポートもない環境で教えてから eclipse 教えるとかの順番の方が良いと思うがな。

304 名前:デフォルトの名無しさん [2016/12/08(木) 22:45:57.29 ID:xQ0mWXyc.net]
>>299
ジャップの根性論は聞き飽きた

305 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 23:28:17.90 ID:7h5Didi7.net]
教え方としてはまずJUnitとLog4Jが先だ
他は役に立たないしこっちも期待してない

306 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 12:27:05.59 ID:r0mVuZmk.net]
プログラミング作法的な話で、JAVAに限った話じゃないんですが文字列処理とかで

str = str.replace(".", ",")

みたいにreplaceを呼び出している側と代入される変数が同じって言うのは、あまり
良くないんでしょうか?
(あとは hoge = xxx(hoge, ',') みたいに引数に渡した変数に代入するとか)

307 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 12:37:25.09 ID:AhKNtohh.net]
>>302
問題ないよ

308 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 12:49:11.27 ID:bG1axWcs.net]
javaなら問題ない
Scalaとかの関数型言語なら出来るけど普通はしない

309 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 13:12:02.16 ID:a6CzUBh6.net]
代入という認識がおかしい
Stringはfinal宣言されていて都度newされている

310 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 16:16:33.29 ID:4Jkws6z8.net]
少しずれるけど、静的に初期化することができなければって前提がある
定数プールで同じ値のは同じインスタンス



311 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 17:38:11.06 ID:cu/yECuQ.net]
>>302
それで問題になる言語の方が珍しい

312 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 17:47:48.20 ID:NF/ns1Fr.net]
cはもはや珍しいほうの言語なのか

313 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 18:02:18.64 ID:cu/yECuQ.net]
>>308
C

314 名前:
> str = str.replace(".", ",")
なんて書けたっけ?
[]
[ここ壊れてます]

315 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 18:40:09.01 ID:NF/ns1Fr.net]
cだと例えばstr = replace(str, '.',',')と書いたときに
途中でエラーが起きると元のstrに対して後処理できなくてリークさせてしまうのは割りとありがち。realloc()が有名だね。
javaだとstrに代入される前に例外で脱出してしまうから問題ない。メモリ開放だけが後処理ならgcもあるしね。

316 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 20:12:45.16 ID:bG1axWcs.net]
>>310
どういうこと?

317 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 00:02:22.19 ID:8Sb6wlYA.net]
知ったか乙

318 名前:デフォルトの名無しさん [2016/12/12(月) 00:42:01.42 ID:38wEAVQO.net]
あー。realloc()で元の変数に入れちゃうとエラーの時に元のポインタわからなくなってfree()不能になるね。

319 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 08:22:13.13 ID:aLE+Z42Q.net]
>>313
設計不良と言えなくもないと思うが、メモリー不足になる状況だとどうしようもないケースがほとんどでそのまま exit( ) することが多いと割り切ったのかも知れない

320 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 09:22:29.09 ID:9WBUJW2A.net]
>>314
ま、確かにrealloc()でエラーになったらとうしろというのかって感じではあるな。結局exit()で終わるしかない。



321 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 10:14:14.98 ID:5QBCzTqI.net]
スレチばっかしてんじゃねぇよハゲ

322 名前:デフォルトの名無しさん [2016/12/12(月) 12:42:34.42 ID:LEnzGoNW.net]
禿げンダッツ

323 名前:デフォルトの名無しさん mailto:sage [2016/12/13(火) 18:11:25.15 ID:dJt4p8RH.net]
デフォルトメソッドの導入を決めるまでの検討過程を見てみたいのですが、公開されている資料などあれば教えてください

324 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 11:06:37.15 ID:vFnJFYnV.net]
mail.openjdk.java.net/mailman/listinfo
にある lambda なんちゃらのアーカイブ見るとか。

325 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 12:04:32.20 ID:3igqgjKo.net]
dtoってビーンと何が違うんですか?
値つめこむだけですよね?
あとdaoってダオって読むんですか?ディーエーオーでもよいのでしょうか?

326 名前:318 mailto:sage [2016/12/14(水) 13:02:34.18 ID:l6x+gG1y.net]
>>319
ありがとうございます。

327 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 16:12:41.19 ID:4RpExEkV.net]
>>320
概念が違う
DTOはデザインパターン、BeanはJava Beans仕様

328 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 23:36:54.13 ID:aYwhkQ/I.net]
JavaDoc作成時に作成する対象をアクセス修飾子以外で指定する方法はないでしょうか?
具体的にはstaticでないフィールド(事実上全てprivate)のみを出力したいのですが。

Jaxbで使用するXMLファイルのリファレンスを作りたい
→XMLやXSDを基にJavadocのようにリファレンスを作る方法を探すが見つからない
→XMLの要素は全てJavaクラスにマッピングされるからJavaDocで代用できるかも!
→XMLを作るだけの人から見れば要らない情報が多すぎてわかりにくそう
→JavaDocの出力項目の調整できないかなぁ    ←イマココ

と思い至った次第です。
自分でも変な質問だとは思うのですが、よろしくおねがいします

329 名前:デフォルトの名無しさん mailto:sage [2016/12/15(木) 00:39:41.36 ID:V7DRptyX.net]
DoxygenでXMLフォーマットで出力してXSLTで表示したら

330 名前:デフォルトの名無しさん mailto:sage [2016/12/15(木) 09:01:30.75 ID:XoYGRdtd.net]
RuntimeException(とその派生クラス)について
メソッド内で↑がthrowされる場合に、メソッドのthrows句に書いても書かなくてもコンパイルエラーになりませんが
省略するのとしないのどちらが一般的でしょうか?



331 名前:デフォルトの名無しさん mailto:sage [2016/12/15(木) 10:08:17.35 ID:B3hFk1jH.net]
>>325
書かない
RuntimeExceptionのJavadocに説明されてるから読め

あと自分でRuntimeExceptionを投げるならJavadocの@throwsにはどんな時にどの例外を投げるのか必ず書いておけ

332 名前:デフォルトの名無しさん mailto:sage [2016/12/15(木) 12:47:18.08 ID:tqcky6y/.net]
>>326
ありがとう
javadocのthrowsは勿論書いてます

333 名前:323 mailto:sage [2016/12/15(木) 22:04:39.91 ID:FfmBFsSz.net]
>>324
ありがとうございます。
DoxygenやXSLTを確認してみましたが、結構ハードルが高そうなので断念しました…

自前でJavaDoc的なHTMLファイルを出力する仕組みを作ってみようと検討中です。
はっきり言ってJavadocの凄さを身にしみて感じています…

334 名前:デフォルトの名無しさん mailto:sage [2016/12/16(金) 00:19:49.58 ID:oD0nT6zl.net]
>>328
んなことするくらいならDoxygen使ってXMLにしてから
自作ツールでXML→HTMLの変換をやったほうが楽じゃないか?
XSLTのハードルが高く感じるのはわかるがDoxygenなんか普通に使うだけだろ

335 名前:デフォルトの名無しさん mailto:sage [2016/12/16(金) 00:50:35.39 ID:hOA+S1Bc.net]
アホだろ、ほっとけ

336 名前:デフォルトの名無しさん mailto:sage [2016/12/16(金) 21:54:24.30 ID:4hbUMcUq.net]
>>329
Doxygenは色々とインストールするのがハードル高そうで…

クラスからHTML作ってたのは単純にアホでした。
XSDがあるからそっちから作ったほうが100倍楽でした…

337 名前:デフォルトの名無しさん [2016/12/19(月) 02:44:46.91 ID:qrKF+qyJ.net]
String str =

338 名前:デフォルトの名無しさん [2016/12/19(月) 02:45:37.54 ID:qrKF+qyJ.net]
あれ

339 名前:デフォルトの名無しさん [2016/12/19(月) 02:46:02.48 ID:qrKF+qyJ.net]
エラー: シンボルを見つけられません
シンボル: メソッド parseInt(String)
場所: クラス Integer

となるんですが原因がわからず困ってるので教えてください。
バージョンは8です

340 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 08:13:30.97 ID:iGBlQxB0.net]
>>334
自分でIntegerクラスとか作っちゃって、java.lang.Integerが隠



341 名前:されちゃってるんじゃね?

class Test {
public static void main(String[] args) {
System.out.println(java.lang.Integer.parseInt("334");
}
}

これだとどうよ。
[]
[ここ壊れてます]

342 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 10:12:42.53 ID:iGBlQxB0.net]
かっこが一個抜けてることに今気付いた
System.out.println(java.lang.Integer.parseInt("334"));

343 名前:デフォルトの名無しさん [2016/12/19(月) 12:03:16.65 ID:8oGZdC3n.net]
>>335
ありがとう、java.lang.部分が抜けてました。。
import忘れだった

344 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 12:22:14.46 ID:dGFRD1NA.net]
JAXBで下記のようなクラスを扱う場合、どのような指定にしたらよいでしょうか

class Data{
PhoneNo phone1
PhoneNo phone2
}
abstract class PhoneNo{
String number
}
class FixPhoneNo extends PhoneNo{省略}
class MobilePhoneNo extends PhoneNo{省略}

条件としては
○どのフィールドに対してセットしているかをxmlで明示したい
○どのクラスにマッピングされるかをxmlで明示したい
○できれば標準のJAXBで…
です
リストであればXmlElementWrapperでなんとかできたんですが…

345 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 14:23:03.95 ID:TWjb/FW7.net]
>>332-333
2chのバグだろう

書き込み確認画面が出る際、" を使うと、そこで文字列の終了とみなされる。
" の代わりに、\" とエスケープすれば、どうだろう?

それか、書き込み確認画面が出たら、1度キャンセルすれば、確認画面は出ないようになった

346 名前:デフォルトの名無しさん [2016/12/19(月) 16:01:51.76 ID:C2gHCNQF.net]
test=

347 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 20:30:01.47 ID:yx8yGp0N.net]
"

348 名前:デフォルトの名無しさん [2016/12/19(月) 20:44:54.19 ID:YHR5Ghte.net]
>>337
え?java.langはimport書かなくてもいい筈だが。

349 名前:デフォルトの名無しさん [2016/12/22(木) 13:13:50.00 ID:h0so1B2S.net]
singletonパターンは状態を持たない(immutable)クラスにしか使えないと聞いたのですが
これはマルチスレッドでの話で、シングルスレッドの場合はimmutableにする必要はありませんよね?

350 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 13:37:04.69 ID:gNaPdTdq.net]
>>343
なんか勘違いしてないかな?
Singletonは唯一のインスタンスを表現するときに使うのであって、それが状態を持つ持たないは関係ないというか普通に状態を持つだろ

マルチスレッド云々はその唯一のインスタンスを作るときに一工夫が必要というだけの話



351 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 14:03:18.86 ID:6Gi9DgtV.net]
Javaプログラマって、よく理解してもいないくせに変数がスレッドセーフだの何だのとスレッドについて訳の分からないことを抜かす奴が多いよな
誰に毒されたのか知らないけど、Javaでスレッドセーフだからどうのと言ってる奴がいたら疑ってかかるようにした方がいいよ
スレッドセーフであるか否か自体が直接問題になることなんてほとんど無いから、大抵は頓珍漢なことを言っている

352 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 14:14:34.96 ID:u+X4Mbv/.net]
おまえもな、素人さん

353 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 14:16:25.84 ID:1GV1Zp9H.net]
1990年代からタイムスリップしてきた奴なのかもしれないだろ

354 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 14:24:37.19 ID:GmJMxsCJ.net]
Javaは伝統的にわりと安易にスレッドを使う文化がある
Javaプログラマの平均スキルが他と比べてどうかはともかく、スキルの低い人もスレッドに触れざるを得ないことが多いので
とりあえずsynchronizeしとけば「スレッドセーフ」っていうのになるんでしょ?
みたいなのは実際多い

355 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 15:05:56.47 ID:E9q4nGYk.net]
いや、Javaに限らずだと思う
マルチスレッドが大変だ!と騒いで見せる輩も
カップ麺握り締めて「これ食っとけ」的主張してるにすぎない
麺っていうのはこうでね
スープってのはこうでね
何も怖がることは無いね
って論調はほぼ見られない

356 名前:デフォルトの名無しさん mailto:sage [2016/12/ ]
[ここ壊れてます]

357 名前:22(木) 15:22:07.30 ID:u+X4Mbv/.net mailto: パーには分からんだろう []
[ここ壊れてます]

358 名前:デフォルトの名無しさん [2016/12/22(木) 16:20:17.22 ID:OgMG3ild.net]
2ちゃんにもスレッドがあるのです。

359 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 19:08:14.31 ID:mDlraXyL.net]
もう随分前から「とりあえずimmutableにしとけ」にシフトしてると思う。

360 名前:デフォルトの名無しさん [2016/12/24(土) 06:06:58.25 ID:oKfujRAW.net]
質問です
Scannerを使って標準入力させたいんだけど、最終行がカッコか否かに依存しない書き方を教えて欲しいです

やりたいこと:入力された値の最大値だけを出力
例(便宜上改行を\nと表記します)
入力:
1\n
2\n
3(\n)
出力:
3

3の後の\nがあろうがなかろうが同じように出力したいです。お願いします
ちなみに入力は一回一回エンターを押すのではなく、
1
2
3
をまるっとコピペしてから一回だけエンター押すイメージです



361 名前:デフォルトの名無しさん [2016/12/24(土) 07:01:56.03 ID:MvzacMfS.net]
>>353
hasNextInt() と nextInt() 使えばいいのでは?

362 名前:デフォルトの名無しさん [2016/12/25(日) 12:11:25.04 ID:/R0IoCKS.net]
>>353
へい

Scanner scanner = new Scanner("1\n2\n3(\n)");
Pattern intPattern = Pattern.compile("(\\d+).*");

while (scanner.hasNext()) {
 Matcher intMatcher = intPattern.matcher(scanner.next());

 if (intMatcher.find()) {
  System.out.println(intMatcher.group(1));
 }
}

363 名前:デフォルトの名無しさん [2016/12/28(水) 23:45:26.72 ID:lebcDiwS.net]
勉強している者ですが
インターフェイスがフィールドは必ずpublic static finalになるような仕様になっているのは
どういう理由からですか?

別にstaticじゃなくてもよさそうだし
必ずfinalにしないといけないのも不自然と感じるのですが。

364 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 23:58:45.55 ID:+cXdtPI1.net]
何を勉強してそんな話が出てきたんだ?

365 名前:356 [2016/12/29(木) 00:18:08.48 ID:WkynARab.net]
Javaを勉強してです。

366 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 01:22:03.23 ID:ICm4kcbN.net]
無駄に複雑になるからだよ
フィールドが多態性を持つとなると仮想メソッドならぬ仮想フィールドアクセスみたいなものが必要になる
static final なフィールドはインスタンスメンバじゃなくて単なる定数だから、
実質的にはどこか他のクラスに定数を定義するのと変わらんので特に害はないというわけ
害はないけど特に必要性もないので、C#だとインターフェース内では一切フィールド使えなかったりする

367 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 01:59:20.86 ID:30kHN7oe.net]
単なる定数に、インタフェースの名前空間を使って、区別しているだけ

元々、インタフェースにフィールド(メンバ変数)は持てない。
関数の実装も持てない。
つまり、メモリを割り当てるようなものは持てない

インタフェースとは単なる、マーカー・決め事。
実装先で関数を実装するという、ルールを強制する仕組み

368 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 09:41:30.42 ID:ICm4kcbN.net]
細かいけどインスタンスメソッドはインスタンスにメモリを割り当てないぞ
インスタンスメソッドは実際にはインスタンスではなくクラスに属していて、インスタンスの型情報を基に各クラスのメソッドを検索する
フィールドも同様にまずクラスを見てアドレスを求めればいいのでやろうと思えば技術的に難しくはないはずだよ
Java設計者が実装コストに見合ったリターンがないという判断をしただけ

369 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 16:05:00.66 ID:NJpH4t/4.net]
>>361
> Java設計者が実装コストに見合ったリターンがないという判断をしただけ

その判断をした経緯を見ることができるサイトありますか? 書籍なら書籍名を教えてほしいです

370 名前:デフォルトの名無しさん [2016/12/29(木) 16:31:49.50 ID:1pBIOXSt.net]
interfaceがデータメンバー持てたらただの多重継承と一緒になるじゃん。
なぜJavaが多重継承を禁止してるかを調べた方がいい



371 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 16:35:12.28 ID:ICm4kcbN.net]
>>363
フィールドも宣言と実装を分ければいい話

372 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 16:36:06.13 ID:+/EAw155.net]
インターフェースは多重継承できるんだぜ
普段使わないけどな

373 名前:デフォルトの名無しさん [2016/12/29(木) 16:42:38.39 ID:1pBIOXSt.net]
>>364
そうする事に何か意味あんの?

374 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 16:49:31.22 ID:k+96c2nT.net]
>>365
あれってjava8のmapメソッドとかの互換残すためだっけ・・・
拡張メソッドを実装するとか、Java8ListみたいなListインターフェイスを継承したインターフェイス作るとか何か方法はあったと思うけどな

375 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 21:51:19.05 ID:30kHN7oe.net]
C++では、多重継承・ダイヤモンド継承がある

P ← A
P ← B

親クラスPを継承したクラス、A, B を同時に継承すると、
Pのメンバ変数の部分が、2重に確保される

P.x があるとき、A.x, B.x でアクセスすると、異なるメンバ変数になってしまう。
結局、多重継承はややこしいから、多くの言語で禁止された

インタフェースでは、メンバ変数を持たないから、こういう問題は起きない

376 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 23:12:51.66 ID:ICm4kcbN.net]
>>368
理解が甘い。
それだけの理屈だとメソッドもインターフェースに宣言できなくなっちゃうぞw
インターフェースで多重継承の問題が回避できる理由は、
インターフェースのメソッドは宣言のみで実装を持たないので、
継承階層上で同一のインターフェースがいくつ重複して継承されてようが
最終的にメソッドの実装は一つだけになるから。
そして、君はフィールドの宣言と実装は不可分であるという前提を暗に設けているけど、
C/C++のようにフィールドの宣言と実装を分離できる言語も存在する。
Javaがそうしなかったのは「そう判断したから」に過ぎない。

377 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 23:15:56.04 ID:y5tb/iei.net]
>>369
全然違う
メソッドは上書きして消してしまえばいいが、データだと面倒

378 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 23:23:19.66 ID:uVQYMOXa.net]
くだらねー言い争いの様相を呈してきたからそれ以上はここでやるなよ
でないと殺すぞ

379 名前:デフォルトの名無しさん [2016/12/30(金) 00:51:34.31 ID:h6FEfUa+.net]
>>363
土方に多重継承が使いこなせるわけないやろ。

380 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 01:10:45.64 ID:zRXiBWIE.net]
scalaのミックスイン好き



381 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 07:30:07.75 ID:rm5LlQ1U.net]
1日10レスもつかないこのスレでちょっとした議論を目の敵にするとかw

382 名前:362 mailto:sage [2016/12/30(金) 19:09:43.37 ID:OiZO02Sd.net]
出典を知りたかったんですがご教示いただけませんか

383 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 20:26:08.40 ID:xy7ekZk9.net]
実装コストというより、javaは混乱の原因になる構文は制限している
C#の場合条件付きでポインタ使えるけどjavaは使えなかったりするし

384 名前:デフォルトの名無しさん [2016/12/31(土) 00:38:21.18 ID:DQemjRmJ.net]
PとかAとか書かれるとPPAPが思い浮かんでしまう

385 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 09:01:04.95 ID:EtOYLbeq.net]
I have a jvm I have a func lang ah scala.

386 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 15:43:25.44 ID:nUjD4DbZ.net]
JavaScript死亡www

「WebAssembly」がITの未来に変革もたらす|Google、Apple、Microsoft、Mozillaが共同で開発した新概念

「WebAssembly」がWebブラウザに変革をもたらします。
Webブラウザは、もともとただテキストを表示するだけのところから始まりました。その出発点から、現在ではコミュニケーションやゲームまで幅広い表現を可能にしています。
そして今回、「Webブラウザ」に新しい概念が加わわることになりました。
それをもたらしたのが、ブラウザに関わりの深い世界規模の4社「Google」「Apple」「Microsoft」「Mozilla」が共同開発した、Webのためのバイナリーフォーマット「WebAssembly」です。
今回はその「WebAssembly」について、「スゴイところって何?」「何が起きるの?」をご紹介していきます。
WebAssemblyは「JS不要。コンパイラ言語だけで動的アプリが作れる」「どの言語でもWebブラウザ上にアプリを作ることができる」

WebAssemblyによってもたらされるスゴイところは次の4つ。
コンパイラ言語だけで、Webブラウザ上に動的なアプリが作れる
ほぼ機械言語にコンパイルされるからヌルヌル動く
OSを一切気にする必要がなくなる。気にするのはブラウザのみ
C,C 以外の言語でもWebAssemblyにコンパイルされる「クロスコンパイラ」の可能性が高まった

これまでWebブラウザで、ユーザからの入力情報を元に、動的なアプリケーションを実現するためには「JavaScript」が必須でした。

「インタプリター言語」であるJavaScriptは、その都度ソースコードを機械語に翻訳する必要があるため、予め機械語に近くコンパイルされる「コンパイラ言語」と比較すると動作が遅いという特徴があります(※)。

もしコンパイル後の機械語に近い形で、Webブラウザ上でコードが実行されたら。
JavaScript以上にヌルヌルに動き、しかもJavaScriptを気にする必要がなくなります。

それを実現したのがこの「WebAssembly」です。

https://mayonez.jp/1690

387 名前:デフォルトの名無しさん [2016/12/31(土) 16:54:48.15 ID:jwzq842l.net]
>>379
Java Applet と考え方は同じようなものかな。
車輪の再発明ではあるが大幅に改良された感じか。

388 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 16:59:14.04 ID:+2KPTl74.net]
結局クライアントリソースにアクセスできるかどうかなんだよなー

389 名前:デフォルトの名無しさん [2016/12/31(土) 17:06:49.14 ID:jwzq842l.net]
あー。まあ、どの程度アクセス可能にするかは設定次第になるんじゃないかな。
しかしとにかくクライアント側で仮想マシンが動いてその中にもストレージのようなプログラムが終わっても記憶する何かがあればかなりの事はできそうな感じがする。

しかし>>379の記事書いた人はこれまでの歴史的なことはよく知らなかったようだな。
既にJavaAppletという形であると言えばあるんだが時期尚早で失敗して死んだだけだ。

390 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 17:58:54.03 ID:7BahRXzq.net]
WebAssemblyはブラウザ組み込みのスクリプティング言語が一つ増えるだけ
特に何か新しいことができるようになるわけじゃないよ
他の言語で書かれたコードをjsに変換してブラウザで動かすというのは以前から行われていたけど、
jsの構文解析のコストやデータ型の不備などのためパフォーマンスが悪かった
だからバイトコードにしてデータ型も増やした
そ れ だ け



391 名前:デフォルトの名無しさん [2016/12/31(土) 18:27:45.64 ID:jwzq842l.net]
そういやjsでPCの仮想マシン動かしてそこでLinux動かしてるの前に見たことあるなあ。
PCは速くなったもんだと思った。

392 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 19:37:40.97 ID:RP5GqFRc.net]
>>383
C++ とか C# で組めると言うのは嬉しいけどライブラリとかどうなるん?
.NetFramework 丸抱えって言うわけにもいかんだろうし

393 名前:デフォルトの名無しさん [2016/12/31(土) 19:41:11.00 ID:jwzq842l.net]
やっぱなんか仮想のOSがあることにしてそこcallするのかな?

394 名前:デフォルトの名無しさん [2016/12/31(土) 19:42:27.48 ID:CS9EEzAV.net]
2NsOdIiQへの反論
そのオブジェクト指向の構造も突き詰めれば
if() for() while() を使用した基本構造からな成り立っている。
各言語や、ライブラリ毎に別々の名前別々の文法が定義され
言語や仕様が変われば、その「名前」や文法は毎回覚えなければ
ならない。それらが滞りなく動くには、それなりに繋げなければ、
ならないし

395 名前:、「繋げる」ためには細かくて複雑で、なおかつ
時と共に変化しやすいルールを沢山覚えなければならない。
それは仕様やルールに支配されている状態と言えるだろう。
それらも大切じゃないわけではないと思う。だけど
2NsOdIiQの意見にはは真っ向から批判したいと思う。
[]
[ここ壊れてます]

396 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 19:43:04.91 ID:CS9EEzAV.net]
投稿スレを間違えました。すみません。

397 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 20:59:14.55 ID:u4bGwJtr.net]
>>385
どうもならんよ
最終的に描画や入出力のところはHTML/JSのAPIを使って実装するの

398 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 22:41:45.07 ID:DQemjRmJ.net]
>>384
getnews.jp/archives/437194

399 名前:デフォルトの名無しさん [2017/01/02(月) 21:19:29.65 ID:o3nId1EF.net]
クラスローダーで動的にクラスロードできるという話があるけど
クラスAのメソッドを実行中にクラスAが再ロードされて定義変わったらどうなるの?
実行が終わるまで待つ?それともグロテスクにメソッドの途中でも切り替わるの?

400 名前:デフォルトの名無しさん mailto:sage [2017/01/02(月) 21:52:30.67 ID:CPceoiNS.net]
>>391
使用中のクラスはアンロードできない



401 名前:デフォルトの名無しさん [2017/01/02(月) 21:56:39.01 ID:o3nId1EF.net]
使用中てスレッドが実行している対象になってるということ?
じゃあ終わるまで待つってことか

402 名前:デフォルトの名無しさん mailto:sage [2017/01/03(火) 10:10:53.52 ID:0B5i9Ebo.net]
普通は新しく別のクラスローダ使ってそっちで実行するようにして
古いクラスローダでは新たな処理させないようにする。






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

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

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