/*
*    static 静态的
*    static修饰的成员变量的特点
*    1.static修饰的成员变量是该类的所有对象共享
*    2.static修饰的成员变量是随着类的加载就在静态区中开辟内存了,所以有限与非静态成员开辟内存
*    3.static修饰的成员变量可以通过类名直接访问
*    静态成员变量和非静态成员变量的区别?
*    1.存储的数据
*    静态成员变量存储的是所有对象共享的数据
*    非静态成员变量存储的是每个对象特有的数据
*    存储的位置
*    静态成员便令是随着类的加载在方法区中的静态区开辟内存
*    非静态成员变量是随着对象的创建,在堆中开辟内存
*    调用方式
*    静态成员变量可以通过类名访问,也可以通过对象访问
*    非静态成员变量可以通过对象访问
*    生命周期
*    静态成员变量随着类的加载就在方法区中的静态区出现,整个程序执行玩消失。
*    非静态成员变量随着对象的创建在堆中出现,随着对象被垃圾回收机制回收,而消失。
*/
总结:拥有static的静态成员会在程序的执行的时候优先开始执行,且会在程序执行结束后消失,拥有全局都可以访问到的特性。可以直接通过类名调用,也可以通过对象调用。静态资源中无法访问非静态资源,因为在程序的加载顺序中,静态资源优于非静态资源加载,在静态资源中引用非静态资源时,非静态资源不存在,或报错,静态资源无法从上下文中引入非静态 变量 name,但是可以引用静态成员的变量。
 
什么时候把成员变量修饰为static?
当成员变量需要被类的所有对象访问时
什么时候把成员函数修饰为static?
当成员函数中没有用到所属类中的任何的非静态成员时
  1. class Student {
  2. String name;//实例成员变量
  3. static String country = "CN";//类变量
  4. public void show() {//实例成员函数
  5. System.out.println(name + " " + country);
  6. }
  7. }
  8. class Demo9 {
  9. public static void main(String[] args) {
  10. Student stu = new Student();
  11. stu.name = "Jack";
  12. stu.show();
  13. Student stu2 = new Student();
  14. stu2.name = "Tom";
  15. stu2.show();
  16. System.out.println(Student.country);
  17. }
  18. }

(二十八)static关键字的更多相关文章

  1. WCF技术剖析之二十八:自己动手获取元数据[附源代码下载]

    原文:WCF技术剖析之二十八:自己动手获取元数据[附源代码下载] 元数据的发布方式决定了元数据的获取行为,WCF服务元数据架构体系通过ServiceMetadataBehavior实现了基于WS-ME ...

  2. mysql进阶(二十八)MySQL GRANT REVOKE用法

    mysql进阶(二十八)MySQL GRANT REVOKE用法   MySQL的权限系统围绕着两个概念: 认证->确定用户是否允许连接数据库服务器: 授权->确定用户是否拥有足够的权限执 ...

  3. JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤

    JAVA之旅(二十八)--File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤 我们可以继续了,今天说下File 一.File概述 文件的操作是非常 ...

  4. (转载)Android项目实战(二十八):Zxing二维码实现及优化

    Android项目实战(二十八):Zxing二维码实现及优化   前言: 多年之前接触过zxing实现二维码,没想到今日项目中再此使用竟然使用的还是zxing,百度之,竟是如此牛的玩意. 当然,项目中 ...

  5. (转载)Android项目实战(二十八):使用Zxing实现二维码及优化实例

    Android项目实战(二十八):使用Zxing实现二维码及优化实例 作者:听着music睡 字体:[增加 减小] 类型:转载 时间:2016-11-21我要评论 这篇文章主要介绍了Android项目 ...

  6. 《手把手教你》系列技巧篇(二十八)-java+ selenium自动化测试-处理模态对话框弹窗(详解教程)

    1.简介 在前边的文章中窗口句柄切换宏哥介绍了switchTo方法,这篇继续介绍switchTo中关于处理alert弹窗的问题.很多时候,我们进入一个网站,就会弹窗一个alert框,有些我们直接关闭, ...

  7. Bootstrap <基础二十八>列表组

    列表组.列表组件用于以列表形式呈现复杂的和自定义的内容.创建一个基本的列表组的步骤如下: 向元素 <ul> 添加 class .list-group. 向 <li> 添加 cl ...

  8. Web 前端开发人员和设计师必读文章推荐【系列二十八】

    <Web 前端开发精华文章推荐>2014年第7期(总第28期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...

  9. Citrix 服务器虚拟化之二十八 XenApp6.5发布文档内容

    Citrix 服务器虚拟化之二十八  XenApp 6.5发布文档内容 XenApp可发布以下类型的资源向用户提供信息访问,这些资源可在服务器或桌面上虚拟化: 1)  服务器桌面:发布场中服务器的整个 ...

  10. VMware vSphere 服务器虚拟化之二十八 桌面虚拟化之安装View传输服务器

    VMware vSphere 服务器虚拟化之二十八 桌面虚拟化之安装View传输服务器 View 传输服务器用于管理和简化数据中心与在最终用户本地系统上检出使用的 View 桌面之间的数据传输.必须安 ...

随机推荐

  1. 使用 libevent 和 libev 提高网络应用性能(IBM)

    http://www.ibm.com/developerworks/cn/aix/library/au-libev/

  2. Oracle数据安全(四)j角色管理

    一.角色管理的概述 1.角色的概念 为了简化数据库权限的管理,在Oracle数据库中引入了角色的概念.所谓的角色就是一系列相关权限的集合. 2.角色的特点 在数据库中,角色的名称必须是唯一的,不能与用 ...

  3. LCD控制器与帧率、刷新率的关系分析

    源:LCD控制器与帧率.刷新率的关系分析 LCM之Fmark功能 && LCD控制器同LCD驱动器的差别 && 帧率与刷新率的关系 && OLED背光

  4. 【Head First Servlets and JSP】笔记23:Expression Language(EL) 完全攻略

    基本上是<Head First Servlets and JSP>内容的整理.扩充.顺便推荐一个供参考的JSP教程:JSP Tutorial内容很全面,还有一些有趣的实例. 完整代码参考 ...

  5. JavaEE之Junit单元测试

    1编写测试类,简单理解Junit可以部分用于取代java的main方法 2在测试类方法上添加注解 @Test 3 @Test修饰的方法要求:public void 方法名() {…} ,方法名自定义建 ...

  6. php数组元素去空,测试奇数偶数

    <?php//返回奇数 function test_odd($var) { return($var & 1); } $a1=array("a","b&quo ...

  7. jsp——js事件修改属性样式的两种方法(直接赋值、修改属性)、验证表单符合某要求、阻止表单提交、告诉浏览器不要缓存

    代码 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncodi ...

  8. Activity启动的四种方式

    Activity启动方式有四种,分别是: standardsingleTopsingleTasksingleInstance 可以根据实际的需求为Activity设置对应的启动模式,从而可以避免创建大 ...

  9. Spring Boot 热部署的实现 - 原创

    实现方式有两大种(其中包含3种): 一.基于springloaded 1.1)Maven启动方式 第一步:在pom.xml中的“plugin节点”里面添加如下依赖: <dependencies& ...

  10. Javascript -- 级联菜单, javascript解析xml文件

    1. cities.xml 保存省份和城市 <?xml version="1.0" encoding="GB2312"?> <china> ...