java中静态是什么,java中静态和非静态有什么区别
首先我们先来说说jvm内存模型:
jvm内存分为:方法区、堆、栈和程序计数器。
下面我们来简单的说说方法区、栈和堆:
方法区:是各个线程共享的区域,存放类信息/常量/静态变量;
栈:其实每个线程都会分配一个栈,其生命周期与线程一样,其执行一个方法就会生成一个栈帧,栈帧包含了方法中的局部变量。
堆:所有类的实例化都存放在堆里面。
(视频教程推荐:java视频教程)
1、从内存的角度分析用静态和非静态的区别
static修饰成员变量和成员方法,其值存放的地址是方法区的常量池,其执行的顺序为在加载类的时候就将static修饰的变量名或者方法存放到常量池了。
非静态修饰的变量可以是成员变量和局部变量。
成员变量随对象存放的地址一样,因为它属于类的一部分,其地址在堆中。
局部变量一般情况下在方法中声明,其存放的地址在栈中。
二、从运行的机制分析
在源码被编译器编译成.class字节码文件的时候,一旦类被加载,用了static修饰的块/变量/方法就会马上存放到方法区,与此同时非静态的块/变量/方法还没有编译,一旦将非静态的变量存放到静态方法里面,程序计数器指示到局部变量的时候就会报错,因为这个时候根本还没有编译到局部变量这一块。
java中静态是什么,java中静态和非静态有什么区别相关推荐
- java怎么进行静态引用_java – 如何解决“无法对非静态字段或方法进行静态引用”?...
我似乎无法找到我在静态方法中使用非静态引用的位置,代码是: public class Item { public static final Map ITEM_STATUSES = new HashMa ...
- java heap space 解决方法_Java静态方法/变量,非静态方法/变量的区别,今天一并帮你解决
静态/非静态 方法/变量的写法 大家应该都明白静态方法/字段比普通方法/字段的写法要多一个static关键字,简单写下他们的写法吧,了解的可以直接略过 class Test{ // 静态变量 publ ...
- java 静态变量方法,java中的静态变量和静态方法
java中的静态变量和静态方法 发布时间:2020-06-25 20:15:28 来源:亿速云 阅读:100 作者:Leah 今天就跟大家聊聊有关java中的静态变量和静态方法,可能很多人都不太了解, ...
- java键盘输入字符串静态变量_Java 中为什么样在静态方法中可以调用的方法、可以使用的成员变量必须是静态的?老师说字符串常量和静态变量放在data segment中...
在上一篇文章中,小编为您详细介绍了关于<C字符串以'\0'结尾的问题?为什么样C语言字符串常量可以当做指针>相关知识.本篇中小编将再为您讲解标题Java 中为什么样在静态方法中可以调用的方 ...
- java中代码块之静态代码块和非静态代码块
一.代码块: 语法:使用{}包裹的,可以在{}中写代码. 修饰符:static 或者不修饰. static修饰的为静态代码代码块. 格式: //静态代码块,随着类的加载児执行static{System ...
- java初始化例子_Java 非静态初始化的例子
在继承关系中,静态初始化.非静态初始化和构造函数的执行顺序 public class ExA { static { System.out.println("父类--静态代码块"); ...
- java 非静态 初始化_Java非静态代码块和实例初始化过程
1 非静态代码块 非静态代码块特点 ①可以为实例变量(非静态的属性)初始化 ②每次创建对象的时候,都会执行一次,且先于构造器执行 ③若有多个非静态的代码块,那么按照定义的顺序从上到下依次执行 ④代码块 ...
- java继承父类执行顺序_java中子类继承父类程序执行顺序问题
Java中,new一个类的对象,类里面的静态代码块.非静态代码.无参构造方法.有参构造方法.类的一般方法等部分,它们的执行顺序相对来说比较简单,用程序也很容易验证.比如新建一个测试父类. public ...
- java 静态变量加载顺序_java 成员变量 静态变量代码块 静态代码快加载顺序
序言 基类A 类B继承实现了A类 1在new B一个实例时首先要进行类的装载.(类只有在使用New调用创建的时候才会被java类装载器装入)2,在装载类时,先装载父类A,再装载子类B 3,装载父类A后 ...
- java如何调用static类_Java中的static的使用指南
一.Java中的static使用之静态变量 1.Java 中被static修饰的成员称为静态成员或类成员.它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享.且优先于对象存在.静态成员可以使 ...
最新文章
- python语言有什么用-Python到底有什么用?为什么那么多人都在学Python?
- HTML表单的enctype属性详解{转}
- Android WindowManager和WindowManager.LayoutParams的使用以及实现悬浮窗口的方法
- 我眼中的2011年互联网大事记
- 十大Java编程工具
- 英语口语常用1368词汇
- pdf照片显示正常打印时被翻转_2020考研 | 准考证怎么打印你知道吗?
- Unity Addressable学习笔记二(Hosting热更新)
- HTTP 404错误你知道是什么意思吗
- 一些关于TIA博图软件使用规范
- 邮箱邮件服务器迁移服务器要多久生效,邮件服务器迁移方案让企业邮箱安心“搬家”...
- 经纬坐标(BLH)数据创建.kml文件小工具设计 Java版
- Android技术分享| 【Android 自定义View】多人视频通话控件
- js的高亮关键写法,简单粗暴,行之有效
- 王者荣耀 让好友看到的括号中不显示默认备注
- python如何合并excel文件
- 什么是网站内链接及内链优化的好处作用?
- 齐悟机器人王一_专注智能对话 王一校友当选“2020年度全美十大华人杰出青年”...
- 了解无线通信技术WiFi,Sub 1G,Zigbee
- 宽带放大器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
热门文章
- yii2-basic后台管理功能开发之四:图片上传FileInput
- apache_tomcat整合应用
- SQL Server 2014 内存优化表(1)实现内存优化表
- MySQL必知必会教程:深入理解MySQL技术内幕
- 在C#中使用SqlDbType.Xml类型参数
- VB.Net编程实现Web Service的基础
- 怎么装python解析器_linux 下安装 python 解析器
- python随机生成车牌_Python实现随机生成任意数量车牌号
- GDC服务器主机与证书不匹配,调用web服务soap时,错误https URL主机名与客户端信任库中服务器证书上的公用名(CN)不匹配...
- graphic头文件函数_graphics.h头文件详解