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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵洋3916 中级黑马   /  2013-6-14 11:57  /  1835 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

用静态字段和不用静态字段有什么区别?

10 个回复

正序浏览
静态变量,声明这个变量的存储单元静态分配,从程序运算开始到结束这个变量的存储单元不变化。static常用于全局量,一是存在里面的值始终有效,不因进退出子程序数值消失,另外static的变量运算速度比非静态分配的快。
回复 使用道具 举报
静态字段生命周期很长很消耗内存 而非静态的字段当一个对象消失它也随之消失,万不得已不要用静态的
静态也不能直接访问非静态成员 因为类加载时首先把静态的字段加载到内存当中,而非静态的成员只有实例化该类对象时才会出现,如果没有实例对象,直接用静态成员访问非静态成员,此时非静态成员没有出现在内存中,肯定会出错。。、

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 赞一个!

查看全部评分

回复 使用道具 举报
总之,如果某个字段或方法经常被用到,你就定义为静态的,方便调用。。
回复 使用道具 举报
个人感觉一句话能试下概括,概念百度到处都是
静态字段最大的作用在于可以在同一个类的不同对象实例之间共享数据,记得看到哪本书上说,静态字段也叫共享字段!!
回复 使用道具 举报
静态字段的调用不用new实例的对象调用,在装载程序集的时候分配内存空间。方便程序间的调用,但浪费内存。而非静态字段需要用对象来调用,在对象实例化的时候才分配内存空间,什么时候用什么时候分配,节约了空间,但每次调用前都要实例化很不方便
回复 使用道具 举报
规则:1、静态的可以访问静态的,不能访问非静态的      

2、非静态的可以访问静态的,也可以访问非静态的

静态字段还有一个好处就是不用new。缺点就是占内存,程序结束后释放。
回复 使用道具 举报
本帖最后由 彭康 于 2013-6-14 13:25 编辑

静态的作用是 使用时不用实例化
假如说你要切菜你的先把菜放在案板上
而静态就是你一直把菜放在案板上的意思非静态的话,你每次使用都要new 一下
new 就是分配内存 也就是把菜放在案板上的意思
回复 使用道具 举报
静态的字段最大是好处是不用实例化。
直接类名.属性名就能使用。
静态字段最大的作用在于可以在同一个类的不同对象实例之间共享数据。
静态字段属于类,普通字段属于类的实例。
静态字段只能被所属的类直接调用,普通字段只能被类的实例调用。
回复 使用道具 举报
静态字段的调用是以类名.字段名来调用,不能用new实例的对象.调用,在装载程序集的时候分配内存空间
非静态字段需要用对象来调用,在对象实例化的时候分配内存空间
static关键字声明类的成员时是与对象无关的
回复 使用道具 举报
一:普通字段要实例化才能使用,没有实例化不能使用。静态字段反之。如:name字段的使用:cla1 i = new cla1();i.name = "张三";sex字段的使用:cla1.sex = "男";
二:普通字段要在实例化时候才分配内存空间,而静态字段在装载程序集的时候就分配内存空间了。

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 恭喜满25分

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马