1.final关键字:final的使用有3种情况
(1)数据:在成员变量中用final修饰,表示了该数据的不变性,根据参数的类型又可以分为两种不同情况。如果该成员变量是基本类型,那么通过final修饰,该变量就不可以改变,如果加上static就表示了该成员变量,作为全局变量使用;如果该成员变量是引用类型,用final修饰,那么该引用不可再变,即引用的指向不可变,但是引用所指向的对象的值可以改变。
final数据的初始化在域的定义处或构造处进行,即final在使用前必须初始化。
final可以修饰方法中的参数,但是只能读不可修改。
(2)方法:方法用final修饰作用主要时为了该方法不能在继承的时候被修改,还有一个作用就是把被修饰的方法的调用转为内嵌调用以提高效率,不过不提倡用该种方式来提高效率,在比较新的jvm中,已经提供了这种功能。
类中private方法都隐式的指定为final。
(3)类:final修饰类时,表示该类不允许被继承,该类中的所有方法都被隐式指定为final方法。
2.继承初始化
当导出类执行时,即使没显示的去调用基类或打算生成一个基类对象,也会先去加载基类中的static域,然后加载导出类的static域,完成类的加载,基类构造器和导出类的构造器一样,以相同的顺序来经历相同的过程。在基类构造器完成之后,实例变量按其次序被初始化。最后构造器的其余部分被执行。
3.动态绑定:
将一个方法调用同一个方法主体关联起来被称作绑定。在运行时根据对象的类型进行绑定称为后期绑定,后期绑定也称为动态绑定或运行时绑定。java中除了static方法和final(private)方法外,其他方法都是后期绑定
4.几个缺陷:
a.只有非private方法才可以被覆盖。所以在导出类中,对基类的private方法。最好采用不同的名字。
public class A{
private void f(){System.out.println("private f()")};
public static void main(String[] args){
A a=new B();
a.f();
}
}
class B extends A{
public void f(){System.out.println("public f()")}
}
输出的结果为:
private f();
b.任何域访问操作都将由编译器解析,因此不是多态。静态方法也不具有多态性,因为它是对类来说,而不是对象。
c.在构造器内部唯一能够安全调用的那些方法是基类中的final(private)方法,调用其他方法会存在隐患。
分享到:
相关推荐
java8 集合源码 Github收藏夹 这是个收藏夹, 收集了Github上看到的各种不同的优秀工具,框架,知识合集 RPC - 阿里出品的使用范围广泛的RPC框架 - 微博出品的跨语言的RPC框架 - 百度出品的工业级RPC框架 - gRPC是一个...
java8集合源码 分布式系统 原则 降价演示 工具 Java并发 网页 HTTP Javascript 网关 认证&授权auth 单点登录 SSO 规格 虚拟机 垃圾收集 代理JVM JDBC 码头工人 库伯尼特斯 热图 强度图 地理信息系统 ETL 日程 代码...
标签 "Thinking Java Solution Bookmark pdf" 概括了资源的主要内容:关于思考Java的解决方案,书签辅助学习,以及资源的格式为PDF。这表明这是一个便于阅读和参考的学习资料。 4. **压缩包子文件的文件名称列表**...
Java操作Word主要依赖于第三方库,如Apache POI和JACOB。Apache POI是一个用于读写Microsoft Office格式档案的API,而JACOB则是一个Java和COM桥接库,允许Java程序调用Windows COM组件,如Microsoft Office。 2. *...
《Introduction to Programming in Java》是Java编程初学者的宝贵资源,尤其因其与知名图书《算法》第四版出自同一...同时,书中的书签功能("with bookmark.pdf")可以帮助读者快速定位到特定的学习点,提高学习效率。
在Java编程环境中,合并多个PDF文件是一项常见的任务,特别是在处理文档集合或自动化工作流程时。以下是一个关于如何在Java中实现这一功能的详细说明。 首先,我们需要一个库来处理PDF文件,Apache PDFBox是一个...
开发者可能需要配置客户端库,如使用Java的Apache HttpClient或JavaScript的Axios,来处理这些任务。在本项目中,可能提供了关于如何配置和使用这样的客户端库的示例代码。 在"bookmark"子文件中,可能包含了以下...
此外,开发者可能还利用了JDIC提供的其他辅助类和接口,如History管理和Bookmark服务,以实现浏览器的基本功能。 为了构建美观的用户界面,开发者可能使用了Java Swing或JavaFX库。Swing是Java的标准GUI库,提供了...
java8 集合源码 这是个收藏夹, 收集了各种不同的优秀工具,框架,知识合集 RPC - 阿里出品的使用范围广泛的RPC框架 - 微博出品的跨语言的RPC框架 - 百度出品的工业级RPC框架 - gRPC是一个领先的, 开源的, 高性能的RPC...
Java操作Word的能力主要依赖于Apache POI库,但如标题和描述所提到的,我们可以不使用POI或其他第三方库如java2word,而是利用Java的内置功能和API来实现对Word文档的操作,尤其是针对书签的处理。下面将详细介绍...
Java NIO,全称为Non-Blocking Input/Output(非阻塞输入/输出),是Java平台中用于替代标准的I/O模型的一种新机制。在传统的Java I/O中,使用的是Blocking I/O,即阻塞式I/O,这种模型下,线程在等待数据就绪时会被...
综上所述,这个"Bookmark.rar"压缩包是一个专注于Spring Java技术的学习资源集合,包含了一个名为"Bookmark.html"的HTML文档,记录了学习者在数据分析课程中的学习经验和技巧,特别是关于Spring框架的深入理解和实践...
Java NIO,全称为Non-Blocking Input/Output(非阻塞输入/输出),是Java平台中用于高效处理I/O操作的重要框架。它在Java 1.4版本中被引入,替代了传统的IO模型,提供了更高级别的I/O操作机制,以适应并发编程的需求...
java8 集合源码 Github收藏夹 这是个收藏夹, 收集了Github上看到的各种不同的优秀工具,框架,知识合集 Web框架 - Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发Swift、代码量少、学习简单、功能强大、轻量级...
总的来说,这个"bookmark.rar"文件对于正在学习或已经在使用Spring和Hibernate的Java开发者来说是一个宝贵的资源集合,它可能包含了从入门到进阶的各种学习路径,帮助他们提升在Spring框架和Hibernate ORM工具方面的...
java-developer-bookmark 一个java后台开发人员的常用书签导航 本人是一个java程序员,常常在日常开发中会用到线上一些工具,我个人感觉很实用的,因此分享给大家,希望大家喜欢,欢迎各位fork一起完善! 在线工具 :...
`bookmark`文件可能是一个数据结构或数据库,用于存储用户的书签信息。在浏览器中,书签功能允许用户保存常用网址,方便日后快速访问。开发者可能通过读取和写入这个文件来实现书签的添加、删除和查找功能。 `...
在IT行业中,处理文档操作是一项常见的任务,尤其是在Java开发中。`Spire.Doc.jar` 是一个功能强大的Java库,专门用于处理Microsoft Word文档。在这个场景中,我们将探讨如何使用`Spire.Doc.jar`来实现一个特定的...
从给定的代码结构中,我们可以看到,Jeesz 项目核心代码结构分为多个模块,包括 jeesz-utils、jeesz-config、jeesz-framework、jeesz-core-cms、jeesz-core-gen、jeesz-core-bookmark 等。这些模块的设计体现了项目...
IntelliJ IDEA是一款广受欢迎的Java开发集成环境,它提供了许多强大的功能来提高开发者的工作效率。其中,Bookmark(书签)功能就是其中一个实用的小技巧,它可以帮助开发者在大型项目中快速定位代码位置,提高开发...