zoukankan      html  css  js  c++  java
  • Java面试题及答案2020最新版!

    前言

    花了近一个月的时间整理出了这套Java面试题及答案2020年最新版!

    本套Java面试题总共分为以下这十三个模块:

    1. Java基础知识面试题

    2. Java异常面试题

    3. JVM面试题

    4. Spring面试题

    5. Spring MVC面试题

    6. Spring Boot面试题

    7. Spring Cloud面试题

    8. MyBatis面试题

    9. Redis面试题

    10. Dubbo面试题

    11. Tomcat面试题

    12. ZooKeeper面试题

    13. Netty面试题

    一、Java基础知识面试题

    1、Java概述

    • 何为编程?

    • 什么是Java?

    • jdk1.5之后的三大版本?

    • JVM、JRE和JDK的关系?

    • 什么是跨平台性?原理是什么?

    • Java语言有哪些特点?

    • 什么是字节码?采用字节码的最大好处是什么?

    • 什么是Java程序的主类?应用程序和小程序的主类有何不同?

    • Java应用程序与小程序之间有那些差别?

    • Java和C++的区别?

    • Oracle JDK 和 OpenJDK 的对比?

    2、基础语法

    ①. 数据类型

    • Java有哪些数据类型

    • switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上

    • 用最有效率的方法计算 2 乘以 8

    • Math.round(11.5) 等于多少?Math.round(-11.5)等于多少

    • float f=3.4;是否正确

    • short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗

    ②. 编码

    • Java语言采用何种编码方案?有何特点?

    ③. 注释

    • 什么Java注释

    ④. 访问修饰符

    • 访问修饰符 public,private,protected,以及不写(默认)时的区别

    ⑤. 运算符

    • &和&&的区别

    ⑥. 关键字

    • Java 有没有 goto

    • final 有什么用?

    • final finally finalize区别

    • this关键字的用法

    • super关键字的用法

    • this与super的区别

    • static存在的主要意义

    • static的独特之处

    • static应用场景

    • static注意事项

    ⑦. 流程控制语句

    • break ,continue ,return 的区别及作用

    • 在 Java 中,如何跳出当前的多重嵌套循环

    3、面向对象

    ①. 面向对象概述

    • 面向对象和面向过程的区别

    ②. 面向对象三大特性

    • 面向对象的特征有哪些方面

    • 什么是多态机制?Java语言是如何实现多态的?

    • 面向对象五大基本原则是什么(可选)

    ③. 类与接口

    • 抽象类和接口的对比

    • 普通类和抽象类有哪些区别?

    • 抽象类能使用 final 修饰吗?

    • 创建一个对象用什么关键字?对象实例与对象引用有何不同?

    ④. 变量与方法

    • 成员变量与局部变量的区别有哪些

    • 在Java中定义一个不做事且没有参数的构造方法的作用

    • 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?

    • 一个类的构造方法的作用是什么?若一个类没有声明构造方法,改程序能正确执行吗?为什么?

    • 构造方法有哪些特性?

    • 静态变量和实例变量区别

    • 静态变量与普通变量区别

    • 静态方法和实例方法有何不同?

    • 在一个静态方法内调用一个非静态成员为什么是非法的?

    • 什么是方法的返回值?返回值的作用是什么?

    ⑤. 内部类

    • 什么是内部类?

    • 内部类的分类有哪些

    • 内部类的优点

    • 内部类有哪些应用场景

    • 局部内部类和匿名内部类访问局部变量的时候,为什么变量必须要加上final?

    • 内部类相关,看程序说出运行结果

    ⑥. 重写与重载

    • 构造器(constructor)是否可被重写(override)

    • 重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?

    ⑦. 对象相等判断

    • == 和 equals 的区别是什么

    • hashCode 与 equals (重要)

    • 对象的相等与指向他们的引用相等,两者有什么不同?

    ⑧. 值传递

    • 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递

    • 为什么 Java 中只有值传递

    • 值传递和引用传递有什么区别

    ⑨. Java包

    • JDK 中常用的包有哪些

    • import java和javax有什么区别

    4、IO流

    • java 中 IO 流分为几种?

    • BIO,NIO,AIO 有什么区别?

    • Files的常用方法都有哪些?

    5、反射

    • 什么是反射机制?

    • 反射机制优缺点

    • 反射机制的应用场景有哪些?

    • Java获取反射的三种方法

    6、网络编程

    7、常用API

    ①. String相关

    • 字符型常量和字符串常量的区别

    • 什么是字符串常量池?

    • String 是最基本的数据类型吗

    • String有哪些特性

    • String为什么是不可变的吗?

    • String真的是不可变的吗?

    • 是否可以继承 String 类

    • String str="i"与 String str=new String("i")一样吗?

    • String s = new String("xyz");创建了几个字符串对象

    • 如何将字符串反转?

    • 数组有没有 length()方法?String 有没有 length()方法

    • String 类的常用方法都有那些?

    • 在使用 HashMap 的时候,用 String 做 key 有什么好处?

    • String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的

    ②. Date相关

    ③. 包装类相关

    • 自动装箱与拆箱

    • int 和 Integer 有什么区别

    • Integer a= 127 与 Integer b = 127相等吗

    8、常用工具类库

    9、单元测试

    10、日志

    二、Java异常面试题

    1、Error 和 Exception 区别是什么?

    2、运行时异常和一般异常(受检异常)区别是什么?

    3、JVM 是如何处理异常的?

    4、throw 和 throws 的区别是什么?

    5、final、finally、finalize 有什么区别?

    6、NoClassDefFoundError 和 ClassNotFoundException 区别?

    7、try-catch-finally 中哪个部分可以省略?

    8、try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?

    9、类 ExampleA 继承 Exception,类 ExampleB 继承ExampleA?

    10、常见的 RuntimeException 有哪些?

    11、Java常见异常有哪些?

    三、JVM面试题

    1、Java内存区域

    • 说一下 JVM 的主要组成部分及其作用?

    • 说一下 JVM 运行时数据区?

    • 深拷贝和浅拷贝?

    • 说一下堆栈的区别?

    • 队列和栈是什么?有什么区别?

    2、HotSpot虚拟机对象探秘

    • 对象的创建

    • 为对象分配内存

    • 处理并发安全问题

    • 对象的访问定位

    3、内存溢出异常

    • Java会存在内存泄漏吗?请简单描述

    4、垃圾收集器

    • 简述Java垃圾回收机制

    • GC是什么?为什么要GC

    • 垃圾回收的优点和原理。并考虑2种回收机制

    • 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?

    • Java 中都有哪些引用类型?

    • 怎么判断对象是否可以被回收?

    • 在Java中,对象什么时候可以被垃圾回收

    • JVM中的永久代中会发生垃圾回收吗

    • 说一下 JVM 有哪些垃圾回收算法?

    • 说一下 JVM 有哪些垃圾回收器?

    • 详细介绍一下 CMS 垃圾回收器?

    • 新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么区别?

    • 简述分代垃圾回收器是怎么工作的?

    5、内存分配策略

    ①. 简述java内存分配与回收策率以及Minor GC和Major GC

    • 对象优先在 Eden 区分配

    • 大对象直接进入老年代

    • 长期存活对象将进入老年代

    6、虚拟机类加载机制

    • 简述java类加载机制?

    • 描述一下JVM加载Class文件的原理机制

    • 什么是类加载器,类加载器有哪些?

    • 说一下类装载的执行过程?

    • 什么是双亲委派模型?

    7、JVM调优

    • 说一下 JVM 调优的工具?

    • 常用的 JVM 调优的参数都有哪些?

  • 相关阅读:
    高并发系统如何设计
    PHP的垃圾回收机制(开启垃圾回收机制后的优缺点是什么)
    移动端网站如何开发(电脑端网站到手机端网站我们需要在html代码中添加哪个meta标签)
    家庭洗车APP --- Androidclient开展 之 网络框架包介绍(一)
    一天JavaScript示例-判定web页面的区域
    左右margin top问题百分比值
    Ubuntu14.04设备JDK
    三层架构,四大天王——删
    MEMO:UIButton 中的图片和标题 左对齐
    HDU 3874 离线段树
  • 原文地址:https://www.cnblogs.com/java1024/p/12957125.html
Copyright © 2011-2022 走看看