1.java中垃圾回收有什么目的?什么时候进行垃圾回收?System.gc()和Runtime.gc()会做什么事情?
答:垃圾回收的目的是识别并且丢弃应用不再使用的对象来释放和重用资源; 上面的两个方法用来提示JVM(JAVA虚拟机)要进行垃圾回收。但是是立即开始还是延迟开始回收是要取决于JVM的。
2.Java堆的结构是什么样子的?什么是堆中的永久代(Perm Gen space)?
答:JVM的堆是运行时数据区,所有类的实例和数组都是在堆上分配内存。它在JVM启动的时候被创建。对象所占的堆内存是由自动内存管理系统也就是垃圾收集器回收的。
堆内存是由存活和死亡的对象组成的。存活的对象是应用可以访问的,不会被垃圾回收。死亡的对象是应用不可访问尚且还没有被垃圾收集器回收掉的对象。一直到垃圾收集器把这些对象回收掉之前,他们会一直占据堆内存空间。
3.在Java中,对象什么时候可以被垃圾回收?
当对象对当前使用这个对象的应用程序变得不可触及的时候,这个对象就可以被回收了。
4.面向对象编程的特性
封装、继承、多态、抽象
5.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
JAVA虚拟机是一个可以执行字节码的虚拟机进程。JAVA源文件被翻译成能被JAVA虚拟机执行的字节码文件。
JAJAVA虚拟机让这个变成可能性,因为他知道底层硬件平台的指令长度和其他特性。
6.String是最基础的数据类型吗?
不是的
7.int和Integer有什么区别?
int是基本的数据类型,而integer是integer的封装类;
8.&和&&的区别
当做逻辑运算时,&不管第一个表达式是否正确都会计算第二个表达式,但&&当一个表达式错误时就不再计算第二个表达式;此外&还可以用作逻辑运算符。
9.数组有length()这个方法吗?
没有,只有数组长度的属性。
10.是否可以继承String类型?