Java中的transient,volatile和strictfp关键字
Java中的transient,volatile和strictfp关键字
如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。例如:
Java代码
class T {
transient int a; //不需要维持
int b; //需要维持
}
class T {
transient int a; //不需要维持
int b; //需要维持
}
这里,如果T类的一个对象写入一个持久的存储区域,a的内容不被保存,但b的将被保存。
volatile修饰符告诉编译器被volatile修饰的变量可以被程序的其他部分改变。在多线程程序中,有时两个或更多的线程共享一个相同的实例变量。考虑效率问题,每个线程可以自己保存该共享变量的私有拷贝。实际的变量副本在不同的时候更新,如当进入synchronized方法时。
用strictfp修饰类或方法,可以确保浮点运算(以及所有切断)正如早期的Java版本那样准确。切断只影响某些操作的指数。当一个类被strictfp修饰,所有的方法自动被strictfp修饰。
strictfp的意思是FP-strict,也就是说精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令你满意。而一旦使用了strictfp来声明一个类、接口或者方法时,那么所声明的范围内Java的编译器以及运行环境会完全依照浮点规范IEEE-754来执行。因此如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,那就请用关键字strictfp。
你可以将一个类、接口以及方法声明为strictfp,但是不允许对接口中的方法以及构造函数声明strictfp关键字,例如下面的代码:
1. 合法的使用关键字strictfp
Java代码
strictfp interface A {}
public strictfp class FpDemo1 {
strictfp void f() {}
}
strictfp interface A {}
public strictfp class FpDemo1 {
strictfp void f() {}
}
2. 错误的使用方法
Java代码
interface A {
相关文档:
1. 从sun主页下载JDK for Linux版本,我的是jdk-6u14-linux-i586.bin。
2. 改为可操作文件,chmod +x jdk-6u14-linux-i586.bin
3. 安装 在当前路径,./jdk-6u14-linux-i586.bin;一路确定,装好之后在同一目录下会生成一个文件夹,jdk1.6.0_14,里边是一些lib等文件,同windows下生成的安装文件夹一样。
4.设 ......
学JAVA需要掌握的技术及流程
对于java初学者来说庞大的Java语言不知到从哪里入手开始学习,也不知道都要学些什么才能符合企业的要求,以下是java私塾根据技术的更新而调整的最新教学内容及流程,供大家参考。
1.java的基础知识
不要被新技术迷惑,所谓万变不离其宗,新技术都是基于java的基础之上,如果基础不扎实,对 ......
创建一个JFrame
下面用简单的实例演示了Java Swing创建一个能输入内容的窗口
public class frameTest(){
public static void Main(String args[]){
//创建JFrame对象,JFrame用来在屏幕上显示一个Windows窗口。
JFrame frame = new JFrame("第一个JFrame"); &nbs ......
轻量级组件是用JAVA代码画出来的,这样具有平台移植性。
重量级组件是调用操作系统的函数画出来的组件,比如主窗体。
一般来说尽量用轻量级的组件,这样对程序的移植性很好,一般javax.swing包里的组件大部分是轻量级的java.awt里面的是重量级的。
Swing是由100%纯Java实现的,Swing组件是用Java实现 ......
在java调用exe,com可执行文件和bat,cmd批处理文件
一。运行exe文件
1. Java JDK里已经提供了调用的方法,不在累赘,代码如下。
try {
String command = "notepad";
& ......