![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
wangl66
这个作者很懒,什么都没留下…
展开
-
技术好文收藏
好文收藏原创 2022-09-09 18:13:51 · 151 阅读 · 0 评论 -
使用JavaMail读取邮件
使用JavaMail读取邮件 在工作中遇到了一种场景,当我们向用户发送邮件后,偶尔会有一些用户投诉,未收到邮件,对于这种情况,我们需要一种方式来监控是否我们真的没有发送成功。我们使用的发件箱是outlook,当我们发送一个邮件到不存在的邮箱时,outlook会返回一个退信邮件,告知我们邮件并未送达,因此我们的解决方案就是解析该类邮件,并且对应到我们的发送记录中,话不多说直接上代码。 public class ReadMailTest { private static final String mu原创 2021-07-09 10:02:04 · 1293 阅读 · 0 评论 -
ReentrantLock 的实现原理以及源码分析
ReentrantLock是一个可重入的锁,内部采用AQS来实现 ReentrantLock的构造函数: public ReentrantLock(boolean fair) { sync = fair ? new FairSync() : new NonfairSync(); } 可以看到构造函数将一个sync的字段进行了初始化,分为公平锁和非公平锁,sync是什么呢? abstract static class Sync extends AbstractQueuedSynch原创 2020-05-14 12:22:20 · 290 阅读 · 0 评论 -
jvm的类加载机制
类从被加载到虚拟机内存中开始,到卸载出内存结束,真个生命周期包括了几个阶段: 加载-》验证-》准备-》解析-》初始化-》使用-》卸载 虚拟机规范严格规定了有且只有四种情况必须立即对类进行初始化操作 遇到new,getstatic,putstatic,invokestatic这4条字节码指令时,如果类没有进行初始化,必须先初始化,生成这4条指令最常见的java代码场景是:new一个对象、...原创 2019-06-14 16:49:38 · 143 阅读 · 0 评论 -
JVM内存模型
java内存模型的主要目的就是定义各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量的底层细节。这里的变量指的是实例对象,静态变量和构成数组对象的元素,不包括局部变量和方法参数,也就是堆内存中的变量。 java内存模型规定了所有的变量都存储在主内存中,每条线程都有自己的工作内存,工作内存中保存了线程使用到的变量从主内存拷贝过来的副本,线程对变量的所有操作都是在工作内存中的,而不能...原创 2019-09-25 15:39:03 · 113 阅读 · 0 评论