Java中的static关键字详解

1.static关键字主要有2个作用:

①为某特定的数据类型或者对象分配单一的存储空间,而与创建对象的个数无关。

②在不创建对象的情况下可以直接通过类名来直接调用方法或者使用类的属性。

2.static主要有4种使用情况:成员变量(属性),成员方法,代码块,和内部类

3.Java中没有全局变量的概念,但是可以通过static来实现全局变量的效果。

Java中提供了2种类型的变量:①用static修饰的静态变量②实例变量

他们的区别是静态变量时属于类的,只要静态变量所在的类被加载,就会被分配空间,因此就而已被使用可以通过类.静态变量或者对象.静态变量来引用

实例变量属于对象,必须要先new出对象,然后通过对象.实例变量来引用,只有对象呗创建才会给他分配空间

★特别重要的是static变量只有一个,被类拥有,所有对象都共享这个static变量并且static变量不能定义在方法中!!!!!

4.static成员方法,与变量类似,static方法属于类的方法,不用创建对象就可以使用用过类名.static方法调用,在static方法中不能访问非static的方法和变量,不能出现this或者super关键字。

static很重要的一个应用就是实现单例模式。单例模式的特点就是只能有一个实例。

public class Singleton {
   private static Singleton instance=null;//声明一个静态的类变量
   private Singleton(){};//构造方法私有化,外部不能通过new生成对象实例
   public static Singleton getInstance(){//全局访问点,提供生成类的实例的方法
	   if(instance==null){
		   instance=new Singleton();
	   }
	return instance;
   }
}

注意这里面的方法为什么是static,假设我们不用static关键字,则在外部我们需要去调用getInstance()方法来创建实例,那么就要先new对象,在通过对象.方法名来获取,但是我们的目的就是不能通过new生成多个对象,所以我们就需要加上static关键字,来完成,直接通过Singleton.getInstance()创建这个类的唯一实例。

5.static修饰代码块

static代码块独立于成员变量和方法,他不在任何一个方法体中,JVM在加载类的时候会执行代码块,如果有多个代码块则按顺序执行,static代码块通常用来初始化static变量,需要注意的是,static代码块只会被执行一次!!!

6.static内部类

static内部类是指被修饰为static的内部类,他不依赖于外部类实例对象而被实例化,通常的内部类需要外部类实例化才能实例化。static内部类不能与外部内重名,切且不能访问外部类的成员变量,只能访问外部类的static成员变量和static方法包括private类型。

7.问题?

1.什么是实例变量?什么是局部量?什么是类变量?什么是final变量?

2.static final结合表示什么意思?

时间: 2024-10-19 22:49:16

Java中的static关键字详解的相关文章

Java中的main()方法详解

在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是public static void 类型的,方法必须接收一个字符串数组的参数等等. 在看Java中的main()方法之前,先看一个最简单的Java应用程序HelloWorld,我将通过这个例子说明Java类中main()方法的奥秘,程序的代码如下: 1 /** 2 * Java中的main()方法

Java I/O : Java中的进制详解

作者:李强强 上一篇,泥瓦匠基础地讲了下Java I/O : Bit Operation 位运算.这一讲,泥瓦匠带你走进Java中的进制详解. 一.引子 在Java世界里,99%的工作都是处理这高层.那么二进制,字节码这些会在哪里用到呢? 自问自答:在跨平台的时候,就凸显神功了.比如说文件读写,数据通信,还有Java编译后的字节码文件.下面会有个数据通信的例子哦. Java对对象实现Serializablle接口,就可以将其转化为一系列字节,而在通信中,不必要关系数据如何在不同机器表示和字节的顺

(转)Java中的static关键字解析

转载: http://www.cnblogs.com/dolphin0520/p/3799052.html 一.static关键字的用途 在<Java编程思想>P86页有这样一段话: "static方法就是没有this的方法.在static方法内部不能调用非静态方法,反过来是可以的.而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法.这实际上正是static方法的主要用途." 这段话虽然只是说明了static方法的特殊之处,但是可以看出static关键

Java中的static关键字解析

http://www.cnblogs.com/dolphin0520/p/3799052.html 一.static关键字的用途 在<Java编程思想>P86页有这样一段话: “static方法就是没有this的方法.在static方法内部不能调用非静态方法,反过来是可以的.而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法.这实际上正是static方法的主要用途.” 这段话虽然只是说明了static方法的特殊之处,但是可以看出static关键字的基本作用,简而言之,一句

java中的io系统详解

java中的io系统详解 分类: JAVA开发应用 笔记(读书.心得)2009-03-04 11:26 46118人阅读 评论(37) 收藏 举报 javaiostreamconstructorstringbyte 相关读书笔记.心得文章列表 Java 流在处理上分为字符流和字节流.字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组. Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他

【转】Java中的static关键字解析

Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题.以下是本文的目录大纲: 一.static关键字的用途 二.static关键字的误区 三.常见的笔试面试题 一.static关键字的用途 在<Java编程思想>P86页有这样一段话: “static方法就是没有thi

关于 Java 中的 static 关键字

Java中的 static 关键字,确实是一个关键的字(key word),今天就来总结一下它的用法,说说为什么关键. Java中的 static 关键字主要是用来做内存管理的.理解了这句话才能够比较深入地理解static. static 可以修饰: 变量(所谓 class variable) 方法(所谓 class method) 代码块(所谓 block) 内部类(所谓 nested class) 凡是被 static 修饰的这四种元素,都属于class的元素,即类的,而不是类的实例的. 1

Java中的static关键字解析 转载

原文链接:http://www.cnblogs.com/dolphin0520/p/3799052.html Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字, 也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关 于static的考题.以下是本文的目录大纲: 一.static关键字的用途 二.static关键字的误区 三.常见的笔试面试

【JAVA学习笔记】Java中的static关键字解析

Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题.以下是本文的目录大纲: 一.static关键字的用途 二.static关键字的误区 三.常见的笔试面试题 若有不正之处,希望谅解并欢迎批评指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnb