Java入門・初心者質問スレ Part.4 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1週間あれば入門書読めるだろ
何十年とかバカじゃないか ほう、一週間でバクも起こさずにマルチスレッドプログラミングが出来るとな 一週間で入門できても
一通り習得するのは
一年じゃ足りないからな
たいていの技術は >>393
言語レベルでサポートされてるのに、どんだけ無能なんだよ 最近やる気が出ずにJava勉強してない・・・
やらないとと思いながら結局何もしてない・・・ ユウナって1人だけドレコ4つなんやな
クラが3
他は全員2 コマンド覚えるレベルの超初級なのですが、コマンド入力したらマウスカーソルなど当てるとその意味を表示するようなソフトやウェブサイトありましたら教えてください。 >>408
どんな環境で、何のコマンド?
まず用語からかな ググればいいような?
あ、そうだ。自分で作ればいいじゃん。
テキストファイルにコマンドと使い方書いといてそれ読んで画面にコマンド出しといてマウスカーソルが上に来たら使い方が出るみたいなやつ。 >>411
お前へのレスは最後にすると言ったな
あれは嘘だ >>396
句点「。」と読点「、」だけど、逆だと思ってるひとは多い。 Javaプログラマはマルチスレッドにしなくてもいいのにマルチスレッドで作ったり、それぞれのスレッドで同じデータを参照、更新したがるから変なことになる。 質問です。
フィールド定数として下記のようなインスタンスを持つのはマルチスレッドプログラミング的に問題ありますか?
private static final Comparator<Date> COMPARE = new Comparator<Date>() {
@Override
public int compare(Date s, Date t) {
return s.compareTo(t);
}
}; >>417
その Date が java.util.Date ならそれ自体がスレッドセーフでないためにうまく動かない可能性がある。
Date のインスタンスを渡す側の問題だ。COMPARE.compare(s, t) のように渡すことになるだろうが、
この s, t が他のスレッドと共有されており尚且ついつ書き換えられるかわからない場合は比較している
最中に書き換えられる可能性がある。 >>417
値が変化しないなら気にしなくておk
複数スレッドで書き換えるならvolatile付けとけ >>420
volatile 付けても複数のスレッドで同期取らずに書き換えるなら同じ事では? 用途としては、
class DateUtil {
private static final Comparator<Date> COMPARE = new Comparator<Date>() {
@Override
public int compare(Date s, Date t) {
return s.compareTo(t);
}
};
public static List<Date> sortDate(List<Date> dateList) {
Collections.sort(dateList, COMPARE);
return dateList;
}
}
こういうイメージです。
(sortするだけでわざわざreturnする必要ないかもしれませんが)
フィールド変数は、危ないかもしれませんが、定数COMPAREは、それ自身に、
インスタンス変数を持ちません。なので、こういう場合はスレッドセーフなのか気になりました。 >>422
それ自身はスレッドセーフだが List も Date もスレッドセーフではないので
使う側で同期を取るか、または他のスレッドからアクセスされないように作る
必要がある。 判定してる最中または後にt,sが示す時間が変更された場合か
スレッドセーフでないことをバグであるかのように見ている人がいるとやっかいそうだ
もうちょい誤解しにくい日本語訳ないかな Ruby の作者の、Matz でも、マルチスレッドはやった事がない
普通、関数を書く時に、マルチスレッド対応で書く人は、いない。
誰も書いた事がないはず。
マルチスレッド対応で書くには、数十年の研究が必要
マルチスレッドどころか、コンテナでは、read 走査中に、
要素を追加しただけで、バグるように作られているものが、ほとんど
初心者がマルチスレッドをやるなど、30年は早い マルチスレッドなんて簡単だよ
共有するデータはDBなどに集中させる
Javaでは基本的に共有しないでローカルコピーを使う
どうしてもJavaで共有したいならイミュータブルにするかスレッドセーフなライブラリを使う エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×3 = 言い値50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×1 悪質な言い値で50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - JIETに加入して公表価格で応募ができる 数十年も研究しなくても普通のプログラマなら数秒から数分で理解できると思うがなあ・・・ 普通のプログラマなら、プログラミングに関わるほとんどの概念は数分でマスターできるけど、ここ初心者スレだから、あまり簡単を強調しない方がいいかも 大企業様のオレオレフレームワークも数分でマスターできるのか >>430
そうか?そりゃ余程へんな解説を聞いたかサンプルプログラムがサンプルと言えないほど複雑でクソだとかそういう特殊な場合ではないか? たとえば関数型プログラミングを
初見で数分で理解できたわーって
スラスラ書けるプログラマなんかほぼいない マルチスレッドの話だろ?そんなの概念は直感でわかるだろ。
環境や言語やそのライブラリに応じて実現方法が違うだけで。 直感で分かる言うひとと〜
すぐには理解できない言うひとの〜
想定してるもんがちがう〜
ちがう〜 >>423
では、渡すパラメータがローカルメソッドから渡されて、かつフィールド等にセットされない変数なら
スレッドセーフが保証されるわけですか? >>436
スレッドセーフは保証されるよ
ローカル変数はスタックメモリに置かれてスタックメモリは
スレッドごとに独立してるから共有されないし
Comparatorは状態を持たないからね 基本は他のスレッドから書き込みアクセスされる可能性があるかないかだ。
あるのならセーフではない。なければセーフ。それだけの話。 ServletやAndroid書いてればマルチスレッド嫌でも使うだろ >>437
意味がわかりません。
そもそもなんでDateやListがスレッドセーフではない話が出てきたんですか? >>443
でもそれぞれフィールドに保持してないですよ。書き換わる要素はないです。 >>444
だからそれそのものはスレッドセーフだけど呼び出す側で他スレッドと共有されていたらダメってこと。
>>423に書いてあるじゃん。 Elixir = Ruby + Rails + Erlang VM
Elixir は関数型言語で、状態を持たない
Elixir で並列に動く、小プロセスはデータを共有しない。
10万の小プロセスを、0.6秒で起動できて、すべてのCPUコアを使いつくす
これで、スレッドと状態を持つ地獄から、おさらば!
プログラミングElixir、2016
著者は「プログラミングRuby」のDave Thomas Q: Javaプログラマはなぜメガネかけてるの?
A: 彼らくっきり見えないんだよ。(can't see sharp(C#))
https://pbs.twimg.com/media/DIy2ilnW4AEcHJB.jpg まあ確かに俺はC#はできない。
かといってこれから覚えようという気も起きない。
というかそもそもJavaプログラマではない。少なくともJavaを使う仕事が俺には回ってこない。 >>450
なんでこのスレでなにかを発言しようと思ったの? C#はJavaのパクリなんだからその気になればすぐ使える
というとC++のパクりだろって言われるだろうがな >>455
問題なのは言語じゃなくてFrameworkだろ
まあJavaは最近c#に比べて周回遅れだが >>457
フレームワークなら同じ言語内でもある話だろう
phpの乱立に比べれば問題ないんじゃないか >>458
phpよりマシってのは同意
「すぐ使える」ってのがチュートリアルをこなせる程度って意味なら同意 spring bootがあるからJavaから抜けられない Javaはdotnetに比べるとめんどくさすぎるよ
未だに環境変数手動設定なクソSDK
キモい文法のビルドスクリプト
不親切でわかりにくいOSSエコシステム
何がどこに入ってるかわからんパッケージシステム
異様な量のxml設定ファイル
コンテナ・フレームワーク・基本ライブラリの粗製濫造
古くさい冗長な文法
周回遅れで導入される言語機能
アプリケーションの実装に集中する前にもうクタクタ 質問です。
https://ideone.com/9lWtPU
上のコードで、addメソッドはString型を返すはずですが、
printlnメソッドの()内に""が無くてもよいのは何故でしょうか? メソッドにはダブルクオートはつけない
変数にもつけない
つけるのは直書きしたときだけ >>461
アホ乙
アホには使いこなせないのがJava 無駄な工数払うほうがアホだろ
ボランティアじゃねえぞ
この感覚が正しいからspring bootみたいなお手軽ブートストラッパが大流行したんだよ 工数に入れてる時点おまえはただの糞馬鹿
お前の言ってることなんて工数の内にも入らん
よって馬鹿には使いこなせない 工数にもならない程度の作業をラッピングされただけでありがたがるような馬鹿だと
どの道問題起きたときに苦労するからJavaでの作業は向いてない
ラッピングされてるってことは単に馬鹿用に端折ってブラックボックス化させてるだけだしな
bootのデフォルトで使われてるコンテナすら理解してないレベルだろお前等は
馬鹿が内製向けのツールを作る分には楽になるだけって話だな
よって馬鹿には使いこなせない >>469
こういうバカがDRY無視したコピペコードを大量生産するんだよなぁ
基本中の基本すらわかってない本物のバカオブザバカ Javaも使いこなせない馬鹿が反論できなくなって発狂
いつもパティーンやな
お前みたいな馬鹿がグラマってるから巷に馬鹿が溢れかえるんだよ馬鹿
おまえはVBでも弄ってろアホ >>473
パツキングラマーはバカに決まってんだろ
おまえの行く末はおまえが決めればいいけど相手を見下すだけの方針は息苦しくなるよ
本当の天才と相対したら死んでしまう >>461
新しいものが出る度に乗り換えて、
客の環境も入れ替えさせるの?
趣味なら好きなの使えばいいんじゃないかな >>478
一番新しいものが一番安全
僕らがStrutsから学んだことだぬ >>486
つまり新しいことと安全なことは関係ないと >>487
それって極端な事言って議論を破壊する詭弁じゃん ベータ版と比較して安全とか馬鹿だと思います
リリース版と比較すべきでしょう
ベータ版の意味知らないのかなって思いますよ ID:47K+oTLFみたいな屁理屈さんが初心者を排除してるよ ■ このスレッドは過去ログ倉庫に格納されています