`
jag522
  • 浏览: 33863 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
相同点: 1、NoClassDefFoundError和ClassNotFoundException都是类运行时出错。 2、都和classpath有关。 不同点: 1、ClassNotFoundException继承java.lang.Exception,是一种受检异常(checked exception),需要显式地使用try/catch来进行处理。通常需要确保需要的类已经在classpath上了。 -------------------------------- 而NoClassDefFoundError继承java.lang.LinkageError,是一种错误(Error)。 2 ...

XSS蠕虫攻击

XSS (cross-site scripting),即跨站脚本攻击,它的本质还是一种“HTML注入”,用户的数据被当成了HTML代码一部分来执行,从而混淆了原本的语义,产生了新的语义。 来看一张某网站遭受XSS攻击后的图片, 其实就是攻击者发送了一段html代码,就达到了上述的效果。 <img height="0" width="0" src="xx" onerror='function fn(){n = $("#userName").html();$("textarea#pub_msg_in ...
分布式缓存问题 假设我们有一个网站,最近发现随着流量的增加,服务器压力越来越大,之前直接读写数据库的方式不太给力了,于是我们想引入Memcached作为缓存机制。现在我们一共有三台机器可以作为Memcached服务器,如下图 ...

Git快速入门

    博客分类:
  • Git
 版本控制系统可以分为集中式(CVCS, Centralized Version Control System, 例如CVS、Subversion)和分布式(DVCS, Distributed Version Control System,例如Git)版本控制系统。    传统的集中式版本控制系统,本地只保存代码库的一个版本拷贝。 ...
  1.队列中的锁的实现不同        ArrayBlockingQueue中的锁是没有分离的,即生产和消费用的是同一个锁;        LinkedBlockingQueue中的锁是分离的,即生产用的是putLock,消费是takeLock   2.在生产或消费时操作不同      ArrayBlockingQueue基于数组,在生产和消费的时候,是直接将枚举对象插入或移除的,不会产生或销毁任何额外的对象实例;      LinkedBlockingQueue基于链表,在生产和消费的时候,需要把枚举对象转换为Node<E>进行插入或移除,会生成一个额外的
要说Spring xml配置中的<aop:aspectj-autoproxy />,先从@EnableAspectJAutoProxy注解说起, Spring的配置除了使用xml之外,还可以使用Java类+ 注解的方式,例如下面的AppConfig类: // 配置文件类  @Configuration @EnableAspectJAutoProxy public class AppConfig {     @Bean     public FooService fooService() {         return new FooService();     ...
什么是稳定的排序算法,举个简单的例子,对四张扑克牌按照牌面值进行升序排序,对于红桃5和黑桃5,牌面值相同,如果使用稳定的排序算法,则排序前是红桃5在前、黑桃5在后的相对顺序,在排序后依然是这个顺序。  如果使用不稳定的排序算法,则红桃5和黑桃5的相对顺序被打乱。   稳定的排序算法有什么作用?   再举个查询学生情况的例子,
归并排序采用分治法(Divide and Conquer),是一种稳定的排序方法。顾名思义,其实就是通过先递归、再合并的思想来排序。   如下图所示,假设有一个无序数组{10, 4, 6, 3, 8, 2, 5, 7}, 先根据二分法对其进行递归分解, 第一次分解后,变成两个数组{10, 4, 6, 3}, {8, 2, 5, 7}, 第二次分解后,变成四个数组{10, 4}, {6, 3}, {8, 2}, {5, 7}, 直到分解成一个数组只包含一个元素,   然后再对元素进行比较、合并, 第一次合并后,变成四个数组

浏览器缓存机制

    博客分类:
  • Web
浏览器缓存机制,其实主要就是HTTP协议定义的缓存机制(如:Expires;Cache-control等)。但是也有非HTTP协议定义的缓存机制,如使用HTML Meta 标签,Web开发者可以在HTML页面的<head>节点中加入<meta>标签,代码如下:
秒杀活动的技术挑战 1. 对现有网站业务造成冲击 秒杀活动只是网站营销的一个附加活动,这个活动具有时间短,并发访问量大的特点,如果和网站原有应用部署在一起,必须会对现有业务造成冲击,稍有不慎可能导致整个网站瘫痪。 2. 高并发下的应用、数据库负载 用户在秒杀开始前,通过不停刷新浏览器页面以保证不会错过秒杀,这些请求如果按照一般的网站应用架构,访问应用服务器、连接数据库,会对应用服务器和数据库服务器造成极大的负载压力。 3. 突然增加的网络及服务器带宽 假设商品页面大小200K(主要是商品图片大小),那么需要的网络和服务器带宽是2G(200K×
关于设计模式的六大原则,经典的总结是“单一职责原则告诉我们实现类要职责单一;里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;接口隔离原则告诉我们在设计接口的时候要精简单一;迪米特法则告诉我们要降低耦合。而开闭原则是总纲,他告诉我们要对扩展开放,对修改关闭。”    单一职责原则(Single Responsibility Principle) 一个类只负责一项职责,好处:变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。   里氏替换原则(Liskov Substitution Prin ...
 在java多线程编程中,一不小心就会引起活性危险(liveness hazard),需要非常谨慎。liveness可以翻译成活性,如果线程的活性好,说明运行状态不错,能得到CPU的有效处理;反之则线程可能处于死锁、饥饿、活锁等危险状态。-----------------------------------------------------------------------------------------------------------------------------------------什么是死锁,举个简单的例子:两只山羊过独木桥,它们同时走到桥中间,结果都堵在中间动弹不 ...
Global site tag (gtag.js) - Google Analytics