1. Java的"一次编写,处处运行"如何实现?

Java在每个平台上都有Java虚拟机(JVM:JDK安装后里面的),中间编译文件class是由Java虚拟机在运行时动态转换为对应平台的机器代码

2. 描述JVM运行原理

Java平台由java虚拟机和java应用程序接口搭建java语言则是进入这个平台的通道,用java语言编写并编译的程序可以运行在这个平台上
结构:
运行期环境代表java平台开发人员编写java代码(.java文件),然后编译成字节码(.class文件),然后字节码装入内存,然后进入虚拟机,被解释器解释执行.
记录Java面试题1~10

3. 为什么Java没有全局变量

  1. 破坏了引用的透明性
  2. 制造了命名空间冲突
    可以使用properties类将想要全局有效的变量值写在这里,在何处用时都从这个文件夹中读取这个变量的值就可以了

4.说明一下public static void main(String[] args)这段声明里每个关键字的作用

Public: 是一个访问权限(访问修饰符)公共
static: 修饰的成员称为类成员或静态成员
void : 当方法定义使用时,表示没有返回值
String: 类来创建和操作字符串

5. Java是否存在内存泄漏

通俗的讲,创建对象后直不再使用,却一直被引用,即无用的对象无法被垃圾回收机制回收,这就是内存泄漏
一定要让程序各种分支情况都完整执行到程序结束,然后看某个对象是是否被使用过,如果没有,才能判断这个对象属于内存泄漏.

6. ==与equals的区别

== :除了比较基本数据外都是比较的内存地址
equals:都是比较内容的

7. Java中几种类型的流

1.字节流 2.字符流
分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个)
InputStream,OutputStream,Reader,Writer

8. 如何让用java代码列出一个目录下的所有文件夹

File f = new File("/Users/XXX/Downloads");
for (File temp : f.listFiles()) {
if (temp.isFile()) {
System.out.println(temp.getName());
}
}

9. &和&&的区别

  1. & 和 &&都可以作为逻辑与的运算符,
  2. 开发过程中用到&&的几率大,因为&&具有短路功能,
  3. &同时也是位运算符,就是我们通常所说的按位与运算,当&两边都是Boolean表达式或值时,就执行按位与运算

10. 构造器(constructor)是否可被重写(override),其规范是什么

构造器不能被继承,因此不能重写,但可以重载.
每一个类必须有自己的构造函数,负责构造自己这部分构造,子类不会覆盖父类构造函数,相反必须负责在一开始调用父类的构造函数

相关文章: