牛客网Java面试问答每日一记1
- 什么是Java虚拟机? Java为什么被称作是“平台无关的语言”?
- JDK 与 JRE 的区别?
- “static” 关键字是什么意思? Java中是否可以覆盖 (override) 一个 static / private 方法?
- 是否可以在 static 环境中访问非 static 变量?
- 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

浙公网安备 33010602011771号