Java 面试题:数据结构 + 算法 +JVM+ 线程 +finalize+GC

基本概念

操作系统中 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

什么是 finalize()方法

finalize()方法什么时候被调用

析构函数(finalization)的目的是什么

final 和 finalize 的区别

final

final 关键字有哪些用法

final 与 static 关键字可以用于哪里?它们的作用是什么

final, finally, finalize 的区别

final、finalize 和 finally 的不同之处?

能否在运行时向 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 的存储性能和特性 StringStringBuffer

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 的作用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值