`
Josh_Persistence
  • 浏览: 1637356 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

Java - 变量及其生命周期,初始值,访问方式

    博客分类:
  • Java
阅读更多

一、java类的成员变量有两种: (静态变量,实例变量)

1.被static关键字修饰的变量,叫类变量或者静态变量。

      1.1: 类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,

      1.2: 静态变量位于方法区,被类的所有实例共享。 

      1.3: 静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。

      1.4: 静态变量是类相关的变量,所以他的生命周期是从这个类被声明,到这个类彻底被垃圾

回收机制彻底回收才会被销毁。

 

2.另一种没有static修饰,为实例变量 

      2.1:实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例变量分配一次内存,

      2.2:实例变量位于堆区中,其生命周期取决于实例的生命周期。

      2.3:实例变量是这个类的对象里的变量,它和静态变量不同,它只能由创建出的对象来调用。

      2.4:所以实例变量是从这个对象(其实就是实例)被创建开始,直到这个对象没有任何引用变量

去引用它,最终被垃圾回收站回收,这时这个实例变量也跟着就消失了。

      2.5:只要对象被当作引用,实例变量就将存在。

 

 

    总而言之:静态变量生命周期就是类的开始和销毁

              实例变量生命周期就是对象的开始和销毁.

 

 

二、局部变量

    1.作用域: 在你定义的范围内有效。

    2.作为方法或语句块的成员而存在,存在于方法的参数列表和方法定义中。

    

初始化

1:局部变量在使用前必须被程序员主动的初始化,

2:成员变量则会被系统提供一个默认的初始值。

所以在语法上,类的成员变量能够定义后直接使用,而局部变量在定义后先要赋初值,然后才能使用。

 

引用:所有类的成员变量可以通过this来引用。

2
0
分享到:
评论

相关推荐

    成员变量和局部变量

    生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 特别注意 成员变量和局部变量的名称可以一致,方法调用的时候采取就近原则

    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-api.doc

    一个Javaservlet具有一个生命周期,这个生命周期定义了一个Servlet如何被载入并被初始化,如何接收请求并作出对请求的响应,如何被从服务中清除。Servlet的生命周期被javax.servlet.Servlet这个接口所定义。 所有的...

    关于JVM的总结

    初始化:在准备阶段已经赋过一个系统要求的初始值,而在初始化阶段则通过程序制定的主管计划去初始化变量和其他资源,从另一个角度理解就是 执行类构造器的()方法 .()方法是由编译器自动收集类中的所有变量的复制动作和...

    新版Android开发教程.rar

    生应用如:G oogle 地图及其衍生应用、 GMail 、 GTalk 等。 � GPS 卫星导航功能,手机照相, MP3 ,蓝芽等均被列为 Android 所提供支持的基本选项。 � Android 的平台基本上是免费的,虽然有部份原生链接库会...

    深入Java虚拟机(原书第2版).pdf【附光盘内容】

    5.2 java虚拟机的生命周期 5.3 java虚拟机的体系结构 5.3.1 数据类型 5.3.2 字长的考量 5.3.3 类装载器子系统 5.3.4 方法区 5.3.5 堆 5.3.6 程序计数器 5.3.7 java栈 5.3.8 栈帧 ...

    JAVA面试题最全集

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

    [java]读书笔记整理:一切都是对象

    变量生命周期的混乱往往会导致大量的程序Bug,接下来将介绍java是怎样替我们完成所有的清理工作,从而大大地简化这个问题的。 作用域 大多数过程型语言都有作用域(Scope)的概念。作用域决定了在其内定义的变量...

    疯狂JAVA讲义

    学生提问:能不能只分配内存空间,不赋初始值呢?89 4.5.4 使用数组 90 学生提问:为什么要我记住这些异常信息? 91 4.5.5 JDK1.5提供了foreach循环 91 4.6 深入数组 93 4.6.1 内存中的数组 93 学生提问:为...

    java编程基础,应用与实例

    19.2 Applet的生命周期 344 19.3 Applet的多媒体处理 346 19.3.1 图像处理 346 19.3.2 声音处理 347 19.4 Applet参数 348 19.5 使用浏览器控制Applet 350 19.6 使用Applet控制浏览器 351 19.7 控制...

    java经典选择题题库及答案.docx

    Applet的生命周期包括init、start、stop、destroy四个阶段。init方法是Applet的初始化方法,start方法是Applet的启动方法,stop方法是Applet的停止方法,destroy方法是Applet的销毁方法。 Java语言的集合框架是指...

    深入Java虚拟机

    5.2 Java虚拟机的生命周期 5.3 Java虚拟机的体系结构 5.3.1 数据类型 5.3.2 字长的考量 5.3.3 类装载器子系统 5.3.4 方法区 5.3.5 堆 5.3.6 程序计数器 5.3.7 Java栈 5.3.8 栈帧 ...

    java 面试题 总结

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

    深入java虚拟机第二版

    5.2 Java虚拟机的生命周期 5.3 Java虚拟机的体系结构 5.3.1 数据类型 5.3.2 字长的考量 5.3.3 类装载器子系统 5.3.4 方法区 5.3.5 堆 5.3.6 程序计数器 5.3.7 Java栈 5.3.8 栈帧 5.3.9 本地方法...

    深入JAVA虚拟机(第2版)

    5.2 Java虚拟机的生命周期 5.3 Java虚拟机的体系结构 5.3.1 数据类型 5.3.2 字长的考量 5.3.3 类装载器子系统 5.3.4 方法区 5.3.5 堆 5.3.6 程序计数器 5.3.7 Java栈 5.3.8 栈帧 ...

    java面试宝典

    232、说出Servlet的生命周期,并说出Servlet和CGI的区别。 55 233、说出在JSP页面里是怎么分页的? 55 234、存储过程和函数的区别 55 235、事务是什么? 55 236、游标的作用?如何知道游标已经到了最后? 55 237、...

    Java学习笔记-个人整理的

    {1.5}基本类型变量的初始值}{26}{section.1.5} {1.6}数据类型转换}{26}{section.1.6} {1.7}方法}{26}{section.1.7} {1.8}运算符}{27}{section.1.8} {1.8.1}自增运算}{28}{subsection.1.8.1} {1.8.1.1}...

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

     SessionBean: Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个Bean的实例时,EJB容器不一定要创建一个新的Bean的实例供客户机调用,而是随便找一个现有的实例提供给客户机。...

    java自学之道

    1.4 控制一个线程生命周期最常用的方法 2、线程的创建和启动 3、线程的同步与死锁 3.1 同步的概念 3.2 线程同步举例 3.3 线程死锁 六、GUI 1、图形用户界面概述 1.1 组件 1.2容器 1.3 AWT组件 1.4 Swing组件 1.5 ...

    涵盖了90%以上的面试题

    Servlet的生命周期 JSP和Servlet的区别和联系 什么是MVC模型 TCP的连接和释放过程 什么是长连接和短连接 长连接是如何实现的 计算机网络体系结构 谈谈你对Struts的理解。 谈谈你对Hibernate的理解。 谈谈你对Lucene...

Global site tag (gtag.js) - Google Analytics