Java面试题无答案
写在前面:这篇文章里面总结了很多
Java相关的知识,基本上应该算是每个Java程序员必须会的一些知识,所以,也就是很多面试官喜欢拿来考的一些东西。总结他们第一个目的是自己能够经常拿出来看一看,第二个也是可以给别人一些借鉴。为了方便,我把他们分了类,有一些是必看的,我用!标注,有一些进阶型的我用%标注,有一些需要了解的,我用?标注。
必会关键字
voidbyteintlongcharshortfloatdoubleStringStringBufferStringBuilderArrayCollectionCollectionsListArrayListLinkedListVectorSetHashMapTreeMapLinkedHashMapConcerrentHashMapSetTreeMapHashMapsynchronizedvolatiletransientimplementsextendspublicprivateprotectedthissuperstaticfinalconstnullrunstartthreadenmuquicksortmergesortheapsortbubblesortselectsortinsertsortstackqueuelistheaptreeavlTreeBtreeB+TreeRTreethrowthrowstrycatchfinallybreakcontinueinstanceof
计算机基础知识
数据结构
%1、队列、栈、链表、树、堆、图
!2、栈和队列的相同和不同之处
?3、栈通常采用的两种存储结构
!4、ArrayList,Vector,LinkedList的存储性能和特性
%5、各种树(平衡树,排序树,B树,B+树,R树,多路树,红黑树)
算法
?1、实现链表排序的一种算法。说明为什么你会选择用这样的方法?
!2、排序都有哪几种方法?请列举。
!3、各种排序算法的时间复杂度和稳定性
%4、字符串(单链表)逆序
!5、深度优先搜索和广度优先搜索
%6、使用栈实现链表/使用链表实现栈
%7、全排列、贪心算法、KMP算法、hash算法、海量数据处理
操作系统
?1、虚拟内存管理
?2、换页算法
?3、进程间通信
LINUX相关命令及操作
%1、Linux 一些基本命令,如看load,查看文件内容
%2、列出几个比较常见的命令,并解释下命令的用法
计算机网络
!1、tcp,udp区别
!2、HTTP请求和响应的全过程
!3、osi七层模型以及tcp/ip四层模型(每一层主要功能,传输的内容,主要协议,主要应用)
!4、三次握手,四次关闭,丢包,粘包,容量控制,拥塞控制
?5、子网划分
数据库相关
关系模型理论:
!1、
范式
?2、rownum和rowid的区别与使用
事务相关
%1、
Transaction有哪几种隔离级别?(Isolation Level)
?2、Global transaction的原理是什么?
!3、事务是什么?
并发控制
%1、
乐观锁,悲观锁
ORACLE或MYSQL题目
!1、
分页如何实现(Oracle,MySql)
!2、Mysql引擎
其它
%1、数据库操作的性能瓶颈通常在哪里, 1000万级别访问,在数据库和java程序上考虑哪些来进行性能优化
%2、性能方面。多数结合多线程、同步来问,以提取一张大表数据来作为例子 解决性能的方法
!3、表关联时,内连接,左连接,右连接怎么理解?
!4、Statement和PreparedStatement之间的区别
!5、用JDBC怎样从数据库中查询一条记录
%6、索引以及索引的实现(B+树介绍、和B树、R树区别
C语言基础
构造函数、析构函数
%1、为什么不要在构造器中调用虚函数
%2、为什么不要在析构函数中抛出异常
c++相关
!1、面向对象的三大基本特征,五大基本原则
%2、C++继承的内存布局
%3、C++多态的实现机制
!4、new、delete、malloc、free
其他
!1、为什么使用补码
%2、C语言中的内存泄漏
!3、进制转换
!4、自己编写strlen/strcpy/strcmp
一、Java基础
继承、抽象类与接口区别、访问控制(private, public, protected,默认)、多态相关
!1、
interface和abstrat class的区别
!2、是否可以继承多个接口,是否可以继承多个抽象类
%3、Static Nested Class和Inner Class的不同
!4、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
!5、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized
!6、是否可以继承String类
!7、构造器Constructor是否可被override?
!8、作用域public,protected,private,以及不写时的区别?
collections相关的数据结构及API
!1、列举几个
Java Collection类库中的常用类
!2、List、Set、Map是否都继承自Collection接口?
!3、HashMap和Hashtable的区别
%4、HashMap中是否任何对象都可以做为key,用户自定义对象做为key有没有什么要求?
!5、Collection和Collections的区别
%6、其他的集合类:concurrenthashmap,treemap,treeset,linkedhashmap等。
异常体系
!1、
Error、Exception和RuntimeException的区别,作用又是什么?列举3个以上的RuntimeException
!2、Java中的异常处理机制的简单原理和应用
!3、内存溢出和内存泄露
其它
!1、
String和StringBuffer、StringBuilder的区别
!2、String s = “123”;这个语句有几个对象产生
!3、reader和inputstream区别
!4、==和equals的区别
%5、hashCode的作用
%6、hashCode和equals方法的关系
?7、Object类中有哪些方法,列举3个以上(可以引导)
!8、char型变量中能不能存贮一个中文汉字?为什么?
%9、了解过哪些JDK8的新特性,举例描述下相应的特性?
!10、Input/OutputStream和Reader/Writer有何区别?何为字符,何为字节?
!11、如何在字符流和字节流之间转换?
!12、启动一个线程是用run()还是start()?
%13、海量数据查询、存储
!14、switch可以使用那些数据类型
!15、多线程与死锁
%16、Java的四种引用
!17、序列化与反序列化
!18、自动装箱与拆箱
!19、正则表达式
JAVA开发工具、环境的使用
IDE、maven、svn/git、Linux、Firebug
二、 Java高级
多线程
!1、多线程的实现方式,有什么区别
%2、同步和并发是如何解决的
3、什么叫守护线程,用什么方法实现守护线程(Thread.setDeamon()的含义)
%4、如何停止一个线程?
!5、解释是一下什么是线程安全?举例说明一个线程不安全的例子。解释Synchronized关键字的作用。
!6、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
内存结构,GC
!1、
gc的概念,如果A和B对象循环引用,是否可以被GC?
%2、Java中的内存溢出是如何造成的
%3、jvm gc如何判断对象是否需要回收,有哪几种方式?
?4、Java中的内存溢出和C++中的内存溢出,是一个概念吗?
!5、引用计数,对象引用遍历;jvm有哪几种垃圾回收机制?讲讲分代回收机制
CLASSLOADER
!1、
ClassLoader的功能和工作模式
NIO
?1、
IO和NIO本质不同在实际项目使用场景及如何使用
其它
?1、
hashcode有哪些算法
%2、反射,是否可以调用私有方法,在框架中的运用
?3、知道范型的实现机制吗?
?4、Socket编程通常出现的异常有哪些,什么情况下会出现
?5、了解JVM启动参数吗?-verbose -Xms -Xmx的意思是什么?
%6、StringBuffer的实现方式,容量如何扩充
%7、代理机制的实现
三、J2EE相关
Servlet的掌握,包括新的异步Servlet
!1、
Servelt的概念。常问http request能获得的参数
%2、servlet中,如何定制session的过期时间?
!3、Servlet中的session工作原理 (禁用cookie如何使用session)
!4、servlet中,filter的应用场景有哪些?
!5、描述JSP和Servlet的区别、共同点(JSP的工作原理)。
?6、JSP的动态include和静态include
!7、Servlet的生命周期
WEB框架的掌握(挑其掌握的一种)
!1、
Struts中请求的实现过程
!2、MVC概念
%3、谈一下自己最熟悉的web框架?然后就了解的web框架再深入下去
%4、Spring mvc与Struts mvc的区别 (什么是Mvc框架)
?5、Service嵌套事务处理,如何回滚
http相关(内部重定向,外部重定向),http返回码
!1、
session和cookie的区别
!2、HTTP请求中Session实现原理?
%3、如果客户端禁止Cookie能实现Session吗?
!4、httpget和post区别
!5、在web开发中,用redirect与forward做跳转有什么区别?web应用服务器对用户请求通常返回一些状态码,请描述下分别以4和5开头的状态码
spring,ibatis,hibernate相关
?1、
Hibernate/Ibatis两者的区别
?2、OR Mapping的概念
%3、hibernate一级和二级缓存是否知道
?4、使用hibernate实现集群部署,需要注意些什么
!5、Spring如何实现AOP和IOC的?
!6、Spring的核心理念是什么?是否了解IOC和AOP
!7、Spring的事务管理,Spring bean注入的几种方式
!8、SpringAOP解决了什么问题
jboss,tomcat等容器相关
?1、
Tomcat和weblogic的最根本的区别
?2、Jboss端口在哪个配置文件中修改
web安全,SQL注入,XSS, CSRF等
%1、
SQL注入SQL安全
AJAX相关
?1、
AJAX感受,有什么缺点?
%2、你使用的是Ajax的那种框架?
?3、Ajax如何解决跨域问题
Web services
?1、简述
WebService是怎么实现的
JMS
?1、
JMS的模式两种模式
其它
?1、
Js:confirm()方法
?2、Iframe的优缺点
%3、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?(主要是考量有没有碰到过编码问题,问题是如何解决的)
?4、怎么获取到客户端的真实IP?
?5、名词解释:jndi,rmi,jms,事务,如果有了解的话可以深入
?6、WEB层如何实现Cluster
四、面向对象
高内聚,低耦合方面的理解
?1、在项目中是否采用分层的结构,是怎样划分的,各层之间采用了哪些相关技术? 对哪些设计模式比较熟悉?
%2、什么是低耦合和高聚合?封装原则又是什么意思?
%3、类A依赖类B,会产生什么问题?怎样解除这种耦合?
设计模式方面
%1、谈一下自己了解或者熟悉的
设计模式
!2、Singleton的几种实现方式
?3、工厂模式和抽象工厂模式之间的区别
!4、简述M-V-C模式解决了什么问题?
其它
%1、说说你所知道的
UML图,在项目中是如何运用的
思维清晰水平考察
一、从基础知识里体现其思维清晰水平
参考问题
二、多角度思考问题、系统而全面地分析各种事件,一定要有自己的判断 比如项目中用到哪些技术,并分析各种技术的优缺点,一定要有自己的思考和判断
三、针对项目情况,顺藤摸瓜,考察其项目的一些沉淀及思考。
四、出题,考验其思维推导的能力 例如:
推荐阅读
程序员面试笔试宝典
Java编程思想
Effective Java
深入理解Java虚拟机

浙公网安备 33010602011771号