- 浏览: 1214309 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 5285private String underscoreName ... -
java正则表达式
2014-10-11 10:55 0http://pan.baidu.com/s/1pJ2WVSv ... -
java递归和迭代的区别
2014-09-15 18:27 877能使用迭代的不适用递归,另外一半递归有明确的父子关系或者 数 ... -
java术语(PO/POJO/VO/BO/DAO/DTO)
2014-01-21 17:43 1122PO(persistant object) 持久对象在o/r ... -
outOfMemeoryError处理
2013-12-09 18:41 1244outOfMemeoryError处理(使用hprof) ... -
字节与字符的转化接口
2013-12-02 20:44 954字节与字符的转化接口 另外数据持久化或网络传输都是以字节进 ... -
深入分析 Java I/O 的工作机制
2013-12-02 20:19 860I/O 问题可以说是当今互联网 Web 应用中所 ... -
java 参数太多怎么处理
2013-11-27 18:29 2550java参数太多 解决方案一共有5种: 1.自定义参 ... -
ByteBuffer的allocate和allocateDirect
2013-11-20 16:48 5656在Java中当我们要对数据进行更底层的操作时,通常是操作数据 ... -
LinkedListMultimap用法
2013-11-14 16:52 5271public static void main(S ... -
5种IO模型的图解分析和比较
2013-12-02 20:17 2349Unix 5种IO模型的图解分析和比较 (转自http: ... -
long 转换为 byte后正确排序
2013-10-28 16:02 1527关于 java中long类型数据转换为byte[]数组 ... -
thrift 客户端链接池
2013-10-25 13:33 892thrift 没有实现链接池的功能,附件为thrift的链接池 ... -
java stream
2013-10-25 11:28 964经常在使用网络数据传输的时候,小数据使用 打包传输,大数据使 ... -
int转byte[],byte[]转int
2013-10-21 15:56 1239public byte[] intToByte(int i) ... -
java socket编程
2013-10-17 15:56 980http://www.cnblogs.com/linzhen ... -
prepareStatement与Statement的区别
2013-10-08 18:09 1187关于jdbc的详细介绍参照官方文档: http://do ... -
连接池
2013-09-29 14:24 0http://www.ibm.com/developerwor ... -
JAVA String.format 方法使用介绍
2013-09-06 17:02 4122public static void main(Strin ... -
java的System.getProperty()方法可以获取的值
2013-09-02 11:01 904java.version Java ...
相关推荐
### C语言中static变量使用方法详解 在C语言编程中,`static`关键字扮演着一个非常重要的角色,尤其是在处理变量的存储方式、作用域以及生命周期方面。本文将深入探讨C语言中`static`变量的使用方法,包括静态局部...
Static变量 `static`变量,亦称为静态变量或类变量,与实例变量相对。其最显著的特点在于,无论创建多少个该类的实例,`static`变量在内存中仅存在一份拷贝,这意味着所有实例共享同一份变量值。这不仅节约了内存...
### 全局变量、局部变量及Static变量的区别详解 #### 一、基本概念与作用域 **全局变量(Global Variables)**: - **定义**: 在函数外部定义的变量。 - **作用域**: 全局变量在整个程序中都可被访问,只要在程序的...
**一、static变量** 1. **静态局部变量**: 静态局部变量在函数内部定义,但不同于普通局部变量,它在整个程序运行期间都存在,而不是在函数调用结束后被销毁。这意味着,当函数被多次调用时,静态局部变量会保留...
在PHP的OOP中,`static`关键字扮演着重要的角色,它用于声明类的静态变量和静态方法。静态变量和方法与类紧密关联,而非与类的实例相关。下面我们将深入探讨`static`关键字的工作原理及其应用场景。 1. **静态变量*...
C语言中static变量声明的作用 在C语言中,static关键字有三个主要作用:隐藏、保持变量内容的持久和默认初始化为0。下面我们将详细解释每个作用。 1. 隐藏作用 static关键字的首要功能是隐藏。它可以使变量或函数...
在VB6.0编程环境中,Static变量是一种特殊的变量类型,它在函数或过程中被声明,其特点是即使函数或过程执行结束,它的值也不会被清除,而是保留下来供下次调用时使用。本教程通过一个登录系统的例子来深入探讨...
4. Static变量:Static变量在FB或FC的执行过程中保留其值,即使在程序执行的多个扫描周期之间也是如此。这意味着即使程序块被调用多次,静态变量的值也不会被重置。它们通常用于存储需要在不同时间保持状态的信息,...
本资料“PHP面向对象之旅深入理解static变量与方法”旨在帮助开发者深入理解PHP中的静态(static)变量和静态方法,这些都是OOP的重要组成部分。下面我们将详细探讨这两个概念。 1. 静态变量 静态变量是在类中定义...
Java中static变量的几个优缺点 简单介绍static
static表示“全局”或者“静态”的意思,用来修饰成员... 用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。
在VB6.0编程环境中,Static变量是一种特殊的变量类型,它在函数或过程中扮演着持久化存储的角色。Static变量的特点在于,即使函数或过程执行完毕,它的值也不会被清除,而是保留下来,等待下一次调用时继续使用。这...
lazy-static.rs, 在 Rust 中,用于定义惰性计算的static 变量的小宏 lazy-static.rs在 Rust 中声明延迟求值的静态的宏。使用这里宏,可以以使 static s 在运行时要求执行代码,以便初始化。 这包括需要堆分配,如...
"Java 中 static 变量的继承和多态" Java 中的 static 变量和方法可以被子类继承,但是它们不能被重写,无法形成多态。这个结论来自于对 Java 中 static 变量和方法的研究和实践。 在 Java 中,static 变量和方法...
如在页面中统计某个按钮被按下的次数,先在类中OnClick事件的处理过程前定义一static变量times,则每次调用该按钮的OnClick事件时,令times增1即可,非常方便: [C#]: 代码如下: … static int times=0; … private ...
本教程将深入探讨如何在Android JNI中使用静态(static)变量,以实现Java层与原生代码之间的数据共享。 首先,了解JNI的基本概念是必要的。JNI为Java应用程序提供了一个接口,可以调用本地方法(即非Java代码),...
#### Static变量 静态变量,也被称为类变量,是在类的层次上共享的变量,而不是在每个对象的层次上。这意味着无论创建了多少个类的实例,静态变量只有一个副本存在。当在静态变量前添加`static`关键字时,这个变量...
当我们谈论“对象引用static变量”时,我们关注的是如何通过对象引用访问这些静态成员,以及这样做可能会产生的行为和后果。 首先,让我们分析给定的代码片段: 1. 在第一个例子中: ```java public class Test { ...
二、Static变量的声明 在VB.NET中,我们可以使用`Static`关键字来声明一个静态变量。例如: ```vb Public Class Counter Public Shared StaticCount As Integer '声明一个静态变量 Public Sub IncrementCounter...
#### Static变量的特点 1. **共享性**:当声明了一个`static`变量后,这个变量由所有该类的实例共享,而不是每个实例拥有单独的副本。 2. **生命周期**:`static`变量的生命周期与类相同,即当类加载到内存中时,`...