摘要: load average的概念 top命令中load average显示的是最近1分钟、5分钟和15分钟的系统平均负载。 系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程数。如果一个进程满足以下条件则其就会位于运行队列中: 它没有在等待I/O操作的结果 它没有主动进入等待状态(也就是没有调用’wait’) 没有被停止(例如:等待终止) 在Linux中... 阅读全文
posted @ 2016-08-17 13:33 流年素心 阅读(47053) 评论(0) 推荐(3) 编辑
摘要: 以下项目的过度使用会直接导致高负载问题。 CPU 内存(包括虚拟内存) 磁盘IO sar工具——查看历史资源使用情况 只要通过cron命令对sysstat进行周期性执行(/etc/cron.d/sysstat),服务器的运行状态数据就会被收集起来。如果cron没有运行,sysstat将无法收集历史统计结果。 要在sar中查看历史资源使用情况,我们必须为文件提供与统计数据相符的路径。 举例来说,如... 阅读全文
posted @ 2016-08-17 11:12 流年素心 阅读(1169) 评论(0) 推荐(2) 编辑
摘要: 对外提供的接口承诺幂等性,其要表达的含义是:只要调用接口成功,外部对接口的多次调用得到的结果是相同的。即执行多次和一次的效果是一样的。 业务开发中,经常会遇到重复提交的情况,无论是由于网络问题无法收到请求结果而重新发起请求,或是前端的操作抖动而造成重复提交情况。幂等接口认为,外部调用者会存在多次调用 阅读全文
posted @ 2016-08-13 17:52 流年素心 阅读(497) 评论(0) 推荐(0) 编辑
摘要: 一. 好处 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。 二. 线程池的使用 java.util.concurrent.ThreadPo... 阅读全文
posted @ 2016-08-11 00:21 流年素心 阅读(240) 评论(0) 推荐(0) 编辑
摘要: JAVA通过多线程机制使得多个任务同时执行处理,所有的线程共享JVM内存区域main memory,每个线程又单独地有自己的工作内存,当线程与内存区域进行交互时,数据从主存拷贝到工作内存,进而交由线程处理。 一、JVM逻辑内存模型的构成 1.1 程序计数器 Program Counter Register 当前线程所执行的字节码指令的地址。字节码解释器工作时,依赖于改变计数器的值来读取... 阅读全文
posted @ 2016-08-04 23:36 流年素心 阅读(166) 评论(0) 推荐(0) 编辑
摘要: Java反射机制可以让我们在编译期(Compile Time)之外的运行期(Runtime)检查类,接口,变量以及方法的信息。反射还可以让我们在运行期实例化对象,调用方法,通过调用get/set方法获取变量的值。 通过反射API可以获取程序在运行时刻的内部结构,知道了Java类的内部 结构之后,就可以与它进行交互,包括创建新的对象和调用对象中的方法等。这种交互方式与直接在源代码中使用的效果是相同的... 阅读全文
posted @ 2016-08-04 19:06 流年素心 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 抽象类与接口是java语言中对抽象概念进行定义的两种机制。 在面向对象领域由于抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类和接口都是不能实例化的。 一、抽象类 抽象类体现了数据抽象的思想,是实现多态的一种机制。它定义了一组抽象的方法,至于这组抽象方法的具体表现形式,由派生类来实现。同时抽象类提供了继承的概念,它的出发点就是为了继承,否则它没有存在的任何意义。所以说定义... 阅读全文
posted @ 2016-08-03 20:10 流年素心 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 泛型,即泛化类型。本质是将数据类型指定为参数——参数化类型。泛型程序设计(Generic Programming)意味着编写的代码可以被很多不同类型的对象所重用。 【类型参数的理解】 类似于函数中的形参和实参一样,当一个泛型声明被调用,实际类型参数(actual type arguments)取代形式类型参数。 与c++中的Template的重要区别是,java的泛型是通过擦除实现的!所以,... 阅读全文
posted @ 2016-07-30 23:29 流年素心 阅读(864) 评论(0) 推荐(0) 编辑
摘要: 1. 下载源码 2. 启动容器,加载组件--WebxContextLoaderListener WebxContextLoaderListener继承自org.springframework.web.context.ContextLoaderListener。它覆盖了一个方法:createContextLoader(),该方法返回一个ContextLoader对象,即上下文加载器。方法的... 阅读全文
posted @ 2016-06-12 17:50 流年素心 阅读(1568) 评论(0) 推荐(0) 编辑
摘要: Spring 是面向 Bean 的编程(BOP,Bean Oriented Programming),提供了 IOC 容器通过配置文件或者注解的方式来管理对象之间的依赖关系。 控制反转模式(也称作依赖性介入)的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器 (在 Spring 框架中是 IOC 容器) 负责将这些联系... 阅读全文
posted @ 2016-06-11 09:54 流年素心 阅读(482) 评论(0) 推荐(0) 编辑