硬核!Java 基础知识常见面试题总结!(100题附答案)
知识点:
- Java基础知识 Java数据类型 Java字符串 Java运算 Java面向对象 Java关键字 Java反射 Java异常 Java泛型 Java注解
- Java集合框架 List Set Map ArrayList LinkedList HashMap HashSet ConcurrentHashMap LinkedHashMap WeakHashMap Vector Collection Queue
- Java虚拟机-JVM Java内存区域 JVM垃圾回收 JVM垃圾回收算法 JVM垃圾回收器 JDK 监控和故障处理工具 Java类文件结构 Java类加载过程 Java类加载器 Java双亲委派模型 自定义类加载器 程序计数器 虚拟机栈 本地方法栈 jvm-堆
- Java IO BIO NIO AIO
面试题
- Java 的8种基本数据类型 及其大小?
- Java 基本类型与引用类型的区别?
- 自动装箱和拆箱?
- Int 与 Integer的区别?
- String 转成 int 型,判断能不能转?如何转?
- Java 语言有哪些特点?
- short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 +=1;有什么错?
- 字节与字符的区别?
- 面向对象和面向过程的区别
- JDK 和 JRE 的区别?
- Oracle JDK 和 OpenJDK 的区别?
- 重载和重写的区别?
- String 和 StringBu?er、StringBuilder 的区别是什么?
- String 为什 么是不可变的?
- 字符型常量和字符串常量的区别
- Java 面向对象编程三大特性?
- 抽象类和接口的区别是什么?
- 成员变量与局部变量的区别有哪些?
- == 与 equals 的区别?
- hashCode 与 equals ?为什么重写equals时必须重写hashCode方法?
- ?nal 关键字的理解
- Object类的常见方法总结
- 说一说自己对于 synchronized 关键字的理解 ?
- 讲一下 synchronized 关键字的底层原理 ?
- AQS 组件总结
- 介绍下 Java 内存区域(运行时数据区) ?
- Java 对象的创建过程?
- 对象的访问定位的两种方式
- 如何判断对象是否死亡(两种方法)?
- 简单的介绍一下强引用、软引用、弱引用、虚引用(虚引用与软引用和弱引用的区别、使用软引用能带来的好处)?
- 如何判断一个常量是废弃常量 ?
- 如何判断一个类是无用的类?
- Java垃圾收集有哪些算法,各自的特点?
- HotSpot为什么要分为新生代和老年代?
- 常见的垃圾回收器有那些?
- 介绍一下CMS,G1收集器?
- Minor Gc和Full GC 有什么不同呢?
- 请谈谈你对JVM的理解?
- Java和C++的区别?
- 什么是 Java 程序的主类 应用程序和小程序的主类有何不同?
- Java 应用程序与小程序之间有哪些差别?
- 构造器 Constructor 是否可被 override?
- 在一个静态方法内调用一个非静态成员为什么是非法的?
- 在 Java 中定义一个不做事且没有参数的构造方法的作用?
- import java和javax有什么区别?
- 创建一个对象用什么运算符?对象实体与对象引用有何不同?
- 什么是方法的返回值?返回值在类的方法里的作用是什么?
- 一个类的构造方法的作用是什么? 若一个类没有声明构造方法,该程序能正确执行吗? 为什么?
- 构造方法有哪些特性?
- 静态方法和实例方法有何不同
- 对象的相等与指向他们的引用相等,两者有什么不同?
- 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?
- 为什么Java中只有值传递?
- 简述线程、程序、进程的基本概念。以及他们之间关系是什么?
- 线程有哪些基本状态?
- Java 中的异常处理?
- Java序列化中如果有些字段不想进行序列化,怎么办?
- 获取用键盘输入常用的两种方法?
- Java 中 IO 流分为几种?
- 既然有了字节流,为什么还要有字符流?
- BIO,NIO,AIO 有什么区别?
- static 关键字的理解?
- this 关键字的理解?
- super 关键字的理解
- 深拷贝与 浅拷贝的区别?
- BIO (Blocking I/O)?
- NIO (New I/O)
- AIO (Asynchronous I/O)
- 说说List,Set,Map三者的区别?
- Arraylist 与 LinkedList 区别?
- RandomAccess接口?
- 双向链表和双向循环链表?
- ArrayList 与 Vector 区别呢?为什么要用Arraylist取代Vector呢?
- 说一说 ArrayList 的扩容机制吧?
- HashMap 和 Hashtable 的区别
- HashMap 和 HashSet区别?
- HashSet如何检查重复
- HashMap的底层实现?
- HashMap 的长度为什么是2的幂次方?
- HashMap 多线程操作导致死循环问题?
- ConcurrentHashMap 和 Hashtable 的区别?
- ConcurrentHashMap线程安全的具体实现方式? 底层具体实现原理?
- comparable 和 Comparator的区别?
- 集合框架底层数据结构总结一下?
- 从 JVM 角度说进程和线程之间的关系
- 程序计数器为什么是私有的?
- 虚拟机栈和本地方法栈为什么是私有的?
- 一句话简单了解堆和方法区
- 说说并发与并行的区别?
- 为什么要使用多线程?
- 使用多线程可能带来的问题?
- 说说线程的生命周期和状态?
- 说说线程优先级?
- 守护线程和用户线程的区别?
- 什么是上下文切换?
- 什么是线程死锁?如何避免死锁?
- 请概述一下Java 类文件结构?
- 请总结一下Class 文件结构?
- JVM 配置常用参数有哪些?
- 常用 GC 调优策略有哪些?
参考答案:http://www.mianshigee.com/topic/1000xkh/