static可以用来修饰:
字段 Fields
方法 Methods
嵌套类 Nested Classes
初始化块 Initialization Block
import (注意格式为
import static,不是static import)
Static Fields:
http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.3.1.1
常称其为类变量或静态变量。
类变量在类实例化
Static Field在类装载的时候进行初始化;它是class 。。。的,所以如果有类的多个实例存在,他们Static Field
incarnated
Static Methods:
Static Nested Class:
静态嵌套类一般不归入内部类(Inner Class),因为其行为上更像是一个独立的类。详见:
http://wuaner.iteye.com/admin/blogs/573256
Static Initialization Blocks:
静态初始化块见:
http://wuaner.iteye.com/blog/1669127
Static Import:
Sources:
http://docs.oracle.com/javase/1.5.0/docs/guide/language/static-import.html引用
The static import declaration is analogous to the normal import declaration. Where the
normal import declaration imports classes from packages, allowing them to be used without package qualification, the static import declaration imports static members from classes, allowing them to be used without class qualification.
两种格式:
1 引入单个静态成员(这里的静态成员指类变量和静态方法)
import static java.lang.Math.PI;
import static java.lang.String.valueOf;
2 引入类的所有静态成员:
import static java.lang.Math.*;
如果当前类中有同名(同名的理解:类变量考虑的就是变量名;静态方法只考虑方法签名中的方法名,不考虑返回值、参数等)的静态成员,优先使用当前类的静态成员。
import static java.lang.String.valueOf;
public class StaticTest {
public static void main(String[] args) {
int i = 1;
/**
* 下面的方法调用会报错,尽管String.valueOf(int)严格匹配该方法调用
* 但根据同名则本类优先原则,使用的是本类中的valueOf(String)方法,出现参数类型不一致的编译错误
*
*/
valueOf(i);
}
static void valueOf(String str) {
}
}
静态代码的执行与反射
类中的静态代码块会在类(XXX.class)被加载到内存的时候执行;注意此时只是被加载,并不一定有该类的对象实例存在。
如通过反射加载:
Class c = Class.forName("XXX");
执行完上句后,XXX.class被加载到内存,并且该类的静态代码块被执行;但是并没有创建该类的对象实例。
Tips about Static:
Static Method中不能使用this。
http://www.velocityreviews.com/forums/t132767-this-compiler-error.html
不能在类的Static Method中访问该类的non-static Method 和 non-static Field。
引用
http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
Instance methods can access instance variables and instance methods directly.
Instance methods can access class variables and class methods directly.
Class methods can access class variables and class methods directly.
Class methods cannot access instance variables or instance methods directly—they must use an object reference. Also, class methods cannot use the this keyword as there is no instance for this to refer to.
static不能用来修饰局部变量。
java中没有常量的定义(const为关键字,但未使用)。我们通常结合使用static和final来实现java中的常量:
http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
Sources:
Java Tutorials - Understanding Instance and Class Members:
http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
分享到:
相关推荐
【JAVA培训总结-j精品资料.doc】是一份详尽的JAVA学习和培训材料,涵盖了从基础到进阶的各种知识点。以下是对这些内容的详细说明: 一、JAVAWEB应用开发: 这部分内容着重于讲解如何使用Java语言进行Web应用程序的...
5. 在一个Java应用程序中main方法必须被说明为public static void。 四、变量和数据类型 1. 标识符是Java语言中的一种有效字符序列,用来标识类名、变量名、方法名、类型名、数组名、文件名。 2. Java语言规定...
Java 后端初级面试题 在这篇文章中,我们将讨论 Java 后端开发中一些常见的面试题目,涵盖了 Java 基础知识、Java 面向对象编程、Java 集合框架、Java 多线程编程等方面。...本文仅供参考,未完待续...
a面试大全2021是一套最新Java面试必问合集,这本面试手册包含了Java基础、Java集合、JVM、Spring、Spring Boot、Spring Cloud、Mysql、Redis、RabbitMQ、Dubbo、Netty、分布式及架构设计等方面的技术点。...未完待续
C++是一种高级编程语言,它在20世纪80年代初作为面向对象程序设计语言的代表出现,是对C语言的扩展。C++的设计思想强调了结构化程序设计和面向对象特性,包括封装性、继承性和多态性。 结构化程序设计,又称为面向...
至于“2003版PPT(第二次修改补充版,未完,到14章)”这部分,虽然没有具体的细节,但我们可以推测它可能涵盖了以上提到的一些基础知识,比如基本语法、面向对象编程、异常处理、集合框架等,并可能逐步引导学习者了解...
一名JAVA程序员,将自己的编程学习之路做以总结并进行分享。内容包括但不限于数据结构、算法、数据库、操作系统、计算机网络等多方面。 博文: 目前先暂列目录,内容在逐渐增加中 JAVA 关键字 void byte int long ...
Java开发过程中,有时候我们需要查看和理解已编译的.class文件中的源代码,这对于逆向工程、调试或学习他人的代码非常有用。此时,就需要用到反编译工具,而jd-gui就是这样一款简单轻量的Java反编译工具。本文将深入...
java实现下载文件源码yadmjc 《Yet Another Dungeon Master Java Clone》是著名RPG游戏《地牢大师》的Java克隆。 与现有的克隆相反,我编写这个项目并不是为了完全重新实现原始游戏,几年前 Alan Berfield 成功地...
媒介融合是当前信息技术发展的显著特征,它涉及到新闻传播、媒体产业和用户行为的深刻变革。这一概念是指在数字技术、网络技术和电子通信技术推动下,各种媒介形态如电视、广播、互联网、报纸等通过合作、整合,实现...
### 前端开发经验分享:遇到的问题及解决方案 #### Bootstrap 使用注意事项 Bootstrap 是一款流行的前端框架,提供了丰富的UI组件库。但在使用过程中可能会遇到一些问题。比如自定义CSS覆盖问题,当尝试覆盖...
探索 ES6(未完)
【“未完工程”转让的税务筹划】 在房地产开发中,有时企业会遇到资金困难,导致项目无法继续,这时“未完工程”的处理就需要精心的税务筹划,以降低税务负担并最大化收益。以下是对“未完工程”转让的四种可能方案...
扫雷游戏 未完 大家一起完成 扫雷游戏 未完 大家一起完成
银行柜台排队模拟,未完
未完工程及遗留问题清单(表格模板、XLS格式).XLS
如果大家有任何问题想咨询老哥,请在【公众号】后台给我留言,我每天会看的公众号每天定时分享技术干货文章目录(Ctrl + F类别搜索) java资料分享系列(更新中) MySQL高级知识汇总(更新中)未完待续,更新中。...
java入门 java学习第三课源码(未完,待续!敬请持续关注!). 如有问题和建议,请与董老师联系!文档地址为:https://blog.csdn.net/atgfg/article/details/100538876