`
donald3003a
  • 浏览: 65793 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论
  • 淼淼E馒头: 这举列有点不恰当啊。。电影人和不同类型的电影。是两个不同概念 ...
    合成模式

final static 之间的区别

 
阅读更多
虽然从入门的时候就知道
final字段是不可能变字段
static字段是静态字段所有实例都共享这一个字段的值
但是有一个事情一直没搞清,就是既然 final的值不可变,那所有的实例对final字段的获取都是一样,那为什么还有必要用static final 这样重复的关键字
直到后面看见以下定义
public final double d = Math.random();

这样的定义类在加载的时候会初始化d字段,但是由于使用随机数,我们可以很清楚的看见生成的2个实现中每一个d的值都不一样。
所以这时候使用
public final static double fs = Math.random();

就可以使所有实现中fs值相同。
分享到:
评论

相关推荐

    详解static 和 final 和 static final区别

    Static、Final 和 Static Final 是 Java 中三个重要的关键字,它们之间的区别和应用场景是开发者需要了解和掌握的。 首先,让我们来了解 Static 关键字。Static 是 Java 中的静态修饰符,可以修饰变量、程序块、...

    final关键字的使用

    `final`与`static`是两个经常被提及的关键字,它们之间的区别在于: - **Static**:主要用于声明类成员(变量或方法),表明这些成员属于类本身而非实例。这意味着无论创建了多少个类的实例,这些静态成员都只有一...

    final用法详解

    - `final constants`和`final variables`之间存在细微差别,主要体现在初始化时机和使用场景上。 - `final constants`通常是在类定义时就已经初始化好的值,而`final variables`则可以在创建对象时或对象创建后进行...

    面向对象与Java实现(多态、static、fina

    面向对象与Java实现:深入解析多态、static与final 面向对象编程(OOP)是一种流行的编程范式,它将现实世界中的实体抽象成类和对象,通过封装、继承和多态三大特性,使得代码更加模块化、易于维护和扩展。Java作为...

    static_static_

    在Java中,如果一个类被声明为`static`(实际上是`final static`),则这个类称为常量类,只能包含静态成员,不允许实例化,常用于封装常量。 综上所述,`static` 关键字在编程中起着至关重要的作用,它能够帮助...

    java中static作用详解

    - `static final`也可用于修饰方法,表示该方法是最终的,不能被子类重写。这种组合很少见,因为通常常量和方法的重写是相互排斥的概念。 理解`static`的关键在于,它是关于类级别的共享资源,而不是实例级别的。...

    Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口

    - `final`修饰变量时,如果是类级别的常量,通常遵循全大写命名约定,如`public static final String MY_CONSTANT = "value"`。 2. **抽象类(Abstract Class)** - 抽象类是一种包含抽象方法的类,抽象方法只有...

    PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解

    - 静态成员变量:使用`static`关键字声明的成员变量属于类本身而不是类的实例,这意味着它们的值在所有实例之间共享,且无需通过对象来访问,可以直接使用`ClassName::variable`的方式调用。 - 静态方法:同样,`...

    qfedu多态 Object,final

    5. **定义常量**:在Java中,通常使用`public static final`修饰符定义常量。这些常量应遵循一定的命名规则,如全大写字母。 ```java public class Constants { public static final int MAX_VALUE = 100; } ``...

    利用jenaAPI查询家族本体.pdf

    private final static String DAUGHTER = "daughter"; private final static String SON = "son"; private final static String SISTER = "sister"; private final static String BROTHER = "brother"; // ...

    深入理解Java final变量的内存模型

     在构造函数内对一个 final 域的写,与随后把这个构造对象的引用赋值给一个变量,这两个操作之间不能重排序  初次读一个包含 final 域的对象的引用,与随后初次读这个 final 域,这两个操作之间不能重排序  举...

    利用jenaAPI查询家族本体 (2).docx

    private final static String DAUGHTER = "daughter"; private final static String SON = "son"; private final static String SISTER = "sister"; private final static String BROTHER = "brother"; private...

    java-----static内存分析

    - **共享数据**:当多个对象之间需要共享某些数据时,可以使用`static`变量来实现。 - **工具类**:用于封装一系列不依赖于特定对象状态的方法,通常这些方法会被标记为`static`。 - **常量定义**:`static final`...

    day11-面向对象-static&继承

    `static`关键字用于声明类变量,这些变量在类的所有实例之间共享。这意味着,不论创建多少个对象,静态变量只有一份拷贝,存储在方法区中。在上述例子中,`Student1`类的`schoolName`被声明为静态,因此所有`Student...

    最常用的分布式ID解决方案.docx

    private final static long TIMESTMP_LEFT = DATACENTER_LEFT + DATACENTER_BIT; // 时间戳向左的位移 private long datacenterId; // 数据中心 private long machineId; // 机器标识 private long sequence = ...

    学习Java时自己整理的知识点5

    #### 知识点一:Abstract与Final关键字的区别 1. **Abstract关键字**: - `abstract` 关键字用于定义抽象类或抽象方法。 - 抽象类不能被实例化,只能作为其他类的基类来使用。 - 抽象方法没有具体的实现代码,...

    Java中static变量作用和用法详解

    当`static`和`final`一起使用时,它们创建的是类级别的常量。这样的变量一旦赋值后就不能改变,且可以在类的任何地方(包括静态上下文)直接访问。例如: ```java public class Constants { public static ...

    面向对象修饰符public private protest super final abstract理解

    `protected`的访问级别介于`public`和`private`之间,它允许同一包中的类或子类访问被`protected`修饰的成员。例如: ```java class A { protected int x = 123; public int getX() { return x; } } class B ...

    让你彻底了解JDBC的原理

    public final static String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver"; public final static String URL = "jdbc:odbc:news"; ``` - **第二类型(部分Java部分本地驱动)**:这类驱动通常由厂商提供,可以在...

    Java面向对象编程中final关键字的使用方法详解

    内部类与`final`关键字之间有特殊的交互。当在方法内部定义匿名内部类时,它可以访问方法中的`final`局部变量。这是因为内部类可能在外部方法执行完毕后仍然存活,因此需要在内部类中保留外部方法中`final`变量的值...

Global site tag (gtag.js) - Google Analytics