- 浏览: 1193176 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (434)
- js (20)
- struts2 (77)
- spring (11)
- hibernate (17)
- ssh整合 (9)
- 程序例子 (4)
- 正则表达式 (8)
- JSP (20)
- IDE (15)
- 数据库 (10)
- 工作经验技巧感悟 (21)
- 程序员的幽默 (4)
- windows设置 (4)
- 名词解释 (4)
- 技术入门 (4)
- jFreeChart (16)
- OGNL (5)
- java基础 (46)
- dwr (4)
- portal (1)
- 示例用到的附件 (0)
- 优秀程序员45个习惯 (1)
- webService (1)
- shell (3)
- ibatis (3)
- 开发工具 (1)
- OS (3)
- xmlbean (2)
- design_pattern (0)
- error (1)
- testng (2)
- python (18)
- hadoop (21)
- mapreduce (9)
- Hive (0)
- HBase (0)
- ubuntu (22)
- 多线程 (7)
- 自我改进 (6)
- 设计模式 (1)
- ssh (2)
- ant (4)
- guake (2)
- 云计算 (9)
- hdfs (3)
- 大数据 (1)
- 电信业务 (1)
- maven (2)
- svn (5)
- UML (1)
- 待处理问题 (2)
- log4j (1)
- css (1)
- LevelDb (0)
- thrift (6)
- 辅助工具 (3)
- 算法 (1)
- tornado (0)
- twisted (1)
- jvm (0)
- 图书 (1)
- 其他 (1)
- oracle (2)
- mvn (1)
- 私人信息 (0)
- nio (1)
- zookeeper (1)
- JavaIO (3)
- mongodb (1)
- java-高级 (6)
- spring-深入 (1)
- tomcat (1)
- quartz (1)
- 面试题 (1)
- redis (3)
- EJBCA (0)
- spring-3.0 (1)
- memcache (3)
- 性能检测 (1)
- android (0)
- 开源项目 (1)
- 将博客搬至CSDN (0)
- 架构之路 (1)
最新评论
-
pjwqq:
“子类对象”都拥有了“父类对象的一个实例的引用”我晕,应该是“ ...
java继承--父类属性的存放位置 -
gwgyk:
关于楼主最后的问题,我想可能是这样:InputFormat默认 ...
eclipse 运行hadoop wordcount -
fanjf:
上述7点基本具备,可惜现在因为项目需要,做管理方面工作!
如何判断自己是否具有成为一名优秀程序员的潜质 -
摸爬滚打NO1:
链接已经失效
Eclipse添加JSEclipse 插件(js插件) -
younglibin:
看了以上7条, 自己 也不知道是否能够对上, 感觉没一点都有那 ...
如何判断自己是否具有成为一名优秀程序员的潜质
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。
被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。
用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。
static 变量前可以有private修饰,表示这个变量可以在类的静态代码块中,或者类的其他静态成员方法中使用(当然也可以在非静态成员方法中使用--废话),但是不能在其他类中通过类名来直接引用,这一点很重要。实际上你需要搞明白,private是访问权限限定,static表示不要实例化就可以使用,这样就容易理解多了。static前面加上其它访问权限关键字的效果也以此类推。
static修饰的成员变量和成员方法习惯上称为静态变量和静态方法,可以直接通过类名来访问,访问语法为:
类名.静态方法名(参数列表...)
类名.静态变量名
用static修饰的代码块表示静态代码块,当Java虚拟机(JVM)加载类时,就会执行该代码块(用处非常大,呵呵)。
1、static变量
按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。两者的区别是:
对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。
对于实例变量,没创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵活)。
2、静态方法
静态方法可以直接通过类名调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法 (就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。因为实例成员与特定的对象关联!这个需要去理解,想明白其中的道理,不是记忆!!!
因为static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的abstract。
3、static代码块
static 代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。
利用静态代码块可以对一些static变量进行赋值,最后再看一眼这些例子,都一个static的main方法,这样JVM在运行main方法的时候可以直接调用而不用创建实例。
4、static和final一块用表示什么
static final用来修饰成员变量和成员方法,可简单理解为“全局常量”!
对于变量,表示一旦给值就不可修改,并且通过类名可以访问。
对于方法,表示不可覆盖,并且可以通过类名直接访问。
发表评论
-
java驼峰转下划线
2014-12-22 17:45 5225private String underscoreName ... -
java正则表达式
2014-10-11 10:55 0http://pan.baidu.com/s/1pJ2WVSv ... -
java递归和迭代的区别
2014-09-15 18:27 825能使用迭代的不适用递归,另外一半递归有明确的父子关系或者 数 ... -
java术语(PO/POJO/VO/BO/DAO/DTO)
2014-01-21 17:43 1071PO(persistant object) 持久对象在o/r ... -
outOfMemeoryError处理
2013-12-09 18:41 1202outOfMemeoryError处理(使用hprof) ... -
字节与字符的转化接口
2013-12-02 20:44 906字节与字符的转化接口 另外数据持久化或网络传输都是以字节进 ... -
深入分析 Java I/O 的工作机制
2013-12-02 20:19 817I/O 问题可以说是当今互联网 Web 应用中所 ... -
java 参数太多怎么处理
2013-11-27 18:29 2448java参数太多 解决方案一共有5种: 1.自定义参 ... -
ByteBuffer的allocate和allocateDirect
2013-11-20 16:48 5618在Java中当我们要对数据进行更底层的操作时,通常是操作数据 ... -
LinkedListMultimap用法
2013-11-14 16:52 5181public static void main(S ... -
5种IO模型的图解分析和比较
2013-12-02 20:17 2301Unix 5种IO模型的图解分析和比较 (转自http: ... -
long 转换为 byte后正确排序
2013-10-28 16:02 1451关于 java中long类型数据转换为byte[]数组 ... -
thrift 客户端链接池
2013-10-25 13:33 835thrift 没有实现链接池的功能,附件为thrift的链接池 ... -
java stream
2013-10-25 11:28 911经常在使用网络数据传输的时候,小数据使用 打包传输,大数据使 ... -
int转byte[],byte[]转int
2013-10-21 15:56 1194public byte[] intToByte(int i) ... -
java socket编程
2013-10-17 15:56 930http://www.cnblogs.com/linzhen ... -
prepareStatement与Statement的区别
2013-10-08 18:09 1124关于jdbc的详细介绍参照官方文档: http://do ... -
连接池
2013-09-29 14:24 0http://www.ibm.com/developerwor ... -
JAVA String.format 方法使用介绍
2013-09-06 17:02 4049public static void main(Strin ... -
java的System.getProperty()方法可以获取的值
2013-09-02 11:01 858java.version Java ...
相关推荐
C语言中static变量使用方法
PHP面向对象之旅深入理解static变量与方法 PHP面向对象之旅深入理解static变量与方法
java中的static变量,方法,代码块 含例子和解释
详细的分析了全局变量,局部变量,static变量的区别 以及使用时用该注意的东西,很不错的。有兴趣的可以看看
Java中static变量的几个优缺点 简单介绍static
static表示“全局”或者“静态”的意思,用来修饰成员... 用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。
static变量作用是什么,本文将做详细解释
lazy-static.rs, 在 Rust 中,用于定义惰性计算的static 变量的小宏 lazy-static.rs在 Rust 中声明延迟求值的静态的宏。使用这里宏,可以以使 static s 在运行时要求执行代码,以便初始化。 这包括需要堆分配,如...
PHP面向对象之旅深入理解static变量与方法共11页.pdf.zip
全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域...
block,局部变量,全部变量,static的静态变量关系
如在页面中统计某个按钮被按下的次数,先在类中OnClick事件的处理过程前定义一static变量times,则每次调用该按钮的OnClick事件时,令times增1即可,非常方便: [C#]: 代码如下: … static int times=0; … private ...
这是我自己写的android jni调用java static属性的例子
主要介绍了C#类中static变量用法,实例分析了static变量使用技巧与相关注意事项,需要的朋友可以参考下
Static静态变量的应用,用登录的方法演算,当输入密码超过三次时,自动退出程序.(VB6.0源代码编写)
TIA博途中FB和FC块里的IN,Inout,Out的区别以及Static和Temp变量的用法
static关键字可以用来修饰变量、方法。 不经过实例化,就可以直接访问类中static的属性和static的方法。 static 的属性和方法,只能访问static的属性和方法,不能类访问非静态的属性和方法。因为静态属性和方法被...
主要介绍了Java中static变量能继承,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了Spring不能注入Static变量的原因及Spring注入静态变量,需要的朋友可以参考下
绍Java之对象引用static变量