Java面试大纲

有一些是必看的,我用标注,有一些进阶型的我用%标注,有一些须要了解的,我用标注。java

  1. 计算机基础知识
  2. 数据库相关
  3. Java基础
  4. Java高级
  5. J2EE相关
  6. 面向对象
  7. 思惟清晰水平考察
  8. 推荐阅读

计算机基础知识

数据结构

%一、队列、栈、链表、树、堆、图
二、栈和队列的相同和不一样之处
三、栈一般采用的两种存储结构
四、ArrayList,VectorLinkedList的存储性能和特性
%五、各类树(平衡树,排序树,B树,B+树,R树,多路树,红黑树)git

算法

一、实现链表排序的一种算法。说明为何你会选择用这样的方法?
二、排序都有哪几种方法?请列举。
三、各类排序算法的时间复杂度稳定性
%四、字符串(单链表)逆序
五、深度优先搜索广度优先搜索
%六、使用栈实现链表/使用链表实现栈
%七、全排列、贪心算法、KMP算法、hash算法、海量数据处理web

操做系统

一、虚拟内存管理
二、换页算法
三、进程间通讯正则表达式

LINUX相关命令及操做

%一、Linux 一些基本命令,如看load,查看文件内容
%二、列出几个比较常见的命令,并解释下命令的用法算法

计算机网络

一、tcp,udp区别
二、HTTP请求和响应的全过程
三、osi七层模型以及tcp/ip四层模型(每一层主要功能,传输的内容,主要协议,主要应用)
四、三次握手,四次关闭,丢包,粘包,容量控制,拥塞控制
五、子网划分spring

数据库相关

关系模型理论:

一、范式
二、rownumrowid的区别与使用sql

事务相关

%一、Transaction有哪几种隔离级别?(Isolation Level)
二、Global transaction的原理是什么?
三、事务是什么?数据库

并发控制

%一、乐观锁悲观锁编程

ORACLE或MYSQL题目

一、分页如何实现(OracleMySql
二、Mysql引擎设计模式

其它

%一、数据库操做的性能瓶颈一般在哪里, 1000万级别访问,在数据库和java程序上考虑哪些来进行性能优化
%二、性能方面。多数结合多线程、同步来问,以提取一张大表数据来做为例子 解决性能的方法
三、表关联时,内链接左链接右链接怎么理解?
四、StatementPreparedStatement之间的区别
五、用JDBC怎样从数据库中查询一条记录
%六、索引以及索引的实现(B+树介绍、和B树、R树区别

1、Java基础

继承、抽象类与接口区别、访问控制(private, public, protected,默认)、多态相关

一、interface和 abstrat class的区别
二、是否能够继承多个接口,是否能够继承多个抽象类
%三、Static Nested Class 和 Inner Class的不一样
四、OverloadOverride的区别。Overloaded的方法是否能够改变返回值的类型?
五、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized
六、是否能够继承String
七、构造器Constructor是否可被override?
八、做用域public,protected,private,以及不写时的区别?

collections相关的数据结构及API

一、列举几个Java Collection类库中的经常使用类
二、ListSetMap是否都继承自Collection接口?
三、HashMapHashtable的区别
%四、HashMap中是否任何对象均可以作为key,用户自定义对象作为key有没有什么要求?
五、Collection 和 Collections的区别
%六、其余的集合类:concurrenthashmap,treemap,treeset,linkedhashmap等。

异常体系

一、ErrorExceptionRuntimeException的区别,做用又是什么?列举3个以上的RuntimeException
二、Java中的异常处理机制的简单原理和应用
三、内存溢出和内存泄露

其它

一、StringStringBufferStringBuilder的区别
二、String s = “123”;这个语句有几个对象产生
三、readerinputstream区别
四、==equals的区别
%五、hashCode的做用
%六、hashCodeequals方法的关系
七、Object类中有哪些方法,列举3个以上(能够引导)
八、char型变量中能不能存贮一个中文汉字?为何?
%九、了解过哪些JDK8的新特性,举例描述下相应的特性?
十、Input/OutputStreamReader/Writer有何区别?何为字符,何为字节?
十一、如何在字符流和字节流之间转换?
十二、启动一个线程是用run()仍是start()?
%1三、海量数据查询、存储
1四、switch可使用那些数据类型
1五、多线程与死锁
%1六、Java的四种引用
1七、序列化与反序列化
1八、自动装箱与拆箱
1九、正则表达式

JAVA开发工具、环境的使用

IDE、maven、svn/git、Linux、Firebug

2、 Java高级

多线程

一、多线程的实现方式,有什么区别
%二、同步并发是如何解决的
三、什么叫守护线程,用什么方法实现守护线程(Thread.setDeamon()的含义)
%四、如何中止一个线程?
五、解释是一下什么是线程安全?举例说明一个线程不安全的例子。解释Synchronized关键字的做用。
六、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

内存结构,GC

一、gc的概念,若是A和B对象循环引用,是否能够被GC?
%二、Java中的内存溢出是如何形成的
%三、jvm gc如何判断对象是否须要回收,有哪几种方式?
四、Java中的内存溢出和C++中的内存溢出,是一个概念吗?
五、引用计数,对象引用遍历;jvm有哪几种垃圾回收机制?讲讲分代回收机制

CLASSLOADER

一、ClassLoader的功能和工做模式

NIO

一、IONIO本质不一样在实际项目使用场景及如何使用

其它

一、hashcode 有哪些算法
%二、反射,是否能够调用私有方法,在框架中的运用
三、知道范型的实现机制吗?
四、Socket编程一般出现的异常有哪些,什么状况下会出现
五、了解JVM启动参数吗?-verbose -Xms -Xmx的意思是什么?
%六、StringBuffer的实现方式,容量如何扩充
%七、代理机制的实现

3、J2EE相关

Servlet的掌握,包括新的异步Servlet

一、Servelt的概念。常问http request能得到的参数
%二、servlet中,如何定制session的过时时间?
三、Servlet中的session工做原理 (禁用cookie如何使用session
四、servlet中,filter的应用场景有哪些?
五、描述JSP和Servlet的区别、共同点(JSP的工做原理)。
六、JSP的动态include和静态include
七、Servlet的生命周期

WEB框架的掌握(挑其掌握的一种)

一、Struts中请求的实现过程
二、MVC概念
%三、谈一下本身最熟悉的web框架?而后就了解的web框架再深刻下去
%四、Spring mvcStruts mvc的区别 (什么是Mvc框架)
五、Service嵌套事务处理,如何回滚

http相关(内部重定向,外部重定向),http返回码

一、sessioncookie的区别
二、HTTP请求中Session实现原理?
%三、若是客户端禁止Cookie能实现Session吗?
四、http getpost区别
五、在web开发中,用redirectforward作跳转有什么区别?web应用服务器对用户请求一般返回一些状态码,请描述下分别以4和5开头的状态码

spring,ibatis,hibernate相关

一、Hibernate/Ibatis二者的区别
二、OR Mapping的概念
%三、hibernate一级和二级缓存是否知道
四、使用hibernate实现集群部署,须要注意些什么
五、Spring如何实现AOPIOC的?
六、Spring的核心理念是什么?是否了解IOC和AOP
七、Spring的事务管理 ,Spring bean注入的几种方式
八、Spring AOP解决了什么问题

jboss,tomcat等容器相关

一、Tomcatweblogic的最根本的区别
二、Jboss端口在哪一个配置文件中修改

web安全,SQL注入,XSS, CSRF等

%一、SQL注入 SQL安全

AJAX相关

一、AJAX感觉,有什么缺点?
%二、你使用的是Ajax的那种框架?
三、Ajax如何解决跨域问题

Web services

一、简述WebService是怎么实现的

JMS

一、JMS的模式两种模式

其它

一、Js:confirm()方法
二、Iframe的优缺点
%三、咱们在web应用开发过程当中常常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?(主要是考量有没有碰到过编码问题,问题是如何解决的)
四、怎么获取到客户端的真实IP?
五、名词解释:jndi,rmi,jms,事务,若是有了解的话能够深刻
六、WEB层如何实现Cluster

4、面向对象

高内聚,低耦合方面的理解

一、在项目中是否采用分层的结构,是怎样划分的,各层之间采用了哪些相关技术? 对哪些设计模式比较熟悉?
%二、什么是低耦合高聚合封装原则又是什么意思?
%三、类A依赖类B,会产生什么问题?怎样解除这种耦合

设计模式方面

%一、谈一下本身了解或者熟悉的设计模式
二、Singleton的几种实现方式
三、工厂模式抽象工厂模式之间的区别
四、简述M-V-C模式解决了什么问题?

其它

%一、说说你所知道的UML图,在项目中是如何运用的

思惟清晰水平考察

1、从基础知识里体现其思惟清晰水平

参考问题

你知道设计模式吗?你用过哪些设计模式?在什么场合下用的? 你怎样保证你的代码能够处理各类错误事件? 判断依据是必定要有本身的思考和分析以及总结

2、多角度思考问题、系统而全面地分析各类事件,必定要有本身的判断 好比项目中用到哪些技术,并分析各类技术的优缺点,必定要有本身的思考和判断

3、针对项目状况,顺藤摸瓜,考察其项目的一些沉淀及思考。

简述一个你最有成就的项目(包括团队,本身在团队中的角色) 有没有比较棘手的问题 如何发现的问题(是否找问题的根源) 问题是否已经解决,是如何解决的 若是已解决,是不是你本身经过努力解决的,作了什么样的努力 若是未解决,缘由是什么,你以为怎么样能够比较好的解决掉这个问题 描述完毕之后针对未描述点询问,是否考虑的性能问题,是否考虑部署结构,有没有比较得意的设计之处 项目过程当中的文档状况,你以为那些还有那些文档没有创建,是有必要创建的。 做为负责人如何保证项目的质量,有了那些措施

4、出题,考验其思惟推导的能力 例如:

估计一下杭州有多少软件工程师,若是容许,你还须要那些调研工做?并给出你的推导过程。 估算下淘宝的商品数,给出推导过程 若是让你作一个网站,如何估算网站的最大并发数
相关文章
相关标签/搜索