`
雷博弈
  • 浏览: 16890 次
  • 性别: Icon_minigender_1
  • 来自: 四川
文章分类
社区版块
存档分类
最新评论

java中的静态变量和实例变量的生命周期

阅读更多

    类的成员变量有两种:一种是被static关键字修饰的变量,叫类变量或静态变量,一种是没有被static修饰的,叫做实例变量
    静态变量和实例变量的区别在于:
    类静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享,静态变量可以通过类名直接访问。静态变量的生命周期取决于类的生命周期,当类被加载的时候,静态变量被创建并分配内存空间,当类被卸载时,静态变量被摧毁,并释放所占有的内存。
    类的每一个实例都有相应的实例变量,每创建一个类的实例,java虚拟机为实例变量分配一次内存,实例变量位于堆区中,实例变量的生命周期取决于实例的生命周期,当创建实例时,为实例变量背创建,并分配内存,当实例被销毁时,实例 变量被销毁,并释放所占有的内存空间。
    假如成员变量时引用变量,该成员变量结束生命周期时,并不意味着它所引用对象也结束生命周期。变量的生命周期和对象的生命周期是不同的概念。

 

分享到:
评论
1 楼 oscarswing 2010-11-19  
我想知道我如何得到一个存在于内存中的变量的值?比如说,我运行了一个web系统,它运行的时候肯定有一些静态变量存在内存中吧,然后我想再运行另外一个web系统,在这里面处理前一个web系统中存在内存里的这个静态变量的值,怎么办嘞?

相关推荐

    Java中的静态变量、静态方法与静态代码块

    我们知道类的生命周期分为装载、连接、初始化、使用和卸载的五个过程。  其中静态代码在类的初始化阶段被初始化。而非静态代码则在类的使用阶段(也是实例化一个类的时候)才会被初始化。  静态变量  可以...

    学会这些java面试题让你吊打面试官

    6.实例变量和静态变量的区别? 7.八大基本类型及字节数和位数? 8.switch cach是否支持byte,short和long,是否支持String? 9.String中和Array中是否有length属性和length()方法? 10.==和equals的区别?。。。。。。

    java编程基础,应用与实例

    5.6 静态变量与静态方法 70 5.7 成员与静态方法的关系 71 5.8 包与导入 72 5.9 访问控制符 74 5.10 重载 77 5.11 构造函数 79 5.12 类的初始化 83 5.12.1 静态块 84 5.12.2 实例块 84 5.13 巩固...

    java 常见面试问题汇总

    1、Iterator 怎么使用?有什么特点? 2、Servlet生命周期内调用的方法过程? 3、阐述静态变量和实例变量的区别。

    JAVA面试题最全集

    在软件开发生命周期中的哪个阶段开始测试? 89.dotnet与J2EE的比较? 90.什么是ActiveX? 91.Java中IDL是什么? 92.ISO9000和CMM是什么?IS09000和CMM(软件能力成熟度模型)认证是国际上通用的软件质量评估方法.CMM的...

    Java优化编程(第2版)

    1.11.2 引用类中的静态变量与方法的 …… 小结 第4章 java核心类与性能优化 4.1 散列表类与性能优化 4.1.1 线程同步散列表类 4.1.2 设置arraylist初始化容量 4.1.3 arraylist与linkedlist 4.2 string类与性能优化 ...

    最新java面试专题01-JVM

    JVM生命周期:JVM的生命周期始于启动一个Java程序,此时会创建一个JVM实例。程序中的public static void main(String[] args)方法作为JVM实例运行的起点。 垃圾收集:JVM具有自动内存管理和垃圾收集机制,用于自动...

    java面试宝典

    33、静态变量和实例变量的区别? 11 34、是否可以从一个static 方法内部发出对非static 方法的调用? 11 35、写clone()方法时,通常都有一行代码,是什么? 11 36、GC 是什么? 为什么要有GC? 11 37、垃圾回收的优点...

    Java性能优化

    } 此时静态变量b的生命周期与A类同步,如果A类不会卸载,那么b对象会常驻内存,直到程序终止。 3.尽量避免过多过常的创建Java对象 尽量避免在经常调用的方法,循环中new对象,由于系统不仅要花费时间来创建对象,...

    java 面试题 总结

    6、说出Servlet的生命周期,并说出Servlet和CGI的区别。 Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器...

    java基础案例与开发详解案例源码全

    12.2 线程的生命周期309 12.2.1 线程的状态及转换310 12.2.2 线程睡眠311 12.2.3 线程让步313 12.2.4 线程的加入313 12.3 线程的调度和优先级314 12.4 线程的同步315 12.4.1 线程同步的方法317 12.4.2 对象锁319 ...

    Java面试宝典2020修订版V1.0.1.doc

    10、静态变量和实例变量的区别? 15 11、面向对象的基本特征是什么? 15 12、作用域public,private,protected,以及不写时的区别? 16 13、Overload和Override的区别。 16 14、构造器可不可以被重载或重写? 16 15、...

    java初学者必看

    1.7.2 Java虚拟机的生命周期 1.7.3 Java虚拟机的体系结构 1.8 垃圾收集器 1.9 本章习题 第2章 Java开发环境 2.1 J2SE的下载和安装 2.1.1 J2SE的下载 2.1.2 J2SE的安装 2.2 环境变量的配置与测试 2.2.1 设置...

    java程序设计实验指导代码

    9.2 实验1 Applet生命周期 9.3 实验2 Applet的参数提取 9.4 实验3 鼠标响应监测 第10章 Java的图形处理和Java 2D初步 10.1 预备知识 10.2 实验1 绘制国际象棋棋盘 10.3 实验2 绘制基本三角函数曲线 10.4 实验3 ...

    疯狂JAVA讲义

    5.3.2 成员变量的初始化和内存中的运行机制 128 5.3.3 局部变量的初始化和内存中的运行机制 130 5.3.4 变量的使用规则 130 5.4 隐藏和封装 132 5.4.1 理解封装 132 5.4.2 使用访问控制符 132 5.4.3 package和...

    21天学通Java-由浅入深

    252 13.2 定义线程和创建线程对象 252 13.2.1 继承Thread类定义线程 252 13.2.2 实现Runnable接口定义线程 253 13.3 运行线程 254 13.3.1 启动线程 254 13.3.2 同时运行多个线程 256 13.4 线程生命周期 257 13.4.1 ...

    Java语言基础下载

    Servlet的生命周期 557 Java Servlet API 560 Web上使用的HTTP Servlet 560 处理HTTP Servlet的关键方法 560 其它相关接口的说明 561 HTTP协议基本概念及其特点 563 获取Cookie 565 HTTP响应报头--Response 566 会话...

    超级有影响力霸气的Java面试题大全文档

    派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装:  封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,...

    Java面试宝典-经典

    12、静态变量和实例变量的区别? 12 13、是否可以从一个static方法内部发出对非static方法的调用? 12 14、Integer与int的区别 13 15、Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 13 16、下面的代码有...

    Java面试宝典2010版

    12、静态变量和实例变量的区别? 12 13、是否可以从一个static方法内部发出对非static方法的调用? 12 14、Integer与int的区别 13 15、Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 13 16、下面的代码有...

Global site tag (gtag.js) - Google Analytics