时间:2021-05-19
(1)一个类的静态方法只能访问静态属性。
(2)一个类的静态方法不能直接调用非静态方法。
(3)如果访问权限允许,static属性和方法可以使用对象加'.'方式调用,当然也可以使用实例加'.'方式调用。
(4)静态方法中不存在当前对象,所以不能使用this,当然也不能使用super。
(5)静态方法不能被非静态方法覆盖。
(6)构造方法不允许被声明为static的。
static关键词,可以加在方法上,成员变量上,代码块。 类就不要想了。
static方法可以在类没有实例化的情况话直接访问。 在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。
static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
static成员变量的初始化顺序按照定义的顺序进行初始化。
static变量只会有一个内存空间,虽然后多个实例,但这些实例中的static变量会共享同一个内存空间。所以静态变量的值发生变更要格外注意,以免造成不必要的“bug”。
static变量是在类装载的时候就被初始化的。
可以用来初始化一些成员信息。
public class testClassA { public static int val = 1; static { System.err.println("11:" + val); val = 2; System.err.println("22:" + val); } public static int getVal() { return val; }}System.err.println(testClassA.getVal());结果:
11:1
22:2
2
为何要用内部类?
1). 内部类一般只为其外部类使用;
2). 内部类提供了某种进入外部类的窗户;
3). 也是最吸引人的原因,每个内部类都能独立地继承一个接口,而无论外部类是否已经继承了某个接口。因此,内部类使多重继承的解决方案变得更加完整。
public class ClassA { public static String val = "1"; public ClassA() { } public static class ClassB {//静态内部类 public static int bVal = 2; } public class ClassC { public ClassC() { } private void name() { System.err.println("abc"); } }}静态导包是为了简化代码,提高代码的阅读性,但是如果滥用阅读性会很糟糕。
对于静态导入,一定要遵循两个规则(来自下面的资料):
不使用*(星号)通配符,除非是导入静态常量类(只包含常量的类或接口)。
方法名是具有明确、清晰表象意义的工具类。
//使用volatile关键词,单例模式最优解决方案,不支持旧版jdk
public class ClassA { private volatile static ClassA instance = null; public static ClassA getInstance() { if (instance == null) { synchronized (ClassA.class) { if (instance == null) { instance = new ClassA(); } } } return instance; } public void test() { System.err.println(1); }}//静态内部类实现单例模式 兼容旧版jdkpublic class ClassA { private ClassA() { } private static class InstanceClass { private static ClassA instance = new ClassA(); } public static ClassA getInstance() { return InstanceClass.instance; }最新2020整理收集的很多干货,包含mysql,netty,spring,线程,spring cloud、jvm、源码、算法等详细讲解,需要获取这些内容的朋友加Q君样:756584822 public void test() { System.err.println(1); }}ClassA.getInstance().test(); //使用方法1. 静态的成员变量可以被实例化后的类对象访问,静态方法也可以被对象访问,但是会有警告。
2. 局部变量不可以static。
3. static代码块优先于构造函数。
到此这篇关于java中static关键词的文章就介绍到这了,更多相关java中static关键词内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
网站优化的过程中关键词优化的关键,那么网站关键词应该如何优化呢?关于这个问题小编带你了解一下。 一、网站关键词的选择; 网站关键词的选择非常重要,那么网
网站优化的过程中少不了关键词的选择,那么网站在选择关键词的过程中需要遵循哪些原则呢?关于这个问题小编带你了解一下。 1、首先需要分析你所做关键词竞争力;
1:紧扣网站主题,在关键词分析一文中详细解释了网站主题定位,实际上,关键词与网站主题定位越匹配优化难度越小,不管从竞争度还是难易度来说都是这样。这里不多说。2:
核心词选取1:紧扣网站主题在关键词分析一文中详细解释了网站主题定位,实际上,关键词与网站主题定位越匹配优化难度越小,不管从竞争度还是难易度来说都是这样。这里不多
广告点击带你了解广告点击关键词排名点击分析工具!如今关键词排名点击是广告点击的核心之重,长尾关键词排名点击又是网站精准用户的主要来源。因此,长尾关建词才是站长的