- 浏览: 12329 次
- 性别:
- 来自: 深圳
最新评论
文章列表
引言
接触一门新的开源项目,最关键就是了解其特性和理解中间的设计原理。但在面对庞大的设计官档或者源码的并且又没人指导的时候,总是会让人望而却步,加之网上资料太过冗长。结合翻阅的资料和查看官档后进行了一 ...
二叉树构造类:
public class BinaryTree {
int data; // 根节点数据
BinaryTree left; // 左子树
BinaryTree right; // 右子树
public BinaryTree(int data) // 实例化二叉树类
{
this.data = data;
left = null;
right = null;
}
public void insert(BinaryTree root, int data) { // 向二叉树中插入子节点
if (data > ...
非Web项目:直接加载Spring内容需要借助ClassPathXmlApplicationContext
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
context.start();
Web项目:因为Tomcat等容器会加载web.xml的内容,所以在web.xml中配置如下内容即可:
<context-param>
<param-name>contextConfig ...
JAVA 排序算法(快速、冒泡)
- 博客分类:
- 算法
快速排序:
public static void quiteSort(int[] o, int low, int hight) {
if (low < hight) {
int povitePosition = adjust(o, low, hight);
quiteSort(o, low, povitePosition - 1);
quiteSort(o, povitePosition + 1, hight);
}
}
private static int adjust(int[] o, int low, int hight) {// 选定 ...
对于常用的集合大家都不陌生,但是深入到内部原理可能都是一知半解,通过阅读源码理解如下。
ArrayList:
ArrayList内部就是一个默认大小为10的动态对象数组容器,每当add一个新数据的时候,如果大于原来的容器大小,则会通过Arrays.copyOf把容器大小增加到原来的1.5倍,以此类推。当可以预知数据大小,可以通过initialCapacity来默认设置动态数据的大小,减少扩容带来的资源消耗。
时间复杂度:
get() - 直接读取下标 - O(1)
add(E) - 直接在后面添加 - O(1)
add(idnex, E) - 插入数 ...
最近整理GC相关原理,发现各种文章都太乱,于是整理一份自己看得懂,不废话,具体如下。
GC主要用于管理JVM的堆区,所以先来介绍一下JVM的内存分配。
1、程序计数器(Program Conuter Register)
程序计数器是一 ...
生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以从仓库中取走产品。解决生产者/消费者问题的方法可分为两类:(1)采用某种机制保护生产者和消费者之间的同步;(2)在生产者和消费者之间建立一个管道。第一种方式有较高的效率,并且易于实现,代码的可控制性较好,属于常用的模式。第二种管道缓冲区不易控制,被传输数据对象不易于封装等,实用性不强。因此本文只介绍同步机制实现的生产者/消费者问题。
同步问题核心在于:如何保证同一资源被多个线程并发访问时的完整性。常用的同步方法是采用信号或加锁机制,保证资源在任意时刻至多被一个线程访问 ...
前序:
索引有多种类型,其中包括主键索引、唯一索引、B+Tree索引(聚集索引和非聚集索引)、哈希索引等等,下面主要深入了解一下B+Tree索引。
B+Tree介绍
MySQL是由B+Tree构成的,下面先来介绍一下什么是B+Tree。
①B+Tree是为磁盘或者其他直接存取辅助设备而设计的一种平衡二叉树。(这句话怎么理解?)
答:数据库系统的设计者巧妙利用了磁盘预读原理,将一个节点的大小设为等于一个页,这样每个节点只需要一次I/O就可以完全载入。为了达到这个目的,在实际实现B+Tree还需要使用如下技巧:每次新建节点时,直接申请一个页的空间,这样就保证一个节点物理上 ...
1、MyISAM不支持事务,InnoDB是事务类型的存储引擎
2、MyISAM只支持表级锁,而InnoDB支持行级锁和表级锁默认为行级锁
MyIsam -> 表锁