软件测试面试题_常见java基础知识

图片[1]-软件测试面试题_常见java基础知识-软件测试圈

JVM、JRE 和 JDK 的区别

jvm (运行 Java 字节码的虚拟机)是 Java 能够跨平台的关键( 一次编译 到处运行),它能识别Java源码编译后的字节码文件(即 .class 文件),能够将 .class 文件中的字节码指令进行识别并执行

JRE (Java Runtime Environment) :即 Java 运行时环境。它是运行已编译 Java 程序所需的所有内容的集合,包括 Java 虚拟机(JVM),Java 类库,java 命令和其他的一些基础构件。但是,它不能用于创建新程序。

JDK (Java Development Kit) :Java 开发工具包。jdk 是整个 Java 开发的核心,拥有 JRE 所拥有的一切,还有编译器(javac)和其他实用工具(如 javadoc 和 jdb)。它能够创建和编译程序。

Java中 == 和 equals 的区别在哪里

== : 它的作用是判断两个对象的地址是不是相等。即判断两个对象是不是同一个对象。(基本数据类型==比较的是值,引用数据类型==比较的是内存地址)。

equals() : 它的作用也是判断两个对象是否相等,它不能用于比较基本数据类型的变量。equals()方法存在于Object类中,而Object类是所有类的直接或间接父类。

equals() 方法存在两种使用情况:

  • 情况 1:类没有覆盖 equals()方法。通过equals()比较该类的两个对象时,等价于通过“==”比较这两个对象。使用的默认是 Object类equals()方法。
  • 情况 2:类覆盖了 equals()方法。一般,我们常常会覆盖 equals()方法来判断两个对象的内容是否相等,若它们的内容相等,则返回 true(认为这两个对象相等)。

Java 中的几种基本数据类型是什么?对应的包装类型是什么

Java中有 8 种基本数据类型(需要理解和记忆),分别为:

  • 6 种数字类型 :byte、short、int、long、float、double

  • 1 种字符类型:char

  • 1 种布尔型:boolean。

这八种基本类型都有对应的包装类分别为:Byte、Short、Integer、Long、Float、Double、Character、Boolean

什么是自动装箱与拆箱

装箱:将基本类型用它们对应的包装类型封装起来。

// 自动装箱
Integer i = 100;

// tips:上面的过程,实际上是JDK已经帮我们完成了 Integer.valueOf(100)

拆箱:将包装类型转换为基本数据类型。

// 自动装箱
Integer integer100 = 100;

// 拆箱
int int100 = integer100 

解释一下什么是向上转型和向下转型

向上转型和向下转型的前提条件是需要有直接或间接的继承关系。如果两种类型之间没有继承关系,不允许进行类型转换(编译时会报错)。

向上转型 : 父类引用指向子类对象为向上转型,可实现自动转换,不需要强转。

向下转型 : 子类对象指向父类引用为向下转型,需要强转。

关于类型转换,在基本数据类型的转换中,也经常会遇到。
当范围小的基本数据类型,转换成范围大的基本数据类型,自动转换;
当范围大的基本数据类型,转换成范围小的基本数据类型,需要强转(精度可能会丢失)。

Java中,重载和重写的区别是什么

重载(Overload):发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同。最典型的例子,就是重载构造方法(当然,Java允许重载任何方法,而不仅仅是构造方法)。

重写(Override):是子类对父类的允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
相关推荐
  • 暂无相关文章
  • 评论 抢沙发

    请登录后发表评论