Java编程细节

Java编程细节

常用类和方法

时间推荐使用LocalDateTime

  LocalDateTime日期时间的相关操作与处理

  LocalDateTime去掉T  添加 LocalDateTimeSerializerConfig 

 字符串处理

  Java最全截取字符串方法

  JAVA字符串格式化-String.format()的使用   非常全面

 

java与js的instanceof与typeof的使用

 

数据结构

枚举

   Java enum的用法详解

集合

  Java中常用集合&线程安全的集合

  java对象排序(Collections.sort Comparator)

 

       我们在一般的使用过

 

Map

  Java 静态(static) Map字典初始化方法及示例代码  

 

队列

  java中ConcurrentLinkedQueue类  一个基于链接节点的无界线程安全队列。此队列按照 FIFO(先进先出)原则对元素进行排序。

List

  Java中 CopyOnWriteArrayList 的使用  

    CopyOnWriteArrayList类最大的特点就是,在对其实例进行修改操作(add/remove等)会新建一个数据并修改,修改完毕之后,再将原来的引用指向新的数组。这样,修改过程没有修改原来的数组。也就没有了ConcurrentModificationException错误

 

线程、并发和回调

线程

  java开启新线程的三种方法  继承Thread类、实现Runnable接口、直接在函数体使用(匿名内部类,其实也是属于实现Runnable接口方式的特例。)

  Java中终止(销毁)线程的方法  设置退出标志、使用interrupt()方法中断线程、使用stop方法强行终止线程(不推荐使用)

父子线程

  Java 浅析 Thread.join()  Parent父线程会等待child子线程运行完再继续运行。

Java后台线程  java线程可以分为用户线程(也称前台线程或普通线程)和后台线程(Daemon thread)。

Java四种线程池   介绍了new Thread的弊端和四种线程池。

Java通过Executors提供四种线程池,分别为:

newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
newScheduledThreadPool 创建一个周期线程池,支持定时及周期性任务执行。
newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。

多线程

ExecutorService的submit方法使用

  【线程锁】ExecutorService的submit方法使用

  ExecutorService的submit和execute区别

并发与现场同步

  Java并发与线程同步   内容很全面,介绍了进程、线程、协程,线程安全和线程安全的实现方法(synchronized、Lock、信号量)等,应用场景。

JAVA多线程-Semaphore信号量   研究通讯程序,回调等

  Semaphore(信号量) 是一个线程同步结构,用于在线程间传递信号,以避免出现信号丢失,或者像锁一样用于保护一个关键区域,可以控制同时访问的线程个数,并且通过acquire()方法获取一个许可,如果没有则等待,而release()方法会释放一个许可。

 

  Java并发编程:Lock

 

  Java定时器(Timer)

  java计时器  Timer类与TimerTask类

  Timer与TimerTask的真正原理&使用介绍  全面

  java中Timer类的详细介绍(详解)

  Java如何实现任务超时处理    通讯程序中的超时

 

回调

  Java实现异步回调  内容全面,介绍了CallBack 接口回调范例,JDK8中新增的CompletableFuture。 
  Java线程之异步回调(Callback)     
    介绍了线程中的回调和Future。Futures是一个抽象的概念,它表示一个值,该值可能在某一点变得可用。一个Future要么获得 计算完的结果,要么获得计算失败后的异常。Java在java.util.concurrent包中附带了Future接口,它使用Executor异步执行。
  
  java模拟C# Action作为方法参数传递

  C#委托和Java回调

Java等效的.NET的ManualResetEvent和WaitHandle

多线程操作类对比(Java和C#)

 

 

 

其他

  使用System.Diagnostics.Stopwatch对程序的运行时间精确地测量

  Java AtomicInteger的用法   

  AtomicReference  原子操作

  AtomicReference的compareAndSet更新问题

 
posted @ 2022-10-13 20:00  十二楼C  阅读(11)  评论(0编辑  收藏  举报