1、什么是java虚拟机?为什么说java被称作是“平台无关的编程语言”?
java虚拟机是一个可以执行java字节码的虚拟机进程。java源文件被编译成能被java虚拟机执行的字节码文件。
java被设计成允许应用程序可以运行在任意平台,而不需要程序员为每个平台单独重新编译。java虚拟机让这个变为可能,应为他知道底层硬件平台的指令长度和其他特性。
2、jdk和jre的区别是什么
java运行时环境。他包括java虚拟机、java核心库和支持的文件。他不包括开发工具、编译器、调试器和其他工具。
Java开发工具包(jdk)是完整的java软件开发工具包,包含了jre,编译器和其他的工具(比如 javadoc ,java调试器),可以让开发者开发,编译,执行java应用程序。
3、static 关键字是什么意思?java中是否可以覆盖一个private或者是static的方法?
“static”关键字表名一个成员变量或者成员方法可以在没有所属的类的实例变量的情况下被访问。java中static方法不能被覆盖,应为方法覆盖基于动态绑定的,而static方法是编程是静态绑定的。static方法艮类的任何实例都不相关,所以不可以
java中也不可以覆盖private的方法。应为private修饰的变量和方法只能在当前类中使用,如果是其他的类继承当前类是不能访问到private
变量或者方法的,当然也不能覆盖
4、是否可以在static环境中访问非static变量?
static变量在java中是属于类的,它在所有的实例中的值是一样的。当类被java虚拟机载入的时候,会对static变量进行初始化。如果你的代码尝试不用实例来访问static的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上
注意:非静态方法可以访问静态变量