随笔分类 -  JAVA面试

摘要:Spring 1、你一般用spring做什么?控制反转IOC AOP2、spring中的哪个类的哪个方法可用于获取beanApplicationContext类的getBean()方法。3、spring是什么?根据你的理解详细谈谈你的见解。 ◆目的:解决企业应用开发的复杂性 ◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 ◆范围:任何Java应用 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 ◆轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并... 阅读全文
posted @ 2013-05-22 09:45 王 庆 阅读(524) 评论(0) 推荐(0)
摘要:我心目中最好的框架组合是: 表示层:spring mvc 3.1 + annotation 控制层:spring 3.1 持久层:hibernate 3.6 +jdbcTemplate 后台列表控件:displaytag 1.2 Ajax框架: DWR 3 JS框架 : Jquery 缓存机制:spring 3.1 cache + ehcache/memcached 静态化机制: Freemarker静态化/spring mvc伪静态化 页面技术: EL + JSTL +JSP 安全框架 spring security 搜索引擎: Lucene 中文分词:IKAnalyzer 模板引擎: ap 阅读全文
posted @ 2013-05-14 09:09 王 庆 阅读(437) 评论(0) 推荐(0)
摘要:下面是我对面向接口编程的理解优点:1.程序结构清晰,使用方便2.接口经过合理设计后,有利于程序设计的规范化,并可以并行开发,提高工作效率3.实现了程序的可插拔性,对于不同的需求切换不同的实现,降低了耦合度,随着系统复杂性的提高这个优势会越来越明显4.允许多重实现,弥补了继承的缺陷缺点:1.增加了设计的复杂度,不佳的接口的设计会对所有使用接口的层都有影响,并且并不是所有的程序的都需要使用接口,接口只有在系统的复杂性达到一定程度才能体现出它的优势,否则只是纯粹的增加工作量,当然选择接口是不会错的,这需要自己的衡量2.可能会降低代码的可复用性3.可能会降低程序的执行效率使用接口的经典案例:1.JDB 阅读全文
posted @ 2013-05-13 10:03 王 庆 阅读(983) 评论(0) 推荐(1)
摘要:原文:JavaScript quirk 2: two “non-values” – undefined and null译文:「译」JavaScript 的怪癖 2:两个「空值」:undefined 和 null译者:SingleSeeker对于“空值”或“空引用”,大多数编程语言只有一个值。比如,在 Java 中用的是null。 但是在 Javascript 中却有两个特殊的值:undefined和null。 他们基本上是相同,但用法上却略有些不同。 在这个系列教程的最后,我会解释一下在 ECMAScript 6 中的一些变化。undefined是被语言本身所分配的。 如果一个变量还没有被初 阅读全文
posted @ 2013-05-06 09:35 王 庆 阅读(262) 评论(0) 推荐(0)
摘要:缓存是介于物理数据源与应用程序之间,是数据库数据在内存中的存放临时copy的容器,其作用是为了减少应用程序对物理数据源访问的次数,从而提高了应用的运行性能。1、Hibernate缓存概述缓存是介于物理数据源与应用程序之间,是数据库数据在内存中的存放临时copy的容器,其作用是为了减少应用程序对物理数据源访问的次数,从而提高了应用的运行性能。Hibernate在进行读取数据的时候,根据缓存机制在相应的缓存中查询,如果在缓存中找到了需要的数据(我们把这称做“缓存命中"),则就直接把命中的数据作为结果加以利用,避免了建立数据库查询的性能损耗。2:Hibernate缓存分类一级缓存(sess 阅读全文
posted @ 2013-04-26 16:59 王 庆 阅读(320) 评论(0) 推荐(0)
摘要:1. statement每次执行sql语句,相关数据库都要执行sql语句的编译;preparedstatement是预编译的, 采用Cache机制(预编译语句,放在Cache中,下次执行相同SQL语句时,则可以直接从Cache中取出来,有利于sql生成查询计划。),对于批量处理可以大大提高效率. 也叫JDBC存储过程。例如,如果要执行两条sql语句SELECT colume FROM TABLE WHERE colume=1;SELECT colume FROM TABLE WHERE colume=2;会生成两个执行计划一千个查询就生成一千个执行计划!PreparedStatement用于使 阅读全文
posted @ 2013-04-26 16:56 王 庆 阅读(1052) 评论(0) 推荐(0)
摘要:1.HashMap不是线程安全 HashMap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。2.HashTable是线程安全的一个Collection。 HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。 HashMap把Hashtable的contains方法去掉了,改成contains.. 阅读全文
posted @ 2013-04-26 16:30 王 庆 阅读(599) 评论(0) 推荐(0)
摘要:1 ArrayList底层是采用数组实现的(并且改数组的类型是Object类型的)2 如果是jdk6的话,采用Array.of()方法来生成一个新的数组,如果是jdk5.0的话,使用的是System.arraycopy方法(将数组拷贝)3 List list = new ArrayList();时,底层会生成一个长度为10的数组来存放对象,如果预先知道list会存放多少个对象的话,最好通过new ArrayList(int length)的方式先确定数组的最小长度,如newArrayList(50),这样能提高底层的效率。4 对于ArrayList与Vector来说,底层都是采用数组方式来实现 阅读全文
posted @ 2013-04-26 13:13 王 庆 阅读(280) 评论(0) 推荐(0)
摘要:String是一个非可变性的类,这种类的特点是状态固定(不存在任何修改对象的方法),在该对象的生存周期内,它的值是永远不变的(它是线程安全的),它们更容易设计、实现、使用,不易出错,更加安全。 由于String类是支持非可变性的,所以,当执行tmp +=”x”的时候,实际上是另外创建了一个对象,而tmp原来指向的那个对象就成了垃圾(当它没有其它引用的时候),这样的话一个循环就会产生n多对象,可以相象内存的浪费,String和StringBuffer都是finall类,他们生成的对象在堆中都是不可变的,在他们内部都是靠属性char数组实现的,那为什么StringBuffer可以在对象中追加字符. 阅读全文
posted @ 2013-04-26 13:07 王 庆 阅读(220) 评论(0) 推荐(0)