`
zhxy0234
  • 浏览: 5781 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

1.static与final

 
阅读更多
1.首先正确的认识一下final, 一个final修饰的叫"终态", 而这种终态很特殊, 它指的是:"当这个变量被赋值之后成为终态". 那么,当一个被赋值之后的final修饰变量, 将不可再被赋新值. (先理解)

2.而static表示静态变量, 说穿了,你需要知道JAVA如何为一个类创建内存空间--我们知道类有空间,类产生的实例(对象)有空间,方法有空间,变量有空间, 当static修饰时, 这个变量会在类分配内存时就被分配内存了, 所以你知道,你可以不用产生对象就使用静态变量.

3.
public class Test0
{
private static final String str1;
public Test0(String str)
{
str1=str;
System.out.println(str1);
}

public static void main(String[] args)
{
Test0 t=new Test0("hello world");
Test0 tt=new Test0("world hello");
}

}
这段代码的构造方法里的str1会报错,而去掉string定义时的static和final中的任何一个都可以通过?static和final为什么不能同时存在?
我们来看看, 被static修饰,又被final修饰,首先它是一个静态变量, 那么在类分配时就会分配内存, 实际上这个String就被初始化了,既然初始化了, 那么也就有值了, 而一个终态被赋值变量将不能再被赋值, 那么自然就报错了
4.static final 同时修饰的变量必须初始化,它其实是代表一个常量。
分享到:
评论

相关推荐

    final和static用法详解JAVA

    Java 中的 final 和 static 关键字详解 final 关键字是 Java 中的一种访问修饰符,用于修饰类、方法和变量,以确保它们不能被修改或继承。下面是 final 关键字的详细解释: 1. final 类 final 类不能被继承,也...

    static与final的异同

    在Java编程语言中,`static`和`final`都是关键字,它们用于定义不同的特性,但同时也有一些相似之处。下面我们将详细探讨这两个关键字的区别和用法。 首先,`static`关键字是用来声明类级别的变量或方法,这意味着...

    Java开发中static.this.super.final用法

    - **常量与不可变性**:`final`关键字可以用于声明常量(变量一旦赋值就不能改变)、不可变对象(如`final`类)和不可重写的方法(`final`方法)。在示例中,`System`类中的`out`字段被声明为`final`和`static`,这...

    java中final与static的用法

    在Java编程语言中,`final`与`static`是两个非常关键且常用的关键字,它们各自具有独特的功能和用途,可以极大地增强代码的稳定性和可维护性。下面将详细解析这两个关键字的用法及其在Java中的重要性。 ### 一、`...

    static、this、super、final的JAVA用法

    public static final int RED = 1; public static final int GREEN = 2; public static final int BLUE = 3; } static、this、super、final 是 Java 中四个非常重要的关键字,了解它们的用法是 Java 编程的基础...

    static and final.

    1. **配置文件读取**:某些配置参数在整个应用生命周期中保持不变,可以使用 `static final` 定义并初始化这些参数。 2. **数学常量**:如 π、e 等数学常量,可以通过 `static final` 定义并提供给整个应用使用。 ...

    JavaSE024static与final使用陷阱续..pdf

    总结一下,`final`关键字用于创建不可修改的变量,确保数据的不变性,而`static`关键字用于创建类级别的变量和方法,这些变量和方法与类的实例无关,而是与类本身关联。理解并恰当使用这两个关键字是编写健壮、可...

    static、final、abstract和interface使用总结

    1. **static(静态)** - **静态变量**:静态变量在内存中只存在一份,由所有类的实例共享。它们在类加载时初始化,并可以通过类名直接访问,无需创建对象。例如,`public static int COUNT = 0;`。 - **静态方法*...

    java中final和static的区别

    Java 中 final 和 static 的区别 final 关键字在 Java 中有多种用法,包括修饰变量、方法、类等。下面是 final 关键字的各种用法: 1. final 修饰变量:表示该变量一旦被初始化,程序无法修改变量的值,该变量变成...

    Java编程中static和final关键字的陷阱.pdf

    Java编程中static和final关键字的陷阱.pdf Java编程中static和final关键字的陷阱是Java开发中两个重要的关键字,但是它们的使用也存在一些陷阱,需要开发者注意掌握。 static关键字可以用于修饰属性、方法和类。...

    final关键字和static_用法

    #### 一、final的概述与用途 `final`关键字在Java中扮演着重要的角色,它通常被用来表示“不可变”的特性。`final`可以用来修饰类、方法以及变量,其核心目的是为了保护数据的安全性和不可变性。 #### 二、final...

    javafinal和static总结.docx

    Java 中的 final 和 static 关键字详解 Java 中的 final 和 static 关键字是两个重要的关键字,它们在 Java 编程中扮演着重要的角色。本文将详细介绍 final 和 static 关键字的使用方法和注意事项。 一、final ...

    netty-tcnative-2.0.27.Final-SNAPSHOT-linux-aarch_64.jar

    在使用netty做 openssl 中使用 netty-tcnative-boringssl-static 在 linux-x86_64/osx-x86_64/windows-x86_64 分别对cpu 不同平台支持,但是在鲲鹏arm 处理上缺没有相关支持,导致在arm64 服务器上,没法运行比如 ...

    资深互联网大佬的5000字吐血总结——Java面向对象三大修饰符之abstract、static、final

    static 可以修饰初始化代码块扩充内容三、final(最终的,最后的)1.final可以修饰变量2.final可以修饰方法3.final可以修饰类总结abstract、static、final可以修饰的内容abstract、static、final是否可以修饰构造...

    ssd教学辅导

    34. private static final int ENERGY_TO_EAT = 1; 35. 36. /** 37. * Energy gained when a full meal is eaten. 38. */ 39. private static final int ENERGY_IN_A_FULL_MEAL = 10; 40. 41. /** 42. * ...

    Static和Final修饰类属性变量及初始化

    1.static修饰一个属性字段,那么这个属性字段将成为类本身的资源,public修饰为共有的,可以在类的外部通过test.a来访问此属性;在类内部任何地方可以使用.如果被修饰为private私有,那么只能在类内部使用.

    Java关键字final、static使用总结

    ### Java关键字final、static使用总结 #### 一、final关键字详解与应用 在Java语言中,`final`关键字被广泛应用于各种场景,如定义不可变的变量、禁止类的继承等,具有重要的作用。 1. **final修饰变量** - `...

    Java中static、this、super、final用法简谈

    1. **static** `static`关键字用于声明类级别的成员,包括变量和方法。这意味着它们属于类本身,而不是类的实例。在Java程序启动时,静态成员在类加载时被初始化,并且所有的类实例共享这些静态成员。 - 静态方法...

    java中final关键字和static关键字详细用法

    1. `static`变量:这些变量被称为静态变量或类变量,它们是所有对象共享的,只有一份存储。在类加载时初始化,可以通过类名直接访问,无需创建对象。 2. `static`方法:静态方法与类关联,而不是类的实例。它们不能...

Global site tag (gtag.js) - Google Analytics