java
文章平均质量分 79
java的各种基础技术包括jvm,基础框架一系列技术
隔壁小邓
这个作者很懒,什么都没留下…
展开
-
ConcurrentHashMap的简介
我想有基础的同学知道在jdk1.7中是采用Segment + HashEntry + ReentrantLock的方式进行实现的,而1.8中放弃了Segment臃肿的设计,取而代之的是采用Node + CAS + Synchronized来保证并发安全进行实现。 JDK1.8的实现降低锁的粒度,JDK1.7版本锁的粒度是基于Segment的,包含多个HashEntry,而JDK1.8锁的粒度就是HashEntry(首节点) JDK1.8版本的数据结构变得更加简单,使得操作也更加清晰流畅,因为已经使用sy原创 2021-10-18 09:56:30 · 126 阅读 · 0 评论 -
设计模式之策略模式
将每一种算法都封装到具有共同接口的独立的类中,是算法本身和使用算法的对象分离开来,解决了多种相似算法情况下,以往if…else编程带来的复杂和难以维护。 1.封装变化。 2.使用接口编程。 该模式中包含的角色及其职责: 1.抽象策略角色:具体策略角色的抽象父类。 2.具体策略角色:包装了具体的算法和行为。 3.环境角色:内部会持有一个抽象角色的引用,给客户端调用。 优点: 1.减少了算法类和使用算法类之间的耦合。(扩展性好) 2.Strategy类的层次为Context定义了一系列可供重用的算法或功能,有助原创 2021-03-02 14:31:07 · 230 阅读 · 4 评论 -
JDK1.8中hashMap和JDK1.7hashMap的区别
JDK1.8中的HashMap实现跟JDK1.7中的实现有很大差别。下面分析JDK1.8中的实现,主要看put和get方法 构造方法的时候并没有初始化,而是在第一次put的时候初始化 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2021030115363081.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fx原创 2021-03-01 15:38:04 · 274 阅读 · 1 评论 -
easyExcel下载功能
pom文件引入 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId>` <version>RELEASE</version> </dependency> <dependency> <groupId>org.原创 2021-03-01 14:37:47 · 299 阅读 · 0 评论 -
单点跨域
第一次写博客,与大家共勉. 这里用到的原理其实非常简单,将cookie存在一个公共的站点的页面上就可以了,这里我们管那个站点叫主站S. 先说说所谓的跨域 环境1:a.xxx.com需要跟b.xxx.com实现跨域,这种比较简单,只需要设置cookie的域名关联域就可以了 cookie.Domain = “xxx.com”,这样两个域名间的cookie就可以互相访问,实现跨域. 环境2:a.aaa.com需要跟b.bbb.com实现跨域,这种不同域名的情况下,想要实现就必须换种方式了. 在这里我将引入第三者,原创 2020-12-17 19:15:34 · 152 阅读 · 0 评论 -
queue详细分析
Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构 Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Deque接 口。 Queue的实现 1、没有实现的阻塞接口的LinkedList: 实现了java.util.Queue接口和java.util.AbstractQueue接口 内置的不阻塞队列: PriorityQueue 和 ConcurrentLinkedQueue PriorityQueue 和 ConcurrentL原创 2021-01-26 17:23:30 · 162 阅读 · 0 评论 -
类加载说明
类加载过程 1. 加载 加载,是指Java虚拟机查找字节流(查找.class文件),并且根据字节流创建java.lang.Class对象的过程。这个过程,将类的.class文件中的二进制数据读入内存,放在运行时区域的方法区内。然后在堆中创建java.lang.Class对象,用来封装类在方法区的数据结构。 类加载阶段: (1)Java虚拟机将.class文件读入内存,并为之创建一个Class对象。 (2)任何类被使用时系统都会为其创建一个且仅有一个Class对象。 (3)这个Class对象描述了这个类原创 2020-12-17 21:32:47 · 65 阅读 · 0 评论 -
ArrayList 扩容原理
面试中经常问到的问题之一就是List的扩容机制了,他是怎么做到扩容的,大家都能答出来底层是数组,复制一个数组来扩容,但是再具体一点来说,大家就不知道该怎么说了,如果不看源码说这么多确实就差不多了,但是看了源码你会说的更多,更详细,更具体,本篇主要看的是jdk1.8 至于其他版本大同小异,看看就知道了,言归正传 1)List扩容实现步骤 总的来说就是分两步:1、扩容 把原来的数组复制到另一个内...原创 2020-12-02 18:52:48 · 948 阅读 · 0 评论