百度Java面试题 前200页精选(上)

百度“Java面试题”前200页精选上篇

基本概念

操作系统中 heap 和 stack 的区别
什么是基于注解的切面实现
什么是 对象/关系 映射集成模块
什么是 Java 的反射机制
什么是 ACID
BS与CS的联系与区别
Cookie 和 Session的区别
fail-fast 与 fail-safe 机制有什么区别
get 和 post请求的区别
Interface 与 abstract 类的区别
IOC的优点是什么
IO 和 NIO的区别,NIO优点
Java 8 / Java 7 为我们提供了什么新功能
什么是竞态条件? 举个例子说明。
JRE、JDK、JVM 及 JIT 之间有什么不同
MVC的各个部分都有那些技术来实现?如何实现?
RPC 通信和 RMI 区别
什么是 Web Service(Web服务)
JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,WSDL解释。
WEB容器主要有哪些功能? 并请列出一些常见的WEB容器名字。
一个”.java”源文件中是否可以包含多个类(不是内部类)?有什么限制
简单说说你了解的类加载器。是否实现过类加载器
解释一下什么叫AOP(面向切面编程)
请简述 Servlet 的生命周期及其相关的方法
请简述一下 Ajax 的原理及实现步骤
简单描述Struts的主要功能
什么是 N 层架构
什么是CORBA?用途是什么
什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”
什么是正则表达式?用途是什么?哪个包使用正则表达式来实现模式匹配
什么是懒加载(Lazy Loading)
什么是尾递归,为什么需要尾递归
什么是控制反转(Inversion of Control)与依赖注入(Dependency Injection)

关键字

finalize

1.什么是finalize()方法

finalize()方法什么时候被调用
析构函数(finalization)的目的是什么
final 和 finalize 的区别
final

2.final关键字有哪些用法

final 与 static 关键字可以用于哪里?它们的作用是什么
final, finally, finalize的区别
final、finalize 和 finally 的不同之处?

3.能否在运行时向 static final 类型的赋值

使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变
一个类被声明为final类型,表示了什么意思
throws, throw, try, catch, finally分别代表什么意义

Java 有几种修饰符?分别用来修饰什么

volatile

volatile 修饰符的有过什么实践
volatile 变量是什么?volatile 变量和 atomic 变量有什么不同
volatile 类型变量提供什么保证?能使得一个非原子操作变成原子操作吗
能创建 volatile 数组吗?

transient变量有什么特点
super什么时候使用
public static void 写成 static public void会怎样
说明一下public static void main(String args[])这段声明里每个关键字的作用
请说出作用域public, private, protected, 以及不写时的区别
sizeof 是Java 的关键字吗

static

static class 与 non static class的区别
static 关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法
静态类型有什么特点
main() 方法为什么必须是静态的?能不能声明 main() 方法为非静态
是否可以从一个静态(static)方法内部发出对非静态(non-static)方法的调用
静态变量在什么时候加载?编译期还是运行期?静态代码块加载的时机呢
成员方法是否可以访问静态变量?为什么静态方法不能访问成员变量

switch

switch 语句中的表达式可以是什么类型数据
switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上
while 循环和 do 循环有什么不同

操作符

&操作符和&&操作符有什么区别?
a = a + b 与 a += b 的区别?
逻辑操作符 (&,|,^)与条件操作符(&&,||)的区别
3*0.1 == 0.3 将会返回什么?true 还是 false?
float f=3.4; 是否正确?
short s1 = 1; s1 = s1 + 1;有什么错?

数据结构

基础类型(Primitives)

基础类型(Primitives)与封装类型(Wrappers)的区别在哪里
简述九种基本数据类型的大小,以及他们的封装类
int 和 Integer 哪个会占用更多的内存? int 和 Integer 有什么区别?parseInt()函数在什么时候使用到
float和double的默认值是多少
如何去小数四舍五入保留小数点后两位
char 型变量中能不能存贮一个中文汉字,为什么

类型转换

怎样将 bytes 转换为 long 类型
怎么将 byte 转换为 String
如何将数值型字符转换为数字
我们能将 int 强制转换为 byte 类型的变量吗?如果该值大于 byte 类型的范围,将会出现什么现象
能在不进行强制转换的情况下将一个 double 值赋值给 long 类型的变量吗
类型向下转换是什么

数组

如何权衡是使用无序的数组还是有序的数组
怎么判断数组是 null 还是为空
怎么打印数组? 怎样打印数组中的重复元素
Array 和 ArrayList有什么区别?什么时候应该使用Array而不是ArrayList
数组和链表数据结构描述,各自的时间复杂度
数组有没有length()这个方法? String有没有length()这个方法

队列

队列和栈是什么,列出它们的区别
BlockingQueue是什么
简述 ConcurrentLinkedQueue LinkedBlockingQueue 的用处和不同之处。

ArrayList、Vector、LinkedList的存储性能和特性
String

StringBuffer

ByteBuffer 与 StringBuffer有什么区别

HashMap

HashMap的工作原理是什么
内部的数据结构是什么
HashMap 的 table的容量如何确定?loadFactor 是什么? 该容量如何变化?这种变化会带来什么问题?
HashMap 实现的数据结构是什么?如何实现
HashMap 和 HashTable、ConcurrentHashMap 的区别
HashMap的遍历方式及效率
HashMap、LinkedMap、TreeMap的区别
如何决定选用HashMap还是TreeMap
如果HashMap的大小超过了负载因子(load factor)定义的容量,怎么办
HashMap 是线程安全的吗?并发下使用的 Map 是什么,它们内部原理分别是什么,比如存储方式、 hashcode、扩容、 默认容量等

HashSet

HashSet和TreeSet有什么区别
HashSet 内部是如何工作的
WeakHashMap 是怎么工作的?

Set

Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用 == 还是 equals()? 它们有何区别?
TreeMap:TreeMap 是采用什么树实现的?TreeMap、HashMap、LindedHashMap的区别。TreeMap和TreeSet在排序时如何比较元素?Collections工具类中的sort()方法如何比较元素?
TreeSet:一个已经构建好的 TreeSet,怎么完成倒排序。
EnumSet 是什么

Hash算法

Hashcode 的作用
简述一致性 Hash 算法
有没有可能 两个不相等的对象有相同的 hashcode?当两个对象 hashcode 相同怎么办?如何获取值对象
为什么在重写 equals 方法的时候需要重写 hashCode 方法?equals与 hashCode 的异同点在哪里
a.hashCode() 有什么用?与 a.equals(b) 有什么关系
hashCode() 和 equals() 方法的重要性体现在什么地方
Object:Object有哪些公用方法?Object类hashcode,equals 设计原则? sun为什么这么设计?Object类的概述
如何在父类中为子类自动完成所有的 hashcode 和 equals 实现?这么做有何优劣。
可以在 hashcode() 中使用随机数字吗?

LinkedHashMap

LinkedHashMap 和 PriorityQueue 的区别是什么

List

List, Set, Map三个接口,存取元素时各有什么特点
List, Set, Map 是否继承自 Collection 接口
遍历一个 List 有哪些不同的方式

LinkedList

LinkedList 是单向链表还是双向链表
LinkedList 与 ArrayList 有什么区别
描述下 Java 中集合(Collections),接口(Interfaces),实现(Implementations)的概念。LinkedList 与 ArrayList 的区别是什么?
插入数据时,ArrayList, LinkedList, Vector谁速度较快?

ArrayList

ArrayList 和 HashMap 的默认大小是多数
ArrayList 和 LinkedList 的区别,什么时候用 ArrayList?
ArrayList 和 Set 的区别?
ArrayList, LinkedList, Vector的区别
ArrayList是如何实现的,ArrayList 和 LinkedList 的区别
ArrayList如何实现扩容
Array 和 ArrayList 有何区别?什么时候更适合用Array
说出ArraList,Vector, LinkedList的存储性能和特性

Map

Map, Set, List, Queue, Stack
Map 接口提供了哪些不同的集合视图
为什么 Map 接口不继承 Collection 接口

Collections

介绍Java中的Collection FrameWork。集合类框架的基本接口有哪些
Collections类是什么?Collection 和 Collections的区别?Collection、Map的实现
集合类框架的最佳实践有哪些
为什么 Collection 不从 Cloneable 和 Serializable 接口继承
说出几点 Java 中使用 Collections 的最佳实践?
Collections 中 遗留类 (HashTable、Vector) 和 现有类的区别

什么是 B+树,B-树,列出实际的使用场景。

接口

Comparator 与 Comparable 接口是干什么的?列出它们的区别

对象

拷贝(clone)

如何实现对象克隆
深拷贝和浅拷贝区别
深拷贝和浅拷贝如何实现激活机制
写clone()方法时,通常都有一行代码,是什么

比较

在比较对象时,”==” 运算符和 equals 运算有何区别
如果要重写一个对象的equals方法,还要考虑什么
两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对

构造器

构造器链是什么
创建对象时构造器的调用顺序

不可变对象

什么是不可变象(immutable object)
为什么 Java 中的 String 是不可变的(Immutable)
如何构建不可变的类结构?关键点在哪里
能创建一个包含可变对象的不可变对象吗

如何对一组对象进行排序

方法

构造器(constructor)是否可被重写(override)
方法可以同时即是 static 又是 synchronized 的吗
abstract 的 method是否可同时是 static,是否可同时是 native,是否可同时是synchronized
Java支持哪种参数传递类型
一个对象被当作参数传递到一个方法,是值传递还是引用传递
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递
我们能否重载main()方法
如果main方法被声明为private会怎样

GC

概念

GC是什么?为什么要有GC
什么时候会导致垃圾回收
GC是怎么样运行的
新老以及永久区是什么
GC 有几种方式?怎么配置
什么时候一个对象会被GC? 如何判断一个对象是否存活
System.gc() Runtime.gc()会做什么事情? 能保证 GC 执行吗
垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
Minor GC 、Major GC、Young GC 与 Full GC分别在什么时候发生
垃圾回收算法的实现原理
如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?
垃圾回收的最佳做法是什么

GC收集器有哪些

垃圾回收器的基本原理是什么?
串行(serial)收集器和吞吐量(throughput)收集器的区别是什么
Serial 与 Parallel GC之间的不同之处
CMS 收集器 与 G1 收集器的特点与区别
CMS垃圾回收器的工作过程
JVM 中一次完整的 GC 流程是怎样的? 对象如何晋升到老年代
吞吐量优先和响应优先的垃圾收集器选择

GC策略

举个实际的场景,选择一个GC策略
JVM的永久代中会发生垃圾回收吗

收集方法

标记清除、标记整理、复制算法的原理与特点?分别用在什么地方
如果让你优化收集方法,有什么思路

JVM

参数

说说你知道的几种主要的jvm 参数
-XX:+UseCompressedOops 有什么作用

类加载器(ClassLoader)

Java 类加载器都有哪些
JVM如何加载字节码文件

内存管理

JVM内存分哪几个区,每个区的作用是什么
一个对象从创建到销毁都是怎么在这些部分里存活和转移的
解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法
JVM中哪个参数是用来控制线程的栈堆栈小
简述内存分配与回收策略
简述重排序,内存屏障,happen-before,主内存,工作内存
Java中存在内存泄漏问题吗?请举例说明
简述 Java 中软引用(SoftReferenc)、弱引用(WeakReference)和虚引用

内存映射缓存区是什么

  • jstack,jstat,jmap,jconsole怎么用
  • 32 位 JVM 和 64 位 JVM 的最大堆内存分别是多数?32 位和 64 位的 JVM,int 类型变量的长度是多数?
  • 怎样通过 Java 程序来判断 JVM 是 32 位 还是 64 位
  • JVM自身会维护缓存吗?是不是在堆中进行对象分配,操作系统的堆还是JVM自己管理堆
  • 什么情况下会发生栈内存溢出
  • 双亲委派模型是什么

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • 15个高级Java多线程面试题及回答
  • 探讨Java中最常见的十道面试题(超经典)
  • JAVA实现链表面试题
  • 最有价值的50道java面试题 适用于准入职Java程序员
  • 关于Java集合框架面试题(含答案)上
  • Java中类的加载顺序剖析(常用于面试题)
  • Java实现栈和队列面试题
  • java面试常见问题之Hibernate总结
  • java 多态性详解及常见面试题
  • 适用于Java程序员的10道XML面试题 新鲜出炉
(0)

相关推荐

  • 适用于Java程序员的10道XML面试题 新鲜出炉

    包括web开发人员的Java面试在内的各种面试中,XML面试题在各种编程工作的面试中很常见.XML是一种成熟的技术,经常作为从一个平台到其他平台传输数据的标准.XML面试问题包括用于转换XML文件的XSLT技术,XPATH,XQuery等各种XML技术和XML基础知识,比如DTD或者Schema. 本文将看到10道常见的XML面试问答题.这些问题大部分在Java面试中会问到,同时在C,C++,Scala或其他语言的编程面试中同样很有用处.XML并不依赖于其他编程语言,同SQL一样是编程人员所需要

  • Java中类的加载顺序剖析(常用于面试题)

    这其实是去年校招时我遇到的一道阿里巴巴的笔试题(承认有点久远了-.-),嗯,如果我没记错的话,当时是作为Java方向的一道选做大题.当然题意没有这么直白,题目只要求你写出程序运行后所有System.out.println的输出结果,其中程序是题目给的,而各个System.out.println的执行顺序不同会导致最后程序输出的结果也不同. 具体的题目我肯定记不清,不过我们可以换个直接的问法,如果类A和类B中有静态变量,静态语句块,非静态变量,非静态语句块,构造函数,静态方法,非静态方法,同时类A

  • 探讨Java中最常见的十道面试题(超经典)

    第一,谈谈final, finally, finalize的区别. final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 abstract的,又被声明为final的.将变量或方法声明为final,可以保证它们在使用中不被改变.被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改.被声明为final的方法也同样只能使用,不能重载 finally?再异常处理时提供 finally 块来执行任何

  • JAVA实现链表面试题

    这份笔记整理了整整一个星期,每一行代码都是自己默写完成,并测试运行成功,同时也回顾了一下<剑指offer>这本书中和链表有关的讲解,希望对笔试和面试有所帮助. 本文包含链表的以下内容: 1.单链表的创建和遍历 2.求单链表中节点的个数 3.查找单链表中的倒数第k个结点(剑指offer,题15) 4.查找单链表中的中间结点 5.合并两个有序的单链表,合并之后的链表依然有序[出现频率高](剑指offer,题17) 6.单链表的反转[出现频率最高](剑指offer,题16) 7.从尾到头打印单链表(

  • java 多态性详解及常见面试题

    java多态性 多态分两种: (1)   编译时多态(设计时多态):方法重载. (2)   运行时多态:JAVA运行时系统根据调用该方法的实例的类型来决定选择调用哪个方法则被称为运行时多态.(我们平时说得多的事运行时多态,所以多态主要也是指运行时多态) 运行时多态存在的三个必要条件: 一.要有继承(包括接口的实现): 二.要有重写: 三.父类引用指向子类对象. 多态的好处: 1.可替换性(substitutability).多态对已存在代码具有可替换性.例如,多态对圆Circle类工作,对其他任

  • 最有价值的50道java面试题 适用于准入职Java程序员

    下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最新版本,去掉了EJB 2.x等无用内容,补充了数据结构和算法相关的题目.经典面试编程题.大型网站技术架构.操作系统.数据库.软件测试.设计模式.UML等内容,同时还对很多知识点进行了深入的剖析,例如hashCode方法的设计.垃圾收集的堆和代.Java新的并发编程.NIO.2等,相信对准备入职的Ja

  • 关于Java集合框架面试题(含答案)上

    1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使用,Java1.2提出了囊括所有集合接口.实现和算法的集合框架.在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久.它还包括在Java并发包中,阻塞接口以及它们的实现.集合框架的部分优点如下: (1)使用核心集合类降低开发成本,而非实现我们自己的集合类. (2)随着使用经过严格测试的集合框架类,代

  • Java实现栈和队列面试题

    面试的时候,栈和队列经常会成对出现来考察.本文包含栈和队列的如下考试内容: (1)栈的创建 (2)队列的创建 (3)两个栈实现一个队列 (4)两个队列实现一个栈 (5)设计含最小函数min()的栈,要求min.push.pop.的时间复杂度都是O(1) (6)判断栈的push和pop序列是否一致 1.栈的创建: 我们接下来通过链表的形式来创建栈,方便扩充. 代码实现: public class Stack { public Node head; public Node current; //方法

  • 15个高级Java多线程面试题及回答

    Java 线程面试问题 在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分.如果你想获得任何股票投资银行的前台资讯职位,那么你应该准备很多关于多线程的问题.在投资银行业务中多线程和并发是一个非常受欢迎的话题,特别是电子交易发展方面相关的.他们会问面试者很多令人混淆的Java线程问题.面试官只是想确信面试者有足够的Java线程与并发方面的知识,因为候选人中有很多只浮于表面.用于直接面向市场交易的高容量和低延时的电子交易系统在本质上是并发的.下面这些是我在不同时间不同地点喜欢问的Jav

  • java面试常见问题之Hibernate总结

    主要从以下十几个方面对Hibernate做总结,包括Hibernate的检索方式,Hibernate中对象的状态,Hibernate的3种检索策略是什么,分别适用于哪种场合,ORM解决的不匹配问题, Hibernate映射继承关系的3种方式,Session的find()方法以及Query接口的区别等方面问题的总结,具体内容如下: 1  Hibernate的检索方式 Ø  导航对象图检索(根据已经加载的对象,导航到其他对象.) Ø  OID检索(按照对象的OID来检索对象.) Ø  HQL检索(使

随机推荐