前言
在茫茫的互联网海洋中寻寻觅觅,我收藏了近千道Java经典面试题,分享给你们。建议大家收藏起来,在茶余饭后拿出来读一读,以备未雨绸缪之需。另外,由于文章篇幅问题,答案就不全部解析,这些面试题我都已经整理成文档,有需要答案的可以 直接点击这里,回复暗号:面试 即可免费获取,希望大家都能找到自己理想的offer呀。
Java 基础
-
equals与==的区别
-
final, finally, finalize 的区别
-
重载和重写的区别
-
两个对象的hashCode()相同,则 equals()是否也一定为 true?
-
抽象类和接口有什么区别
-
BIO、NIO、AIO 有什么区别?
-
String,Stringbuffer,StringBuilder的区别
-
JAVA中的几种基本数据类型是什么,各自占用多少字节呢
-
Comparator与Comparable有什么区别?
-
String类能被继承吗,为什么。
-
说说Java中多态的实现原理
-
Java泛型和类型擦除
-
int和Integer 有什么区别,还有Integer缓存的实现
-
说说反射的用途及实现原理,Java获取反射的三种方法
-
面向对象的特征
-
&和&&的区别
-
Java中IO流分为几种?
-
讲讲类的实例化顺序,比如父类静态数据,构造函数,子类静态数据,构造函数。
-
Java创建对象有几种方式
-
如何将GB2312编码的字符串转换为ISO-8859-1编码的字符串呢?
-
守护线程是什么?用什么方法实现守护线程
-
notify()和 notifyAll()有什么区别?
-
Java语言是如何处理异常的,关键字throws、throw、try、catch、finally怎么使用?
-
谈谈Java的异常层次结构
-
静态内部类与非静态内部类有什么区别区别
-
String s与new String与有什么区别
-
反射中,Class.forName和ClassLoader的区别
-
JDK动态代理与cglib实现的区别
-
error和exception的区别,CheckedException,RuntimeException的区别。
-
深拷贝和浅拷贝区别
-
JDK 和 JRE 有什么区别?
-
String 类的常用方法都有那些呢?
-
谈谈自定义注解的场景及实现
-
说说你熟悉的设计模式有哪些?
-
抽象工厂和工厂方法模式的区别?
-
什么是值传递和引用传递?
-
可以在static环境中访问非static变量吗?
-
Java支持多继承么,为什么?
-
用最有效率的方法计算2乘以8?
-
构造器是否可被重写?
-
char型变量中能不能存贮一个中文汉字,为什么?
-
如何实现对象克隆?
-
object中定义了哪些方法?
-
hashCode的作用是什么?
-
for-each与常规for循环的效率对比
-
写出几种单例模式实现,懒汉模式和饿汉模式区别
-
请列出 5 个运行时异常。
-
2个不相等的对象有可能具有相同的 hashcode吗?
-
访问修饰符public,private,protected,以及default的区别?
-
谈谈final在java中的作用?
-
java中的Math.round(-1.5) 等于多少呢?
-
String属于基础的数据类型吗?
-
如何将字符串反转呢?
-
描述动态代理的几种实现方式,它们分别有什么优缺点
-
在自己的代码中,如果创建一个java.lang.String类,这个类是否可以被类加载器加载?为什么。
-
谈谈你对java.lang.Object对象中hashCode和equals方法的理解。在什么场景下需要重新实现这两个方法。
-
在jdk1.5中,引入了泛型,泛型的存在是用来解决什么问题。
-
什么是序列化,怎么序列化,反序列呢?
-
java8的新特性。
-
匿名内部类是什么?如何访问在其外面定义的变量呢?
-
break和continue有什么区别?
-
String s = “Hello”;s = s + " world!";这两行代码执行后,原始的 String 对象中的内容是否会改变?
-
怎样将GB2312编码的字符串转换为ISO-8859-1编码的字符串?
-
try-catch-finally-return执行顺序
-
Java 7新的 try-with-resources语句,平时有使用吗
-
简述一下面向对象的”六原则一法则”。
-
switch是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?
-
数组有没有length()方法?String有没有length()方法?
-
是否可以从一个静态(static)方法内部发出对非静态(non-static)方法的调用?
-
String s = new String(“jay”);创建了几个字符串对象?
-
匿名内部类是否可以继承其它类?是否可以实现接口?
-
我们能将int强制转换为 byte类型的变量吗?如果该值大于byte 类型的范围,将会出现什么现象?
-
float f=3.4;正确吗?
-
你能写出一个正则表达式来判断一个字符串是否是一个数字吗?
-
Reader和InputStream区别?
-
列举出JAVA中6个比较常用的包
-
JDK 7有哪些新特性
-
同步和异步有什么区别?
-
实际开发中,Java一般使用什么数据类型来代表价格?
-
64 位 JVM 中,int 的长度是多数?
-
java8的新特性
-
字节流与字符流的区别
-
Java 事件机制包括哪三个部分?分别介绍下。
-
为什么等待和通知是在 Object 类而不是 Thread 中声明的?
-
每个对象都可上锁,这是在 Object类而不是 Thread 类中声明,为什么呢?
-
为什么char 数组比Java中的 String 更适合存储密码?
-
如何使用双重检查锁定在 Java 中创建线程安全的单例?
-
如果你的Serializable类包含一个不可序列化的成员,会发生什么?你是如何解决的?
-
什么是serialVersionUID ?如果你不定义这个, 会发生什么?
-
Java 中,Maven 和 ant,gradle 有什么区别?
-
常见的序列化协议有哪些
-
@transactional注解在什么情况下会失效,为什么。
-
Java 中,DOM 和SAX 解析器有什么不同?
-
数组在内存中如何分配;
-
什么是 Busy spin?我们为什么要使用它?
-
Java 中怎么获取一份线程 dump 文件?
-
父类的静态方法能否被子类重写
-
什么是不可变对象
-
如何正确的退出多层嵌套循环?
-
SimpleDateFormat是线程安全的吗?你一般怎么格式化
-
抽象类必须要有抽象方法吗?
-
怎么实现动态代理?有哪些应用
-
什么是内部类?内部类的作用
-
泛型中extends和super的区别
-
内部类有几种,在项目中的有哪些应用
-
utf-8编码中的中文占几个字节;int型几个字节?
-
说说你对Java注解的理解
-
Java 中 java.util.Date 与 java.sql.Date 有什么区别?
-
说一下隐式类型转换
-
抽象类能使用final修饰吗
-
给我一个符合开闭原则的设计模式的例子
-
Files的常用方法都有哪些
-
Java 中,Serializable与Externalizable 的区别?
-
Java锁有哪些种类,它们都有哪些区别
-
抽象的方法是否可同时是静态的),是否可同时是本地方法),是否可同时被 synchronized 修饰?
-
一个”.java”源文件中是否可以包含多个类(不是内部类)?有什么限制?
-
说说代理的实现原理
-
了解哪设计模式,举例说说在jdk源码哪些用到了你说的设计模式
-
什么是B/S架构?什么是C/S架构
-
Java有那些开发平台呢?
-
Java内部类为什么可以访问到外部类呢?
-
Java支持的数据类型有哪些?什么是自动拆装箱呢?
-
创建线程有几种不同的方式
-
hashCode()和equals()方法的重要性体现在什么地方?
-
如何通过反射获取和设置对象私有字段的值?
-
如何通过反射调用对象的方法?
-
简述一下面向对象的"六原则一法则"
-
Java 对象不使用时为什么要赋值为 null?
-
什么时候用断言(assert)?
-
AJAX请求为什么不安全?
-
一个Java字符串中到底能有多少个字符?
-
StringBuilder为什么线程不安全?
-
深克隆和浅克隆
-
聊一聊设计模式的基本原则
-
Java 能否自定义一个类叫 java.lang.System?
-
Java中的两种异常类型是什么?他们有什么区别?
-
Java中Exception和Error有什么区别?
-
throw和throws有什么区别?
-
异常处理完成以后,Exception对象会发生什么变化?
-
什么是RMI?
-
解释下Serialization和Deserialization。
-
环境变量Path和ClassPath的作用是什么?如何设置这两个环境变量?
-
字符型常量和字符串常量的区别
-
构造器Constructor是否可被override
-
什么是方法的返回值?返回值在类的方法里的作用是什么?
-
一个类的构造方法的作用是什么?若一个类没有声明构造方法,改程序能正确执行吗?为什么?
-
静态方法和实例方法有何不同?
-
对象的相等与指向他们的引用相等,两者有什么不同?
-
用 Java 写一个线程安全的单例模式
-
我能在不进行强制转换的情况下将一个 double值赋值给 long类型的变量吗?
-
java 枚举类型是否可以继承 (final)?
-
Cloneable 接口实现原理?
-
继承和聚合的区别?
-
能用Java覆盖静态方法吗?如果我在子类中创建相同的方法是编译时错误?
-
什么是Java程序的主类?应用程序和小程序的主类有何不同?
-
instanceof 工作中使用过吗?
-
Java自带线程池判断线程池是否已经结束运行的方法叫什么
-
成员变量与局部变量的区别有那些?
-
创建一个对象用什么运算符? 对象实体与对象引用有何不同?
-
一行Java代码是如何执行的?
Java 集合
-
Arraylist与LinkedList区别
-
Collections.sort和Arrays.sort的实现原理
-
HashMap原理,java8做了什么改变
-
List 和 Set,Map 的区别
-
poll()方法和