关于64位java代码的信息

怎样用Java运行64位程序前提是你的系统是64位系统!具体代码如下:
//测试当前平台是否支持Desktop
if(Desktop.isDesktopSupported())
{//获取Desktop对象
d=Desktop.getDesktop();
}
File f=new File(path);
d.open(f);//使用当前平台默认的关联程序打开文件
java中如何产生64位随机数1.新建工程和类,在类中导入包import java.util.* 。
2.在主函数main()里写出生成64位随机数的代码:
// 随机数类实例化
Random random = new Random();
// 64位数字数组
int[] number = new int[64];
// 循环变量
int i = 0;
// 生成64位随机数算法
for (i = 0; i64; i++) {
if (number[i] == 0) {
// 产生0-10之间的随机小数,强制转换成正数
number[i] = (int) (Math.random() * 10);
}
// 输出数字
System.out.print(number[i] + "");
}
3.点击绿色的运行按钮测试 。
java64位设置内存大小在哪设置1.
在eclipse根目录下打开eclipse.ini,默认内容为(这里设置的是运行当前开发工具的JVM内存分配): -vmargs -Xms40m -Xmx256m -vmargs表示以下为虚拟机设置参数,可修改其中的参数值,也可添加-Xmn,-Xss,另外,eclipse.ini内还可以设置非 堆内存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m 。
2.
打开eclipse-窗口-首选项-Java-已安装的JRE(对在当前开发环境中运行的java程序皆生效) 编辑当前使用的JRE,在缺省VM参数中输入:-Xmx128m -Xms64m -Xmn32m –Xss16m 。
3.
打开eclipse-运行-运行-Java应用程序(只对所设置的java类生效) 选定需设置内存分配的类-自变量,
压缩指针Java虚拟机中每个Java对象都有一个对象头 , 对象头由标记字段和类型指针构成 。其中标记字段用以存储Java虚拟机有关对象的运行数据,如哈希码、GC信息及锁信息,而指针类型指向该对象的类 。
在64位的虚拟机中 , 对象头的标记字段占64位,而类型指针又占64位 。也就是说一个对象额外占用的字节就是16个字节 。以Integer对象为例,它仅有一个int类型的私有字段,占4个字节 。因此,每个Integer的额外开销至少400%,这也就是Java为什么要引入基本数据类型的原因之一 。为了减少内存开销,64位Java虚拟机引入了压缩指针概念(对应虚拟机选项 -XX:+UseCompressedOops , 默认开启),将堆中原本64位的Java对象指针压缩成32位的 。
这样一来 , 对象头的类型指针也会被压缩成32位,使得对象头大小从16字节降低为12字节 。压缩指针不仅可以作用对象头的类型指针,还可以作用引用类型的字段,引用类型的数组 。
默认情况下 , Java虚拟机中对象的起始地址需要对齐至8的倍数(这个概念我们称之为内存对齐(对应虚拟机选项 -XX:ObjectAlignmentInBytes,默认值为 8) 。如果一个对象用不到8N字节,那么空白的那部分空间就白白浪费掉了 。这些浪费掉的空间我们称之为对象之间的填充 。默认情况下,Java虚拟机中32位的指针可以寻址到2的35次方,也就是32GB的内存空间(超过32位会关闭压缩指针) 。在对压缩指针解引用时,我们需要将其左移3位 , 再加上一个固定的偏移量,便可以寻址到32GB地址空间伪64位指针了 。
此外,我们可以配置刚刚提到的内存对齐选项(-XX:ObjectAlignmentInBytes)来进一步提升内存寻址范围 。但是,这也可能增加对象填充,导致压缩指针没有打到节省空间效果 。
就算关闭了压缩指针,Java虚拟机也会进行内存对齐 。内存对齐不仅在于对象和对象之间,也存在于对象的各个字段之间 。比如说,Java虚拟机中的long字段、double字段,以及非压缩指针状态下的引用字段为8的倍数 。

推荐阅读