作者:嗑嗑磕嗑瓜子的猫

blog.csdn.net/ju_362204801/article/details/90738966

思考:大家有没有想过一个问题,静态它为什么叫静态?因为书上或者别的文章里这么写的都这么叫的?所以也跟着这么叫?????

1、举例分析理解静态

那今天咱们就分析分析,搞定它!

为了解决上边的问题,咱们再抛出一个问题:有静肯定就有动啊,那这个“静”是相对于谁来说的?

要讲明白这个,首先需要知道Java中 类和对象之间的关系

类是对某一类具有共同特征的事物的抽象,对象是根据类产生出的具体实例。

请注意:这里说的共同特征是指具有共同的属性(字段)和共同的行为(方法),绝对不是指这些事物的数据都相同

举个例子:张三和李四都属于学生。这里的张三、李四就是具体的实例对象;学生就是一个抽象出来的具有共同特性的事物,学生这类事物都有都有班级、姓名、年龄、性别等属性,所以学生是个类。

但是张三这个具体的实例对象,他的班级是1班,姓名是张三,年龄是18岁,性别是男;

李四这个具体的实例对象,她的班级是2班,姓名是李四,年龄是18岁,性别是女。

这里的1班2班,18岁,男,女都是具体对象的具体数据,这些数据是随着张三、李四等这些不同实例对象的变化而变化的,是随着对象存储的,这就是上边说的相对于静来说的那个动

那什么是静呢?说完了动,静就很简单了,静就是不随着对象的变化而变化,是这类事物共有的数据,注意标红的几个字,也就是说这些静的数据的是随着类存储的,不是随着对象变得

所以静态变量又称之为“类变量”,非静态的变量又称之为“实例变量”

继续上边的例子,学生类再加个字段国家,假设我们只讨论中国范围内,那么国家这个字段就可以定义成静态的,因为张三、李四已以及他所有的学生对象,他们国家都是China,"China"这个值学生类的所有对象共有的

静态的就是类共有的。静就是大家(类)都有的共有的,是相对于随着对象变化而变化的“动”而言的

呜啦啦的说了那么多是为了帮助大家更容易的去理解。

总之简单粗暴的一句话:静态的是随着类的,非静态是随着对象的

那具体什么时候可以使用静态呢?

2、什么时候可以使用静态?

因为静态修饰的内容有成员变量和成员方法,所以回答这个问题得从两方面入手

什么时候可以定义静态变量?

当类中出现所有对象都共有的数据时,该字段就可以定义成静态的。比如刚才说的学生类里的国家这个字段就可以定义成静态的

什么时候可以定义静态方法?

当方法内部没有使用到非静态数据(对象的特有数据)时,那么该方法就可以定义成静态的

大家平常见到的工具类 XxxUtils就很符合上边的场景,所以大家见到的工具类基本上都是静态的,不用new对象,直接XxxUtils.xxx()调用

3、静态的其他内容理解

理解了上述内容后,下边的内容就不难理解了

静态:static关键字

static关键字的用法:它是一个修饰符,用于修饰成员(成员变量,成员方法)

静态的特点:

1、随着类的加载而加载(就是说这个类一被加载进内存,静态的东西就随着加载进去了, 这时候对象还不存在呢)

2、静态先于对象存在

3、被所有的对象共享

4、可以直接被类名调用,也可以被对象调用

静态使用的注意事项:

1、静态方法只能访问静态成员(属性和方法),不能访问非静态成员。因为静态在的时候非静态的还没在呢

2、非静态方法可以访问静态成员,也可以访问非静态成员

3、因为静态先于对象的存在而存在,所以静态方法中不可以出现this、super关键字。

静态的利弊:

1、利:对于所有对象都共有的数据,没必要每个对象中都存在一份,可以使用静态,节省空间;可以不new对象,直接用类名调用

2、弊:因为静态是随着类存在的,所以生命周期过长;访问出现局限性,只能访问静态

静态和非静态的数据在内存中的存储也有所不同,下篇会接着讲一下它们在内存中是怎么存的,以及实例化一个对象具体都做了些啥

以上就是本人对java中静态的一些理解和总结,若有不对的地方,欢迎留言指出,一起学习进步

END

推荐好文

强大,10k+点赞的 SpringBoot 后台管理系统竟然出了详细教程!

为什么MySQL不推荐使用uuid或者雪花id作为主键?

为什么建议大家使用 Linux 开发?爽(外加七个感叹号)

IntelliJ IDEA 15款 神级超级牛逼插件推荐(自用,真的超级牛逼)

炫酷,SpringBoot+Echarts实现用户访问地图可视化(附源码)

记一次由Redis分布式锁造成的重大事故,避免以后踩坑!

十分钟学会使用 Elasticsearch 优雅搭建自己的搜索系统(附源码)

一语点破Java中的静态static关键字相关推荐

  1. 一语点破 Java 中的静态 static 关键字

    来源 | blog.csdn.net/ju_362204801/article/details/90738966 思考:大家有没有想过一个问题,静态它为什么叫静态?因为书上或者别的文章里这么写的都这么 ...

  2. 大白话系列之 —— 一语点破Java中的静态static关键字

    铁子们,快扫码关注啦!或 wx搜索:"聊5毛钱的java",关注可领取博主的Java学习视频+资料,保证都是干货 思考:大家有没有想过一个问题,静态它为什么叫静态?因为书上或者别的 ...

  3. Java学习(静态static关键字,数组工具类Arrays,数学相关工具类(绝对值,向上取整,向下取整),继承,super和this关键字,抽象)

    2022/1/2 (1/6)Java学习 1.静态Static关键字概述 一旦用了static关键字,那么这样的内容不再属于对象自己,而是属于类的,所以凡是本类的对象,都共享同一份. 2.静态stat ...

  4. 【java笔记】静态static关键字

    目录 static 修饰成员变量: static修饰成员方法: 注意: 静态static的内存图:​ 静态代码块: 一旦用了static关键字,那么这样的内容不再属于对象自己,而是属于类的. 多个对象 ...

  5. Java中final、static关键字的作用

    final关键字可用于三个地方: 用于修饰类.类属性和类方法. 被final修饰的类不能被继承,被final修饰的类属性和类方法不能被覆盖(重写): 一.final 1. final修饰变量: fin ...

  6. Java讲课笔记12:static关键字

    文章目录 零.本讲学习目标 1.掌握静态变量的使用 2.掌握静态方法的使用 3.掌握静态代码块的使用 一.static关键字的用处 二.静态变量 1.静态变量的定义 2.静态变量的内存分配示意图 3. ...

  7. java中的静态变量的作用域_详解JAVA中static的作用

    1.深度总结 引用一位网友的话,说的非常好,如果别人问你static的作用:如果你说静态修饰 类的属性 和 类的方法 别人认为你是合格的:如果是说 可以构成 静态代码块,那别人认为你还可以: 如果你说 ...

  8. java中的静态是什么?怎么用?

    Java属于入门容易,天花板却极高的编程语言.java中的静态是什么?对于java工程师来说技术的不断发展,需要不断学习java进阶知识.为了帮助大家巩固基础,本文解答了java中的静态是什么?怎么用 ...

  9. 非静态方法可以访问Java中的静态变量/方法吗?

    "非静态方法可以访问静态变量或调用静态方法"是Java中有关静态修饰符的常见问题之一,答案是, 是的 ,非静态方法可以访问静态变量或调用静态方法. Java中的方法. 这没有问题, ...

最新文章

  1. 移动硬盘由于IO设备错误,无法运行此项请求文件怎样恢复
  2. github的基础使用
  3. API设计原则 - Qt官网的设计实践总结
  4. 骚操作:利用强弱符号制作插件库
  5. nyoj744 蚂蚁的难题(-)
  6. Python基础教程之第3章 使用字符串
  7. 如何在Wireshark确定数据集?
  8. OSI参考模型(应用层、表示层、会话层、传输层、网络层、数据链路层、物理层)...
  9. c++对象模型大总结:第1-4章、对象初探与构造函数
  10. miui12怎么自定义开机动画_小米MIUI 12凭什么敢向苹果iOS发起挑战
  11. 异常信息_共同药业被爆:大客户异常 瞒报环保处罚信息
  12. 2021-06-20----CSS三种选择器
  13. Java设计模式之工厂模式最详解(类图+源码)
  14. 心海软件学心理测试系统,心海软件-心理测试、心理档案、心理咨询室管理系统...
  15. 国家出手,终于不用再担心网上「​裸奔」​了!
  16. 【Matlab 六自由度机器人】运动学逆解(附MATLAB机器人逆解代码)
  17. 在线破解hash的优秀网站
  18. 导入导出软件测试点,导入导出问题-TestCenter测试管理工具常见问题-SPASVO泽众软件测试网...
  19. 人力资源面试必问的十大问题
  20. IP地址和物理地址的区别和联系

热门文章

  1. “浴霸”三摄出镜率真高!中兴Blade 20工信部入网
  2. 关于iPhone 11系列、A13芯片 知乎网友是这么说的
  3. 中国移动自主品牌首款5G手机亮相!越看越有华为的影子?
  4. Apple Watch用户终于能对部分预装应用说不了 包括闹钟、定时器等
  5. 被江苏网警点名后 咪蒙发道歉信:公众号停更2个月 微博永久关停
  6. 无辜程序员被新女同事算计,老板到底安得什么心 ?
  7. html5调用app服务端,webapp调用摄像头(H5+),并发送给服务端
  8. python 储蓄计划_365天储蓄计划表
  9. redis高并发数据错乱_redis总结:1T以上海量数据+10万以上QPS高并发+99.99%高可用...
  10. python相对路径import 方法_Python 从相对路径下import的方法