摘要:
Java中的门面模式,一般来说他的用途是隐藏一些不希望用户看到的东西,比如方法,变量,并且这些变量是不能够设置成私有的,因为在系统内部有些地方需要调用。在Tomcat的HttpServletRequest和HttpServletResponse这两个对象中就使用了门面模式。举例:有一个接口叫做P... 阅读全文
摘要:
JVM运行之前会执行一个叫做类加载器的子系统,叫做ClassLoader,那么类里面那么多“元素”,究竟是个什么顺序呢,写几行代码测试一下,通过给每个方法和代码快和静态变量打上断点来测试:class Person { private String name; public Person(... 阅读全文
摘要:
说到克隆,其实是个比较简单的概念,跟现实生活正的克隆一样,复制一个一模一样的对象出来。clone()这个方法是从Object继承下来的,一个对象要实现克隆,需要实现一个叫做Cloneable的接口,这个接口没有什么方法,和Comparable接口差不多,仅仅是起一个标志作用,实现了这个接口你就能... 阅读全文
摘要:
今天在看一本书的时候注意到一个String的intern()方法,平常没用过,只是见过这个方法,也没去仔细看过这个方法。所以今天看了一下。个人觉得给String类中加入这个方法可能是为了提升一点点性能,因为从常量池取数据比从堆里面去数据要快一些。(个人感觉) API上的那几句关于这个方法,其实... 阅读全文
摘要:
1.JDK规定,equals相等的两个对象hashCode也必须相等,这两个方法都是从Object上面继承而来的,通过观察JDK源码可以发现Object的equals方法是对2个对象的地址(逻辑地址,也就是在JVM中映射一个物理地址)比较,而hashCode又是一个本地方法,其实hashCode就是内存中的一个地址,换句话说,2个相等的对象(地址相等)那么他们的hashCode也肯定是相等的,反过来hashCode不相等,equals也一定不相等,但是hashCode相等equals却不一定相等,因为在生成hashCode的时候可能有冲突,还有一种情况就是JDK的String、Intege.. 阅读全文
摘要:
package test;import java.util.Collection;import java.util.HashMap;import java.util.Map;import java.util.Map.Entry;import java.util.Set;import org.junit.Before;import org.junit.Test;/** * 对于Map的三种方式遍历 1.keySet() 2.values() 3.entrySet() * 三种方式得到Set之后,都可以使用 foreach或者iterator, 不能使用for,因为数据结构决定的 * * @aut 阅读全文
摘要:
前奏: 比较三者之间的区别在与区别他们做相同的事情的时候的区别,那就是在我们常见的拼接字符串的时候,StringBuffer、StringBuilder调用的是appende()方法,而String很特别,是采用“+”号的方式。说明:如果想要搞的很清楚,建议去看看源码,写的比较清晰,并且自己测试几次。先看测试结果:测试次数String(毫秒)StringBuffer(毫秒StringBuilder(毫秒1万次 69 1 110万次 5822 2 120万次 22165 5 330万次 53970 8 550万次 186168 12 10结论:String > S... 阅读全文
摘要:
今天碰到一个Ajax跨域请求的问题,我把源码down下来,然后在服务器端写了一个http请求的代理(因为服务器端是不存在跨域问题的),说白了就是用BufferedReader写了个IO流,然后读取到目标地址的数据,测试发现OK,但是问题出现在,asp的项目存在IIS里面,而我们的java代码是放在其他服务器的容器中,asp的请求无论如何都是跨域的,我们是无法在IIS里面部署jsp的,所以这个办法行不通。于是上网查了下,发现可以使用jsonp的方式实现跨域。其实原理也很简单,就是利用标签的src来实现跨域获取数据,而jQuery的Ajax也正好支持并且封装了这种方式,思路是客户端以jsonp的. 阅读全文
摘要:
自己写了个ExtJS的MsgBox的小模版,以后遇到需要使用提示的地方就拿过来改改,免得每次都重新写。 1 /**MsgBox start**/ 2 Ext.Msg.buttonText.yes = "是"; 3 Ext.Msg.buttonText.no = "否"; 4 Ext.Msg.buttonText.cancel = "退出"; 5 Ext.Msg.buttonText.ok = "确定"; 6 var errorTitle = "错误提示"; 7 var... 阅读全文