2021年9月18日

java——HashMap——1、基础

摘要: 1.1.1 *概念* 对于 HashMap 及其子类而言,它们采用 Hash 算法来决定集合中元素的存储位置。当系统开始初始化 HashMap 时,系统会创建一个长度为 capacity 的 Entry 数组(即key-value数组),默认capacity长度是16, 这个数组里可以存储元素的位置 阅读全文

posted @ 2021-09-18 10:55 夜萤火虫和你 阅读(36) 评论(0) 推荐(0) 编辑

2021年9月17日

锁——5、atomic类

摘要: Atomic使用了cas机制,避免了volatile修饰的成员变量不是原子性的,count++问题 **一、示例 ** 1、多线程示例 2、添加synchronized同步锁 这段代码不是线程安全的,所以最终的自增结果可能会小于200 如果加上同步锁,代码如下: 加了同步锁之后,count自增的操作 阅读全文

posted @ 2021-09-17 10:53 夜萤火虫和你 阅读(160) 评论(0) 推荐(0) 编辑

锁——4、volitail变量锁

摘要: 由此展开,大家可以了解下线程内存和堆内存的差别 一、java内存模型 了解volatile关键字之前,先要了解java的内存模型 Java内存模型简称JMM(Java Memory Model),是Java虚拟机所定义的一种抽象规范,用来屏蔽不同硬件和操作系统的内存访问差异,让java程序在各种平台 阅读全文

posted @ 2021-09-17 10:40 夜萤火虫和你 阅读(88) 评论(0) 推荐(0) 编辑

2021年9月16日

锁——3、Reentrantlock

摘要: 一、ReenTrantLock是可重入锁 可重入锁的特点 可重入锁又名递归锁,是指在同一个线程在外层方法获取锁的时候,在进入内层方法会自动获取锁。 谁等的时间最长,谁就先获取锁 ReenTrantLock的特点: 1.ReenTrantLock可以指定是公平锁还是非公平锁。而synchronized 阅读全文

posted @ 2021-09-16 10:20 夜萤火虫和你 阅读(199) 评论(0) 推荐(0) 编辑

锁——2、synchronized锁

摘要: 一、synchronized为什么性能低 1、Java1.6之前效率低:线程阻塞和唤醒的代价较高,用户态到内核态的切换,花费时间 2、JDK 1.6 之后,synchronized 做了性能优化,性能已经与其他显式锁基本没有差距了 二、synchronized的优化 优化即随着锁的竞争进行升级: 从 阅读全文

posted @ 2021-09-16 10:18 夜萤火虫和你 阅读(183) 评论(0) 推荐(0) 编辑

锁——1、基础

摘要: 1、锁的分类: 轻量级锁中,默认自旋10次 死锁: 1、什么是死锁? 两个或多个线程因相互等待而被永远阻塞(挂起)的情况。 2、死锁的原因 导致死锁的原因有多种。线程分析器可检测到因不正确使用互斥锁而导致的死锁。这种类型的死锁在多线程应用程序中比较常见。 3、以下条件成立时,具有两个或多个线程的进程 阅读全文

posted @ 2021-09-16 10:16 夜萤火虫和你 阅读(33) 评论(0) 推荐(0) 编辑

2019年7月1日

maven:java8下当javadoc有编译错误时无法生成.jar包的问题

摘要: 之前一直在java 7下编译maven项目,遇到javadoc编译提示代码注释中有错误(比如连接无效),也能正常生成javadoc jar包。但最近将编译器换成java 8后,同样的命令执行,遇到javadoc编译错误,maven就中止执行,生成jar包失败了。 在stackoverflow上找到这 阅读全文

posted @ 2019-07-01 17:16 夜萤火虫和你 阅读(685) 评论(0) 推荐(0) 编辑

2019年6月20日

Spring Boot application.yml application.properties 优先级

摘要: 转载:https://blog.csdn.net/testcs_dn/article/details/79010798 stackoverflow 上有个问题是:Can application.properties and application.yml be mixed?   Sprin 阅读全文

posted @ 2019-06-20 16:19 夜萤火虫和你 阅读(1522) 评论(0) 推荐(0) 编辑

2019年6月19日

验证码生成

摘要: 根据传入的count值,生成count位的验证码 可直接生成random随机数,传入count值为4,start=0,end=0,letters=true,number=true,chars=null,random=new Random() 前端页面直接调用后端接口,后端直接创建ImageIO对象, 阅读全文

posted @ 2019-06-19 16:33 夜萤火虫和你 阅读(160) 评论(0) 推荐(0) 编辑

2019年6月15日

为什么OAuth2里面在获取access token之前一定要先获取code,然后再用code去获取access token

摘要: oauth2在获取access_token之前,一定要先获取code,主要是因为安全原因: code需要设置过期时间,一般设置的过期时间非常短,如10分钟等,用户需要在短时间内通过code换取access_token,避免code被第三方拦截。当然,即便这种情况会发生,但因为code的过期时间非常短 阅读全文

posted @ 2019-06-15 13:45 夜萤火虫和你 阅读(5500) 评论(0) 推荐(0) 编辑

导航