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修饰符相关推荐

  1. java枚举对象作用_浅析Java编程中枚举类型的定义与使用

    定义枚举类型时本质上就是在定义一个类,只不过很多细节由编译器帮您补齐了,所以某些程度上,enum关键字的 作用就像是class或interface. 当您使用"enum"定义枚举类 ...

  2. java 线程组作用_浅析Java中线程组(ThreadGroup类)

    一.概念 Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线 ...

  3. java 调用祖父方法_在Java中调用祖父母方法:您不能

    java 调用祖父方法 在文章保护的重点中,我详细介绍了"受保护"如何扩展"包私有"访问. 我在那儿写道: 你能做的是 覆盖子类中的方法或 使用关键字super ...

  4. java 同步的方法_关于Java中的同步方法

    我有一个关于Java中方法同步的问题. 考虑一个具有3个同步方法的类. class MyClass{ public synchronized void methodA(){ ... } public ...

  5. java序列化的方法_【Java常见序列化与反序列方法总结】

    人和电脑在很多方面都是十分相似的,大脑可以看成电脑主机,五官/身体等表面器官就是显示器.鼠标等外设.这篇文章就是想把计算机跟人做类比YY一下序列化和反序列化的机制.用途. 如果你是初学者,心里肯定会问 ...

  6. java获取随机数方法_《Java语言程序设计》Java获取随机数方法

    <Java语言程序设计>Java获取随机数方法 在Java中我们可以使用java.util.Random类来产生一个随机数发生器.它有两种形式的构造函数,分别是Random()和Rando ...

  7. java dll 调用方法_关于Java调用dll的方法 | 学步园

    Java语言本身具有跨平台性,如果通过Java调用DLL的技术方便易用,使用Java开发前台界面可以更快速,也能带来跨平台性. Java调用C/C   写好的DLL库时,由于基本数据类型不同.使用字节 ...

  8. 学java的正确方法_学习Java编程 这10个技巧不容错过--中享思途

    这是一个国外大神20多年的经验总结出来的-- "任何可能出错的事情,最后都会出错." 这就是人们为什么喜欢进行"防错性程序设计"的原因.偏执的习惯有时很有意义, ...

  9. java的equals方法_在Java中编写完美的equals方法

    相对于C++,Java并没有重载操作符,所以对于非基本类型都需要使用equals方法比较相等性.Object提供了equals方法比较两个对象,但对于用户自定义类而言Object提供的版本仅仅比较两个 ...

最新文章

  1. 让程序主窗口不显示在任务栏中
  2. 如何加入家庭组计算机打印机,如何使用利用win7家庭组打印机
  3. 初识 angular js
  4. 栈相关经典题:每日温度
  5. Uncaught TypeError: Cannot redefine property: $router
  6. Leetcode::Subsets
  7. [leetcod] Clone Graph
  8. Android 应用开发(50)---GridLayout(网格布局)
  9. VISIO——word中插入visio图片 图片边缘空白裁剪
  10. Git可视化工具——SourceTree教程
  11. 腾讯(Tencent)2022实习笔试算法题
  12. java web景点规划导航
  13. dota英雄出装备大全
  14. U盘和移动硬盘不能安全删除问题及解决方案
  15. http协议如何获取请求参数
  16. 【考试总结贴】控制测量学
  17. 【杂谈】当你在凝视深渊的时候,深渊也正在凝视着你
  18. 使用TRA命令进行磁带备份的命令汇总(转)
  19. [益智]:空姐分配物品
  20. 修改global.func.php,DZ论坛核心代码分析-核心文件global.func.php篇

热门文章

  1. GO语言实现RSA 加密和解密的实现
  2. 不同语言编译的程序入口总结
  3. VS2015一新建项目就出现未将对象引用设置到对象的实例怎么办?
  4. MySQL删除存储过程(DROP PROCEDURE)
  5. 7、 MySQL锁机制:数据库核心技术之一
  6. 1.2 Collection接口
  7. Keepalived的LVS配置
  8. Java跨平台实现原理及JVM垃圾回收、内存管理实战
  9. Java:由浅入深揭开 AOP 实现原理
  10. 蓝桥杯java第六届决赛第四题--穿越雷区