1.Java语言的特点是什么?
-
面向对象性:
- 两个基本概念:类、对象
- 三大特性:封装、继承、多态
-
健壮性:
- 吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制
-
跨平台性:
- 通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Write once,Run Anywhere"
2.System.out.println()和System.out.print()有什么区别?
System.out.println();打印完后,会换行。
System.out.print();打印完后,不会换行。
3.一个”.Java“源文件中是否可以包括多个类(不是内部类)?有什么限制
可以包括多个类,但最多只有一个类名声明为public,与文件名相同。
4.为什么要设置path
目的是为了在控制台的任何文件路径下,都可以调用JDK指定目录下的所有指令。
5.JDK,JRE,和JVM的关系是什么
- JDK = JRE + 开发工具集(例如Javac编译工具等)
- JRE = JVM + Java SE标准类库
6.GC是什么?为什么要有GC?
GC是垃圾收集的意思(Gabage Collection),内存处理时编程人员容易出现问题的地方,忘记或错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。
7.垃圾回收器的基本原理是什么?垃圾回收器可以马上收回内存吗?有什么办法主动通知虚拟机进行垃圾回收?
对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象时"可达的",哪些对象是"不可达的"。
当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。
可以主动通知虚拟机进行垃圾回收,程序员手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。