牛客网Java面试问答每日一记1

  1. 什么是Java虚拟机? Java为什么被称作是“平台无关的语言”?
  2. JDK 与 JRE 的区别?
  3. “static” 关键字是什么意思? Java中是否可以覆盖 (override) 一个 static / private 方法?
  4. 是否可以在 static 环境中访问非 static 变量?
  5. Java支持的数据类型有哪些? 什么是自动拆装箱?

 

1:  Java虚拟机是一个可以执行Java字节码文件的进程。 Java之所以被称作与平台无关,是因为Java会调用编译器将Java程序编译为 字节码/.class 文件,然后通过调用不同平台安装的不同版本的JVM来将字节码文件转变为机器码。因为不同平台安装不同的JVM,所以字节码可以在不同平台运行,因此与平台无关

2:  JRE 是Java运行时环境,包含JVM与Java基础类库,而 JDK 则是Java开发工具,包含 JRE 与一些其他开发用到的工具

3:  static 是用来修饰变量/方法的关键字,被 static 修饰的变量/方法被称为类变量/类方法,这种变量/方法可以直接通过类名调用,因为被 static 修饰后,他们在内存中独占一份内存,他们的创建与对象实例无关。 而 override/方法覆盖 的前提是继承关系,被 static 修饰的方法与对象实例无关,因此无法被 override。而由于 private 修饰的方法为私有,子类无法直接访问,因此也无法 override

4:  static 环境随着类的加载而创建完成,非 static 变量随着对象实例的创建而加载完成,如果非 static 变量随着对象实例创建完成而存在,那么可以在 static 环境中访问。反之,就不能访问

5:  Java 支持的数据类型有多种:byte short char int long float double boolean    自动拆装箱是基本数据类型与包装类类型的自动转换过程,比如 int 与 Integer

posted @ 2021-10-11 19:38  十七筱  阅读(34)  评论(0)    收藏  举报