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类,那么今天我们就来 ...
随机推荐
- struts Action设置数据的方法
一.属性驱动 注:示例中的实体类没有相应展示出来 1.基本数据类型的属性 基本数据类型的属性指每一个前台提交的属性在后台对应的Action类中都有相应的属性与之相对应 例如:前台表单: <for ...
- centos 7怎么通过图形界面来配置静态ip
除了通过修改配置文件的方法来配置静态ip,我们还可以通过图形界面来配置,这样做其实更加方便一点 先进入设置页面 选择网络 我这里是通过有线上网的,我们之间修改配置就可以了 选择ipv4,和manual ...
- ES6的学习记录
1.let命令: 基本用法: ES6新增了let命令,用来声明变量.用法类似于var,但是所声明的变量只在let命令所在的代码块内有效. { let a = 10; var b = 1; } cons ...
- Error: Can't find Python executable "G:\Python27"
错误如题,node-gyp官网介绍不够详细,应设置python.exe的具体绝对路径,如下所示: npm config set python G:\Python27\python.exe
- C# WPF DevExpress 图表控件之柱状图
说明:DevExpress版本是17.1.VS是2015. XAML: <!--#region 图表控件--> <dxc:ChartControl x:Name="char ...
- WPF简单实用方法(持续更新)
1:点击退出提示框 MessageBoxResult result = MessageBox.Show("你真的要退出吗?", "", MessageBoxBu ...
- Fiddler设置抓取https请求
环境准备 1.安装最新版本的Fiddler程序 官网地址:https://www.telerik.com/fiddler 本文写的时候,fiddler最新的版本为5.0 2.安装fiddler证书生成 ...
- python调用c的方法
虽然python是万能的,但是对于某些特殊功能,需要c语言才能完成.这样,就需要用python来调用c的代码了 具体流程: c编写相关函数 ,编译成库 然后在python中加载这些库,指定调用函数. ...
- <Linux> Ubuntu error: ssh: connect to host master port 22: No route to host lost connection
iptables当找到匹配的规则时,就会执行相应的动作,而不会向下继续匹配.因为ssh端口开放的规则在all规则之后,所以永远都不会匹配到,也就是ssh永远被禁止. root下执行:iptables ...
- 搭建eclipse开发环境
eclipse-jee配置 基本配置: 快捷查找:window->perferences->搜索框搜索 utf8: window->perferences->general-& ...