java中静态和非静态有什么区别 小灰灰 2020-06-10 15:05 685阅读 0赞 # java中静态和非静态有什么区别 首先我们先来说说jvm内存模型: jvm内存分为:方法区、堆、栈和程序计数器。 下面我们来简单的说说方法区、栈和堆: 方法区:是各个线程共享的区域,存放类信息/常量/静态变量; 栈:其实每个线程都会分配一个栈,其生命周期与线程一样,其执行一个方法就会生成一个栈帧,栈帧包含了方法中的局部变量。 堆:所有类的实例化都存放在堆里面。 **1、从内存的角度分析用静态和非静态的区别** static修饰成员变量和成员方法,其值存放的地址是方法区的常量池,其执行的顺序为在加载类的时候就将static修饰的变量名或者方法存放到常量池了。 非静态修饰的变量可以是成员变量和局部变量。 成员变量随对象存放的地址一样,因为它属于类的一部分,其地址在堆中。 局部变量一般情况下在方法中声明,其存放的地址在栈中。 **二、从运行的机制分析** 在源码被编译器编译成.class字节码文件的时候,一旦类被加载,用了static修饰的块/变量/方法就会马上存放到方法区,与此同时非静态的块/变量/方法还没有编译,一旦将非静态的变量存放到静态方法里面,程序计数器指示到局部变量的时候就会报错,因为这个时候根本还没有编译到局部变量这一块。
相关 Java中的静态方法和非静态方法区别 在Java编程中,静态方法和非静态方法是两种不同的方法定义方式。以下是它们的主要区别: 1. 调用方式: - 非静态方法:需要一个对象实例(this关键字)来调用,如 `ob 比眉伴天荒/ 2024年09月18日 03:18/ 0 赞/ 18 阅读
相关 Java中静态方法和非静态方法的区别实例 在Java编程语言中,静态方法(Static Methods)和非静态方法(Non-Static Methods)有以下几个主要区别: 1. 调用方式: - 非静态方法 迈不过友情╰/ 2024年09月12日 02:39/ 0 赞/ 27 阅读
相关 Java中静态跟非静态的区别总结 文章目录 一.静态变量跟实例变量的区别 1. 静态变量 2. 实例变量 二、静态方法跟实例方法的区别 柔光的暖阳◎/ 2023年09月26日 22:47/ 0 赞/ 79 阅读
相关 java中怎么调用非静态方法有哪些_java中 静态方法和非静态方法的调用 静态方法里面不能调用非静态方法 package com.zqz.image; public class HellowWord \{ public void say(Strin 旧城等待,/ 2022年11月06日 03:55/ 0 赞/ 148 阅读
相关 java学习中关于静态和非静态 static声明的成员变量为静态变量(类属性,类变量),static声明的方法为静态方法。 静态方法不能引用非静态变量和非静态方法,而非 心已赠人/ 2022年06月12日 09:52/ 0 赞/ 202 阅读
相关 【Java】静态和非静态的区别 还是老生常谈JVM内存模型的问题,也是我一直深究(浅显)的问题,这里我们单一说一下用静态修饰的内存,前面的篇章有具体讲过 jvm内存分为:方法区、堆、栈、程序计数器 但 傷城~/ 2022年05月16日 01:08/ 0 赞/ 172 阅读
相关 C# 静态和非静态的区别 静态标记 – static //静态方法 public static void Max(){ } //非静态方法 public void ╰+攻爆jí腚メ/ 2021年11月17日 00:18/ 0 赞/ 319 阅读
相关 java静态与非静态区别 静态有一些特点: 1.全局唯一,任何一次的修改都是全局性的影响 2.只加载一次,优先于非静态 3.使用方式上不依赖 心已赠人/ 2021年09月18日 03:50/ 0 赞/ 611 阅读
相关 java中静态和非静态有什么区别 java中静态和非静态有什么区别 首先我们先来说说jvm内存模型: jvm内存分为:方法区、堆、栈和程序计数器。 下面我们来简单的说说方法区、栈和堆: 方法区:是各个线程... 小灰灰/ 2020年06月10日 15:05/ 0 赞/ 686 阅读
还没有评论,来说两句吧...