7.final关键字.md
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的更多相关文章
- 018 final 关键字的用途
final关键字的含义 final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初 ...
- PHP的final关键字、static关键字、const关键字
在PHP5中新增加了final关键字,它可以加载类或类中方法前.但不能使用final标识成员属性,虽然final有常量的意思,但在php中定义常量是使用define()函数来完成的. final关键字 ...
- 浅析Java中的final关键字(转载)
自http://www.cnblogs.com/dolphin0520/p/3736238.html转载 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括 ...
- final关键字(final是最终的)
final关键字(final是最终的) 1.final修饰特点 a.修饰类,类不能被继承 b.修饰变量,变量就变成了常量, 修饰基本数据类:final int num = 10; 修饰引用数据类型变量 ...
- java中对final关键字的理解以及使用场景
谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.
- 关于Java中的final关键字
Java中的final关键字是用来限制用户行为的,说白了,就是用来限制我们这些程序员的.final可以用来修饰:变量.方法.类. 1)Java final variable final用来修饰变量时, ...
- 关于java中final关键字与线程安全性
在Java5中,final关键字是非常重要而事实上却经常被忽视其作为同步的作用.本质上讲,final能够做出如下保证:当你创建一个对象时,使用final关键字能够使得另一个线程不会访问到处于" ...
- 深入理解Java中的final关键字
Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...
- 浅析Java中的final关键字
浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来 ...
随机推荐
- make install 时指定安装路径
The make install target dir is representationed by var : DESTDIR, if we set this var to the locati ...
- CS229 6.7 Neurons Networks whitening
PCA的过程结束后,还有一个与之相关的预处理步骤,白化(whitening) 对于输入数据之间有很强的相关性,所以用于训练数据是有很大冗余的,白化的作用就是降低输入数据的冗余,通过白化可以达到(1)降 ...
- RecyclerView.Adapter封装,最简单实用的BaseRecyclerViewAdapter;只需重写一个方法,设置数据链式调用;
之前对ListView的BaseAdapter进行过封装,只需重写一个getView方法: 现在慢慢的RecyclerView成为主流,下面是RecyclerView.Adapter的封装: Base ...
- Web of Science API
Web of Science API是通过Web Service获取Web of Science在线数据的应用程序接口,供各种编程语言调用.简单说,就是你能根据API实时.动态得到网页版Web of ...
- Python列表生成式和生成器
[1]列表生成器:列表生成式就是一个用来生成列表的特定语法形式的表达式. 1.基础语句结构:[exp for iter_var in iterable例如:a=[f(x) for x in range ...
- vue 整合element-ui
本文主要介绍如何在vue框架中结合elementUI. 本文主要参考: http://element-cn.eleme.io/#/zh-CN/component/quickstart 1.阅读本文 ...
- vue项目安装sass/scss
vue 添加scss 安装好之后使用: 注意scss和sass的语法区别,scss是用传统花括号,sass是缩进控制,看个人习惯选择语言 sass语法看这里==>sass基本语法 vue项目编译 ...
- 获取cookie后,使用cookie进行接下来的自动化操作
System.setProperty("javax.net.ssl.trustStore", certPath); public void uploadComponent() th ...
- 压缩校验合并js之grunt搭建
1.在说grunt先认识几个grunt配置中的几个单词,concat(合并文件),uglify(压缩文件),jshint(检测代码规范),watch(实时监听修改的文件) 2.grunt是基于node ...
- LeetCode 6. ZigZag Conversion & 字符串
ZigZag Conversion 看了三遍题目才懂,都有点怀疑自己是不是够聪明... 就是排成这个样子啦,然后从左往右逐行读取返回. 这题看起来很简单,做起来,应该也很简单. 通过位置计算行数: P ...