Java基础
- String类为什么是final的。
- HashMap的源码,实现原理,底层结构。
- 说说你知道的几个Java集合类: list, set, queue, map实现类略。
- 描述一下ArrayList和LinkedList各自实现和区别
- Java中的队列都有哪些,有什么区别。
- 反射中, Class, forName和classloader的区别, Class,forName会执行静态代码块;
- Java7, Java8 的新特性(baidu 问的,好BT)
- Java数组和链表两种结构的操作效率,在哪些情况下(从开头开始,从结尾开始,从中间开始),哪些操作(插入,查找,删除)的效率高,
- Java 内存泄露的问题调查定位: jmap, jstack的使用等等
- string, stringbuilder, stringbuffer 区别
- hashtable 和hashmap的区别
- 异常的结构,运行时异常和非运行时异常。各举个例子
- Stringa="abc"Stringb="abe"Stringc=newString(“abe”)Stringd=“ab”+“c”,他们之间用–比较的结果
- String类的常用方法
- Java的引用类型有哪几种
- 抽象类和接口的区别
- java的基础类型和字节大小。
- Hashtable,HashMap,ConcurrentHashMap底层实现原理与线程安全问题(建议熟悉jdk源码,才能从容应答)
- 如果不让你用JavaJdk提供的工具,你自己实现一个Map,你怎么做。说了好久,说了HashMap源代码,如果我做,就会借鉴HashMap的原理,说了一通HashMap实现
- Hash 冲突怎么办?哪些解决散列冲突的方法?
- HashMap冲突很厉害,最差性能,你会怎么解决?从O (n)提升到log (n)略,用二叉排序树的思路说了一通
- rehash
- hashCode()与equals()生成算法、方法怎么重写
二、JavaIO - 讲讲I0里面的常见类,字节流、字符流、接口、实现类、方法阻塞。
- 讲讲NIO。
- String编码 UTF-8和GBK的区别?
- 什么时候使用字节流、什么时候使用字符流?
- 递归读取文件夹下的文件,代码怎么实现
三、JavaWeb - session和cookie的区别和联系, session的生命周期,多个服务部署时session管理。
- servlet的一些相关问题
- webservice 相关问题
- jdbc连接, forname方式的步骤,怎么声明使用一个事务。举例并具体代码
- 无框架下配置web、xml的主要配置内容
- jsp和 servlet的区别
四、JVM - Java的内存模型以及GC算法
- jvm性能调优都做了什么
- 介绍JVM中7个区域,然后把每个区域可能造成内存的溢出的情况说明
- 介绍GC和GCRoot不正常引用。
- 自己从classload加载方式,加载机制说开去,从程序运行时数据区,讲到内存分配,讲到String常量池,讲到JVM垃圾回收机制,算法, hotspot。反正就是各种扩展
- jvm如何分配直接内存,new对象如何不分配在堆而是栈上,常量池解析
- 数组多大放在JVM老年代(不只是设置PretenureSizeThreshold,问通常多大,没做过一问便知)
- 老年代中数组的访问方式
- GC算法,永久代对象如何GC, GC有环怎么处理
- 谁会被GC,什么时候GC
- 如果想不被GC怎么办
- 如果想在GC中生存1次怎么办
五、开源框架 - hibernate 和ibatis的区别
- 讲讲mybatis的连接池。
- spring框架中需要引用哪些jar包,以及这些jar包的用途
- springMVC 的原理
- springMVC 注解的意思
- spring 中 beanFactory 和 ApplicationContext的联系和区别
- spring注入的几种方式(循环注入)
- spring如何实现事物管理的
- springIOC
- springAOP 的原理
- hibernate中的1级和2级缓存的使用方式以及区别原理(Lazy-Load的理解)