![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
验证与思考
文章平均质量分 61
哆啦酱不加班
把摸鱼的时间用来学习
展开
-
CAS与ABA问题
文章首发于个人博客,欢迎访问关注:https://www.lin2j.tech文章思路:谈谈 CAS --> 谈谈Unsafe类 -->CAS的优缺点 —> ABA问题 --> 原子引用 --> ABA问题的规避思路谈谈CASCAS 即 Compare And Set ,是保证一个共享变量的原子操作,是一条CPU并发原语。它判断内存某个位置的值是否为预期值,如果是则更改为新值,这个过程是原子的。其逻辑大概如下:从主存中备份旧数据 v 至 a基于旧数据 a 构造原创 2021-03-23 07:50:33 · 88 阅读 · 0 评论 -
volatile 关键字特性的验证及思考
文章首发于个人博客,欢迎访问关注:https://www.lin2j.techvolatile 关键字是Java 虚拟机提供的一种轻量级的同步机制。volatile 有保证可见性、禁止指令重排的作用,不保证原子性。验证是否保证原子性/** * 资源类 */class ShareResource { volatile int num; AtomicInteger atomicNum = new AtomicInteger(0); public void addNum()原创 2021-03-23 07:50:46 · 130 阅读 · 0 评论 -
Properties properties = System.getProperties(); 有什么用?
文章首发于个人博客,欢迎访问关注:https://www.lin2j.tech顾名思义,用来获取操作系统,jvm的一些属性。怎么获取?通过参数。也可以设置自定义的系统参数。Properties本身是继承了HashTable,所以可以set、get键值对(如属性,属性值)// 获取系统属性,虚拟机属性Properties properties = System.getProperties();// 当然也可以通过 System.getProperty("参数"); 直接获取信息// jvm原创 2021-03-23 07:52:32 · 472 阅读 · 0 评论 -
Java实现从QQ邮箱向别的邮箱发送邮件
文章首发于个人博客,欢迎访问关注:https://www.lin2j.tech先开启发送人邮箱的POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,拿QQ邮箱来说明登录->设置->(下滑)POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务->开启服务获得授权码import com.sun.mail.util.MailSSLSocketFactory;import org.slf4j.Logger;import org原创 2021-03-23 07:52:41 · 367 阅读 · 0 评论