java中final关键字的作用

1.被final关键字修饰的类不能被继承

final class Father{
    }
public class Son extends Father {
} //Son不能继承Father类

2.final 修饰的方法不能被重写

3.final 修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改

(1)对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。

  上面的一段代码中,对变量i和引用型String a的重新赋值都报错了,而b没报错。

(2)引用变量被final修饰之后,虽然不能再指向其他对象,但是它指向的对象的内容是可变的。如下解释

public class Test {
    public static void main(String[] args)  {
        final MyClass myClass = new MyClass();
        System.out.println(++myClass.i); 

    }
} 

class MyClass {
    public int i = 0;
} 

原文地址:https://www.cnblogs.com/Hitleren/p/11528855.html

时间: 2024-11-06 09:39:30

java中final关键字的作用的相关文章

Java和C++中final关键字的作用和区别

Java中final关键字的作用: a.作用于类:不允许扩展该类,即不能用该类来定义子类. b.作用于方法:子类不能覆盖这个方法,但是可以被继承. 早期Java中,有程序员利用final来避免动态绑定带来的系统开销.现在这个功能主要由编译器来实现. c.作用于域:构造对象之后不能改变该域的值. d.作用于函数参数:可以读取,但是不能改变该参数. 注意:final类的所有方法自动成为final的,不包括域. 将方法或类声明为final主要目的是确保它们在子类中不会改变语义. String类就是一个

关于Java中final关键字的用法总结

用于数据 永不改变的编译时常量,必须是基本类型,static final常量定义时必须赋值 一个运行时被初始化却又不希望被改变的值 空白final,确保使用前必须被初始化,但有更大的灵活性 final参数,用于对象引用,对象不可改变,用于基本类型,值不可以改变 用于方法 防止方法的行为被改变,不可覆盖 private方法默认为final的 曾经使用final方法可以提高效率,现已不提倡 用于类 表示该类不可以被继承 final类方法默认指定为final的 关于Java中final关键字的用法总结

java中final关键字

final关键字的作用 1.修饰变量:被修饰的变量不可改变,一旦赋值,不可重新再赋值 2.修饰方法:被修饰的方法可以被子类重写,但是不可以重载 3.修饰类:被修饰的类不可以被继承 原文地址:https://www.cnblogs.com/superCwen/p/10040953.html

Java中Native关键字的作用

阅读目录 一.认识 native 即 JNI,Java Native Interface 二.用 Java 调用 C 的"Hello,JNI" 三.JNI 调用 C 流程图 四.其他介绍 初次遇见 native是在 java.lang.Object 源码中的一个hashCode方法: 1 public native int hashCode(); 为什么有个native呢?这是我所要学习的地方.所以下面想要总结下native. 回到顶部 一.认识 native 即 JNI,Java N

java中final关键字的用法

final:adj. 最终的,不可改变的 我们就取其字面意思”不可改变的“. final可以修饰类.方法.变量.那么分别是什么作用呢? (1)修饰类:表示类不可被继承 (2)修饰方法:表示方法不可被覆盖 (3)修饰变量:表示变量一旦被赋值就不可以更改它的值.java中规定final修饰成员变量必须由程序员显示指定变量的值. final修饰成员变量时,要在哪里执行初始值? (1)如果final修饰的是类变量,只能在静态初始化块中指定初始值或者声明该类变量时指定初始值. (2)如果final修饰的是

关于java中final关键字与线程安全性

在Java5中,final关键字是非常重要而事实上却经常被忽视其作为同步的作用.本质上讲,final能够做出如下保证:当你创建一个对象时,使用final关键字能够使得另一个线程不会访问到处于"部分创建"的对象,否则是会可能发生的.这是 因为,当用作对象的一个属性时,final有着如下的语义: 当构造函数结束时,final类型的值是被保证其他线程访问该对象时,它们的值是可见的 为什么是必须的 使用final是所谓的安全发布(safe publication)的一种方式,这里,发布(pub

java中static关键字的作用

在java语言中有四种使用情况:成员变量.成员方法.代码块和内部类 (1)static成员变量 java中可以通过statin关键字修饰变量达到全局变量的效果.static修饰的变量(静态变量)属于类,在类第一次通过类加载器到jvm时被分配内存空间. (2)static成员方法 static修饰的方法属于类方法,不需要创建对象就可以调用.static方法中不能使用this和super等关键字,不能调用非static方法,只能访问所属类的静态成员变量和静态方法. (3)static 代码块 JVM

Java中super关键字的作用与用法

Java中的super是什么?java中的super关键字是一个引用变量,用于引用父类对象.关键字“super”以继承的概念出现在类中.主要用于以下情况: 1.使用super与变量:当派生类和基类具有相同的数据成员时,会发生此情况.在这种情况下,JVM可能会模糊不清.我们可以使用以下代码片段更清楚地理解它: /* Base class vehicle */ class Vehicle { int maxSpeed = 120; } /* sub class Car extending vehic

java中volatitle关键字的作用

用在多线程,同步变量. 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B.只在某些动作时才进行A和B的同步.因此存在A和B不一致 的情况.volatile就是用来避免这种情况的.volatile告诉jvm, 它所修饰的变量不保留拷贝,直接访问主内存中的(也就是上面说的A) =========================分割线1================================= 版权声明 :转载时请以超链接形式标明文章原始出处和作者信息及