`
SundayHa
  • 浏览: 6017 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

关于 Java static 的总结

阅读更多
static关键字

关于static关键字的用途有在google上找的,有自己的体会的,在这里做一下汇总。

        static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块。

StaticOne.java

public class StaticOne {
	static int i = 1; //定义一个静态变量i
	int j = 1; //定一个变量j
	//定义一个静态方法
	static void doSomeThing() {

		System.out.println(++i);

	}
    //定义一个static代码块
    static {
        int k = 1;
        System.out.println(++k);
    }

}



          当声明一个事务是static时,就意味着这个域或方法不会与包含它的那个类的任何对象实例联系在一起。所以,即使从未创建某个类的任何对象,也能访问static域。非static域或者方法必须知道它们一起运作的特定对象。

          static前面可以加上访问权限关键字如public、private。来限定该成员变量或者成员方法在其它类的访问范围。

          static修饰的成员变量和成员方法习惯上称为静态变量和静态方法,可以直接通过类名来访问,其语法为:
类名.静态方法名(参数列表)
类名.静态变量名

         一、static变量
          按照是否是静态的对类的成员变量来分,可分为两类,一是静态成员变量又叫类变量、二是实例变量。两者的区别,静态成员变量在类被加载的时候就在内存中分配好了一块自己独立的位置(这个位置是始终存在的)可以通过类名来调用,也可以通过对象调用,但是通过对象调用不推荐。而实例变量是每创建一次就被分配一次内存空间,必须使用对象调用,当不用时自动被垃圾回收机制回收。
         二、static方法
          静态方法可以通过类名直接调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字。静态方法不用调用类中的任何实例变量和实例方法,只能访问静态变量和静态方法。因为实例变量和实例方法是和对象有关系的。
         三、static代码块
          静态代码块可以在类的任何位置,数量不限。如果静态代码块有多个JVM会按照顺序执行它们。每个代码块只会被执行一次,并在内存中占有一席之地。

          静态的优缺点:
          静态的优点:常驻内存执行效率快,显而易见。
          静态的缺点:占用的内存不会释放。
          所以一般用到static关键字的地方都是常用的,比如说工具类,公共方法等。总之就是常用的地方。


Float.java

public class Float {
	//定义一个静态变量
	static float f;
	float fl;
}



Test.java


public class Test {

	/**
	 * @author 张博
	 * @time Jun 14, 2012	
	 * @param args 
	 */
	public static void main(String[] args) {
//		为Float分别创建两个对象
		Float float1 = new Float();
		Float float2 = new Float();
//		分别为静态成员变量赋值(static)
		float1.f = 1.5f;
		float2.f = 2.5f;
//		由于静态变量只是在堆中分配一块属于自己的空间 因此不同的对象都指向同一个地方,所以值是唯一的
		System.out.println("float1.f = "+float1.f);
		System.out.println("float2.f = "+float2.f);
//		静态变量又叫类变量可以用类名直接访问 Float.f = 1.1f; ,
//		用对象名访问是不推荐的,为了演示方便在例子里就用对象名代替了
		float1.f = float2.f;
		
		System.out.println("float1.f = "+float1.f);
		System.out.println("float2.f = "+float2.f);
		
		float1.f = 0.5f;
		
		System.out.println("float1.f = "+float1.f);
		System.out.println("float2.f = "+float2.f);

		System.out.println("=============悲催的分割线===============");
//		用对象调用非静态变量(实例变量)
		float1.fl = 1.5f;
		float2.fl = 2.5f;
		
		System.out.println("float1.fl = "+float1.fl);
		System.out.println("float2.fl = "+float2.fl);
		
		float1.fl = float2.fl;
		
		System.out.println("float1.fl = "+float1.fl);
		System.out.println("float2.fl = "+float2.fl);
		
		float1.fl = 0.5f;
		
		System.out.println("float1.fl = "+float1.fl);
		System.out.println("float2.fl = "+float2.fl);
		
	}

}




结果为:
float1.f = 2.5
float2.f = 2.5
float1.f = 2.5
float2.f = 2.5
float1.f = 0.5
float2.f = 0.5
=============悲催的分割线===============
float1.fl = 1.5
float2.fl = 2.5
float1.fl = 2.5
float2.fl = 2.5
float1.fl = 0.5
float2.fl = 2.5
分享到:
评论

相关推荐

    javafinal和static总结.docx

    javafinal和static总结.docx

    关于static的小结(Java内存溢出)

    自己总结的一些关于java内存益出的东西

    Java关键字final、static使用总结

    Java 菜鸟必备 详细总结了键字final、static的使用 和限制

    java中final和static的区别

    自己总结的java中final和static的区别,请大家提出宝贵意见。

    Java static方法用法实战案例总结

    主要介绍了Java static方法用法,结合具体案例形式总结分析了java static方法功能、使用方法及相关操作注意事项,需要的朋友可以参考下

    java中final和static的总结

    NULL 博文链接:https://zkf60553.iteye.com/blog/1307592

    关于static关键字的总结

    本文对static关键字做了简单描述,希望对java初学者有所帮助。

    java重要知识点总结

    public static void main(String[] args){ } 5.public类名必须跟java文件同名,且一个java文件中只能包括一个public类。 6.java注释: // 单行注释 /* */ 多行注释(不能嵌套) //* */ 文档说明注释 ...... ......

    Java中static关键字用法总结[借鉴].pdf

    Java中static关键字用法总结[借鉴].pdf

    java个人总结,觉得还不错

    java资料总结:java两种核心机制:JAVA虚拟机,垃圾收集机制。 一个源文件中最多只能有一个pubilc class类 public static void main(String args[]){...} 。。。。。。。。。。。。。。。

    Java static关键字详细介绍与用法总结

    主要介绍了Java中static关键字的作用和用法详细介绍,主要讲了静态方法、静态变量、静态类、static和final一块用等内容。需要的朋友可以参考下

    Java 基础核心总结 +经典算法大全.rar

    《Java 基础核心总结》 Java 概述 什么是 Java2 Java 的特点Java 开发环境 JDK JRE Java 开发环境配置 Java 基本语法 数据类型基础语法运算符 Java 执行控制流程条件语句 if 条件语句 if...else 条件语句if...else ...

    JAVA程序的总结和提升

     public static void main(String[] args) {…}  在Java中,用花括号划分程序的各个部分,任何方法的代码都必须以“{”开始,以“}”结束, 由于编译器忽略空格,所以花括号风格不受限制。  Java中每个语句...

    关于java webservice 技术的总结

    java 调用webservice的各种方法总结  现在webservice加xml技术已经逐渐成熟,但要真正要用起来还需时日!!  由于毕业设计缘故,我看了很多关于webservice方面的知识,今天和大家一起来研究研究webservice的各种...

    java基础核心总结归纳---参考手册--心得手册-学习资料-总结经验

    1 Java 概述 3 1.1 Java 定义 3 1.2 Java 的特点 3 1.3 Java 开发环境 5 Java 基本语法 7 数据类型 7 整数型 7 浮点型 7 字符型 8 ...关于 null 的⼏种处理⽅式 29 null 是任何引⽤类型的初始值 29

    java 编程入门思考

    引言 1. 前提 2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 ...1.11 Java和因特网 ...1.13 Java还是C++?...附录E 关于垃圾收集的一些话 附录F 推荐读物

    static、final、abstract和interface使用总结

    自己总结了一下java中static、final、abstract和interface的用法

    Java培训班课件ppt及总结

    Java程序的基本规则总结: 如果类能被解释器直接解释执行,则这个类里必须包含包含main()方法,而且这个main()方法必须使用public static void来修饰,且main()的形参必须是一个字符串数组(String[] args是字符串...

    JAVA面试题 static关键字详解

    面试官Q1:请说说static关键字,你在项目中是怎么使用的? static 关键字可以用来修饰:属性、方法、内部类、代码块; static 修饰的资源属于类级别,是全体对象实例共享的资源; 使用 static 修饰的属性,静态属性...

Global site tag (gtag.js) - Google Analytics