JavaSe
啦啦啦咯咯咯
一个默默学习的小程序员
展开
-
TreeMap有序性和唯一性
基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。但是查找效率不如 HashSet,HashSet 查找的时间复杂度为 O(1),TreeSet 则为 O(logN)。 public static void main(String[] args) { TreeSet<Integer> set = new TreeSet<>(); set.add(15); set.add(15); set.add(13.原创 2021-01-20 10:54:18 · 477 阅读 · 0 评论 -
Jedis的配置和使用-普通jdk版本
一 导入jedis jar包如果找不jar包,https://mvnrepository.com/从这个网站下载,搜索,找到需要的版本,下载。二 JedisUtil工具类注意:如果JedisPoolConfig.set报错,还得导入commons-pool这个jar包,因为高版本jedis没用集成进去。/** * JedisUtil(推荐存Byte数组,存Json字符串效率更慢) * @author hhc */public class JedisUtil { private原创 2021-01-11 14:55:32 · 1715 阅读 · 3 评论 -
Idea部署Web项目并发布到Tomcat使用-最全版
一.Project设置为: 项目地址+out二.Project Structure1.Project Structure-source注意:resource+src都要鼠标右键+Source 设置为资源文件夹,这个很重要2.Project Structure-path注意是webContent下面的WEB-INF\classes和lib,classes如果没有,右键新建一个classes文件夹。3.Project Structure-Dependencies有些不加载t原创 2021-01-11 11:17:40 · 521 阅读 · 0 评论 -
公平锁和,公平锁,可重入锁(递归锁),自旋锁,读写锁
自旋锁手写自旋锁运行结果:独占锁,共享锁ReentrantReadWriteLock读写锁。例子(未加读写锁):结果,写操作应该为独占,不许被分割。解决:加上ReentrantReadWriteLock写操作加上一个写锁读操作加上一个读锁:结果:...原创 2021-01-05 16:27:48 · 271 阅读 · 0 评论 -
原子类CAS理解
CAS一句话:compareAndSet就是并交换。Demo:结果:UnSafe类点进源码,发现有个unsafe类。unsafe类在rt,jar 里面的原生类。原理每个线程取一开始的值5到自己的工作线程,线程1写回主内存的时候,看主内存是否还是5,是的话就修改为2019,而线程2的话,先要写回主内存,发现主内存的值并非是5,导致失败。理解前提JMM:多线程CAS理解:总结缺点:1.cpu开销大2.只能保证一个共享变量的原子操作3.ABA问题原创 2021-01-05 16:03:57 · 170 阅读 · 0 评论 -
原子类Atomic的ABA问题
ABA问题解决:原始:解决:atomicStampedReference,带版本号的原创 2021-01-05 15:23:58 · 184 阅读 · 0 评论 -
Jvm-如何判断对象是否可以被回收?
如何判断对象是否可以被回收?引用计数法:枚举跟节点做可达性分析(跟搜索路径)注意:要从GCRoots为启点的才算哪些对象可以作为GC Roots的对象?被static修饰的被加载进方法区,java7叫永久代,java8叫源空间。...原创 2021-01-02 14:29:03 · 205 阅读 · 0 评论 -
JVM内存结构和垃圾回收算法
引用计数法复制算法:优点:没有产生内存碎片。缺点:内存太浪费标记清除优点:没有进行大面积复制,节约了内存空间,缺点:产生内存碎片标记整理优点:不浪费空间,不产生碎片 缺点:耗时最终:复制算法用在新生代, 标记-清除-标记-整理 用在老年代...原创 2021-01-02 09:12:22 · 96 阅读 · 0 评论