Java入門・初心者質問スレ Part.9
レス数が1000を超えています。これ以上書き込みはできません。
(1)
while (threadState == true) {}
(2)
while (threadState == true) {
System.out.print("");
}
マルチスレッドで、他のスレッドが threadState を変更するのを待ちたいのですが、(1)だとループを抜けてくれませんが、(2)なら抜けます。
何が悪いんでしょうか? >>4
boolean threadState;
クラス変数です。
この変数を変更する別スレッドも内部クラスです。 >>6
それでうまく行きました。ググったらコンパイラの最適化の問題とかみたいですね。
本当にありがとうございました。 >>7
ああ。でもマルチスレッドでの同期については単純なのならそれでも良いけど本当ならちゃんとロックした方が良い事はお忘れなく。
少なくとも今のプログラムだと変数の内容が変わるまでずっとルーブするので効率が悪い。
他から起こされるまで眠るみたいな方式の方が本当に何もしない状態になるので効率は良い。 スレチならすいません。
以前からスマホアプリを作ってみたいなとおもってまして、この度PCを購入しました
のでもってまずはプログラミングの代名詞でもあるjavaを習いたいと思いandroid studio をダウンロード、インストールしたのですが、
アプリが立ち上がりません。。
どなたかこの原因がわかる方いませんか?
↓エラーメッセージ
Error launching Studio
Failed to load JVM DLL C:\Program Files\Android\Android Studio\jre\jre\bin\server\jvm.dll
if you already have a 64-bit JDK installed, define a JAVA _HOME variable in Computer > System Properties > System Setting > Enviroment Variables.
↓PCのスペック
win 10
Corei7
RAM 8G
OS 64ビット JVMのDLLの読み込みが失敗しました
64-bit JDKインストールされてるなら環境変数JAVA_HOMEを設定してください
ってことなのでJavaをインストールして環境変数を設定したらok >>10
ご回答ありがとうございます。
私もそう思ってJDKをインストールして環境変数(JAVA_HOME)を通してみたのでしたが、同じエラーメッセージが表示されました。
パスが間違っているのかわからないんですが、JDKのインストール先とAndroid Studioのインストール先が違うと動かないのでしょうか?
JDKをどこかのファイルと同じ階層に置かないと起動しないというのはありますでしょうか? >>11
パスが正しいかはコマンドプロンプトで実行してみればわかるかと
"%JAVA_HOME%\bin\java.exe" -version
所定の場所にJDKをインストールしないといけないなら
JAVA_HOMEを設定する必要ないんでそういうことはないと思うよ
64bitならstudio64.exeを起動しましょうとかあるんで
そのへんじゃないかな >>12
解決しました。
studio64.exeでした
いやはやお恥ずかしい・・
ありがとうございます 昔今より更に素人だった頃自分のパソコンにjavaの実行環境を作った事があって、そしてまた走らせてみようと思ってさっきVScodeで実行してみたら上手く行った。
ここまではいいんだけど多分今入ってるのがSEだからEEに取り替えたい。
環境変数の変更からファイルの交換までどうすればいいか誰か教えてくれない?
一応VShomeのjava.homeっていう所は"C:\\Program Files\\Java\\jdk1.8.0_161"みたいなんだけど とりあえずjava_ee_sdkっていうのはDL&解凍したけど今パスの方にあるjava_homeの参照先はjdkなんだよね
でも調べるとsdkにjdkが入ってるみたいなことが書いてあるからsdkと書いてあるフォルダをjava_homeに設定したら駄目だった
どこにjavaEEのjdkがあるの? どなたか教えてください。。。
未経験で今新人研修してます。。。
【 課題 】Javaでタイピングゲーム作成
https://dotup.org/uploda/dotup.org1832355.png
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI 】4. 制限なし
【 期限 】2019/05/05
【 Ver 】javac 1.8.0_131 >>18
未経験で新人研修と言う事なので
一気に全てやろうとするのではなく
1つ1つメッセージを表示して確認しながら追加していってみて下さい
1,最少構成でコンパイルが通るようにする
2,難易度選択で分岐
3,・・・のように >>20
基本的にはエラーメッセージは上から順に解決していって下さい >>20
↓こんな感じでしょ
public static void literal1(String easy) {
String[] easy = ...
for (int i = 0; i < easy.length; i++) {
...
}
引数でString easyを定義してて
String[] easyでも同じ名前の変数を使ってるんで
そのせいじゃないかな
変数の名前変えれば良さそう 21>>この問題の場合どこで条件分岐して良いのか、など構造の書き方がわかりません。。
アドバイス(特に書き方について)していただけると嬉しいです。。
22>>処理は全て上から、問題文の1文目から書いていけばいいですか? 23>>
クラスの宣言と配列の引数は名前変えないといけないんですか!? >>24
上からというのはエラーメッセージの上から順番にです
1つ目のエラーが原因で2つ目のエラーが表示されるというケースもあるので
その場合は1つ目のエラーを解決すれば2つ目のエラーも解決します
エラーメッセージが指し示している部分より前に原因がある事もあります >>25
同じスコープで同じ変数名を使うのがNGです
int a = 0;
int a = 1;
はコンパイルエラーになるっしょ
void test(int a) {
int a = 0;
}
もコンパイルエラーになるっしょ
そういうこと 最近って環境変数JAVA_HOMEって設定しなくても良くなったんですか?
OracleJDKからの移行で色々OpenJDKの試しているのですが
各種ツールなども問題なく動くようにみえます 環境変数が設定されてなかったら固定のパス見たり
JREを内蔵してるソフトウェアもあったりするけど
ツールによるんじゃないかな >>24
制御構造は順次、選択、反復で
どこの処理をループさせる必要があるか
どこで選択が必要かは全体のフローをざっくりと書いて見るとわかるかと
それを仕様から読み取るのも問題の範囲かなと、良い問題だわ
参考までに僕は↓こんな感じのフローかなと思った
ゲームのループ
{
難易度選択(Easy, Normal, Hard)
・・・
出題のループ
{
一致のループ
{
・・・
if 文字列が一致
{
・・・
ループを抜ける
}
・・・
}
}
・・・
リトライ確認がNoならループを抜ける
} >>27
なるほど。。そうゆうことだったんですね。
ありがとうございます >>30
わ!ありがとうございます。
こうゆう感じで書いたらいいんですね。
ちなみに私の配列の書き方は合ってますか? >>33
String[] easy = {"byte","int", ・・・};
って書き方でしょ、あってるよ
コンパイルも通るっしょ >>36
俺んとこは西暦だけらしいからしてねぇみてぇだな。 今Javaを独学で勉強してる者です。
現在、有名な「すっきりわかるJava2版」を購入しオブジェクト指向で躓いています。
最近IT関連のネット記事をチラチラ見てて、アンドロイドアプリの開発言語がJavaからKotlinに移行しているという記事が目に止まったんですよね。。
そこで質問なんですが、今からアンドロイドアプリを作ろうとするならばKotlinを学習する方が良いのでしょうか?
現エンジニアの方の意見をお聞きしたいです プログラマになりたいならJava
Androidアプリだけ作れればいいならKotlin
初心者ならググれば何でも出て来るJavaの方が良いかも知れない >>40
やはり現状はjavaの方が情報量もあって良いんですね
プログラミングは趣味でやってみようかなと思ってます。〇の島のにゃんこみたく農業ゲームとか作ってみたいなと思ってますね。
自分の調べたところJavaが廃れることは当分なさそうですので引き続き頑張っていきます
ご返答ありがとうございました。 >>40
Kotlinはjaやnativeもあるから今後androidだけには収まらないと思うよ。
仕事で使うのでなくても覚えておいた方が良い言語になると思うが。 当時、Javaは自然に人気が出た感じがしたが、Kotlinは無理やり感がある。 無理矢理というか、Googleが採用してAndroidでのサポート始めたからそこで使う人が爆発的に増えたということだろうな。
Google採用がなければJava同様にじわじわと増えたのかも知れない。
あ、でも Java はインターネットと Java Applet で急に広まった感じするな。
当時まだ flash とか動くページ作れるやつがなかったか、あっても貧弱だったからだと思う。
JavScriptもたいしたこと出来なかったように思う。 >>45
>Google採用がなければJava同様にじわじわと増えたのかも知れない。
うーみ。 なんだかよくわかっていないのが多いけど、Javaはクラスライブラリが画期的だった。マイクロソフトはクラスライブラリのセンスがなくてWindowsアプリケーション作りの環境をなかなか提供できなかった。
サンマイクロシステムズがJavaで正解を持ってきてくれたため、マイクロソフトは.NET frameworkを作れた。
その間はVisual C++のMFCか、計画性がまったくないクソ拡張をしてしまったVBによってアプリケーションが作られ混乱した。 >>47
確かにあなたの言ってることが一番正しい気がする。
話は変わるけど、Kotlinは、Javaではなく、JavaScriptに似ていて、
Script言語の方が初心者には受け入れられやすいから一見、多数決では
人気に有利に働いている可能性がある。しかし、大きなアプリを作ろうと
した場合、Javaの方が実は便利なのではないかと思う。さらに、
もっと深く進んでいくと、JavaよりもC++の方が便利、となっていく。 public static void main(String[] args) {
List<String> arr = new ArrayList<>();
arr.add("青森県"); arr.add("岩手県"); arr.add("宮城県");
arr.add("秋田県"); arr.add("山形県"); arr.add("福島県");
Collections.sort(arr, new Comparator<String>() {
public int compare(String s1, String s2) {
if (s1.compareTo(s2) > 0)
return 1;
else if (s1.compareTo(s2) < 0)
return -1;
else
return 0;
}
}
);
System.out.println(arr);
}
[宮城県, 山形県, 岩手県, 福島県, 秋田県, 青森県]
なんですが、グーグルスプレッドシートで並び替えると
岩手県 宮城県 山形県 秋田県 青森県 福島県
になります。プログラム間違ってるでしょうか?それとも文字コードの違いかなんかですか? >>49
JavaはUnicode順で
グーグルスプレッドシートはShift_JIS順ですね
Shift_JISで並び替えるならこれで
Collator collator = Collator.getInstance(Locale.JAPAN);
Collections.sort(ar r, collator); >>50
そういうことができるんですね。勉強になりました。ありがとうございました。 スッキリわかるJava入門を購入して
javaを学ぼうと思うのですが
目標に基本情報技術者のjavaでの合格を目指そうと思っています。
調べたらみんな表計算らしいので
文系で初学者が無謀なんでしょうか? >>52
表計算が一番簡単だというのは昔の話で、いまは架空の表計算マクロの問題なので、これはこれで勉強が必要。
Javaの場合は標準ライブラリがコードに書かれているので、見慣れていないとわかりづらいが、問題そのものは簡単。 >>53 ありがとうございます。
正直、何か目標が無いと挫折しそうで・・・というか
前に1回挫折してるんですよね・・・ スッキリJava を読んで、たのしいRuby を読む。
それで、Ruby で、プログラミングのお題スレの問題を解く!
これがプログラミングを学ぶ、最速メソッドです! かなしいRubyの次にもう1つ本があった気がするけど何だった? var ●● = iimGetLastExtract(1);
switch (true)
{
case /△△/.test(●●):
iimPlay("☆☆☆");
break;
特定のページ内にあるワードの有無でcaseを分岐させたいんですけど、検索するページを●●で指定しているのかわかりませんが機能しません。
●●にはいる値とは、作者の把握固めの値でいいのか、そのページを識別する値でないと駄目なのか、後者だとしたらそれはどこから抽出すればいいのでしょうか?
本を買ったりネットで調べても、そこにいれるべきは、なんなのかが書いてないです。
初心者入門的なものにも書いてないので、初心者以前の質問かもですが、ご教授ください >>58
それはJavaScriptじゃないかな
JavaとJavaScriptは違う言語だよ
ググってみたけどiMacrosみたいだね
iimGetLastExtract(1);
はiMacrosの値を読み込むってものらしいから
前のところで何を読み込んでいるのかによるんじゃないかな
いずれにしろJavaScriptのスレとかの方が回答付きやすいんじゃないかな >>59
そうです。imacros自体の本は出てないようで
javaの本とJavaScriptの本の中身をみた結果、コードの羅列的にjavaの応用なのかなと参考本買ったのですけど
JavaScriptでしたか・・・。改めて本屋覗いてみます。
回答有難う御座いました。 「imacros iimgetlastextract」「javascript test 正規表現」で検索!
web 制作管理板の、JavaScript のスレで聞いてください! >>61
有難う御座います。検索のほうしてみます。
かつJavaScriptの本買って駄目そうなら、そちらで質問させてもらいますm(__)m Java で FullGC が頻発している場合、CPU負荷が高くなるけど、
vmstat でいう sy(システム時間)が高くなる傾向になるの?
それとも us(ユーザー時間)が高くなる傾向になるの? 超絶初心者なのですが、どなたかご教授願います。
public static void main(String[] args) {
int num=Input.getInt("整数を入れてください");
System.out.println(num+ "を三乗すると" +modori(num)+ "です。");
}
public static int modori(int num) {
int c=num*num*num;
return c;
}
}
modoriメソッドでなぜcをreturnさせないと動かないのでしょうか? >>65
そのメソッドはintを返すように書いてあるからretutnでint型の値を返さなければコンパイル時にエラーになる。 >>66
なるほど!つまりint c=num*num*num; を modori(int num) {
に代入(?)してるっていう解釈で間違ってないですか? returnを書かない場合、cはmodoriの外に出られず呼び出し側に行かないから Java限定の話じゃないんですが・・・
ORマッピングする場合の、エンティティクラスは、テーブルに対応したものを作るべきですか?
アプリのUIの入力項目に、複数のテーブルから作ったビューをマッピングすることになる場合、
ビューに対応するエンティティクラスを作ればいいかと思ってるんですが・・・ エンティティは、テーブル構成と同じだろ
そう言えば、O/R マッパーで、複数の表を結合した、ビューは聞かない 普通にありえるだろ。
Hibernateなら、@Immutableってつけるだけだ。
まんまリードオンリーってことだ。 下記のコードを実行すると、10進数で10と表示されます。
これを2進数で00001010などと表示させたいのですが、
何か方法はありますでしょうか?
知っている方がいたらよろしくお願いします。
https://pastebin.com/bWeDy4fC java初心者です。現在オブジェクト指向で躓いています。とにかく読みまくって調べまくっ
てオブジェクト指向がどういう物なのか、どういう考え方なのかは理解できました。しかし
、「オブジェクト指向を使っプログラムをかけ」と言われてもまずどこから手を付ければい
いのかさっぱりです。ソースの例なんかを見ても何が起こっているのかわかりません。
”数字を入力させ、その数が10以上なら++するの繰り返し。10以下なら終了”
こう言われたならまず数字を入力させるんだな、scannerだな。繰り返しって事はforだな。
って分かるわけです。じゃあオブジェクト指向は...?なに?どこから手を付けるの?何が
どうなってるの?って感じです。どなたかご教授願えませんでしょうか... >>75
保持できる数値の下限が10の、Limit10Integerクラスを作ってみて、
そのクラス同士の演算、通常のIntergerやプリミティブなintとの演算を
考えてみては? 別のクラスを作ってインスタンス生成してそれを使えばとりあえずオブジェクト志向 プロパティとメソッドをまとめたものが簡単に作れるのがオブジェクト指向
クラスはあってもなくても Javaのプロパティって
C++で言う所のクラスに内包された#defineみたいなもん? >>74
Integer.toBinaryString ふつうに2進数に変換した後に
"0000000" + 2進数 をsubstringで右から必要な桁数とれば? そうか?足りない分だけ '0' 入れれば良いだけだが。 >>83
そうそう。それでもいい。(なんとなく無駄な感じはするが) 74です。
皆さんレスありがとうございます。
もう1つお聞きしたいのですが、コード内の変数binaryNumは2進数にして宣言して
いるのに、println()メソッドを使うと10進数表示になってしまうのは仕様でしょうか? 数値リテラルを2,8,10,16進数のどれで設定してもintはただの符号付き32bitの数値なのよ こんにちは。
Microsoft Java VM の仮想マシンを使っている者なんですが、
現在craving explorerを使っています。
そこで、craving explorerで
ツール→インターネットオプション→セキュリティタブ
信頼済みサイト→レベルのカスタマイズ→Microsoft VM →
Javaの許可→カスタム を押した後、
下にある「Javaカスタム設定」を押して未署名のコンテンツの実行を許可しようとしたところ
「Javaカスタム設定」を押した後に「craving explorerは動作を停止しました」と出てしまいます。
解決策を教えて下さい。
craving explorerでJavaカスタム設定を押して権限の編集及び未署名のコンテンツの実行に許可をしたいです。 >>90
それCravingExplorerからただ標準のインターネットオプションを呼び出してるだけだから
コントロールパネルとかから呼んで変更してからCravingExplorer起動してみるとか クラス型変数ってクラス定義さえしていれば、1個もインスタンスしてなくても使えるんだっけ? streamに対する操作として、max(Comparator::natualOrder)みたいにメソッド参照で操作できますか。どの参考書にもComparator.natualOrder()を使ってるのですが よく知らんが
そのCoparator class中のnaturalOrderがどう定義されてるかによるんじゃね
lambda memberとして定義さてりゃClassName.mamberNameだしfunction memberとして定義さてりゃClassName::memberNameなんじゃね
まぁ比べるやつ!なんて名前に冠してるクラスだし普通ラムダってるとは思うが
max funcのpredicate argとしてlambdaぶっこもうとしてるってことっしょ?(´・ω・`) こんばんわ。
わかる方がいらっしゃれば、教えていただけないでしょうか。
当方、DBをACCESSとしてjavaを学んでいます。
その中で、以下のSQL文をjavaで実行しようとしました。
UPDATE SAMPLETABLE SET 工数 = ROUND(DAVG("予定工数","SAMPLETABLE","[プロジェクトcd]='" & [プロジェクトcd] & "' AND [ID]='" & [ID] & "'"),1)";
上記は、SAMPLETABLEテーブルの中の予定工数列の平均値(小数点第2位を四捨五入)を工数列に更新する内容で、ACCESS上では正常に動作することを確認済みです。
これをjavaで実行しようとしたときに、
sql = "UPDATE SAMPLETABLE SET 工数 = ROUND(DAVG(\"予定工数\",\"SAMPLETABLE\",\"[プロジェクトcd]='\" & [プロジェクトcd] & \"' AND [ID]='\" & [ID] & \"'\"),1)";
statement.executeUpdate(sql);
としたところエラーとなりました。
statement.executeUpdate(sql);
で何が実行されているか確認したところ、実行されているSQLは以下の通りでした。
UPDATE SAMPLETABLE SET 工数 = ROUND(DAVG([予定工数],[SAMPLETABLE],[[プロジェクトcd]='] & [プロジェクトcd] & [' AND [ID]='] & [ID] & [']),1)
どうも\"の組み合わせが大カッコとして認識されているらしく、ACCESSで正常に動作しないようでした。
SQL文内で"を使わなくてはならず、そうするとエスケープ文字の\が必要とある為、解決方法が見当たりません。
解決方法がわかる方がいらっしゃれば、ご教授いただけないでしょうか。 >>96
どういうドライバ経由で繋いでいる?
DAvgというAccess限定の特殊関数動くんかな
Criteria引数をその時の列の値で動的に生成してるんだろうけど
そんなの標準SQLにないからなあ
素直に
・プロジェクトCD毎の予定工数テーブルを作成
・上記と結合(またはサブクエリ)して更新
の2ステップにした方がいいと思う
(もしくはDAVG部分をサブクエリに書き換え)
ちなみにDBをACCESSとしてjavaを学ぶというのは特殊すぎて
ハマるポイントが多すぎると思われるのでお勧めしない
まだSQLiteの方がまし Accessに使うSQL文は当然、SQL Serverと同様、マイクロソフト製品固有のSQL文になる
そのSQL文が正しく実行されるかはAccess内部でクエリーでも組んで実行しないと確証取れないよ >>97,98
レスありがとうございました。
ドライバはjdbc:odbcのことでよいでしょうか。
やはりACCESSは特殊なのですね。。。 >>99
JDCB以外で接続する方法は知らないな
と言うか実装上はJDCB活用する様にするのが普通 QueryRunner qr = new QueryRunner();
String sql = "SELECT A,B,C FROM HYO";
List<Map<String, Object>> MAP = qr.query(con, sql, new MapListHandler());
DBUtilsというライブラリを使用して上のようなコーディングをしましたが、
List<Map〜の箇所で後続の処理に行かずfinallyに抜けてしまいます。
おそらく何かしらのエラーが発生している為だと思うのですが、
} catch (SQLException exception) {
でも補足できませんでした。
例外処理もなかなか理解できておらず申し訳ないのですが、何が原因であるか
教えていただけないでしょうか。
情報が不足していたら申し訳ありません。 >>101
ただの Exception で catch してスタックトレースでも出してみれば良いのでは? さっきJavaの更新したんだが、システムトレイからアイコンが消えなくなった
コンパネ開いてアイコンのチェックを外して適用、OKしても消えない、どうすりゃいいんだ 以下ソースコードについてです。
要件としてはキーボード入力したデータの判定チェックをしたいです。
1.0点〜100点以外の入力はエラー ← ok
2.数字以外の場合はエラー ← ok
3.空白の場合はエラー ← これが以下ソースでは実装できず困ってます・・
try{
Integer inParam2 = Integer.valueOf(bufReader.readLine());
//0点以下、100点以上はエラーMSGを返す
if(inParam2 < 0 || inParam2 > 100 ){
System.out.println("0点〜100点の間で入力してください");
System.exit(1);
}else if (inParam2 == null){
System.out.println("点数は必須項目です。");
System.exit(1);
}else{
recordMap.put("国語",inParam2);
}
//数字以外をチェック
} catch (NumberFormatException e) {
System.out.println("数字を入れてください");
System.exit(1); >>106
bufReader.readLine()のnullチェックを行えばいいよ
↓こんな感じ
String line = bufReader.readLine();
if (line == null) {
// error
}
try{
Integer inParam2 = Integer.valueOf(line);
・・・ null判定ブロック内のコードがデッドコードだって警告が出るんだけど、なんで? >>110
ああ、ごめんなさい。>>106さんのコードのことです。 >>109
if(inParam2 < 0 || inParam2 > 100 ){
この条件はinParam2がnullでないことを前提としていて
inParam2がnullだったら例外が投げられるっしょ
}else if (inParam2 == null){
なのでこの条件にはたどり着かないんよ
if (inParam2 == null) {
} else if (inParam2 < 0 || inParam2 > 100 ) {
}
にすれば警告はでなくなるけど
Integer.valueOf(bufReader.readLine());
はnullを返すことはないんでinParam2 == nullは常にfalseになる
Integer.valueOfにnullを渡すとNumberFormatExceptionが投げられる
空白の場合は"点数は必須項目です。"と出力したいけれども
"数字を入れてください"と出力されてしまうのじゃないかな >>112
なるほどそういうことですか。分かりました。ありがとうございました。 https://pastebin.com/dEtCHVpv
MouseMotionListenerのgetMousePositionで、なぜnullがかえるのでしょうか? >>115
https://docs.oracle.com/javase/jp/6/api/java/awt/Component.html#getMousePosition()
Component がマウスポインタの直下にある場合、この Component の座標空間のマウスポインタの位置を返します。
そうでない場合は null を返します。
Component が画面に表示されていない場合は、Component が表示されている領域の上にマウスポインタがある場合でも、
このメソッドは null を返します。 File.lengthはint型で返すけど、もしintの範囲を超えるサイズのファイルが出たら例外吐いて終了するの? >>118
ごめん間違えた FileじゃなくてByteArrayOutputStreamだった >>119
最大値はInteger.MAX_VALUE - 8
これを超えたらOutOfMemoryErrorがスローされるよ てか、配列の添字の限界って型に関係なくintの最大値だよね。
ByteArrayOutputStreamは中で本当にbyteの配列使ってるので配列の添字の最大を超えられない。
工夫すれば超えるのは作れるがそうなると今度は一つの配列として返す部分の変更が必要になる。
どうしても巨大配列が欲しい場合はしょうがないからlongの配列に自分で詰め込んでbyteの8倍の容量にするか、または配列の配列またはList作って自分で連結させるかになるかな。 ソケット通信したいんだけどネットで調べてもsocketserverとかで普通にポート番号指定しているんだけど、ポートが他のアプリケーションとかで使われてないか調べたり空いてるポートを調べたりする処理は必要無いの?
通信関係疎くてわからない >>125
確かにポート番号は、サーバ・クライアント間で共通のものをソフトであらかじめ決めておく、というのが普通ですね
ポート番号をころころ変えるソフトは見たことがありません
というかポート番号がサーバ・クライアント間であっているかどうかを調べる、というのはどうすればいいかな?合言葉を交換するとかかな? >>126
あーそうか
サーバーでポートを動的にしたらクライアント側がそのポート番号知りようがないか
すいませんでした FTPが制御用コネクションとデータ転送用コネクションを用いているように複数のコネクションを張るタイプのプロトコルであれば、
最初に確立するコネクション以外は動的に確保されたポートで通信するケースはあるよ
何れにせよ、
特定のポートが他のプロセスで利用されていないかを確認しても、
その後そのポートを開く前に他のプロセスがそのポートを開いてしまう可能性があるので(race condition)
どの道、ServerSocketを開こうとした際に失敗することを考慮しないといけない >>128
なるほど複数接続するやつならそうしないとダメですよね
受付みたいな
ありがとうございました java.beans.XMLEncoder で getter/setter のあるオブジェクトを書くとちゃんとXMLファイルができて中にデータが入っているのですが、その XML ファイルを XMLDecoder の readOblect() で読もうとすると java.lang.ClassNotFoundException が出てしまい読めません。
classpath でクラスのあるディレクトリを指定したり直前で Class.forName() でクラスを読んでいても同じです。
これはどうやったら正常に読めるようになるのでしょうか? >>130
XMLDecoderに渡してるInputStreamが正しいか確認したほうが良い気がする
ちょっと試してみたけど、普通に読めるよ >>131
普通にファイルから読もうとしているだけなので問題ないと思うんだけど。うーん。
ところでそのうまく行ったプログラムは読み書きが別々に動くように書いてあって別々に起動して書くだけ、または読むだけが動くようになってますか?
それとも書いて読むという順序になっている一つのプログラムですか?
というのは、色々検索して探していたらクラスローダの問題と書いてあるページを見つけたからです。
(かといってどうすれば良いかまだよくわからない)。 >>132
com.example.test.XMLEncoderTest, XMLDecoderTestそれぞれのmainメソッドで
Stringとintのフィールが1つづつのTestBeanをtest.xmlに書いて読むだけ
動かないわけがないぐらいシンプルなもの
こんなのだったらそちらでも問題なく動くと思うけど、
それが(仮に)動いて、今トラブってるのが動かないのであれば、
XMLDecoderを使う箇所以外のコードか環境が原因じゃない?
#それか単純に間違ったXMLファイルをロードしちゃってるか(以前にテスト用に作ったクラスをXMLEncodeしたファイルとか) すいません。こちらの問題でした。Kotlin と混在させていて Kotlin 側でやるとダメな結果になってました。Java で同じように作ると問題なく動きました。失礼しました。 OpenJDKメインにすれば、
ライセンス料かからないんですか? >>135
OpenJDKならライセンス料はかからない
個人の勉強用なのか会社で業務システム動かすのかとか目的によって選択肢は色々だろうけど
以下のスライドが良くまとめられていると思う(ちょっと長いかもしれないけど)
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
https://www.slideshare.net/TakahiroYamada3/how-to-choose-the-best-openjdk-distribution-201905 この資格とったら時給いくら?
セミリタイアして、派遣で働きたい週3ほど。
希望時給は2500円以上です。 Oracle Master Platinumくらいないとな で、結局いくらなの?
個人で趣味程度に開発してアップしてるんだけど
不安になって小鳥に切り替え中 スッキリわかるJava入門の第2版って本はまだ有効? 有効だけど実践編と Servlet までやらないと意味ないよ
Java で何をしたいのかにもよるけど
javadrive のサイトではいけないの? >>143,144
ありがとうjavadriveのサイトで頑張ってみる OpenJDKなんて不要
AdoptOpenJDKで十分 結局 spring のメリットは何なの?
コードが複雑になるだけのような気がする >>149
フレームワークであるところ、かな
他にこの規模・機能のものがない 2次元配列で
int[][] array = new int[8][10];
これで
array[1][10]
array[2][30]
array[3][15]
のように二つ目の要素のサイズをバラバラにしたいのですが
こういうことってできますか?どう記述すればよいのでしょう? >>153
int[][] array = new int[8][];
array[1] = new int[10];
array[2] = new int[30];
array[3] = new int[15]; >>149
seasar2のような偽物と違って消えないところ ttps://pastebin.com/U8wjQzzb
四分木を実装しようとしています。
四角の中に2つ以上モノがある際、その四角を分割してほしいのですが、
その四角を分割せず、べつの場所を分割しています。
QuadTreeのsubdivide()が原因だと思うのですが、
ttps://www.youtube.com/watch?v=OJxEcs0w_kE
を見る限りでは分割方法は正しいようなのです。
QuadTreeのsubdivide()を修正するとしたらどのようにしたら良いでしょうか? qr.x - w → qr.x
qr.y - h → qr.y
じゃね? >>159
ありがとうございます。
まだQuadTreeのinsert()が分割すべき四角を分割しなかったりしているので、
どこが間違っているのか考えてみます。 missing return statementというエラーについて質問させてください
例えばif文でint型の変数iの条件を
10≦i≦20とelseでそれぞれ戻り値を指定するとエラーはでないのですが
10≦i≦20
と
else ifでi>10 、i<20
という条件にするとエラーになってしまい、ここに適当にelseを追加するとエラーがでなくなります
やってることは一緒で、どちらも全ての場合を網羅できてると思うのですが、これはどうしてなんでしょうか
if文はelseでしめないとダメという文法上の決まりですか?
それとも論理的な誤りがあるのでしょうか?
今一プログラミングの仕組みがわかってません、、、 すいません
符号が逆でした
else ifのところはi<10、i>20 >>163
今出先でスマホなのでそのままは書けないのですが・・・情報足りなかったらすいません
test(i)
public static String test(int i); {
if (i >= 10 && i <=20) {
return "10≦i≦20";
} else {
return "i<10、またはi >20";
}
}
これだとエラーにならないんですが
test(i)
public static String test(int i); {
if (i >= 10 && i <=20) {
return "10≦i≦20";
} else if (i < 10 || i > 20){
return "i<10、またはi >20";
}
}
これだとmissing return statementとなってしまいます >>164
Javaだと
if (condition1) {
return;
} else if (condition2) {
return;
}
というコードは
if (condition1) {
return;
} else {
if (condition2) {
return;
}
}
と記述したことと同一なんですよ。
で、下側のコードを見れば、condition2がfalseの時にreturnが呼ばれないですよね。
もちろんcondition1とcondition2が排他であれば、
実際にはcondition2が成立しないケースは(condition1で処理されているので)存在しないのですが、
コンパイラはそこまでは見てくれない、ってことです。 訂正
「コンパイラはそこまでは見てくれない」はあまり正しくないですね。
言語仕様として、
ifステートメントのブロック内でそのブロックが選択された際の条件が考慮されたりしない
と言ったほうが良いでしょう。 俺だったらわざわざ2個目のif書かずにelse使っちゃうな。もし仮にコンパイルエラーにならなかったとしても無駄だし見辛いしバグの温床になりそうだから。 >>165-166
詳細に解説いただき、ありがとうございます
帰宅したので回答いただいたことを踏まえて色々と弄ってみたのですが
例えば、
if (condition1) {
System.out.print("true");
} else if (condition2) {
System.out.print("false");
}
このようにした場合はエラーにならなかったので、
今回のエラーの現象はif文がどうこうではなく、returnの問題、
すなわち、(表現が適切でないかもしれませんが)
if文のブロック内の詳細な条件の処理が行われる前に、return文によって、各ケース全てがfalseになる可能性がないことが確認されるために起きるエラーという理解でいいでしょうか?
てっきり外側に書かれている処理が常に先に実行されるものだとばかり思っていましたが、そういうわけではないということでしょうか… >>168
間違っています。
先程の回答では理解されていると思っていたので端折りましたが、
Javaでは戻り値がある通常のメソッドからは常に "return 戻り値" か例外のthrowで抜けなければなりません。
例
int exOk1() { // OK
return 0;
}
int exOk2() { // OK
throw new RuntimeException();
}
int exNg() { // NG, compile error
// return がない
} これはif文などの条件分岐を伴う全ての可能性があるパスで満たされている必要があります。
例
int ex1() { // OK
if (condition) {
return 0;
} else {
return 1;
}
}
int ex2() { // OK
if (condition) {
return 0;
}
return 1;
}
int ex3() { // NG, compile error
if (condition) {
return 0;
}
// return がない
} ですので、最初の>>164の後者のString test(int i)の実装でも
メソッドの閉じカッコの手前に
return "";
の一行があればコンパイルは通ります。
オススメはしませんが。 >>169-171
なるほど、理解できました!多分だけど・・・
とても勉強になりました!
ありがとうございました safariでも閉じれるようなaタグ作るのに
onClick="window.open('about:blank','_self').close();"
じゃabout:blank開くだけなんですけど、なんでですか?
初心者質問で申し訳ありません。 JavaとJavaScriptは一見似てるけど別の言語なので、このスレの対象外です
紛らわしいんじゃ、という苦情は当時のNetscape社へどうぞ
JavaScriptの質問は(この板の)他スレかWeb製作板、Webプログラミング板あたりへどうぞ JavaScript(JS) は、web制作管理板のJavaScript のスレへ、書き込んでください!
この板の、JSのスレは、web制作管理板が荒らされたときに、
緊急避難用に立てたもので、今は使われていません 職業訓練校でjava勉強してる自分なんですが、すでにSESで内定もらってます。
でもスキル向上の事考えると自社開発に入りたいのでこのスレで情報共有お願いいます
職業訓練校プログラミング修了後(プログラマー掲示板)
http://itest.5ch.net/test/read.cgi/prog/1571032349/l50 これ実行したときにAが1つしか表示されないのは何故ですか?
bのインスタンス生成は新しくSampleのインスタンスを生成することにはならないのですか?
3行目と6行目それぞれでAが表示されるのでは無いのですか?
https://i.imgur.com/O63piVm.jpg
https://i.imgur.com/dkGWlmY.jpg 「これ実行」というのは GarbageCollectionTest を実行した時の話ですか?
あなたの理解で正しいです。"A" が2回表示されるはずですよ。
されないとしたらあなたが入力したコードに間違いがあるか、
コード修正後に再コンパイルを忘れているか、
別のクラスを実行しているのでしょう。 >>178
ほんとですか!
ありがとうございます!
後で見直してみます…!
認識間違ってなくて良かったです 実行可能jarファイルをWindowsのエクスプローラーからダブルクリックで起動すると
内部的にはjavawコマンドが実行されるためコンソールに何も表示されないとの事ですが
もし実行可能jarファイルでSystem.out.println()を使用してコンソールになにか表示させたい場合、何か方法はありますか?
できればbatファイルなどは使用せずjarファイル単体でダブルクリックから起動できるようにしたいです もすもす、JPanelで線を引くんだが、ボタンやスクロールバーなどの上に線を引けるように出来ませんか? 質問です
メインメソッドからAクラスをインスタンス化し、その中で更にBクラスをインスタンス化してます
メインメソッドで宣言、代入した変数をBクラス内で使いたいです
今はAクラスのコンストラクタの引数として渡して、更にBクラスのコンストラクタの引数として渡して使っていて、一応動きはするのですが凄くお粗末な気がします
何か他に良いやり方はないのでしょうか? その変数が何なのかがもう少し具体的にわからないと回答が定まらないんじゃないだろうか
それでいいというケースもあるし、メインで宣言しているのがおかしいというケースもある
変数をコンテキストのようなクラスに集約すれば収まりがよくなるケースもあれば、staticやThreadLocalが向くケースもある >>185
ありがとうございます
GUIアプリケーションを作っていて、ボタンなどのオブジェクトを変数に入れてます
ボタンを押したときにAオブジェクトを精製して処理をするようにしているのですが、
処理の工程に応じて状態を変えたいので、ボタンやラベルをABクラスに持って行きたいという感じです >>186
横からだけど&設計の話は深入りしたくないのだけど、
そー言う場合、AオブジェクトなどにはUI部品の参照を直接渡すのではなくて、
「状態が変化したよ」と通知する先を教える。
(インターフェイスを定義してその型のオブジェクト(メインのクラス自身のインスタンスでも可)を渡す、とか)
で、変更通知を受け取るオブジェクトが、
Aオブジェクトなどから変更通知を受けた際に必要であればUI部品の状態を変化させる、
ってのがおそらくは一般解。 こういう設計が望ましい理由は色々あるんだけど(MVCとかPAC etc.でググるよろし)
GUIアプリケーションの好ましい設計パターンだという以外にも
- そもそも(Swingのイベントスレッド以外から)SwingのUI部品の状態などを変える際には
SwingUtilities.invokeLater(...)を使ったりする必要があるけれども、様々な場所で行うのは面倒
- ウィンドウを破棄した際などに、
そのウィンドウ上のUI部品の参照を保持したままのオブジェクトがあったりすると
UI部品のインスタンスがGCで回収されない
- 仮に Swing -> SWT などへの乗り換えとか(あるいはロジックをWebアプリに流用するとか)
する際に、あちこちに Swing への依存が散らばってると大変面倒
とかいう現実的な問題もありますよ。 コンストラクタに関しての質問です!
クラスを作成する際にコンストラクタを用意すると、
デフォルトコンストラクタが自動的には用意されなく
なるようですが、
インスタンス生成時に発動するのは、コンストラクタか
デフォルトコンストラクタの片方のみである、
という解釈で問題無いでしょうか?
(両方が発動する事はあり得ない...?) >>189
クラスにコンストラクタを明示的に定義しない場合に限り
コンパイラが自動的に生成する引数無しのコンストラクタをデフォルトコンストラクタと呼ぶ
コンストラクタを明示的に定義した場合にはデフォルトコンストラクタは生成されれない
インスタンス生成時はコンストラクタを指定する (発動はしない)
指定されたコンストラクタが別のコンストラクタを呼び出してれば
複数のコンストラクタが呼び出されることはある
もし、明示的に定義した引数無しコンストラクタも含めてデフォルトコンストラクタと呼んでいるなら
一つのインスタンス生成時に引数有りのコンストラクタと引数無しのコンストラクタの両方が呼び出されることはある >>190
了解です。
即レス感謝です、ありがとうございます! 独学の初心者です。よろしくお願いします
スッキリわかるjavaを読んだ後、ブロンズの黒本読んでいます
頭が悪いのでブロンズから頑張ります。 「○秒長押しされました」と表示されるサンプル
この記事を読んで参考にしたのですが
動画を長押しすると動画の内容と同じgif画像?を確認できる機能を実装する事は可能でしょうか? キャプチャするタイミングが難しい機能に需要があるのか? >>195
いえ具体的に言うとgifサイトを作ろうと思っています JavaScriptの話ならWeb製作板の関連スレへどうぞ、らしいですよ。
あと「この記事」と書くならURLぐらいは貼ったほうが良いかと思います。 >>197
サイトを載せても良かったのですか?始めてきましたのですいません…
javaで聞いてみます JavaScript(JS), Java は異なる言語です!
まず、どちらの言語か確かめろ!
Javaなら、このスレで良いし、
JSなら、この板ではなく、Web製作板の方へ書き込む! JavaとJavaScriptは両方勉強するように Java→Python→HTML→Javascript
この順番であってる? 正しい順番は
VBScript→ActionScript→Delphi→XSL-FOだよ 正しい順番は、この順番で読むこと!
スッキリわかる Java入門 第2版、2014
たのしいRuby 第6版、2019/3/19
起業に適する言語は、Ruby 一択!
成功したベンチャー・自社サービス系は、ほとんど、Rails, Sinatra。
GitHub, Twitter, Airbnb, Cookpad, カカクコム, GMOペパボ など
ハーバード大学にも、Rails の講座がある
サーバー側開発では、Ruby → Go
他には、JavaScript, Kotlin, Julia, Elixir Javaスキルで独立(フリーランス)は厳しいな
PHPかRubyがいいよ
Javaはサラリーマン用の言語やね Ruby で食えるとは思わないのですが…だまされたとおもってやってみようかな? Rubyのフリーランス求人・案件情報
https://arma-search.jp/article/ruby-freelance
YouTube のKENTA の動画でもやってる。
web 系では、Python の10倍ぐらいある
Sinatra を使っている企業は、
アップル、BBC、イギリス政府、LinkedIn、Heroku、GitHub、Songbird、スタンフォード大学、レッドハットなど
Herokuは、Sinatraの開発を支援している
上からの順で、年収。
550〜600万円
Python, Kotlin, Ruby, Java
500〜550万円
C, JavaScript, PHP まだProgateでJAVA勉強始めたばかりなんだけど、ちょっと違和感があって質問。
メインメソッドで変数のデータ型をきっちり指定してるのに、その後に続くメソッド定義で再度データ型指定するのって必要なの?
「int age」ってさっき指定したじゃん!
「public static void printData(int age〜」って書く度に二度もデータ型書かせんなよ!って思うんだけど。
それともあとあとデータ型を変更するようなことがあんの? >>213
public static void main (String[] args) {
int age = 20;
printAge(age);
}
public static void printAge(int age) {
System.out.println(age);
}
↑こういうこと言ってるんだよね?
メソッド定義にあるint ageと、mainメソッドにあるint ageは別物でたまたま名前が同じだけ
違う名前の変数でもint型ならprintAgeメソッドに渡せる
public static void main (String[] args) {
int age1 = 20;
int age2 = 22;
printAge(age1);
printAge(age2);
} public static void printAge(int age)
このメソッド定義はint型の変数を1つ受け取りますよ、
受け取ったその変数をこのメソッド内ではageという変数名で扱いますよ、
戻り値の型はvoid型(=なにも返さない)ですよ
ってなことを定義している
>二度もデータ型書かせんなよ!って思うんだけど。
こういう疑問を持つのは個人的にスジが良いと思うのでどんどん聞くといいかも >>214
レスありがとうございます
ああなるほど、つまりprintAgeメソッドではメインメソッドのint ageに関連した何かを行うから、
このprintAge内でもとりあえずageという変数名で扱うことにして、見やすくしておこうというわけ・・・なんですよね?
ずっと、なんで変数名だけで理解してくれないんだろう、そういう言語なのかなあと思ってました >>216
mainの中の変数名も、printAgeの引数名も意味のわかりやすい名前にして見やすく(あとで理解しやすく)しておこうというのはその通り
下のようなコードからprint部分をprintAgeメソッドとして抽出する場合は
もとが同じ名前なので渡す変数名とメソッド定義の引数名が同じになることが多いけど
必ずしもそうなるわけじゃない
public static void main (String[] args) {
int age = 20;
System.out.println(age);
} メソッドの中に書いてあるint ageやString[] argsは引数と言って、厳密には変数とは異なる概念
引数と変数は同じ名前であっても必ず別のモノになる
今回はint型のageという変数の値を、int型のageという引数の値として、いわば代入しているような感じ 変数にはスコープという有効範囲があって、たとえばメソッド内でint xのように宣言した場合、その変数のスコープはそれを宣言したメソッドの中に限られる
隣のメソッドでいきなりxを参照しようとしてもエラーになる
改めてint xのような引数なり変数なりの宣言が必要だし、String xとしても良い この狭いスコープの何が便利かというと、10万行くらいあるプログラムのどこかでageをint型で宣言されているとき、ある日誰かが他のメソッドでageをPerson型として宣言しても問題ないことにある >>218
訂正
メソッドの中に書いてある
じゃなくて
メソッド名の次のカッコの中に書いてある >>217
ごっちゃにしてた変数名と引数名の区別がついたおかげで今やっているところのコードは全部理解できました
やっとオブジェクト指向に進めます
これ一発で理解できる人はすごいなあと思う 初心者です。よろしくお願いします
ブロンズの黒本で勉強中です
public abstract class B implements A {
// any code
}
これは
「抽象クラスとしてBをもち、BはAを継承している」
という意味で宜しいのでしょうか。 >>223
「このプログラムは〜」のような問題文の文言が省略されているのだろうが、選択肢だけを見ると何を言っているのかわからない日本語。 >>225
返信ありがとうございます。ブロンズの黒本の問題です。
左側の数字(1.2.3.)は行数です。誤字脱字あるかもしれません。宜しくお願いします
問、次のようなインタフェースやクラスがあるとき、is-a関係を正しく表しているものを選びなさい、2つ選択
1. public interface A{
2. // any cdoe
3. }
1. public abstract class B imolements A {
2. // any code
3. }
1. public class C extends B {
2. // any code
3. }
1. public class D implements A {
2. // any code
3 .}
A. A is-a B
B. C is-a A
C. B is-a A
D. D is-a B
E. B is-a D
F. B is-a C >>225
public abstract class B implements A {
// any code
}
↑ここは
「抽象クラスとしてBをもち、BはAを継承している」という意味で宜しいでしょうか もち、というのが変
もちだとするとBを持っているのは誰?
近くにhas-a関係の説明があって混乱してる?
Bがあり、とか、Bを定義し、とかならわかる
ほかはだいたい合ってる
正確にはAを継承しているのではなく実装している >>229
有難うございます。私の日本語がおかしいです。
「implemnts→継承」と覚えてしまいました。
「抽象クラスとしてBを定義し、BはAを実装している」ですね is-a関係は型が継承関係にあることを表していて
あるクラスをexntedsで継承するのは継承だし
あるインターフェースをimplementsで実装するのも継承の一種
問題のプログラムは次の関係にある
B ⇒ A
C ⇒ B
D ⇒ A
日本語で表現するなら
・抽象クラスBはインターフェースAを実装している
・クラスCは抽象クラスBを継承している
・クラスDはインターフェースAを実装している
ってところ
選択肢はB, Cが正解
is-a関係は日本語で考えて良いと思う
「AはBである」という場合
「A」を主語と言い
「B」を述語と言うけれども
述語の範囲内に主語が入っていれば論理的に正しい
たとえば、ドラえもんはロボットである、みたいな
ロボットはドラえもんである、は間違い、ペッパーくんかもしれないからね >>230
一番おかしいのはBという自分自身がBをもつ書いているところ。
それとAを継承してもBが抽象クラスなので、Aのメソッドを実装したとは言えない。 >>230
単にあなたの日本語がおかしいのです。
「BはAを継承してAをもっている」が「BはAを継承してBをもっている」と書いてしまっています。 >>232 は間違い。implementたったね。 すみません。頭が混乱してきました
解答は
B. C is-a A
C. B is-a A
とのことです
有難うございます is-a は、継承・一種である。kind of
has-a は、包含・部品を持つ・機能の実装・インターフェース
消防車は、車の一種である。is-a
車は、ハンドルを持っている。has-a 黒本の回答に納得いってるならあとは問題ないと思うよ >>237
それ英語がわからないと説明になっていないよ? has-aのところにインターフェースと書いてるあたり理解があやしいと思う >>240
彼は言葉の書き方からしてダメプログラマだしね。 ぐっすり寝たら頭が回復しました睡眠不足だと頭が回らなくなります。
雰囲気的に答えは分かるのですが、他人に説明出来るまで理解できてません
色々有難うございます
またお願いします('ω')ノ オーバーロードの問題が雰囲気的に答えを当てれるんですが
説明できるほどの理解力がないです
何度か黒本読み返して、まとめてから質問します
宜しくお願いします(゚∀゚) Spring bootで練習用のプロジェクトを作っています
Spring組み込みのTomcatだと問題なく動くのですが
STSのPivotal tc Server v4.0でプロジェクトを立ち上げるとエラーになってしまいます
MyBatisの設定が足りないのだとは思うのですが
原因がわかる方いらっしゃいますか?
依存性
グループID:org.mybatis.spring.boot
アーティファクトID:mybatis-spring-boot-starter
バージョン:2.0.0
エラーメッセージ
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to bind properties under 'mybatis.configuration.incomplete-methods[0].arg0' to org.apache.ibatis.builder.annotation.MapperAnnotationBuilder:
Reason: Failed to bind properties under 'mybatis.configuration.incomplete-methods[0].arg0' to org.apache.ibatis.builder.annotation.MapperAnnotationBuilder
Action:
Update your application's configuration 3日でスッキリわかるjavaを駆け足で読んで白本の模擬試験ページまでやってみたら正解率53%で笑えなかった・・・
趣味でpython勉強始めて、転職先がjava使うから勉強始めたけど難しい Go は、継承を無くしたw
has-a しかないw
すべてインターフェース
包含・部品を持つ・機能の実装・インターフェース・Duck Typing >>247
「spring boot error org.apache.ibatis.builder.annotation.MapperAnnotationBuilder」で検索!
エラーメッセージで検索するのが、開発の基本! >>250
諦めずにググってみたところ解決しました!
以下のサイトでkazuki43zoo先生が
「この問題はversion 2.2.0.M4で解決してるよ」と仰っていたので
pom.xmlを修正したところ動くようになりました
ttps://github.com/mybatis/spring-boot-starter/issues/350 明日シルバーの試験受けるけど怖いな
コマンドライン引数、data型、ラムダ式が頭に入らない >>252
実際の問題はかなり偏っている。気にしている問題はいっさい出ないかもしれない。 >>253
そうなのか。
黒本で最後の模擬試験が初見で75%くらいの正答率だったけど、自分でもまぐれだと思うから恐怖が拭えないでいる。
先駆者様敵にこの辺は注意して抑えた方がいい、みたいな情報があったら欲しいです。 >>254
時間配分は気にした方がいいよ。後半に時間がかかる問題が集中して落ちた経験がある。 どのくらい問題パターンがあるかわからないけど、継承がらみの問題はかなり多いと思う。 >>256
なるほど。
逆にその辺は点数取れてるからまだマシかな。
自分の得意分野ひけるようにお祈りせねば。
アドバイスありがとう。 資格か。そういや俺コンピュータ関係の資格何も持ってないな。なんか取るか。若くないし定年も近づいてきたので今さら取っても無駄だけど。 エラー箇所にカーソルを当てたらeclipseのIDEが解決策を示してくれてたのに、気づかずに1日無駄にしてしまった。 とりあえずさっきプロゲートをギブアップしてきた
配列と繰り返しのとこが難しすぎる
何をやる為のプログラミングなのかがサッパリわからない
もう少し目的をうまく伝えてくれる教材が欲しい
配列と繰り返しの目的をわかりやすく教えてくれる教材なら1万でも安くない
どなたか配列と繰り返しを初心者にもわかるようにちゃんと説明できている教材をご存知ないですか? 俺もProgateのJavaは途中までやってた
とても有料まで進む気にならなかったわ
無料の部分で思いとどまって良かった
ProgateのJavaは途中で急に難しくなるからな
理解力がずば抜けてる人ならいいんだろうけど俺は凡人だしプログラミング初心者だしな
もっとわかりやすい初心者用のプログラミングアプリがあればいいのに 結局本を買う事から始めてみるか
不安だから優しそうなJavaの本を片っ端から買ってみる
どうしてもJavaを覚えたい >>263
説明出来てない教材のほうが少ないと思うぞ
「Java 配列とは」で検索して10個くらいの説明読み比べるといいかも
Progateはどんなもんなのか見てみたがあれはウンコ
仕事で考えてるならスッキリのような超入門書をサクッと読んだあと
Head Firstのようなしっかりした入門書を読むことを勧める >>266
゚+。:.゚おぉ(*゚O゚ *)ぉぉ゚.:。+゚
ありがたい てゆうかプロゲートでわからなかったところはネットで解決した
簡単に説明してて一発で理解できた >>260
エクセル初級とか持ってる爺は可愛いかもしれない プリミティブ型の変数の宣言と、インスタンスをnewする文だったら、
やはり前者を上に書くべきでしょうか? >>270
どういう順序で書けば読みやすくなるかを考えて決める
プリミティブだから先に書くべきって考え方はしない 超初心者です。宜しくお願いします
カッコに入るコードを選択する問題がありました
class Q27 {
public static void main ( String [ ] args )
int [ ] date = { 10,20,30,40,50 } ;
int sum = 0 ;
for ( int i = 0 ; 【ここにコードを挿入】; i ++ ) sum += date [ i ] ;
System . out . println ( sum / dara . length ) ;
}
解答
i < = date . length -1
解説で「変数 i は配列 date の添え字であるため、i の値が 0 からdate.length -1」まで変化するように条件式を設定すればよい」
との事ですが、いまいちわかっていません
申し訳ありませんが、どなたか解説お願いします。 >>271
ありがとうございます
>>272
配列変数名がdateになってますが、dataの間違いですかね
日付は31日までですし…
配列dateの最後の要素(=5番目の要素)は、date[date.length]ではなく
date[date.length-1]となります(この場合はdate[4]が最後の要素となる)
添え字は0から始まるので最後の要素は要素数-1(=length-1)となる点に
お気を付け下さい >>273
解説有難うございます
誤字脱字で申し訳ありません
「data」です。
添え字が0から始まるのは理解しております
問題で「 i++ 」と記入されているから「length-1」とするのでしょうか
お手数ですが宜しくお願いします
<m(__)m> >>274
ごめんなさい、どこが分からないのかがいまいち伝わりませんでした…
i=0の時、data[0]=10
i=1の時、data[1]=20
i=2の時、data[2]=30
i=3の時、data[3]=40
i=4(=data.length-1)の時、data[4]=50
の全ての場合を足しこむ必要があるので、iは0からdata.length-1まで変化する必要が
あるのだと考えましたが
また明日以降質問して下さい >>275
解説有難うございます。
添え字は0から始まる、とだけ理解してたのですが
詳しく書いて頂き出題の意味が分かりました。
私が出題の意味を理解してないんだと思います
本当に有難うございました。 何度も申し訳ありません
for文が苦手で理解できていません
for文の処理の順序を解説お願いします
左側の1から8は行数です
1 class Q27 {
2 public static void main ( String [ ] args ){
3 int [ ] data = { 10,20,30,40,50 } ;
4 int sum = 0 ;
5 for ( int i = 0 ; i <= data . length -1 ; i ++ ) sum += data [ i ] ;
6 System.out.println ( sum / data . length ) ;
7 }
8 }
ぱっと見の暗算で10+20+30+40+50=150を5で割るって考えてしまうんですが
自分の知能でコード解析すると
@3行目、int型の変数dataに要素10〜50を入れる
A4行目、in型のsumに0を代入
B5行目、for文、int型iに0を代入、iがdataより小さい間、回る。
ここまでしか分かりません
C5行目、0が代入されたsumにdata[0]の10、を足して代入
Dsum =0 に、data[0]=10を足して代入。sumは10
E6行目、10 割る data[0]の10 、なのでsumは0
Fdata[0]に入ってたiが5行目でインクリメントされi=1
Gi <= dataに戻り・・・1になったi よりdataが小さければ・・・
となり訳が分からなくなっています
大変お手数ですが、for文の回し方の順番をご教示願います
<m(__)m> for文の前に、まだ配列についても理解があやしいな
@3行目はint型の変数dataではなく配列型の変数data
要素の型としてintを持つ配列だ
5個の値で初期化してるから、配列の長さは5になる
E6行目はdata[i]で割ったら分母10だけど、data.lengthで割ってるでしょ
lengthは配列の長さを表すから分母は5
つまり10/5=2で、まず2が出力される
ちなみに分母が10だったとしても10/10はゼロじゃないだろ落ち着け
「sumは0」という表現もあやしい
ここではsum / data.lengthの値をprintlnメソッドの引数に渡しているだけで、sumには代入してないからsumの値は変わらない >>277
ツッコミどころは色々ありますけど、5,6行に関しては分かりやすく書くと
for (int i = 0; i <= data.length - 1; i++)
sum += data[i];
System.out.println(sum / data.length);
と書かれていて、これは
for (int i = 0; i <= data.length - 1; i++) {
sum += data[i];
}
System.out.println(sum / data.length);
と同じです。つまりSystem.out.println()の行はループの外です。 B5行目、for文、「iがdataより小さい」というのが間違い
それをいうならi <= dataだろ
i <= data.length -1と書いてあるんだからlengthを無視してはいかん
「iがdataの長さより小さい」が正しい
data.lengthはさっきの説明通り5だから簡単に書き直すと
for (int i= 0; i <= 4; i = i + 1)
となる for (int i = 0; i <= 4; i = i + 1) {
//何か
}
なら理解しやすいはず
forの構文の意味は
for (ループの最初だけ実行する初期化処理; 継続するかどうかの判定; 1周ごとに行われる処理)
まずintの初期値が0になる
次に0<=4を評価して、成立するから「//何か」を実行
forに戻ってきてiをインクリメントしてiは1になる
こんどは1<=4を評価して、2回目の「//何か」を実行
iをインクリメントして2になる
2<=4も成立するから実行
中略
5<=4まで行ったら成立しなくなるので、ループを抜ける
結局「//何か」は5回実行されて終わり 有難うございます
「実行結果として30を表示するようにしたい」との問題です
@3行目、intの配列型が変数data、箱が5個
A4行目、intのsumに0を代入
B5行目、iに0を代入、iがdate.lemgthの長さより小さければfor文で回る
C5行目、data[i]=10、にsumを代入。sum=10
D6行目、sum=10 割る lengthの配列の長さ=5、なので【2】
Eforに戻ってきてiをインクリメントしてiは1になる
F今度は1<=4を評価して、2回目の「//何か」を実行
Giをインクリメントして2になる
H2<=4も成立するから実行
Idata[2]=20、sum+=20
J20/5=【4】
中略
K30/5=【6】
L40/5=【8】
M50/5=【10】
【】の中の合計=30
曖昧な点
「i=1の時、data[0]=10」だと数が合わないので
iを0にするために、data.length-1として
「i=0の時、data[0]=10」としている
Q1:この5回回った【】の中の合計は何処で足し算されてるのでしょうか 処理の順序が正しいかご教示願います
次にプログラムをコンパイル及び実行した結果として正しいものはどれか
1 class Q23 {
2 public static void main (String [ ] args ) {
3 int i = 1 , sum = 0 ;
4 while ( i ++ < = 10 ) sum + = i ;
5 System . out .print ( sum ) ;
6 }
解答、66が表示される
@intのiに1が代入
Asumは0が代入
Bwhileは〜の間
Ci=1が10より小さい間
Di=1に++、i=2
sum=0 += i=2、sum=【2】
Ei=2、
Fi=2が10より小さい間
Gi=2に++、i=3
sum=2 += i=3、sum=【5】
中略
Hsum=11 になったら終わり
sumにはiの2,3,4,5,6,7,8,9,10,11が加算され【65】になる >>284
合っていますが、
> 解答、66が表示される
ではなく「解答、65が表示される」、
> Hsum=11 になったら終わり
は 「i = 11 になったら終わり」ですね。
細かい部分をいい加減にするとあなたの理解の妨げになりますし、
読む方も書き間違えただけなのか理解できてないのか分かりにくくて面倒です。 >>283
>>277のプログラムでfor文で繰り返し実行されるのは5行目の
sum += data[i];
部分(とi++)だけです。
ここでint配列に格納されているすべての要素を順にsumに足し合わせています。
sum = sum + data[0]; // i=0の時
sum = sum + data[1];
sum = sum + data[2];
sum = sum + data[3];
sum = sum + data[4]; // i=4の時
結果、forループ終了時点でsumは150 (= 10 + 20 + 30 + 40 + 50)で、
System.out.println(150 / 5) の結果(5はdata.length)、30が表示されます。
それだけのことです。 Javaの問題集でありました。なぜ10行目でコンパイルエラーになるのが理解できていません
for(;;)のカッコの中の;;が無限ループ?になるからでしょうか
public class p28Q26 {
public static void main(String[] args) {
int i=0;
for (;;) {
if(i >= 5)
i=0;
else
i++;
}
System.out.print(i);
}
} >>285
解説有難うございます
「解答65が表示される」が正しいです。
誤字脱字申し訳ありません >>286
解説有難うございます
5行目、for ( int i = 0 ; i <= data . length -1 ; i ++ ) sum += data [ i ] ;
ここで、sumに加算されていくんですね
見てたつもりで見てなかったです。
親切に解説して下さり本当に有難うございます >>287
システムアウトの構文がメソッド内ではなく、クラスに書かれているから。 なぜ解答がfalseになるのかが分かりません
次のプログラムを粉ピル及び実行した結果として正しいものはどれか
1 public static void main(String[] args) {
2 int count = 3;
3 int limit = 2;
4 System.out.println(count <= limit);
5 }
解答:コンパイル及び実行されfalseが表示される
質問1:
eclipsでコード入力し実行すると4と表示されました
奇数はtureで偶数はfalse等の決まりがあるのでしょうか
質問2:
System.out.println(3 <= 2);
3が2よりも小さいなら・・・「小さいのでture」と考えてしまいました
何を基準にtureでfolseなのか理解できてません
何度も教えてクレクレで申し訳ありません。
宜しくお願いいたします
<m(__)m> >>291
有難うございます。
解説では
「4行目から9行目のforループからぬけることがないため、10行目に制御が移ることが出来ない
そのため、コンパイル時に10行目でコンパイルエラーとなる」
と記載されております。
以前、聞いた話では
例えば
for ( int i = 0 ; i < 10 ; i++ ) {
のiのことをループ変数と呼ぶので、そこに「 ; 」を入れるとループすると聞いた覚えがあります >>292
誤字脱字すみません
「粉ピル」でなく「コンパイル」です
誤⇒次のプログラムを粉ピル及び実行した結果として正しいものはどれか
正⇒次のプログラムをコンパイル及び実行した結果として正しいものはどれか >>292
少なくとも奇数、偶数という概念はない。 記号の意味を教えて下さい
int left = 12;
int rigth = 34
system.out.println(left > rigth ? left - rigth : rigth - left );
この「 ? 」と「 : 」はなんの記号なのでしょうか >>295
有難うございます。
エクセル出来る人が昔、言ってたような気がしたのですが勘違いですね
親切に有難うございます
<m(__)m> >>296
A ? B : C
AならB、違えばC
大きい方から小さい方を引く処理をしてる >>298
解説有難うございます
処理方法は
@left > raiget
Aleft - rigth = 12 - 34 = -22
Brigth - left = 34 - -22 = 22 >>298
アドバイスして頂いた後に問題集の解説を読み返して分かりました
「条件演算子を使った式である。条件式、left > rigth 、が成り立つ場合に、 left - rigth :が
そうでない場合はrigth - left 、が結果となる」
本当に有難うございます
<m(__)m> >>301
「スッキリわかる」は読みましたが
無限ループの「 ; 」や、「left > rigth ? left - rigth : rigth - left」は乗ってなかったです
あまりも理解力がなさすぎて困りもんです
for文が苦手です。 誤字脱字が多いとか、半角全角が混ざってるとか、不要なスペースが入ってたり必要なスペースが無かったりとか、プログラマとして致命的な欠陥
意識して直したほうがいいと思うよ >>302
あなたが質問していることは資格を取るための知識であって、Javaプログラマに必要な知識ではない。 誤字脱字多いですね。申し訳ありません
音声再生リストに入れたりして学習してる関係で不要なスペースを入れたりしてました。
どの程度知識あるか把握するのに資格は必要かと思ってました。
解説して下さった方には本当に感謝です
有難うございます。 あなうめ式Javaプログラミング超入門、2019/12/3
大津 真、田中 賢一郎、馬場 貴之
こういう本が出てるのだろ
大津真は、多言語の本を書いてる著者。
日経Linux のライターでもあるのか? eclipse で書けば、最低限の文法ミスは取れると思うのだが
それをやる気はないんですか? >>308
「スッキリわかる」や問題集を音声変換ソフトに入力して日々聞いています
eclipsに書いても、音声変換ソフトではスペース多く入れないと変な英語になったりするので
音声変換ソフトに入力しています 実際に動かしてみないのか!
畳の上の水練だな
プログラムは動いてなんぼなので
必ず動かしてみることを強くお勧めする
動かないプログラムは何の意味もない >>312
アドバイス有難うございます
実際に入力しても理解できないものがあり質問していました。
例えば
public class q18{
public static void main(String[] args) {
int count = 3;
int limit = 2;
System.out.println(count <= limit);
}
}
実行結果は「4」と出ますが
問題集の解答は「コンパイル及び実行されfalseが表示される」との事です
エクセルの関数で奇数偶数表示でfalseやtureと判断する場合があるので
Javaでもあるのか?等、質問してましたが未だに判明していないです 10進法でシフトさせる方法って無いですか?
例えば1234→12、とかってやりたいんですが… >>313
4と出るわけがないから実行するもの間違えてるよ >>314
10のn乗で割る
2桁シフトさせたいなら10の2乗の100で割る
ビット演算のシフトも意味としては同じ >>316
有難うございます。
申し訳ありません。4じゃなくて「2」でした。
以下で実行すると2と表示されます
package Study;
public class Stady03 {
public static void main(String[] args) {
int count = 3;
int limit = 2;
System.out.println(count <= limit);
}
} >>316
有難うございます
試しに「hello java」と入力しても「2」と表示されてました。
「false」と表示出来ました。
本当に有難うございます ああ、別のプログラムを動かしていて、想定外の出力がされていたということか >>322
実行する時に「Javaアプリケーション」でなく「実行の構成」から実行してました
左側でクラスを選択せず実行しなかったので、前に選択してたクラスを実行させてました。
>>316 さんがアドバイスしてくれなかったら永遠に謎めいていました
本当に有難うございます。
エクリプスの操作方法の本も購入して頑張ります。 >>317
わざわざ書いて頂きありがとうございます
こういうのもあるんですね。
本当に有難うございます。 Java全く知らない状態から約2週間でbronze合格出来て嬉しい!
シルバーまでは取ってほしいと会社に言われてるので紫本で勉強を始めたのですが
二次元配列とクラス名@ハッシュコードが出力される問題の理解が足りない・・・
何故ハッシュコードが出てくるのか・・・ >>325
前に他の言語とかの知識はありましたか? >>327
二ヵ月程Python触ってwin用のguiアプリ作ってみた位です
オブジェクト指向使わずに作ったので今見ると糞コードですが・・・
スッキリわかるjava軽く読みながらコード書いて後は白本と黒本やってれば大丈夫だと思いますよ >>325
配列の要素を順番に探すと時間がかかってしょうがないからだよ
二次元配列を使うぐらいなら RDB を使うのが一般的だとは思うけど >>325
ハッシュコードが出るのはtoStringがオーバーライドされていないからというシンプルな理由
ObjectのtoStringがそのように実装されているから、すげ替えないことには同じ結果になる
どう書くとオーバーライドが成立するのか、しないのか、という話はそこそこ難しいかもしれない >>330
アドバイスありがとうございます。
実際に書きながら確認していって理解していこうと思います。 解説してくれ方のお陰で、過去問したら89点取れました。
本当に有難うございます。
<m(__)m>
100点を連続5回取れるよう頑張ります
今後とも宜しくお願いします enum定数というのが出題されました。
「スッキリわかる」には載ってなくググってみましたが
理解力がないのでチンプンカンプンです
おススメの本とかサイトがあればご教示願います
<m(__)m> >>334
柴田望洋の『新・明解Java入門 (明解シリーズ)』
僕は望洋さんの本で勉強したなー 昔読んだ初級本を理由があって探しています
最終まとめお題が「タイピング速度訓練ゲーム」(予約語をタイプして時間を計るもの)である初級本に心当たりのある方はおられますか? >>336
アドバイス有難うございます。
アマゾンで
柴田 望洋 「解きながら学ぶJava 入門編 (日本語) 単行本 ?」
購入しようか迷ってたとこです >>336
アマゾンで
柴田 望洋 「解きながら学ぶJava 入門編 (日本語) 単行本 ?」
購入しました。 問題集の解説が理解できてません
どなたか解説お願いします<m(__)m>
1 public class Q24 {
2 public static void main(String[] args) {
3 System.out.println(args[0]);
4 }
5 }
解説
コマンドライン引数に関する問題。コマンドライン引数を指定して実行した場合、
コマンドライン引数の数と同じ要素数の配列インスタンスが生成され、指定した文字列で初期化されます。
なお、コマンドライン引数を指定しない場合でも、必ず配列インスタンスは生成されます。
この場合は、要素数0の配列インスタンスが生成されます。
設問のコード3行目では、mainメソッドの仮引数で宣言しているString配列型変数argsの添え字0を指定し、
要素の値をコンソールに出力しています。コマンドライン引数を指定していない場合は、
String配列型変数argsは要素数0の配列インスタンスへの参照を保持します。
3行目で参照している添字0、つまり1つ目の要素は存在しません。
そのためこのプログラムは、コンパイルが成功しても、実行時に例外が発生します >>340
1コマンドライン引数に関する問題。コマンドライン引数を指定して実行した場合、
2コマンドライン引数の数と同じ要素数の配列インスタンスが生成され、指定した文字列で初期化されます。
3なお、コマンドライン引数を指定しない場合でも、必ず配列インスタンスは生成されます。
4この場合は、要素数0の配列インスタンスが生成されます。
5設問のコード3行目では、mainメソッドの仮引数で宣言しているString配列型変数argsの添え字0を指定し、
6要素の値をコンソールに出力しています。コマンドライン引数を指定していない場合は、
7String配列型変数argsは要素数0の配列インスタンスへの参照を保持します。
8 3行目で参照している添字0、つまり1つ目の要素は存在しません。
9そのためこのプログラムは、コンパイルが成功しても、実行時に例外が発生します
各行に番号を振りました。どの番号の行からわからなくなったのでしょうか? >>341
本当に有難うございます。
<m(__)m>
8行目から理解できていません。
「3行目で参照している添字0、つまり1つ目の要素は存在しません。」
これは、初期化されていないからエラーになるという意味なのでしょうか
以下のコードだと0が表示される事は理解できてます。
1 public static void main(String[] args) {
2 int [] score = new int [5];
3 System.out.println(score[0]);
} CとC++を一通り教科書一冊やったところで、Javaにも手を出してみようと思うんだけど
1年くらい前にKotlinって言語が急上昇して、これがJavaの上位互換言語だみたいなことが言われてて、今からJavaやるのはありえない!みたいな意見を目にしたんだけど、実際その通りなの?
JavaもKotlinも全然分からなくて判断のしようがない >>342
初期化の問題ではありません
配列の要素数の問題です
int [] score = new int [5];
System.out.println(score[0]);
これは要素数5の配列を作って添字0の値を出力するコードです
https://light.dotup.org/uploda/light.dotup.org628898.png
引数に何も指定しなかったら要素数0の配列が作られます
要素数が0のとき添字0は存在しないです >>343
上位互換ではなく寄生(悪い意味ではない)。 mainメソッド内で入力を受け付けて、誤入力があった時に終了させたいのですが、
その際にreturn;を使っていいでしょうか? >>346
いいですよ。
でも終了コード(exit status)を指定したかったら
System.exit(int);
使うべし。
あと、そもそも意味が違うので、そのmainメソッドが他のメソッドから呼ばれる場合は
returnとSystem.exit()では動作が違うので注意ですけどね。 >>344
有難うございます。
しかし
頭が混乱してきました
もう少しまとめます >>340
Ruby の1-liner で、コマンドライン引数を、2つ渡した場合と、引数なしの場合
配列のサイズが0 の場合は、要素は存在しないため、アクセスできない。
Rubyでは、存在しない要素はnil となり、Java ではエラーになるのか?
ruby -e 'p ARGV.length, ARGV[ 0 ], ARGV[ 1 ]' あ a
#=> 2, "あ", "a"
ruby -e 'p ARGV.length, ARGV[ 0 ], ARGV[ 1 ]'
#=> 0, nil, nil >>350
One-linerを1-linerと書くのはやめないか?
「漏れ」以外にその書き方するやついないぞ >>350
そのあたりは言語のデザイン(哲学)が違う。
Javaだと存在しない配列要素へのアクセスは例外が生じる。
ex.
System.out.println(new String[]{}[0]);
-> ArrayIndexOutOfBoundsException >>343
今のところKotlinはJavaが分かってる事が前提の言語。Kotlinからもやろうと思えばできるが。 Random rand = new Random();
のように、インスタンス化の際に代入を行っている文の意味は分かるのですが、
そうでなく急にnew演算子から始まる、例えば
new Sample("samp"); // Sampleはクラス名
のような文はどう解釈すればよいでしょうか?
変数に格納されていないのですが… >>355
ありがとうございます
ブロンズやシルバーの問題集でよく見かけるんですが、
どういう場合にメリットがあるんでしょうか? 実用上のメリットはない
コンストラクタの挙動を学ぶための非日常的なコードだよ
英語の教科書を見てThis is a pen.と発言することにメリットはあるのでしょうかと真顔で問うような話だよ 一応補足しておくと、コンストラクタを含めてメソッドには副作用がある場合がある
たとえばコンストラクタの中でデータベースの値を更新したりファイル出力を行ったりもできる
そういう副作用だけが必要な場合、こういう奇妙なコードを書いてしまうことはあり得る >>357-358
そうなんですね
ありがとうございました >>359
C++の影響。newはもともとメモリの動的確保を意味している。 >>360
C++ ならば new したものは delete する作法を強要するべきで new して放置とかありえないのでは? >>361
deleteをnewの前に書いとけばいいのでは? スッキリわかるJava入門実践編第2版を読んでいて疑問に思ったことがあります。
Comparableインターフェイス
Cloneableインターフェイス
という二つのインターフェイスがあります。
この二つのインターフェイスを実装するときの書き方ですが、
以下のように書くようです:
public class A implements Comparable<A> {
}
public class B implements Cloneable {
}
なぜ、Comparableには<A>という仮型引数を書くのに、Cloneableでは書かないのでしょうか?
Cloneableには実装すべきメソッドが1つもないから仮型引数を書く場所もないからでしょうか? Comparabeが実装すべきメソッドcompareは引数として比較対象のオブジェクトをとる
その比較対象が自分自身と同じ型に限定されることを示すためにAが要る
Cloneableはメソッド自体がひとつもないマーカーインターフェースなので対照の例としては極端すぎる
Runnabeはrunメソッドがあるけど、runメソッドは型引数を必要としないので、Runnableも型引数を必要としない bronze取ってから3週間更に勉強してsilver受かった!
落ちなくて良かった 質問です
Javaにおけるダイナミックバインドとはどういうものでしょうか?
Googleで調べてもいまいちよく理解出来ません
どなたかお願いします バインディングっていくつか意味あるけど、
ここでの意味は、「メソッド呼び出しと、メソッドの中身の実行文を結びつけること」
継承したクラスでオーバーライドされたメソッド呼び出しは、プログラム実行時に動的に解決される
static や private や final なメソッドの呼び出しは、コンパイル時に静的に解決される
ざっくり目に説明すると、
動的とは、メモリ上で作用する様子
メモリって読み書き早いよね、だから動的って言う言葉使ってるんだと思う
静的とは、ハードディスク上のプログラムファイルの時点ですでに完成されてる様子
HDDって読み書き遅いよね、実行ファイルの時点ですでにメソッドコールとメソッドボディの結びつきはすでに解決してる
実行しなくても、静的に class ファイルを解析することによって、メソッドコールからメソッドボディが辿れる
動的に解決すると、実行時に余計な動作が入るので遅くなる
静的に解決すると、実行時には指定されたアドレスへ移るだけなので動作は早い
どれくらい違うかは、オーバーライドされたメソッドと、オーバーライドされてないメソッドの呼び出しを大量にやってみて比較とかかな?
ノイズなくしてメソッドコールの時間のみを計測するのはなかなか難しそう
聞いたことあるのは、インターフェース使いまくってプログラム組むとメソッドコールの解決で余計に時間かかるよってこと
どれくらい時間が変わってくるのかは俺は知らない
てか、大して変わらんのじゃないかなと勝手に思ってるけど、調べて分かったら教えて >>371
>>372
回答ありがとうございます
オーバーライドされたメソッドの動作内容は、入っている型(左辺の型)ではなく、
実体の型(右辺の型)で決まるという理解でいいですか? >>373
横からですけど、そうです。
Javaでは変数の型ではなくて、変数に格納されている実際のオブジェクトの型に基づいて呼び出すメソッドが決定されます。
このようなプログラミング言語の機能をダイナミックバインディング(動的束縛)と呼びます。
一般的にこの手の文脈での「動的に」と言うのは「(プログラムの)実行時に」と捉えれば良いです。
「静的に」と言うのは実行前、プログラムのコンパイル時(や言語によってはリンク時)に解決されるものを指します。
静的に解決されたものは実行時には(一般的には)変わりません。 >>344
ブロンズ合格できました。
有難うございます。
次はシルバー頑張ります! 合格することに何の意味も価値もない資格に1万3千円も使ったのか ここに書き込むことにも価値はないし
生きてることにも価値はないし
価値がないと思うことにも価値はない
一切は空である 楽しかったらええんや
ワイはブロンズ、シルバー、ゴールドとったで >>378はそれだけ退屈な人生で楽しみも見出せないらしいな >>379
現実問題として士業に関わる資格以外はほぼ価値がない。
詐称し放題で偽物もいるし、資格がある=実務経験、じゃないから
知っているけど使えない人も多く、基本的に信用されない。 それがないと駄目な資格以外の検定みたいなのは意味がないということですね。 資格以外の全部が同じなら資格持ってる人の方がいいじゃん そういう積み重ねが自分というブランドを構築し価値をもたらすんじゃないかな、僕は今いい事を言っている 残念だけど価値なんか0.0001_もないよ
試験代の無駄だよ 数検や英検や漢検なんかと同じで、要するに自己満足ということですね。 無いよりマシ程度
あとはやる気や積極性を少し評価できるぐらい 所属する会社の評価制度に組み込まれていたり勘案されるなら実益あるよ
そういう面ではJava試験はやや弱い 資格持ってて自己満以外でなんか良いことあったか?
それが答えだ 資格と言えば、昔々何の資格も持たずに学校でC言語教えてたことあるなあ。
あと、特に資格を持っていない一太郎を教える先生のアシスタントもしたことあるなあ。 会社によってはブロンズでも資格手当あるから受験料のもとは取れるしな 資格手当あるところはそのぶん基本給が低くされてる
元を取るんじゃなくて元々マイナスだったってだけだ 資格試験受けて落ちたら立ち直れないと思ってる臆病者だから
資格取れなくてそれを認めたくないから資格には意味がないと
言ってるんだろ、素直に資格取ろうよ 資格を持ってる人は知識があるし勇気がある
資格を取って勇者になろう 応用技術者試験に一発で合格したんだけど、アルゴリズム以外は完全に暗記科目だよね。
アルゴリズムは簡単だからパーフェクトだった。
暗記試験ではなく、ちゃんと能力を評価する検定試験ってない?
アルゴリズム検定とかあればいいのに。 >>409
レッドコーダーになったら世界中から称賛を浴びます 資格を取る人は、年に、1%ぐらい。
10年で、1割
社員の9割は、出世しない・するつもりもない人。
最新・流行を勉強しないから、絶対に売上が増えることがない人。
だから、これらの人がリストラ対象になる
長年、同じ事だけをやっていると、新しいものが出てくるから、普通に売上が減っていく。
売上を維持するには、最新・流行を勉強しないと無理
だから、勉強しない人が嫌われる。
売上が減るから ここに書き込んでいる奴で正社員が何人いるかだよな・・・ デザインパターンの勉強始めたんだけどどれも同じに見えちゃう… effectivejava買おう思うんだけど第2版でもおk? Java13 で multi line text きとるやんけ!
これずっと欲しかったやつ!
でも、内部に変数埋め込めない片手落ち機能…
なんでやねん multi-line string literalとstring interpolationは互いに独立した要素だよ
不可分なペアじゃない
恨むとすれば今回の方向性じゃなくてJavaの進化が遅いこと
multi-line自体も未だにプレビューだから正式リリースはJava15だろう こういう需要のない物を初心者に勧めて不幸にするカスっていなくならんよなぁ Eclipseを説明を読まずに何となく不満もなく使っています。
IntelliJ?とかいうIDEはおすすめでしょうか?
Robert Sedgewickさんの『Algorithms 4th Edition』のサイトではEclipseではなくIntelliJ?を勧めています。 >>420
インテリjに慣れたらeclipseにはもう戻れない IntelliJ はみんな良いって言うよね!
IntelliJ サイコーーーーー 開発現場でインテリJとかっていうIDE使ってるところはいまだかつて一度も見たことない
使われてないのにここの奴みたいに過剰に勧めてきたり自演で最高とかひたすら言ってるんだよね
つまりそういうことなんだよ https://mem-archive.com/2018/05/12/post-494/
これって他の言語でもこんな感じの実装なん?
なんか思ったのと違う値返されたって人たくさん出てきそうじゃない? >>425
お前がAndroid案件付いたことないだけだろ IntelliJ は Kotlin で使うことがあるな。趣味で俺が勝手に使ってるだけだが。
仕事では俺は Java やっておらずCやPerlをviでやるぐらいでたまーにEclipse使うが本当にたまにしか使わん。
まあ、動作させるサーバで直接Eclipse動かして画面だけ飛ばせばコンパイルしてデバッグも楽なんだろうがクライアントからリモートデバッグさせるのはできないし(俺がやり方知らんだけのような気もするが)面倒そうなのでほとんど使ってない。 あ、でも、WSL使えばもうちょっと楽になるのかな? インテリアJ
Netビーズ
この二つは使ってる現場全くないから触るだけ時間の無駄だからやめとけ
勧めてる奴はただのステマ馬鹿だから >>432
君はどういう現場を何ヵ所ぐらい巡った事あるの? 基幹、金融(銀行、為替)、携帯ゲーム、スマホアプリ
10年以上
もちろん全部エクリプソだ
おまえらゴミが趣味でやるプリョグラミングとは全然ちがうよ かといって一人の人間が体験できる事には限りがある。
全ての現場を同時には体験できないからアンケートを取ったりしない限りは全体の現状はわからない。
自分の体験からだけではなくそういったアンケートの結果もないと信憑性は低いまま「へー。君はそういう体験をしたんだ」で終わる話になる。 うちの親戚みんなヘビースモーカーだったけど長生きしたぞ!だからタバコが身体に悪いなんて嘘!みたいな話だな
その経歴ならスマホアプリが盛った部分でないとしても案件少ないだろうし とりあえず上のレス2つはもう少しまともな文章書けるようになったほうがいい
誇張でもなんでもなしに何言ってるか全然わからんから そういや俺の曾祖父は96で死ぬまで煙草吸ってたらしい。 >>439
君の読解力が足りないだけ。
自分がこう感じた、自分がこう体験した、といった自分に起きたことを絶対視して世界中どこでも誰でもそうであると結論するのは大変間抜けな上に危険だ。 破綻した文章書いてる奴が相手に読解力ないとか言っても1_も説得力ないし
ただの馬鹿の逃げ口上
ビジネスではお前みたいな意味不明な屁理屈と破綻した文章は通用しない
相手が客ならただ無言で使えない奴認定されて干されるだけ
一つ勉強になったなアホ どこが意味わからなくてどう破綻してるのか言ってみれば?
言えなければそれこそ説得力無いし どうでもいいわ
なんでお前らすぐ煽りあいはじめるんだよ、不毛すぎるだろ >どこが意味わからなくてどう破綻してるのか言ってみれば
大人は質問には答えてくれない
ワイは君たちの添削先生じゃないんでな 質問です。
コンストラクタのアクセス修飾子は、メソッドのアクセス修飾子と同じですか? >>451
ありがとうございます。
さらにもう1つお聞きしたいです。
これは>>451さん宛てに限らずなんですが、
コンストラクタにおけるアクセス修飾子の存在意義って何ですか?
自動的に動くのに、範囲を狭めたり広げたりするのってどういう場合でしょうか? >>452
public class Hoge {
private Hoge() {
}
}
のようなクラスの動作と使い方を考えてみたら良いです。
あと、コンストラクタは自動的に動くわけではないですよ。 メソッドはスコープ外だと呼び出せない
コンストラクタはスコープ外だとnewできない Singleton とかは、コンストラクタを private にします!!
なぜなら、インスタンスを1つだけにしたいから、クラス外で new されたら困っちゃうからです!! 質問です。
機能ごとにクラスを分けているのですが、
普通にクラスをインスタンス化して作る場合と、
static なメソッドを作る場合があると思います。
これらはどのように使い分けるべきでしょうか?
staticが静的なフィールドにアクセスするのは分かりますが、
ただそれだけの違いなんですかね
newせずに使えるので、メモリ的に極力staticで作るべきですか?
staticなメソッド内でもnewできるし、特に困らないのですが
sdkではよく使い分けられているので、違いが気になります。 >>458
static にするのは、クラスの状態に依存しないユーティリティなメソッドだけ
クラスの状態に依存する場合は全部インスタンスメソッド
メソッド内でも new できるし特に困らないと言うのは、ちょっと何言ってるかわかんないっす
状態に依存しないメソッドで、そんなことする意味がない わいからも質問です!!
Primitive Value を、
スレッドAで書き込む+読み込む
スレッドBで読み込むだけ
この場合で、volatile だけでは同期化不十分なケースはありますか?
存在するなら教えてクレメンス!です!
…
自分で調べました!!!
答えは知ってます!
でも、他の人の意見も聞きたいので、自分の答えはしばらく内緒にしておきます! 完全にstaticなメソッドしかないクラスの使いどころの話と
混在するクラスでのstaticメソッドの使いどころの話で議論が変わってくる
後者は意味的にクラスそのものの振る舞いを定義するときに使う
実用的には定数と、ファクトリーメソッドであるgetInstance系に使うと思っていればいい
前者はSDKでは意外と数が少ない
SystemやVoidのような概念として単一で不変のもの
MathやCollectionsのような独立性の高いメソッドを緩いカテゴライズでまとめたもの
メモリ節約しつつ多態性が欲しいならシングルトンという手もある 一見状態を持たなそうなクラスだからといって安易にstaticばかりにするのは気を付けた方がいい
状態や前提を毎回引数で与える設計もできるのでオブジェクト志向から逸脱したコードが増えがちになる 複数の変数を書き換えるのをアトミックにやりたい
それはvolatileでは無理ですよって読み取ったのだけどあってるかな? >>469
まあまあ、こういうの頭の体操みたいで楽しいじゃん リンク先の本持ってるけど、日本語にするとこんな感じ
質問の条件は 1.は満たすが、2〜3を満たすかどうかは言われていない
2.の不変項は、 例にある、startTime < endTime が常に成り立つようなケースを言ってる
■ volatile 変数を使って良い条件
1.その変数への書き込みが変数の現在値に依存しない、または1つのスレッドだけが値を更新する
2.その変数が他のステート変数とともに不変項に関与していない
3.その変数がアクセスされるとき、ほかの理由でロックが必要とされない
…自分の言葉で書き直そうと思ったが、全く同じこと繰り返してるだけなのに気づいてやめた
まぁあれだね、スタート/エンドフラグ以外に volatile 使うのはやめたほうが良さげって話ね といいつつ、自分は、UI のコンフィグ的なやつを全部 volatile にしてぶっこんでるんだけどね…
UIスレッド以外の、DBやらProperty ファイルから読み込みたいから同期化はしないといかん(でも、synchronized めんどい)
あくまでアプリの設定値みたいなやつで、とりあえず自身の現在値に依存した書き込みや、他の変数と条件作るような値はなかったけど…
あんまり良くはないんだろうね 独り言で荒らすなゴミ
ブログにでも書いてろキチガイ MutexやReentrantLockを使っているところを、ReadWriteLock(Atomic***などを含む)で置き換えられるか?
と考えることはあっても、volatileにするかどうかはまず考えないだろう。 長文のString を返すだけのメソッドが大量にあるクラスって、コードキャッシュ領域に大量のメモリ確保しますか?
それとも、各メソッドが呼ばれた時に、DB からのロードのようにオンデマンドでメモリ確保しますか? 長文のString を返すだけのメソッドが大量にあるクラスって、(クラスがロードされた時点で)コードキャッシュ領域に大量のメモリ確保しますか?
それとも、各メソッドが呼ばれた時に、DB からのロードのようにオンデマンドでメモリ確保しますか?
括弧内書き忘れました ググれカス
コードキャッシュ領域ってなんだよ
まずJVMのクラスローダーの仕組みから調べて出直せ
回答見てても基本的知識ない奴等しかおらんから間違った回答しまくってるし
おまえらはもう全員回答するな
100万回ググれカス >>479
答える気がないなら黙ってろよ
お前はクソの役にも立ってない クラスローダってバイトコード読んでクラスをロードするから、
その読まれたバイトコードの機械語に相当する部分がJVMヒープ外のコードキャッシュ領域に保持されるって認識だったんだけど違ってるんかな
フィールド値の String は、ヒープの中の String Constant Pool って領域があってそこに確保されてる(String.intern() とかで確認できる)
というのはとりあえず基本的なこととして
メソッドの中のローカル変数の String は、メソッドがコールスタックに存在する時は当然JVMスタックに存在してるだろうけど、
メソッドがコールスタックにない時は、どうなってるのかなと
呼ばれた時に割り当てられるのか、クラスがロードされてれば呼ばれてないときもメモリが確保されてるのか
あと、すまんが例の人はすぐNGにするからそっちにレスしても見えんかも コールスタックに存在するときも、ローカルだろうが文字列リテラルの中身は、JVMスタックじゃなく、多分JVMヒープか(String 内のプール)
とりあえず、コールスタックにない時どうなってるのかという疑問はそのまままだあります コードキャッシュ領域なんて言葉はない
あと知識が滅茶苦茶&ぐちゃぐちゃでクラスローダーの基本的な動作以前に
メモリ領域の区別も理解できてない
調べた事を適当に解釈するんじゃなくて
一つ一つ整理することを覚えろ
もう1回だけアドバイスしてやる
グ グ レ 糞 ボ ケ カ ス ぐぐれかすで済まされてしまうと
そもそもこのスレはいらないことになってしまう それな
Java初心者のためのスレッドですと最初に宣言されてる
イライラの撒き散らちしの方が多くなってるならこのスレを見ないのが賢明 >>482,483
大雑把に言うと、
(メソッド中に散らばっているようなものを含めて)ソースコード上でStringリテラルとして記述されている文字列は、
コンパイル時にclassファイルのコンスタントプールにまとめられて、
classロード時に(JVMヒープ上の)実行時コンスタントプールにロードされます。
この辺きちんと理解したいなら、ググるんじゃなくてJVMS読めばいいです。ちゃんと書いてあります。
(ところでこれ、入門・初心者の質問?) にわか知識からくる質問だから初心者レベルなのは間違いない
あと説明不足な上に回答不十分
自分の中で咀嚼できないなら回答レスはしないほうがいい >>489
ありがとうございます
ということは、ローカルのStringリテラルもクラスロードした時点でメモリにはずっと載ってるイメージですかね
やっぱり長文はしっかり管理するなら外部ファイルから読んだ方が良さそうですね 全然説明になってないからこんな風に全く理解してないんだよね
こうやって勝手に解釈して間違った知識を自分の脳に植え付けるってことを繰り返しちゃうんだよ
にわかども逝ってよし
激しく自演臭いけど 自分では答えもせず回答者にケチをつけるだけのイライラ君 ごめんなさい、読み返してみたら>>489はいい加減すぎますね。
> classロード時に(JVMヒープ上の)実行時コンスタントプールにロードされます。
は
(classファイルのコンスタントプールの文字列は)
> classロード時に(存在してなければ)Stringのインスタンスとして(ヒープ上に)ロードされ
> そのStringインスタンスへの参照がクラスの実行時コンスタントプールに保持されます。
と書くべきでした。長いけど。 >>491
ソースコード上のStringリテラル由来の文字列(Stringのインスタンス)はクラスに紐付いているので、
クラスがアンロードされない限りヒープ上に確保され続けるのはその通りです。
ただ、「メモリを節約するために」文字列を外部化する、というのは一般的にはおすすめできません。
(もちろん、国際化対応などを考えると意味が無いわけではありませんが)
一応初心者スレなので、
他の方が「文字列って無駄にメモリを消費してるんだ」などと思い込んでほしくはないので、
念の為に書いておきます。 >>495
詳しくありがとうございます
> ただ、「メモリを節約するために」文字列を外部化する、というのは一般的にはおすすめできません。
これは、UIやグラフィクスのメモリ消費に対して、文字列の消費するメモリが大した量でないという意味でしょうか?
Java の String はヒープ中では UTF-16 ですから、基本的には1文字 2byte、100文字200byte くらい、
ヘルプメッセージとかエラーメッセージとか、100文字1000個くらいあったら、20MB くらいですか
もちろん、クラスが使われなくなったらアンロードもされるかもしれないですが(アンロードの周期などの実装仕様は詳しく知らないです)
---
ちなみに上記の文字数が294文字でした ググレカス
少しは質問する前に自分で試すかググったらどうだ?ん?
幼稚園児かお前は?ん? クラスローダーの超基本的な動作すらわかってない奴等同士でレスつけてるから
間違ったことを延々とレス合ってるのが滑稽すぎて楽しいねw
なんだよクラスのアンロードってw
ggrks SwingWorkerクラスを繰り返し使うと10個デーモンスレッドができるんですけど、なんで1個だけじゃないんですか?
インスタンスを破棄するのを忘れているせいでしょうか?でも10回以上実行しても10個以上になりません。 >>503
内部的に ExecutorService 使ってるから、何個も同時にexecute すれば、スレッドは1個じゃないよん!
System.out.println(Thread.currentThread().getName());
で通し番号的なの見れるから、確認したいならおすすめだよん!! new ThreadPoolExecutor(MAX_WORKER_THREADS, MAX_WORKER_THREADS,
10L, TimeUnit.MINUTES,
new LinkedBlockingQueue<Runnable>(),
threadFactory);
この部分が SwingWorker の ExecutorService 実装の部分だよ!
スレッドプールを使ってて、10個のスレッドをプールして使うようになってるね!!
すぐ終了する Worker 走らせても、スレッドプールは次のタスクに備えるために、スレッドを10個まで残しておくよ! クラスのアンロードとか言ってるアホは回答側にまわってはいけない
回答したくても自重するように と思ったら質問厨のアホか
君の回答は全部間違ってるので絶対に回答側にまわってはいけない
今後質問もしてはいけない
ググって勉強 そもそもだな
初心者と初心者未満がマルチスレッドプログラミングをしてはいけない ハロワの求職者支援訓練に40代向けのJava講座あるんだけどプログラミングっておっさんでも始められるもんなん? プログラミングを始めるだけなら簡単
IT企業への就職の方がよっぽど難しい >>512
IT業務は人手不足って聞いたけどそれでも高齢だと就職難しい? >>514
そうですか、挑戦してみてもいいですかね。ありがとうございます >>515
挑戦した方がいいと思うよ
待遇とかは自分の価値観で評価するものだから >>516
なるほど。そうですよね。一度やってみます >>506
ありがとうございます。正常な動作なんですね。安心しました。 >>491
https://www.baeldung.com/java-string-pool#strings-allocated-using-the-constructor
回答間違いっぽくない?
Java7 以前は、StringリテラルがGCされることはなかったけど、
それ以降は、String リテラルは参照がなくなったらGCされる
あと、Java9 以降は、ヒープ上の文字コードもUTF-16だけじゃなくなってるね
一個適当な String リテラル使う Java のプログラム走らせて、参照消したあと System.gc() する
別のプログラムから、JNA経由とかで Kernel32の ReadProcessMemory で Java のメモリ読んで文字列の有無を確認
とかも面白そう
チートエンジンとかでも出来るんかな あと、クラスのアンロードは、クラスローダの参照とインスタンスへの参照が全部なくならないとアンロードされない
システムクラスローダとかからロードしてるクラスの場合、一度読んだクラスはアンロードされない >>521
クラスがロードされる時に(classファイルの)コンスタントプールから(既存でなければ)生成されるStringインスタンスは、
クラスがそのStringインスタンスへの参照を(実行時コンスタントプールに)保持しているので、
そのクラスが生存している(アンロードされない)限り、
GCで回収の対象にはなりません。
(回収されてしまったら大変) >>524
https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-3.html#jvms-3.4
> Data of types int, long, float, and double, as well as references to instances of class String, are managed using the ldc, ldc_w, and ldc2_w instructions.
[references to instance of class String] って書いてあるし、実体はそこに無いんじゃないの?
String pool の色んな説明見ても、String literal はGCされるって結論づけられてるのがほとんど
Run-time Constant Pool の説明見ても、単なる Symbol Table で、メモリ上の実体がそこにあるわけじゃないように思うんだけど あぁごめん、参照で持ってるからこそプール上の String がGCされないって言ってるのか https://stackoverflow.com/a/2433076
このコード実行してみて、System.gc() をコメントアウトしたときと比べてみると、やっぱり String Literal って GC されてるんじゃない?
new String してるんだけど、intern してるから、プール上の String が GC されてる証拠って言えるよねこれ なんどもすまん、でも、リテラルで持ってるわけじゃないのかこのプログラム
new String のところを、new String("fkasdjf;lsdkjfasdljfdlkfjadsfjsad;kljfadjfkdas;")
とかってすると、System.gc しても結局全部同じ値返したわ
ということは、ソースコードにリテラル直接書き込むと、クラス自体がアンロードされない限りやっぱりプールにずっと残るんか
うーん、もうちょっといろいろ試してみよう… >>526
そうです。
>>489が雑すぎました、すみません。
StringリテラルがStringインスタンスとしてロードされるのは自明じゃろ、
からの雑な省略でいい加減過ぎました。
>>527
すみません、乗りかかった舟なので。
でもスレを見返してもらえばわかるようにこんな話題は典型的じゃないですよ。 基本がわかってないからゴミみたいな駄レスでスレを消費するアホども
いまだにクラスのアンロードとか言ってるしw
スレを荒らすなゴミども
SNSでやれゴミ >>529
「Stringリテラル」ってのはその
"fkasdjf;lsdkjfasdljfdlkfjadsfjsad;kljfadjfkdas;"
の部分です。
>>528はStringリテラルを持たずにStringインスタンスを生成してintern()して、
intern()されたStringインスタンス(Stringプール入り)でもガベコレされるねっていう例でしょう。
>>529の様にStringリテラルをベースにStringインスタンスをnewすると、
同じ文字列のStringインスタンス(ロード時にintern()されてStringプールに確保されている)がすでに存在するので、
新しいStringインスタンスをintern()した結果はStringリテラルからのインスタンスが返されます。
Stringリテラルのインスタンスはクラスが参照を保持しているのでGCで回収されないので、
何回
new String("fkasdjf;lsdkjfasdljfdlkfjadsfjsad;kljfadjfkdas;").intern()
しても同じインスタンスが得られます。 >>532
なるほどです
すみません、同じことを言い直させてしまいましたね
カスタムクラスローダ作って、参照を消してクラスをアンロードするってのが
コード中の文字列リテラルをGCさせられる唯一の方法ってことになるんですかね
ヒアドキュメントがJavaにもそのうち来ますし、
この辺ちょっと気になってたので詳しく調べられて良かったです
ありがとうございました 3行で説明できることをよくまぁここまでゴミレスの長文合戦できるもんだな
そして最後まで何も理解してないっていう
こんな奴等に正解を教えてやったところで何も成長しないだろう
ほんと酷いね >>537
ま、いいってことよ
今度から気をつけろよ
特に仕事を請けるときはこういう言葉の罠に気をつけな 何文字になっても良いから3行で説明してみろよ、おん? >>527
ここはプログラム板で素人がどうこう言うところではない。 >>527
40代から始めても資格を取ったり意欲的なことしないと誰も相手はしないよ。
あとは経歴の偽装を強要されてどこかの現場に押し込まれる。 メモリ領域の区別、classファイル、実態
クラスローダーがこれらをどういう風に割り当てるかっていう基本的なことを理解してれば
上のような意味不明で何も理解してない疑問は出てこないんだよね
何も理解してないのに理解したつもりになってわからないことを背伸びして知ろうとするから
アホみたいな駄文の応酬を繰り広げる
ググれカス
何回も言わせるな 未経験からの新人研修中で上司にいびられてストレス発散ってところか多分
自分が言われたことをそのままスレでリピートしてる
クラスのアンロードも知らんようだし、基本的なことも理解してなさそう 自分の馬鹿を棚に上げて妄想に逃げるのは勝手だが
間違ったレスを延々と繰り返してスレを荒らすなゴミ
あとクラスのアンロードなんていうものはないアホ
どこでこんな間違った知識拾って来たのか知らんけど 完全に理解した人の説明が見てみたいです
(どうせ無理だろうけど) それはGCがクラスを破棄する可能性を示唆することを説明しただけであって
ブートストラップクラスローダーはアンロードしないことを説明してんだよ
自分で貼ったリンクも理解せずにドヤ顔で貼ってどんだけ馬鹿なんだお前
アホ 理解してないのに理解したつもり
英語読めないのに英語のドキュメントを貼る
プログラムの勉強始めたばかりの中学生だろうけど
ここはガキの遊び場じゃないからSNSでやれ
アホ >>550
これは恥ずかしい
>>500,507,545で概念自体が存在しないかのような口振りだったのにいざソースを出されると苦しすぎる言い訳だな 何言ってんだコイツ?ガチもんの池沼か?
クラスのアンロードなんてねーからキチガイ
こういう風に単語の断片だけ拾って
クラスローダーがさもクラスをアンロードするかのように嘘の説明をして
初心者未満同士で駄文をまき散らしてスレを荒らす
君たちのような池沼用にツイッターとかあるんだからそっちでやろうな 仕様に思いっきりそのままの言葉で載ってるものを存在しないよばわり
さすがに言い訳が見苦しすぎる
3連投とかどんだけ悔しかったんだよ お前が見苦しすぎてこっちがこっぱずかしいわキチガイ
おまえが取り上げてるのは単語だけだアホ
今まで散々間違った説明したあげく自分で何も理解してないリンク貼って
今度は開き直ってるし
ここはおまえのようなキチガイが居て良い場所ではない
何回でも言うが「クラスのアンロードなんてものはない」
即刻立ち去れゴミ どっちの言い分が正しいのか?
http://www.nminoru.jp/~nminoru/java/class_unloading.html そもそも間違い指摘してやって開き直るとか
どんだけキチガイなんだこいつ
そんでゴミ同士で間違ったレスの応酬ずっとしてんのなw
逝って良し
アホ 連続レスも、返信ないのに1時間、2時間と時間空いててどんだけイライラしてるか伝わってくるようだな
その上批判的なレスがあったら即レス
他にすること無いんかお前、さすがにもう少し時間有意義に使った方がいいぞ イライラがどうとか言い訳とか話題逸らしして逃げるのは勝手だけど
だらだらと負け犬の遠吠えのごとく駄文レスつけてないで
自分の頭の悪さがわかったらとっととSNSにでも帰れよキチガイ初心者未満は > GCがクラスを破棄する可能性
それがクラスのアンロードそのものでは
仕様にもそう書いてある
それを存在しないって言っといてブートストラップクラスローダはアンロードしないとか無理筋すぎる 可能性の話だし永続領域に読込まれたクラスが破棄されるなんてことがあったら
javaプログラム自体が破綻する
つまりアンロードなんてない
そんなことも理解してないのにさもクラスがアンロードされるみたいな風に書いてるから馬鹿にされるんだよ
何回同じレスさせるんだろうこのチンパン君は 間違いを指摘してやって〜とか言ってるけど、この人わめき散らすだけで何一つ技術的な指摘はしてないよね
唯一したのが、「クラスのアンロードなんていうものはない」という間違った指摘
技術的な話なしで煽ってるだけなのに知識の浅さ露呈するとか天才かよ っつーかおまえ自分で貼ったリンク読めないのに何言ってんの感じなんだけど
モンスター初心者にもほどがあるわ
アンロードしないっておもいっきり書いてんだよアホ
英語読めないのにカッコつけて「仕様に書いてる!(キリッ」 じゃねーよアホ
頭逝かれてすぎだろキチガイ 傍観してたけど、この人って前からずっとスレにいるの?
ググれカスさんが居座るようならさすがに誰にとっても得がないので、ワッチョイかIPスレ建てるしかないのでは やんわりと間違い指摘してやっても逆ギレして噛みついてくるんだからどうしようもないやん
さらには間違いを間違いと認めずこっちが間違ってるかのようなレスつけて
言い訳がーとかイライラガーとか言ってくるんだから手に負えない
自分で持ち出したリンクの中身すら読んでないまたは読めない
もう病気だと思うけどねこの手の初心者は なんでこう基本すらわかってない奴が背伸びして
全く理解できないドキュメント読んだり引っ張ってくるかね
頭大丈夫? こういうプライドだけ異様に高くて、自分の間違いを絶対認めないやつって仕事でマジで使えない
まともに仕事できてたら一日中スレにはりついて顔真っ赤にしてないだろうけど 言葉尻捕まえて「間違いを認めないキチガイ!(ムキッー」 論法は
小学校までしか通用しないからとっとと消えろゴミ
ガキみたいな己の気分で善意の指摘すら受け入れられないなら
こういうスレを使うなよ精子年齢小学生君 初心者相手にならイキれると思ってる中級者未満のヤツを怒涛の袋叩きで成敗するお前ら好き 最初は「クラスのアンロード!」って騒いでたのに
今じゃ完全に人格攻撃にシフトしてるところ見ると
クラスのアンロードなんてないことがやっと理解できたのかな
まともな奴なら開き直る前に「ありがとうございました」って言うもんだけどね
馬鹿同士では間違ったレスし合いながら「そうなんですね!(キリッ」とかマヌケなやりとりしてるくせにw
最初NGだなんだ言ってたくせに図星突かれて人格攻撃するしかなくなったんだろうけど
アホ ほんと開き直りと人格攻撃はまさにチョンそのものだな
まぁどうせ在日だろうけど めっちゃスレ伸びてると思ったらこれはひどい
元のアンロードに関する言い分も滅茶苦茶だし、人格攻撃批判した直後に程度の低い人種差別発言とか笑えないよ
そもそもゴミだのカスだのお前が言いまくってたからこういう流れになったのが分からんのか お前が滅茶苦茶だよキチガイw
アンロードっていう題目ついてる英語のドキュメント持ってくれば論破できると思ったのか?w
英語も読めねーくせに背伸びしてこっぱずかしいったらありゃしない
アンロードがあるならどういうタイミングでアンロードされるか正確に言ってみ?ん?
どうした?ほれ?
もう言い返す材料ないからどうせまた人格攻撃だろ?w
アホ どっちの言い分が正しいのか?
http://www.nminoru.jp/~nminoru/java/class_unloading.html そこのリンクにも日本でちゃんと正解書いとるやんw
>またブーストラップクラスローダーは Java VM が存在する限り消滅することはない。
>そのためブーストラップクラスローダーによって読み込まれたクラスは決してアンロードされない。
馬鹿でも日本語なら読めるだろ?ん? >>575
話が噛み合ってないだけだよ
議論を整理しよう
君はどういう考えかな? 3行で説明してみろ、おん? 日本語すら理解できない文盲はとりあえず帰れ
当事者はダンマリかもう人格攻撃以外してこないと思うけど >>522 にも、>>576 のリンクにも、そして仕様にも、クラスのアンロードの条件は書いてある
それ以外に何が必要なのか全く理解できない
ブートストラップクラスローダがアンロードしないからなんなんだ
だからって仕様に書いてあるクラスのアンロードがなくなるわけでもないし、
実際に多くのフレームワークはクラスローダを多数持ってて、アンロードも行えるようになってる
例えば OSGi では bundle を uninstall する際にクラスローダの参照消してる
Java class unload で検索すれば山程例も出てくるのに、いつまでお前はその苦しい主張を続ける気なんだ 3行でまとめられないなんて、なんて頭がわるいんでしょう(驚) しつこいキチガイだね
今度はフレームワークのクラスローダーかw
アホ
今までの流れ読めるか?ん?キチガイ
またおまえの馬鹿レスに対して突っ込み必要か?ん?
どうだ?
糞アホ 馬鹿「自前でクラスローダー作った!これはクラスのアンロードもできる!」
お前の言ってることはこれと同じなんだよね
フレームワークに話逸らせば論破できると思ったアホなんだろうけどw
アホ 技術的な反論が出来なくてキチガイ、アホ、馬鹿を繰り返すだけ
人には激しく攻撃的なくせに自分が人格攻撃されたら喚く
3行で説明できると豪語しておきながら、一切する気配なし
これまでずっと人の回答にケチつけるだけで、何がどう具体的に違っているのかを一切書かない
自分が間違えても間違いは一切認めない
先生、診断をお願いします >ブートストラップクラスローダがアンロードしないからなんなんだ
これだけでこいつが馬鹿丸出しっていうことも自分で理解してないんだよね
今までのレスの流れとブートストラップクラスローダーが何を読み込んでるのか理解してれば
このアホレスといきなりフレームワークのクラスローダーに話がぶっ飛ぶことなんてないんだから
いい加減馬鹿は消えてくれないか?さすがに中身0の馬鹿の相手するも疲れてきたからさ
アホ 絶対的な正解を教えないのはこういう馬鹿を炙り出すためでもあるんだよね
基本が全く理解できてないから少し濁せば意味不明な反論しだすから面白いし
アホ >>585
この業界病んでる人多いけど、こいつは本気で病院行ったほうが良いと思う
こんなところで、中身のないあおり文句言い続けるのはやめとけ
寂しかったり苦しかったりしたら、迷惑かける撒き散らし方せずに、ちゃんと周りの人間に相談しろ
人格攻撃とかじゃないよ、ちゃんとしとけ
技術的な内容のある話するならまだいいが、中身0で暴言だけ吐かれても、回答者も質問者もただただ不快になるだけ 文盲と人格攻撃はもう飽きたからいいよ
あと1時間以内にちゃんとした反論できなければ俺の勝ちな
まぁ元々クラスのアンロードなんてないから上のアホみたいに
屁理屈以外では反論のしようがないんだけどな
明日までに己がなんでここまで理解力がない馬鹿なのかをじっくり考えてこい
アホ >>588
親身で草だけど、そういう正論が通じないからこその病気なんだ 別にお得意のNG宣言してスルーでも良かったんだぞ?
馬鹿にされて火病起こしちゃって後に引けなくなっただけだろうけど 俺は別にID変えて人格攻撃とか自演とか一切しないしね
単発IDしかいないのも小物すぎて笑えるけどw
必死に集団で批判してるように見せたいんだろうけどw
アホの心理って全てが透けて見えるんだよね
すぐ人格攻撃に走るような性根の腐ったガキみたいなメンタルだから何一つ理解できないんだよ
アホ こんなスレで日付変わってから速攻でID真っ赤にするようなやつお前くらいしかいいないってだけだろ
どこの荒らしもそうだけど必ず自演がどうのとか言い出すよな防衛機制なのかただの病気なのか 流れまとめるとこんな感じか
・英語のドキュメント持ってきて 「アンロードって書いてる!(キリッ」
→実際はクラスローダーがアンロードするなんてことは全く書いてない
・「言い訳するな!(ムキッー」
→言い訳じゃないことを丁寧に説明
・ドキュメント引っ張ってきた本人は消えて単発で大量に人格攻撃する者が現れる
→人格攻撃を丁寧に諭す
・別の単発が全く関係のないフレームワークのクラスローダーガーとか詭弁を言い出す
→丁寧に屁理屈であることを教える
・また単発で人格攻撃が始まる
今日はちゃんと薬飲んで寝ろよキチガイ君 真っ赤君は
・過去に誰かに言われた言葉を今発散しようとぶつけてる
・自分の発言がブーメランになってる(自己投影)
ってネタをやってるんかな IT業界ってバカみたいなプログラム書いてたら怒られるん? 「〇〇に言われたことを言っている!(キリッ」 とか
「ブーメラン!(キリッ」 「自己投影(キリッ」 とか好きだねぇアホは
単純に何もわかってない馬鹿だから指摘してやってるのに
そんなに指摘されたことが誰かの受け売りに見えるほど難しいのかね馬鹿的には
それとも図星過ぎて妄想しないとやってられない的な?ん?そうなんか?
もうアンロードなんてないってことで解決したんだから
礼の一つも言えないならおとなしく消えろよゴミ
負け犬の遠吠えのごとくグダグダグダグダと気色悪いね
アホ CheatEngine 使ってメモリ検索してみました
ローカルにString リテラルを宣言してスリープするだけのプログラムで、若いアドレスに3つ、比較的後ろの方のアドレスに2つ その文字列がヒットします
なぜメモリに5つ文字列出来上がるのか分かりません
若いアドレスの3つは多分ヒープで、gc すると1つだけ残って2つ消える
String を new するだけなんですが、途中過程でヒープに2個ゴミが出来るんでしょうか
後ろの方のアドレスの2つは、コード中に文字列リテラルを書かなければ出来ない(char 配列から new String した場合は出来ない)
こっちも gc すると 1つ になります
Run-time Constant Pool には参照しか保持されてないとすると、これは何でしょう?
まとめますと、
String リテラルを宣言すると、gc後、「ヒープ」と「ヒープとは別の場所」に1個ずつ文字列のメモリ実体がある
char配列から new String すると、gc後、「ヒープ」に1個だけメモリ実体がある
リテラルで書くとヒープ(String内のプール)とは別の場所にもう一個メモリ実体ができるようですが、これは何でしょうか…? ---A---
{
String literal = "JavaNyuumon"
}
---B---
{
char[] chars = new char[] {'J', 'a', 'v', 'a', 'N', 'y', 'u', 'u', 'm', 'o', 'n'};
String litral = new String(chars);
}
---
この後スリープするだけのプログラムです(sleep に gc 挟んで試したり試さなかったり) >>600
GC前にヒープにいくつも文字列の実体がある原因はわかりました
new String の中で、文字コードの変換のため、配列をコピーしてたりしたので、それが反映されたんだと思います
どの公開されてるコンストラクタを読んでもダメそうだったので、パッケージプライベートなコンストラクタをリフレクションで呼んだら、
GCしなくても、ヒープ上の文字列は1つになりました
var con = String.class.getDeclaredConstructor(byte[].class, byte.class);
con.setAccessible(true);
return con.newInstance(chars, (byte)0);
リテラルを宣言した時に後ろの方のアドレスに出てくる文字列に関してですが、周辺のアドレスのバイナリ列を覗いてみると、.
class ファイルをバイナリエディタで覗いた時と似ていました(完全に同じではない)
Run-time Constant Pool に String のメモリ実体が存在してるようにも思えるんですが、
そのアドレスが本当に Run-time Constant Pool なのかどうかは定かではなく、詳しくはわかりません あのなぁ
ここはおめーの日記帳じゃねーの
ブツブツどうでもいいくだらないことはチラシの裏かバカッターでやってろよ やってることも滅茶苦茶だしホントキチガイだなコイツ
バイナリエディタでクラスファイル見るとか
とにかく背伸びして適当なことをぐちゃぐちゃやってみて
そのアホみたいなことをここに書き込むのやめろアホ
見ててホント香ばしすぎる とにかく基本を全然理解してないのに
こういうアホみたいなオナニー試行レスつけて荒らすのやめろ
エントリポイントすら理解してないのに 「このアドレスはー定かではありません!(キリッ」 とか
この前のアンロードといい、なんなんおまえ?学習能力0か?ん? >>603
正直良くわかりませんが、リテラルで記述すると後ろの方に残るというのはファイルのバッファかもしれません。
クラスを読み込む時にはruntimeのネイティブ層(C/C++等で書かれている所)でクラスファイルの内容をメモリに読み込んでから色々行うわけですけど、
バッファをフリーしても0埋めされるわけではないのでそれが残って見えているのかもしれません。
ものすごいいい加減な憶測ですけど。 ここまでアホだと逆に面白いねw
一行で回答教えてやってるのにそれすらもスルーしてまた茶番始めるとかw
まぁ自演だろうけどさw >>608
ありがとうございます
自分もそれは考えたんですけど、CheatEngine 以外でもJNA経由でメモリ読んでみてて、MEM_COMMIT 属性はつけて検索してるんですよね
バッファをフリーした時点で、おそらく MEM_COMMIT 属性って外れて検索対象から外れるんじゃないかと思うんですが違うんでしょうか
System.gc() を何度しても消えないことから、Javaコード内で参照が消えたバッファとも考えにくいですし
後、荒らしに反応するのもあれだけど、エントリポイントってのはコード領域、 .text セクションの話で
今言ってる Run-time Constant Pool ってのは、JVMヒープかネイティブヒープか、そうじゃなくてもコード領域には絶対ない
エントリポイントからのオペコードから Run-time Constant Pool のアドレス領域割り出せるスーパーハカーなら弟子にしてほしいくらい 小学生しか使わないチートエンジンなんか使っておいて何言ってんだこの馬鹿w
自分でエントリポイントすら特定できないうえに一人でずっと勘違いして関係ないことやってるアホのくせにw
あと自分で理解できない単語を一生懸命並べて背伸びしたつもりになる癖にやめたら?w
滑稽すぎて腹痛いんだけどw >エントリポイントってのはコード領域、 .text セクションの話で
全然違うけど?ん?頭大丈夫か?
>Run-time Constant Pool ってのは、JVMヒープかネイティブヒープか、そうじゃなくてもコード領域には絶対ない
支離滅裂。日本語の文章書けるか?ん?
>エントリポイントからのオペコードから Run-time Constant Pool のアドレス領域割り出せる
言ってること滅茶苦茶。完全意味不明
このキチガイ論法で何を言いたいの?w
脳に何か障害でもある? 自演でやってんだろうけど
何も理解してない奴等同士で一生懸命 「○○かもしれませんね!(キリッ」」 とかやってるのがホント面白いw
で、回答教えてくれる奴に対しては 「絶対にない!(ムキッー」 とかw
なんだろうこのギャグというか壮絶なアホさはw なんつーかホントまともな日本語の文章書けないチンパンは何なんだろう
まぁ学生以外ありえないんだけどさ
専門の解読士が必要なレベルで文章自体が破綻してて怖いわ
ほんとマジで 自分はJavaに詳しい
その心の拠り所が実は誤った思い込みではと揺らがされ
バカどもを嗤う強者のはずの自分が逆に恥をかかされた
何としてでも敵を言い負かす強い自己像でもって心の安定を得ないといけない孤高の人の悲痛な防衛規制
初心者のみなさんは先輩には敬意をもって接しましょう
ときどき記憶違いを教えてくることもあるから折を見て公式情報にあたろう >>614
君は馬鹿だからもうここへは書かない方が良いと思うよ。 いつからこんなスレになってしまったんだろう
前は質問すればちゃんと回答が返ってくる、それだけだったのに 使わなくなった変数にnullを代入したほうがはやくGCの対象になるというのは
今でも本当なのでしょうか? >>623
嘘です。なぜならばnullはnullだからです。 >>623
・シリアル、パラレル→本当
・CMS GC→嘘
・G1GC→本当 初書き失礼します。
JavaScriptで以下のようなものを製作したいのですがやり方がわかりません。
・7×7の神経衰弱
・24通りのペア+特殊なカード1枚の内訳でこれをランダムに配置する
通常の神経衰弱は作ることが出来たのですが・・・ ググれカス
javaでもねーしjavascriptとかも関係ねーし
荒らすなゴミ JavaScript(JS) の質問は、この板ではありません!
web制作管理板のJS のスレに、書き込んでください! >>623
メソッド末尾でローカル変数にnullを代入しまくるおまじないを書き始める人が出るので
nullを代入するよりもメソッドを適正に分割した方がいいと思う var って、最近の言語じゃ標準装備だけど、ソースコード読む時わかりづらくない?
ぎっとはぶ とかで動的型付の言語見てると、型は?型はなんなの!?ってならない?
var は動的型付けじゃないから話はちょっと違うけど、型推論とか動的型付けとか、書くの楽だけど読みにくくない? 宣言するときに初期値を代入、そういうときに限って使えば困ることはなかろう mainメソッドを定義する文で、
public static void main(String... args)
と記述しても問題なく動作しますか? >>637
Java の var ならまだ静的型付けだから IDE でマウスホバーすればすぐ型分かるけど、
動的型付けだと、IDE 使っても型ってすぐわからんのじゃないん?
周りとか使い方見て判断って感じ? フリーランスで月15万ほど稼げるまで何年かかりますか? >>645
それ頭いい人ですよね?普通〜下の人間ならどのくらいですか 3カ月で出来ないなら何年やっても無理だ
あとJavaとかんけーねーんだよゴミカス
しねよ >>642
ありがとうございます。
でも英語あまり読めません。 >>652
String[]でもString...でもどっちでも良いよって書いてあるような気がする
英語は雰囲気や!
実行してみたが早いけど
https://paiza.io/projects/PCP9h2E4PCIiR9-hhX3zuQ プログラミングやる上で英語読めないのは致命的
まずは英語の勉強したほうが良い むしろプログラミングで必要になったら都度調べる感じでもいい
プログラミングで出現頻度が低い単語や文法までやるのは効率悪い >>654
いい英語の勉強法はないものか、と常々試行錯誤しています
高校時代に英語構文を200ほど暗記したのは役に立っていますが、英語話者を対象にした英文にトライしてみると知らない単語が多すぎて挫折しますね
beware=take care of,
collusion = conspiracy,
allege = insist, persist,
ellusive = difficult to express/describe,/grasp
benign = calm, kind, mild,
curt = blunt,
espionage = spy agency, …
左側の単語はどれもちょっと難しい、高校生相手の試験問題ではまず右のように言い換えるでしょうね(この言い換えは個人的な主観で適切とは限りません)
かといって、あまり出現しない単語をせっせと覚えるのも、なんだか、って気もしますし…
英語の小説を一冊丸暗記すれば効果が高いそうですが、かといって、英語だけではなく文学的にも興味のわくようないい作品はありませんか? だからさぁ
自分語りとかSNSでやれや低能
ホントこの手のキチガイ荒らしはなんなんだ
てめーの低能自慢とかここでするな
ゴミ >>653
ありがとうございます。
>>654
英語の勉強はかかる時間の割にリターンが少ないので。 >>659
ソフトウェアに関しては英語ができると
できないやつの3倍速で技術を身につけられるよ >>652
とりあえずコピペして自動翻訳してみろって。 てか、URL指定するだけで翻訳できるな。
https://translate.google.co.jp/translate?hl=ja&tab=wT1&authuser=0&sl=en&tl=ja&u=https%3A%2F%2Fdocs.oracle.com%2Fjavase%2Fspecs%2Fjls%2Fse14%2Fhtml%2Fjls-12.html%23jls-12.1.4 漫画「ドラゴン桜」のモデルになった、竹岡 広信の本
ドラゴン・イングリッシュの2冊、これだけで良い!
必修英文法100・必修英単語1000
分からない単語を、語源から推測して、辞書を引かずに済ます。
例えば、invent のin- は中、innocent のin- は否定。
term は枠とか
イメージからの連想。
ほとんどは、このケースで正解
日本語で言えば、漢字から推測するようなもの Chrome なら、英語のサイトを開くと、翻訳しますかって表示される
github とか、おおよそそれで分かる Eclipse使ってます。
JavaでPDFファイルを読み込みたいんですが、上手く行きません。
取りあえずPDFBox 2.0.19を外部ライブラリとして読み込めるようにしたまでは良いです。
https://weblabo.oscasierra.net/java-pdfbox-1/
を参考に「簡単なサンプルプログラム」をコピペしただけなのに、
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.apache.pdfbox.pdmodel.PDDocument.<clinit>(PDDocument.java:98)
at sample.簡単なテスト用クラス.main(簡単なテスト用クラス.java:37)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 2 more
というエラーが出ます。
どうしたらいいですか? エラーログすら読めないとか
ググル以前にバカすぎるからもう諦めろ >>666
>どうしたらいいですか?
エラーの原因を調べてコードを修正すればいいですよ。 >>667,668
会話のレベルが初歩過ぎてお前らじゃ相手にならん
知ってる奴に回答を求む あまりに低レベルすぎて強がりが透けて見えるから
おとなしく回れ右しとけ
嘘でも何でもなく、おまえは向いてない ログからエラーの直接の原因は誰でも分かるんだからそれを調べる事からやれよ
それすらできないならほんとに諦めたほうがいい
>コピペしただけなのに
>どういたらいいですか?
この考え方がもうね・・・ >>670
要するにお前の知能じゃ正解は言えないって事だな
会話のレベルが初歩過ぎるとはそういう事。もう既に証明されてる。
>>671
>>ログからエラーの直接の原因は誰でも分かるんだからそれを調べる事からやれよ
会話のレベルが初歩過ぎる(繰り返し)
このスレにはこんなのしか居ねぇのか?
もう一歩進んだ日本語を喋れる奴を期待したいんだが >>666の時点既にエラーの原因をググった上で「NoClassDefFoundError」が何故起きるかについて聞いたつもりだったんだが、
会話のレベルが初歩過ぎるって言ってる意味分かって貰えた?
一々こんなクソ低次元な所に立ち止まって説明して貰わないと理解出来ない頭なんかな?
っつーか、こんな様子じゃお前らなんかに聞いても無駄なんだろうな。
期待した俺がバカだったw >>675
発言がどんどん幼稚化して行っててワロタw
お前の語彙力はその程度
低知能だから何の回答も出来ず、クソ低次元な所からの揚げ足取り(実際は揚げ足取りにすらなってない)しか出来ない
で、俺にレスを返されると幼稚な悪口
このスレにはこんなしょうも無い動物しか居ないのか? >>675
もうお前の頭の限界は見えた。
少なくともお前には回答を期待してないww おーおー好きなだけ荒らしてけ低能
飽きたらとっとと消えろゴミ >>664
>分からない単語を、語源から推測して、辞書を引かずに済ます。
それはラテン語系単語でしか使えないですよ…ゲルマン系の単語には無力ですね >>666
LogFactoryクラスが見つからないよってことで
ライブラリを参照する必要があるのだろうけど
こういうときは公式サイトで依存するライブラリを調べたら良い
https://pdfbox.apache.org/2.0/dependencies.html
> Minimum Requirements
> PDFBox has the following basic dependencies:
>
> Java 6
> commons-logging
とあるんでcommons-loggingをクラスパスに追加すればおk ほんとの意味でログも読めないレベルの馬鹿に
同じレベルの初心者が意気揚々と回答つけるから馬鹿が量産されてくんだよね >>680
あざっす!
言われた通りにやったら上手く行きました!!! >>681
お、他人が出した答えに乗っかっていく辺りにゴミクズさが出てるね
さすがお前らしい。 >>683
横からでごめんやけど
少し上の方のググレカス君と思うから相手にしなくていいよ 答えも何もログに書いててお前含めてお前と同レベルの馬鹿以外はみんなわかってんだけどw
池沼「classNotFoundって書いてる!原因を教えろ!(ムキッー!」
ワイ「いや答えかいてるやんw」
池沼「おまえらはレベルが低い!」
THE ガチ池沼
馬鹿すぎて草しか生えんw でもここまでの馬鹿ってまずいないから
アンロード君の自演だと思ってる
文体のバカっぽさがアンロード君に似てるし クラスアンロードで恥かいたことめっちゃ根に持ってるのは分かった 英語読めなくて自分が赤っ恥のこきっぱじの醜態を晒したのに
なぜが相手が恥かいたことになってる脳内変換するキチガイっぷりもやべーんだよなアンロード君
こういうのが将来、重大な犯罪とか犯す犯罪者予備軍のキチガイなんだわ
バカなのに一生懸命背伸びしてるのも痛々しかったしw この下品な言葉遣いの人いつからこのスレに居ついちゃったの? 自分が頓珍漢なこと言ってるのに、叩かれたら全部自演ってことにして敵を一人にしようとする
スレに張り付いて顔真っ赤にしてるお前じゃあるまいし、そんなめんどくせーことしねぇよ 英語読めなくて自分が赤っ恥のこきっぱじの頓珍漢な醜態を晒したのに
なぜがまたまた相手が頓珍漢なことを言った!と脳内変換するキチガイっぷりもやべーんだよなアンロード君
こういう脳障害者がいつか重大な犯罪とか犯す犯罪者予備軍のキチガイなんだわ
糞バカなのに一生懸命背伸びしてるのも痛々しかったしw 自分のアホさが理解できなくて相手に八つ当たり攻撃するところとか
このclassNotFound君とそっくりじゃんアンロード君w 一応ここは初心者スレだからね
英語がわからない人もいるし 音を鳴らした時デーモンスレッドが消えないという現象に悩んでいます。
これが問題のクラスです。
https://ideone.com/r0mbjJ
.wavファイルはどれも「チャリン」とか「ピポッ」みたいな1、2秒の短いファイルです。
オーディオクリップを再生する時は Direct Clip というデーモンスレッドが立ち上がります。
デバッガでトレースしてみたところ、
new Chime().play(0);
とやると、43行目の
clip.open(ais[type]);
の部分で Direct Clip が立ち上がり、Eclipse のデバッグビューに現れます。
そして70行目の
clip.close();
が実行されると消滅します。
ところが、数十回に1度くらいの頻度で、このデーモンスレッドが消えません。
デーモン・スレッド [Direct Clip] (実行中)
という表示がデバッグビューにずっと残って、だんだんと増えていきます。
close文が実行されていないのかと思ってprint文を入れてみましたが、
問題が発生した時もちゃんと
open start stop close
と表示されています。頻度が小さいこともあって、どういう条件の時に起きるか特定できていません。
コードを見てここがおかしいというというところがあるでしょうか? それにしてもひっでぇソースだな
100行もないソースでよくここまで酷くできるもんだ >>696
SSCCE を書くようにしたほうが良い
実行可能じゃないと見る気起きない 有能なら一目見てわかるだろ
実行しないとわからないのは無能の極み https://www.google.com/search?q=スレッド 同期化 可視性 java&oq=スレッド 同期化 可視性 java
とりあえずググリングワードとしてはこの辺り
同期化ちゃんとしたほうが良い ちなみに俺は実行してもわからないし
SSCCEが何なのかもわからない
どうせ意識高い系のでくのぼうが作り出した造語だろと思ってるよ >>702
曖昧な事言って誤魔化すな何行目か指摘してみろ
ここはお前の面接会場だ 後、
while(running == true)
これはヤバい奴が書くコード 例外をキャッチしても処理を止めない漢気あるクソコード
それがし、感服いたした いまどき炎上学習法は流行らないよ
見捨てられるだけ まーた昨日のclassNotFound君=アンロード君が暴れてるのか
嘘でも何でもなくマジではお前は向いてないからとっとと回れ右しとけって >>708
>>705ではないが、俺も無限ループはダメだと言われた
理由は言われなかったが、おそらくループを抜ける部分に不備があった時に
本当に無限ループになってしまうというリスクを孕んでいるからかと 馬鹿すぎてワロタw
お前も回れ右
どうせ自演だろうけど いまだに原因不明ですが、0.5秒ごとに new chime().play(n); (n は 0 - 2) を500回繰り返すというプログラムにしたら、
時々プログラムが1秒くらい止まってその後 Direct Clip が増えるという現象が見られました。
これって何か関係ありますかね? ここはお前の日記帳じゃねーから
入門書からやり直してこいカス >>716
ここは初心者スレだ
言いたいことは分かったから用が済んだら出て行ってくれないか?
お前の様にロクに回答もせずただ人をこき下ろすだけの存在ってすげー迷惑なんだよ 初心者スレだからって初心者という言葉が免罪符になるとは限らない
だって君、初心者未満なんだもん
そういうのに答え教えても何も身に付かないんだよね >>721
何ひとつ答え教えてねーヤツがよく言うわw
とっとと失せろ卑怯者! わかったわかったw
while(running)
これ見て何か気づくか? >>719
色々試してみても変わらないです。
つけられるメソッド全部に synchronized をつけたら全く Direct Clip が消えなくなりました。 君たちさ詰められたときに逃げられるように曖昧なことしか言ってないようだけど
そういうのやめようよ
フラグの同期が取れてないのが原因なのかね?
デッドコードしてコンパイル時に消されてるとするなら
一回もcloseは呼ばれない
質問者が確認したところではcloseは呼ばれてる
そのことからデッドコードとして消されてるわけではない
可視性の問題かなあ、仮想マシンでメモリの同期が保証されない場合
CPU依存になるわけだけれどもインテルのCPUだと強いメモリモデルだから
可視性の問題はほとんど起こらなかったりするわけだけれども
君たちは具体的にどういう問題だと認識してるわけですか? 回答を教えてもらう立場の奴が取る態度じゃないから
ノーアンサーでフィニッシュ! >>726
> while(running)
君の回答はこれだっけ? これでいんだっけ? すげえ
やっと少しでもJavaに関係ある反応したと思ったら、
誰でも分かる超低レベルの内容を嬉々として答えてる
こいつすげえ デーモンスレッドの問題にゴミみたいなキーワードしか並べられない低能が言うなアホカス
何行目か教えてやれよ?ん?どうだ?お前にわかるか?
どうした?アホ >https://www.google.com/search?q=スレッド 同期化 可視性 java&oq=スレッド 同期化 可視性 java
なんだこれw
全然関係ねーわドアホw
今までアホすぎてわざわざ突っ込まなかったけど
こういう糞馬鹿が勘違いして俺の真似してんだよなw
低能糞アホ
消えろマヌケ 中級者以上ならrunnableの実装見りゃすぐにわかるんだけど
ID:cFvopTvT ←こういう馬鹿は結局わからんもんだからすぐに同期ガーとかマヌケなこと書くんだよね
バカが真似すんなよアホ 少なくとも同期化してないのは一つの問題
while ループの書き方も問題
play の度、毎回 clip を open してるのと、setFramePosition(0) を入れてないから、そもそもリスナが 1回目しか呼ばれてないのが直接の原因
だけど、これだけは言わせてくれ
ID:iThMGLi0 こいつは 100% 何ひとつ理解してなくて、どんな回答でも全ての回答に対して間違ってるかのような示唆をする
そして技術的なことは一つも言わない、言ったとしても間違えてる
本当に迷惑だから消えてくれ
いっとくが、俺はアンロードの事書いたやつじゃねーからなw
自演とかわけわからんこと言ってくんなよ もう答え教えてやるけど
clipをクラス変数で共有してるからだ
>少なくとも同期化してないのは一つの問題
ソースコードもまともに読めずに思い込みで「同期化してないのが問題!(キリィイイイイイイッ!」とかwww
バカの癖に回答側にまわって間違ったことをさも正解のように書く諸悪の根源ガイジ
おまえのような糞馬鹿がいるから初心者が余計に沼るんだよドアホ
お前みたいアホはもう死ねよカス >play の度、毎回 clip を open してるのと、setFramePosition(0) を入れてないから、そもそもリスナが 1回目しか呼ばれてないのが直接の原因
これも全然関係ねーしwww
糞馬鹿
マジで死んどけガイジ なるほど、オブジェクトを使いまわしてるわけね
これで5000回まわしてみたけど再現しなかった
for (int i = 0; i < 5000; i++) {
new Chime().play(i % 3);
}
こっちだと再現した
Chime chime = new Chime();
for (int i = 0; i < 50; i++) {
chime.play(i % 3);
} まぁもしこれが答えを誘導するための質問者の自演だとしたら
さすがにワイも一本取られたわw
ここまでの低能糞馬鹿ガイジを演じられるとか別の意味でかなり有能だからw
アホ アンロード君みたいに開き直って
「おまえがおかしいんだ!(ムキッー!」 って言ってもええんやで?
糞馬鹿ガイジの ID:cFvopTvT 君?ん?どうした?ん?? playのたびにclip変数が上書きされるから
clip.close()が呼ばれないってことかの? >ID:iThMGLi0 こいつは 100% 何ひとつ理解してなくて
特大ブーメラン凄いですねぇ・・・ホントw
質問者は何でclipを共有するとスレッド残るのかこいつに教えてもらったら?w
どうだ?教えられるかカス?ん? まず正しい回答してやっても礼の一つもないんだよねこういう奴って
ほんと舐めてるよね
礼も言わずに次々質問してんのなw
おまえも死んどけゴミ
二度とくるなアホ アンロード君
NotClassFound君
同期化君
キチガイほら吹き3人衆
息を吐くように嘘を教えるとかおっそろしいでホンマ >>734
一応だけどクラス変数はインスタンスを作らなくても使用できる変数で
clipはインスタンス変数というのが適当だよ
君の書き込みからはたまに知性が垣間見れるから多分書き間違っただけだろうけど
初心者スレなんで真に受ける人がいるかもしれないから一応
データ競合があるのは事実でその辺りも含めてこのソースをどう修正するかは
腕の見せどころではあるね >一応だけどクラス変数はインスタンスを作らなくても使用できる変数で
はい、アホ
おまえさぁ、アホのくせになんでレスつけるの?アンロード君か?
何が「このソースをどう修正するかは腕の見せどころではあるね!(キリッ!!!」 だよアホ
1分で終わるわアホ
ほんまキチガイ糞馬鹿ガイジの巣窟やな >>748
どこがアホ?
クラス変数とインスタンス変数は違うよね
同じだと思ってるん? どうなのん? 違う、こいつ ID:iThMGLi0 の言ってることが間違い
毎回インスタンス作っても出来るけど、何回も再生するのに何回もインスタンス作って open して play するのは適当じゃない
一回 open して、特に小さい音声ファイルの場合は、ロード1回したら使い回さないと、再生はじめが遅くなるしパフォーマンスは悪い
そもそもこれは1度 new して初期化したら 使い回すっていうそういう設計のクラスでしょ
クラス変数とインスタンス変数の違いも知らない人間の言う言葉を信じてはいけない 初心者未満はもう文章書くのやめよう
な?
もう書いてることの全てが間違ってるからさ
入門書1億万回読めやカス >>751
クラス変数とインスタンス変数は違うよね
同じだと思ってるん? どうなのん? ほらね、技術的なことを書いてボロが出たら関係ないこと言い始めたでしょ
上のレス読んでてもこいつずっとこう バカだから180℃間違った解釈でギャーギャー「俺が正しいんだ!(キリィイイイ!!」って喚いてんだよね
ほんと死んでくれゴミ
二度と回答するなアホ >>754
入門書1億万回読んだならわかると思うんだけどクラス変数とインスタンス変数は違うよね? 見事にアンロード君と同し病気発症しててワロタwwwww
ほんまモンスターガイジだなコイツw
バカ通りこしてキモすぎるからマジで死ねってw
アホ >>756
クラス変数とインスタンス変数は違うよね
同じだと思ってるん? どうなのん? こんな感じでソースコードをまともに読めない初心者未満のガイジに
正しい答えを教えても全く意味がないことがよくわかる良い例だな
何も成長しないんだよ
THE モンスター低能ガイジ >>758
クラス変数とインスタンス変数は違うよね
同じだと思ってるん? どうなのん? さすがにインスタンス変数の意味でクラス変数って言っちゃうとか擁護のしようがない
とりあえずそこのところは俺も気になるから徹底的に追求してあげてくれ
こういう風に関係ない罵詈雑言書き連ねてても、今後このスレにいる以上はずっと追求し続けてあげてくれ スコープが違うだけで実態がなくても使えることにはならない
エラー出ても使えるって言い張るガイジなら勝手にどうぞ
くだらねーことを何回も書いてホントきしょくわるいね
アホ 君はあだ名つけるの好きみたいだからそれに倣うけど、君の名前はクラス変数君ってことでいい? >>761
クラス変数とインスタンス変数は違うよね? >そもそもこれは1度 new して初期化したら 使い回すっていうそういう設計のクラスでしょ
これもソースコード読めな過ぎの馬鹿文章
ほんとおまえさぁ、ただのほら吹き糞馬鹿なんだからもう意地張ったり背伸びするのやめたら?w
全てが間違っててアホなんだよお前のレスはw
アホ >>762
もうこのスレのアイドルだから姫でもいんじゃないかな 別に毎回newしなくてもエラーでないしw
ほんとソースコード読めないアホ
消えろゴミ 間違えてる間違えてるってそればっかだけど、間違えてるなら何が間違えてるか指摘しなさいよ
クラス変数とインスタンス変数の違いは丁寧に教えてもらってでしょ君
お礼言わない人嫌いだったよね?
ちゃんとお礼言いなよ とりあえずホラ吹きガイジのお前は二度と回答側にまわらないように
一生ROMってろ >>766
あなたの指摘は、
> clip を "クラス変数www" で共有してるから
って言うものでしょ?
clip を共有しないということは、毎回 Clip を new することに他ならないじゃないですか
共有せずに、毎回 new もせずに、clip を使って再生する方法を後学のために教えてもらえますか? さすがに、クラス変数とインスタンス変数の違いも知らない初心者とバレた以上、その逃げ方は滑稽でしかない 聖者ワイ「これこれはこうだからこうなる。わかったか池沼よ?」
池沼(ID:cFvopTvT)「うるせー!俺が正しいんだ!ボケ!」
池沼(ID:cFvopTvT)「後学のために教えてもらえますか?(ブヒッw」
聖者ワイ「消えろゴミ」
逃げるも糞もおまえは馬鹿すぎ&ほら吹き&無様&低能
ソースコードまともに読めるようになってから喚け低能糞ゴミキッズ
きしょくわりぃ >> 753 以下ループで
そういう中身のない罵詈雑言系はもう良いっす 己の醜態を関係ないネタで勝手に知らない扱いして
喚き散らしてなかったことにしようとしてる無様な姿は酷すぎるし
レスせずに消えればいいものを
アンロード君といいこの手の醜態晒すキチガイはどういう脳みそしてんだろうな
マジで
さすがにきしょすぎて引くわ 今回はお前があまりに頭が悪すぎる知ったかほら吹きレスをつけるから
間接的に質問者に答えを教えることになったが
おまえみたいゴミに教えることなんて一つもないよ
脳みそ腐ってんのか? ID:iThMGLi0には誰も味方がいない…
リアルでも孤立してるんだろうな
こんな奴に友人が出来るわけがない
初心者入門者はこのスレ以外で質問することを強くお勧めしたい 味方も糞も嘘つき同士で仲良くしてるだけやんw
ID変えて一生懸命ワイを叩いてるけどさw
ワイがいなかったら質問者はこいつ等の嘘に悩まされて解決策は一生わからないままだったんやで
おっそろしい話だ >>696
Clipはスレッドセーフなんだけど
AudioInputStreamがスレッドセーフじゃないっぽい
再生ごとにAudioInputStreamのインスタンスを作成すればよい
STOPの待ち合わせはラッチを使うと簡単かつ安全
https://ideone.com/04E4rq
Clipを使い回すならこんな感じでいんじゃないかな
https://ideone.com/ieK4ND Clip は、再生前に音声データを全部ロードしてから使うクラスで、
インスタンスを使い回さず、再生前に再生時間の取得とかが必要ないなら、
SourceDataLine を使ってリアルタイムにストリーム化した再生をしたほうが良い
「AudioInputStream がスレッドセーフじゃないっぽい」というのは本来はあまり関係なくて、それを使ってる Clip が実装内で同期化してるなら問題ない
質問者のコードは何故か毎回 open してるからあれだけど、Clipを使う場合、open時に受け渡すだけの AudioInputStream は、Clip の中以外で複数スレッドでは使わないでしょうし
Clip の API見たらスレッドセーフと明示されてるわけじゃなくて、本当は Clip の実装クラスが同期化してるかによるけど
>>778 の下の方のソースコードで問題ないと思う
細かいことをいえば、
Clip[] clips = {
create("C:\\Users\\a\\Desktop\\work\\decision1.wav"),
create("C:\\Users\\a\\Desktop\\work\\decision2.wav"),
create("C:\\Users\\a\\Desktop\\work\\decision3.wav")
};
この変数自体が同期化されてないとか
ロード、アンロード、ストリーム化した再生、同期化、複数同時再生とやってったコードあるけど、ここには書けない 補足)
>>778 の下の方のソースコードで問題ないと思う
といったけど、再生終わる前に再生すると壊れるから、やっぱりちゃんと同期化は必要かな >>780
なるほどね
clipsの変数が同期化されてないのは可視性の話?
スレッドが起動するときに同期化は行われるはず >>781
そのへんClipがやってくれないん? 困ります! >>781
final でない変数を複数スレッドで使う場合は常に同期化が必要
> スレッドが起動するときに同期化は行われるはず
たしかに、実質的に final なら動作上は問題ない、だから「細かいこと」
でも、final にしてないなら作法上やっぱり同期化は必要(final Clip[] clips でもダメだからね)
自分だけが見て、自分だけが書くプログラムなら好きにすればいいよ >>783
ごめんね、やっぱり問題なかったわ…
再生中に再生しようとすると、無視されるだけだった >>778
どうも、昨日の質問者です。わざわざプログラムまで書いて頂いてありがとうございます。下の方ですが、これを
Chime chime = new Chime();
chime.play(0);
と使えば完璧ですね。ですが、
new Chime().play(0);
にすると Direct Clip が再生した回数分増えていかないですか?
そして上の方ですが、0.2秒間隔で500回再生してみると、通常は
スレッド[Thread-124](実行中)
デーモンスレッド[Direct Clip](実行中)
スレッド[Thread-125](実行中)
デーモンスレッド[Direct Clip](実行中)
スレッド[Thread-126](実行中)
デーモンスレッド[Direct Clip](実行中)
というようにデバッグビューに表示され、音が鳴ります。しかし時々
スレッド[Thread-124](実行中)
スレッド[Thread-125](実行中)
スレッド[Thread-126](実行中)
デーモンスレッド[Direct Clip](実行中)
デーモンスレッド[Direct Clip](実行中)
デーモンスレッド[Direct Clip](実行中)
表示がこのようになり、その間音が止まります。そしてまた元に戻ったところでたまった音が一気に鳴るような現象が起きます。
そしてこの現象が起きる度に消えない Direct Clip が一つ増えます。この現象が出ているのはうちだけでしょうか? >>784
finalにするとコンストラクタの処理が完了した時点での可視性が保証されるってことでしょ
一方でスレッドが起動するときにもhappens-beforeのセマンティクスは適用されるから同期の目的が可視性ならfinalつけなくても問題ないと思ったんよ >>787
> finalにするとコンストラクタの処理が完了した時点での可視性が保証されるってことでしょ
違う、そういう意味で final の場合は同期が必要ないって言ってるんじゃない
final にすると書き換えられないから、一度可視になればそのままの値であることがずっと保証されてる
一方、Clip[] clips の場合は final じゃないから、値が更新されたらその時点で同期が保証されない
作法としては、final じゃない、複数スレッドに渡って使用する変数は常に同期は必要 >>788
そういう意味ね
状態変えられたらどうしようもないし
変数に再代入してるところないし
上のコードは同期取れてるけど一般論としてはということね
なるほどね >>786
ループのたびにインスタンス作るやり方だと5000回
回してもうちのPCでは再現しなかったんよね
条件が足りてないのかもしれないけど >>790
うちの環境のせいかもしれませんね。これ以上は諦めることにします。 >>781
そこにfinal付けるかどうかこの例だと全くどうでもいい。
配列・オブジェクトに対するfinalとは?
もちろんfinalを可能な限り付けることは推奨だけど。 >>792
> final Clip[] clips でもダメだからね
ってちゃんと書いてるからね >>786
単にそのライブラリが、非同期・マルチスレッドに対応していないのだろう。
対応していない機能を使うから、バグるのでは?
ライブラリには、シングルトンみたいな単一オブジェクト・資源を使っているものがあって、
それを共有できないものが多い
だから、ライブラリの説明書には、
このライブラリはマルチスレッドでは使えない、などと書いてあるものが多い
複数の効果音を同時に使えるライブラリなどは、特殊なんだと思う。
Windows だけとか、OS を限定される
OSS・Linux 系のライブラリでは、マザーボード上のチップ内の特殊なネイティブ機能は使えないのでは?
普通これらでは、ハイバネートから戻れないとか、電源機能などもまともに動かないだろ ヤマハなどの音源チップと、ライブラリのAPI が、バージョン違いで一致しないとか
基本、マザーボード上のチップは、Windows 限定だろ。
OSS・Linux 系のライブラリでは、正常に動くかどうか分からない まーた頭悪い奴等同士でグダグダ交換日記してるよ
ほんとキチガイやなこいつ等
まとめて逝って良し まぁ一番イラつくのは全てが他力本願の頭のイカれた質問者だけどさ
やってること同じなのにちょっとデバッグウィンドウの表示ちがうだけで
「〇〇じゃないですか!?なんでですか!?」って
バカかとアホかと
少しはテメーで考えろボケカス
ほんとこういうのに答え教えても何の意味も価値も成長もないんだわ >>786
>>778のChime2(後者の実装)をnew Chime2().play(i)で100回とか呼んだ場合ですよね?
うちでもDirect Clipのdaemon threadが増殖しますよ。
実行環境にもよるのかもしれませんけど、
Direct ClipスレッドはClip.open(ais)で生成されて、Clip.close()後に終了するようです。
Chime2ではclip.close()が呼ばれないのでスレッドが残るのでしょう。 (おお、やっと書き込めた...why?)
(続き)
778の前者の実装(CountDownLatchを使った方)は、
try-with-resources文でclip.close()が暗黙に呼ばれるので
chimeインスタンスを使いまわしても、new Chimeを繰り返してもスレッドは増殖しないですね。
確認した環境: AdoptOpenJDK 12.0.1+12, 64bit Server VM (Hotspot)
(オーディオデータは C:\Windows\Media\notify.wav 等)
$ java --version
openjdk 12.0.1 2019-04-16
OpenJDK Runtime Environment AdoptOpenJDK (build 12.0.1+12)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 12.0.1+12, mixed mode, sharing) 漏れらは、動かないゲームエンジンとか知ってるから、音なんて出ない方が多いぐらいw
Pixi.js をコアにした、Phaser は音が出るらしいとか、そういう噂で決める
大手のブラウザみたいに、Windows 用を別に作っているものは、半分ぐらいは動くけど、
OSS・Linux 系のライブラリでは、ソースコードを書いてるだけだから、
それをWindows ネイティブの機械語に変換した場合に、動くとは限らない
無線LAN でも、半分は動かない。
各メーカーで、ドライバーを作っていれば動くけど
msys2/mingw で、Windows 用にコンパイルしても、互換性が低い。
WSL の方が、MS が作っているから、互換性が高い
ヤマハが、Java・OSS 向けのドライバーを作っていれば動くけど、まさか作っていないだろ >>802
解決しました。コンパイラのバージョンが1.8になってました。
Eclipseを最新のものにしていないせいか11までしか使えないのですが、それにしたら症状が消えました。
ありがとうございました。 >>804
解決してよかったですね。
ただ、その報告では結局何をどう変更して解決したのかこちらは分からないです。
個人的には Clip.close() を呼ばなくても大丈夫な場合/環境があるのか気になります。 >>806
>>778の上のプログラム、CountDownLatchを使った方ですね。それを500回 new した時に
その時々によりますがDirect Clip が3つから6、7個くらい残るという症状でした。
で、それを入れていたプロジェクトが使うコンパイラのバージョンを1.8から11に上げたらきれいに直ってしまったということです。
プログラムの方は何もいじらずそのままです。 >>807
うちでも、Java 8でCountDownLatch版で new Chime().play(i) を連続で500回呼ぶのを10回ぐらい実行したら一回だけDirect Clipスレッドが一つ残りました。
見てみると、
com.sun.media.sound.DirectAudioDevice$DirectClip.run()
の(コメント込みで)10行目ぐらいの lock.wait() で止まっていました。
この箇所の実装をJava 8とJava 12で比較すると少し修正されています。
Java8 の実装だと
while (thread == curThread) {
で thread == curThread が true と判定した後、
synchronized(lock) { ※
で同期化ブロックに入る前に DirectAudioDevice$DirectClip.thread フィールドが変更されていた場合、
そのまま lock.wait() に突入してしまうタイミングがあるように見えます。
つまり DirectClip.run() が※のモニタを取る前に
DirectAudioDevice$DirectClip.implClose() が DirectClip.thread = null として lock.notifyAll() してしまうと、
DirectClip.run() の lock.wait() は来ない通知 (lockのnotify) を待ち続けることになるのでしょう。
Java12 では DirectClip.run() の synchronized(lock) を取ってすぐに
while (!doIO && thread == curThread) {
で DirectClip.thread フィールドをチェックするようになっているので、
絶妙なタイミングで DirectClip.implClose() に割り込まれても大丈夫なようにライブラリが修正されたのでは無いでしょうか。
リリースノートかbug paradeを丹念にチェックしたら、どこかに載っているかもしれません。 そもそも説明になってなさすぎる
まともな文章書けないガイジはレスすんのやめろ
マジキチ ■ Java 質問スレのググれカス君とは
質問と回答に対して罵倒を続ける荒らし
罵倒はワンパターンで、ググれカス、ゴミ、馬鹿、キチガイ、低能、チョンなどを多用します
プログラミングの基礎知識がないため、技術的な事はほとんど言いません
過去の発言でクラス変数とインスタンス変数を勘違いしていたり、基本的な事も理解できていないことが判明しています
どんな回答がついてもそれが間違いだと主張しますが、根拠は示しません
あなたの質問についた回答が正しいかどうかは自分で判断して下さい
彼は自分に対する批判は全部自演だと思っているようなので、構うだけ無駄です 図星突かれたらすぐ顔真っ赤にして捏造する癖やめたほうがいいぞ低能ゴミカス
アホ 説明になってなさすぎる (自分も説明は出来ない)
ってパターン多すぎてネタ化してる ロック取ってループで条件チェックはマルチスレッドの基本だけれどそれやってなかったんだなー標準ライブラリにもバグが潜んでるものなんだなー ゲームエンジンとか、まともに音が出る方が少ないw
それに、色々なブラウザで動かないから、Chrome 限定にする
Pixi.js をコアにした、Phaser は音が出るらしいとか、
そういう噂ばっかりを集めて、皆で動くエンジンへ移動するw
開発者は、動かないエンジンを修理するよりも、
皆で動くエンジンへ移動するw クラス変数とインスタンス変数を勘違いした発言なんかしたら、俺だったら恥ずかしくて二度とスレに来れない おまえの馬鹿さを指摘してやってるだけなのに
どう解釈したら勘違いしてるって思えるのか低能すぎてこえーわ
バカのくせに開き直って妄想で捏造書き込むキチガイもほどほどにしとけゴミカス低能
どんだけ根にもってんだキチガイ
>一応だけどクラス変数はインスタンスを作らなくても使用できる変数で
もっかい書いてやるけどつかえねーから馬鹿 アンロード君
classNotFound君
同期化君
インスタンス作らなくても変数が使えちゃう君
全員入門書レベルのゴミがなぜか捏造して叩いてくるんだよな
ほんまキチガイの巣窟すぎてやべーわここ
英語も読めないプログラム全般の基本的な動作も理解してないゴミ糞低能の分際で
「おまえは勘違いしてる!(キリィイイイ!」とかわけのわからん馬鹿捏造解釈で
延々と叩くことしかできないキモさはお隣の国そっくりやな
バカチョンコミュニティかここは?ん? 変数がどうたらとかくだらなすぎて書く気すら失せるから
ほぼほぼスルーしてたんだけど黙ってたら延々と言って来るからな低能って
ほんとゴミにはしっかり言ってやらんとダメだと再認識したわ >>820
クラス変数はインスタンス作らなくても使えるよ >>820
クラス変数とインスタンス変数は違うよね? >>824
質問に答えてないじゃんかー
ずるいじゃんかー
答えろじゃんかー >>824
クラス変数とインスタンス変数は違うじゃんか? だからなに?いつ同じって言った?ん?
違ってもインスタンスなくても使える?は?アホ
一人でわけの分からんこと言って勝手に決めつけて
まともな文章も書けないしもう回れ右しとけ低能
まぁ学生だろうけどまともな文章書けるようになってから出直せアホ それにしてもどうやったらこんな馬鹿なことを
延々と喚けるのかアホの頭はホントハッピーセットすぎてやべーわ >>827
じゃあ違うのん?
どうなのん? はっきりしてのん? >>828
はっきり答えてないないじゃん
はっきり答えてじゃん アホ「クラス変数はインスタンスなくても使える!」
聖者ワイ「アホ君、変数っていうのはね中身入ってないと使えないよ」
アホ「こいつはクラス変数とインスタンス変数が同じと思ってる!(キリィイイイ」
聖者ワイ「何言ってんだこの馬鹿・・・」
ほんとキチガイは意味不明過ぎてヤバいね >>831
変数に中身が入ってるかの話を僕がしてないのはわかりますよね
わかってなかったのを僕は許します
その上でクラス変数とインスタンス変数は違いますよね? >変数に中身が入ってるかの話を僕がしてないのはわかりますよね
エスパーじゃないんだからお前の低能な頭の中をみんなが理解してたら凄いことだね
いいかい、アホ君。変数というのはね、中身があって初めて”使える”っていうんだよ
おまえの脳内設定の意味のわからん”使える”は万人に適用できないんだよ
わかるかい?アホ
こんなアホ理論が通用するのは学生のうちだけだからよく覚えておけよ糞アホ君 そして違うとか違わないとかこれまた意味の分からん比較の話に飛ぶのも
キチガイ脳すぎて相当ヤバいよアホ君
脳専門の病院に行ったほうがいいよマジで >>833
変数を使うの定義をすり替えてますよね
質問してるのは僕なので僕の定義に完全服従する義務が
あなたにはありマフ
責任感を持って質問に答えてください
クラス変数とインスタンス変数は違いますよね? >>834
わかるよね?わからないの?本当に?
本当に質問の意味がわからないのん?
どうなの?正直に言って はい、終わり
バカの文章見るのキツイ
もう日本語として破綻してる
人生がんばれよアホ君
君の別名はシンプルにアホ君な
アンロード君
classNotFound君
同期化君
アホ君
あほあほ四銃士 >>837
逃げるん?
クラス変数とインスタンス変数の違いを聞いてるんよ
答えられずに逃げてまうん? 初心者未満は相応のスレに行きましょう
ここは初心者スレです >>840
できるよ。そう、Groovy,Scala,Kotlinならね
マジレスするとcommons langのStringUtils.joinとかMapUtils.verbosePrintあたりを活用してお茶を濁すくらいだな AbstractMapっていい感じにtoString実装してるんだな
何故かできないものと思い込んでた こういう思い込みのアホって何で回答するんだ?
脳に蛆でも沸いてんのか?自演か?
またアンロード君か同期化君が知ったかでレスつけてんのか?
目立ちたがり屋の妄想家は回れ右してSNS!!!! >>846
インスタンス変数をクラス変数と思い込んで回答した君が言うかねwww あることないこと勝手に喚き散らして一人で妄想してマウント取ろうとする病気の奴ってなんていうんだろうな
こういうキチガイがきっと宗教とかにハマるんだろうね
ほんとこういうキチガイの為にツイッターとかがあるのになんでこのスレ見てんだって感じだな
アホ >>849
他人に暴言吐いてるのに自分がマウントされるのは嫌なんだw繊細なんだなwwwwwww Javaスレのデリケートプリンセス、略してプリンちゃん そら俺は正しいことしか言ってないからな
正しいならいくらでもマウント取られてもいいけど
おまえなんて妄想と開き直りで俺がレスするたび繰り返しわけのわからんことを書いて荒らしてるゴミだからな
しつけーんだよ糖質が
とっととSNSに帰れよゴミ >>852
終電なくなっちゃったの・・・泊めてくれないか 仕事してる妄想か?ん?
文章まともに書けない奴に出来る仕事なんてないぞ クラス変数とインスタンス変数間違うって、もしかして入門書すら全部読んでないんかな >>856
>>831
いい加減死ぬか病院行けキチガイ >>858
またお前か。いい加減死ねよ。生きてる価値ないんだから。 トリップで検索すると、救われない系の人間のクズだな
救われないというか救ってはいけない系というか すいません、どうしても過去の遺恨がありまして一言書き込みたかったんです
とあるドアホコテのせいで俺が悪いということにされてしまいまして…
>>859
そこまで言うことないだろ それぞれが別パッケージにある同名クラスを同時に使いたい時ってどうすりゃいい?
今、Jsoupを使って、HTMLを解析して、その解析結果をXMLファイルに出力しようとしてるんだけど、
JsoupにもJDKにもDocumentクラスがあるんだけど、この2つのクラスを同時に使いたい。
でも名前がバッティングしてるからエラーになるんだが? 片側のクラス名をパッケージからフルで書けばエラーは消えるのでは。
IDEで修正してくれないの。 >>865 そうします。
HTMLの解析に使えるライブラリにJsoupがあるけど
XML文書の入出力に使えるライブラリって何がありますか?
元からあるorg.w3c.domパッケージは1つ1つの命令文が面倒なんでw
jqueryみたいに手軽に使えるのがあれば良いんだが。 全部ググれば3秒で解決することをここで聞くな
アホ ググレカス君はコロナにかかれば「うつしてやるおじさん」になりそう ■ Java 質問スレのググれカス君とは
質問と回答に対して罵倒を続ける荒らし
罵倒はワンパターンで、ググれカス、ゴミ、馬鹿、キチガイ、低能、チョンなどを多用します
プログラミングの基礎知識がないため、技術的な事はほとんど言いません
過去の発言でクラス変数とインスタンス変数を勘違いしていたり、基本的な事も理解できていないことが判明しています
どんな回答がついてもそれが間違いだと主張しますが、根拠は示しません
あなたの質問についた回答が正しいかどうかは自分で判断して下さい
彼は自分に対する批判は全部自演だと思っているようなので、構うだけ無駄です >>870
丁寧にテンプレ纏めてくれてるけど、健常者には>>867の1レスを見た瞬間にすぐに察したけどな
まぁこういう奴は、恐らく現実世界での自分の無能さと周りの健常者の実力の余りもの落差に、自分の過剰でしょうも無いゴミプライドが傷ついたから、
ネット上でこうやって人のすることにケチ付けて自分のゴミプライドに付いた傷を舐めて癒やしてるつもりなんだろうな
こういう人間は一生成長しない。
新しく勉強して知識増やしてきてる新参に次々と追い抜かれて益々偏屈なゴミ人格が酷くなるだけ
完全な負のスパイラルに入ってるパターン
関わって何の得も無いから、無視が誰にとってもベスト
↑一応追加テンプレに使えるんじゃね?w 毎回アホな質問してる奴も毎回ワイを逆恨みの妄想で貶してる奴も同じ奴だから注意な
アホな文章からして恐らくアンロード君かアホ君のどっちかなのは確実w
ほんとバカってわかりやすいわw
アホ 「同じ名前のクラスはどうやってらつかえまちゅか!(キリッ!!!」
バカかとアホかと
こんな初心者未満の糞低レベルなことをここで聞く前に
なぜググることもできねーのか低能
そしてこういうくだらないことに回答つけるから馬鹿が増長して
延々と質問を繰り返すんだよ
消えろゴミ
アホ 何の脈絡もなくいきなりjquery出てくるところとかまさに馬鹿っぽいし
まぁこの感じはいつもの馬鹿アンロード君だろうな
アホ 「どうすりゃいい?」、「使いたい。」、「エラーになるんだが?」
そして糞馬鹿のくせになぜかタメ語w
小学生対象のプログラミング教室にでも言ってろ池沼
アホ >過去の発言でクラス変数とインスタンス変数を勘違いしていたり、基本的な事も理解できていないことが判明しています
念のため他の初心者が勘違いするとよくないから書いておくけど
>>831が現実だからな
バカが図星突かれ過ぎて逆恨みしてあることないことを書いてるだけだから注意な 失礼します
>>859
氏ね
>>861
黙れ
>>863
氏ね
失礼しました https://ideone.com/r0mbjJ
このソースに対して
>>734
> もう答え教えてやるけど
> clipをクラス変数で共有してるからだ
これでクラス変数とインスタンス変数間違えてねーからって、無理筋にもほどがあるのでは この馬鹿がマジで何言ってるのかわからんかったけど
ひょっとしてソース読めないから複数スレッド間で共有してるって意味が理解できずに
延々とわけわからんことをずっと喚いてんのか?
ほんと頭弱すぎてやべーな
馬鹿すぎてホントきしょくわりぃわ
ホームラン級のバカのくせにずーーーーーっと低レベルなことでレス返してくんのな
消えろアホ まぁスレッドどうこうを含めなくても池沼すぎて本人以外誰も意味わからんしなw
基本わからん、まともな文章もかけないバカのくせに一人で「インスタンス変数ガー」 って延々と喚いてんのなw
池沼アピールはSNSで一人でブツブツ言ってろ
アホ どこで受けたストレスをここで発散してるんだろう・・・ で、こうやって図星突かれるたびに話逸らすのがパターンなんだよなw
絶対またやってくると思ったわw
バカなんだからレスつけるのやめろってお前ホント
アホ なんつーかもうヤバすぎてこえーんだよなこのスレw
逆切れ、逆恨み、妄想レッテル貼り、ソース読めない池沼、英語読めない池沼
ググって3秒でわかる質問するチンパン、池沼のデパートかよw
まぁほとんど自演だろうけど
アホ 過去に他の人から言われた事をここで言って
あたかも当時の人に仕返しをしてる気分に浸ってるとか? 共有の方の意味なんて誰も話してないでしょ
clip をクラス変数って言ってるのはなんで > clipをクラス変数で
大爆笑wwwwwwwww 妄想で逃げられなくなったらこんどはクラス変数もわからんキチガイのフリか?
かまってほしいのか?一生懸命自演して糞馬鹿w
なにが「それな(キリッ!」 だよwwwwww
クラス変数がわからんのか?wん?どうした?ほら言ってみろ
ク ラ ス 変 数 が わ か ら ん の か ? あーだめだバカ通り越してるから疲れてきたw
まともに意思疎通できないから書いてること全てか何言ってるかわからんしコイツw
これで高校生未満の学生じゃなかったらホラーだよホラーw 池沼専門の言語学者いるなら誰かインスタンス馬鹿君の言いたいこと解読してくれw
もうずっとこの馬鹿が何を言いたくてわけのわからんことを延々とのたまってるのかキモすぎてわからんw
まぁ図星突かれて顔真っ赤になるたびに意味不明なこと言って逃げようとしてるだけだろうけど
アホ >>896
クラス変数がわかりません
教えてお兄ちゃん アホ「クラス変数はインスタンスなくても使える!」
聖者ワイ「アホ君、変数っていうのはね中身入ってないと使えないよ」
アホ「こいつはクラス変数とインスタンス変数が同じと思ってる!(キリィイイイ」
聖者ワイ「何言ってんだこの馬鹿・・・」
聖者ワイ「いいかい、アホ君?クラス変数がスレッド間で共有されてることが問題なんだよ?わかったかい?」
アホ「クラス変数って言ってるのは無理がある!(キリッ!!!!」
アホ2(自演)「それな!!!!!!!!!!!!(キリィイイイイイイイイッ!!!!」
アホ君が池沼すぎて怖いw
介護職の大変さがよくわかるわ アホ君は、アホ君から池沼君にランクアップだなw
急募)誰か池沼君の通訳できる人。時給:プライスレス >>901
クラス変数がなにかわからなくて困ってます! wikiより
クラス変数とは
「クラスから生成される全てのインスタンスで共有可能な特徴を持つ変数である」
「クラスに属する変数という意味である」
わかった池沼君?
アホ >905
>904
文章読めないなら死ね池沼
アホ >>906
clipはクラス変数なの? わからないから教えて!! 日本語読めないチョンはまず日本語学校行こうな
アホ >>908
どういうこと? 説明して! clipはクラス変数なの? クラス変数とは
「クラスから生成される全てのインスタンスで共有可能な特徴を持つ変数である」
「ク ラ ス に 属 す る 変 数 と い う 意 味 で あ る」 「ク ラ ス に 属 す る 変 数 と い う 意 味 で あ る」 >>916
クラスに属するとはどういう意味なの?
その意味でclipはクラス変数なの? >>918
質問読めないの? そっちが日本語学校行けば良いのに
clipはクラス変数? Yes or Noで答えてよ やっぱり質問がわかってない
clipはクラス変数? clipがクラス変数だと思うならYesと言って、clipがクラス変数ではないと思うならNoと言って欲しいの! こいつもしかしてホントにクラス変数がわからんのかw
「クラス変数?クラス変数?クラス変数?」って壊れたラジオみたいに聞いて来るけどw
ほんときっしょくわりぃな >>923
クラス変数の説明はWiki(Wikipediaのことだと思う)を引用してもらったのでそれはもう良い
clipはクラス変数?
初心者の質問に答えられないお兄ちゃんなんて嫌いになっちゃうよ!? 2値の答えを求められてるのに答えられないお兄ちゃんの方が気色悪いよ
お兄ちゃん臭いよ、質問に答えてよ >927
>904
池沼君しつこいぞゴミ低能
クラス変数もわからんのならクビ吊ってとっとと死ね
氏ねじゃなくて死ねきしょくわりぃ
スレを荒らすなゴミ >>928
お兄ちゃんブーリアン型って知ってる?www
全然答えになってないからそこから説明した方が良い? 話逸らして逃げるのはこれでもう5回目ぐらいか?w
おまえが池沼であることはみんな理解してんだから
わざわざ話逸らして逃げなくてもいいぞ低能
アホ >>930
clipはクラス変数なの? true / falseで答えて! 池沼の相手疲れたからあとはお前らが相手してやれw
アホ ググレカス君の型(戻り値)はbooleanじゃないんじゃないの ねえ、もうみんないい加減にしようよ
世間が新型肺炎とか自粛でイライラするのは分かるけどさ、もっと穏便に出来ない?
他のスレはもっと穏やかだよ
ケンカはほどほどにしとこうよ みんなじゃなくて図星突かれた池沼君が逆ギレの逆恨みして一人で俺に噛みついてるだけな
アホ なぜ業務システムとか基幹システムは java で書かれるの?
例えば、python とか go とか rust とか julia ではなぜいけないの? 最近の java は傾向が変わりましたが、
昔の java は Object Oriented でありながら言語仕様が保守的であり、
そしてクラスライブラリが比較的充実していたので、
総合的にみて他の言語にはない無難さを醸成していたのだと考えています 傾向としては強い静的型付け言語は堅牢な大規模システムに向いていて、Javaと同じようにGoも適してる
けどJavaは昔一世を風靡したおかげで安いプログラマーを大量に雇いやすい
だから難易度が低く大規模で人海戦術で品質確保できる業務システムに最適なんだ
技術選定に責任を持つSIerの管理職は、技術に疎いから生産性の高いらしいモダン言語に賭けるよりも、ISOの教科書通りにウォーターフォールで枯れた言語を使う方が色々と安心という力も働く >>941
>生産性の高いらしいモダン言語
最近のモダン言語に、本当に生産性の高いもの、なんてあるのですか?
どのモダン言語も教育コストの高いものばかり… ググレカス君は罵倒する暇あったらちゃんと基礎のお勉強しましょうね 基本もわからん文章も書けないバカのブーメランネタはもういいってキチガイアホ
アホ Cobol, Java, VB が、3大土方言語。
waterfall の下流工程しかやらないから、文法しか知らないし、関数内しか書かない。
単純作業しかない
上流工程の設計間違いも正せないから、設計を学ばない。
ましてや、システム構築運用などは知らない
下流工程は、上流工程で予算のほとんどを抜かれてしまっている。
建築業界と同じの、奴隷土方・多重請負構造
Ruby, シェルスクリプト, Linux,
VSCode, Git, Docker/Kubernetes, CircleCI など、
サーバ構築運用などサーバー側の全工程をやってる、Rubyなどの方が強い
1年ぐらいのRubyist が、20年やってる土方の、上流工程に入ってくるから、価格交渉力も強いw >>939
rustは難しすぎる
goは例外のハンドリングが面倒すぎる
juliaは型がなさすぎる
pythonはスクリプトすぎる 普及してるものを覆すには相当のメリットがないと無理
ideの完成度、処理速度、ライブラリ、フレームワーク、サーバーといった既存資産を捨てさせるほどの魅力は他の言語にはない >>947
ツイッターはRubyを捨てたよね
Rubyはエスアイアがやってるような規模のシステムでは
パフォーマンスを発揮できない
型がないのが致命的 犬小屋を作るんなら設計から材料の調達まで一人でできるだろうけどスカイツリーを建てるときは土方に頼らないと無理 自 分 語 り や め ろ ゴ ミ
こ こ は 雑 談 ス レ じ ゃ ね ぇ ん だ よ 低 能 カ ス 多重請負がクソなのはその通り
小泉の構造改革のせいではあるが当時は失業率を減らすという目的があって理にかなってはいたが失業率が減ってもなおそれに引きずられてしまってるのが現状 ほんと馬鹿ほど過疎スレで自分語りすんだよな
しかもただの知ったか
アホ そういう事か
NGしやすいように似たようなレスしてくれてんのか
つんでれってやつか >>947
Javaが土方呼ばわりなのが何でか分からないんだが?
出来ることめっちゃ幅広くね?
Android、Jsp、Java EEもJavaじゃん。
俺RubyやLinux、Git,Dockerとか全然知らんから他が何の業界に特化してるのか知らんが >>952
嘘ついちゃだめ
Twitterは今でもRails使ってる
全部をScalaとかに移行したわけじゃない
それに日本のSIerがTwitter規模でスケールするシステムを作ることは1万案件に1つもないよ
Rubyに限らず動的言語でまともなシステム作るには
一般的なSIerのJavaプログラマーより高いスキルが必要
それが土方系で採用が少ない理由 J a v a 入 門 ・ 初 心 者 質 問 ス レ
バ カ 猿 の 知 っ た か 業 界 語 り う ぜ ぇ か ら
バ カ 専 用 の ツ イ ッ タ ー で 一 人 で ブ ツ ブ ツ 書 い て ろ ゴ ミ ほんと知恵遅れの馬鹿ほどスレタイ無視して一人でブツブツ雑談始める病気は何なんだろうな
しかもただの知ったかっていうアホっぷり
アホ >>959
ルビーでまともなシスダムを作るのは難しいってことだな J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ ほんとこいつらの頭の悪い知ったかレス見てるとイラっとしてくるんだよな
初心者ってスレタイについてるからアホみたいな奴が
アホみたいな知ったかでレスつけたくなるんだろうけど
糞アホ javaスレで超絶クソ言語のruby推しとかスーパーギャグかますキチガイとか見たこねーわアホw
ググりキーワード
「ruby 糞」
ほんと消えろゴミ >>962
土方系プログラマーがどのくらい低スキルか知らんの?
でも動的言語を型がないと呼んでる君は土方系以下の可能性大 >>939
まず、「基幹系」とは「お金を扱う業種」なので、安定動作とそこそこの速度が求められる。
だから、テストしなくてもある程度エラーを発見してくれるところのコンパイル言語が適している。
その中でも、型がしっかりしているものが適す。
その意味で、型が曖昧な言語は除外される。
また、速度が遅すぎるものも除外される。
だから、スクリプト言語(Pythonなど)は除外。
さらに、GoLangなど、Javaに対する優位性がはっきりしないものも敢えて使われない。
基幹系は、Javaが1位、C#が2位。
JavaとC#は似たもの同士。 javaスレで超絶クソ言語のruby推しとかスーパーギャグかますキチガイとか見たこねーわアホw
ググりキーワード
「ruby 糞」
い ち い ち 自 演 す ん な ゴ ミ
ほんと消えろゴミ >>966
それは人間の話だよね
言語としてはJavaの方がまともなシステムを作りやすい
ということには同意できるよね
スカイツリーのような規模の大きいシステムを作るのは
一人ではできないから組織を作って組織でシステムを作る
それをやってるのがエスアイア
エスアイアがJavaを採用するのは当然の成り行きだよね
なぜならばルビーはまともなシステムを作るのが難しいから J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
4回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
5回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
6回目 >>967
goのゴールーチンは羨ましいけどJavaにも軽量スレッドが導入されるって話もあってJavaは進化し続けてるから乗り換える理由がないんだよね J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
7回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
8回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
9回目 ルビーにも型が導入されるって話があったけど静的型付けで設計されてない言語に型を後付けするのには限界があって中途半端なことになりそうって予想されてたけど結局どうなったんだろ J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
10回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
11回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
12回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
13回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
14回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
15回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
16回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
17回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
18回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
19回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
20回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
21回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
22回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
23回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
24回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
25回目 J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
26回目 >>982
型を書かなくて良いから手っ取り早いとか
悪い面も当然あるけど良い面に焦点を当てるとするなら J a v a 入 門 ・ 初 心 者 質 問 ス レ
い ち い ち 自 演 す ん な ゴ ミ
27回目 >>998 ←こんなアホ丸出しの馬鹿が関係ないネタで連投自演しまくってんだから
もうこんなスレ立てなくていいぞアホ
アホ このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 388日 13時間 0分 35秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。