java面试点

发布时间 2023-09-30 14:00:10作者: qirmcmww

语法基础

关键字:

  • final: 用于表示某个变量、方法或类是最终的,不能被修改或继承
  • super: 可用于调用父类的方法或者字段
  • synchronized: 用于指定多线程代码中的同步方法、变量或者代码块
  • transient: 修饰的字段不会被序列化
  • const 在 C语言中是声明常量的关键字,在 Java 中可以使用 public static final 三个关键字的组合来达到常量的效果。

注释:

  • java的注释要写在代码行上面,符合阿里巴巴开发公约。

数据类型和变量:

  • 数据类型的分类

    数据类型 默认值 大小
    boolean false 1 比特
    char '\u0000' 2 字节
    byte 0 1 字节
    short 0 2 字节
    int 0 4 字节
    long 0L 8 字节
    float 0.0f 4 字节
    double 0.0 8 字节
  • 基本数据类型和引用数据类型的区别;
    基本数据类型:
  1. 变量名指向具体的数值。
  2. 基本数据类型存储在栈上。
    引用数据类型:
  3. 变量名指向的是存储对象的内存地址,在栈上。
  4. 内存地址指向的对象存储在堆上。
  • 变量的分类
    变量有局部变量,成员变量,静态变量
    • 局部变量在使用时必须初始化。

包装器

包装器类型(Wrapper Types)是 Java 中的一种特殊类型,用于将基本数据类型(如 int、float、char 等)转换为对应的对象类型。

  • Byte(对应 byte)
  • Short(对应 short)
  • Integer(对应 int)
  • Long(对应 long)
  • Float(对应 float)
  • Double(对应 double)
  • Character(对应 char)
  • Boolean(对应 boolean)
    包装器类型允许我们使用基本数据类型提供的各种实用方法,并兼容需要对象类型的场景。
    基本数据类型的包装类除了 Float 和 Double 之外,其他六个包装器类(Byte、Short、Integer、Long、Character、Boolean)都有常量缓存池。
  • new Integer(18) 每次都会新建一个对象;
  • Integer.valueOf(18) 会使⽤用缓存池中的对象,多次调用只会取同⼀一个对象的引用。

类型转换

  • 这种写法是错误的 int无法自动转化为byte
byte b = 50;
b = b * 2;
  • char 类型比较特殊,char 自动转换成 int、long、float 和 double,但 byte 和 short 不能自动转换为 char,而且 char 也不能自动转换为 byte 或 short。

数组和字符串