写一个纯JAVA代码需要注意的几点

原创 2011年05月13日 15:59:00

(1)避免手动使用垃圾回收功能,避免是程序的功能依托于设置的线程的优先级。

        首先对于垃圾回收功能,JVM规范之中,只规定了增加去创建一个对象,而没有规定怎样去销毁一个对象,所以,垃圾回收机制是各个JVM平台自己定义的策略,在JAVA API中,Object类有一个方法是finalize(),用于对该对象进行强制的垃圾回收,但是jvm是不是真的会立刻进行垃圾回收,则有待商榷。

        其次对于JVM中的线程的优先级问题,在thread类中现在一共定义了三个表示优先级的常量,分别为MIN_PRORITY=1,NORMAL_PRORITY=5,MAX_PRORITY=10这三个优先级,但是其实你可以设置10个优先级。但是,在JVM中设置的优先级并不代表在底层的操作系统的优先级,比如,在LINUX机器中,所有的JAVA线程都是同一个优先级的,但是在window系统中,可能多个JAVA优先级共享同一个window线程的优先级这样一来,线程优先级就完全失去了作用。

(2)对于自己的程序所需要运行的平台的集合有一个认识,JVM和API有很多的版本,选择这样一个版本,是他们能够在所有的底层平台上面都能够运行,在这个java平台上面开发出的java程序,就可以说是对于你自己的平台无关的。

(3)避免使用本地方法(native method),在JAVA 的API中有许多class类是有本地方法的,为的是能够与本地的资源和系统进行交互。在自己写JAVA程序的时候,如果使用了native method,就意味着这个类与平台相关了,当移植到其他平台的时候,将无法运行。所以如果需要对底层操作系统的资源进行交互的时候,尽量使用标准的API。

(4)不要使用非标准库,有的JAVA API开发商会对特殊的情况开发出特殊的一套API以供使用,如果要做到平台的无关性,则不能够使用这样的非标准库的API。

如果能够做到以上的几点,就能够使得写出的JAVA程序是平台无关性的。

 

Deep learning深度学习的十大开源框架

Google开源了TensorFlow(GitHub),此举在深度学习领域影响巨大,因为Google在人工智能领域的研发成绩斐然,有着雄厚的人才储备,而且Google自己的Gmail和搜索引擎都在使用...
  • DJY1992
  • DJY1992
  • 2016年10月08日 17:20
  • 3778

JAVA解析纯真IP地址库

 前几天看了下Ruby的IPParse,觉得很过瘾,上网查了下貌似很多IP数据库都要收费的,就下了个纯真QQIP地址库,发现还可以在线升级的,很适合咱做点小玩意。具体解析的纯真版IP地址库请详见htt...

深度学习一:自己写java代码,训练一个神经元

神经网络与深度学习这本书是我学习深度学习的启蒙教材,感兴趣可以到链接出下载。通过一段时间的学习,感觉基本理解了梯度下降算法和反向传播算法,于是尝试着自己写代码来实现神经网络。一开始总是很难的,所以我设...

Java代码 写一个冒泡排序

第一次使用这个编辑器好好用醉了。。。刚写了一篇,结果不小心给关了,还要重新写。。。 冒泡排序 放空了这么就,终于知道自己该干什么,找到实习之后这又是一个新的开始,不要羡慕别人,因为你在别人眼里也是独...

朋友写的一个中国象棋游戏,JAVA代码

朋友写的一个中国象棋游戏,JAVA代码。有兴趣的可以这里下载:中国象棋下载 (1)地址,不知现在还能下否。。。。中国象棋历史悠久,吸引了无数的人研究,现对中国象棋的对战和实现棋谱的制作做如下的设计和说...

用junit对java代码进行单元测试时需要注意的问题。

用junit对java代码进行单元测试时需要注意的问题。 1、用@Test注解的方法必须没有返回值,返回值类型无:void 2、用@Test注解的方法必须没有入参。 比如以下错误代码示例: p...

阿里推的一个java代码规范插件

  • 2017年12月12日 17:16
  • 2.93MB
  • 下载

一个比较详细的二叉查找树Java代码

刚学了二叉树,老师布置了很多题,全部用代码实现了。 这里有没有你需要的,先看这个二叉树查找树的API吧 二叉查找树与普通二叉树的区别就是二叉查找树中父结点的左子结点比父结点小,右子结点比父结点大 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:写一个纯JAVA代码需要注意的几点
举报原因:
原因补充:

(最多只允许输入30个字)