Java
草履虫·
这个作者很懒,什么都没留下…
展开
-
什么是 CAS
CAS(Compare And Swap/Set)比较并交换,CAS 算法的过程是这样:它包含 3 个参数V,E,N。V 表示要更新的变量(内存值),E 表示预期值(旧的),N 表示新值。当且仅当 V 值等于 E 值时,才会将 V 的值设为 N,如果 V 值和 E 值不同,则说明已经有其他线程做了更新,则当 前线程什么都不做。最后,CAS 返回当前 V 的真实值。原创 2024-03-17 23:13:14 · 401 阅读 · 0 评论 -
JAVA 四中引用类型
弱引用需要用WeakReference类来实现,它比软引用的生存期更短,对于只有弱引用的对象来说,只要垃圾回收机制一运行,不管JVM的内存空间是否足够,总会回收该对象占用的内存。软引用需要用SoftReference类来实现,对于只有软引用的对象来说,当系统内存足够时它不会被回收,当系统内存空间不足时它会被回收。:在Java中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不会被垃圾回收机制回收的,即。原创 2024-03-13 19:36:30 · 401 阅读 · 0 评论 -
自定义注解实现excel导出
将数据导出为excel文件是项目中经常遇到的需求,用EasyExcel实现导出虽然很简单,但每次都要写一堆重复的代码,如设置response对象,新建ExcelWriter、WriteSheet,writer.finish()等,感觉很难受,于是就想定义一个注解快速实现导出功能。原创 2024-03-13 14:29:08 · 802 阅读 · 0 评论 -
Java线程的创建方式
【代码】Java线程的创建方式。原创 2023-12-27 22:42:35 · 405 阅读 · 0 评论 -
Java线程的生命周期
当sleep()状态超时、join()等待线程终止或者超时、或者 I/O 处理完毕时,线程重新转为。的线程执行sleep()或 join()方法,或者发出了 I/O 请求时,JVM 会把该线程置为。之间来回切换,当cpu分配的时间片用完或线程执行yield()方法主动放弃时间片,线程由。,该线程就处于新建状态,此时仅由JVM为其分配内存,并初始化其成员变量的值,直接调用该线程的 stop()方法来结束该线程,该方法容易导致死锁。的线程执行wait()方法,JVM 会把该线程放入等待队列中。原创 2023-11-08 19:30:12 · 43 阅读 · 1 评论 -
Java校验日期格式
在后端接收用户提交的数据或者批量处理用户导入的数据时,为了保证数据格式的一致性、数据的合法性和有效性,通常要对输入的时间格式进行校验。原创 2023-10-27 15:19:44 · 994 阅读 · 1 评论 -
Thread.sleep()线程休眠的时间
如果Thread.sleep()休眠时间到了之后线程是立即执行的,那最后打印出来的结果会是1000,但实际情况总是大于1000的,其原因是Thread.sleep()方法的作用是使线程主动放弃cpu的执行权,并在休眠的这段时间内不参与cpu的竞争,在休眠结束后,线程并不能马上得到执行,而是进入就绪状态,参与cpu抢占,只有得到cpu的执行权才能继续执行,所以线程的休眠时间总是大于设置的时间的,并且当cpu越忙的时候这个误差越大。原创 2023-07-25 09:55:08 · 4562 阅读 · 1 评论