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. MPEG-1视屏压缩标准

    MPEG-1标准包括5个部分 图像的四种类型: I帧: B帧:双向帧间预测 P帧: D帧:只含有16分量,为快放设计 压缩前需要帧重排 视屏码流结构 I帧压缩 p帧压缩 b帧压缩 其他压缩算法 MPE ...

  2. 网络基础和python(二)

    一,五层协议 应用层    端口 传输层   tcp\udp 网络层   ipv4\6 数据链路层  ethernet 物理层    mac 二:什么是变量? 变量:核心在于变和量儿字,变->变 ...

  3. tp5 post接到的json被转义怎么解决???

    $data =input('post.');//用户唯一标识$goods = $data['goods']; $shopcuxiao=$data['shopcuxiao']; $goods=htmls ...

  4. java8实战:filter的简单使用

    <JAVA8实战>中的例子 要实现的功能:通过Apple的color或weight属性,对List<Apple>进行筛选. 1.首先定义com.owl.entity.Apple ...

  5. python学习之----BuildSoup和正则表达式

    在抓取网页的时候,BeautifulSoup 和正则表达式总是配合使用的.其实,大多数支 持字符串参数的函数(比如,find(id="aTagIdHere"))都可以用正则表达式实 ...

  6. 0. 前言【从零开始学Spring Boot】

    [视频&交流平台] àSpringBoot视频 http://study.163.com/course/introduction.htm?courseId=1004329008&utm ...

  7. 怎么分辨是eclipse还是 android studio开发的

    eclipse开发的一般都会带.classpath文件.Android studio开发的一般都会有.gradle文件夹和build.gradle文件    

  8. js 数组对象的操作方法

    在jquery中处理JSON数组的情况中遍历用到的比较多,但是用添加移除这些好像不是太多. 今天试过json[i].remove(),json.remove(i)之后都不行,看网页的DOM对象中好像J ...

  9. 框架: require.js

    require.js http://www.bootcdn.cn/require.js/ HTML: <div class="container" data-page=&qu ...

  10. a.每个 HTML 文件里开头都有个<!DOCTYPE>

    <!DOCTYPE> 位于文档中最前面的位置,告诉浏览器以哪个HTML版本进行解析. 在 HTML5 中只有一种:<!DOCTYPE html> .