自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 基于Redis实现单节点分布式锁

1、SnowFlake算法SnowFlake算法用于生成分布式Id使用的一种算法,此算法生成的是一个64bit的数,结构图如下:1位,不使用,是二进制中的符号位,一般生成的全局ID都是整数,所以第一位固定为0;接下来的41位是时间戳,用来记录毫秒级的时间- 41位可以表示Math.pow(2,41)-1个数字,如果只用来表示正整数,可以表示的范围是0-Math.pow(2,41)...

2020-03-30 15:10:38 205

原创 MySQL复习之索引

1、概述MySQL索引时MySQL高速运行的关键,索引可以大大提高MySQL的检索速度,如果MySQL没有实现索引算法当查询1000w数据时,只能暴力顺序检索,这显然不是我们想要看到的。2、MySQL索引底层数据结构的选择①、hash表哈希算法,是做快速检索的有效利器,可以把任意值通过哈希函数变为固定长度的地址哈希函数先计算出数据的哈希值,然后根据哈希值映射的地址找到具体的数据,这就是...

2020-03-23 13:41:38 164

转载 Java复习之类加载

1、概述当程序使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载、连接、初始化这三个步骤来对该类进行初始化,如下图:2、类加载过程①、加载加载是将类的class文件读到内存中,并为之创建一个java.lang.Class对象,也就是说当程序使用任何类时,系统都会为之建立一个java.lang.Class对象。类的加载由类加载器提供,JVM提供的类加载器成为系统类加载器,我们也...

2020-03-19 12:03:44 123

原创 Java复习之JVM垃圾回收

1、概述垃圾回收,即释放垃圾占用的空间,防止内存泄漏,有效的使用有效的内存,对堆中已经死亡的和长时间不使用的对象进行清楚和回收。JVM运行时数据区见:JVM运行时数据区2、垃圾判断算法①、引用记数法给每一个对象添加一个计数器,有这个对象的引用时计数器就加一,引用失效时计数器减一,用此对象计数器是否为0来判断对象是否可被回收。此算法优点是实现简单,判断效率高;缺点是无法解决循环引用的问题...

2020-03-18 22:03:16 101

原创 Java复习之线程与并发一

1、线程与进程的区别进程时操作系统资源分配的基本单位,而线程是操作系统调用的基本单位;进程是一个独立的运行环境,它可以被看成一个程序或应用,线程是进程中执行的一个任务;一个进程可以有多个线程,同一个类的线程共享相同的内存空间;线程较之进程的切换开销小、速度快等特点2、使用多线程的原因充分利用资源,目前的计算机都是多核,多线程可以让程序在多个CPU上运行,对于单一的CPU,如果使用...

2020-03-15 11:24:52 90

原创 Java复习之NIO

1、IO与NIO区别NIO,即Non-blocking IO,是基于Channel和Buffer的,IO则是基于字节流和字符流的,也即是IO是面向流的,NIO是面向缓冲区的。对于NIO,数据总是从Channel读入Buffer和从Buffer写入Channel,而IO操作没有被缓存到任何地方;NIO允许异步的使用IO,当向缓冲区写入数据的时候,NIO允许线程做其他的事情,当数据写入到缓冲区后...

2020-03-13 15:58:40 87

原创 Java复习之杂项

1、泛型在Java中泛型是指把类型明确的工作推迟到创建对象或者调用方法的时候才去明确的特殊类型。使用泛型可以保证一个List、Set中只有一个类型,可以避免类型转换错误,泛型只在编译阶段有效,泛型在逻辑上可以看成是多个类型,但实质上是一个类型,下面的例子就可证实:public static void main(String[] args) { List<Integer&g...

2020-03-13 10:14:37 64

原创 Java集合复习之HashMap-JDK10

1、概述HashMap的底层实现是数组+链表+红黑树,JDK1.8之前的HashMap使用的是数组加链表,哈希函数取得再好也无法保证均匀分布,当哈希桶中有大量的数据的时候,HashMap就相当于一个单链表,时间复杂度为O(n,就失去了HashMap应有的优势,因此引入了红黑树,当哈希桶中的元素数量大于TREEIFY_THRESHOLD值时就转换为红黑树。2、几个属性// 创建 HashMap...

2020-03-12 11:29:44 83

原创 Java集合类复习之LinkedList-JDK10

1、概述LinkedList底层实现是双向链表,有一个头结点和一个尾结点,所以可以从头结点开始正向遍历,也可以从尾结点逆向遍历,并且可以针对头部和尾部做相应的操作。public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque&lt...

2020-03-11 11:23:49 89

原创 Java集合类复习之ArrayList(JDK10)

1、集合与数组的区别数组,长度固定,只能存储相同类型的数据;集合,长度可变,可以存储不同类型的数据2、ArrayList①、ArrayList是一个动态数组,实现了List< E>, RandomAccess, Cloneable, java.io.Serializable接口;ArrayList实现了RandomAccess接口,打开此接口源码发现什么都没有定义,实现...

2020-03-10 20:29:10 142

原创 Java基础知识复习一

1、JDK,JRE,JVM三者之间的联系和区别①、JVM,即Java Virtual Machine,Java虚拟机JVM并不能识别.java文件,只能识别.class文件,JVM能识别.class文件中的字节码指令并调用操作系统完成指定的个动作,所以JVM是Java跨平台的核心。②、JRE,Java Runtime Environment,Java运行时环境JRE主要包含2个部分,JVM...

2020-03-10 10:15:30 147

Java实现离散真值表

此文件实现了离散中的输出真值表,应用了栈的技术,可以帮助java学习者更好的巩固基础

2018-10-17

空空如也

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

TA关注的人

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