静态static静态关键字的解析

关键字  时间:2021-03-04  阅读:()

tatic是Java中的一个关键字我们不能声明普通外层类或者包为静态的用于下面四种static情况。

静态变量我们可以将类级别的变量声明为 static。静态变量是属于类的而不是属于类创建的对象或实例。因为静态变量被类的所有实例共用所以 非线程安全的。通常静态变量还和关键字fi nal一起用作为所有对象共用的资源或常量。如果静态变量不是私有的那么可以通过 ClassName.vari ableName来访问

它。

静态变量属于静态存储方式其存储空间为内存中的静态数据区在 静态存储区内分配存储单元 该区域中的数据在整个程序的运行期间一直占用这些存储空间在程序整个运行期间都不释放 也可以认为是其内存地址不变直 到整个程序运行结束相反而auto自动变量 即动态局部变量属于动态存储类别 占动态存储空间 函数调用结束后即释放 。静态变量虽在程序的整个执行过程中始终存在但是在它作用域之外不能使用。

另外属于静态存储方式的量不一定就是静态变量。 例如外部变量虽属于静态存储方式但不一定是静态变量必须由static加以定义后才能成为静态外部变量或称静态全局变量。

所有的全局变量都是静态变量而局部变量只有定义时加上类型修饰符 static才为局部静态变量。

静态变量可以在任何可以申请的地方申请 一旦申请成功后它将不再接受其他的同样申请。

静态变量并不是说其就不能改变值不能改变值的量叫常量。 其拥有的值是可变的而且它会保持最新的值。说其静态是因为它不会随着函数的调用和退出而发生变化。即上次调用函数的时候如果我们给静态变量赋予某个值的话 下次函数调用时这个值保持不变。

/静态变量的例子private static int count;public static String str;public static final Stri ng DB_USER="myuser"

静态方法类似于静态变量静态方法也属于类不属于实例的。静态类只能访问类的静态变量或调用类的静态方法。通常静态方法作为工具方法被其它类使用而不需要创建类的实例。譬如集合类、 Wrapper类Strin g, I nte ger等和工具类j ava.util中的类都有很多静态方法。通常j ava程序的开始就是一个main  方法它就是个静态方法。

/静态方法的例子public static void setCo un t(i nt count) { if(count>0)StaticExample.co unt=count;

}

//静态工具方法public static int add In ts(i nt i, i nt. . .js){int sum=i;for(i nt x:js) sum+=x;return sum;

静态块静态块就是类加载器加载对象时 要执行的一组语句。它用于初始化静态变量。通常用于类加载的时候创建静态资源。我们在静态块中不能访问非静态变量。我们可以在一个类中有多个静态块 尽管这么做没什么意义。静态块只会在类加载到内存中的时候执行一次。static{

//在类被加载的时候用于初始化资源

System.out.pri ntl n("StaticExample static block");

//仅能访问静态变量和静态方法str="Te st";setCou nt(2);

静态类我们对嵌套类使用static关键字。 static不能用于最外层的类。静态的嵌套类和其它外层的类别无二致嵌套只是为了方便打包。 延伸阅读嵌套类让我们来看一个使用st at i c关键字的例子

StaticExample.j avapackage com.jo urn aldev.misc;public class StaticExample {

//静态块static{

//在类被加载的时候用于初始化某些资源

System.out.pri ntl n("StaticExample static block");

//仅能访问静态变量和静态方法str="Te st";setCou nt(2);

//可以在一个类中有多个静态块static{

System.out.pri ntl n("StaticExample static block2"); }

//静态变量private static int count; //public static Stri ng str; 保持私有方法访问

public int getCo un t() {retur ncount;

}

//静态方法public static void setCo un t(i nt count) { if(cou nt>0)StaticExample.co unt=count;

}

//静态工具方法public static int add In ts(i nt i, i nt. . .js){ int sum=i;for(i nt x:js) sum+=x;return sum;

}

//静态类的例子方便打包之用public static class MyStaticClass{public int count;

}

让我们用一个测试程序来看看如何使用静态变量静态方法以及静态类。TestStatic.javapackage com.jo urn aldev.misc;public class TestStatic {public static void main(Stri ng[]args) {

StaticExample.setCo un t(5);

//非私有的静态变量可以通过类名来访问StaticExample.str="abc";

StaticExample se=new StaticExample();

System.out.pri ntl n(se.getCou nt());

//类的静态变量和实例的静态变量是一样的System.out.pri ntln(StaticExample.str+"is same as

"+s e.str);

System.out.pri ntl n(StaticExample.str==se.str);

//静态嵌套类和其他外层类一样

StaticExample.MyStaticClass myStaticClass=new

StaticExample.MyStaticClass();myStaticClass.cou nt=1 O;

StaticExample.MyStaticClass myStaticClass 1=newStaticExample.MyStaticClass。 myStaticClass 1.cou nt=20;

System.out.pri ntl n(m yStaticClass.co un t);

System.out.pri ntl n(m yStaticClass1.co unt);

}

}

测试程序的输出

StaticExample static block

StaticExample static block2

5abc is same as abctrue

10

注意静态块仅在类加载到内存时执行了一次。

HostWebis:美国/法国便宜服务器,100Mbps不限流量,高配置大硬盘,$44/月起

hostwebis怎么样?hostwebis昨天在webhosting发布了几款美国高配置大硬盘机器,但报价需要联系客服。看了下该商家的其它产品,发现几款美国服务器、法国服务器还比较实惠,100Mbps不限流量,高配置大硬盘,$44/月起,有兴趣的可以关注一下。HostWebis是一家国外主机品牌,官网宣称1998年就成立了,根据目标市场的不同,以不同品牌名称提供网络托管服务。2003年,通过与W...

Hostodo美国独立日优惠套餐年付13.99美元起,拉斯维加斯/迈阿密机房

Hostodo又发布了几款针对7月4日美国独立日的优惠套餐(Independence Day Super Sale),均为年付,基于KVM架构,采用NVMe硬盘,最低13.99美元起,可选拉斯维加斯或者迈阿密机房。这是一家成立于2014年的国外VPS主机商,主打低价VPS套餐且年付为主,基于OpenVZ和KVM架构,产品性能一般,支持使用PayPal或者支付宝等付款方式。商家客服响应也比较一般,推...

易探云香港云服务器价格多少钱1个月/1年?

易探云怎么样?易探云是目前国内少数优质的香港云服务器服务商家,目前推出多个香港机房的香港云服务器,有新界、九龙、沙田、葵湾等机房,还提供CN2、BGP及CN2三网直连香港云服务器。近年来,许多企业外贸出海会选择香港云服务器来部署自己的外贸网站,使得越来越多的用户会选择易探云作为网站服务提供平台。今天,云服务器网(yuntue.com)小编来谈谈易探云和易探云服务器怎么样?具体香港云服务器多少钱1个...

关键字为你推荐
渣渣辉商标什么是渣渣灰?公司网络被攻击网络遭受攻击分为哪几类硬盘工作原理高人指点:电子存储器(U盘,储存卡,硬盘等)的工作原理地图应用用哪个地图导航最好最准阿丽克丝·布莱肯瑞吉唐吉诃德·多弗朗明哥知道什么秘密access数据库Access数据库对象的操作包括哪五种?m.2828dy.comwww.dy6868.com这个电影网怎么样?5xoy.comhttp://www.5yau.com (舞与伦比),以前是这个地址,后来更新了,很长时间没玩了,谁知道现在的地址? 谢谢,www.vtigu.com初三了,为什么考试的数学题都那么难,我最多也就135,最后一道选择,填空啊根本没法做,最后几道大题倒广告法中华人民共和国广告法中,有哪些广告不得发布?
怎么注册域名 北京服务器租用 广东服务器租用 分销主机 pccw 私人服务器 美国主机代购 godaddy优惠券 512au 阿里云代金券 美国php空间 服务器怎么绑定域名 申请个人网页 浙江独立 美国十次啦服务器 个人域名 qq云端 raid10 阿里云官方网站 net空间 更多