摘要:
范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三个范式,即:第一范式(1NF),第二范式(2NF),第三范式(3NF)。 首先看下一些基本概 阅读全文
摘要:
添加自己的ip为白名单: http://www.zuimoban.com/jiaocheng/mysql/2637.html 阅读全文
摘要:
垃圾回收算法有两种,根据不同的虚拟机策略不同 1、引用计数法 2、可达性分析法 由于我们平常使用的hotspot虚拟机用的是第二种。 那哪些是可达的呢? 这个算法的基本思想是通过一系列称为“GC Roots”的对象作为起始点,从这些节点向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Root 阅读全文
摘要:
主内存和工作内存 Java内存模型的主要目的是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。注意一下,此处的变量并不包括局部变量与方法参数,因为它们是线程私有的,不会被共享,自然也不会存在竞争,此处的变量应该是实例字段、静态字段和构成数组对象的元素。 v 阅读全文
摘要:
类加载器模型 从Java虚拟机的角度讲,只有两种不同的类加载器:启动类加载器Bootstrap ClassLoader,这个类加载器是由C++语言实现的,是虚拟机自身的一部分;其他类加载器,这些类加载器都由Java语言实现,独立于虚拟机外部,并且全部继承自java.lang.ClassLoader。 阅读全文
摘要:
类加载包括这七个过程。 加载Loading 有两种时机会触发类加载:1、预加载.2、运行时加载 验证 连接阶段的第一步,这一阶段的目的是为了确保.class文件的字节流中包含的信息符合当前虚拟机的要求,并且不会危害虚拟机自身的安全 准备 准备阶段是正式为类变量分配内存并设置其初始值的阶段,这些变量所 阅读全文
摘要:
说到Java内存区域,可能很多人第一反应是“堆栈”。首先堆栈不是一个概念,而是两个概念,堆和栈是两块不同的内存区域,简单理解的话,堆是用来存放对象而栈是用来执行程序的。 图中绿色部分就是所有线程之间共享的内存区域,而白色部分则是线程运行时独有的数据区域,从这个分类角度来看一下这几个数据区。 1、线程 阅读全文
摘要:
(1)ArrayList以数组形式实现,顺序插入、查找快,插入、删除较慢 (2)LinkedList以链表形式实现,顺序插入、查找较慢,插入、删除方便 那么是否有一种数据结构能够结合上面两种的优点呢?有,答案就是HashMap。 Entry组成的是一个单向链表,因为里面只有Entry的后继Entry 阅读全文
摘要:
LinkedList是一种双向链表,双向链表我认为有两点含义: 1、链表中任意一个存储单元都可以通过向前或者向后寻址的方式获取到其前一个存储单元和其后一个存储单元 2、链表的尾节点的后一个节点是链表的头结点,链表的头结点的前一个节点是链表的尾节点 查看元素 由于LinkedList是双向链表,所以L 阅读全文
摘要:
基于jdk1.8 先来一张集合的图片: 集合的关系都在图上面,可以先熟悉一下。 接下来的内容都是基于这张图吧。 当然我们学习要有重点,接下来就看下哪几点? 1、是否允许空 2、是否允许重复数据 3、是否有序,有序的意思是读取数据的顺序和存放数据的顺序是否一致 4、是否线程安全 ArrayList 好 阅读全文