1、 1 / 4中级 JAVA笔试题(附参考答案)java 基础1. StringBuffer的实现方式,容量如何扩充。2. ClassLoader的功能和工作模式。3. =和 equals的区别 。4. 什么是线程安全?举例说明一个线程不安全的例子。5. 说出数据连接池的工作机制,解决什么问题。6. 一个字符串“java Java JAVa JaVa IloveJAVA you hateJava afasdfasdf“,把其中奇数位 java(大小写不敏感)替换成 java,偶数位替换成 JAVA。数据库7. 经常使用的数据库的优化方法。8. 薪水最高的第 10到第 20名雇员 Oracle和
2、mysql的实现。算法:9. ArrayList LinkedList HashMap,存储性能和特点。 10. 用任意方法对 int类型数组进行排序。架构:11.描述 MVC的设计思想 12.Spring的核心理念是什么 13.谈一下自己最熟悉的 web框架2 / 4参考答案:java 基础1. StringBuffer的实现方式,容量如何扩充。(StringBuffer 是通过 char来实现的,默认长度是 16,在进行串的 append 的时,StringBuffer 会检测剩余容量,适时会重新扩充,而扩容的同时,会创建一个新的数组,并将原来的数组内容复制到新的数组里面。)2. Clas
3、sLoader的功能和工作模式。(1:JVM 在运行时会产生三个 ClassLoader,其层次关系::Bootstrap ClassLoaderExtension ClassLoaderAppClassLoader,2: 当一个装载器被请求装载某个类时,它首先委托自己的 parent 去装载,若 parent 能装载,则返回这个类所对应的Class 对象,若 parent 不能装载,则由 parent 的请求者去装载。)3. =(引用指向同一个对象)和 equals(引用可能指向的不是同一个对象)的区别 。4. 什么是线程安全(在函数执行过程中不会造成资源冲突),举例说明一个线程不安全的例子
4、。5. 说出数据连接池的工作机制,(服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。)解决什么问题(性能)。6. 一个字符串“java Java JAVa JaVa IloveJAVA you hateJava afasdfasdf“,把其中奇数位上的 java(大小写不敏感)替换成 java,偶数位替换成 JAVA。import jav
5、a.util.regex.Matcher;import java.util.regex.Pattern;public class Test public static void main(String args) Pattern p = Ppile(“java“, Pattern.CASE_INSENSITIVE);Matcher m = p.matcher(“java Java JAVa JaVa IloveJAVA you hateJava afasdfasdf“);StringBuffer buf = new StringBuffer();int i=0;while(m.find() 3
6、 / 4i+;if(i%2 = 0) m.appendReplacement(buf, “java“); else m.appendReplacement(buf, “JAVA“);m.appendTail(buf);p(buf);数据库7. 经常使用的数据库的优化方法。(索引,缓存,sql 优化,分表等)8. 薪水最高的第 10到第 20名雇员 Oracle和 mysql的实现。Oracle:select ename, salfrom (select ename, sal, rownum rfrom (select ename, sal from emp order by sal desc)
7、where r = 10and r = 20mysql:select ename, sal from emp order by sal desc LIMIT 10,10算法:9. ArrayList(查询性能高,插入删除性能低) LinkedList(查询性能低,插入删除性能高) HashMap(性能介于两者之间),存储性能和特点。10. 用任意方法对 int类型数组进行排序。(Collections.Sort(ArrayList)(public class NumSort public static void main(String args) int a = new intargs.len
8、gth;for (int i=0; iargs.length; i+) ai = Integer.parseInt(argsi);print(a);selectionSort(a);4 / 4print(a);private static void selectionSort(int a) int k, temp;for(int i=0; ia.length; i+) k = i;for(int j=k+1; ja.length; j+) if(aj ak) k = j;if(k != i) temp = ai;ai = ak;ak = temp;private static void print(int a) for(int i=0; ia.length; i+) System.out.print(ai + “ “);System.out.println();)架构:11.描述 MVC的设计思想 控制器 Controller- 负责转发请求,对请求进行处理。视图 View - 界面设计人员进行图形界面设计。模型 Model - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计12.Spring的核心理念是什么 (ioc,aop (动态代理)13.谈一下自己最熟悉的 web框架