散らばったメモ

散らばったメモ


注:これらの散在するレコードをメモに含めますが、コンテンツの長さは長くありません。

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カスタムアスペクト検証入力パラメーター

おすすめ

転載: blog.csdn.net/weixin_38370441/article/details/115264840