一、成员变量和局部变量区别(成员变量默认为包内访问权限,即使是子类,不在一个包内也无法访问)

  1、在类中的位置不同

    成员变量:在类中方法外;

    局部变量:在方法定义中或者方法声明上

  2、在内存中的位置不同

    成员变量:在堆内存

    局部变量:在栈内存

  3、生命周期不同

    成员变量:随便对象的创建而存在,随着对象的消失而消失

    局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

  4、初始化值不同

    成员变量:有默认初始值

    局部变量:没有默认初始值,必须定义,赋值,才能使用

  注意事项:局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。

二、图解内存中对象的创建及其方法执行

三、static特点:(可以修饰成员变量,也可以修饰成员方法)

  1、随着类的加载而加载

  2、优先于对象存在

  3、被类的所有对象共享(如果一个类的成员变量对所有对象共享,所以建议定义为它为静态的)

  4、可以通过类名调用(也可以通过对象调用,由于它是类成员,所以推荐使用类名调用)

四、static内存图解

五、static关键字注意事项:

  1、在静态方法中是没有this关键字的

    静态是随着类的加载而加载,this是随着对象的创建而存在;

    静态比对象先存在

  2、静态方法只能访问静态成员变量和静态的成员方法

    非静态方法静态非静态的成员变量和方法都能访问

  总之:静态只能访问静态

六、静态变量和成员变量区别

  1、所属不同

    静态变量属于类,所以也称为类变量

    成员变量属于对象,所以也称为实例变量(对象变量)

  2、内存中位置不同

    静态变量存储于方法区的静态区

    成员变量存储于堆内存

  3、内存中出现时间不同

    静态变量随着类的加载而加载,随着类的消失而消失

    成员变量随着对象的创建而存在,随着对象的消失而消失

  4、调用不同

    静态变量可以通过类名调用,也可以通过对象调用

    成员变量只能通过对象调用

Java初学(五)的更多相关文章

  1. Java实验五

    20145113 Java实验五 网络编程及安全 实验内容 对于客户端与服务器端:修改原代码,使其可以实现连续的传消息,并且传送文件. 对于加解密部分: 对于原先的加密只加密"hello w ...

  2. java的五种数据类型解析

    不知道大家对java的简单数据类型是否了解,下面针对Java的五种类型简单数据类型表示数字和字符,进行详细的讲解和分析. 一.简单数据类型初始化 在Java语言中,简单数据类型作为类的成员变量声明时自 ...

  3. java初学的分析

    java初学的分析第一阶段:入门阶段学习目标:简单项目开发学习内容:1.Java入门书籍,Java基础知识.关于Java入门级的书,给大家推荐过<Java编程思想>.<Java核心技 ...

  4. JAVA首选五款开源Web开发框架

    Spring Spring是一个开源的Java/Java EE全功能栈应用程序框架,在JavaEE社区中非常受欢迎,以Apache许可证形式发布,也有.NET平台上的移植版本. Struts2 Str ...

  5. Java进阶(五十三)屡试不爽之正则表达式

    Java进阶(五十三)屡试不爽之正则表达式 在线测试网址: http://tool.oschina.net/regex/# 上面的在线测试网址,含有正则表达式的生成,非常实用.大家共勉之! 匹配中文: ...

  6. Java进阶(五十一)Could not create the view: An unexpected exception was thrown

    Java进阶(五十一)Could not create the view: An unexpected exception was thrown 今天打开Myeclipse10的时候,发现server ...

  7. Java进阶(五十一)必须记住的Myeclipse快捷键

    Java进阶(五十一)必须记住的Myeclipse快捷键 在调试程序的时候,我们经常需要注释一些代码,在用Myeclipse编程时,就可以用 Ctrl+/ 为选中的一段代码加上以 // 打头的注释:当 ...

  8. Java进阶(五十二)利用LOG4J生成服务日志

    Java进阶(五十二)利用LOG4J生成服务日志 前言 由于论文写作需求,需要进行流程挖掘.前提是需要有真实的事件日志数据.真实的事件日志数据可以用来发现.监控和提升业务流程. 为了获得真实的事件日志 ...

  9. Java第五次实验

    Java第五次实验--网络编程与安全 任务一: 一.实验要求: 两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA 结对实现 ...

随机推荐

  1. 【C#】【Thread】Monitor和Lock

    所谓锁,就是之锁定的区域只能单个线程进入进行操作,其他线程在锁的外围等待.Monitor锁通过Monitor.Enter(obj)和Monitor.Exit(obj)来锁定和解锁.Lock锁则直接Lo ...

  2. C语言 文件操作6--文件打开方式详解

    fopen文件打开模式 r代表read的简写,+代表可读可写,w代表write,b代表bit二进制位,t代表text r 打开只读文件,该文件必须存在r+ 打开可读可写的文件,该文件必须存在(这里的写 ...

  3. C# 版本的 计时器类:精确到微秒 秒后保留一位小数 支持年月日时分秒带单位的输出

    class TimeCount { // 临时变量,存放当前类能表示的最大年份值 ; /// <summary> /// 获取毫秒能表示的最大年份数 /// </summary> ...

  4. 处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表

    IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决办法 IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Int ...

  5. 机器学习算法 Python & R速查表

  6. python调用windows api

    import ctypes # 方式一 ctypes.windll.user32.MessageBoxA(None, 'message', 'title', 0) # 方式二 ctypes.WinDL ...

  7. JS 之DOM range对象

    DOM范围 DOM中的range对象是DOM2中新定义的接口.通过这个对象可以选择文档中的某个区域,而不必考虑节点的界限. 创建范围 document.createRange()创建一个范围,这个范围 ...

  8. [CareerCup] 7.1 Basketball Shooting Game 投篮游戏

    7.1 You have a basketball hoop and someone says that you can play one of two games. Game 1: You get ...

  9. LeetCode:Unique Binary Search Trees I II

    LeetCode:Unique Binary Search Trees Given n, how many structurally unique BST's (binary search trees ...

  10. lambda的Func<>函数

    Func<int,int,int> fc=(int x,int y)=>x*y;Console.WriteLine(fc(5, 2)); //声明一个方法,返回值为int,参数是两个 ...