第10天 Java static关键字
来源:互联网 发布:python编写网页登录 编辑:程序博客网 时间:2024/05/21 11:27
一、static关键字
被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。static字段对每个类来说只有一个存储空间,而非static字段则对每个对象有一个存储空间
二、static分三部分:
static变量
static方法
static块
全局变量,针对所有对象仅有一个,且相互共享
由上面例子可以看出static的常量是全局共享的,包括此类的所有子类也都共享static变量。
static方法
static块
三、static变量作用:
引用时可以无需创建对象全局变量,针对所有对象仅有一个,且相互共享
不创建对象的情况下,通过类本身调用static方法(多用于工具类,类似于全局方法)、或常量(类似于全局变量)
class StaticSuper {// 父类持有的共享变量static String str = "父类持有的静态变量";}class StaticSubOne extends StaticSuper {}class StaticSubTwo extends StaticSuper {}public class StaticConstants {public static void main(String[] args) {// 共享变量System.out.println(StaticSubOne.str);System.out.println(StaticSubTwo.str);StaticSubOne.str = "改变内容";System.out.println(StaticSuper.str);}}/* output ~ 父类持有的静态变量父类持有的静态变量改变内容 * */
由上面例子可以看出static的常量是全局共享的,包括此类的所有子类也都共享static变量。
四、static方法
静态方法内部,不能调用非静态方法。(特例)
可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。( 很像全局方法 )
static方法就是没有this的方法
static方法的内部不能调用非静态方法。只能调用静态方法
单例:类设置为public , 把所有 构造器设置为private ,为了阻止任何人创建该类的对象,但是可以通过 static成员内部创建。
class Static {static int i = 85;}class Incrementable {static int increment() {Static.i += 1;return Static.i;}}public class StaticMethod {public static void main(String[] args) {// 静态方法依然共享变量System.out.println( Incrementable.increment() ); // 86Incrementable incrementable = new Incrementable();int value = incrementable.increment();System.out.println(value); // 87System.out.println( Incrementable.increment() ); // 88}}/* output ~868788 * */
static方法可以不创建对象仅通过类名就可以调用,而且通过类名调用和创建对象调用的static常量是同一个。
五、参考资料:
Java静态变量的初始化(static块的本质)
http://blog.csdn.net/darxin/article/details/5293427
0 0
- 第10天 Java static关键字
- JAVA学习第3天(3)static 关键字
- 黑马程序员 第12天static 关键字
- java基础第三天 构造函数和static关键字
- JAVA编程思想(第4版)static关键字用法小结
- Java this关键字,static关键字
- Java static关键字,final关键字
- 黑马程序员——Java基础---面向对象(static关键字)--第6天--第74-81集
- JAVA STATIC 关键字
- Java中的static关键字
- JAVA中的static关键字
- Java 中 static 关键字
- java static关键字
- java static关键字
- Java关键字final、static
- java中static关键字
- Java中static关键字
- java中static关键字
- oracle 启动不了的常见故障
- 无线显示已经连接,但是不能上网,其他人却能上网
- minix3.1.8源代码解读(一)
- [HTML]DIV+CSS clear both清除产生浮动
- Android 的 Actionbar 官方文档详解 一看就懂
- 第10天 Java static关键字
- 生活
- Django 之 csrf_token
- 同步时间服务器要小心
- ADC模块基本设置与扩展
- linux 常用命令大全
- android发送短信带监听是否发送成功功能
- Android应用开发(四):安装Intel HAXM
- 英特尔硬件加速管理器HAXM安装使用指南