黑马程序员技术交流社区

标题: static 方法的妙用?那些地方不能用? [打印本页]

作者: cain    时间: 2014-6-8 21:31
标题: static 方法的妙用?那些地方不能用?
static 方法的妙用?那些地方不能用?
作者: ☆枫の云    时间: 2014-6-8 21:57
1.static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。
2.被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。
3.只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。
作者: never615    时间: 2014-6-9 01:49
static修饰符
1. 静态变量在内存中只有一个拷贝,在类的所有实例中共享。
2. 在静态方法中不能直接访问实例方法和实例变量。
3. 在静态方法中不能使用this和super关键字。
4. 静态方法不能被abstract修饰
5. 静态方法和静态变量都可以通过类名直接被访问。
6. 当类被加载时,静态代码块只被执行一次。类中不同的静态代码块按它们在类中出现的顺序被依次执行
作者: 阿布Yocan    时间: 2014-6-9 11:30
  static修饰类成员有很好的用处,在java类库当中有很多类成员都声明为static,可以让用户不需要实例化对象就可以引用成员,被static修饰后的成员,在编译时由内存分配一块内存空间,直到程序停止运行才会释放,那么就是说该类的所有对象都会共享这块内存空间。
  比如我们在学习集合的时候,Collections类和Arrays类里面的方法都是静态的,当我们需要用到这些工具类的时候,直接用类名调用即可,比如对list排序,Collections.sort(list)。还有在学UDP传输的时候,用到InetAddress类,该类没有构造方法,但是有一个静态的getLocalHost()方法,可以InetAddress i = InetAddress.getLocalHost()创建一个对象
  以上是个人理解




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2