java static修饰方法_浅析Java中static修饰符
1、概述
static关键字的中文意思是静态的,该修饰符可以修饰字段、方法、内部类。使用该关键字修饰的内容,在面向对象中static修饰的内容是隶属于类,而不是直接隶属于对象的,所以static修饰的成员变量一般称作类成员变量,而static修饰的方法一般称作类方法。
2、static修饰符的特点
1)static修饰的成员(字段/方法),随着所在类的加载而加载。当JVM把字节码加载斤JVM的时候,static修饰的成员已经在内存中存在了
2)优先于对象的存在,对象是我们手动通过new关键字创建出来的。
3)satic修饰的成员被该类型的所有对象所共享。根据该类创建出来的任何对象,都可以访问static成员。 分析:表面上通过对象去访问static成员,其本质依然使用类名访问,和对象没有任何关系(通过反编译可以看到)。
4)直接使用类名访问static成员 ,因为static修饰的成员直接属于类,不属于对象,所以可以直接使用类名访问static成员。
3、类成员和实例成员的访问
1)类成员:使用static修饰的成员,直接属于类,可以通过类来访问static字段和static方法
2)实例成员:没有使用static修饰的成员,只属于对象,通过对象来访问非static字段和非static方法(对象其实可以访问类成员,但是底层依然使用类名访问的)
3)static方法中:只能调用static成员
4)非static方法:可以访问静态成员,也可以访问实例成员
4、什么时候定义成static的字段和方法
如果这个一个状态或行为属于整个事物(类),就直接使用static修饰,被所有对象所共享。 在开发中,往往把工具方法使用static修饰。如果不使用static修饰,则这些方法属于该类的对象,我们得先创建对象再调用方法,在开发中工具对象只需要一份即可,可能创建N个对象,此时我们往往把该类设计为单例的,但还是有点麻烦。所以,一般在开发中设计工具方法,为了调用简单,我们使用static修饰。
5、类成员的使用
1)利处:对对象的共享数据进行单独空间的存储,节省空间,没有必要每一个对象中都存储一份,可以直接被类名调用。
2)弊端:生命周期过长。
java static修饰方法_浅析Java中static修饰符相关推荐
- java枚举对象作用_浅析Java编程中枚举类型的定义与使用
定义枚举类型时本质上就是在定义一个类,只不过很多细节由编译器帮您补齐了,所以某些程度上,enum关键字的 作用就像是class或interface. 当您使用"enum"定义枚举类 ...
- java 线程组作用_浅析Java中线程组(ThreadGroup类)
一.概念 Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线 ...
- java 调用祖父方法_在Java中调用祖父母方法:您不能
java 调用祖父方法 在文章保护的重点中,我详细介绍了"受保护"如何扩展"包私有"访问. 我在那儿写道: 你能做的是 覆盖子类中的方法或 使用关键字super ...
- java 同步的方法_关于Java中的同步方法
我有一个关于Java中方法同步的问题. 考虑一个具有3个同步方法的类. class MyClass{ public synchronized void methodA(){ ... } public ...
- java序列化的方法_【Java常见序列化与反序列方法总结】
人和电脑在很多方面都是十分相似的,大脑可以看成电脑主机,五官/身体等表面器官就是显示器.鼠标等外设.这篇文章就是想把计算机跟人做类比YY一下序列化和反序列化的机制.用途. 如果你是初学者,心里肯定会问 ...
- java获取随机数方法_《Java语言程序设计》Java获取随机数方法
<Java语言程序设计>Java获取随机数方法 在Java中我们可以使用java.util.Random类来产生一个随机数发生器.它有两种形式的构造函数,分别是Random()和Rando ...
- java dll 调用方法_关于Java调用dll的方法 | 学步园
Java语言本身具有跨平台性,如果通过Java调用DLL的技术方便易用,使用Java开发前台界面可以更快速,也能带来跨平台性. Java调用C/C 写好的DLL库时,由于基本数据类型不同.使用字节 ...
- 学java的正确方法_学习Java编程 这10个技巧不容错过--中享思途
这是一个国外大神20多年的经验总结出来的-- "任何可能出错的事情,最后都会出错." 这就是人们为什么喜欢进行"防错性程序设计"的原因.偏执的习惯有时很有意义, ...
- java的equals方法_在Java中编写完美的equals方法
相对于C++,Java并没有重载操作符,所以对于非基本类型都需要使用equals方法比较相等性.Object提供了equals方法比较两个对象,但对于用户自定义类而言Object提供的版本仅仅比较两个 ...
最新文章
- 让程序主窗口不显示在任务栏中
- 如何加入家庭组计算机打印机,如何使用利用win7家庭组打印机
- 初识 angular js
- 栈相关经典题:每日温度
- Uncaught TypeError: Cannot redefine property: $router
- Leetcode::Subsets
- [leetcod] Clone Graph
- Android 应用开发(50)---GridLayout(网格布局)
- VISIO——word中插入visio图片 图片边缘空白裁剪
- Git可视化工具——SourceTree教程
- 腾讯(Tencent)2022实习笔试算法题
- java web景点规划导航
- dota英雄出装备大全
- U盘和移动硬盘不能安全删除问题及解决方案
- http协议如何获取请求参数
- 【考试总结贴】控制测量学
- 【杂谈】当你在凝视深渊的时候,深渊也正在凝视着你
- 使用TRA命令进行磁带备份的命令汇总(转)
- [益智]:空姐分配物品
- 修改global.func.php,DZ论坛核心代码分析-核心文件global.func.php篇