Java初心者のためのスレッドです。
※前スレ
Java入門・初心者質問スレ Part.8
http://mevius.5ch.net/test/read.cgi/tech/1528370228/
Java入門・初心者質問スレ Part.9
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2019/03/09(土) 23:59:15.92ID:ACok0wnJ475デフォルトの名無しさん
2020/03/07(土) 19:39:14.89ID:Xru7mKy/ 独り言で荒らすなゴミ
ブログにでも書いてろキチガイ
ブログにでも書いてろキチガイ
476デフォルトの名無しさん
2020/03/07(土) 19:50:24.86ID:kM7Orw13 MutexやReentrantLockを使っているところを、ReadWriteLock(Atomic***などを含む)で置き換えられるか?
と考えることはあっても、volatileにするかどうかはまず考えないだろう。
と考えることはあっても、volatileにするかどうかはまず考えないだろう。
477デフォルトの名無しさん
2020/03/08(日) 03:17:20.21ID:F9PCMLD5 長文のString を返すだけのメソッドが大量にあるクラスって、コードキャッシュ領域に大量のメモリ確保しますか?
それとも、各メソッドが呼ばれた時に、DB からのロードのようにオンデマンドでメモリ確保しますか?
それとも、各メソッドが呼ばれた時に、DB からのロードのようにオンデマンドでメモリ確保しますか?
478デフォルトの名無しさん
2020/03/08(日) 03:18:45.87ID:F9PCMLD5 長文のString を返すだけのメソッドが大量にあるクラスって、(クラスがロードされた時点で)コードキャッシュ領域に大量のメモリ確保しますか?
それとも、各メソッドが呼ばれた時に、DB からのロードのようにオンデマンドでメモリ確保しますか?
括弧内書き忘れました
それとも、各メソッドが呼ばれた時に、DB からのロードのようにオンデマンドでメモリ確保しますか?
括弧内書き忘れました
479デフォルトの名無しさん
2020/03/08(日) 04:38:49.57ID:dGkdYPVv ググれカス
コードキャッシュ領域ってなんだよ
まずJVMのクラスローダーの仕組みから調べて出直せ
回答見てても基本的知識ない奴等しかおらんから間違った回答しまくってるし
おまえらはもう全員回答するな
100万回ググれカス
コードキャッシュ領域ってなんだよ
まずJVMのクラスローダーの仕組みから調べて出直せ
回答見てても基本的知識ない奴等しかおらんから間違った回答しまくってるし
おまえらはもう全員回答するな
100万回ググれカス
480デフォルトの名無しさん
2020/03/08(日) 05:17:04.58ID:aOgn+sBu481デフォルトの名無しさん
2020/03/08(日) 05:18:46.89ID:dGkdYPVv グ グ れ カ ス
ゴミ
ゴミ
482デフォルトの名無しさん
2020/03/08(日) 06:53:05.65ID:F9PCMLD5 クラスローダってバイトコード読んでクラスをロードするから、
その読まれたバイトコードの機械語に相当する部分がJVMヒープ外のコードキャッシュ領域に保持されるって認識だったんだけど違ってるんかな
フィールド値の String は、ヒープの中の String Constant Pool って領域があってそこに確保されてる(String.intern() とかで確認できる)
というのはとりあえず基本的なこととして
メソッドの中のローカル変数の String は、メソッドがコールスタックに存在する時は当然JVMスタックに存在してるだろうけど、
メソッドがコールスタックにない時は、どうなってるのかなと
呼ばれた時に割り当てられるのか、クラスがロードされてれば呼ばれてないときもメモリが確保されてるのか
あと、すまんが例の人はすぐNGにするからそっちにレスしても見えんかも
その読まれたバイトコードの機械語に相当する部分がJVMヒープ外のコードキャッシュ領域に保持されるって認識だったんだけど違ってるんかな
フィールド値の String は、ヒープの中の String Constant Pool って領域があってそこに確保されてる(String.intern() とかで確認できる)
というのはとりあえず基本的なこととして
メソッドの中のローカル変数の String は、メソッドがコールスタックに存在する時は当然JVMスタックに存在してるだろうけど、
メソッドがコールスタックにない時は、どうなってるのかなと
呼ばれた時に割り当てられるのか、クラスがロードされてれば呼ばれてないときもメモリが確保されてるのか
あと、すまんが例の人はすぐNGにするからそっちにレスしても見えんかも
483デフォルトの名無しさん
2020/03/08(日) 07:00:46.66ID:F9PCMLD5 コールスタックに存在するときも、ローカルだろうが文字列リテラルの中身は、JVMスタックじゃなく、多分JVMヒープか(String 内のプール)
とりあえず、コールスタックにない時どうなってるのかという疑問はそのまままだあります
とりあえず、コールスタックにない時どうなってるのかという疑問はそのまままだあります
484デフォルトの名無しさん
2020/03/08(日) 07:12:55.76ID:dGkdYPVv コードキャッシュ領域なんて言葉はない
あと知識が滅茶苦茶&ぐちゃぐちゃでクラスローダーの基本的な動作以前に
メモリ領域の区別も理解できてない
調べた事を適当に解釈するんじゃなくて
一つ一つ整理することを覚えろ
もう1回だけアドバイスしてやる
グ グ レ 糞 ボ ケ カ ス
あと知識が滅茶苦茶&ぐちゃぐちゃでクラスローダーの基本的な動作以前に
メモリ領域の区別も理解できてない
調べた事を適当に解釈するんじゃなくて
一つ一つ整理することを覚えろ
もう1回だけアドバイスしてやる
グ グ レ 糞 ボ ケ カ ス
485デフォルトの名無しさん
2020/03/08(日) 09:30:41.35ID:Q/UcMpCA 自信を持てる事が1つしかない人が住み着いてるなぁ
486デフォルトの名無しさん
2020/03/08(日) 11:26:24.54ID:2fZbJlty ぐぐれかすで済まされてしまうと
そもそもこのスレはいらないことになってしまう
そもそもこのスレはいらないことになってしまう
487デフォルトの名無しさん
2020/03/08(日) 12:27:55.81ID:FBA+pquR それな
Java初心者のためのスレッドですと最初に宣言されてる
イライラの撒き散らちしの方が多くなってるならこのスレを見ないのが賢明
Java初心者のためのスレッドですと最初に宣言されてる
イライラの撒き散らちしの方が多くなってるならこのスレを見ないのが賢明
488デフォルトの名無しさん
2020/03/08(日) 13:49:00.36ID:hM31dvE+ >>473
なるほど
なるほど
489デフォルトの名無しさん
2020/03/08(日) 16:20:38.13ID:P5NrKt8/ >>482,483
大雑把に言うと、
(メソッド中に散らばっているようなものを含めて)ソースコード上でStringリテラルとして記述されている文字列は、
コンパイル時にclassファイルのコンスタントプールにまとめられて、
classロード時に(JVMヒープ上の)実行時コンスタントプールにロードされます。
この辺きちんと理解したいなら、ググるんじゃなくてJVMS読めばいいです。ちゃんと書いてあります。
(ところでこれ、入門・初心者の質問?)
大雑把に言うと、
(メソッド中に散らばっているようなものを含めて)ソースコード上でStringリテラルとして記述されている文字列は、
コンパイル時にclassファイルのコンスタントプールにまとめられて、
classロード時に(JVMヒープ上の)実行時コンスタントプールにロードされます。
この辺きちんと理解したいなら、ググるんじゃなくてJVMS読めばいいです。ちゃんと書いてあります。
(ところでこれ、入門・初心者の質問?)
490デフォルトの名無しさん
2020/03/08(日) 16:37:39.04ID:dGkdYPVv にわか知識からくる質問だから初心者レベルなのは間違いない
あと説明不足な上に回答不十分
自分の中で咀嚼できないなら回答レスはしないほうがいい
あと説明不足な上に回答不十分
自分の中で咀嚼できないなら回答レスはしないほうがいい
491デフォルトの名無しさん
2020/03/08(日) 17:09:44.06ID:F9PCMLD5 >>489
ありがとうございます
ということは、ローカルのStringリテラルもクラスロードした時点でメモリにはずっと載ってるイメージですかね
やっぱり長文はしっかり管理するなら外部ファイルから読んだ方が良さそうですね
ありがとうございます
ということは、ローカルのStringリテラルもクラスロードした時点でメモリにはずっと載ってるイメージですかね
やっぱり長文はしっかり管理するなら外部ファイルから読んだ方が良さそうですね
492デフォルトの名無しさん
2020/03/08(日) 17:18:26.01ID:dGkdYPVv 全然説明になってないからこんな風に全く理解してないんだよね
こうやって勝手に解釈して間違った知識を自分の脳に植え付けるってことを繰り返しちゃうんだよ
にわかども逝ってよし
激しく自演臭いけど
こうやって勝手に解釈して間違った知識を自分の脳に植え付けるってことを繰り返しちゃうんだよ
にわかども逝ってよし
激しく自演臭いけど
493デフォルトの名無しさん
2020/03/08(日) 19:06:41.84ID:Q/UcMpCA 自分では答えもせず回答者にケチをつけるだけのイライラ君
494デフォルトの名無しさん
2020/03/08(日) 21:53:57.00ID:P5NrKt8/ ごめんなさい、読み返してみたら>>489はいい加減すぎますね。
> classロード時に(JVMヒープ上の)実行時コンスタントプールにロードされます。
は
(classファイルのコンスタントプールの文字列は)
> classロード時に(存在してなければ)Stringのインスタンスとして(ヒープ上に)ロードされ
> そのStringインスタンスへの参照がクラスの実行時コンスタントプールに保持されます。
と書くべきでした。長いけど。
> classロード時に(JVMヒープ上の)実行時コンスタントプールにロードされます。
は
(classファイルのコンスタントプールの文字列は)
> classロード時に(存在してなければ)Stringのインスタンスとして(ヒープ上に)ロードされ
> そのStringインスタンスへの参照がクラスの実行時コンスタントプールに保持されます。
と書くべきでした。長いけど。
495デフォルトの名無しさん
2020/03/08(日) 22:07:06.38ID:P5NrKt8/ >>491
ソースコード上のStringリテラル由来の文字列(Stringのインスタンス)はクラスに紐付いているので、
クラスがアンロードされない限りヒープ上に確保され続けるのはその通りです。
ただ、「メモリを節約するために」文字列を外部化する、というのは一般的にはおすすめできません。
(もちろん、国際化対応などを考えると意味が無いわけではありませんが)
一応初心者スレなので、
他の方が「文字列って無駄にメモリを消費してるんだ」などと思い込んでほしくはないので、
念の為に書いておきます。
ソースコード上のStringリテラル由来の文字列(Stringのインスタンス)はクラスに紐付いているので、
クラスがアンロードされない限りヒープ上に確保され続けるのはその通りです。
ただ、「メモリを節約するために」文字列を外部化する、というのは一般的にはおすすめできません。
(もちろん、国際化対応などを考えると意味が無いわけではありませんが)
一応初心者スレなので、
他の方が「文字列って無駄にメモリを消費してるんだ」などと思い込んでほしくはないので、
念の為に書いておきます。
496デフォルトの名無しさん
2020/03/09(月) 08:30:09.11ID:5nsxMNcI >>495
詳しくありがとうございます
> ただ、「メモリを節約するために」文字列を外部化する、というのは一般的にはおすすめできません。
これは、UIやグラフィクスのメモリ消費に対して、文字列の消費するメモリが大した量でないという意味でしょうか?
Java の String はヒープ中では UTF-16 ですから、基本的には1文字 2byte、100文字200byte くらい、
ヘルプメッセージとかエラーメッセージとか、100文字1000個くらいあったら、20MB くらいですか
もちろん、クラスが使われなくなったらアンロードもされるかもしれないですが(アンロードの周期などの実装仕様は詳しく知らないです)
---
ちなみに上記の文字数が294文字でした
詳しくありがとうございます
> ただ、「メモリを節約するために」文字列を外部化する、というのは一般的にはおすすめできません。
これは、UIやグラフィクスのメモリ消費に対して、文字列の消費するメモリが大した量でないという意味でしょうか?
Java の String はヒープ中では UTF-16 ですから、基本的には1文字 2byte、100文字200byte くらい、
ヘルプメッセージとかエラーメッセージとか、100文字1000個くらいあったら、20MB くらいですか
もちろん、クラスが使われなくなったらアンロードもされるかもしれないですが(アンロードの周期などの実装仕様は詳しく知らないです)
---
ちなみに上記の文字数が294文字でした
497デフォルトの名無しさん
2020/03/09(月) 08:32:01.99ID:5nsxMNcI 失礼、20MB > 200KB ですね
498デフォルトの名無しさん
2020/03/09(月) 12:48:12.24ID:ZlKVPwI9 ググレカス
少しは質問する前に自分で試すかググったらどうだ?ん?
幼稚園児かお前は?ん?
少しは質問する前に自分で試すかググったらどうだ?ん?
幼稚園児かお前は?ん?
499デフォルトの名無しさん
2020/03/09(月) 17:45:24.63ID:CR1lspV9 ん?ん?
500デフォルトの名無しさん
2020/03/09(月) 18:34:19.48ID:ZlKVPwI9 クラスローダーの超基本的な動作すらわかってない奴等同士でレスつけてるから
間違ったことを延々とレス合ってるのが滑稽すぎて楽しいねw
なんだよクラスのアンロードってw
ggrks
間違ったことを延々とレス合ってるのが滑稽すぎて楽しいねw
なんだよクラスのアンロードってw
ggrks
501デフォルトの名無しさん
2020/03/09(月) 21:11:33.64ID:CR1lspV9 ん?ん?
502デフォルトの名無しさん
2020/03/09(月) 21:12:12.21ID:YzBqyBpd んん
503デフォルトの名無しさん
2020/03/09(月) 21:15:51.32ID:URBZWRA9 SwingWorkerクラスを繰り返し使うと10個デーモンスレッドができるんですけど、なんで1個だけじゃないんですか?
インスタンスを破棄するのを忘れているせいでしょうか?でも10回以上実行しても10個以上になりません。
インスタンスを破棄するのを忘れているせいでしょうか?でも10回以上実行しても10個以上になりません。
504デフォルトの名無しさん
2020/03/09(月) 21:19:44.52ID:ZlKVPwI9 ググれカス
505デフォルトの名無しさん
2020/03/09(月) 21:44:27.76ID:5nsxMNcI >>503
内部的に ExecutorService 使ってるから、何個も同時にexecute すれば、スレッドは1個じゃないよん!
System.out.println(Thread.currentThread().getName());
で通し番号的なの見れるから、確認したいならおすすめだよん!!
内部的に ExecutorService 使ってるから、何個も同時にexecute すれば、スレッドは1個じゃないよん!
System.out.println(Thread.currentThread().getName());
で通し番号的なの見れるから、確認したいならおすすめだよん!!
506デフォルトの名無しさん
2020/03/09(月) 21:53:35.55ID:5nsxMNcI new ThreadPoolExecutor(MAX_WORKER_THREADS, MAX_WORKER_THREADS,
10L, TimeUnit.MINUTES,
new LinkedBlockingQueue<Runnable>(),
threadFactory);
この部分が SwingWorker の ExecutorService 実装の部分だよ!
スレッドプールを使ってて、10個のスレッドをプールして使うようになってるね!!
すぐ終了する Worker 走らせても、スレッドプールは次のタスクに備えるために、スレッドを10個まで残しておくよ!
10L, TimeUnit.MINUTES,
new LinkedBlockingQueue<Runnable>(),
threadFactory);
この部分が SwingWorker の ExecutorService 実装の部分だよ!
スレッドプールを使ってて、10個のスレッドをプールして使うようになってるね!!
すぐ終了する Worker 走らせても、スレッドプールは次のタスクに備えるために、スレッドを10個まで残しておくよ!
507デフォルトの名無しさん
2020/03/09(月) 22:08:08.58ID:ZlKVPwI9 クラスのアンロードとか言ってるアホは回答側にまわってはいけない
回答したくても自重するように
回答したくても自重するように
508デフォルトの名無しさん
2020/03/09(月) 22:09:35.45ID:ZlKVPwI9 と思ったら質問厨のアホか
君の回答は全部間違ってるので絶対に回答側にまわってはいけない
今後質問もしてはいけない
ググって勉強
君の回答は全部間違ってるので絶対に回答側にまわってはいけない
今後質問もしてはいけない
ググって勉強
509デフォルトの名無しさん
2020/03/09(月) 22:18:54.57ID:ZlKVPwI9 そもそもだな
初心者と初心者未満がマルチスレッドプログラミングをしてはいけない
初心者と初心者未満がマルチスレッドプログラミングをしてはいけない
510デフォルトの名無しさん
2020/03/09(月) 22:40:07.04ID:BCuofv/t ええやろ
511デフォルトの名無しさん
2020/03/10(火) 05:17:21.61ID:9vkl8TPx ハロワの求職者支援訓練に40代向けのJava講座あるんだけどプログラミングっておっさんでも始められるもんなん?
512デフォルトの名無しさん
2020/03/10(火) 05:26:08.30ID:3BlP5Izm プログラミングを始めるだけなら簡単
IT企業への就職の方がよっぽど難しい
IT企業への就職の方がよっぽど難しい
513デフォルトの名無しさん
2020/03/10(火) 05:36:19.04ID:9vkl8TPx >>512
IT業務は人手不足って聞いたけどそれでも高齢だと就職難しい?
IT業務は人手不足って聞いたけどそれでも高齢だと就職難しい?
514デフォルトの名無しさん
2020/03/10(火) 05:39:32.76ID:3BlP5Izm >>513
仕事を選ばなければあることはあるよ
仕事を選ばなければあることはあるよ
515デフォルトの名無しさん
2020/03/10(火) 05:54:32.14ID:9vkl8TPx >>514
そうですか、挑戦してみてもいいですかね。ありがとうございます
そうですか、挑戦してみてもいいですかね。ありがとうございます
516デフォルトの名無しさん
2020/03/10(火) 05:59:35.16ID:3BlP5Izm517デフォルトの名無しさん
2020/03/10(火) 06:08:16.69ID:9vkl8TPx >>516
なるほど。そうですよね。一度やってみます
なるほど。そうですよね。一度やってみます
518デフォルトの名無しさん
2020/03/10(火) 08:47:54.44ID:kYBXWStN >>506
ありがとうございます。正常な動作なんですね。安心しました。
ありがとうございます。正常な動作なんですね。安心しました。
519デフォルトの名無しさん
2020/03/10(火) 08:57:13.80ID:SOZ0FlFe 代替の回答もせずにケチつけるだけの異常者
520デフォルトの名無しさん
2020/03/10(火) 14:14:41.48ID:WfcRHOjd そんな人はいない、ただレス番が飛んでるだけ
521デフォルトの名無しさん
2020/03/10(火) 15:10:36.12ID:WfcRHOjd >>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 のメモリ読んで文字列の有無を確認
とかも面白そう
チートエンジンとかでも出来るんかな
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 のメモリ読んで文字列の有無を確認
とかも面白そう
チートエンジンとかでも出来るんかな
522デフォルトの名無しさん
2020/03/10(火) 15:17:15.01ID:WfcRHOjd あと、クラスのアンロードは、クラスローダの参照とインスタンスへの参照が全部なくならないとアンロードされない
システムクラスローダとかからロードしてるクラスの場合、一度読んだクラスはアンロードされない
システムクラスローダとかからロードしてるクラスの場合、一度読んだクラスはアンロードされない
523デフォルトの名無しさん
2020/03/10(火) 16:04:24.33ID:SOZ0FlFe そういう確認はメモリエディタが便利だね
524デフォルトの名無しさん
2020/03/10(火) 18:16:00.38ID:inz7zISD >>521
クラスがロードされる時に(classファイルの)コンスタントプールから(既存でなければ)生成されるStringインスタンスは、
クラスがそのStringインスタンスへの参照を(実行時コンスタントプールに)保持しているので、
そのクラスが生存している(アンロードされない)限り、
GCで回収の対象にはなりません。
(回収されてしまったら大変)
クラスがロードされる時に(classファイルの)コンスタントプールから(既存でなければ)生成されるStringインスタンスは、
クラスがそのStringインスタンスへの参照を(実行時コンスタントプールに)保持しているので、
そのクラスが生存している(アンロードされない)限り、
GCで回収の対象にはなりません。
(回収されてしまったら大変)
525デフォルトの名無しさん
2020/03/10(火) 19:24:51.92ID:WfcRHOjd >>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 で、メモリ上の実体がそこにあるわけじゃないように思うんだけど
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 で、メモリ上の実体がそこにあるわけじゃないように思うんだけど
526デフォルトの名無しさん
2020/03/10(火) 19:34:58.74ID:WfcRHOjd あぁごめん、参照で持ってるからこそプール上の String がGCされないって言ってるのか
527デフォルトの名無しさん
2020/03/10(火) 19:49:00.59ID:9vkl8TPx ここ本当に初心者スレなんですかね・・・
528デフォルトの名無しさん
2020/03/10(火) 20:00:32.03ID:WfcRHOjd https://stackoverflow.com/a/2433076
このコード実行してみて、System.gc() をコメントアウトしたときと比べてみると、やっぱり String Literal って GC されてるんじゃない?
new String してるんだけど、intern してるから、プール上の String が GC されてる証拠って言えるよねこれ
このコード実行してみて、System.gc() をコメントアウトしたときと比べてみると、やっぱり String Literal って GC されてるんじゃない?
new String してるんだけど、intern してるから、プール上の String が GC されてる証拠って言えるよねこれ
529デフォルトの名無しさん
2020/03/10(火) 20:06:45.70ID:WfcRHOjd なんどもすまん、でも、リテラルで持ってるわけじゃないのかこのプログラム
new String のところを、new String("fkasdjf;lsdkjfasdljfdlkfjadsfjsad;kljfadjfkdas;")
とかってすると、System.gc しても結局全部同じ値返したわ
ということは、ソースコードにリテラル直接書き込むと、クラス自体がアンロードされない限りやっぱりプールにずっと残るんか
うーん、もうちょっといろいろ試してみよう…
new String のところを、new String("fkasdjf;lsdkjfasdljfdlkfjadsfjsad;kljfadjfkdas;")
とかってすると、System.gc しても結局全部同じ値返したわ
ということは、ソースコードにリテラル直接書き込むと、クラス自体がアンロードされない限りやっぱりプールにずっと残るんか
うーん、もうちょっといろいろ試してみよう…
530デフォルトの名無しさん
2020/03/10(火) 20:36:01.83ID:inz7zISD531デフォルトの名無しさん
2020/03/10(火) 20:37:11.37ID:Lvz0sNoZ 基本がわかってないからゴミみたいな駄レスでスレを消費するアホども
いまだにクラスのアンロードとか言ってるしw
スレを荒らすなゴミども
SNSでやれゴミ
いまだにクラスのアンロードとか言ってるしw
スレを荒らすなゴミども
SNSでやれゴミ
532デフォルトの名無しさん
2020/03/10(火) 20:40:15.96ID:inz7zISD >>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()
しても同じインスタンスが得られます。
「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()
しても同じインスタンスが得られます。
533デフォルトの名無しさん
2020/03/10(火) 20:48:34.87ID:WfcRHOjd >>532
なるほどです
すみません、同じことを言い直させてしまいましたね
カスタムクラスローダ作って、参照を消してクラスをアンロードするってのが
コード中の文字列リテラルをGCさせられる唯一の方法ってことになるんですかね
ヒアドキュメントがJavaにもそのうち来ますし、
この辺ちょっと気になってたので詳しく調べられて良かったです
ありがとうございました
なるほどです
すみません、同じことを言い直させてしまいましたね
カスタムクラスローダ作って、参照を消してクラスをアンロードするってのが
コード中の文字列リテラルをGCさせられる唯一の方法ってことになるんですかね
ヒアドキュメントがJavaにもそのうち来ますし、
この辺ちょっと気になってたので詳しく調べられて良かったです
ありがとうございました
534デフォルトの名無しさん
2020/03/10(火) 20:54:00.05ID:Lvz0sNoZ 3行で説明できることをよくまぁここまでゴミレスの長文合戦できるもんだな
そして最後まで何も理解してないっていう
こんな奴等に正解を教えてやったところで何も成長しないだろう
ほんと酷いね
そして最後まで何も理解してないっていう
こんな奴等に正解を教えてやったところで何も成長しないだろう
ほんと酷いね
535デフォルトの名無しさん
2020/03/10(火) 23:24:43.75ID:CTyaWFt8 >>534
3行で説明してみろよ、おん?
3行で説明してみろよ、おん?
536デフォルトの名無しさん
2020/03/10(火) 23:41:34.56ID:jsNl1GfH 3行とは言ったが、1行の文字数は指定していない
537デフォルトの名無しさん
2020/03/10(火) 23:48:11.46ID:CTyaWFt8 >>536
なるほど、すみませんでした
なるほど、すみませんでした
538デフォルトの名無しさん
2020/03/10(火) 23:53:47.08ID:jsNl1GfH539デフォルトの名無しさん
2020/03/10(火) 23:56:27.67ID:CTyaWFt8 何文字になっても良いから3行で説明してみろよ、おん?
540デフォルトの名無しさん
2020/03/11(水) 00:25:51.64ID:h5h5BksH へ
る
ぷ
る
ぷ
541デフォルトの名無しさん
2020/03/11(水) 00:50:42.16ID:X5iYXCki >>527
ここはプログラム板で素人がどうこう言うところではない。
ここはプログラム板で素人がどうこう言うところではない。
542デフォルトの名無しさん
2020/03/11(水) 00:52:58.23ID:wch4nyun543デフォルトの名無しさん
2020/03/11(水) 01:09:02.89ID:l8+4vwtz メモリ領域の区別、classファイル、実態
クラスローダーがこれらをどういう風に割り当てるかっていう基本的なことを理解してれば
上のような意味不明で何も理解してない疑問は出てこないんだよね
何も理解してないのに理解したつもりになってわからないことを背伸びして知ろうとするから
アホみたいな駄文の応酬を繰り広げる
ググれカス
何回も言わせるな
クラスローダーがこれらをどういう風に割り当てるかっていう基本的なことを理解してれば
上のような意味不明で何も理解してない疑問は出てこないんだよね
何も理解してないのに理解したつもりになってわからないことを背伸びして知ろうとするから
アホみたいな駄文の応酬を繰り広げる
ググれカス
何回も言わせるな
544デフォルトの名無しさん
2020/03/11(水) 02:30:08.29ID:KFvIJzGT 未経験からの新人研修中で上司にいびられてストレス発散ってところか多分
自分が言われたことをそのままスレでリピートしてる
クラスのアンロードも知らんようだし、基本的なことも理解してなさそう
自分が言われたことをそのままスレでリピートしてる
クラスのアンロードも知らんようだし、基本的なことも理解してなさそう
545デフォルトの名無しさん
2020/03/11(水) 02:33:53.03ID:l8+4vwtz 自分の馬鹿を棚に上げて妄想に逃げるのは勝手だが
間違ったレスを延々と繰り返してスレを荒らすなゴミ
あとクラスのアンロードなんていうものはないアホ
どこでこんな間違った知識拾って来たのか知らんけど
間違ったレスを延々と繰り返してスレを荒らすなゴミ
あとクラスのアンロードなんていうものはないアホ
どこでこんな間違った知識拾って来たのか知らんけど
546デフォルトの名無しさん
2020/03/11(水) 08:20:08.48ID:1d+VOVWW 完全に理解した人の説明が見てみたいです
(どうせ無理だろうけど)
(どうせ無理だろうけど)
547デフォルトの名無しさん
2020/03/11(水) 09:12:35.75ID:h5h5BksH ここまで具体的な技術的内容なし
548デフォルトの名無しさん
2020/03/11(水) 09:23:46.28ID:NS002VYr >>542
一応基本情報と応用情報の勉強シテマス
一応基本情報と応用情報の勉強シテマス
549デフォルトの名無しさん
2020/03/11(水) 13:03:22.16ID:KFvIJzGT >>545
https://docs.oracle.com/javase/specs/jls/se13/html/jls-12.html#jls-12.7
12.7. Unloading of Classes and Interfaces
あれ?偉そうに言っといて、言語仕様も読んだことないんですか?
https://docs.oracle.com/javase/specs/jls/se13/html/jls-12.html#jls-12.7
12.7. Unloading of Classes and Interfaces
あれ?偉そうに言っといて、言語仕様も読んだことないんですか?
550デフォルトの名無しさん
2020/03/11(水) 16:51:32.97ID:l8+4vwtz それはGCがクラスを破棄する可能性を示唆することを説明しただけであって
ブートストラップクラスローダーはアンロードしないことを説明してんだよ
自分で貼ったリンクも理解せずにドヤ顔で貼ってどんだけ馬鹿なんだお前
アホ
ブートストラップクラスローダーはアンロードしないことを説明してんだよ
自分で貼ったリンクも理解せずにドヤ顔で貼ってどんだけ馬鹿なんだお前
アホ
551デフォルトの名無しさん
2020/03/11(水) 17:40:25.14ID:l8+4vwtz 理解してないのに理解したつもり
英語読めないのに英語のドキュメントを貼る
プログラムの勉強始めたばかりの中学生だろうけど
ここはガキの遊び場じゃないからSNSでやれ
アホ
英語読めないのに英語のドキュメントを貼る
プログラムの勉強始めたばかりの中学生だろうけど
ここはガキの遊び場じゃないからSNSでやれ
アホ
552デフォルトの名無しさん
2020/03/11(水) 19:19:10.36ID:g4YF3nHK553デフォルトの名無しさん
2020/03/11(水) 19:32:05.86ID:l8+4vwtz 何言ってんだコイツ?ガチもんの池沼か?
クラスのアンロードなんてねーからキチガイ
こういう風に単語の断片だけ拾って
クラスローダーがさもクラスをアンロードするかのように嘘の説明をして
初心者未満同士で駄文をまき散らしてスレを荒らす
君たちのような池沼用にツイッターとかあるんだからそっちでやろうな
クラスのアンロードなんてねーからキチガイ
こういう風に単語の断片だけ拾って
クラスローダーがさもクラスをアンロードするかのように嘘の説明をして
初心者未満同士で駄文をまき散らしてスレを荒らす
君たちのような池沼用にツイッターとかあるんだからそっちでやろうな
554デフォルトの名無しさん
2020/03/11(水) 19:34:40.59ID:5Fe0YPz5 荒らしを喜ばせると過疎ってしまうぞ
555デフォルトの名無しさん
2020/03/11(水) 20:24:04.80ID:+i7jOaKz 仕様に思いっきりそのままの言葉で載ってるものを存在しないよばわり
さすがに言い訳が見苦しすぎる
3連投とかどんだけ悔しかったんだよ
さすがに言い訳が見苦しすぎる
3連投とかどんだけ悔しかったんだよ
556デフォルトの名無しさん
2020/03/11(水) 20:28:44.05ID:l8+4vwtz お前が見苦しすぎてこっちがこっぱずかしいわキチガイ
おまえが取り上げてるのは単語だけだアホ
今まで散々間違った説明したあげく自分で何も理解してないリンク貼って
今度は開き直ってるし
ここはおまえのようなキチガイが居て良い場所ではない
何回でも言うが「クラスのアンロードなんてものはない」
即刻立ち去れゴミ
おまえが取り上げてるのは単語だけだアホ
今まで散々間違った説明したあげく自分で何も理解してないリンク貼って
今度は開き直ってるし
ここはおまえのようなキチガイが居て良い場所ではない
何回でも言うが「クラスのアンロードなんてものはない」
即刻立ち去れゴミ
557デフォルトの名無しさん
2020/03/11(水) 20:30:29.14ID:yIZJThZp どっちの言い分が正しいのか?
http://www.nminoru.jp/~nminoru/java/class_unloading.html
http://www.nminoru.jp/~nminoru/java/class_unloading.html
558デフォルトの名無しさん
2020/03/11(水) 20:34:08.40ID:l8+4vwtz そもそも間違い指摘してやって開き直るとか
どんだけキチガイなんだこいつ
そんでゴミ同士で間違ったレスの応酬ずっとしてんのなw
逝って良し
アホ
どんだけキチガイなんだこいつ
そんでゴミ同士で間違ったレスの応酬ずっとしてんのなw
逝って良し
アホ
559デフォルトの名無しさん
2020/03/11(水) 20:34:54.65ID:uSPbkipe 連続レスも、返信ないのに1時間、2時間と時間空いててどんだけイライラしてるか伝わってくるようだな
その上批判的なレスがあったら即レス
他にすること無いんかお前、さすがにもう少し時間有意義に使った方がいいぞ
その上批判的なレスがあったら即レス
他にすること無いんかお前、さすがにもう少し時間有意義に使った方がいいぞ
560デフォルトの名無しさん
2020/03/11(水) 20:39:07.63ID:l8+4vwtz イライラがどうとか言い訳とか話題逸らしして逃げるのは勝手だけど
だらだらと負け犬の遠吠えのごとく駄文レスつけてないで
自分の頭の悪さがわかったらとっととSNSにでも帰れよキチガイ初心者未満は
だらだらと負け犬の遠吠えのごとく駄文レスつけてないで
自分の頭の悪さがわかったらとっととSNSにでも帰れよキチガイ初心者未満は
561デフォルトの名無しさん
2020/03/11(水) 20:46:38.85ID:+i7jOaKz > GCがクラスを破棄する可能性
それがクラスのアンロードそのものでは
仕様にもそう書いてある
それを存在しないって言っといてブートストラップクラスローダはアンロードしないとか無理筋すぎる
それがクラスのアンロードそのものでは
仕様にもそう書いてある
それを存在しないって言っといてブートストラップクラスローダはアンロードしないとか無理筋すぎる
562デフォルトの名無しさん
2020/03/11(水) 21:04:31.15ID:l8+4vwtz 可能性の話だし永続領域に読込まれたクラスが破棄されるなんてことがあったら
javaプログラム自体が破綻する
つまりアンロードなんてない
そんなことも理解してないのにさもクラスがアンロードされるみたいな風に書いてるから馬鹿にされるんだよ
何回同じレスさせるんだろうこのチンパン君は
javaプログラム自体が破綻する
つまりアンロードなんてない
そんなことも理解してないのにさもクラスがアンロードされるみたいな風に書いてるから馬鹿にされるんだよ
何回同じレスさせるんだろうこのチンパン君は
563デフォルトの名無しさん
2020/03/11(水) 21:05:03.00ID:GZ2m78N1 間違いを指摘してやって〜とか言ってるけど、この人わめき散らすだけで何一つ技術的な指摘はしてないよね
唯一したのが、「クラスのアンロードなんていうものはない」という間違った指摘
技術的な話なしで煽ってるだけなのに知識の浅さ露呈するとか天才かよ
唯一したのが、「クラスのアンロードなんていうものはない」という間違った指摘
技術的な話なしで煽ってるだけなのに知識の浅さ露呈するとか天才かよ
564デフォルトの名無しさん
2020/03/11(水) 21:08:30.98ID:l8+4vwtz っつーかおまえ自分で貼ったリンク読めないのに何言ってんの感じなんだけど
モンスター初心者にもほどがあるわ
アンロードしないっておもいっきり書いてんだよアホ
英語読めないのにカッコつけて「仕様に書いてる!(キリッ」 じゃねーよアホ
頭逝かれてすぎだろキチガイ
モンスター初心者にもほどがあるわ
アンロードしないっておもいっきり書いてんだよアホ
英語読めないのにカッコつけて「仕様に書いてる!(キリッ」 じゃねーよアホ
頭逝かれてすぎだろキチガイ
565デフォルトの名無しさん
2020/03/11(水) 21:12:44.79ID:1Fzb6hin 傍観してたけど、この人って前からずっとスレにいるの?
ググれカスさんが居座るようならさすがに誰にとっても得がないので、ワッチョイかIPスレ建てるしかないのでは
ググれカスさんが居座るようならさすがに誰にとっても得がないので、ワッチョイかIPスレ建てるしかないのでは
566デフォルトの名無しさん
2020/03/11(水) 21:23:53.32ID:l8+4vwtz やんわりと間違い指摘してやっても逆ギレして噛みついてくるんだからどうしようもないやん
さらには間違いを間違いと認めずこっちが間違ってるかのようなレスつけて
言い訳がーとかイライラガーとか言ってくるんだから手に負えない
自分で持ち出したリンクの中身すら読んでないまたは読めない
もう病気だと思うけどねこの手の初心者は
さらには間違いを間違いと認めずこっちが間違ってるかのようなレスつけて
言い訳がーとかイライラガーとか言ってくるんだから手に負えない
自分で持ち出したリンクの中身すら読んでないまたは読めない
もう病気だと思うけどねこの手の初心者は
567デフォルトの名無しさん
2020/03/11(水) 23:00:34.82ID:X+Diq7DJ 病気なのは誰がどう見てもお前
568デフォルトの名無しさん
2020/03/11(水) 23:11:29.92ID:l8+4vwtz なんでこう基本すらわかってない奴が背伸びして
全く理解できないドキュメント読んだり引っ張ってくるかね
頭大丈夫?
全く理解できないドキュメント読んだり引っ張ってくるかね
頭大丈夫?
569デフォルトの名無しさん
2020/03/11(水) 23:16:19.54ID:uSPbkipe こういうプライドだけ異様に高くて、自分の間違いを絶対認めないやつって仕事でマジで使えない
まともに仕事できてたら一日中スレにはりついて顔真っ赤にしてないだろうけど
まともに仕事できてたら一日中スレにはりついて顔真っ赤にしてないだろうけど
570デフォルトの名無しさん
2020/03/11(水) 23:24:58.32ID:l8+4vwtz 言葉尻捕まえて「間違いを認めないキチガイ!(ムキッー」 論法は
小学校までしか通用しないからとっとと消えろゴミ
ガキみたいな己の気分で善意の指摘すら受け入れられないなら
こういうスレを使うなよ精子年齢小学生君
小学校までしか通用しないからとっとと消えろゴミ
ガキみたいな己の気分で善意の指摘すら受け入れられないなら
こういうスレを使うなよ精子年齢小学生君
571デフォルトの名無しさん
2020/03/11(水) 23:31:47.50ID:4Eq9dZHE 初心者相手にならイキれると思ってる中級者未満のヤツを怒涛の袋叩きで成敗するお前ら好き
572デフォルトの名無しさん
2020/03/11(水) 23:39:34.78ID:l8+4vwtz 最初は「クラスのアンロード!」って騒いでたのに
今じゃ完全に人格攻撃にシフトしてるところ見ると
クラスのアンロードなんてないことがやっと理解できたのかな
まともな奴なら開き直る前に「ありがとうございました」って言うもんだけどね
馬鹿同士では間違ったレスし合いながら「そうなんですね!(キリッ」とかマヌケなやりとりしてるくせにw
最初NGだなんだ言ってたくせに図星突かれて人格攻撃するしかなくなったんだろうけど
アホ
今じゃ完全に人格攻撃にシフトしてるところ見ると
クラスのアンロードなんてないことがやっと理解できたのかな
まともな奴なら開き直る前に「ありがとうございました」って言うもんだけどね
馬鹿同士では間違ったレスし合いながら「そうなんですね!(キリッ」とかマヌケなやりとりしてるくせにw
最初NGだなんだ言ってたくせに図星突かれて人格攻撃するしかなくなったんだろうけど
アホ
573デフォルトの名無しさん
2020/03/11(水) 23:45:46.23ID:l8+4vwtz ほんと開き直りと人格攻撃はまさにチョンそのものだな
まぁどうせ在日だろうけど
まぁどうせ在日だろうけど
574デフォルトの名無しさん
2020/03/11(水) 23:59:45.72ID:KFvIJzGT めっちゃスレ伸びてると思ったらこれはひどい
元のアンロードに関する言い分も滅茶苦茶だし、人格攻撃批判した直後に程度の低い人種差別発言とか笑えないよ
そもそもゴミだのカスだのお前が言いまくってたからこういう流れになったのが分からんのか
元のアンロードに関する言い分も滅茶苦茶だし、人格攻撃批判した直後に程度の低い人種差別発言とか笑えないよ
そもそもゴミだのカスだのお前が言いまくってたからこういう流れになったのが分からんのか
575デフォルトの名無しさん
2020/03/12(木) 00:12:20.35ID:+D7NJFy7 お前が滅茶苦茶だよキチガイw
アンロードっていう題目ついてる英語のドキュメント持ってくれば論破できると思ったのか?w
英語も読めねーくせに背伸びしてこっぱずかしいったらありゃしない
アンロードがあるならどういうタイミングでアンロードされるか正確に言ってみ?ん?
どうした?ほれ?
もう言い返す材料ないからどうせまた人格攻撃だろ?w
アホ
アンロードっていう題目ついてる英語のドキュメント持ってくれば論破できると思ったのか?w
英語も読めねーくせに背伸びしてこっぱずかしいったらありゃしない
アンロードがあるならどういうタイミングでアンロードされるか正確に言ってみ?ん?
どうした?ほれ?
もう言い返す材料ないからどうせまた人格攻撃だろ?w
アホ
■ このスレッドは過去ログ倉庫に格納されています
