Java知识点总结系列
晨阳夕露
这个作者很懒,什么都没留下…
展开
-
001-Java后端知识点总结百篇系列
001-Java知识点总结系列目录002-MySQL数据库索引原创 2020-05-09 11:45:27 · 498 阅读 · 0 评论 -
012-Java常用队列
概念队列是一种先进先出(FIFO)的抽象数据结构。在Java中,队列使用了两种数据类型来实现,分别是数组和链表这两种数据结构。所有的队列都实现了Queue接口。分类队列分为阻塞和非阻塞队列两种。如上图,阻塞队列实现了BlockingQueue接口,包含LinkedBlockingDeque,LinkedBlockingQueue,LinkedTransferQueue,ArrayBlockingQueue,PriorityBlockingQueue,DelayQueue和Synchrono..原创 2020-10-29 15:07:22 · 337 阅读 · 0 评论 -
011-Java代理模式
概念代理模式提供了间接对目标对象进行访问的方式。通过代理对象访问目标对象,这样做的好处是:可以在目标对象实现的功能上,增加额外的功能补充,即扩展目标对象的功能。这就符合了设计模式的开闭原则,即在对既有代码不改动的情况下进行功能的扩展。以我们生活中的例子来理解代理相当于就是中介,买方通过中介购买卖方提供的物品,买方在不需要接触卖方的情况下可以购得所需的物品,并获取更优质的服务,比如售前售后服务等等。Java中代理分为静态代理和动态代理两种。静态代理使用静态代理时,被代理对象与代理对象需要一起..原创 2020-09-01 14:53:02 · 295 阅读 · 0 评论 -
010-集合类之HashMap
什么是HashMap1.1 数组采用一段连续的存储单元来存储数据。对于给定的下标查找时间复杂度为O(1)。对于给定的值查找的话时间复杂度为O(n),当然如果是有序数组的话可以使用一些查找算法将查找复杂度提高为O(logn)。数组的插入和删除涉及到元素的移动,平均时间复杂度为O(n)。数组的特点就是查找快,插入和删除慢。1.2 链表查找需要遍历变量,平均时间复杂度为O(n)。新增和删除时间复杂度为O(1)。链表的特点就是查找慢,插入和删除快。1.3 红黑树是一种自平衡二叉查找树。查找,新增和删..原创 2020-07-30 16:54:11 · 337 阅读 · 0 评论 -
008-Java锁
锁是出现在多线程场景下的,对于多线程同步资源时,为了资源的正确访问和修改我们需要对资源进行加锁。Java中提到的锁,有部分是广义概念上的,也有具体语言级别的。文中我们主要是将锁的概念讲一下,了解一下各种锁的特点和运用场景,至于各种锁在java中是如何实现和运用的可以自己参考JDK源码进行对照分析。Java知识点总结系列目录乐观锁&悲观锁乐观锁和悲观锁是一个广义上的概念,并非语言级别的锁,体现在对待被操控资源的态度上的区别。如上图,悲观锁悲观的认为自己在准备操控资源时一定会有其他线程也来原创 2020-07-08 16:13:14 · 299 阅读 · 0 评论 -
009-如何生成分布式ID
作用在分布式集群系统中对数据和信息的唯一标识目标全局唯一性:不能出现重复的ID号,既然是唯一标识,这是最基本的要求。趋势递增:在MySQL InnoDB引擎中使用的是聚集索引,由于多数RDBMS使用B-tree的数据结构来存储索引数据,在主键的选择上面我们应该尽量使用有序的主键保证写入性能。单调递增:保证下一个ID一定大于上一个ID,例如事务版本号、IM增量消息、排序等特殊需求。信息安全:如果ID是连续的,恶意用户的扒取工作就非常容易做了,直接按照顺序下载指定URL即可;如果是订单号.原创 2020-06-28 11:15:31 · 1294 阅读 · 0 评论 -
007-Java线程
Java知识点总结系列目录1. 线程概念进程进程是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间)。是操作系统分配资源的最小单位。比如打开一个浏览器它就是一个进程。线程线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个进程内部可以有多个线程。线程特点1)线程是轻量级的进程2)线程没有独立的地址空间(内存空间)3)线程是由进程创建的(寄生在进程)4)原创 2020-06-10 15:24:35 · 324 阅读 · 1 评论 -
006-Java内存模型JMM
Java知识点总结系列目录**1. **原创 2020-06-04 15:54:48 · 248 阅读 · 0 评论 -
005-Java垃圾回收GC和JVM性能调优
Java知识点总结系列目录1. 垃圾回收1.1 对象是否需要回收的两种算法引用计数法为每个对象添加一个引用计数器,用来统计指向该对象的引用个数。一旦某个对象的引用计数器为0,则说明该对象已经死亡,便可以被回收了如果有一个引用,被赋值为某一对象,那么将该对象的引用计数器+1。如果一个指向某一对象的引用,被赋值为其他值,那么将该对象的引用计数器 -1引用计数法是一种古老的方式,除了需要额外的空间来存储计数器,以及繁琐的更新计数器以外;引用计数法还有一个重大的漏洞:无法处理相互引用,如图中Obj原创 2020-05-27 11:04:04 · 395 阅读 · 0 评论 -
003-Java虚拟机JVM之内存模型
Java知识点总结系列目录类加载器将Class文件读取后,放到运行时数据区,然后执行引擎执行或调用本地接口、本地库。1、方法区(元空间)线程共享JDK1.8后叫元空间Metaspace,存储在本地内存中JDK1.8前叫永久代PermGen,存储在堆上存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。由JVM自己使用运行时常量池:运行时常量池是方法区的一部分,用于存放编译期生成的各种 字面量 和 符号引用相关JVM参数设置-XX:PermS原创 2020-05-14 17:08:12 · 3981 阅读 · 3 评论 -
004-Java虚拟机JVM之类加载
Java知识点总结系列目录**1. **原创 2020-05-10 11:26:35 · 347 阅读 · 0 评论 -
002-MySQL数据库索引
1. MySQL索引数据结构以及各自特点二叉树左子节点小于父节点,右子节点大等于父节点。当索引为已排序数据时,导致二叉树变成了链表,查找复杂度为N每个节点只存储一个记录,数据量大时树高度比较大,查找困难;每个节点只存储一个记录,导致一次查询有可能多次磁盘红黑树自平衡二叉查找树。左右子树的高度相差较大时,自动旋转平衡,树的高度相对于二叉树小一点Hash表优点在于:在确定值的情况下,对于读写定位都很快缺点在于:区间范围查找困难,比如>, <, between 等,ord原创 2020-05-09 11:40:45 · 415 阅读 · 0 评论