A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© cain 中级黑马   /  2014-6-8 21:31  /  1125 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

static 方法的妙用?那些地方不能用?

3 个回复

倒序浏览
1.static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。
2.被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。
3.只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
static修饰符
1. 静态变量在内存中只有一个拷贝,在类的所有实例中共享。
2. 在静态方法中不能直接访问实例方法和实例变量。
3. 在静态方法中不能使用this和super关键字。
4. 静态方法不能被abstract修饰
5. 静态方法和静态变量都可以通过类名直接被访问。
6. 当类被加载时,静态代码块只被执行一次。类中不同的静态代码块按它们在类中出现的顺序被依次执行
回复 使用道具 举报
  static修饰类成员有很好的用处,在java类库当中有很多类成员都声明为static,可以让用户不需要实例化对象就可以引用成员,被static修饰后的成员,在编译时由内存分配一块内存空间,直到程序停止运行才会释放,那么就是说该类的所有对象都会共享这块内存空间。
  比如我们在学习集合的时候,Collections类和Arrays类里面的方法都是静态的,当我们需要用到这些工具类的时候,直接用类名调用即可,比如对list排序,Collections.sort(list)。还有在学UDP传输的时候,用到InetAddress类,该类没有构造方法,但是有一个静态的getLocalHost()方法,可以InetAddress i = InetAddress.getLocalHost()创建一个对象
  以上是个人理解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马