- 博客(13)
- 收藏
- 关注
原创 记录一些面试题
mysql索引的类型普通索引 index 没有限制 既可以不唯一 也可以为空唯一索引 unique 必须唯一 可以为空主键索引 primary key 唯一 不能为空全文索引 fulltext组合索引https 用了ssl协议 非对称加密 所以是安全的String 不可变两个原因 String 本质是 final 字符数组 value[] 说明value指向的地址不可变 但是本身数组内...
2018-02-20 17:43:40 190
原创 BeanFactory初始化
先从上图红点debug进入代码configLoacations 指的是你的资源文件位置,此处指的就是classPath下的applicationContext.xmlrefresh默认为true, parent我们没传为空。我们顺便来看看classPathxmlApplicationContext的继承关系setConfiglocations是classPathXmlApplicationCont...
2018-02-10 22:29:02 1802
原创 IOC容器及其原理(一)
一个bean诞生需要经过两个阶段,容器启动阶段和Bean实例化阶段。下面我们通过这个图来说明 加载 解析配置信息,主要就是依靠ResouceLoader来加载并且解析资源(xml文件),然后封装成了Resouce。 装配BeanDefinition 就是BeanDefinitionReader读取Resource 转换为BeanDefinition, BeanDefit...
2018-02-10 20:05:16 3717
原创 网易云别人的面经 我试着写出答案
针对这个面经https://www.nowcoder.net/discuss/35362?type=2&order=0&pos=17&page=2写一些部分答案hashmap如何解决链表过长?红黑树有哪些特性?链表过长就会转化为红黑树,提高查找效率。红黑树的特性 1. 根节点是黑色 2 每个红色节点的叶子节点都是黑色 3 从任意节点到每个叶子节点的路径中,都包含相同数目的黑色节点。
2018-02-05 22:16:33 911
原创 CompletionService ExecutorService区别
Java中ExecutorService和CompletionService区别我们现在在Java中使用多线程通常不会直接用Thread对象了,而是会用到java.util.concurrent包下的ExecutorService类来初始化一个线程池供我们使用。之前我一直习惯自己维护一个list保存submit的callable task所返回的Future对象。在主线
2018-02-05 17:04:49 402
原创 同步工具 semaphore countdownlatch使用小结
semaphore 控制访问共享资源的最大线程数 semaphore.acquire获得许可证 semaphore.release释放许可证下面这个代码最多运行3个打印机工作,初始许可证的数目为3 semaphore = new Semaphore(3);public class PrintQueue { /** * 信号量控制打印者的访问 */
2018-02-05 14:17:12 927
原创 读写锁
小结一下;读锁是共享的,多个线程可以同时获得读锁。写锁是互斥的,只要有写就是互斥的,比如线程a获得了写锁(lock.writlock),没有释放,那么其他线程不能获得这个写锁,也不能获得对应的读锁(lock.readlock),也就是有写线程获得了写锁没有释放,那么读线程,写线程都会堵塞。
2018-02-04 21:11:47 135
转载 java 方法区
首先要说明的是,此文章转载自 http://blog.csdn.net/zzhangxiaoyun/article/details/7518917 谢谢作者。另外,这里ps一下,Class对象是存放在堆区的,不是方法区!这点很多人容易犯错。类的元数据(元数据并不是类的Class对象!Class对象是加载的最终产品,类的方法代码,变量名,方法名,访问权限,返回值等等都是在方法区的)才是存在方
2018-02-03 20:09:26 269
原创 再学习类加载过程
1.加载类加载就是指将类的二进制class文件读入到内存中,然后将其放在方法区,在堆区创建一个class对象,作为访问这些数据的接口。2. 验证验证的目的是为了确保Class文件中的字节流包含的信息符合当前虚拟机的要求,而且不会危害虚拟机自身的安全。不同的虚拟机对类验证的实现可能会有所不同,但大致都会完成以下四个阶段的验证:文件格式的验证、元数据的验证、字节码验证和符号
2018-02-03 19:47:44 128
原创 syncronized 底层原理
如果对上面的执行结果还有疑问,也先不用急,我们先来了解Synchronized的原理,再回头上面的问题就一目了然了。我们先通过反编译下面的代码来看看Synchronized是如何实现对代码块进行同步的:1 package com.paddx.test.concurrent;2 3 public class SynchronizedDemo {4 public void m
2018-02-03 18:48:17 626
转载 b 树 b+树
转载: https://www.cnblogs.com/ivictor/p/5849061.htmlB树和B+树的区别 如图所示,区别有以下两点:1. B+树中只有叶子节点会带有指向记录的指针(ROWID),而B树则所有节点都带有,在内部节点出现的索引项不会再出现在叶子节点中。2. B+树中所有叶子节点都是通过指针连接在一起,而B树不会。 B+树的优点:1. 非叶子节点不会带上ROWID,这样,一...
2018-02-01 16:44:51 172
原创 建立索引的原则
小结经常查询的字段,order by ,gropu by后面字段,按范围查找的字段要建立索引。重复值很多,如性别字段,不要建立索引。多表关联查询的时候,关联字段要建立索引。复合索引的工作原理,复合索引有多个字段,先是按照第一个字段排序,第一个字段排序后相同的记录再按照第二个字段排序。索引where语句后面必须用到第一个字段,如果只用到第二个字段不用第一个字段,索引不会有用。
2018-02-01 15:07:58 291
原创 简单工厂 工厂方法 抽象工厂
代码参考地址 https://github.com/liuqidong/javase/tree/a5afb4e10a4929862d30c1e817ff471add0f7973/PatternDemo/src/main/java/com/bjsxt/factory/simplefactory简单工厂也叫静态工厂,就是通过静态方法,通过不同的参数构建不同的对象。uml图如下
2018-02-01 13:58:08 234
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人