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面试总结(未完待续).docx
04747 Java程序设计(一) 自考 考点 大纲(自己总结,未完待续)
此文档为本人复习过程中总结的,由于还没复习完,所以只穿了部分,以后陆续上传
媒介融合复习总结未完(抛砖引玉版).doc
a面试大全2021是一套最新Java面试必问合集,这本面试手册包含了Java基础、Java集合、JVM、Spring、Spring Boot、Spring Cloud、Mysql、Redis、RabbitMQ、Dubbo、Netty、分布式及架构设计等方面的技术点。...未完待续
小白必看;前端一年工作经验,遇到的各种问题总结, 未完待续
给菜鸟java们一点鼓励,希望这些codes能帮到你们,未完待续,敬请期待。。。
工作一段时间了,但回过头来看看java,基础的东西知道的太少了,很多东西模模糊糊,甚至记不起来,现在开始重新开始学习java,并做下笔记,自己温习的同时给有需要的人(连载。。。持续未完。。。。)
一名JAVA程序员,将自己的编程学习之路做以总结并进行分享。内容包括但不限于数据结构、算法、数据库、操作系统、计算机网络等多方面。 博文: 目前先暂列目录,内容在逐渐增加中 JAVA 关键字 void byte int long ...
android播放器未完待续
java实现下载文件源码yadmjc 《Yet Another Dungeon Master Java Clone》是著名RPG游戏《地牢大师》的Java克隆。 与现有的克隆相反,我编写这个项目并不是为了完全重新实现原始游戏,几年前 Alan Berfield 成功地...
探索 ES6(未完)
扫雷游戏 未完 大家一起完成 扫雷游戏 未完 大家一起完成
jd-gui,简单轻量的java反编译工具。
个人学习spring时写的练习程序 未完,仅示例而已
未完工程及遗留问题清单(表格模板、XLS格式).XLS
如果大家有任何问题想咨询老哥,请在【公众号】后台给我留言,我每天会看的公众号每天定时分享技术干货文章目录(Ctrl + F类别搜索) java资料分享系列(更新中) MySQL高级知识汇总(更新中)未完待续,更新中。...
java入门 java学习第三课源码(未完,待续!敬请持续关注!). 如有问题和建议,请与董老师联系!文档地址为:https://blog.csdn.net/atgfg/article/details/100538876
NEURAL CODE COMPLETION 未完ABSTRACT Code completion, an essential part of modern s
9--[小黑点的旅行(未完待续)].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码9--[小黑点的旅行(未完待续)].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码9--[小黑点的旅行(未完待续)].zip...