Java基础
- 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
- JDK、JRE、JVM关系是什么?
- Java支持的数据类型有哪些?什么是自动拆装箱?
- 面向对象是什么?有哪些基本特性?有哪些设计原则?
- Enumeration和Iterator的区别?
- &和&&的区别?
- ==和equals的区别?
- 什么是值传递和引用传递?
- 是否可以在static环境中访问非static变量?
- Overriding和Overloading的区别
- 什么是构造方法?什么是构造方法重载?什么是复制构造方法?
- 解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法?
- Java支持多继承么?
- 接口和抽象类的区别是什么?
- 用最有效率的方法计算2乘以8?
- 手写单例模式(饿汉和饱汉模式)和工厂模式?
- String和StringBuilder、StringBuffer的区别?
- Java集合框架是什么?说出一些集合框架的优点?
- 集合框架中的泛型有什么优点
- Java集合框架的基础接口有哪些?
- 为何Collection不从Cloneable和Serializable接口继承?
- 为何Map接口不继承Collection接口?
- 什么是迭代器(Iterator)?
- Iterator和ListIterator的区别是什么?
- 快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?
- HashMap的工作原理是什么?
- HashMap和Hashtable有什么区别?
- 如何决定选用HashMap还是TreeMap?
- ArrayList和Vector有何异同点?
- Array和ArrayList有何区别?什么时候更适合用Array?
- 当两个对象的hashcode相同会发生什么?
- 如果两个键的hashcode相同,你如何获取值对象?
- hashCode()和equals()方法有何重要性?
- Collection和Collections区别
- String s=new String(‘xyz’);创建了几个object对象
- short s1;s1=s1+1;是否有错?
- Set里面的元素不能重复,用什么方法区分重复与否。
- error和exception区别。
- List和Set是否继承自Collection接口。
- abstract class和interface 的区别。
- 是否可以继承String类。
- 两个对象值相同,x.equal(y)==true,但是却可有不同的hashcode,这句话对不对。
- switch是否作用在byte、long、string上。
- GC是什么,为什么要有GC,简单介绍GC。
- final、finally、finalize区别
- String是最基本的数据类型吗。
- 运行时异常和一般异常的区别
- 说出ArrayList、Vector、Linkedlist的存储性能和特性
- heap和stack区别
- Java中的异常处理机制的简单原理和应用
- 垃圾回收的原理和特点,并考虑2种回收机制
- 说出一些常用的 集合类和方法
- 描述一下JVM加载Class文件的原理和机制
- 排序的几种方法,了解。(算法和数据结构在面试的时候还没有被问到)
- Java语言如何进行异常处理,throws,throw,try catch finally代表什么意义,try块中可以抛出异常吗
- 一个’.java’源文件是否可以包括多个类,有什么限制。
- Java中有几种类型流,jdk为每种类型的流提供了一些抽象类以供继承,请分别说出它们是哪些类。
- Java中会存在内存泄漏吗,请简单描述。
- 静态变量和实例变量的区别。
- 什么是Java序列化,如何实现java序列化。
- 是否可以从一个static方法内部发生对非static方法调用。
- 写clone方法,通常都有一行代码。
- Java中如何跳出多重嵌套循环
- 说出常用类、包、接口,各举5个。
- Java中实现线程的方法,用关键字修饰同步方法。
- 同步和异步区别。
- 线程同步的方法。
- 字符串常用方法,字符串转化为整型数方法,整型数转化为字符串方法。
异常
- Java 中,throw 和 throws 有什么区别
- Java 中堆和栈有什么区别?
- 描述一下JVM加载class文件的原理机制?
- Jvm怎么判断对象可以回收了?
- heap和stack有什么区别。
- GC是什么?为什么要有GC?
- 垃圾回收的优点和原理。并考虑2种回收机制
- 垃圾回收器的基本原理是什么?
- 垃圾回收器可以马上回收内存吗?
- 有什么办法主动通知虚拟机进行垃圾回收?
- 运行时异常与一般异常有何异同?
- error和exception有什么区别?
- 简单说说Java中的异常处理机制的简单原理和应用
servlet
- 说一说Servlet的生命周期?
- Servlet API中forward()与redirect()的区别
- request.getAttribute()request.getParameter()有何区别?
- web.xml 中的listener、 filter、servlet 加载顺序
- jsp静态包含和动态包含的区别
- MVC的各个部分都有那些技术来实现?如何实现?
- jsp有哪些内置对象?作用分别是什么?
- 什么是cookie?Session和cookie有什么区别?
- jsp和servlet的区别、共同点、各自应用的范围?
- tomcat容器是如何创建servlet类实例?用到了什么原理?
- jsp和servlet的区别、共同点、各自应用的范围?
- servlet的三大作用域对象:
- jsp的四大作用域对象:
- jsp的九大内置对象:
HTTP
- 请求报文的组成:
- 响应报文的组成:
- 响应:
- get和post方法的区别
javaWeb
- JDBC访问数据库的基本步骤是什么?
- 说说preparedStatement和Statement的区别
- 说说事务的概念,在JDBC编程中处理事务的步骤。
- 数据库连接池的原理。为什么要使用连接池。
- JDBC的脏读是什么?哪种数据库隔离级别能防止脏读?
- 什么是幻读,哪种隔离级别可以防止幻读?
- JDBC的DriverManager是用来做什么的
- execute,executeQuery,executeUpdate的区别是什么?
- SQL查询出来的结果分页展示一般怎么做?
- JDBC的ResultSet是什么?
并发篇
- Java中的同步集合与并发集合有什么区别?
- 什么是线程池? 为什么要使用它?
- 什么是线程池? 为什么要使用它?
- 如何避免死锁?
- notify()和notifyAll()有什么区别?
多线程
- 什么是线程?
- 线程和进程有什么区别?
- 如何在Java中实现线程?
- Java 关键字volatile 与 synchronized 与 Lock作用与区别?
- 有哪些不同的线程生命周期?
- 你对线程优先级的理解是什么?
- 什么是死锁(Deadlock)?
- 如何分析和避免死锁?
- 什么是线程安全?Vector是一个线程安全类吗?
- Java中如何停止一个线程?
- 什么是ThreadLocal?
- Sleep()、suspend()和wait()之间有什么区别?
- 什么是线程饿死,什么是活锁?
- 什么是Java Timer类?如何创建一个有特定时间间隔的任务?
- Java中的同步集合与并发集合有什么区别
- 同步方法和同步块,哪个是更好的选择?
- 什么是线程池? 为什么要使用它?
- Java中invokeAndWait 和 invokeLater有什么区别?
- 多线程中的忙循环是什么?
- 说一下你了解的几种进程间的通信方式
Java高级
- 简述面向对象的理解,并举例说出你的理解。
- 手写单例模式
- 实现字符串多个空格转换一个空格
- 字符串常用方法,substring(),split()。
- start()和run()区别。
- 写出知道的设计模式。
- Webservice介绍。
- 说出Servlet生命周期,Servlet和CGI区别。
- sleep和wait的区别。
- 什么是发射,如何实现。
- 检查字符串回文,实现英文中单词个数和单词次数统计(部分公司要求较高,需要手动编程,百度查找一些面试常用编程题即可)。
- tcp/ip协议三次握手。
- http协议几种请求方式,区别。
- Ajax请求是否可以实现同步。
- 隐藏URL方式。
- 描述取到一个网页内容的实现步骤,不需要具体实现过程(就是爬虫:取到网页的URL,然后从URL中国获取网页内容),考察逻辑思维能力。
- 简述form表单提交post方法与get方法在字符编码、http协议方面的区别。
- 一个http请求从开始到结束都经历了哪些过程,简写流程图。
框架
- 谈谈你对Spring框架的理解
- Spring中的事务管理,支持哪几种方式,以及每种方式具体方法。
- Spring常用注解
- Hibernate的缓存级别
- hibernate的工作原理
- MyBatis的工作原理
- SpringBoot的工作原理
- SpringCloud的工作原理
- Dubbo的工作原理
- hibernate如何实现延迟加载
- hibernate如何怎样类之间的关系
- struts1是什么,工作流程。
- struts2工作流程。
- 介绍IOC和AOP。
- springmvc工作原理。
- Mybatis工作流程。
- Mybatis与Hibernate区别。
- Mybatis框架传递参数方式。
- 简述Spring事务管理,使用什么设计模式实现。
数据库
- 数据库里面的索引和约束是什么。
- 用SQL语句实现oracle分页查询。
- 学生成绩表的常用查询(百度即可查到,常用的查询语法)
- 数据库性能优化常用基础知识,百万级数据优化(百度搜搜即可)。
- left join ,right join用法。
- 了解redis,memcache,mongodb等,最好有项目使用经验。
- 如何防止SQL注入。
- 一个微博评论功能的数据库设计,部门表和员工表的设计,权限管理系统的数据库设计(数据库设计这个是一个重点,面试了几家公司都问到了,而且是重点)。
- 简述悲观锁和乐观锁。