网站重新制作多久google重新收录,做外贸 英文网站,网站开发iso9001,网站cdn自己做转载自 JAVA面试常考系列五
题目一
串行(serial)收集器和吞吐量(throughput)收集器的区别是什么#xff1f;吞吐量收集器使用并行版本的新生代垃圾收集器#xff0c;它用于中等规模和大规模数据的应用程序。串行收集器对大多数的小应用(在现代处理器上需要大概100M左右的内存…转载自 JAVA面试常考系列五
题目一
串行(serial)收集器和吞吐量(throughput)收集器的区别是什么吞吐量收集器使用并行版本的新生代垃圾收集器它用于中等规模和大规模数据的应用程序。串行收集器对大多数的小应用(在现代处理器上需要大概100M左右的内存)就足够了。题目二在Java中对象什么时候可以被垃圾回收当对象对当前使用这个对象的应用程序变得不可触及的时候这个对象就可以被回收了。java垃圾回收是有jvm自动执行的不是人为操作的所以当不存在对某对象的任何引用时该对象就处于被jvm回收的状态并不是马上予以销毁。题目三JVM的永久代中会发生垃圾回收么垃圾回收不会发生在永久代。如果永久代满了或者是超过了临界值会触发完全垃圾回收(Full GC)。永久代也是被回收的所以正确的永久代大小对避免Full GC是非常重要的因素。题目四Java中的两种异常类型是什么他们有什么区别
Java中有两种异常受检查的(checked)异常和不受检查的(unchecked)异常。
不受检查的异常不需要在方法或者是构造函数上声明就算方法或者是构造函数的执行可能会抛出这样的异常并且不受检查的异常可以传播到方法或者是构造函数的外面。相反受检查的异常必须要用throws语句在方法或者是构造函数上声明。 题目五Java中Exception和Error有什么区别
Error类定义了不期望被用户程序捕获的异常表示仅靠程序本身无法恢复的严重错误比如说内存溢出、动态链接异常、虚拟机错误。应用程序不应该抛出这种类型的对象。假如出现这种错误除了尽力使程序安全退出外在其他方面是无能为力的。所以在进行程序设计时应该更关注Exception类。
Exception类用于用户程序可以捕获的异常情况是由Java应用程序抛出和处理的非严重错误比如所需文件没有找到、零作除数数组下标越界等。它的各种不同子类分别对应不同类型异常。可分为两类Checked异常和Runtime异常题目六throw和throws有什么区别1.throw是在代码块内针对对象的即在捕获方法内的异常并抛出时使用。throws是针对方法的即将方法的异常信息抛出去。2.throw是主动在方法内容里我们是主动捕获并throw的而throws是被动在方法上是没有捕获异常进行处理直接throws的。题目七
异常处理的时候finally代码块的重要性是什么无论是否抛出异常finally代码块总是会被执行。就算是没有catch语句同时又抛出异常的情况下finally代码块仍然会被执行。最后要说的是finally代码块主要用来释放资源比如I/O缓冲区数据库连接。题目八
异常处理完成以后Exception对象何时回收
Exception对象会在下一个垃圾回收过程中被回收掉。题目九
finally代码块和finalize()方法各有什么作用区别是什么
finally在异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常那么相匹配的 catch 子句就会执行然后控制就会进入 finally 块如果有的话。
finalize方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。注意finalize不一定被jvm调用只有当垃圾回收器要清除垃圾时才被调用。
区别
无论是否抛出异常finally代码块都会执行它主要是用来释放应用占用的资源。finalize()方法是Object类的一个protected方法它是在对象被垃圾回收之前由Java虚拟机来调用的。题目十什么是Applet
Applet是一种特殊的Java程序,它本身不能单独运行,需要嵌入在一个HTML文件中,借助浏览器或Appletviewer来解释执行.Applet可能通过网络传输,由浏览器自动装载并执行。