首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

静态类、静态方法静态变量区别

引言 一直疑惑静态类、静态方法静态变量内存驻用情况。今天就写了个Demo来深入八一八他们区别和注意点。...为了演示方便,方法名和变量名采取中文命名 先上结论 静态变量 只在类初始化时加载一次 静态方法静态方法语法糖 实时加载里面的内容 只读属性 实时加载里面的内容 附有初始值属性语法糖 只在类初始化时加载一次...(应该是set里面处理,而不是get里面处理静态有参方法 实时加载里面的内容 无图我还说什么?...------------------------普通 class----------------- TestCommonService.静态变量=111 TestCommonService.静态方法...---------------静态 class----------------- TestStaticService.静态变量=111 TestStaticService.静态方法()=111 TestStaticService

1.6K10
您找到你想要的搜索结果了吗?
是的
没有找到

Java学习笔记之静态方法,非静态方法静态变量,非静态变量四者之间关系

Java学习笔记之静态方法,非静态方法静态变量,非静态变量四者之间关系 首先明白这几个名词意思: 静态方法:即类方法,在类之中,以static关键字申明方法。...静态变量:即类变量,在类之中,方法之外,以static关键字申明变量,它属于整个类所有,而不是某个对象所有,即被类所有对象所共享。 使用方法:直接使用类名.类变量名来进行访问。...这四者之间关系 静态方法中可以直接调用同类中静态成员,但不能直接调用非静态成员。...静态方法中调用非静态变量,可以通过创建类对象,然后通过对象来访问非静态变量 静态方法中可以通过类名.静态方法名来调用,但不能直接调用非静态方法,需要通过对象来访问非静态方法静态方法中可以通过类名....静态方法名来调用,但不能直接调用非静态方法,需要通过对象来访问非静态方法 以上是我在学习Java过程觉得容易被弄晕地方,所以总结了一下,如果有什么不对地方,欢迎指出。

66620

Java中类初始化过程:(静态成员变量静态代码块,普通成员变量,代码块初始化顺序)

初始化过程是这样: 1.首先,初始化父类中静态成员变量静态代码块,按照在程序中出现顺序初始化; 2.然后,初始化子类中静态成员变量静态代码块,按照在程序中出现顺序初始化; 3.其次,...初始化父类普通成员变量和代码块,在执行父类构造方法; 4.最后,初始化子类普通成员变量和代码块,在执行子类构造方法; 类加载顺序: 父类静态成员变量静态块>子类静态成员变量静态块>...父类普通成员变量、非静态块>父类构造函数>子类 普通成员变量、非静态块>子类构造函数 静态代码块:随着类加载而执行,而且只执行一次 非静态代码块:每创建一个对象,就执行一次非静态代码块 关于各个成员简介

29230

构建以及运行Springboot Docker镜像变量传递

写两个Dockerfile看起来太傻逼了,构建替换好了。...build test # 构建生产环境包 build prod # 运行 docker run -d demo 使用运行时指定参数 我们可以打一份镜像,在运行时候传递profile来确定激活哪个配置文件...docker run -d demo --spring.profiles.active=prod 运行时还可以传递环境变量,就是系统环境变量。...构建传递参数 如果我们开发模式是master模式,即所有的分发部署都是同一个分支master, 先将master部署到test环境,没问题后直接发布到prod。同样镜像,只是运行时指定配置文件。...ARG允许通过--build-arg传递参数 ENV等同于docker run -e来设置系统环境变量,但优先级弱于-e 上述几种方案差不多解决了我springboot容器化部署方式。

4.3K20

java继承能包括静态变量方法吗?举例说明!

子类继承了超类定义所有实例变量方法包括静态变量方法(马克-to-win见下例),并且为它自己增添了独特元素。子类只能有一个超类。Java不支持多超类继承。...例1.1- class A1Mark {     static int si=5;//静态属性和方法一样属于子类,用子类或父类类名都可以调用静态变量方法     int i; // 同一个包内,public...    } } // A1Mark's j is not accessible here. class B1 extends A1Mark {     static int sbi=6;//子类可以正常有静态变量...accessible here         total = i + si+getJ()+getSi(); // no problem , i can be used here.     } /*子类静态方法甚至可以覆盖父类静态方法...static void main(String args[]) {         B1 subOb = new B1();         subOb.setij(10, 12);//可以直接用基类方法

63920

python进行参数传递方法

在分析python参数传递是如何进行之前,我们需要先来了解一下,python变量和赋值基本原理,这样有助于我们更好理解参数传递。...但是通过某些操作(+= 等等)更新不可变对象,会返回一个新对象 变量可以被删除,但是对象无法被删除 python函数是如何进行参数传递 python参数传递是赋值传递或者说是引用传递python...里一切皆对象,所以参数传递,只是让新变量与原变量指向了同一个对象,下面我们来看个例子: In [28]: def func(b): ...: b = 2 In [29]: a = 1 In [...总结 今天,我们讨论了 Python 变量及其赋值基本原理,并且解释了 Python 中参数是如何传递。...以上就是python进行参数传递方法详细内容,更多关于python如何进行参数传递资料请关注ZaLou.Cn其它相关文章!

1.3K10

java 静态变量 存储_Java中存储静态方法静态变量在哪里?「建议收藏」

大家好,又见面了,我是你们朋友全栈君。 静态方法(实际上所有方法)以及静态变量都存储在PermGen部分,因为它们是反射数据一部分(类相关数据,而不是与实例相关)。...需要澄清最新情况: 注意,只有变量及其技术值(原语或引用)存储在PermGen空间中。 如果静态变量是对象引用,则该对象本身存储在堆正常部分(年轻/旧代或幸存者空间)。...当然,您可以将静态变量设置为NULL,从而删除对堆上对象引用,但这并不意味着垃圾回收器将要收集它(即使没有更多参考资料)。...上面的内容是基于HotsforJava 5和6(它们基本上是相同),因为在回答,我想说大多数人都使用这些JVM。...由于Java 8内存模型发生了重大变化,上述语句可能不适用于Java 8 HotSpot-而且我没有检查Java 7 HotSpot更改,所以我猜以上对于那个版本仍然是正确,但我在这里不确定。

2.6K10

关于python静态方法

关于“Python静态方法”很多学习py同学不太了解,今天幕客就来总结下。 python静态方法仅在类中出现,和许多语言(C、JAVA)静态方法一样。...有了静态方法我们能方便用类直接调用方法,可以不用先实例化优点。即使子类,也可议改写父类中静态方法。 下面幕客用两个例子。...一、说下调用类静态方法,可以不用先实例化 python静态方法仅仅是类函数(注意:是类函数,不是实例),所以我们调用类静态方法,可以不用先实例化,然后直接调用,如下: In [30]: class...,x ...: In [31]: Myclass.static_method('imoocc') static method echo.... imoocc 但方法不是静态方法,是不可以调用,如下:...normal_method() must be called with Myclass instance as first argument (got str instance instead) 二、父类中静态方法可议通过子类重新定制

66880

PHP类静态(static)方法静态(static)变量使用介绍

在php中,访问类方法/变量有两种方法: 1. 创建对象object = new Class(),然后使用”->”调用: 2....如果是方法,除了该方法可访问外,还需要满足: b1) 如果是静态方法,没有特殊条件; b2) 如果是非静态方法,需要该方法中没有使用$this,即没有调用非静态变量/方法,当然,调用静态变量/方法没有问题...使用class::… 调用静态方法/变量,不需要执行构造函数创建对象; 3. 使用class::… 调用非静态方法/变量,也不需要执行构造函数创建对象。...然后奇怪地方就出来了,既然2和3都一样,那静态方法/变量存在还有什么意义呢? 差异还是显然存在,如下: 1....静态方法 静态方法可以直接使用class::… 来调用,而非静态方法需要满足一定限制条件才能使用class::.. 方法调用,如之前所述

4.1K10

python之类静态方法

Python 优雅语法和动态类型以及解释型语言本质,使它成为多数平台上写脚本和快速开发应用理想语言。下面我们来介绍一下python静态方法。...---- 二、静态方法   要在类中使用静态方法,需在类成员方法前加上“@staticmethod”标记符,以表示下面的成员方法静态方法。使用静态方法好处是,不需要实例化对象即可使用该方法。   ...类对象可以访问实例方法、类方法静态方法,使用类可以访问类方法静态方法。...一般情况下,如果要修改实例成员值,直接使用实例方法;如果要修改类成员值,直接使用类方法;如果是辅助功能,如打印菜单,则可以考虑使用静态方法。例:静态方法使用。...---- 三、参考 1、廖雪峰官网 2、python官网 3、Python编程案例教程 ---- 四、总结   以上就是就是关于Python静态方法相关知识,可以参考一下,觉得不错的话,欢迎点赞、

33330

使用 Apollo 为静态变量赋值方法

但是,在使用 Apollo 时候,我们可能会遇到这样场景: 在类中,想要为静态属性赋值。 我们且不考虑什么时候会出现这样需求,仅考虑如果有这样需求,我们应该怎么处理?...实际上,Apollo 仅支持直接为非静态属性赋值,因此当我们有这样需求时候,就需要我们变通一下,通过一些小技巧,来达成我们目的了。...而对于静态属性address,我们直接使用@Value注解是不生效,但是我们可以将@Value("${csdn.address:NONE}")注解添加到非静态方法setAddress(String param...)上面,通过参数注入时候,将 Apollo 配置传递静态属性address,然后我们在通过静态方法getAddress(),获取静态属性address值。...值得注意是,上面例子中使用方法名是自定义,不一定非得和参数名一致,根据需要自定义即可。

2.4K10

方法区(Method Area)存储静态变量

1:方法区(Method Area)存储静态变量 静态变量又称为类变量,类中被static修饰成员变量都是静态变量(类变量静态变量之所以又称为类变量,是因为静态变量和类关联在一起,随着类加载而存在于方法区...(而不是堆中) 八种基本数据类型(byte、short、int、long、float、double、char、boolean)静态变量会在方法区开辟空间,并将对应值存储在方法方法区,对于引用类型静态变量如果未用...,而对象本身仍在堆内存中); 这个过程还涉及到静态变量初始化问题: 2:构造代码块与静态代码块(静态初始化块) 1.构造代码块:每次创建对象执行 2.静态代码块(静态初始化块):JVM加载类(加载在运行之前...)执行,静态代码块(静态初始化块)只执行一次 为啥需要静态初始化块?...“=”显示赋值)->静态代码块(静态初始化块,堆默认初始化变量根据需要重新初始化)->main()->实例变量及引用初始化->构造代码块->构造方法 例: public class B {

31210

Python3.9中合并字典方法

翻译:老齐 与本文相关图书推荐:《跟老齐学Python:轻松入门》 ---- Python3.9,还在研发中,计划今年10月份发布,2月26日,研发团队发布了α版,其中有一个新功能,会关系到所有开发者...字典 Python字典,即dict,是一种重要内置对象类型,它是一种以键值对方式保存数据容器,因为使用了哈希,使得查询字典中数据时间复杂度恒定,这是它美名远播一个原因。...有时,我们需要将两个字典合并,在Python3.9之前,有几种方法可以实现。...'c': 3, 'd': 4} # good d3 |= d2a # d3 now is {'a': 10, 'b': 2, 'c': 3, 'd': 4} # not good 总结 本文展示了Python3.9...10月份Python3.9发布之时,官方文档会有详细说明,敬请查看。

1.3K20

python初始化方法_python初始化列表

我发现这是个很多人开始TensorFlow之旅普遍遇到问题,而且是很多人尝试了网上很多方法都未解决问题。...【遇到问题】 我是在Windows环境下,使用Anaconda3python3.6.5环境,安装TensorFlow最简单CPU版本(自己搓平板电脑不支持GPU): 管理员身份运行Anaconda...create_module File “”, line 205, in _call_with_frames_removed ImportError: DLL load failed: 动态链接库(DLL)初始化例程失败...【解决过程】 网上搜索有人说,这是使用Python3.6导致,TensorFlow目前只支持Python3.5。但我在TensorFlow官网发现其已经支持Python3.6。...反正咱用是Anaconda,换个Python版本so easy(有兴趣可以查看我另外一篇使用Anaconda博客https://www.cnblogs.com/wwcom123/p/9152909

97620

java static 变量存在哪_Java中静态方法静态变量存储在哪里?

大家好,又见面了,我是你们朋友全栈君。 小编典典 静态方法(实际上是所有方法)以及静态变量都存储在PermGen堆部分中,因为它们是反射数据(与类相关数据,而不与实例相关数据)一部分。...更新说明: 请注意,只有变量及其技术值(原始或引用)存储在PermGen空间中。 如果你静态变量是对对象引用,则对象本身存储在堆常规部分(青年/旧世代或幸存者空间)中。...当然,你可以将静态变量设置为null,从而删除对堆上对象引用,但这并不意味着垃圾收集器将收集它(即使没有更多引用了)。...最后要注意是:如何存储代码,运行时数据等取决于所使用JVM,即HotSpot可能与JRockit不同,并且在同一JVM版本之间甚至可能有所不同。...上面的内容基于Java 5和6HotSpot(基本上是相同),因为在回答之时,我会说大多数人都使用了这些JVM。

1.8K30

详解java中静态方法有哪些_java类中静态变量

定义: 在类中使用static修饰静态方法会随着类定义而被分配和装载入内存中;而非静态方法属于对象具体实例,只有在类对象创建在对象内存中才有这个方法代码段。...原因: 因为静态方法静态数据成员会随着类定义而被分配和装载入内存中,而非静态方法和非静态数据成员只有在类对象创建在对象内存中才有这个方法代码段。...引用静态方法,可以用类名.方法名或者对象名.方法形式。...第一次使用类时候)执行一次,往往用来初始化静态变量。...return t; } } } 总结: (1)static修饰静态方法会随着类定义而被分配和装载入内存中,编译器只为整个类创建了一个静态变量副本

1.4K10
领券