自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

NoClassDefFoundError与ClassNotFoundException的区别

[b]相同点:[/b]1、NoClassDefFoundError和ClassNotFoundException都是类运行时出错。2、都和classpath有关。[b]不同点:[/b]1、ClassNotFoundException继承java.lang.Exception,是一种受检异常(checked exception),需要显式地使用try/catch来进行处理。通...

2014-09-23 00:11:18 270

原创 XSS蠕虫攻击

XSS (cross-site scripting),即跨站脚本攻击,它的本质还是一种“HTML注入”,用户的数据被当成了HTML代码一部分来执行,从而混淆了原本的语义,产生了新的语义。来看一张某网站遭受XSS攻击后的图片,[img]http://dl2.iteye.com/upload/attachment/0101/3717/a83f235a-329f-30b0-9f85-3aa7...

2014-09-22 22:40:57 1274

一致性哈希算法

[b]分布式缓存问题[/b]假设我们有一个网站,最近发现随着流量的增加,服务器压力越来越大,之前直接读写数据库的方式不太给力了,于是我们想引入Memcached作为缓存机制。现在我们一共有三台机器可以作为Memcached服务器,如下图所示。[img]http://dl2.iteye.com/upload/attachment/0101/3749/f996cf02-df05-376a-...

2014-09-22 20:34:00 117

Git快速入门

 版本控制系统可以分为集中式(CVCS, Centralized Version Control System, 例如CVS、Subversion)和分布式(DVCS, Distributed Version Control System,例如Git)版本控制系统。  传统的集中式版本控制系统,本地只保存代码库的一个版本拷贝。 所有历史版本都保存在服务器。GIT 与之最大的不同是,本地...

2014-09-19 14:33:24 115

ArrayBlockingQueue和LinkedBlockingQueue的区别

 1.队列中的锁的实现不同       ArrayBlockingQueue中的锁是没有分离的,即生产和消费用的是同一个锁;       LinkedBlockingQueue中的锁是分离的,即生产用的是putLock,消费是takeLock 2.在生产或消费时操作不同     ArrayBlockingQueue基于数组,在生产和消费的时候,是直接将枚举对象插入或移除的...

2014-09-15 14:38:43 526 1

aop:aspectj-autoproxy的内部机制

要说Spring xml配置中的<aop:aspectj-autoproxy />,先从@EnableAspectJAutoProxy注解说起,Spring的配置除了使用xml之外,还可以使用Java类+ 注解的方式,例如下面的AppConfig类:// 配置文件类 @Configuration @EnableAspectJAutoProxy public c...

2014-09-12 17:36:19 152

排序算法的稳定性

什么是稳定的排序算法,举个简单的例子,对四张扑克牌按照牌面值进行升序排序,对于红桃5和黑桃5,牌面值相同,如果使用稳定的排序算法,则排序前是红桃5在前、黑桃5在后的相对顺序,在排序后依然是这个顺序。 如果使用不稳定的排序算法,则红桃5和黑桃5的相对顺序被打乱。 稳定的排序算法有什么作用? 再举个查询学生情况的例子,先按照年龄升序排序从数据库中查出前四条记录:...

2014-09-10 00:21:37 121

归并排序算法

归并排序采用分治法(Divide and Conquer),是一种稳定的排序方法。顾名思义,其实就是通过先递归、再合并的思想来排序。 如下图所示,假设有一个无序数组{10, 4, 6, 3, 8, 2, 5, 7},先根据二分法对其进行递归分解,第一次分解后,变成两个数组{10, 4, 6, 3}, {8, 2, 5, 7},第二次分解后,变成四个数组{10, 4}, {6...

2014-09-09 17:30:35 75

原创 浏览器缓存机制

浏览器缓存机制,其实主要就是HTTP协议定义的缓存机制(如:Expires;Cache-control等)。但是也有非HTTP协议定义的缓存机制,如使用HTML Meta 标签,Web开发者可以在HTML页面的<head>节点中加入<meta>标签,代码如下:html code<META HTTP-EQUIV="Pragma" CO...

2014-09-05 00:16:26 78

原创 网购秒杀系统架构设计

秒杀活动的技术挑战1. 对现有网站业务造成冲击秒杀活动只是网站营销的一个附加活动,这个活动具有时间短,并发访问量大的特点,如果和网站原有应用部署在一起,必须会对现有业务造成冲击,稍有不慎可能导致整个网站瘫痪。2. 高并发下的应用、数据库负载用户在秒杀开始前,通过不停刷新浏览器页面以保证不会错过秒杀,这些请求如果按照一般的网站应用架构,访问应用服务器、连接数据库,会对应用服务器和...

2014-09-04 23:28:50 209

设计模式的六大原则

关于设计模式的六大原则,经典的总结是“单一职责原则告诉我们实现类要职责单一;里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;接口隔离原则告诉我们在设计接口的时候要精简单一;迪米特法则告诉我们要降低耦合。而开闭原则是总纲,他告诉我们要对扩展开放,对修改关闭。”  单一职责原则(Single Responsibility Principle)一个类只负...

2014-09-04 23:09:20 74

liveness hazard—死锁,活锁,饥饿

 在java多线程编程中,一不小心就会引起活性危险(liveness hazard),需要非常谨慎。liveness可以翻译成活性,如果线程的活性好,说明运行状态不错,能得到CPU的有效处理;反之则线程可能处于死锁、饥饿、活锁等危险状态。-------------------------------------------------------------------------------...

2014-09-04 11:31:37 230

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除