- 博客(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 146
原创 DCL(double check lock)双重检查;五种单例模式的实现;对象的创建过程。
一。系统底层如何实现数据一致性?①MESI—缓存行对齐(数据本身不超出缓存行的情况)②锁总线—(数据大小本身超出缓存行的情况)二。五种单例模式的演变单例模式:某一个类的对象再内存中只能有一个,叫单例模式。①最简单 的单例模式的实现看注解 这是最简单的实现,不赘述了//直接new一个对象 private static final Mgr01 INSTANCE = new Mgr01(); //构造方法设为私有的,不让别人new private Mgr01(){} //给一个getIns
2020-08-18 20:17:01 329
原创 锁升级的过程;CAS;对象内存布局问题;object在内存中占几个字节;
一.CAS是什么?CAS(Compare and swap)比较与交换, 是一种有名的无锁算法,CAS的3个操作数:内存值V,旧的预期值A,要修改的新值BCAS可保证在无锁的状况下,多给线程对一个值的更新当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值(A和内存值V相同时,将内存值V修改为B),而其它线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以再次尝试(否则什么都不做)经典ABA问题:当读取到的内存值V是被修改过(只是1变为2又变为1)这种情况,
2020-08-17 20:18:38 402 1
原创 补上一篇文章
1.ConcurrentHashMap的高效并发机制是通过以下三方面来保证的 通过锁分段技术保证并发环境下的写操;通过 HashEntry的不变性、Volatile变量的内存可见性和加锁重读机制保证高效、安全的读操作;通过不加锁和加锁两种方案控制跨段操作的的安全性。2.ConcurrentHashMap是如何加锁的ConcurrentHashMap,它通过在链表上加锁来实现同步的。则看出ConcurrentHashMap其实就多增加了锁的个数,效率效率就提高;而HashTable是通过在每个方法上加
2020-08-17 19:55:05 110
原创 HashMap与ConcurrentHashMap,HashTable的区别,以及底层实现
一.HashMap的resize(rehash): 当hashMap中的元素越来越多的时候,hash冲突的几率也越来越高,因为数组的长度是固定的。所以为了提高查询的效率,就要对HashMap的数组进行扩容,数组扩容这个操作也会出现在ArrayList中,这是一个常用的操作,而在HashMap数组扩容之后,最消耗性能的点就出现了:原数组中的数据必须重新计算其在新数组中的位置,并放进去,这就是resize。当HashMap中的元素个数超过数组大小loadFactor时,就会进行数组扩容,loadFactor的
2020-08-17 19:42:22 596
原创 hashmap,set,map,list,arraylist的异同
类型 默认容量 加载因子[1] 扩容增量 底层实现 是否安全及同步方式Vector 10 1 2倍 Object数组 安全,synchronizedArrayList 10 1 1.5倍(>>1) Object数组 线程不安全LinkedList 无 1 无(1个1个加) 链表 线程不安全HashSet 16 0.75 2倍 HashMap<
2020-08-17 12:47:47 241
原创 在idea中常见到的BUG总结
像这种问题报错,首先查看自己的jdk,tomcat是否跟自己的电脑位数一样。没问题的话,就是本地的tomcat版本比项目的tomcat版本高,使用同一版本即可。Jdk也是尽量跟项目使用相同的,以避免不必要的麻烦。2.加了jar包,但idea本地没下载下来的话。将jar包对应的包,手动复制粘贴到本地仓库C:\Users\Lenovo.m2\repository这个路径下,即可。3.GithubDesktop与最新的项目不同步,我的问题是卡住了,一直没显示最新的提交。 解决:从别的同学那里,把最新的项...
2020-08-04 23:00:57 1598 1
原创 一个简单的springmvc案例
一个简单的springmvc案例2019/12/30 下午环境搭建这是一个web工程1.导入jar包2.在web.xml下配置dispatcherorg.springframework.web.servlet.DispatcherServlet</servlet><servlet-mapping> <servlet-name>disp...
2019-12-30 20:55:18 147
原创 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 1041
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人