2021春招必备Java面试题大全(一)Java基础部分 持续更新

  1. Java有哪些数据类型

基本数据类型
数值型 所占字节数
整数类型(byte,short,int,long) 1,2,4,8
浮点类型(float,double) 4,8
字符型(char) 2
布尔型(boolean) 1

引用数据类型
类(class)
接口(interface)
数组([])

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

在Java 5 以前,switch(type)中,type只能是 byte、short、char、int。从 Java5 开始,Java 中引入
了枚举类型,type也可以是 enum(枚举) 类型,从 Java 7 开始,type还可以是字符串(String),但是长整
型(long)在目前所有的版本中都是不可以的。

  1. float f = 2.2 ; 这个语句是否是正确的

不正确; 2.2是(double) 的数字,将double 赋值给float属于一个向下转型 会造成精度丢失
所以想要完成上诉转型 需要写成
float num = (float)2.2 ;
float num = 2.2F;

  1. short s1 = 1; s1 = s1 + 1;有问题吗?short s1 = 1; s1 += 1有问题吗;

对于short s1 = 1 ; s1 = s1 + 1;
因为1是一个int类型 short s1 = 1; s1 = s1 + 1; 1是int所以需要强转之后才能赋值给short
而后面的s1 += 1 隐含了强转成short 所以后面的是正确的

  1. 访问修饰符 public,private,protected,默认时的区别

private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
default (即缺省,什么也不写,不使用任何关键字): 在同一包内可见,不使用任何修饰符。使用对
象:类、接口、变量、方法。
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部
类)。
public : 对所有类可见。使用对象:类、接口、变量、方法

  1. & 和 && 的区别

& 逻辑与 是一个运算符
5 & 6 = 4
0101 & 0110 = 0100
采用的整体思想有一个0就是0
boolean && boolean && 称之为短路与
短路及时 前面的是flase后面的就不执行了 就称之为短路
| 和 || 的区别与上述相似

  1. final 这个修饰符有什么用?

可以用于修饰类 和方法

  • 被final修饰的类是不可以被继承的
  • 被final修饰的方法是不可以被重写的
  • 被final修饰的变量不可以被改变 不可变的是变量的引用,而不是变量的内容当然,final还有其他作用,比如:
    被final修饰的常量,在编译阶段会存入调用类的常量池中
  1. final finally finalize区别

这是一道常见的面试题 可这三者的差别太大 我也不知面试的考的意义是什么

  • final可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、修
    饰变量表
  • 示该变量是一个常量不能被重新赋值。
    finally一般作用在try-catch代码块中,在处理异常的时候,通常我们将一定要执行的代码方法
    finally代码块
    中,表示不管是否出现异常,该代码块都会执行,一般用来存放一些关闭资源的代码。
  • finalize是一个方法,属于Object类的一个方法,而Object类是所有类的父类,该方法一般由垃圾
    回收器来调用,重写了改方法的实例被回收的时候会调用改方法 .在finalize()方法中重新引用到"GC Roots"链上(如把当前对象的引用this赋值给某对象的类变量/成员变量,重新建立可达的引用).
  1. this关键字

this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针

  • 普通的直接引用,this相当于是指向当前对象本身。
  • 形参与成员名字重名,用this来区分.
  • 引用本类的构造函数(需要写在第一行)

10.super关键字

super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类

  • 普通的直接引用
    与this相似,super相当于是指向当前对象的父类的引用,这样就可以用super.xxx来引用父类的成员
  • 子类中的成员变量或方法与父类中的成员变量或方法同名时,用super进行区分
  • 引用父类构造函数(也需要写在第一行)
  1. static关键字的理解

被static修饰的方法或者变量在jvm的类加载中的初始化阶段就会被加载
被static修饰的变量或者方法是独立于该类的任何对象,也就是说,这些变量和方法不属于任何一个实例对象,而是被类的实例对象所共享
静态只能访问静态。
非静态既可以访问非静态的,也可以访问静态的

  1. continue ,break ,return
  • continue 跳出本次循环,继续执行下次循环(结束正在执行的循环 进入下一个循环条件)
  • break 跳出总上一层循环,不再执行循环(结束当前的循环体)
  • return 程序返回,不再执行下面的代码(结束当前的方法 直接返回)

你可能感兴趣的:(java面试,2021春招,java,面试,javase)