文档章节

static final域和final域的区别

 恒者
发布于 2013/12/30 19:02
字数 243
阅读 43
收藏 0
package staticfinaldemo;
import java.util.Random;
public class StaticFinalDemo {
    private static Random random = new Random(20);
    private static final int i1 = random.nextInt(10);
    private final int i2 = random.nextInt(10);
    private String id;
    public StaticFinalDemo(String id){
        this.id = id;
    }
    public String toString(){
        return id + ": i1 = " + i1 + " i2 = " + i2;
    }
    public static void main(String[] args){
        System.out.println("创建第一个StaticFinalDemo:");
        StaticFinalDemo staticFinalDemo = new StaticFinalDemo("no1");
        System.out.println(staticFinalDemo);
        System.out.println("创建第二个StaticFinalDemo:");
        StaticFinalDemo staticFinalDemo2 = new StaticFinalDemo("no2");
        System.out.println(staticFinalDemo);
        System.out.println(staticFinalDemo2);
    }
}

运行结果:

创建第一个StaticFinalDemo:
no1: i1 = 3 i2 = 6
创建第二个StaticFinalDemo:
no1: i1 = 3 i2 = 6
no2: i1 = 3 i2 = 1

由此可知:

定义为final,说明它是一个常量;

定义为static,说明它是一个属于类的常量(使用final修饰),为该类所有对象共享,且在类装载时初始化,而不是每次创建新对象时都初始化。

i1和i2是运行时常量,因为是运行产生的随机数来初始化它们的。

而编译时常量一般是基本数据类型,且常量定义时要赋初值。



© 著作权归作者所有

共有 人打赏支持
粉丝 10
博文 25
码字总数 38957
作品 0
武汉
私信 提问
Java中final与static的使用

Final关键字 根据使用环境不同,final的含义会有细微的区别,但通常是指无法改变的内容。final关键字可以修饰变量、方法和类。 Final变量 final数据是用来向编译器告知变量是恒定不变的。对使...

徐涛
2013/06/26
0
0
深入理解 Java final 变量的内存模型

(点击上方公众号,可快速关注) 来源:任春晓 对于 final 域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个 final 域的写,与随后把这个构造对象的引用赋值给一个变量,这两个...

ImportNew
2018/11/09
0
0
static和final的区别

1.final定义的变量可以看做一个常量,不能被改变;final定义的方法不能被覆盖;final定义的类不能被继承。final static 就是再加上static的特性就可以了 2.static 是在内存中分配一块区域,供...

Grovvy
2012/04/15
0
0
java的接口、类、属性、方法各有哪些修饰符

参考博客:http://blog.csdn.net/cao_tao199612/article/details/7458245 1、 接口的修饰符只有:public 2、 类的修饰符分为:可访问控制符和非访问控制符两种。 可访问控制符是:公共类修饰符...

yong230
2014/08/04
0
0
《JAVA编程思想》学习笔记——第七章 复用类

复用类的主要方式有两种:组合,继承 组合 例: class A {} class B {A a;} 继承 继承是所有OOP语言和Java语言不可缺少的组成部分。当创建一个类时,总是在继承,因此,除非已明确指出要从其...

lixiaocheng18
2017/02/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
17分钟前
1
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
2
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
2
0
深入理解JVM—JVM内存模型

深入理解JVM—JVM内存模型 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存...

onedotdot
昨天
2
0
MVC、MVCS、MVVM、MVP、VIPER等这么多架构模式哪一个好呢?

在项目开启阶段,其中一个很重要的环节就是选架构。 那么面对目前已知的这么多架构模式我们该怎么选择呢?这确实是个很让人头疼的问题! 下面我就在这里梳理一下目前常见的一些架构模式。 先...

Java干货分享
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部