自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 java集合---Map( LinkedHashMap,TreeMap)

LinkedHashMapHashMap由于使用了散列函数,无序的。但是有些场景下是需要有序的,比如缓存。HashMap就不能胜任。LinkedHashMap就是一个升级版的HashMap。思路与HashMap大体一样,使用的还是数组,链表,红黑树。特别的LinkedHashMap在每个节点上增加了一个前后指针,使得整个集合变得有序。Entry节点如下 static class Entry<K,V> extends HashMap.Node<K,V> {

2020-08-10 22:12:03 111

原创 java内置命令总结

Java 内置命令javapjavap是jdk自带的反解析工具。它的作用就是根据class字节码文件,反解析出当前类对应的code区(汇编指令)、本地变量表、异常表和代码行偏移量映射表、常量池等等信息。当然这些信息中,有些信息(如本地变量表、指令和代码行偏移量映射表、常量池中方法的参数名称等等)需要在使用javac编译成class文件时,指定参数才能输出,比如,你直接javac xx.java,就不会在生成对应的局部变量表等信息,如果你使用javac -g xx.java就可以生成所有相关信息了。如果

2020-07-26 22:02:19 218

原创 java集合--BlockingQueue

BlockingQueue阻塞队列实现类ArrayBlockingQueue,LinkedBlockingQueue基本主要Api:add,remove,elementsoffer,peek,pollput, takeArrayBlockingQueue底层是用Array数组存储数据,利用putIndex,takeindex两个指针实现FIFO的效果。public ArrayBlockingQueue(int capacity, boolean fair) { if (cap

2020-06-24 22:40:43 97

原创 java集合---List

作为集合,也叫做容器。底层必须有一个数据结构做基础。常用的数据结构 数组,链表,树(红黑树)。Listlist集合特点:有序 即:数据插入的顺序与遍历的顺序是一致的。ArrayList public boolean add(E e) { //每次add数据之前需要确保集合中有足够的容量存放 ensureCapacityInternal(size + 1); // Increments modCount!! elementData[size++] = e;

2020-06-23 22:14:48 126

原创 HashMap源码分析

HashMap的最小知识点HashMap使用了数组和链表(红黑树)的数据结构HashMap的默认初始长度是16(1<<4),当用户指定长度时,hashmap也会尽量调整为2的倍数HashMap中发生hash冲突时,会使用链表将note节点链起来jdk1.8开始,链表的长度达到8就会转成红黑树,来提高查询效率HashMap的扩容机制当容器中的节点数超过阈值就会实现扩容,将容量扩大一倍,对原容器中数据重新进行rehashhashmap中的最小单位,用来存放键值对其中属性K,V用来存放数据

2020-06-20 19:41:17 73

原创 重新认识TOMCAT

网络编程中BIO/NIO区别BIO一种阻塞式的编程技术,阻塞IO,网络编程中的所有API都是阻塞的,例如Socket中的accept, 包括InputStream,OutputStream。表现在只要没有返回信息就一直阻塞线程。比如ServerSocket接受了一个Conn只要只要该连接没有发送数据,处理线程就会一直阻塞,导致的结果就是在同一时刻别的Conn连接是Server端并不会及时识别到。那么此刻解决这个问题的唯一办法就是在获取到新的Conn时,另开启一个线程去处理IO(阻塞)。别的Conn过来

2020-06-08 20:50:46 102

原创 ThreadLocal本地线程原理

ThreadLocal与Synchronized对比同样的两种解决数据安全的问题,synchronized (时间换空间)方式解决的是在多线程环境下解决共享数据的原子性问题。ThreadLocal(空间换时间)方式的细化到每一个线程内部,在一个线程内提供一份数据的副本。以此来保证线程安全的。因为线程计算机执行的最小单位。就不会存在数据问题了。ThreadLocal关键源码 public void set(T value) { Thread t = Thread.currentThre

2020-06-08 20:50:08 182

原创 设计模式原则总结

单一职责原则定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T2时,也不会使职责P1发生故障风险。比如图中的setPassword和changePassword,两个原因

2020-06-08 20:49:32 149

原创 java反射基础应用

反射基础概念JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.Study注解定义@R...

2020-05-08 19:02:49 86

原创 java代理模式

代理模式定义:给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理(Proxy)是一种设计模式,提供了间接对目标对象进行访问的方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的功能上,增加额外的功能补充,即扩展目标对象的功能。在java中代理模式很常见。代理模式就是一种思维方式。这就符合了设计模式的开闭原则,即在对既有代码不改动的情况下进行功能的扩展。举个...

2020-05-05 16:43:01 97

原创 SpringDataRest面向资源开发

RestFul面向资源的架构URIURI,通一资源标志符(Uniform Resource Identifier, URI),表示的是web上每一种可用的资源,如 HTML文档、图像、视频片段、程序等都由一个URI进行定位的。URL 是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位 符”。URN (Uniform Resource L...

2020-05-04 20:09:54 181

原创 SpringBoot

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2020-05-04 11:42:19 120

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除