【解决bug之路】JAVA 之 static

在Java语言中,static表示“静态”的意思,使用场景可以用来修饰成员变量和成员方法,当然也可以是静态代码块。static的主要作用在于创建独立于具体对象的域变量或者方法。本文主要来去讲解一下static的来龙去脉。

static要解决什么问题?

我们知道,当我们通过new关键字去创建对象的时候,那么数据的存储空间才会被分配,类中的成员方法才能被对象所使用。但是呢有两种特殊的情况:

1、我们通过new关键字创建的对象共享同一个资源,而不是说每个对象都拥有自己的数据,或者说根本就不需要去创建对象,这个资源和对象之间是没有关系的。

2、希望某个方法不与包含它的类的任何对象联系在一起。总结下来就是说:即使没有创建对象,也能使用属性和调用方法,static目的就是在于解决这个问题。//加入Java开发交流君样:756584822一起吹水聊天

格式

修饰变量:static 数据类型 变量名

修饰方法:【访问权限修饰符】 static 方法返回值 方法名(参数列表)

特点

static可以修饰变量,方法被static修饰的变量或者方法是独立于该类的任何对象,也就是说,这些变量和方法不属于任何一个实例对象,而是被类的实例对象所共享。在类被加载的时候,就会去加载被static修饰的部分。被static修饰的变量或者方法是优先于对象存在的,也就是说当一个类加载完毕之后,即便没有创建对象,也可以去访问。//加入Java开发交流君样:756584822一起吹水聊天

static静态变量

被static修饰的成员变量叫做静态变量,也叫做类变量,说明这个变量是属于这个类的,而不是属于是对象,没有被static修饰的成员变量叫做实例变量,说明这个变量是属于某个具体的对象的。

静态变量和实例变量的区别

实例变量:每次创建对象,都会为每个对象分配成员变量内存空间,实例变量是属于实例对象的,在内存中,创建几次对象,就有几份成员变量。

静态变量:静态变量由于不属于任何实例对象,是属于类的,所以在内存中只会有一份,在类的加载过程中,JVM为静态变量分配一次内存空间。

static静态方法

被static修饰的方法也叫做静态方法,因为对于静态方法来说是不属于任何实例对象的,那么就是说在静态方法内部是不能使用this的,因为既然不属于任何对象,那么就更谈不上this了。

static应用场景

如果某个成员变量是被所有对象所共享的,那么这个成员变量就应该定义为静态变量。

static如何去访问//加入Java开发交流君样:756584822一起吹水聊天

静态变量:

类名.静态变量

对象.静态变量(不推荐的)

静态方法:

类名.静态方法

对象.静态方法(不推荐)

这里呢就啰嗦一句,由于被static修饰的变量和方法是不属于任何实例对象的,所以在这里,强烈建议不要通过对象的方式去访问静态的变量或者方法。

static使用注意事项

在静态方法中没有this关键字因为静态是随着类的加载而加载,而this是随着对象的创建而存在的。静态比对象优先存在。静态可以访问静态的,但是静态不能访问非静态的。非静态的可以去访问静态的。

总结

静态只能访问静态。非静态既可以访问非静态的,也可以访问静态的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299777.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将Linux加入Windows域

Samba3.0以上的版本提供了加入WindowsPDC域的命令net join,现在用它把Samba Server加入WindowsPDC,例如snoopy.echo是WindowsPDC域:net rpc join -S snoopy.echo -U Administrator,然后输入域管理员密码,也就是windows…

程序员的人生

今天在网上看到这么一张图片,让人吃惊不小,我也是一名典型的学生出身的程序员在这个行业做了也接近三年了,也曾经犹豫过,曾经迷茫过,曾经思考过自己以后的人生,也是几乎和下面这张图片的经历一致&#xff0…

WPF中一个通用的BoolToXXX转换类

在WPF程序的数据绑定里面,经常会通过一个布尔类型的值来控制UI控件的状态,例如是否可见,是否最大化之类的。然而UI控件的各个状态属性的类型往往不是布尔类型,比如UIElement.Visibility的类型是Visibility枚举,Window.…

Cisco常用命令

Switch(config)#snmp-server community c2960 ro #设置snmp只读服务 Switch(config)#snmp-server enable traps #打开snmp陷阱 Switch(config)#snmp-server host 192.168.1.1 traps c2960 #指定接收traps信息的主机和共同体名 Switch(config)#logging on #启动logging机制 Sw…

到家自动充电,拜拜充电线!东京大学开发自动充电房间,能量成为“与空气一样的东西”...

全世界只有3.14 % 的人关注了青少年数学之旅每天下班回家第一件事,是不是给手机充电?但是充电线在哪,你找得到吗?如果现在告诉你,一回到家,手机就能自动充电,简直就是整理苦手的救星&#xff01…

JS图片放大查看效果!

http://bbs.blueidea.com/thread-2812683-1-1.htmlhttp://bbs.blueidea.com/thread-2814846-1-1.html应用效果<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><title>Javascript Images zoom-out view sample.…

从零开始学习jQuery (九) jQuery工具函数 【转】

一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案, 即使你会使用jQuery也能在阅读中发现些许秘籍. 我们经常要使用脚本处理各种业务逻辑, 最常见的就是数组和对象的操作. jQuery工具函数为我们操作对象和数组提供了便利条件. 二.前言 大…

java获取整点与凌晨的时间戳

Java中获取整点时间戳 在实际的开发过程中&#xff0c;前端给后端传时间的时候&#xff0c;有时候传的是整点数值&#xff0c;比如&#xff1a;timeList[00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]&#xff0c;这样传值给后端获取时间带了…

设计模式之装饰器

装饰器模式介绍俄罗斯套娃装饰器的核心就是在不改原有类的基础上给类新增功能。可以避免继承导致的子类过多&#xff0c;可避免AOP带来的复杂性。装饰器主要解决的是直接继承下因功能的不断横向扩展导致子类膨胀的问题&#xff0c;而是用装饰器模式后就会比直接继承显得更加灵活…

zookeeper集群部署监控与选举同步流程等工作原理

部署一个zookeeper集群&#xff0c;要多简单就能有多简单&#xff08;下载压缩包&#xff0c;解压&#xff0c;修改配置文件zoo.cfg,执行启动脚本&#xff09;&#xff0c;但是想要真的把这套东西玩好了&#xff0c;还是需要费些功夫研究一番的。就跟自己搭建一个lnmp的站点&am…

手把手教出欧拉!数学界最伟大的老师惨遭全网歪曲抹黑,奇葩说陈铭一句话揭露真相.........

全世界只有3.14 % 的人关注了青少年数学之旅说到伟大的老师你首先想到的是谁&#xff1f;万世师表的孔子&#xff1f;古代先哲亚里士多德&#xff1f;支援山区的青年教师&#xff1f;还是高三时每天在你耳边督促你订正错题本的班主任&#xff1f;在这个光荣的行列中&#xff0c…

让你一周变聪明的大脑保健操

我们现在的年轻人生活节奏快&#xff0c;压力大&#xff0c;有时或多或少&#xff0c;有些跟不上节奏&#xff0c;这样更多的人就应该多重视一下自己的大脑&#xff0c;现在有一个这样的方法不知道是不是切合实际&#xff0c;希望大家能从中学到些自己有用的东西。 英国广播公司…

Hello Blazor:(8)启用深色模式

前言上次&#xff0c;在“集成Tailwind CSS”时&#xff0c;我发现tailwind.config.js配置文件有这样一个选项&#xff1a;darkMode: false, // or media or class查看官方文档&#xff0c;原来这是用来启用深色模式的配置。既然深色模式几乎成了所有网站和软件的标配&#xff…

初学ASP.NET 必看

初学者必看&#xff01; 所有的关键字和运算等一切有关的关键词的集合HTML文件标记<html><head><!--><title><body>文字排版标记<br/><nobr><p><pre> 原始文字样式<center><blockquote> 向内…

Java字符串的压缩与解压缩的两种方法

应用场景 当字符串太长&#xff0c; 需要将字符串值存入数据库时&#xff0c;如果字段长度不够&#xff0c;则会出现插入失败&#xff1b; 或者需要进行Http传输时&#xff0c;由于参数长度过长造成http传输失败等。 字符串压缩与解压方法 方法一&#xff1a;用 Java8中的…

超越Linux!华为鸿蒙明年将成“第五大操作系统”,网友:何时超过iOS?

全世界只有3.14 % 的人关注了青少年数学之旅今年8月的华为开发者大会上&#xff0c;鸿蒙OS正式亮相&#xff0c;这是全世界第一个基于微内核的全场景分布式操作系统。余承东曾表示&#xff1a;华为手机优先使用安卓生态&#xff0c;一旦受实体名单影响安卓不能用&#xff0c;一…

Java网页开发中model实现Serializable接口的原因

Object serialization的定义&#xff1a;Object serialization 允许你将实现了Serializable接口的对象转换为字节序列&#xff0c;这些字节序列可以被完全存储以备以后重新生成原来的对象。 serialization不但可以在本机做&#xff0c;而且可以经由网络操作&#xff08;RMI&…

关于 .NET 与 JAVA 在 JIT 编译上的一些差异

最近因为公司的一些原因&#xff0c;我也开始学习一些 JAVA 的知识。虽然我一直是以 .NET 语言为主的程序员&#xff0c;但是我并不排斥任何其它语言。在此并不讨论 JAVA .NET 的好坏&#xff0c;仅仅是对 .NET 跟 JAVA 程序的编译执行过程进行一些简单的介绍跟比较。因为有些内…

病毒加壳技术与脱壳杀毒方法解析

壳是什么&#xff1f;脱壳又是什么&#xff1f;这是很多经常感到迷惑和经常提出的问题&#xff0c;其实这个问题一点也不幼稚。当你想听说脱壳这个名词并试着去了解的时候&#xff0c;说明你已经在各个安全站点很有了一段日子了。下面&#xff0c;我们进入“壳”的世界吧。 一、…

java初学必看

今天又看到了这篇文章&#xff0c;不过今天看来&#xff0c;比当初有了更多的感受&#xff0c;对于初学者&#xff0c;的确是篇好文章&#xff0c;应该静下心来好好看看很多网友问我学习Java有没有什么捷径,我说"无他&#xff0c;唯手熟尔"。但是我却很愿意将自己学习…