周到的宁波网站建设,做效果图常用的网站,玉环县企业网站建设,陕西建设厅证件查询网站这个博主写的总结很好,这里附上链接http://www.cnblogs.com/dolphin0520/p/3799052.html 下面进行简要总结: 在《Java编程思想》P86页有这样一段话#xff1a; “static方法就是没有this的方法。在static方法内部不能调用非静态方法#xff0c;反过来是可以的。而且可以在没有…这个博主写的总结很好,这里附上链接http://www.cnblogs.com/dolphin0520/p/3799052.html 下面进行简要总结: 在《Java编程思想》P86页有这样一段话 “static方法就是没有this的方法。在static方法内部不能调用非静态方法反过来是可以的。而且可以在没有创建任何对象的前提下仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。” 方便在没有创建对象的情况下来进行调用方法/变量 1.被static关键字修饰的方法或者变量不需要依赖于对象来进行访问只要类被加载了就可以通过类名去进行访问。 2.static是不允许用来修饰局部变量 3.静态成员变量虽然独立于对象但是不代表不可以通过对象去访问所有的静态方法和静态变量都可以通过对象访问只要访问权限足够。 4.Java中的static关键字不会影响到变量或者方法的作用域 5.static变量也称作静态变量静态变量和非静态变量的区别是静态变量被所有的对象所共享在内存中只有一个副本它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的在创建对象的时候被初始化存在多个副本各个对象拥有的副本互不影响。 6.static块可以用来优化程序性能是因为它的特性:只会在类加载的时候执行一次 7.static方法一般称作静态方法由于静态方法不依赖于任何对象就可以进行访问因此对于静态方法来说是没有this的因为它不依附于任何对象既然都没有对象就谈不上this了。并且由于这个特性在静态方法中不能访问类的非静态成员变量和非静态成员方法因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。 下面是考题参考: public class Test extends Base{static{System.out.println(test static);}public Test(){System.out.println(test constructor);}public static void main(String[] args) {new Test();}
}class Base{static{System.out.println(base static);}public Base(){System.out.println(base constructor);}
} 输出 base static
test static
base constructor
test constructor View Code 转载于:https://www.cnblogs.com/zoulingjin/p/8634076.html