java final .static修饰符

摘要:
静态静态修饰符(使用静态修饰符修改的成员变量、常量和成员方法变为静态变量、常数和方法,JVM可以根据类名在运行时数据区域的方法区域中找到它们)静态变量对于静态变量,静态变量的内存分配在加载类的过程中完成。静态变量可以由类的所有实例共享。如果类的所有实例都具有相同的常量属性,则为2。静态方法可以在没有它们所属类的任何实例的情况下调用。
  • static静态修饰符(使用static修饰符修饰的成员变量、常量、和成员方法成为静态变量、常量和方法,他们统称为静态成员,归整个类所有,不依赖于类的特定实例,被类的所有实例共享,只要这个类被加载,JVM就可以根据类名在运行时数据区的方法区找到他们)
  1. 静态变量

对于静态变量,运行时,JVM只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配。在类的内部,可以在任何方法内直接访问静态变量;在其他类中,可以通过类名访问该类中的静态变量。

静态变量可以被类的所有实例共享,因此静态变量可以作为实例之间的共享数据,增加实例之间的交互性。

如果类中所有实例都有一个相同的常量属性,则可以把这个属性定义为静态变量。例如:

static double PI=3.1415;

     2.静态方法

静态方法不需要通过它所属的类的任何实例就可以被调用,因此在静态方法中不能使用this关键字,也不能直接访问所属类的实例变量和实例方法,但是可以直接访问所属类的静态变量和静态方法,另,和this一样,super也与类的特定实例有关,所以在静态方法中也不能使用。

  •  final修饰符(有无法改变或终态的含义,他可以修饰非抽象类、非抽象类成员方法和变量)

  1.final类

将类声明为final,即表示该类是无法呗任何其他类继承的,没有子类。final类中的方法默认是final方法。

  2.final方法

将方法声明为final,表明该方法不需要在进行扩展,并且也不允许任何从此类继承的类来覆写这个方法,但可以被继承。在声明类中,一个final方法只被实现一次。

  3.final变量

用fina修饰的成员变量表示常量,值一旦给定就无法改变。

  4.final参数

当方法参数为final类型时,则只可以获取该参数的值,而无法对其进行改变。

  • this关键字

  可用于任何实例方法中,指向当前对象,也可指向对其调用当前方法的对象或在需要当前类类型的对象引用时使用;当一个类的属性(成员变量)名与访问改属性的方法参数名相同时,则需要使用this关键字来访问类中的属性,已区分类的属性和方法中的参数。

  补充: 

        类方法:也叫静态方法   用static修饰  它可以直接用类名调用  也可以通过对象调用;而且一个类中的类方法只能调用该类中的其它类方法和类变量,不能调用实例方法和实例变量

      实例方法:也就是不用static修饰的方法  它只能通过对象调用;  而且一个类中的实例方法既可以调用该类中的其他类方法和类变量,也可以调用实例方法和实例变量

免责声明:文章转载自《java final .static修饰符》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SQL Server 递归Linux服务器性能查看分析调优下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

gdb调试命令的使用及总结

gdb调试命令的使用及总结 gdb是一个在UNIX环境下的命令行调试工具。如果需要使用gdb调试程序,请在gcc时加上-g选项。下面的命令部分是简化版,比如使用l代替list等等。 1.基本命令 命令 描述 backtrace(或bt) 查看各级函数调用及参数 finish 连续运行到当前函数返回为止,然后停下来等待命令 fram...

分布式系统互斥性与幂等性问题的分析与解决

随着互联网信息技术的飞速发展,数据量不断增大,业务逻辑也日趋复杂,对系统的高并发访问、海量数据处理的场景也越来越多。如何用较低成本实现系统的高可用、易伸缩、可扩展等目标就显得越发重要。 为了解决这一系列问题,系统架构也在不断演进。传统的集中式系统已经逐渐无法满足要求,分布式系统被使用在更多的场景中。 分布式系统由独立的服务器通过网络松散耦合组成。在这个系统...

JAVA中GC时finalize()方法是不是一定会被执行?

在回答上面问题之前,我们一定要了解JVM在进行垃圾回收时的机制,首先: 一、可达性算法  要知道对象什么时候死亡,我们需要先知道JVM的GC是如何判断对象是可以回收的。JAVA是通过可达性算法来来判断对象是否存活的。这个算法的基本思路就是通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到G...

httprunner3.x 测试用例teststeps-RunRequest

测试用例另一个重要部分——teststeps 一、测试用例分层模型 一个testcase里(就是一个pytest格式的Python文件)可以有一个或者多个测试步骤,就是teststeps[]列表里的Step。 每一个Step可以类比成pytest框架下的def test_xxx()的用例函数,在Step里通常都会要请求API完成测试,也可以调用其他测试用例...

node rpc 使用

什么是rpc RPC(Remote Procedure Call)远程过程调用,简单的理解是一个节点请求另一个节点提供的服务 本地过程调用:如果需要将本地student对象的age+1,可以实现一个addAge()方法,将student对象传入,对年龄进行更新之后返回即可,本地方法调用的函数体通过函数指针来指定。 远程过程调用:上述操作的过程中,如果ad...

游戏组件——总结

总结 你的小游戏引擎现在有了三个新命名空间,也有许多辅助类可以用在未来的项目中。新的TextureFont 类在下面几章尤其有用。它不仅仅在显示诸如记分板这样的游戏数据上有用,也在单元测试中被使用;为了告诉用户所有可用的热键,在单元测试中显示帮助文本非常有用;万一你遇到问题,显示测试数据或者Debug数据尤其有用。例如,一个camera类的单元测试能输...