注:これらの散在するレコードをメモに含めますが、コンテンツの長さは長くありません。
Java
基本的な文法
可変入力方式
-》
効果:
基本クラスのプライベート属性を継承します
https://www.cnblogs.com/ztt0918/p/8043757.html
静的キーワード、静的コードブロック、最終キーワード
静的キーワードの概要:
https ://blog.csdn.net/kuangay/article/details/81485324
静的コードブロック:
https ://blog.csdn.net/qq_35868412/article/details/89360250は
、次の複雑な初期化に適しています:
最終的なキーワードの概要;
https://www.cnblogs.com/xuelisheng/p/11158110.html
Spring @ Autowiredとの静的競合
静的な場合、Springコンテナは効果的に注入されません。次のコードでは、Springによって管理されているBean LocaleMessageを効果的に注入できず、nullになります。
@Component
public class test{
@Autowired
private static LocaleMessage localeMessage;
SpringのBeanの管理はインスタンスに基づいており、単一のクラスの特定のインスタンスにプロパティを挿入し、クラスでは使用できません。
詳細な説明:
https ://blog.csdn.net/gcglhd/article/details/109155852
インターフェイスのデフォルトの実装+インターフェイスの静的メソッド
https://blog.csdn.net/weixin_38370441/article/details/112309373
ロケールクラス+ロケール依存の比較エラー
詳細な説明:
https ://www.jb51.net/article/85858.htm
ロケール依存の比較エラー:
toUpperCase(Locale.ENGLISH、Locale.ROOT)とtoLowerCaseのロケールパラメーターおよびequalsIgnoreCaseメソッド
toLowerCase()は、異なる言語環境で異なる結果を返します。つまり、これらのメソッド(ここではパラメーターなしのメソッドであることに注意してください)はエリアセンシティブ。
統一された結果が必要な場合は、toLowerCase(Locale.ROOT)(Java 8の推奨)またはtoLowerCase(Locale.ENGLISH)(Java 7より前の推奨)を呼び出すことができます。同じことがtoUpperCaseにも当てはまります。
ランタイムAPI:外部コマンドexeまたはshを実行します
参照:
ランタイムの紹介:ランタイム環境+他のコマンド(cmd、sh、exeなど)を実行します
(メイン):https://blog.csdn.net/f641385712/article/details/81875483?utm_source = distribute.pc_relevant.none -仕事
https://blog.csdn.net/weixin_34387284/article/details/85205511?utm_source=distribute.pc_relevant.none-task
ランタイムのexecは、winおよびLinuxでコマンドを実行します。使用法:https://www.cnblogs.com/mingforyou/p/3551199.html
他のAPIのいくつかの小さな例:https://blog.csdn.net/f641385712/article / details /81875483?utm_source=distribute.pc_relevant.none-タスク
Runtime.exec()は、コマンドを実行するプロセスを新たに開始します。その戻り値は、コマンドを実行するプロセスを直接制御するプロセスのインデックスとして理解できます。
浅いコピーと深いコピー
https://www.cnblogs.com/plokmju/p/7357205.html
判定条件の実行順序
https://www.cnblogs.com/EasonJim/p/7918420.html
Java文字列変換Unicode、native2ascii
http://www.zuidaima.com/share/2033251502083072.html
Javaのカスタムアノテーションとカスタムアノテーションプロセッサ(アノテーションプロセッサ)
https://yuweiguocn.github.io/java-annotation-processor/
容器
unmodizableMap
https://www.cnblogs.com/rocky-fang/p/6702688.html
jdk1.8ArrayListメインメソッド、拡張メカニズム、および高速エラーレポートの実装
https://blog.csdn.net/u010890358/article/details/80515284?utm_medium=distribute.pc_feed_404.none-task-blog-BlogCommendFromBaidu-1.nonecase&dist_request_id=&depth_1-utm_source=distribute.pc_feed_404.none-task-blog- BlogCommendFromBaidu-1.nonecas
期限切れのキャッシュクリーンアップ-WeakHashMap + LinkedHashMapメソッドへの弱い参照
期限切れのキャッシュをクリーンアップする方法1:WeakHashMap
をEffective JavaのP22、Article7と組み合わせて弱く参照します。
WeakHashMapは弱い参照であり、HashMapは強い参照です。
つまり、Java仮想マシンに割り当てられたメモリが不足している場合、HashMapは、対応する参照されていないオブジェクトを再利用するのではなく、OutOfMemoryError例外をスローしますが、WeakHashMapは、そこに格納されているが参照されているオブジェクトを再利用します。
したがって、メモリリーク/メモリオーバーフローを防ぐために、WeakHashMapを使用できます。「Effectivejava」自体がアプリケーションシナリオを提案します。キャッシュ内のデータは、有効であるために外部参照を持っている必要があります。そうでない場合、無効と見なされます。現時点では、WeakHashMapを借用することでキャッシュを実装できます。
WeakHashMapは、nullを参照していない一部のキーの値を割り当てるため、これらの保存された値を再利用するようにGCに指示します。
主な参照:
https ://blog.csdn.net/zjq_1314520/article/details/78565981
LinkedHashMapのremoveEldestEntryメソッドは、新しい要素が追加されたときに呼び出され、マップでクリア
する必要のある無効なキャッシュは、指定された判断メソッドに従って削除されます。このメソッドはデフォルトで実装され、常にfalseを返すため、継承する必要があります。独自の判断方法を書いてください。
https://blog.csdn.net/wangshione/article/details/6700985
HashBiMap
bimapの役割は非常に明確です。これは、1対1のマッピングであり、キーを介して値を取得できます。また、値を介してキーを取得することもできます。
https://blog.csdn.net/yudiandemingzi/article/details/88985455
詳細なLinkedList:API +パフォーマンス+実装
https://www.cnblogs.com/skywang12345/p/3308807.html
Java8でマップ内の要素を削除する簡単な方法
For(Element:Map)を使用して削除することは避けてください。置き忘れた添え字は合理的に削除できず、問題が発生しやすくなります。
イテレータメソッド:
for(Iterator<Integer> iterator = map.keySet().iterator(); iterator.hasNext(); ) {
Integer key = iterator.next();
if(key != 1) {
iterator.remove();
}
}
// 根据map中得值去判断删除
map.values().removeIf(value -> !value.contains("1"));
// 根据key删除
map.keySet().removeIf(key -> key != 1);
//通过getkey()方法获得值去删除
map.entrySet().removeIf(entry -> entry.getKey() != 1);
// Map遍历更优雅的写法:
infoMap.forEach((key, value) -> {
System.out.println(key + ":" + value); });
// https://blog.csdn.net/zebe1989/article/details/83053977
マップトラバーサル:
https ://www.cnblogs.com/damoblog/p/9124937.html
プロパティトラバーサル:
https ://blog.csdn.net/shushengtanwan/article/details/89419346
リスト:重複排除、削除、および文字列変換
https://www.cnblogs.com/zhaoyan001/p/11737961.html
List.stream().distinct().toList();
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
// 这里单独定义了过滤
Predicate<String> predicate = (s) -> s.equals("a");
// 过滤掉a的元素
list.removeIf(predicate);
System.out.println(list.toString());
}
Strings.join(permissionsList.listIterator(), ',')
コレクション、文字列、オブジェクトがnullまたは空でないかどうかを確認します
コレクションのハイエンド書き込みを決定します。文字列が空でないかnullです。
if (CollectionUtils.isEmpty(ids)) {
logger.error("ID list is empty");
return new ArrayList<FileAudit>();
}
オブジェクトが空かnullかを判別します
Objects.isNull
https://www.jianshu.com/p/e17673aa8bdc
文字列が空かnullかを判別します
Strings.isEmpty()
その他
時差を計算するストップウォッチ
https://blog.csdn.net/weixin_38370441/article/details/110164032
OpenCSV:データベースレコードはcsvファイルとしてエクスポートされます
Apacheのcsvメソッド:
http ://commons.apache.org/proper/commons-csv/apidocs/index.html?org / apache / commons / csv / CSVParser.html
超大型のExcelファイルをエクスポートする
https://www.jianshu.com/p/a1a885e09b13
後の解決策:CSVWriterとCSVReaderを使用する
https://blog.csdn.net/cookie151/article/details/77643704
OpenCSVの一般的に使用される表現:
https ://www.cnblogs.com/ailanlan/p/12172952.html
日付変数に関する質問:
日付を文字列に変換すると、問題が発生します。2020-8-2412:00:00:00の形式では、時間の後半しか印刷できませんが、日付の前半。
したがって、アノテーションを使用する必要があります:
@CsvDate( "yyyy-MM-dd HH:mm:ss")
Javaで非同期呼び出しを作成するいくつかの方法
https://www.cnblogs.com/sword-successful/p/11181714.html
EqualsBuilder:方程式を書く標準的な方法
https://blog.csdn.net/yaomingyang/article/details/79300312
https://blog.csdn.net/lszzzz/article/details/50342603
プロパティクラス
構成ファイルの読み方;
https://www.cnblogs.com/jpfss/p/9850663.html
トラバース:
https ://blog.csdn.net/shushengtanwan/article/details/89419346
スレッドローカル書き込み
マルチスレッドの条件下では、各スレッドはそれ自体で変数値を維持し、ある程度はプライベート静的変数
https://www.cnblogs.com/zhengbin/p/5674638.html
春
春の入場確認はよりエレガントです
エンティティクラス生成中の直接検証:
https://blog.csdn.net/justry_deng/article/details/86571671?utm_medium = distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&dist_request_id = 1328741.38041 .16169883067092943&depth_1-utm_source = distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control
使用
1)エンティティクラスにカプセル化し、値を判断します
@NotNull(message = "名前を空にすることはできません")
private String name;
2)検証するメソッドにアノテーション
を付ける://クラスにアノテーションを追加する必要がある@Validated
public void f(@NotNull String str){}
3)AOPカスタムアスペクト検証入力パラメーター