Java面试题无答案

写在前面:这篇文章里面总结了不少Java相关的知识,基本上应该算是每一个Java程序员必须会的一些知识,因此,也就是不少面试官喜欢拿来考的一些东西。总结他们第一个目的是本身可以常常拿出来看一看,第二个也是能够给别人一些借鉴。为了方便,我把他们分了类,有一些是必看的,我用!标注,有一些进阶型的我用%标注,有一些须要了解的,我用?标注。java

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

必会关键字

void byte int long char short float double String StringBufferStringBuilder Array Collection Collections List ArrayList LinkedListVector Set HashMap TreeMap LinkedHashMap ConcerrentHashMap Set TreeMapHashMap synchronized volatile transient implements extends public privateprotected this super static final const null run start thread enmuquicksort mergesort heapsort bubblesort selectsort insertsort stack queuelist heap tree avlTree Btree B+Tree RTree throw throws try catch finallybreak continue instanceof

计算机基础知识

数据结构

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

算法

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

操做系统

?一、虚拟内存管理
?二、换页算法
?三、进程间通讯程序员

LINUX相关命令及操做

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

计算机网络

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


数据库相关

关系模型理论:

!一、范式
?二、rownumrowid的区别与使用正则表达式

事务相关

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

并发控制

%一、乐观锁悲观锁spring

ORACLE或MYSQL题目

!一、分页如何实现(OracleMySql
!二、Mysql引擎sql

其它

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


C语言基础

构造函数、析构函数

%一、为何不要在构造器中调用虚函数
%二、为何不要在析构函数中抛出异常

c++相关

!一、面向对象的三大基本特征,五大基本原则
%二、C++继承的内存布局
%三、C++多态的实现机制
!四、new、delete、malloc、free

其余

!一、为何使用补码
%二、C语言中的内存泄漏
!三、进制转换
!四、本身编写strlen/strcpy/strcmp


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、出题,考验其思惟推导的能力 例如:

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


推荐阅读

程序员面试笔试宝典Java编程思想Effective Java深刻理解Java虚拟机

相关文章
相关标签/搜索