zoukankan      html  css  js  c++  java
  • 2021年春招Java后端开发面试知识点总结!

    前言

    转眼间2020年过去已经有一段时间了,相信大家在2020年年末的秋招已经拿到了自己满意的offer。有没有拿到的也不用着急,小编在这里为大家整理了一份2021春招java后端开发面试知识点总结,大家只要把这份知识点背熟记牢,突击一个面试还是没有什么问题的,这份知识点包括Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等,满满的干货给大家放在下面了!

    语言特性

    Java 语言的优点?

    ① 平台无关性,摆脱硬件束缚,"一次编写,到处运行"。

    ② 相对安全的内存管理和访问机制,避免大部分内存泄漏和指针越界。

    ③ 热点代码检测和运行时编译及优化,使程序随运行时间增长获得更高性能。

    ④ 完善的应用程序接口,支持第三方类库。

    Java 如何实现平台无关?

    JVM: Java 编译器可生成与计算机体系结构无关的字节码指令,字节码文件不仅可以轻易地在任何机器上解释执行,还可以动态地转换成本地机器代码,转换是由 JVM 实现的,JVM 是平台相关的,屏蔽了不同操作系统的差异。

    语言规范: 基本数据类型大小有明确规定,例如 int 永远为 32 位,而 C/C++ 中可能是 16 位、32 位,也可能是编译器开发商指定的其他大小。Java 中数值类型有固定字节数,二进制数据以固定格式存储和传输,字符串采用标准的 Unicode 格式存储。

    JDK 和 JRE 的区别?

    JDK: Java Development Kit,开发工具包。提供了编译运行 Java 程序的各种工具,包括编译器、JRE 及常用类库,是 JAVA 核心。

    JRE: Java Runtime Environment,运行时环境,运行 Java 程序的必要环境,包括 JVM、核心类库、核心配置工具。

    Java 按值调用还是引用调用?

    按值调用指方法接收调用者提供的值,按引用调用指方法接收调用者提供的变量地址。

    Java 总是按值调用,方法得到的是所有参数值的副本,传递对象时实际上方法接收的是对象引用的副本。方法不能修改基本数据类型的参数,如果传递了一个 int 值 ,改变值不会影响实参,因为改变的是值的一个副本。

    可以改变对象参数的状态,但不能让对象参数引用一个新的对象。如果传递了一个 int 数组,改变数组的内容会影响实参,而改变这个参数的引用并不会让实参引用新的数组对象。

    浅拷贝和深拷贝的区别?

    浅拷贝: 只复制当前对象的基本数据类型及引用变量,没有复制引用变量指向的实际对象。修改克隆对象可能影响原对象,不安全。

    深拷贝: 完全拷贝基本数据类型和引用数据类型,安全。

    什么是反射?

    在运行状态中,对于任意一个类都能知道它的所有属性和方法,对于任意一个对象都能调用它的任意方法和属性,这种动态获取信息及调用对象方法的功能称为反射。缺点是破坏了封装性以及泛型约束。反射是框架的核心,Spring 大量使用反射。

    Class 类的作用?如何获取一个 Class 对象?

    在程序运行期间,Java 运行时系统为所有对象维护一个运行时类型标识,这个信息会跟踪每个对象所属的类,虚拟机利用运行时类型信息选择要执行的正确方法,保存这些信息的类就是 Class,这是一个泛型类。

    获取 Class 对象:① 类名.class 。②对象的 getClass方法。③ Class.forName(类的全限定名)。

    什么是注解?什么是元注解?

    注解是一种标记,使类或接口附加额外信息,帮助编译器和 JVM 完成一些特定功能,例如 @Override 标识一个方法是重写方法。

    元注解是自定义注解的注解,例如:

    @Target:约束作用位置,值是 ElementType 枚举常量,包括 METHOD 方法、VARIABLE 变量、TYPE 类/接口、PARAMETER 方法参数、CONSTRUCTORS 构造方法和 LOACL_VARIABLE 局部变量等。

    @Rentention:约束生命周期,值是 RetentionPolicy 枚举常量,包括 SOURCE 源码、CLASS 字节码和 RUNTIME 运行时。

    @Documented:表明这个注解应该被 javadoc 记录。

    什么是泛型,有什么作用?

    泛型本质是参数化类型,解决不确定对象具体类型的问题。泛型在定义处只具备执行 Object 方法的能力。

    泛型的好处:① 类型安全,放置什么出来就是什么,不存在 ClassCastException。② 提升可读性,编码阶段就显式知道泛型集合、泛型方法等处理的对象类型。③ 代码重用,合并了同类型的处理代码。

    泛型擦除是什么?

    泛型用于编译阶段,编译后的字节码文件不包含泛型类型信息,因为虚拟机没有泛型类型对象,所有对象都属于普通类。例如定义 List

  • 相关阅读:
    Security headers quick reference Learn more about headers that can keep your site safe and quickly look up the most important details.
    Missing dollar riddle
    Where Did the Other Dollar Go, Jeff?
    proteus 与 keil 联调
    cisco router nat
    router dhcp and dns listen
    配置802.1x在交换机的端口验证设置
    ASAv931安装&初始化及ASDM管理
    S5700与Cisco ACS做802.1x认证
    playwright
  • 原文地址:https://www.cnblogs.com/lwh1019/p/14262238.html
Copyright © 2011-2022 走看看