java中static的用法
static变量有点类似于C中的全局变量的概念。值得探讨的是静态变量的初始化问题。拿以下程序为例 class Value{ static int c=0; Value(){ c=15; } Value(int i){ c=i; } static void inc(){ c++; }}class Count{ public static void prt(String s){ System.out.println(s); } Value v=new Value(10); static Value v1,v2; static{ prt("v1.c="+v1.c+" v2.c="+v2.c); v1=new Value(27); prt("v1.c="+v1.c+" v2.c="+v2.c); v2=new Value(15); prt("v1.c="+v1.c+" v2.c="+v2.c); } public static void main(String[] args){ Count ct=new Count(); prt("ct.c="+ct.v.c); prt("v1.c="+v1.c+" v2.c="+v2.c); v1.inc(); prt("v1.c="+v1.c+" v2.c="+v2.c); prt("ct.c="+ct.v.c); }} 运行结果如下: v1.c=0 v2.c=0v1.c=27 v2.c=27v1.c=15 v2.c=15ct.c=10v1.c=10 v2.c=10v1.c=11 v2.c=11ct.c=11 这个程序展示了静态初始化的各种特性。如果你初次接触Java,结果可能令你吃惊。可能会对static后加大括号感到困惑。首先要告诉你的是,static定义的变量会优先于任何其它非static变量,不论其出现的顺序如何。正如在程序中所表现的,虽然v出现在v1和v2的前面,但是结果却是v1和v2的初始化在v的前面。在static{后面跟着一段代码,这是用来进行显式的静态变量初始化,这段代码只会初始化一次,且在类被第一次装载时。如果你能读懂并理解这段代码,会帮助你对static关键字的认识。在涉及到继承的时候,会先初始化父类的static变量,然后是子类的,依次类推。非静态变量不是本文的主题,在此不做详细讨论,请参考Think in Java中的讲解。
转载于:https://www.cnblogs.com/yigerendehaibian/archive/2012/11/19/2777413.html
java中static的用法相关推荐
- java中static的用法_Java类中static的用法
关于Java中static的使用有以下四种情况: 1.静态成员变量 被static修饰的成员变量,叫静态成员变量或类变量:没有被static修饰的变量,叫实例变量. 两者的区别是: 静态 ...
- Java中static final用法小结
一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理 ...
- Java中static的含义和用法
Java中static的含义和用法 static:静态的,用于修饰成员(成员变量,成员方法); 1.被static所修饰的变量或者方法会储存在数据共享区; 2.被static修饰后的成员变量只有一份! ...
- Java中static的作用
Java中static的作用 请先看下面这段程序: public class Hello{ public static void main(String[] args){ //(1) System.o ...
- java中substring的用法
2019独角兽企业重金招聘Python工程师标准>>> java中substring的用法 str=str.substring(int beginIndex);截取掉str从首字母起 ...
- php simpledateformat,Java中SimpleDateFormat的用法介绍(代码示例)
本篇文章给大家带来的内容是关于Java中SimpleDateFormat的用法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.为什么要使用SimpleDateFo ...
- java中native的用法
java中native的用法前言:在查看 Thread.java 文件时,发现有一个 方法比较特殊 private native void start0();概念:native关键字说明其修饰的方法是 ...
- day9:JAVA中while的用法
一.while循环 while循环是先判断条件是否为真,如果条件为真,则执行循环体. 语句形式: while( 循环条件 ){ 一条语句 / 多条语句 ( 循环体 ) } 二.do-while循环 d ...
- Java 中 switch 的用法
Java 中 switch 的用法 1.switch 中的表达式的数据的数据类型为 byte, short, int, char, String(jdk > 1.7支持 String 类型) 2 ...
最新文章
- union 和 union all 有什么不同?
- RAML用户应遵循的C#与Web API代码生成模式
- MySQL timediff()函数
- oracle:触发器,自治事务,instead of trigger,trigger
- 如何使用电脑将png转ico格式?赶快跟着小编学起来
- 开启和关闭android移动网络
- [转]window xp IIS的配置(1)
- C++统计代码执行耗时
- 一名3年工作经验的程序员应该具备的技能 !
- 动态规划算法学习(一)爬楼梯和凑金额
- 简要介绍下tensorflow的计算图
- asp.net大学生学科竞赛报名及管理系统
- 【Vue项目笔记心得】Swiper插件用于轮播图
- sEMG项目总结(1)灵巧手控制系统
- 机器视觉检测由2D向3D迈进
- Robust face recognition via sparse representation[J]. Pattern Analysis and Machine Intelligence 论文翻译
- 解决uc数据互通问题
- 天河二号编译openfoam2006+petsc
- 华为任正非:从两万到千亿的创业故事
- 短视频平台搭建,移动端商品下单、购买过程的实现
热门文章
- mongoose 笔记
- spring-beans模块分析
- jquery--- 属性和样式的操作 设置和获取HTML、文本和值、焦点事件
- 导出数据生成excel
- jQuery Validate 验证,校验规则写在控件中的具体例子
- mybatis中的#{value}和${value}的区别
- 微软2008系列 (Orcas + Longhorn Server+SQL2008)将于2008年2月27日发布
- kernel mtd 分区与UBOOT 分区的理解
- C++利用SOCKET传送文件
- CMOS图像传感器——图像传感器噪声