- 博客(9)
- 收藏
- 关注
原创 Java中的引用类型——强软弱虚
一.强引用 即普通引用,我们正常使用对象时即为强引用。当我们没有引用指向new出来的对象的时候,M才会被垃圾回收器回收。 class M{ protected void finalize() throws Throwable{ System.out.println("finalize"); } } public class demo { public static void main(String[] args) throws IOException { M m = new M();
2020-08-20 13:37:05
185
原创 DCL(double check lock)双重检查;五种单例模式的实现;对象的创建过程。
一。系统底层如何实现数据一致性? ①MESI—缓存行对齐(数据本身不超出缓存行的情况) ②锁总线—(数据大小本身超出缓存行的情况) 二。五种单例模式的演变 单例模式:某一个类的对象再内存中只能有一个,叫单例模式。 ①最简单 的单例模式的实现 看注解 这是最简单的实现,不赘述了 //直接new一个对象 private static final Mgr01 INSTANCE = new Mgr01(); //构造方法设为私有的,不让别人new private Mgr01(){} //给一个getIns
2020-08-18 20:17:01
386
原创 锁升级的过程;CAS;对象内存布局问题;object在内存中占几个字节;
一.CAS是什么? CAS(Compare and swap)比较与交换, 是一种有名的无锁算法,CAS的3个操作数:内存值V,旧的预期值A,要修改的新值B CAS可保证在无锁的状况下,多给线程对一个值的更新 当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值(A和内存值V相同时,将内存值V修改为B),而其它线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以再次尝试(否则什么都不做) 经典ABA问题:当读取到的内存值V是被修改过(只是1变为2又变为1)这种情况,
2020-08-17 20:18:38
458
1
原创 补上一篇文章
1.ConcurrentHashMap的高效并发机制是通过以下三方面来保证的 通过锁分段技术保证并发环境下的写操;通过 HashEntry的不变性、Volatile变量的内存可见性和加锁重读机制保证高效、安全的读操作;通过不加锁和加锁两种方案控制跨段操作的的安全性。 2.ConcurrentHashMap是如何加锁的 ConcurrentHashMap,它通过在链表上加锁来实现同步的。则看出ConcurrentHashMap其实就多增加了锁的个数,效率效率就提高;而HashTable是通过在每个方法上加
2020-08-17 19:55:05
147
原创 HashMap与ConcurrentHashMap,HashTable的区别,以及底层实现
一.HashMap的resize(rehash): 当hashMap中的元素越来越多的时候,hash冲突的几率也越来越高,因为数组的长度是固定的。所以为了提高查询的效率,就要对HashMap的数组进行扩容,数组扩容这个操作也会出现在ArrayList中,这是一个常用的操作,而在HashMap数组扩容之后,最消耗性能的点就出现了:原数组中的数据必须重新计算其在新数组中的位置,并放进去,这就是resize。当HashMap中的元素个数超过数组大小loadFactor时,就会进行数组扩容,loadFactor的
2020-08-17 19:42:22
649
原创 hashmap,set,map,list,arraylist的异同
类型 默认容量 加载因子[1] 扩容增量 底层实现 是否安全及同步方式 Vector 10 1 2倍 Object数组 安全,synchronized ArrayList 10 1 1.5倍(>>1) Object数组 线程不安全 LinkedList 无 1 无(1个1个加) 链表 线程不安全 HashSet 16 0.75 2倍 HashMap<
2020-08-17 12:47:47
279
原创 在idea中常见到的BUG总结
像这种问题报错,首先查看自己的jdk,tomcat是否跟自己的电脑位数一样。没问题的话,就是本地的tomcat版本比项目的tomcat版本高,使用同一版本即可。Jdk也是尽量跟项目使用相同的,以避免不必要的麻烦。 2.加了jar包,但idea本地没下载下来的话。将jar包对应的包,手动复制粘贴到本地仓库C:\Users\Lenovo.m2\repository这个路径下,即可。 3.GithubDesktop与最新的项目不同步,我的问题是卡住了,一直没显示最新的提交。 解决:从别的同学那里,把最新的项...
2020-08-04 23:00:57
1713
1
原创 一个简单的springmvc案例
一个简单的springmvc案例 2019/12/30 下午 环境搭建 这是一个web工程 1.导入jar包 2.在web.xml下配置 dispatcher org.springframework.web.servlet.DispatcherServlet </servlet> <servlet-mapping> <servlet-name>disp...
2019-12-30 20:55:18
175
原创 JavaEE实训----------购物网站
JavaEE实训----------购物网站 第一话-------今天主要是一些基础知识比如spring和springmvc的环境搭建,java内存,spring中的IOC控制反转和DI依赖注入 所需技术(SSM框架Spring,SpringMVC,Mybatis)+MySQL数据库+html+css+ajax(购物车js,jquery控制)+js 正儿八经开始前,先聊几个问题。 一.java中的...
2019-12-30 20:27:54
1114
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅