java笔试面试题总结

  • 字符串如何倒序输出?
  • StringBuffer,String,StringBulider区别?
  • Map与Hashmap 的关系?
  • HashSet与HashTable 的关系?1、HashMap是非线程安全的,HashTable是线程安全的。2、HashMap的键和值都允许有null值存在,而HashTable则不行。3、因为线程安全的问题,HashMap效率比HashTable的要高。HashMap的实现机制:维护一个每个元素是一个链表的数组,而且链表中的每个节点是一个Entry[]键值对的数据结构。实现了数组+链表的特性,查找快,插入删除也快。对于每个key,他对应的数组索引下标是 int i = hash(key.hashcode)&(len-1); 每个新加入的节点放在链表首,然后该新加入的节点指向原链表首
  • HashMap和TreeMap区别? http://www.importnew.com/7010.html
  • Hashmap什么时候扩容?
  • Map里如何放list,如何得到list中的值?list 中放Map 呢?
  • .对 Ioc理解
  • Aop的应用 性能检测,访问控制,日志管理,事务等
  • 8 ArrayList 与 LinkedList 的特点
  • 冒泡排序。
  • 了解的设计模式,举例
  • hibernate 的一级缓存与二级缓存 一级:session 缓存,线程内的缓存,使用一级缓存的目的是为了减少对数据库的访问次数 。二级缓存,sessionFactory 缓存,进程内的缓存。
  • Mysql的主键自动增长如何设置 CREATE TABLE XXX (ID INT(5) PRIMARY KEY AUTO_INCREMENT
  • linix的常用命令,配环境变量
  • Spring有几种配置方式 ? 两种, java 配置,注解
  • ApplicationContext 与 BeanFactory 的区别
  • c3p0 如何配置?
  • log4j日志如何配置
  • SessionFactory 的作用?
  • ajax 的同步与异步?什么是异步?
  • 数据如何在后台校验,如:邮箱,手机号,身份证号等?
  • MyBatis 的${} 与 #{} 的区别?MyBatis 如何批量插入?
  • 前后台交互都用过什么数据格式? json数据格式怎么验证格式正确?
  • try ...catch......与 return ,finally在return前执行还是后?
  • 垃圾处理器 GC的工作原理,GC什么时候执行
  • SQL 关键字的执行顺序
  • SpringMVC 如何搭建环境? spring?hibernate?
  • spring 的注解有哪些?springMVC的注解,hibernate的注解? @RequestParam?
  • 线程的几种状态?start()与 run( ), wart() 与sleep()区别?如何唤醒 sleep 方法 sleep来自Thread类,和wait来自Object类 调用sleep()方法的过程中,线程不会释放对象锁。而 调用 wait 方法线程会释放对象锁 sleep睡眠后不出让系统资源,wait让出系统资源其他线程可以占用CPU sleep(milliseconds)需要指定一个睡眠时间,时间一到会自动唤醒
  • Jvm 内存如何划分?分别存储那些数据? 堆区,方法区,栈区
  • String s=“abc” 与 String s= new String("abc"); 两者的区别?
  • java 中 subString 与 substr() 的使用
  • string 的常用方法有哪些?contrans(), replaceAll() replace()
  • 怎么定义一个数组?int 或String 类型的
  • Servlet 的生命周期?
  • 各种时间类型的转换String > Date, Date> String
  • Jsp 中的@include
  • 类在虚拟机中的加载过程
  • TCP协议,通信
  • 数据的装箱与拆箱? int ,String
  • JDK和CGLIB生成动态代理类的区别: JDK动态代理只能针对实现了接口的类生成代理(实例化一个类)。此时代理对象和目标对象实现了相同的接口,目标对象作为代理对象的一个属性,具体接口实现中,可以在调用目标对象相应方法前后加上其他业务处理逻辑 CGLIB是针对类实现代理,主要是对指定的类生成一个子类(没有实例化一个类),覆盖其中的方法 。
  • SpringMVC与Struts2区别与比较总结 https://blog.csdn.net/chenleixing/article/details/44570681
  • HTTP 请求方式: GET和POST的比较 http://www.cnblogs.com/igeneral/p/3641574.html
  • Override和Overload的含义以及区别
  • 内存溢出是什么?
  • class Number{ int i; }; public class TestCommonClass { public static void main(String[] args) { Number n1 = new Number(); Number n2 = new Number(); n1.i=9; n2.i=47; System.out.println("n1.i:"+n1.i+",n2.i:"+n2.i); n1=n2; System.out.println("n1.i:"+n1.i+",n2.i:"+n2.i); n1.i=27; System.out.println("n1.i:"+n1.i+",n2.i:"+n2.i); } } 结果: n1.i:9,n2.i:47 n1.i:47,n2.i:47 n1.i:27,n2.i:27
  • public class TestHelloString { public static void main(String[] args) { String s1="Hello"; String s2="Hello"; String s3="Hel"+"lo"; String s4="Hel"+new String("lo"); String s5=new String("Hello"); String s6=s5.intern(); String s7="H"; String s8="ello"; String s9=s7+s8; System.out.println(s1==s2);//true System.out.println("s1.equeals s2:"+s1.equals(s2));//true System.out.println(s1==s3);//true System.out.println("s1.equeals s3:"+s1.equals(s3));//true System.out.println(s1==s4);//false System.out.println(s1==s9);//false System.out.println(s4==s5);//false System.out.println(s1==s6);//true } }
  • public class TestDoWhile { public static void main(String[] args) { int x=0; int y=10; do{ y--; x++; }while(x<5); System.out.println(x+","+y); } } 答案: 5,5
  • 编译失败 compilation fails
  • Jvm 的内存分布?
  • 关于静态代码块,实例代码块, 父类构造方法,子类构造方法, 静态变量,变量的加载顺序? public class TestMethodCiXu extends Test1{ static{ new Print("a"); } public static Print obj1=new Print("b"); public Print obj2=new Print("c"); public TestMethodCiXu(){ new Print("d"); } public static Print obj3=new Print("e"); public Print obj4=new Print("f"); public static void main(String[] args) { TestMethodCiXu obj1 = new TestMethodCiXu(); System.out.println("----------------------"); TestMethodCiXu obj2 = new TestMethodCiXu(); } } class Test1{ public static Print obj1=new Print("1"); public Print obj2=new Print("2"); public static Print obj3=new Print("3"); static{ new Print("4"); } public static Print obj4=new Print("5"); public Print obj5=new Print("6"); public Test1(){ new Print("7"); } } class Print{ public Print(String s){ System.out.print(s+""); } } 总结: 加载顺序 第一次创建对象: 1:先父类 ,再子类, 2 父类 静态变量/静态代码块 > 子类 静态变量 / 静态代码块 > 父类 变量 > 父类 无参构造>子类 变量 >子类 无参构造 第二次加载: 1:静态变量与静态代码块不执行。2 父类变量> 父类构造方法 > 子类 变量> 子类构造方法
  • Spring Bean 的生命周期?
  • runtimeException 有哪些? NullPointerException - 空指针引用异常 ClassCastException - 类型强制转换异常。 IllegalArgumentException - 传递非法参数异常。 ArithmeticException - 算术运算异常 ArrayStoreException - 向数组中存放与声明类型不兼容对象异常 IndexOutOfBoundsException - 下标越界异常 NegativeArraySizeException - 创建一个大小为负数的数组错误异常 NumberFormatException - 数字格式异常 SecurityException - 安全异常 UnsupportedOperationException - 不支持的操作异常
  • 编译异常:IOException、SQLException
  • Servlet 的生命周期,及servlet 的单实例,只能创建一个对象,用到了单例,模板设计模
  • spirng 有哪些模块? Aop ORM, DAO,CORE ,WEB,MVC,CONTEXT
  • hibernate 拒绝连接,服务器崩溃的原因有哪些? 1:driver,url, pw 错误,2,db 没开 3.网络问题 4.服务器连接人数有限制
  • hibernate 与 mybatis 的区别?
  • oracle 与 MySQL的区别? 1:limit 与 rownum , 2, mysql 建表时使用 auto_increamet, oracle 用sequence ,3,mysql的用户权限 是放在mysql 自己的mysql 库中,oracle 的权限是跟着表空间走的 4. mysql 中对于 " " 与‘ ’ 都可使用,oracle 中对" " 与 ' ' 要求很严,一般不准用双引号 5 oracle中sql 的group by 后的字段 一定要出现在select 后面6对空值的判断,name != ""这样在mysql下不会报错的,但是oracle下会报错。在oracle下的要换成name is not null https://www.cnblogs.com/TaoLeonis/p/7043543.html
  • & 与&& 的区别?
  • springmvc 的工作流程?
  • struts2 的mvc 模式?
  • hibernate的并发模式?怎么去处理并非问题?
  • sql 的怎么优化?
  • hibernate 自带的分页是什么?,若不用它,采用什么分页?
  • session 与cooker的区别?
  • web 项目下- web app libraries 怎么来的? lib 下的jar 包引进了后,自动生成的。