自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 如何写枚举

【代码】如何写枚举。

2023-11-10 10:30:42 132 1

原创 计算身份证中的年龄

计算身份证中的年龄

2022-11-09 10:33:44 291 1

原创 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 11379 2

原创 释放端口对应进程

释放端口对应进程找到端口对应进程 netstat -ano 找到端口对应进程查看端口对应的进程信息tasklist|findstr “过滤关键字”杀死对应端口找到端口所对应的进程号,输入taskkill -PID 进程号 -F

2021-10-06 17:15:32 180

原创 对缓存穿透、缓存击穿、缓存雪崩的理解

对缓存穿透、缓存击穿、缓存雪崩的理解一、缓存击穿redis做缓存用的时候,key过期,或者使用lru、lfu等算法,使key在redis变成冷数据(从来没有访问过的),在redis中淘汰,这时候,大量请求访问这个key,就会穿透redis,到达后端DB,【数据库有,大量并发,redis没有缓存】解决方法:所有的请求发现key不存在的时候,再去发出一个请求,去抢一把锁setnx,去给数据加锁,加锁成功的,去访问DB,取得数据后,将数据load进redis中;失败的去睡眠一会,然后再去尝试取数据二、缓

2021-08-15 21:45:49 97

原创 对JUC并发包常用工具的理解

对JUC并发包常用工具的理解1、CAS(compare and swap)比较并交换,他操纵3个值,期望值,内存值,新值,当且仅当内存值等于期望值的时候,才将内存值改为新值;如果内存值和期望值不相等,说明有其他线程修改了内存值,那么他的此次操作就作废。底层通过unsafe去实现(直接操作类、内存、实例),cpu的原语操作.属于乐观锁乐观锁,就是凡事都往好的地方想,认为别的线程不会去修改自己需要的数据,所以他占有资源时,并不会加锁,只是修改完数据再去比较数据有没有被其他线程修改。悲观锁,凡是都往坏的地

2021-08-03 20:55:02 98

原创 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 81

原创 深入剖析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 74

原创 Synchronized锁详解

Synchronized锁详解1. 前言sync锁是JVM自带的锁,自动加锁,自动解锁,不同于lock锁,sync锁能修饰方法、变量、代码块等,下面2. sync的锁升级过程new - 偏向锁 - 轻量级锁 (无锁, 自旋锁,自适应自旋)- 重量级锁jdk1.5之前,sync是重量级锁,如果要使用sync的话,他首先会去操作系统去申请一把大锁,但是在之后,sync进行了锁优化,第一个访问这把锁的线程,它会在对象的markword中做一个标记,这就是偏向锁,如果有多个线程去访问资源的时候,他会将偏向

2021-06-03 12:53:59 1770

原创 六种常见单例模式以及详解

六种常见单例模式以及详解单例模式,就是全局只创建一个对象,并且提供这个对象唯一的接口,可以直接进行访问,下面我们来看看这几种实现方式饿汉式public class Method01{ private static Method01 instance = new Method01(); //构造方法私有化,使其不能在别的地方在进行初始化 private Method01(){}; //提供一个静态的方法,使其它类中可以创建这个类的实例 public static Method0

2021-05-20 20:27:13 118

原创 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 590 5

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除