08 2016 档案

摘要:合并排序 这个算法在大多数数据库中使用,但并不是唯一算法。 【本质】将 2 个大小为 N/2 的已排序序列合并为一个 N 元素已排序序列仅需要 N 次操作。 【分治思想】把问题拆分为小问题,通过解决小问题来解决原问题。 【成本分析】拆分阶段,共拆分logN次,最底层只有一个元素。合并阶段,每层合并涉及到N个元素,共有logN层,合并次数NlogN。 所以最终时间复杂度是NlogN。 【特点分析】 ... 阅读全文
posted @ 2016-08-18 17:02 流年素心 阅读(1153) 评论(0) 推荐(0)
摘要:索引,索引!!!为经常查询的字段建索引!! 但也不能过多地建索引。insert和delete等改变表记录的操作会导致索引重排,增加数据库负担。 优化目标 1.减少 IO 次数 IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是收效最明显的优化手段。 2.降低 CPU... 阅读全文
posted @ 2016-08-18 14:04 流年素心 阅读(19006) 评论(0) 推荐(2)
摘要:Aspect-Oriented Programming, 面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。 遵循开放-封闭原则,面向修改关闭,面向扩展开放。需要修改业务逻辑时,可以不直接修改代码,尤其是类似的修改点在多处出现时,比如日志打印。AOP的用处就更大了。 面向切面编程(AOP)通过提供另外一种思考程序结构的途经来弥补面向对象编程(OOP)的不足。在OOP中模... 阅读全文
posted @ 2016-08-17 16:32 流年素心 阅读(370) 评论(0) 推荐(0)
摘要:load average的概念 top命令中load average显示的是最近1分钟、5分钟和15分钟的系统平均负载。 系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程数。如果一个进程满足以下条件则其就会位于运行队列中: 它没有在等待I/O操作的结果 它没有主动进入等待状态(也就是没有调用’wait’) 没有被停止(例如:等待终止) 在Linux中... 阅读全文
posted @ 2016-08-17 13:33 流年素心 阅读(47964) 评论(0) 推荐(3)
摘要:以下项目的过度使用会直接导致高负载问题。 CPU 内存(包括虚拟内存) 磁盘IO sar工具——查看历史资源使用情况 只要通过cron命令对sysstat进行周期性执行(/etc/cron.d/sysstat),服务器的运行状态数据就会被收集起来。如果cron没有运行,sysstat将无法收集历史统计结果。 要在sar中查看历史资源使用情况,我们必须为文件提供与统计数据相符的路径。 举例来说,如... 阅读全文
posted @ 2016-08-17 11:12 流年素心 阅读(1203) 评论(0) 推荐(2)
摘要:对外提供的接口承诺幂等性,其要表达的含义是:只要调用接口成功,外部对接口的多次调用得到的结果是相同的。即执行多次和一次的效果是一样的。 业务开发中,经常会遇到重复提交的情况,无论是由于网络问题无法收到请求结果而重新发起请求,或是前端的操作抖动而造成重复提交情况。幂等接口认为,外部调用者会存在多次调用 阅读全文
posted @ 2016-08-13 17:52 流年素心 阅读(506) 评论(0) 推荐(0)
摘要:一. 好处 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。 二. 线程池的使用 java.util.concurrent.ThreadPo... 阅读全文
posted @ 2016-08-11 00:21 流年素心 阅读(252) 评论(0) 推荐(0)
摘要:JAVA通过多线程机制使得多个任务同时执行处理,所有的线程共享JVM内存区域main memory,每个线程又单独地有自己的工作内存,当线程与内存区域进行交互时,数据从主存拷贝到工作内存,进而交由线程处理。 一、JVM逻辑内存模型的构成 1.1 程序计数器 Program Counter Register 当前线程所执行的字节码指令的地址。字节码解释器工作时,依赖于改变计数器的值来读取... 阅读全文
posted @ 2016-08-04 23:36 流年素心 阅读(172) 评论(0) 推荐(0)
摘要:Java反射机制可以让我们在编译期(Compile Time)之外的运行期(Runtime)检查类,接口,变量以及方法的信息。反射还可以让我们在运行期实例化对象,调用方法,通过调用get/set方法获取变量的值。 通过反射API可以获取程序在运行时刻的内部结构,知道了Java类的内部 结构之后,就可以与它进行交互,包括创建新的对象和调用对象中的方法等。这种交互方式与直接在源代码中使用的效果是相同的... 阅读全文
posted @ 2016-08-04 19:06 流年素心 阅读(234) 评论(0) 推荐(0)
摘要:抽象类与接口是java语言中对抽象概念进行定义的两种机制。 在面向对象领域由于抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类和接口都是不能实例化的。 一、抽象类 抽象类体现了数据抽象的思想,是实现多态的一种机制。它定义了一组抽象的方法,至于这组抽象方法的具体表现形式,由派生类来实现。同时抽象类提供了继承的概念,它的出发点就是为了继承,否则它没有存在的任何意义。所以说定义... 阅读全文
posted @ 2016-08-03 20:10 流年素心 阅读(292) 评论(0) 推荐(0)