二、Java基础之final关键字

final变量:

final修饰的变量(成员变量或局部变量),即常量,只能赋值一次,不能再次修改。

final成员变量要么在声明时赋值,要么在构造函数里赋值。

如果变量为引用类型,变量的引用不能修改,但是引用指向的内容是可以被修改的。

final方法:

final修饰的方法不能被子类重写。

final类:

final修饰的类不能被继承。

最典型的例子:String类。因为String是immutable的,所以不能允许其他类继承String,否则其子类会轻易的将其改为mutable。详细参考:https://www.zhihu.com/question/31345592

深入理解final:

  • final修饰的常量在编译期间会放到常量池中。举例如下:

    String a = "hello2";
    final String b = "hello";
    String c = "hello";
    String d = b+2;
    String e = c+2;
    //编译期b是常量,d会直接被编译器优化为hello2
    System.out.println((a == d));//true
    //由于b不是常量,编译期不会被优化,在运行时创建新对象
    System.out.println((a == e));//false
  • final修饰的方法,JVM可能会将其转为内联调用而提高运行效率。
  • final关键字是保证对象不能被修改,static关键字是保证全局唯一。
  • final参数的作用仅仅是让调用方法体内不能重新赋值传参。
时间: 2024-08-24 01:06:26

二、Java基础之final关键字的相关文章

java基础之final关键字

与final关键字相关的笔试题面试题也是一道必考题.而且对于final的实际应用非常广泛,在代码设计的时候,如果对此不够足够掌握,可能就会很难排查与此相关的异常. final的理论知识如下: final类型的成员变量初始化值: 1.声明时候直接赋值 2.构造方法中赋值,如果一个类中有多个构造方法,就要保证在每个构造方法中都要完成对final类型变量的初始化工作 3.静态final成员变量必须在声明时赋值,且不能在构造方法中赋值 4.final成员变量指的是引用不能改变,即该变量的引用不能在指向其

【Java基础】final关键字总结

Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例.final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的. final关键字的含义? final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如

Java基础(三)-final关键字分析

今天来谈谈final关键字的作用, 虽然有很多博文关于final进行了很深的研究,但还是要去记录下谈谈自己的见解加深下印象.下面直接进入主题: 一.final关键字的作用 1.被final修饰的类不能被继承. 这一点应该很多人都知道也遇到过,经典案例就是java.lang.String类 还有一些常见的类也是被final所修饰的,如下: 基本类型对应的包装类型(如java.lang.Integer.java.lang.Long等).字符相关类(java.lang.StringBuilder.ja

java 基础 1 final关键字

1. final关键字 数据:声明数据为常量,对于基本类型final使数值不变,对于引用类型final使引用不变,但引用所指向的值是可以改变的,例如       final StringBuffer sb = new StringBuffer("sb");  sb.append(1); 此时打印sb的值为sb1; 方法:声明方法不能被子类覆盖,private方法隐式地被指定为final,如果在子类中定义的方法与基类中private方法签名相同,此时                  

Java基础001:final关键字、String字符串的相加问题

1.final关键字的作用 1.1.final修饰的类:不能被其他类继承:1.2.final修饰的方法:不能被子类重写1.3.final修饰的变量:分两种情况,引用变量.基本类型变量,如下: final修饰的引用变量:一旦给其赋值,就不能被再次赋值 final String s = "32"; //引用变量 s = "1"; /** 报错:The final local variable s cannot be assigned. It must be blank

Java基础语法(一)---关键字、常量、变量、运算符

Java基础语法(一)---关键字.常量.变量.运算符一.关键字 定义:被Java赋予了特殊含义的单词. 特点:体现上都是英文小写. 1. 用于定义数据类型的关键字 基本数据类型: 整数类型: byte(1字节,最大值127) short(2字节,最大值为2^15-1) int(4字节,最大值为2^31-1) long(8字节,最大值为2^63-1) 浮点类型: float (单精度实数在内存中占32bit 有效数字为6~7位) double(双精度实数占内存单元为64bit 有效数字为15~1

浅析Java中的final关键字

原文出处: 海子 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正. 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字

转载:浅析Java中的final关键字

文章转自:http://www.cnblogs.com/dolphin0520/p/3736238.html 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cn

浅析Java中的final关键字(转载)

自http://www.cnblogs.com/dolphin0520/p/3736238.html转载 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字的基本用法. 1.修饰类 当用final修饰一个类时,表明这个类不能被继承.也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰.final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方