转载自 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可能通过网络传输,由浏览器自动装载并执行。

JAVA面试常考系列五相关推荐

  1. JAVA面试常考系列十

    转载自 JAVA面试常考系列十 题目一 Servlet是什么? Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,是用Java编写的服务器端程序 ...

  2. JAVA面试常考系列十一

    转载自 JAVA面试常考系列十一 题目一 什么是JSP? JSP(Java Server Page)是一个文本文档,是一种将静态内容和动态生成内容混合在一起的技术. JSP包含两种类型的文本:静态数据 ...

  3. JAVA面试常考系列九

    转载自 JAVA面试常考系列九 题目一 RMI架构层的结构是如何组成的? RMI体系结构由三层组成,分别是: 存根和骨架层(Stub and Skeleton Layer) 远程引用层(Remote ...

  4. JAVA面试常考系列八

    转载自 JAVA面试常考系列八 题目一 JDBC是什么? JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系 ...

  5. JAVA面试常考系列六

    转载自 JAVA面试常考系列六 题目一 一个Applet有哪些生命周期? 一个Applet的生命周期分为以下四个阶段: Init 每次加载时都会初始化一个小程序.此方法通知Applet,方法已经被装入 ...

  6. java面试常考系列四

    转载自 java面试常考系列四 题目一 大O符号(big-O notation)的作用是什么?有哪些使用方法? 大O符号描述了当数据结构里面的元素增加的时候,算法的规模或者是性能在最坏的场景下有多么好 ...

  7. JAVA面试常考系列三

    转载自 JAVA面试常考系列三 题目一 什么是迭代器(Iterator)? 迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中确定的地址.迭 ...

  8. JAVA面试常考系列二

    转载自 JAVA面试常考系列二 题目一 解释一下线程和进程 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调 ...

  9. JAVA面试常考系列一

    转载自 JAVA面试常考系列一 题目一 什么是Java虚拟机?为什么Java被称为平台无关的编程语言? java虚拟机是一个可以执行字节码文件(.class)的虚拟机进程. 为什么java与平台无关呢 ...

最新文章

  1. js模拟栈---进制转化。十进制转任意进制进制,任意进制转十进制
  2. OpenWrite 新增扩散渠道:慕课手记,支持图片转存!
  3. python数据字符_python数据清洗系列之字符串处理详解
  4. 十一. Python基础(11)—补充: 作用域 装饰器
  5. 炼数成金数据分析课程---17、机器学习聚类算法(后面要重点看)
  6. 计算机系统结构选择题
  7. Python使用C++动态库的方法
  8. 2017.0704.《计算机组成原理》-动态RAM
  9. 数字电子技术基础阎石(第六版)基本公式和若干常用公式的电路证明方法
  10. 手把手 从零开始学习JAVA(入门基础)
  11. Linux下使用和配置magick
  12. FPGA开发中sof和elf文件的合并与格式转换
  13. 毕业转行,在一家公司零基础开始学习seo,记录贴
  14. java-喝饮料换空瓶问题
  15. 结构方程模型:技术接受度模型TAM2
  16. 2022年推土机司机(建筑特殊工种)考试题库及推土机司机(建筑特殊工种)考试技巧
  17. R语言使用order函数对dataframe数据进行排序、基于多个字段(变量)进行升序排序(ASCENDING)
  18. 数据可视化查看2021全国各省份的GDP
  19. LintCode_138——子数组和为零
  20. e代理与和合首创达成战略合作,共创WealthTech生态圈

热门文章

  1. 谁动了我的选择器?深入理解CSS选择器优先级
  2. [JavaWeb-HTTP]request对象和response对象的原理
  3. LeetCode 257二叉树的所有路径-简单
  4. [蓝桥杯2019初赛]特别数的和-枚举
  5. python加密与解密_Python加密与解密,pythonCrypt,和
  6. PAT(乙级) 1001 害死人不偿命的(3n+1)猜想 C++
  7. 2021年度训练联盟热身训练赛第一场 E Early Orders 思维 + 栈
  8. P5170 【模板】类欧几里得算法(类欧)
  9. AcWing 1087. 修剪草坪28
  10. Weird Flecks, But OK