`
mdxdjh2
  • 浏览: 12352 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
文章列表

[置顶] Kafka 简记

    博客分类:
  • JAVA
引言 接触一门新的开源项目,最关键就是了解其特性和理解中间的设计原理。但在面对庞大的设计官档或者源码的并且又没人指导的时候,总是会让人望而却步,加之网上资料太过冗长。结合翻阅的资料和查看官档后进行了一 ...
二叉树构造类: 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 ...
    快速排序: 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)  -  插入数 ...

JAVA GC 机制详解

    博客分类:
  • JAVA
最近整理GC相关原理,发现各种文章都太乱,于是整理一份自己看得懂,不废话,具体如下。   GC主要用于管理JVM的堆区,所以先来介绍一下JVM的内存分配。    1、程序计数器(Program Conuter Register)         程序计数器是一 ...
生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以从仓库中取走产品。解决生产者/消费者问题的方法可分为两类:(1)采用某种机制保护生产者和消费者之间的同步;(2)在生产者和消费者之间建立一个管道。第一种方式有较高的效率,并且易于实现,代码的可控制性较好,属于常用的模式。第二种管道缓冲区不易控制,被传输数据对象不易于封装等,实用性不强。因此本文只介绍同步机制实现的生产者/消费者问题。 同步问题核心在于:如何保证同一资源被多个线程并发访问时的完整性。常用的同步方法是采用信号或加锁机制,保证资源在任意时刻至多被一个线程访问 ...

MySQl 索引分析

前序:  索引有多种类型,其中包括主键索引、唯一索引、B+Tree索引(聚集索引和非聚集索引)、哈希索引等等,下面主要深入了解一下B+Tree索引。   B+Tree介绍 MySQL是由B+Tree构成的,下面先来介绍一下什么是B+Tree。   ①B+Tree是为磁盘或者其他直接存取辅助设备而设计的一种平衡二叉树。(这句话怎么理解?) 答:数据库系统的设计者巧妙利用了磁盘预读原理,将一个节点的大小设为等于一个页,这样每个节点只需要一次I/O就可以完全载入。为了达到这个目的,在实际实现B+Tree还需要使用如下技巧:每次新建节点时,直接申请一个页的空间,这样就保证一个节点物理上 ...
1、MyISAM不支持事务,InnoDB是事务类型的存储引擎 2、MyISAM只支持表级锁,而InnoDB支持行级锁和表级锁默认为行级锁 MyIsam -> 表锁
Global site tag (gtag.js) - Google Analytics