- 博客(11)
- 收藏
- 关注
原创 Could not connect to SMTP host: smtp.qq.com, port: 465
Could not connect to SMTP host: smtp.qq.com, port: 465描述:在写邮件类的时候,一直连不上qq邮箱或者163邮箱的465端口,一直报Could not connect to SMTP host: smtp.qq.com, port: 465异常网络上的解决方法:1、加上如下代码:props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");2、加上如下代
2021-10-26 12:24:48
13152
3
原创 释放端口对应进程
释放端口对应进程找到端口对应进程 netstat -ano 找到端口对应进程查看端口对应的进程信息tasklist|findstr “过滤关键字”杀死对应端口找到端口所对应的进程号,输入taskkill -PID 进程号 -F
2021-10-06 17:15:32
208
原创 对缓存穿透、缓存击穿、缓存雪崩的理解
对缓存穿透、缓存击穿、缓存雪崩的理解一、缓存击穿redis做缓存用的时候,key过期,或者使用lru、lfu等算法,使key在redis变成冷数据(从来没有访问过的),在redis中淘汰,这时候,大量请求访问这个key,就会穿透redis,到达后端DB,【数据库有,大量并发,redis没有缓存】解决方法:所有的请求发现key不存在的时候,再去发出一个请求,去抢一把锁setnx,去给数据加锁,加锁成功的,去访问DB,取得数据后,将数据load进redis中;失败的去睡眠一会,然后再去尝试取数据二、缓
2021-08-15 21:45:49
128
原创 对JUC并发包常用工具的理解
对JUC并发包常用工具的理解1、CAS(compare and swap)比较并交换,他操纵3个值,期望值,内存值,新值,当且仅当内存值等于期望值的时候,才将内存值改为新值;如果内存值和期望值不相等,说明有其他线程修改了内存值,那么他的此次操作就作废。底层通过unsafe去实现(直接操作类、内存、实例),cpu的原语操作.属于乐观锁乐观锁,就是凡事都往好的地方想,认为别的线程不会去修改自己需要的数据,所以他占有资源时,并不会加锁,只是修改完数据再去比较数据有没有被其他线程修改。悲观锁,凡是都往坏的地
2021-08-03 20:55:02
122
原创 Java中的容器
Java中的容器Java中的有多种常见的数据结构,例如:HashMap,BlockingQueue,然而,这几种数据结构主要继承两个接口collection和map,1、map对于map这个接口来说,主要有3个实现,HashMap,HashTable,TreeMap。HashTable是一种比较“古老的”数据结构了,他里面常用的方法,比如get、put方法,都被synchronized进行修饰,所以他是线程安全的,不过也是因为加锁,所以他的性能不是很高。HashMap和HashTable正好相反
2021-07-17 16:38:36
106
原创 深入剖析ThreadLocal
深入剖析ThreadLocal1. 目录什么是ThreadLocalThreadLocal的原理ThreadLocal原理ThreadLocal的作用2. 什么是ThreadLocalThreadLocal是java提供的一种保存线程私有信息的一种方式,以为在线程的整个生命周期都有效,所以利用Threadlocal去传递一些信息3. ThreadLocal的原理public class ThreadLocal01 { volatile static Persion p = ne
2021-06-28 22:32:13
103
原创 Synchronized锁详解
Synchronized锁详解1. 前言sync锁是JVM自带的锁,自动加锁,自动解锁,不同于lock锁,sync锁能修饰方法、变量、代码块等,下面2. sync的锁升级过程new - 偏向锁 - 轻量级锁 (无锁, 自旋锁,自适应自旋)- 重量级锁jdk1.5之前,sync是重量级锁,如果要使用sync的话,他首先会去操作系统去申请一把大锁,但是在之后,sync进行了锁优化,第一个访问这把锁的线程,它会在对象的markword中做一个标记,这就是偏向锁,如果有多个线程去访问资源的时候,他会将偏向
2021-06-03 12:53:59
1884
原创 六种常见单例模式以及详解
六种常见单例模式以及详解单例模式,就是全局只创建一个对象,并且提供这个对象唯一的接口,可以直接进行访问,下面我们来看看这几种实现方式饿汉式public class Method01{ private static Method01 instance = new Method01(); //构造方法私有化,使其不能在别的地方在进行初始化 private Method01(){}; //提供一个静态的方法,使其它类中可以创建这个类的实例 public static Method0
2021-05-20 20:27:13
156
原创 Linux中jdk环境的配置
Linux中jdk环境的配置一、安装环境操作系统:Centos7JDK版本:1.8工具:Xftp5二、安装jdk1、在官网下载Linux的jdk2、创建jdk安装目录在/opt下创建2个文件夹,分别名字为software、model 注:/opt是给主机额外安装软件所安装的目录,比如ORACLE数据库就可以放在该目录下,默认为空3、解压缩jdk利用Xftp将下载的压缩包传入到software中,使用命令 tar -zxvf +下载压缩包名字 -C /opt/model
2021-01-21 17:05:54
632
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人