final、static、finally、finalize的比较

final、static、finally、finalize的比较

final关键字

1、final修饰类,表示该类不能被继承,因此,一个类不能同事被声明为abstract抽象类和final的类;

2、final修饰变量,则该变量必须赋初值,而且它的取值在整个过程都不会改变;

3、final修饰方法,称为最终方法。它不可被子类重新定义,即不可被覆盖,也不能被重载;

注意其和static的区别

static关键字

(1)static定义的数据或方法,可以不用new出类的实例而让类直接调用;

(2)static代码块;static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序性能。

finally:java的一种异常处理机制。

(1) finally是对Java 异常处理模型的最佳补充。finally 结构使代码总会执行,而不管有无异常发生。

(2)使用 finally 可以维护对象的内部状态,并可以清理非内存资源。

(3)特别是在关闭数据库连接这方面,如果程序员把数据库连接的close()方法放到finally中,就会大大降低程序出错的几率。

finalize:Java中Object类中的一个方法名。

ava技术使用finalize()方法在垃圾收集器将对象从内存中清除出去前,做必要的清理工作。

这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。

它是在Object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。

finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。

时间: 2024-11-13 09:55:25

final、static、finally、finalize的比较的相关文章

Java Modifiers, default/public/protected/private/ final/static/transient/synchronized/volatile

reference: http://www.studytonight.com/java/modifier-in-java.php Modifiers are keywords that are added to change meaning of a definition. In java, modfiers are cateogrized into two types: 1. Access control modifier 2. Non Access modifier 1) Access co

Java中的内存处理机制和final、static、final static总结

Java中的内存处理机制和final.static.final static总结 装载自:http://blog.csdn.net/wqthaha/article/details/20923579 Java程序运行在JVM上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性.所以在学习Java内存分配原理的时候一定要牢记这一切都是在JVM中进行的,JVM是内存分配原理的基础与前提.         一个完整的Java程序运行过程会涉及以

java修饰符public final static abstract transient

JAVA 修饰符public final static abstract transient 关键字: public final static abstract ... 1.public protected default private 组 位置                        private      默认      protected        public 同一个类                    是            是         是         

final .....finally ...... 和Finalize ......区别

一.性质不同 (1)final为关键字: (2)finalize()为方法: (3)finally为为区块标志,用于try语句中: 二.作用 (1)final为用于标识常量的关键字,final标识的关键字存储在常量池中(在这里final常量的具体用法将在下面进行介绍): (2)finalize()方法在Object中进行了定义,用于在对象"消失"时,由JVM进行调用用于对对象进行垃圾回收,类似于C++中的析构函数:用户自定义时,用于释放对象占用的资源(比如进行I/0操作): (3)fi

final,finally和finalize三者的区别和联系

对于初学者而言(当然也包括我)对于这三者真的不是很陌生,经常会看到它们.但对于三者之间的区别和联系一直是懵懵懂~~ 今天心情不错,那就简单总结一下它们几个的区别和联系吧.如果又不对的地方欢迎批评指正~~ 1.final final是java的中的一个关键字.final关键字可以用来修饰属性,方法和类.还有就是如果内部类要访问局部变量的话,那么对应的局 部变量也必须为final关键字修饰的. 首先,使用final修饰的属性是不能够修改的. 例如:final int VALUE=100; 那么这里的

Java中final,finally和finalize区别

Day11_SHJavaTraing_4-18-2017 1.final-修饰符(关键字) ①final修饰类,表示该类不可被继承 ②final修饰函数,表示继承这个类的子类中不能重写这个函数 ③final修饰变量,表示该变量的值不可改变,必须在声明时给定初值.如果修饰的是引用类型的变量,则变量中保存的引用(地址)不可改变,但是引用指向的堆内存中的数据可以改变2.finally-在异常处理时finally代码块一定会被执行3.finalize-Object类的一个方法 使用finalize()方

final static T

/** * An empty table instance to share when the table is not inflated. */ static final Entry<?,?>[] EMPTY_TABLE = {}; final 修饰的类不能被继承 final 修饰的方法不能被重写 final 修饰的变量不能被重新赋值 不能被二次赋值 The final field Test1.PERSON_LIST cannot be assigned 不能不赋值 The blank fi

php final static const成员属性用法

http://www.111cn.net/phper/php/38976.htm 首先来说说final 1.final不能用来修饰成员属性 2.final只能修饰类和方法 作用:被修饰的类不能被子类所继承:被修饰的方法不能被子类的方法覆盖. < ?PHP final class BaseClass { public function test() { echo "BaseClass::test() calledn"; } final public function moreTes

final,static静态和非静态,初始化和代码块的区别、父类和子类中都有static变量时的初始化顺序、重写equals()、 instanceof强制转换

final:类不能被继承,方法不能被重写,属性值不能被修改(常量): 可以调用: static静态常量----- 不需要创建对象,可以直接调用类里面的属性,方法: 示例如下: 加了static说明它是属于整个类的,每个对象值都一样,如下图所示:size是静态的,所以当在下面t1对象中改变size的值时,整个类中的size值都变了:然后作为普通属性的length,当在t1对象中改变其值,并不会改变原始值: 静态方法不能调用非静态的方法和非静态的属性,也不能打印非静态的方法和非静态的属性:可以在静态

Final Static

Final:      最终的不可变的 属性 变量     变量的值不可更改 方法    方法不可被重写 类             不能被继承 Static:   静态的 属性(变量(不可以修饰局部变量)) 方法 1)static修饰的属性和方法是共享的,属于类所有的 2)调用:static修饰的属性或方法可以通过类名.去调用 3)非静态的方法可以访问静态的属性或方法 4)静态方法中不能访问非静态属性或方法,静态的可以访问静态的类名.   或直接访问 垃圾回收机制(GC garbage col