1.final类型变量

定义:被final修饰的变量,一旦被赋初值后,则final类型变量的值就不能再改变。

1.1成员变量

final修饰的成员变量必须显式的赋初值。

赋值的位置:

•类变量:静态初始化块中或者声明改类变量时候

•实例变量:非静态初始化块中,声明实例变量时候,构造器中

•未初始化之前不能调用final修饰的变量

public class VariableAssignment {
//声明时候赋值
final float num = 2f; //定义后在初始化块中
final String name;
{
this.name = "haha";
} //类变量在静态语句块中赋值
final static double d;
static{
d = 2.0;
} //构造中赋值
final int n;
public VariableAssignment(){
n = 6;
}
}

1.2局部变量

final修饰的局部变量可以赋值也可以不赋值,但是赋值只能一次。

1.3final修饰基本类型变量和引用类型变量的区别

final修饰基本类型变量,不能对已经赋值的变量再次修改值。但是对于引用类型变量而言,final保证的只是地址不变,但是对象本身是可能改变的

    public class Person {
private int age; public Person(int age){
this.age = age;
} public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
} } 123456789 public class Study {
public static void main(String[] args) {
final Person p = new Person(2);
//通过set方法改变了值 p.setAge(6);
int num = p.getAge();
System.out.println(num); }//main
}

1.4 final的宏替换作用

public class Study {
public static void main(String[] args) {
final String s1 = "Hello World";
final String s2 = "Hello" + " World";
final String s3 = s1 + s2;
System.out.println(s1 == s2); //输出true,s1在编译阶段已经被放到常量池中,s2和s1一样,所以直接引用常量池中的内容 System.out.println(s1 == s3); //输出false,因为s3在编译阶段无法确定内容,所以不能用宏替换 }//main
}

2.final方法

3.final类

4.不可变类

7.final关键字.md的更多相关文章

  1. 018 final 关键字的用途

    final关键字的含义 final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初 ...

  2. PHP的final关键字、static关键字、const关键字

    在PHP5中新增加了final关键字,它可以加载类或类中方法前.但不能使用final标识成员属性,虽然final有常量的意思,但在php中定义常量是使用define()函数来完成的. final关键字 ...

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

    自http://www.cnblogs.com/dolphin0520/p/3736238.html转载 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括 ...

  4. final关键字(final是最终的)

    final关键字(final是最终的) 1.final修饰特点 a.修饰类,类不能被继承 b.修饰变量,变量就变成了常量, 修饰基本数据类:final int num = 10; 修饰引用数据类型变量 ...

  5. java中对final关键字的理解以及使用场景

    谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.

  6. 关于Java中的final关键字

    Java中的final关键字是用来限制用户行为的,说白了,就是用来限制我们这些程序员的.final可以用来修饰:变量.方法.类. 1)Java final variable final用来修饰变量时, ...

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

    在Java5中,final关键字是非常重要而事实上却经常被忽视其作为同步的作用.本质上讲,final能够做出如下保证:当你创建一个对象时,使用final关键字能够使得另一个线程不会访问到处于" ...

  8. 深入理解Java中的final关键字

    Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...

  9. 浅析Java中的final关键字

    浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来 ...

随机推荐

  1. SAS获取最后一条观测到指定宏

    data theLast; set sashelp.class nobs=last point=last; output; stop; run; data _null_; set theLast; c ...

  2. WebBrowser JS回调delphi的方法 (简单通用)

    上一部分讲了Delphi根据方法名调用方法,这一部分还有用到,接着上一章: [主要原理] 通过TEmbeddedWB控件的OnShowMessage事件捕获弹窗来实现,弹窗时定义方法名和参数,在捕获方 ...

  3. Linux RPS/RFS 实现原理浅析

    本文快速解析一下RPS/RFS的基本原理. RPS-Receive Packet Steering 下面这个就是RPS的原理:  其实就是一个软件对CPU负载重分发的机制.其使能的作用点在CPU开始处 ...

  4. 对KVM虚拟机进行cpu pinning配置的方法

    这篇文章主要介绍了对KVM虚拟机进行cpu pinning配置的方法,通过文中的各种virsh命令可进行操作,需要的朋友可以参考下 首先需求了解基本的信息 1 宿主机CPU特性查看 使用virsh n ...

  5. windows下maven的安装

    1.下载maven的zip包,下载地址:http://maven.apache.org/download.cgi 2.解压到F:\maven 3.修改环境变量: MAVEN_HOME:F:\maven ...

  6. 阿里Canal配置(编写中)

    首先在源mysql的.ini文件中进行配置 [client]default-character-set=utf8 [mysqld]basedir = E:/testCanal/mysql-5.7.17 ...

  7. FreeMarker内建函数

    内建函数 内建函数语法格式: 变量+?+函数名称 获取集合大小 我们通常要得到某个集合的大小,如下图: 我们使用size函数来实现,代码如下: 共  ${goodsList?size}  条记录 转换 ...

  8. iOS如何把所有页面状态栏的字体颜色都设置为白色

    第一步:在info.plist中添加一个字段:view controller -base status bar 设置为NO 第二步:在一个所有界面都继承的父类里添加: if (IOS7_OR_LATE ...

  9. git push异常

    git push异常:! [remote rejected] HEAD -> refs/for/master ([3149246] missing Change-Id in commit mes ...

  10. SimpleDateFormat线程不安全

    http://www.cnblogs.com/peida/archive/2013/05/31/3070790.html dateUtil替换