トップ・ページの表示 注意書きの表示 掲示板に書き込む前に必ず この ”注意書き”を お読み下さい.

"Twilight"

Index Menu
(1)<FirstTitle>:JavaFXデモ/Sceneの遷移 <FirstUser>:amanojaku@管理人 (1)<FirstTitle>:Javaデモ/うるう年 <FirstUser>:amanojaku@管理人

   
   

ページの表示順:{ 新しい順/ 古い順}.
初期・ページの表示・位置:{ 先頭ページ/ 末尾ページ}.
1ページ内のスレッド表示数:







<Number>: [00000098]  <Date>: 2022/04/16 13:03:37
<Title>: Javaの注意点
<Name>: amanojaku@管理人



可読性が上がるなら積極的に三項演算子を使う事が推奨されます。

ファイルにはtry-with-resources文を使うことが強く推奨されます。

できれば、正規表現の習得が推奨されます。

できれば、「オブジェクト指向プログラミング、総称型(Generics)」の習得が推奨されます。
オブジェクト指向プログラミングに関しては下記デモを参考にして下さい。

Javaデモ/CUI対戦デモ(10) オブジェクト指向プログラミング
http://ashtarte.pa.land.to/utf8/smt.cgi?r+sara/&bid+00000437&tsn+000004F7&bts+2021/02/08%2006%3A20%3A07&


GUIコンポーネントの設定もはイベント・ディスパッチ・スレッドで設定しなければならなくなりました(下記ページ参照)。

Java Swing/「JFrameスケルトン・テンプレート」(7)
http://ashtarte.pa.land.to/utf8/smt.cgi?r+sara/&bid+00000428&tsn+00000428&bts+2021/01/20%2016%3A41%3A48&


スレッドは排他制御(synchronized)、最適化の抑制(volatile)の理解が必要です。
なお スレッドは「Concurrency Utilities」のスレッドが強く推奨されます。
(知らぬ間に)古いタイプのThreadが非推奨に?、(正式な非推奨では無いかもしれないが)そんなクズみたいなモノを何時までも使わないでくれよ、って話。
なお 新しいJavaでも古いタイプのThreadを使ってたら意味ないので注意して下さい。
下記 動画を参照して下さい、青色がCUPの未使用率、緑色がCUPの使用率だと思われます。
その動画のコンソール入力に注目すると、「ConcurrencyTest」を実行すると、CUPの使用率が ほぼ100%になり、圧倒的に効率が上がります(逆に言うと古いタイプのThreadが如何にクズかと言うことでも有りますが)。

Concurrency Utilities for EE 7
https://yoshio3.com/2013/05/15/concurrency-utilities-for-ee-7/


余裕があるなら、「Stream API、ラムダ式」も勉強してみると良いでしょう。

Javaの小技
http://ashtarte.pa.land.to/utf8/smt.cgi?r+sara/&bid+000000E0&tsn+000000E0&bts+2018/07/30%2020%3A54%3A02&


Stringの文字列結合はクソ遅い(アマチュアなら それほど気にしなくても良い)。
注意点、StringBufferはスレッドセーフ、StringBuilderはスレッドアンセーフ。

【Java】文字列結合の速度比較
https://qiita.com/nkojima/items/0098dccbe4a593bc0306


Mostly-Concurrent Mark & Sweep GC のアルゴリズム
http://www.nminoru.jp/~nminoru/java/cms/concurrent_mark_sweep.html

>メモリの低価格・大容量化、64 ビットプロセッサの普及に伴って JavaVM が使える・使うメモリ量は増大している。 STW(Stop-the-World) 型 GC アルゴリズムの多くは、GC が管理しているメモリ量、生存しているオブジェクトの個数、生存しているオブジェクトの参照数のいずれかに比例するため、GC 停止時間がどんどん伸びる傾向があるのである。 ギガバイトを越えるようなメモリを使用した場合、GC による停止時間が 10 秒を越えるようなパターンの現れている。

この「GC による停止時間が 10 秒を越えるようなパターン」とは、ギガバイトを越えるようなメモリを使用した場合なので、一般の話では有りません。
このGC による停止は「STW(Stop-the-World)」とも呼ばれる。

Javaのヒープ・メモリ管理の仕組み
https://4geek.net/how-java-heap-and-memory-management-work/

現在、オプションで圧倒的にパフォーマンスの良いZGC(Z Garbage Collector)がサポートされている。

ZGC | What’s new in JDK 16
https://logico-jp.io/2021/03/31/zgc-whats-new-in-jdk-16/

>ZGCプロジェクトを開始したときの目標は、GCポーズ(Stop-the-World)に10msec以上の時間をかけないことでした。当時、10msecは野心的な目標に思えました。

>最初の目標である10msecを達成した後、私たちは再度目標を定め、より野心的な目標、GCのポーズ(Stop-the-World)時間は1msecを超えてはならないという目標を設定しました。JDK 16で、この目標も達成できたことをご報告します。


「従来のEJBは存在自体が間違いだった」,軽量コンテナ「Spring Framework」開発者のRod Johnson氏吠える
https://xtech.nikkei.com/it/free/NSW/NEWS/20050621/163065/

>エンティティBean(EJB:Enterprise JavaBeansに含まれるデータベース・アクセスのカプセル化機能)なんてないほうがよかった。

Block( Address 0000031B Identity 00000098 )






ページの表示順:{ 新しい順/ 古い順}.
初期・ページの表示・位置:{ 先頭ページ/ 末尾ページ}.
1ページ内のスレッド表示数:

   
   

管理者用 Password:

  




SMT Version 8.022(+A) Release M6.
Author : amanojaku.