
上一篇:Java集合-ConcurrentHashMap工作原理和实现JDK8 本文学习知识点 1、二叉查找树,以及二叉树查找带来的问题。2、平衡二叉树及好处。3、红黑树的定...
在Java虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,这个概念模型成为各种虚拟机的统一外观。从外观来看,所有的Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处...
Jetty目前是一个比较被看好的Servlet引擎,它的架构比较简单,也是一个可扩展性强且非常灵活的应用服务器。他有一个基本的数据模型,这个数据模型就是Handler,所有可...
三范式: ◆ 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。 考虑这样一个表:【联系人】(姓名,性别,电话) 如果在实际场景中,一个联系人有家庭电话和公司...
Tomcat系统架构如下图: Tomcat有两个核心组件:Connector和Container,Connector组件可以被替换掉,它不仅跟服务器本身的设计有关,而且和不同...
选择数据类型的原则 1.更小的通常更好:一般情况下,应该尽量使用可以正确存储数据的最小数据类型。更小的数据类型通常更快,因为它们占用更少的磁盘、内存和CPU缓存,并且处理时需...
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 ...
1.理解Cookie 一般当一个用户第一次访问一个服务器时,这个服务器会将一些Key/Value键值对返回给客户端浏览器,并给这些数据加上一些限制条件,在条件符合时这个用户下...
1.第一次破坏 由于双亲委派模型是在JDK1.2之后才被引入的,而类加载器和抽象类java.lang.ClassLoader则在JDK1.0时代就已经存在,面对已经存在的用户...
虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个...
类加载的时机: 1.遇到new、getstatic、putstatic或invokestatic这4条字节码指令时,如果类没有进行过初始化,则需要先触发其初始化。生成这4条指...
BIO带来的挑战: BIO即阻塞I/O,不管是磁盘I/O还是网络I/O,数据在写入OutputStream或者从InputStream读取时都有可能会阻塞,一旦有阻塞,线程将...
1.final域的重排序规则: 1.在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。 2.初次读一个包含fin...
数组中重复数字的问题,这道题考虑的是数组中的数字在一定的范围中,大致有两种情况: 1.数组长度大于等于数字的范围如:在一个长度为n的数组里的所有数字都在0~n-1的范围内。 ...
先讲清楚程序的概念:程序是一个没有生命的实体。CPU赋予了程序有时限的生命,这样它就成为了一个“活”的实体-进程,进程是一个执行中的程序。 1.进程就像一个大容器。在程...
1.READ UNCOMMITTED(未提交读): 在READ UNCOMMITTED级别,事务中的修改,即使没有提交,对其他事务也都是可见的。事务可以读取未提交的数据,...
1.原子性(atomicity): 一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其...
插入排序: 插入排序基本思想:如下数组a[] 1.先将a[0]和a[1]比较,a[1]小于a[0],那么将a[1]与a[0]交换变为: 2.再用a[2]和第一次交换后的a[1...
1.锁的释放和获取的内存语义: 当线程获取锁时,JMM会把该线程对应的本地内存置为无效。从而使得被监视器保护的临界区代码必须从主内存中读取共享变量。 对比锁释放-获取...