1.谈谈final, finally, finalize的区别。
Final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。
Finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
Finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。Finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。
2.abstract class和interface有什么区别?
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
分享到:
相关推荐
这篇文档提供了32道中级水平的数据库基础面试题,涵盖了MySQL的相关知识。以下是对这些问题的详细解答: 1. InnoDB存储引擎支持的索引算法是B+树。B+树是一种平衡的多路搜索树,适合做数据库索引,因为它能够保持...
Java私塾面试题集合——JAVA基础1.pdf 这个压缩包文件包含了针对Java初学者和求职者的一系列面试题目,主要涵盖了Java基础知识。这些题目旨在检验和提升候选人在Java编程语言的理解、基本概念、语法和常见问题解决...
以上只是Java基础面试题的部分内容,实际面试中还可能涉及到反射、注解、网络编程、JVM原理等更深入的话题。通过复习这些基础知识,不仅可以应对面试,还能提升自身编程技能,更好地解决实际问题。
Java私塾面试题----JAVA代码与编程3涵盖了Java编程中的核心知识点,这些是面试官在评估候选人技术能力时经常会问到的问题。以下是一些关键的知识点解析: 1. **基本语法**:Java是一种强类型、面向对象的语言,面试...
### 最新各大公司企业真实面试题-思必达面试题解析 #### 技术总监单兴华面试题解析 在本篇文章中,我们将对“最新各大公司企业真实面试题-思必达面试题”中的部分典型题目进行深入解析,帮助读者更好地理解相关...
"java面试题-200题"这个资料包显然是一个集中的资源,帮助求职者准备Java工程师的面试。 首先,面试通常会涵盖以下几个核心方面: 1. **基础知识**:这部分可能包括Java语言的基本语法、数据类型、控制结构(如if-...
本资源主要涵盖Java面试题的基础知识和集合原理,涵盖Object-Oriented Programming(OOP)相关知识点,包括多态(Polymorphism)、方法Overload和Override、等于运算符(==)和equals()方法的使用、final、finally...
这份面试题集涵盖了JavaScript的各个方面,不仅包含基础语法,还深入到高级特性、框架应用和工程实践。对于前端开发者来说,理解和掌握这些知识点不仅能提高面试通过率,也能提升实际项目开发中的能力。学习过程中,...
Java作为一门广泛使用的编程语言,其面试题涵盖了众多的知识领域,包括基础语法、面向对象、集合框架、多线程、异常处理、IO流、网络编程、数据库操作、设计模式、JVM内存管理以及一些开源框架的应用等。这篇“java...
Java作为一门广泛使用的编程语言,其面试题涵盖了众多的知识领域,包括基础语法、面向对象、集合框架、多线程、异常处理、IO流、网络编程、JVM内存模型、设计模式、Spring框架、数据库操作等。以下是根据提供的...
Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据...准备这些面试题不仅有助于通过面试,还能提升个人技能,为在职场上的长期发展打下坚实基础。不断学习和实践,才能在快速发展的IT行业中保持竞争力。
Java面试题是每个Java开发者在求职过程中必须面对的挑战,这些题目涵盖了广泛的Java知识领域,包括基础语法、面向对象编程、集合框架、多线程、异常处理、内存管理、JVM、网络编程、设计模式等。下面将针对这些重要...
### Java私塾面试题知识点详解 #### 1. Heap与Stack的区别 Heap和Stack是Java内存管理中的...以上是根据Java私塾面试题整理的知识点详解,涵盖了Java基础中的重要概念和技术细节,对于深入理解Java编程具有重要意义。
面试时,面试官通常会考察求职者的基础Java知识,以确保他们具备扎实的技术基础。以下是一些Java面试中常见的基础知识点: 1. **Java语言特性**:Java是面向对象的语言,支持封装、继承和多态。它的主要特性还包括...
C语言经典笔试面试题涵盖了C语言的基础概念、多线程与进程的理解以及程序编译过程等多个方面。以下是对这些知识点的详细解析: 1. Static 关键字: - 在函数内部,static 变量的值在函数每次调用之间保持不变,它...
Java 面试题大全中涵盖了许多基础知识点,这些知识点对于理解Java编程语言至关重要。以下是这些题目涉及的一些关键概念的详细解释: 1. **作用域**:在Java中,访问修饰符public、private、protected以及默认...
【Python数据分析面试题汇总】 1. **Python求和**:Python内置...以上是对Python数据分析面试题的详细解答,涵盖了从基础语法到高级特性的多种知识点。在面试中,理解并掌握这些内容对于展示你的Python技能至关重要。
### 2024年Java面试题 - 并发编程相关面试题解析 #### 一、并发编程的重要性 - **目的**:并发编程的核心目的是为了提高计算机系统的整体性能,特别是针对现代多核处理器架构。 - **提升多核CPU利用率**:通过创建...