- 博客(161)
- 收藏
- 关注
原创 sudo: /etc/sudoers.d/README is mode 0777, should be 0440
问题原因:修改了sudo文件, 导致sudo权限在0640,或者sudo的配置格式错误。因此,要把sudo权限更改回0440。 所以呢,修改sudo,请用命令visudo。 http://blog.csdn.net/chz870128/article/details/6263513 基本上出现标题里面的错误,有两种解决方案:1.进入recovery mode,设置s...
2012-08-01 09:15:37
950
原创 挖掘性能瓶颈的利器-Btrace实例-check 程序中的线程数
Btrace无疑是性能调优的一个非常重要的工具,它可以做到代码无侵入性的挖掘性能的问题,它利用字节码级别的运行时动态植入来check性能问题,性能优化的第一步往往是找出性能的瓶颈,如下面的功能是check程序的运行的线程数: /* * Copyright 2008-2010 Sun Microsystems, Inc. All Rights Reserved. * DO N...
2012-06-22 22:01:46
213
原创 度量网页加载性能的几个时间指标(转)
度量网页加载性能的几个时间指标2011年06月16日 星期四 上午 11:48AliPage是一款网页性能探测工具,该工具对下发任务指定的URL进行探测。可以获得本地浏览器下载并展现指定网页的网页对象元素信息,包括下载网页中的图片和js等网页对象所需的DNS解析用时(DNS Time)、TCP连接用时(Socket Time)、对象下载开始时间(FirstByte Time)、...
2012-06-13 10:32:33
383
原创 Java后端性能优化的综述
在一个非常忙的公司里面,很久没有发blog了,残酷,但是其实自己一直在学习进步,最近在负责公司部门整个网站的性能优化,写了一个综述,分享给大家,但是细节还需要描述,之后会继续修改:...
2012-06-04 11:27:35
315
原创 Windows和Linux下如何查看端口被哪个进程占用
Windows:C:/Users/ewanbao>netstat -aon|findstr "123" TCP 127.0.0.1:55123 0.0.0.0:0 LISTENING 5092 TCP 127.0.0.1:55123 127.0.0.1:55124 ...
2012-04-05 11:10:21
127
原创 checked exception还是non checked exception
使用检测异常和不可检测异常: 1.在一般情况下,使用检测异常还是非检测异常的判断标准是客户端(调用者)能够处理它们。 像JDBC的SQLException是检测异常,把它设计成checked exception,不一定是合理,因为大多数情况下,调用者是无法处理的。当然有一种情况,调用者可以这样处理:它捕获SQLException,然后给用户提示:数据库执行失败,这也是一种处理方式。...
2011-07-11 14:38:01
133
原创 Java异常处理的反模式
六种异常处理的陋习你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗? 1 OutputStreamWriter out = ... 2 java.sql.Connection conn = ... 3 try { // ⑸ ...
2011-07-11 13:43:11
146
原创 MySQL优化实践
http://www.hellodb.net/2011/07/mysql-linux-hardware-tuning.html
2011-07-08 09:47:10
104
原创 MySQL单机多实例方案
关于MySQL的性能优化的一篇文章,很好,使用MySQL作企业级应用时,可以考虑使用这种方案: http://www.hellodb.net/2011/06/mysql_multi_instance.html
2011-07-08 09:41:48
109
原创 Linux查看内存,硬盘和cpu信息
查看硬盘:fdisk -l 查看内存:cat /proc/meminfo 查看cpu:cat /proc/cpuinfo
2011-07-07 10:27:57
119
原创 Ubuntu Java 环境变量
方法1:修改/etc/profile 文件所有用户的 shell都有权使用这些环境变量<1>在 shell终端执行命令:vi /etc/profile<2>在 profile文件末尾加入:JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.15PATH=$JAVA_HOME/bin:$PATH CLASSP...
2011-06-30 15:03:21
110
原创 Java对象的大小
基本数据的类型的大小是固定的,这里就不多说了。对于非基本类型的Java对象,其大小就值得商榷。在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有任何属性的对象的大小。看下面语句: Object ob = new Object(); 这样在程序中完成了一个Java对象的生命,但是它所占的空间为:4byte+8byte。4byte是上面部分所说的...
2011-06-29 21:26:08
113
原创 interview记录
最近花了两个月时间好好准备和总结了一下,进步是明显的,非常感谢面试公司的热情接待。 在面试过程中,特别提到公司的hr小姑娘非常nice,整个过程中,每个架构师和中高层管理人员都看得非常顺眼,也许这就是缘分吧。 面试的职位是Java架构师职位 问的题目有:1.最擅长的技术是?答:JVM和Java 并发编程 2.Wait和Sleep的区别 3.集合类的s...
2011-05-24 10:21:56
109
原创 OpenSessionInViewFilter 的解析
OpenSessionInViewFilter的作用是延时session的关闭,直到request结束,这样做的目地是防止hibenrate lasy load出现异常的情况。如果isSingleSession设置成true,表示一个request的生命周期内,都使用一个session。false表示调用多少dao层的方法就用多少个session,但是这些session会延时到一个request结...
2011-05-23 01:46:39
113
原创 XML的两种解析方式Dom和SAX的区别
DOM和SAX是应用中操纵XML文档的两种主要API,它们分别解释如下:DOM,即Document ObjectModel,中文叫文档对象模型。DOM是W3C定义的标准文档对象模型,是一个与操作系统和编程语言无关的、用于内存存储和操作层次化文档的模型。当按照DOM模型解析XML文档时,就会在内存中构造一个对应的DOM树,它可以用于不同节点之间的遍历。然而,在遍历之前必须先完成DOM树的...
2011-05-19 21:32:51
179
原创 Tomcat 类加载机制
Tomcat中的类加载策略和JDK中的委托模型略有不同。Tomcat Server在启动的时候将构造一个ClassLoader树,以保证模块的类库是私有的,ClassLoader结构如下: Bootstrap | System | Com...
2011-05-19 16:23:16
149
原创 String为什么是不可变的
StringBuffer可变String不可变的真正原因 String和StringBuffer都是final类,他们生成的对象在堆中都是不可变的,在他们内部都是靠属性char数组实现的,那为什么StringBuffer可以在对象中追加字符串呢?呵呵,因为String中的char数组是finall的,也就是常量,是不可改变的,而StringBuffer继承自抽象类Abst...
2011-05-19 14:37:52
119
原创 死锁实例
下面这道题,是考死锁的,比较简单,想两个问题:1.什么时候会造成死锁2.wait和notify释放了哪个锁,因为题目中有两个锁。 import java.util.LinkedList;public class DeadLockTest { LinkedList list = new LinkedList(); public synchr...
2011-05-19 14:21:06
127
原创 Jsp的标准动作和九大内置对象
1、jsp动作7大动作jsp:include,jsp:userBean,jsp:plugin,jsp:getProperty,jsp:setProperty2、<jsp:useBean>动作(1)作用在jsp页面上,以标签的方式实现bean的实例化(2)格式自关闭式:<js...
2011-05-19 00:04:07
95
原创 Struts1的简单工作流程
ActionSerlvet接收客户Http请求,使用ActionForm Bean自动填充客户送来的表单数据到ActionForm Bean对象中?根据配置信息(struts_config.xml)将请求分发给相应的Action对象?Action对象调用execute()方法处理请求(根据JavaBean和ActionForm取得业务逻辑和表单数据),并反回ActionForward对象给...
2011-05-18 23:30:47
97
原创 设计模式-观察者模式
观察者模式又称发布订阅模式,它定义了对象之间一对多的关系,对象的状态发生变化时,所有依赖的对象都自动得到通知。观察者模式,很好地解除了观察者和被观察患者之间的耦合。 Java有内置的观察者模式的实现:public interface Observer { public void update(Obsevable observable, Object); } ...
2011-05-17 22:22:59
84
原创 JVM四种对象引用类型
JVM 中将对象的引用分为了四种类型,不同的对象引用类型会造成GC 采用不同的方法进行回收:1.强引用默认情况下,对象采用的均为强引用,例如:A a=null;public void execute(){a=new A();,// 其他代码}只有当execute 所在的这个对象的实例没有其他对象引用,GC 时才会被回收。2.软引用(Soft Refe...
2011-05-17 16:27:28
141
原创 HaProxy的负载均衡策略
roundrobin Each server is used in turns, according to their weights. This is the smoothest and fairest algorithm when the server's processing time remains equall...
2011-05-17 14:35:53
197
原创 NGinx负载均衡策略
nginx的upstream目前支持的5种方式的分配1、轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。upstream backserver {server 192.168.0.14;server 192.168.0.15;}2、weight指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。...
2011-05-17 14:31:53
208
原创 一些常用的软件设计原则
在架构设计过程中,了解一些先辈们总结出来的常用的设计原则非常有用,在实践过程中,结合这些理论,相信架构水平会有质的提升,就像是一本武功秘籍,在学的过程中遵循它的rule,你的武功自然就上去了。我真的感觉这些原则非常有用:1.Don't Repeat Yourself在上一篇已经有阐述。 2.面向接口编程而不是面向实现的编程接口是稳定的,也是抽象的,越抽象的东西越...
2011-05-17 10:53:32
104
原创 设计模式-Facade模式
Facade模式 当软件系统需要跟子系统进行复杂的交互时,为了减少系统的交互从而简化系统之间交互的目地,可以用外观模式。 外观模式用到了一个常用的规则:最小知识原则也叫迪米特原则,如果你的应用有很多类,并且他们有复杂的依赖关系,那么你的应用将非常难于扩展和维护,其中一处改动能影响很多使用者。迪米特原则让我们减少系统之间的依赖,一处改动只会影响小范围的地方。 外观模式提供fa...
2011-05-17 00:20:30
63
原创 设计模式-适配器模式
适配器模式:系统之间集成,常由于接口之间不兼容,很多能满足功能的软件模块,由于接口不同,而导致无法使用。在这种情况下可以使用适配器模式。 使用场合:当原来的类已经存在,但是不能一起工作,这个时候,适配器模式是个好的解决方案。1.适配器模式的含义在于:把一个类的接口转化为另一个接口,使得原本不兼容而不能一起工作的类能够一起工作。 2.适配器类型1)类适配器:通过继承关系,...
2011-05-16 18:00:05
83
原创 设计模式-组合模式
组合模式的定义:将对象组合成树的形式来表示整体和局部之间的关系,使得客户端对单个对象和组合对象的使用有了一致性。 适用场合:1.需要表示一个对象整体或者局部的关系,在具有整体和部分的层次结构中,希望通过一种方式忽略整体和部分的差异,可以一致地对待它们。2.让客户端忽略不同对象层次的变化,客户端可以针对抽象类编程,无需关心对象层次结构的细节。 对象类图:...
2011-05-16 15:48:35
87
原创 Spring的七种事务传播途径和隔离级别
PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。 PROPAGATION_MANDATORY--该方法只能在一个已经存在的事务中执行,业务方法不能发起自己的事务。如果在没有事务的环境下被调用,容器抛出例外。 PROPAGATIO...
2011-05-13 11:13:30
198
原创 Garbage First - Card Table
之前一直以为只是在Garbage First垃圾回收器中,有Card Table,终于在这篇文章中有些提示,让我对Card Table的作用有了清晰的认识,对Garbage First基本上有所了解了,应该可以进行总结了。。。。。。 http://vrlinux.com/wenzhangjingxuan/20101115/79907_2.htmlhttp://www.blogjava....
2011-05-12 17:36:25
97
原创 CompleteService介绍和使用实例
当向Executor提交批处理任务时,并且希望在它们完成后获得结果,如果用FutureTask,你可以循环获取task,并用future.get()去获取结果,但是如果这个task没有完成,你就得阻塞在这里,这个实效性不高,其实在很多场合,其实你拿第一个任务结果时,此时结果并没有生成并阻塞,其实在阻塞在第一个任务时,第二个task的任务已经早就完成了,显然这种情况用future task不合适的,...
2011-05-11 17:31:06
3044
原创 CyclicBarrier的使用实例
CyclicBarrier允许给定数量的线程全部到达关卡点时,关卡就被成功突破,关卡被重置以备下一次使用。跟CountDownlatch特别类似,但是CountDownLatch不同的是不能被重新重置再使用。 前面的blog说到用countdownlatch去完成方法里面的3个service的调用。用cyclicBarrier同样可以实现。 package cyclicbarrie...
2011-05-11 15:45:09
94
原创 数据库事务隔离级别
数据在操作过程中,可能出现3个不确定的情况:1.Dirty Reads(脏读)一个事务读取了另外一个事务未提交的数据 2.Non-repeatable Reads(不可重复读)一个事务再次读取之前曾经读取过的数据时,发现改数据已经被另外一个已提交的事务修改 3.Phantom Reads(幻读)一个事务重新执行一个查询,返回一套符合查询条件的记录,但是这些记录中包含...
2011-05-10 15:29:20
85
原创 LVS负载均衡(调度)算法-内核中的连接调度算法
此次主题主要讲述LVS负载均衡策略和算法,这里面完全是罗列了章博士里面的blog,属于总结和转发性质。 如何将请求流调度到各台服务器,使得各台服务器尽可能地保持负载均衡。文章主要由两个部分组成。第一部分描述IP负载均衡软件IPVS在内核中所实现的各种连接调度算法;第二部分给出一个动态反馈负载均衡算法(Dynamic-feedback load balancing)...
2011-05-10 09:58:52
112
原创 IBatisVSHibernate
下面是IBatis和Hibernate的比较,多年前做了个presentation,现在拿出来看一下:<!-- [if gte mso 9]><xml> License– Hibernate: LGPL– Ibatis: Apache2.0 Learning curve– Hibernate: Hig...
2011-05-09 14:31:14
65
原创 LVS三种负载均衡模式之-网络地址转换
LVS全称是Linux Virtual Service 1.通过NAT实现虚拟服务器(VS/NAT) 由于IPv4中IP地址空间的日益紧张和安全方面的原因,很多网络使用保留IP地址(10.0.0.0/255.0.0.0、172.16.0.0/255.128.0.0和192.168.0.0/255.255.0.0)[64, 65, 66]。这些地址不在Internet上使用,...
2011-05-09 13:52:28
422
原创 使用LinkedHashMap构建LRU的Cache
这段时间好好整理了一下基础,发现很多对我来说新的东西,里面博大精深的东西真的很多,经常使用HashMap,对HashMap的结构和原理非常了解,但是忽略了还有LinkedHashMap这个好东西。 先转一篇blog: LinkedHashMap的特性:Linked内部含有一个private transient Entryheader;来记录元素插入的顺序或者是元素被访问的顺...
2011-05-07 09:12:55
122
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人