首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏java初学

    final关键字

    (1)final类:不能被继承,没有子类,final类中的方法默认是final的; (2final方法:不能被子类的方法覆盖,但可以被继承; (3)final成员变量:表示常量,只能被赋值一次,赋值后值不再改变 2.final方法 如果一个类不允许子类覆盖某个方法,可以将这个方法设置为final方法。    ; } //这种声明f2的方法会报错,因为在Test1中已经将f2方法声明为final // public void f2() // { // System.out.println("父类的f2 父类的f4   由于父类中f2方法已经被声明为final,所以如果在子类Test2中重写f2方法的时候,会报错,这时候会提示将父类Test1中的f2方法声明为“非final”方法。 但是,final空白在final关键字final的使用上提供了更大的灵活性,为此,一个类中的final数据成员就可以实现依对象而有所不同,却有保持其恒定不变的特征。

    1.1K120发布于 2018-05-14
  • 来自专栏JavaEdge

    final关键字

    构造方法中,但静态final实例变量不可以在其中 final变量是只读的 2 修饰方法 该方法可被继承,但不许被任何子类重写 当调用final方法时,直接将方法主体插入到调用处,而不是进行方法调用,这样能提高程序效率 byte b3=b1+b2; //当程序执行到这一行的时候会出错,因为b1、b2可以自动转换成int类型的变量,运算时java虚拟机对它进行了转换,结果导致把一个int赋值给byte final byte b1=1; final byte b2=3; byte b3=b1+b2; //不会出错,相信你看了上面的解释就知道原因了。 使用final关键字,JVM会对方法、变量及类进行优化。 5 不可变类 创建不可变类要使用final关键字。不可变类是指它的对象一旦被创建了就不能被更改了。String是不可变类的代表。 6其他重要知识点 不能够对final变量再赋值 本地变量必须在声明时赋值 在匿名类中所有变量都必须final final关键字不同于finally关键字,后者用于异常处理 final关键字容易与

    55530编辑于 2022-11-29
  • 来自专栏JMCui

    Final 关键字

    final 关键字可以用来修饰变量、方法和类,修饰变量表示变量不能被修改,修饰方法表示方法不能被重写,修饰类表示类不能被继承。     由于以下两个原因,数据的恒定不变是很有用的。 Value v2 = new Value(); static final Value v3 = new Value(); final int[] a = { 1, 2, 3, 4, 5, 空白final关键字final的使用上提供了更大的额灵活性。为此一个类中的final成员就可以实现依对象而有所不同,却又保持其恒定不变的特性。 2、将一个方法设成 final 后,编译器就可以把对那个方法的所有调用都置入“嵌入”调用里。 5、修饰类 如果说整个类都是 final(在它的定义前冠以 final 关键字),就表明自己不希望从这个类继承,或者不允许其他任何人采取这种操作。

    1K60发布于 2018-03-15
  • 来自专栏前端记录笔记

    final关键字

    一,final用来修饰类的时候: 1,格式:public final 类名称{ //… } 2,含义:当前这个类不能有任何的子类。 3,不能使用一个final类来作为父类。 二,final关键字用来修饰成员方法 1,当final关键字用来修饰一个方法的时候,这个方法就是最终方法,也就是不能被覆盖重写。 2,格式:final 返回值类型 方法名称(参数列表){ //方法体 } 3,注意事项:对于类来说,abstract关键字final关键字不能同时使用,因为矛盾。 三,final关键字用与修饰局部变量: 1,一旦用final来修饰局部变量,那么这个变量就不能进行修改。“一次赋值,终生不变”。 2,对于基本类型来说,不可变说的是变量当中的数据不可改变。 四,final关键字用来修饰成员变量: 1,对于成员变量来说,如果使用final关键字修饰,那么这个变量也照样是不可变的。

    49810编辑于 2022-11-07
  • 来自专栏Java实战博客

    final & Java关键字

    final是一个修饰符 作用是什么呢? 就是锁定地址值,地址值不可以变,地址值指向的内容是可变。 final 能够修饰类、遍历、方法。 类不能被继承,可以改变属性,类中的所有方法被隐式的指定为fianl方法 修饰方法的话,子类不能重写,本类内可以重载 修饰常量的话,可以理解成常量,常量只能被赋一次值,一旦被赋值,将无法被修改 具体实例 被final 修饰的方法 不允许重写 image.png 被final修饰的类 不允许继承 image.png 被final修饰类 常量可以变 image.png 被final修饰的常量 必须设置初始值 image.png 被final修饰的常量 不允许修改 image.png 完结!

    48920编辑于 2022-01-14
  • 来自专栏颜颜yan_的学习笔记

    【JAVA】final关键字

    关键字修饰类 示例: final关键字修饰方法 示例: final关键字修饰变量 示例: 总结 ---- 前言 哈喽大家好,笔者新专栏开始啦~ 本期内容是final关键字final有“最终”“不可更改”的含义。在Java中,可以使用final关键字修饰类、属性、方法。在使用final关键字时需要注意: (1)使用final关键字修饰的类不能有子类。 (2)使用final关键字修饰的方法不能被子类重写。 (3)使用final关键字的变量是常量,常量不可修改。 由此可见,被final关键字修饰的类不能被其他类继承。 final关键字修饰方法 当一个类的方法被final关键字修饰后,该类的子类将不能重写该方法。 (2)使用final关键字修饰的方法不能被子类重写。 (3)使用final关键字的变量是常量,常量不可修改。

    75220编辑于 2022-12-16
  • 来自专栏用户2442861的专栏

    java final 关键字

    http://blog.csdn.net/niguang09/article/details/6035813   根据上下文环境,java的关键字final也存在着细微的区别,但通常指的是“这是无法改变的 );   private final Value v2 = new Value(22);   private static final Value VAL_3 = new Value(33);   static final int INT_2= r.nextInt(100);,然后是初始化final int int1= r.nextInt(100);,所以第一条输出语句的结果是int1:12    输出的结果是int1:56    INT_2:66。两次的输出INT_2的值都是一样的。    在说回我们的第一个事例,V1到VAL_3说明final引用的意义。 final和private关键字    类中的所有private方法都是隐式的制定为final的。由于你无法访问private方法你也就无法覆盖它。

    83820发布于 2018-09-20
  • 来自专栏Vegout

    final关键字详解

    当一个类的一个变量声明为final类型,那么这个类初始化完成时,这个final变量必定完成了初始化。 private FinalTest(){ a=1; b=2; } public void FinalTest init(){ instance finalTest.a+" "+"b="+finalTest.b); } } 假设我们有两个线程,线程A执行init()方法,线程B执行print()方法,按照正常情况,打印出来的a=1,b=2。 instance; private FinalTest(){ a[0] = 1; a[1] = 2; b=2; } public 如果上边构造函数改为 private FinalTest(){ a=1; b=2; instance = this; } this在构造函数还没有完成之前就对其他线程可见

    71620发布于 2019-07-03
  • 来自专栏全栈开发日记

    Java(final关键字

    final关键字代表的是最终的,不可改变的; 常见用法: 1、可以修饰一个成员变量 (1)由于成员变量具有默认值的,所以用了final之后必须手动赋值,否则它会报错; (2)要么手动赋值 (3)必须保证类当中所有的重载构造方法,都最终会对final的成员变量进行赋值; 无论你写了多少重载构造方法,要保证最后对final的成员变量进行赋值,否则会报错; 2、可以修饰一个局部变量 ( ,因为不可以进行更改 (2)对于基本数据类型来说,不可改变的是变量当中的数据不可变; final int a=10; //不可再进行更改或者赋值 (3)对于引用数据类型来说,不可变的是变量当中的地址值不可变 ; final Person p=new Person("坚强"); p=new Person("自立");//此行会报错 3、可以修饰一个类 当final关键字用来修饰一个类的时候: public final class 类名{ } //当前类不能有子类 ,可以有父类 含义:当前这个类不能有任何的子类(太监类) 4、可以修饰一个方法 当final关键字用来修饰一个方法的时候这个方法就是最终方法

    45320编辑于 2022-05-12
  • 来自专栏c++与qt学习

    override关键字final关键字

    如果我们使用override关键字标记某个函数,但该函数并没有覆盖已存在的虚函数,此时编译器将报错。 f3()override;//错误:f3不是虚函数 void f4()override;//错误:B没有名为f4的函数 }; override关键字只能用于虚函数中,因为只有虚函数才能被覆盖 final 关键字 我们可以把某个函数指定为final,如果我们已经把函数定义成final了,则之后任何尝试覆盖该函数的操作都会引发错误: class B { public: virtual void f1(int 覆盖f1(int) void f1(int) const final {};//不让后续其他类覆盖f1(int) }; class D2 :D1 { public: void f2() {};//正确 :覆盖从间接基类B继承而来的f2 void f1(int) const {};//错误:D1已经将f2声明成final }; class D3 :B { public: void f1(int)

    1.3K10发布于 2021-11-15
  • 来自专栏我的知识小屋

    php 之 Final 关键字

    引用手册中的话: PHP 5 新增了一个 final 关键字。如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。 那么意思说如果有一个final修饰了一个方法,那么我们在继承的类里面就不能重写他,或者说覆盖他。那么我们依然继承了这个方法。我们看以下代码: <? method BaseClass::moreTesting() 那我们现在来试一下用final修饰类: final class BaseClass { public function test 那么这个final应该就理解差不多了吧=。 注:属性不能被定义为 final,只有类和方法才能被定义为 final

    69010发布于 2021-01-14
  • 来自专栏数据分析与挖掘

    java之final关键字

    在java中声明类、属性和方法时,可使用关键字final来修饰,表示“最终”。 final标记的类不能被继承:提高安全性,程序的可读性; final标记的方法不能被子类所重写:Object中的getClass(); final标记的变量(成员变量或局部变量)即称为常量,名字大写,且只能被赋值一次 ; final标记的成员变量必须在声明的同时或在每个构造方法中或代码块中显示赋值,然后才能使用; final static修饰的是全局常量;

    49320发布于 2020-08-26
  • 来自专栏Java架构师必看

    Java并发关键字-final

    文章目录 final的简介 final的具体使用场景 变量 final成员变量 final局部变量 方法 类 final关键字举例 多线程中你真的了解finalfinal域重排序规则 final域为基本类型 父类的final方法是不能够被子类重写的 2. final方法是可以被重载的 类 当一个类被final修饰时,表名该类是不能被子类继承的。 final关键字举例 final经常会被用作不变类上,利用final的不可更改性。我们先来看看什么是不变类。 不变类 不变类的意思是创建该类的实例后,该实例的实例变量是不可改变的。 写普通域 b = 2; // 2. 因为构造函数中操作1和2之间没有数据依赖性,1和2可以重排序,先执行了2,这个时候引用对象referenceDemo是个没有完全初始化的对象,而当线程B去读取该对象时就会出错。

    1K30发布于 2021-07-14
  • 来自专栏java初学

    final和static关键字

    static前面加上其它访问权限关键字的效果也以此类推。 oublic static final double PI = 3.14; ... }   在程序中,可以采用Math.PI的形式获得这个常量。    如果关键字static被省略,PI就变成了Math类的一个实例域,需要通过Math的对象来访问PI,并且每一个Math对象都有它自己的一份PI拷贝。   如果去掉了static关键字,就会变成一个方法,想要调用这个方法,需要通过Employee类的对象来引用这个方法。 可以使用对象调用静态方法。 静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。

    924110发布于 2018-05-14
  • 来自专栏繁依Fanyi 的专栏

    final 关键字的用法

    在 Java 中,final 关键字具有多种用途,主要用于限制变量、方法和类的可修改性。了解这些用法有助于提高代码的安全性和可维护性。 1. 示例代码: final int MAX_VALUE = 100; // MAX_VALUE = 200; // 编译错误,不能改变常量值 2. 方法不能被重写 在方法前加上 final 关键字,可以防止该方法在子类中被重写。这在设计类时,可以确保某些方法的行为不被改变。 类不能被继承 将 final 关键字用于类声明,表示该类不能被继承。这通常用于确保类的实现不被改变,常见于设计单例模式。 final 关键字在 Java 中具有重要的作用,可以用来声明常量、限制方法重写、防止类继承、管理引用的不可变性,以及优化性能。

    56710编辑于 2024-10-28
  • 来自专栏bit哲学院

    java final 修饰变量_final关键字修饰变量

    参考链接: Java final关键字 Java中被final修饰的变量为常量,它只能被赋值一次,也就是说final修饰的变量一旦被赋值,其值不能改变。如果再次对该变量进行赋值,则程序会在编译时报错。 public class Example {  public static void main(String[] args) {  final int num = 100;  num = 4;  }   原因在于变量num 被final修饰。由此可见,被final修饰的变量为常量,它只能被赋值一次,其值不可改变。  被final关键字修饰的变量为局部变量。 这是因为使用final关键字修饰成员变量时,虚拟机不会对其进行初始化。 因此使用final修饰成员变量时,需要在定义变量的同时赋予一个初始值,下面将第2行代码修改为:final String name="小海绵"; //为final 关键字修饰的name 属性赋值  运行结果

    1K20发布于 2021-04-23
  • 来自专栏入门到放弃之路

    Java关键字系列 -- final

    修饰类 被final修饰的类是不可以继承(extends)的,例如java.lang.String 修饰方法 当类被继承时,被final修饰的方法不能被重写(override)。 final类中的方法都会被隐式的指定被final修饰 一个类的private方法会隐式的被指定为final方法 修饰常量 被修饰的基本数据类型的常量不能被更改,并且一定要对常量进行初始化 被修饰的引用数据类型指向的对象不能修改 但是属性可以修改 代码内联 当被修饰的方法是热点代码(调用次数过多),把方法内部调用的其它方法的逻辑,嵌入到自身的方法中去,变成自身的一部分,之后不再调用该方法,减少栈桢压栈出栈 例如: final ; } } public void print(){ System.out.println("hello world"); } 内联之后: final while (true) { System.out.println("hello world"); } } 用private、static、final

    35610编辑于 2022-05-09
  • 来自专栏程序员互动联盟

    【面试宝典】final 关键字

    面试官:前面回答的都不错,最后一个问题,final关键字你知道多少?知道多少说多少,没关系。 小白:final表示不可改变,可以修饰变量,这个变量在声明的时候就要给它赋值,我就知道这么多了。 面试解析: 面试final关键字你可以从一下几点给面试官说: 1、final修饰变量: final修饰的变量只能被赋值一次,可以是在声明的时候进行初始化,也可以是在初始化函数中进行初始化,基本数据类型在赋值后它的值不无法改变 (输入关键字面试宝典获取更多面试经验) 2final修饰的方法: final修饰的方法不能被子类重写,Java编程思想中是这样说的: 使用final方法的原因有两个。 在早期的Java实现版本中,会将final 方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升。在最近的Java版本中,不需要使用final方法进行这些优化了。 3、final修饰的类: final修饰的类不能被继承,也就是说它所有的实现都不能被改变,方法不能被重写。常用于设计一些不想让使用者改变的类。----

    79630发布于 2018-03-15
  • 来自专栏IT可乐

    Java关键字(四)——final

      对于Java中的 final 关键字,我们首先可以从字面意思上去理解,百度翻译显示如下: ?   也就是说 final 英文意思表示是最后的,不可更改的。 无非就是设计所需或者能提高效率,与前面介绍 static 关键字需要记住其与对象无关的理念一样,牢记 final 的不可变的设计理念后再来了解 final 关键字的用法,便会顺其自然了。 可以看到,首先通过 final 关键字修饰一个对象 p,然后接着将 p 对象指向另一个新的对象,发现报错,也就是说final修饰的引用类型是不能改变其引用地址的。    结论:被 final 修饰的变量不可更改其引用地址,但是可以更改其内部属性。 2、修饰方法   final 关键字修饰的方法不可被覆盖。    3、修饰类   final 修饰类表示该类不可被继承。   也就是说不希望某个类有子类的时候,用final 关键字来修饰。

    56430发布于 2018-07-24
  • 来自专栏小赵的Java学习

    Java并发编程——final关键字

    final关键字在我们日常所见到的代码中可谓是经常出现了,一般是用来修饰不再改变的参数。 那么这个关键字与并发编程有什么关系呢? 一旦你将引用声明作final,你将不能改变这个引用了 由此引出一个问题,final关键字与线程安全有什么关系呢? 对于final域,编译器和处理器要遵守两个重排序规则。 √初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。 写final域重排序规则: JMM禁止编译器把final域的写重排序到构造函数之外。 编译器会在final域的写之后,构造函数return之前,插入一个StoreStore屏障。 这个屏障禁止处理器把final域的写重排序到构造函数之外 读final域重排序规则: 在一个线程中,初次读对象引用与初次读该对象包含的final域,JMM禁止处理器重排序这两个操作,编译器会在读final

    34730编辑于 2022-12-02
领券