首页 > 其他分享 >The diffrence of static、final and static final

The diffrence of static、final and static final

时间:2023-10-21 12:04:04浏览次数:30  
标签:对象 句柄 static diffrence 修饰 final 属性

static:

static可以修饰:属性,方法,代码段,内部类(静态内部类或嵌套内部类)

static修饰的属性的初始化在编译期(类加载的时候),初始化后能改变。

static修饰的属性强调它们只有一个,所修饰的对象共享同一个static变量值。

static修饰的属性、方法、代码段跟该类的具体对象无关,只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们,不创建对象也能调用static修饰的属性、方法等。

static和“this、super”势不两立,static跟具体对象无关,而this、super正好跟具体对象有关。

static不可以修饰局部变量。

final:

final可以修饰:属性,方法,类,局部变量(方法中的变量)

final修饰的属性的初始化可以在编译期,也可以在运行期,初始化后不能被改变。

final修饰的属性跟具体对象有关,在运行期初始化的final属性,不同对象可以有不同的值。

final修饰的属性表明是一个常数(创建后不能被修改)。

final修饰的方法表示该方法在子类中不能被重写,但可以被继承,不能用于修饰构造方法。

final修饰的表示该类不能被继承。

对于基本类型数据,final会将值变为一个常数(创建后不能被修改);但是对于对象句柄(亦可称作引用或者指针),final会将句柄变为一个常数(进行声明时,必须将句柄初始化到一个具体的对象。而且不能再将句柄指向另一个对象。但是,对象的本身是可以修改的。这一限制也适用于数组,数组也属于对象,数组本身也是可以修改的。方法参数中的final句柄,意味着在该方法内部,我们不能改变参数句柄指向的实际东西,也就是说在方法内部不能给形参句柄再另外赋值)。

static final一起用:

static final用来修饰成员变量和成员方法。

static修饰的属性强调它们只有一个,final修饰的属性表明是一个常数(创建后不能被修改)。

static final修饰的属性表示一旦给值,就不可修改,并且可以通过类名直接访问。

static final也可以修饰方法,表示该方法不能重写,可以在不new对象的情况下通过类名直接调用。

标签:对象,句柄,static,diffrence,修饰,final,属性
From: https://blog.51cto.com/u_1034744/7965557

相关文章

  • Codeforces Round 902 (Div. 2, based on COMPFEST 15 - Final Round)
    \(D.EffectsofAntiPimples\)对每个数字能到达的所有位置先预处理最大值,那么就代表选择这个数字之后真实的贡献,那么对这样的预处理值,最小值显然只有一种做法,为\(2^0\),第二小的值应该可以与最小值一起选择,所以答案为\(2^1\),以此类推之后,每个值乘上对应的2的幂次之后求和即......
  • python异常处理else和finally的区别
    Python3错误和异常|菜鸟教程(runoob.com)try/except...elsetry/except 语句还有一个可选的 else 子句,如果使用这个子句,那么必须放在所有的except子句之后。else子句将在try子句没有发生任何异常的时候执行。以下实例在try语句中判断文件是否可以打开,如果打开文......
  • jfinal框架下,连接国产达梦数据库,抛出SocketTimeoutException异常
    公司为政府开发项目,主框架选择springboot,orm框架使用jfinal。数据库为国产达梦数据库写统计类服务时,通常sql运行时间会比较久,超过10s的sql一定会报SocketTimeoutException异常 尝试使用原生jdbc创建连接,运行sql毫无问题。遂检查连接池设置。jfinal使用druid连接池网上搜索......
  • JOI Final 2021
    loj3469.「JOI2021Final」雪球发现\(i\)的答案只和相邻的两个数有关,且两边是独立的,不妨假设\(a_i=0\),\(a_{i+1}=d\)。那么假设第\(j\)次操作\(a_{i+1}\)到达的最小位置是\(d-mn_j\),\(a_i\)到达最大位置是\(mx_j\),那么第\(j\)次操作\(i\)拓宽的区间是\((mx_{j-1......
  • IPV6 STATIC
    命令分析IPV6ROUTE-STATIC目的地址子网掩码接口地址下一跳地址核心配置R1:ipv6route-static2001:8::642001:10::2R2:ipv6route-static2001:9::642001:10::1 全部配置R1<r1>displaycurrent-configuration [V200R003C00]#sysnamer1#snmp-agentlocal-enginei......
  • Program does not contain a static 'Main' method suitable for an entry point
    http://www.kangry.net/blog/?article_id=391&type=article修改办法,对着项目右键-》属性-》application-》outputtype设为ClassLibrary即可。  ......
  • Go - Serving Static Files
    Problem: Youwanttoservestaticfilessuchasimages,CSS,andJavaScriptfiles.Solution: Usethehttp.FileServerfunctiontoservestaticfiles. funcmain(){dir:=http.Dir("./static")fs:=http.FileS......
  • Java语言用static修饰符进行静态导入的作用和语法
    大力:“Java语言引入了静态导入语法(importstatic),有什么作用?”卫琴:“能够在需要经常访问同一个类的方法或成员变量的场合,简化程序代码。”static修饰符静态导入可以简化程序代码下面是一个未使用静态导入的例子:classTestStatic{publicstaticvoidmain(String[]args){S......
  • C语言数据类型占用字节大小+rand_mode/randomize_mode/static constraint+I2C和SPI的
    C语言数据类型占用字节大小https://blog.csdn.net/sinan1995/article/details/79577106对于整形,最大8字节,超出8字节的计算,要么用库,要么不用。64位编译器:char/unsignedchar:1字节char*:8字节shortint:2字节int/unsignedint:4字节longint:8字节float:4字节double:8字节lon......
  • javaSE基础06(final,常用类,基本数据类型的封装)
    Final关键字(用法:类不想被人继承 ):修饰类:最终的类,不可以被继承 比如String;修饰方法:方法不可以被重写;修饰属性:不可以被重新赋值,但是可以改变变量里的内容;publicclassStudent{Stringname;publicstaticvoidmain(String[]args){finalS......