- 浏览: 1194612 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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条, 自己 也不知道是否能够对上, 感觉没一点都有那 ...
如何判断自己是否具有成为一名优秀程序员的潜质
java中一切皆是对象
一个类中对象的定义一般都是分一下的两步来进行的:
1/ A a; //定义了一个类A的引用
2/ a=new A("10","2563"); //真正地建立了对象a,也就是a指向了内存中一块连续的区域
也就是说通常我们说的创建了一个类,只是指出了这个类的外观和行为,除非用new 创建那个类的一个对象,否则的话,实际上并未得到任何的东西。只有执行了new以后,才会正式生成数据存储空间,并可使用相应的方法。
但是如果我们要只想用一个存储区域来保存一个特定的数据——无论要创建多少个对象,甚至根本不创建对象。或者我们需要一个特殊的方法,它没有与这个类的任何对象关联。也就是说,即使没有创建对象,也需要一个能调用的方法。为满足这两方面的要求,可使用static(静态)关键字。
一旦将什么东西设为static,数据或方法就不会同那个类的任何对象实例联系到一起。所以尽管从未创建那个类的一个对象,仍能调用一个static方法,或访问一些static数据。而非静态的方法或者变量就必须知道它们操作的具体对象
下面是java编程思想中的例子和解释:
例如,下述代码能生成一个static数据成员,并对其初始化:
class StaticTest {
Static int i = 47;
}
现在,尽管我们制作了两个StaticTest对象,但它们仍然只占据StaticTest.i的一个存储空间。这两个对象都共享同样的i。请考察下述代码:
StaticTest st1 = new StaticTest();
StaticTest st2 = new StaticTest();
此时,无论st1.i还是st2.i都有同样的值47,因为它们引用的是同样的内存区域。
有两个办法可引用一个static变量。正如上面展示的那样,可通过一个对象命名它,如st2.i。亦可直接用它的类名引用,而这在非静态成员里是行不通的(最好用这个办法引用static变量,因为它强调了那个变量的"静态"本质)。
StaticTest.i++;
其中,++运算符会使变量增值。此时,无论st1.i还是st2.i的值都是48。
类似的逻辑也适用于静态方法。既可象对其他任何方法那样通过一个对象引用静态方法,亦可用特殊的语法格式"类名.方法()"加以引用。静态方法的定义是类似的:
class StaticFun {
static void incr() { StaticTest.i++; }
}
从中可看出,StaticFun的方法incr()使静态数据i增值。通过对象,可用典型的方法调用incr():
StaticFun sf = new StaticFun();
sf.incr();
或者,由于incr()是一种静态方法,所以可通过它的类直接调用:
StaticFun.incr();
尽管是"静态"的,但只要应用于一个数据成员,就会明确改变数据的创建方式(一个类一个成员,以及每个对象一个非静态成员)。若应用于一个方法,就没有那么戏剧化了。对方法来说,static一项重要的用途就是帮助我们在不必创建对象的前提下调用那个方法。正如以后会看到的那样,这一点是至关重要的——特别是在定义程序运行入口方法main()的时候。
和其他任何方法一样,static方法也能创建自己类型的命名对象。所以经常把static方法作为一个"领头羊"使用,用它生成一系列自己类型的"实例"。
发表评论
-
java驼峰转下划线
2014-12-22 17:45 5229private String underscoreName ... -
java正则表达式
2014-10-11 10:55 0http://pan.baidu.com/s/1pJ2WVSv ... -
java递归和迭代的区别
2014-09-15 18:27 829能使用迭代的不适用递归,另外一半递归有明确的父子关系或者 数 ... -
java术语(PO/POJO/VO/BO/DAO/DTO)
2014-01-21 17:43 1074PO(persistant object) 持久对象在o/r ... -
outOfMemeoryError处理
2013-12-09 18:41 1204outOfMemeoryError处理(使用hprof) ... -
字节与字符的转化接口
2013-12-02 20:44 907字节与字符的转化接口 另外数据持久化或网络传输都是以字节进 ... -
深入分析 Java I/O 的工作机制
2013-12-02 20:19 820I/O 问题可以说是当今互联网 Web 应用中所 ... -
java 参数太多怎么处理
2013-11-27 18:29 2451java参数太多 解决方案一共有5种: 1.自定义参 ... -
ByteBuffer的allocate和allocateDirect
2013-11-20 16:48 5623在Java中当我们要对数据进行更底层的操作时,通常是操作数据 ... -
LinkedListMultimap用法
2013-11-14 16:52 5186public static void main(S ... -
5种IO模型的图解分析和比较
2013-12-02 20:17 2303Unix 5种IO模型的图解分析和比较 (转自http: ... -
long 转换为 byte后正确排序
2013-10-28 16:02 1456关于 java中long类型数据转换为byte[]数组 ... -
thrift 客户端链接池
2013-10-25 13:33 839thrift 没有实现链接池的功能,附件为thrift的链接池 ... -
java stream
2013-10-25 11:28 915经常在使用网络数据传输的时候,小数据使用 打包传输,大数据使 ... -
int转byte[],byte[]转int
2013-10-21 15:56 1198public byte[] intToByte(int i) ... -
java socket编程
2013-10-17 15:56 935http://www.cnblogs.com/linzhen ... -
prepareStatement与Statement的区别
2013-10-08 18:09 1126关于jdbc的详细介绍参照官方文档: http://do ... -
连接池
2013-09-29 14:24 0http://www.ibm.com/developerwor ... -
JAVA String.format 方法使用介绍
2013-09-06 17:02 4057public static void main(Strin ... -
java的System.getProperty()方法可以获取的值
2013-09-02 11:01 862java.version Java ...
相关推荐
java中的static变量,方法,代码块 含例子和解释
Java中static变量的几个优缺点 简单介绍static
static表示“全局”或者“静态”的意思,用来修饰成员... 用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。
java中如何使用Static的变量和方法.doc
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念……
Java中static静态变量.pdf 学习资料 复习资料 教学资源
主要介绍了Java中static变量能继承,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Java 关键字修饰成员变量例子。
JAVAStatic静态变量.doc
细说Java中的static关键字声明的变量、方法、静态块
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块
Java 1.8对接口有两个方面的增强:接口中可以添加使用default或者static修饰的方法 增加default方法:又叫做接口扩展方法,即在不破坏java现有实现架构的情况下能往接口里增加新方法, default关键字可以给接口添加...
Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问.下面我们来详细了解一下吧
如何使用Static的变量和方法(初学者基础篇)!!
static所声明的变量在Java中有一个初始化的先后顺序,带着这个问题接下来我们就来进行Java中static静态变量的初始化完全解析:
MarkDown文档,大家应该都知道,@Value注解可以给类中的非静态变量注入值,但是给静态变量注入值则会有警告,结果是失败的,本文档说明了如何使用@Value注解给类的静态变量赋值
Java中静态(static)变量、方法与实例变量、方法的规范-附件资源
statilocal java 静态变量和静态块加载顺序,静态变量和同名静态变量块加载的顺序。
在阅读过程中,尝试编写简单的Java程序,使用static关键字定义和调用静态成员变量和静态方法。 建议通过阅读相关的Java教材或搜索资料,进一步扩展学习与static关键字相关的高级主题,如静态代码块、静态内部类和...
在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块。 Java把内存分为...