上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 42 下一页
摘要: 、索引利弊 --整理 1、索引的好处 a、提高数据检索的效率,降低检索过程中必须要读取得数据量,降低数据库IO成本。 b、降低数据库的排序成本。因为索引就是对字段数据进行排序后存储的,如果待排序的字段与索引键字段一致,就在取出数据后不用再次排序了,因为通过索引取得的数据已满足排序要求。另外,分组操作 阅读全文
posted @ 2018-05-06 21:26 阿善9 阅读(1570) 评论(0) 推荐(0) 编辑
摘要: 在只有双重检查锁,没有volatile的懒加载单例模式中,由于指令重排序的问题,我确实不会拿到两个不同的单例了,但我会拿到“半个”单例。 而发挥神奇作用的volatile,可以当之无愧的被称为Java并发编程中“出现频率最高的关键字”,常用于保持内存可见性(随时见到的都是最新值)和防止指令重排序。 阅读全文
posted @ 2018-05-06 21:12 阿善9 阅读(13211) 评论(2) 推荐(7) 编辑
摘要: ——索引优化,可以说是数据库相关优化、理解尤其是查询优化中最常用的优化手段之一。所以,只有深入索引的实现原理、存储方式、不同索引间区别,才能设计或使用最优的索引,最大幅度的提升查询效率! 一、BTree索引 1、概述 Mysql数据库中使用最频繁的索引类型,基本所有存储引擎都支持BTree索引。正是 阅读全文
posted @ 2018-05-06 20:59 阿善9 阅读(20697) 评论(0) 推荐(1) 编辑
摘要: 在ConcurrentHashMap没有出现以前,jdk使用hashtable来实现线程安全,但是hashtable是将整个hash表锁住,所以效率很低下。 ConcurrentHashMap将数据分别放到多个Segment中,默认16个,每一个Segment中又包含了多个HashEntry列表数组 阅读全文
posted @ 2018-05-06 20:23 阿善9 阅读(1977) 评论(0) 推荐(0) 编辑
摘要: Hashmap本质是数组加链表。根据key取得hash值,然后计算出数组下标,如果多个key对应到同一个下标,就用链表串起来,新插入的在前面。 ConcurrentHashMap:在hashMap的基础上,ConcurrentHashMap将数据分为多个segment(段),默认16个(concur 阅读全文
posted @ 2018-05-06 20:17 阿善9 阅读(10047) 评论(0) 推荐(0) 编辑
摘要: 单例模式是一种很基础的设计模式,在面试时可能会被要求手写不同类型的单例模式代码,主要有三种模式: 1、饿汉模式: [java] view plain copy //饿汉模式,很饿很着急,所以类加载时即创建实例对象 public class Singleton1 { private static Si 阅读全文
posted @ 2018-05-06 20:02 阿善9 阅读(1087) 评论(0) 推荐(0) 编辑
摘要: 一、进程与线程?并行与并发? 进程代表一个运行中的程序,是资源分配与调度的基本单位。进程有三大特性: 1、独立性:独立的资源,私有的地址空间,进程间互不影响。 2、动态性:进程具有生命周期。 3、并发性:多进程可以在单核CPU上并发运行。 线程代表进程中的一个顺序执行流,多线程就是一个进程中的多个顺 阅读全文
posted @ 2018-05-06 19:49 阿善9 阅读(2547) 评论(0) 推荐(1) 编辑
摘要: 函数回调机制,一种双向调用思想,简单来说就是,如下图所示: 在层次一中的方法一(函数)调用层次二中的方法,并传入函数二的地址,而这个被调用的方法又会调用层次一中的方法,这个最后被调用的方法二就是回调方法。方法三调用方法二就是回调的过程。一个有意思的例子,大家可以先感受一下:“诸葛亮给赵子龙一个锦囊, 阅读全文
posted @ 2018-05-06 14:43 阿善9 阅读(294) 评论(0) 推荐(1) 编辑
摘要: 如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟 阅读全文
posted @ 2018-05-06 14:33 阿善9 阅读(301) 评论(0) 推荐(0) 编辑
摘要: IOC是一种叫做“控制反转”的设计思想。 1、较浅的层次——从名字上解析 “控制”就是指对 对象的创建、维护、销毁等生命周期的控制,这个过程一般是由我们的程序去主动控制的,如使用new关键字去创建一个对象(创建),在使用过程中保持引用(维护),在失去全部引用后由GC去回收对象(销毁)。 “反转”就是 阅读全文
posted @ 2018-05-06 10:21 阿善9 阅读(4587) 评论(0) 推荐(0) 编辑
上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 42 下一页