Java学习

来源:互联网 发布:yum nginx 安装 编辑:程序博客网 时间:2024/06/10 10:33
static、final、transient等关键字的使用
**static:**表示“全局”或“静态”的意思,用来修饰成员变量和成员方法,也可以做静态块;
被static修饰后的成员,在编译时由内存分配一块内存空间,直到程序停止运行才会释放,那么就是说该类的所有对象都会共享这块内存空间。
在java类库当中有很多类成员都声明为static,可以让用户不需要实例化对象就可以引用成员。
静态导包就是Java包的静态导入,用import static代替import静态导入包是JDK1.5中的新特性。
一般我们导入一个类都用 import com…..ClassName;而静态导入是这样:import static com…..ClassName.*;这里的多了个static,还有就是类名ClassName后面多了个.* ,意思是导入这个类里的静态方法。当然,也可以只导入某个静态方法,只要把 .* 换成静态方法名就行了。然后在这个类中,就可以直接用方法名调用静态方法,而不必用ClassName.方法名 的方式来调用。
好处:这种方法的好处就是可以简化一些操作,例如打印操作System.out.println(…);就可以将其写入一个静态方法print(…),在使用时直接print(…)就可以了。但是这种方法建议在有很多重复调用的时候使用,如果仅有一到两次调用,不如直接写来的方便。
**final:** final类不能被继承,没有子类,final类中的方法默认是final的。用final修饰的成员变量表示常量,值一旦给定就无法改变!
final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。
**transient:** Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。当一个对象被序列化的时候,transient型变量的值不包括在序列化的表示中,然而非transient型的变量是被包括进去的。
**volatile:** volatile的作用是: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值. 
一般说来,volatile用在如下的几个地方: 
1、中断服务程序中修改的供其它程序检测的变量需要加volatile; 
2、多任务环境下各任务间共享的标志应该加volatile; 
3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能有不同意义; 
另外,以上这几种情况经常还要同时考虑数据的完整性(相互关联的几个标志读了一半被打断了重写),在1中可以通过关中断来实现,2 中可以禁止任务调度,3中则只能依靠硬件的良好设计了。
**strictfp:**想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,可以用关键字strictfp.
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 杨贵妃秘史片尾曲 杨贵妃秘史演员表 杨弘新浪微博 杨洪基简历 杨谨华 三级 杨谨华 整容 杨谨华微博 杨谨华为男友庆生 杨谨华宣布分手 杨乐婉拒春晚邀约 杨璐璐滚出中国 杨幂被挠脚心 杨幂穿可爱熊外套 杨幂进部队当新兵 杨幂刘恺威个人资料 杨棋涵 qvod 杨千霈微博 杨瑞的苦恼 杨省世父亲 杨天龙 杨卫泽简历 杨文杏 杨曦徐良 杨曦照片 杨欣cindy 杨秀惠初恋 杨秀珠跟江什么关系 杨学军的父亲 杨燕绥简历 杨燕绥去死 杨燕绥微博 杨洋珠绣西装亮相 杨一展微博 杨岳 跳楼 杨岳 抑郁 杨岳跳楼 杨岳抑郁 杨致远官场飙升记 杨宗纬 潘裕文 杨宗纬整容 洋洋爱护你 电视剧