`
neora
  • 浏览: 185319 次
  • 性别: Icon_minigender_1
  • 来自: 墨尔本
文章分类
社区版块
存档分类
最新评论

Java 1.5被忽略了的小动作

阅读更多

    人们在谈论Java 1.5的特性的时候,往往集中在范型、注释、concurrent等大的改进方面。而1.5API里的一些小动作往往容易被人忽略,其实这些新增的API小函数还是能给我们带来很多的便利。我总结了一下我常用的几个,罗列如下:

1、format和printf
    非常怀念C语言里printf的format,JSDK 1.5 API提供了相同的功能。
    PrintStream 和 PrintWriter 增加了一个 printf(String format, Object ... args) 方法。

2、浮点数的toHexString()方法。
    作二进制分析,少不了要toHexString(),以前Integer/Long等都提供了toHexString()方法。而在1.5里,Double和Float也提供了toHexString()方法。这太令我高兴了,要知道整型转HexString很简单,但浮点型转Hex String真的有点儿麻烦。现在简单了。

3、Interger位操作的扩充函数。
    Interger的位操作扩充了好几个便利的方法。如果你经常做IP头分析,或者加密解密。你就知道这些函数该多有用。
        public static int highestOneBit(int i) 返回这个2进制数最左的那个1,将其后置0  
        public static int lowestOneBit(int i)
        public static int numberOfLeadingZeros(int i)
        public static int numberOfTrailingZeros(int i)
        public static int bitCount(int i)
        public static int rotateLeft(int i, int distance)  位左旋
        public static int rotateRight(int i, int distance) 位右旋
        public static int reverse(int i) 倒置
        public static int signum(int i) 判断符号(正负零) 。直接返回int最高位的数值。比起 return i == 0 ? 0 : i > 0 ? 1 : -1 要快多了。
        public static int reverseBytes(int i) 按字节倒置  在网络传输处理时特有用。做过C++的人没有会不记得htons() ntohs()

4、System.nanoTime() 取得纳秒级时间。
    你可能还没遇到过需要取得纳秒的时候,即便做准实时毫秒也就够了。但著名的java.util.concurrent,可都是用nano seconds来记时和加锁的。

5、System.clearProperty(String key) 清除一个属性。
    从前有getProperty()有setProperty(),但没有remove。我以前总是设成一个无用的数值。

6、Method增加的几个方法中,下面几个特有用:
        public TypeVariable<Method>[] getTypeParameters()
        public Type[] getGenericParameterTypes()
        public Type[] getGenericExceptionTypes()
        public boolean isVarArgs()
   
7、Double/Float/Long/Integer/Short/Byte等,都加入了一个静态常量 SIZE ,如Double.SIZE = 64。
    早该加了。

 

 

 

 

 

 

 

 

------------------------------------------------------------------------------------------------------------

KO对战游戏平台 www.ko10000.com 打游戏,交朋友。

分享到:
评论
27 楼 dchaoxiong 2008-09-21  
<div class='quote_title'>neora 写道</div>
<div class='quote_div'>
<p>    人们在谈论Java 1.5的特性的时候,往往集中在范型、注释、concurrent等大的改进方面。而1.5API里的一些小动作往往容易被人忽略,其实这些新增的API小函数还是能给我们带来很多的便利。我总结了一下我常用的几个,罗列如下:<br/><br/><strong>1、format和printf</strong> <br/>    非常怀念C语言里printf的format,JSDK 1.5 API提供了相同的功能。<br/>    PrintStream 和 PrintWriter 增加了一个 printf(String format, Object ... args) 方法。<br/><br/><strong>2、浮点数的toHexString()方法。</strong> <br/>    作二进制分析,少不了要toHexString(),以前Integer/Long等都提供了toHexString()方法。而在1.5里,Double和Float也提供了toHexString()方法。这太令我高兴了,要知道整型转HexString很简单,但浮点型转Hex String真的有点儿麻烦。现在简单了。<br/><br/><strong>3、Interger位操作的扩充函数。</strong> <br/>    Interger的位操作扩充了好几个便利的方法。如果你经常做IP头分析,或者加密解密。你就知道这些函数该多有用。<br/>        public static int highestOneBit(int i) 返回这个2进制数最左的那个1,将其后置0   <br/>        public static int lowestOneBit(int i)<br/>        public static int numberOfLeadingZeros(int i)<br/>        public static int numberOfTrailingZeros(int i) <br/>        public static int bitCount(int i)<br/>        public static int rotateLeft(int i, int distance)  位左旋<br/>        public static int rotateRight(int i, int distance) 位右旋<br/>        public static int reverse(int i) 倒置<br/>        public static int signum(int i) 判断符号(正负零) 。直接返回int最高位的数值。比起 return i == 0 ? 0 : i &gt; 0 ? 1 : -1 要快多了。<br/>        public static int reverseBytes(int i) 按字节倒置  在网络传输处理时特有用。做过C++的人没有会不记得htons() ntohs()<br/><br/><strong>4、System.nanoTime() 取得纳秒级时间。</strong> <br/>    你可能还没遇到过需要取得纳秒的时候,即便做准实时毫秒也就够了。但著名的java.util.concurrent,可都是用nano seconds来记时和加锁的。<br/><br/><strong>5、System.clearProperty(String key) 清除一个属性。</strong> <br/>    从前有getProperty()有setProperty(),但没有remove。我以前总是设成一个无用的数值。<br/><br/><strong>6、Method增加的几个方法中,下面几个特有用:</strong> <br/>        public TypeVariable&lt;Method&gt;[] getTypeParameters()<br/>        public Type[] getGenericParameterTypes()<br/>        public Type[] getGenericExceptionTypes()<br/>        public boolean isVarArgs()<br/>    <br/><strong>7、Double/Float/Long/Integer/Short/Byte等,都加入了一个静态常量 SIZE</strong> ,如Double.SIZE = 64。<br/>    早该加了。</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>------------------------------------------------------------------------------------------------------------</p>
<p><a href='http://www.ko10000.com   ' title='KO对战游戏平台  www.ko10000.com 打游戏交朋友。'>KO对战游戏平台</a> <a href='http://www.ko10000.com   ' title='KO对战游戏平台  www.ko10000.com 打游戏交朋友。'>www.ko10000.com 打游戏,交朋友。</a> </p>
</div>
<p> </p>
26 楼 zhao3546 2008-08-31  
是啊,这种整理真的很必要。
前些天做项目使用BtyeBuffer时需要到一个异常,整了很长时间才发现原因。
今天就看到关于BtyeBuffer的flip方法的介绍,如果早看到这篇文章,可以少走很多弯路。
25 楼 zhazha1984 2008-08-29  
不错~~
不过现在基本都没有怎么用,
24 楼 zgxzowen 2008-08-13  
真的是比较不错的方法哈
23 楼 thunderbow 2008-08-12  
好多类还没用过
22 楼 dracularking 2008-08-11  
谢谢,确实有许多不注意的地方 要多挖掘一下啊
21 楼 ro4tub 2008-08-10  
1.6不是提供了String.Format吗?
20 楼 neora 2008-08-07  
引用
java下的 format 用起来狂麻烦。 还是觉得.net的String.Format 方法简洁


哇,这么久了还有人来挖坟。
19 楼 shrpcn 2008-08-07  
java下的 format 用起来狂麻烦。 还是觉得.net的String.Format 方法简洁
18 楼 soleghost 2008-07-12  
楼主很细心啊

范型、注释这些语言级别的特性大家都知道,api级别的一般人只有用的时候才会挖掘他。有时候没有必要钻那么深,api级别的知道一些常用的就可以了,不知道可以查嘛
17 楼 challenge2007 2008-06-12  
String 中增加了一个isEmpty方法
16 楼 archerzz 2008-06-03  
好东西,谢谢楼主整理。
15 楼 tenderghost 2008-06-02  
java菜菜鸟 写道

还有,弱弱地问一句:1.5里面的注释有什么变化吗?我好像没有发觉 

楼主所说的注释是指Annotation吗?
14 楼 lyxh_2003 2008-06-02  
需要用的时候,才会去看。。。。
13 楼 java菜菜鸟 2008-05-31  
sorry~
在这里 http://dreamstone.iteye.com/blog/77889 看到了注释的相关内容.
有兴趣的朋友可以去看下JDK 1.5中注释语法的内容.
12 楼 java菜菜鸟 2008-05-31  
zarger 写道
其实也就是到需要用的时候才会关系,比较里面的东西太多了


对啊.不过楼主整理得也是蛮不错的.

还有,弱弱地问一句:1.5里面的注释有什么变化吗?我好像没有发觉 
11 楼 yuankai 2008-05-30  
JDK功能太强大了,有的时候不知道有这些功能,结果就自己想办法自己实现。
10 楼 zarger 2008-05-30  
其实也就是到需要用的时候才会关系,比较里面的东西太多了
9 楼 laiseeme 2008-05-30  
目前还没用过format
注释可能用的最多吧
8 楼 星情泪 2008-05-30  
呵呵 没想到还有这么多呢

相关推荐

    JAVA1.5安装包

    Java 1.5,也被称为Java 5.0,是Java平台的一个重要版本,由Sun Microsystems在2004年发布。这个版本引入了大量的新特性、优化和改进,对Java编程语言有着深远的影响。让我们详细了解一下Java 1.5的主要知识点。 1....

    java1.5API

    Java 1.5 API,也被称为Java SE 5.0,是Java开发工具包(JDK)的一个重要版本,发布于2004年。这个版本引入了许多创新特性,极大地提升了Java语言的功能性和效率,为后来的Java版本奠定了基础。在Java 1.5 API中,...

    最新JAVA1.5中文API

    Java 1.5,也被称为Java 5.0,是Java平台的一个重要版本,它引入了许多新特性,改进了语言的效率和可读性。在这个"最新JAVA1.5中文API"中,开发者可以找到全面的文档,帮助理解并利用这些新特性进行编程。 首先,让...

    Java1.5API中文版

    Java1.5API中文版(含前两次发布内容)

    java的jre1.5

    Java的JRE1.5,全称为Java Runtime Environment 1.5,是Sun Microsystems公司(后被Oracle收购)推出的一款重要版本的Java运行环境。它为用户提供了执行Java应用程序和Applet所需的所有组件,确保了网页上的Java内容...

    java1.5中文版 html

    sun 标准中文java api

    Java1.5泛型指南中文版

    根据给定的信息,我们可以深入探讨Java 1.5中引入的泛型概念及其应用。本文将详细介绍以下几个方面: ### 1. 引言 #### 泛型简介 Java 1.5引入了泛型(Generics)的概念,这是一个重要的语言特性,它允许开发者在...

    java1.5 cn 3

    java1.5 cn 3 java1.5 cn 3 java1.5 cn 3

    java JDK1.5,1.6版本,和安装

    JDK1.5,也被称为Java SE 5.0,引入了许多重要的新特性,包括: 1. **泛型**:泛型允许在定义类、接口和方法时指定类型参数,提高了代码的类型安全性,减少了类型转换的需要。 2. **枚举类型**:作为预定义常量的...

    java1.5 cn 5

    java1.5 cn 5 java1.5 cn 5 java1.5 cn 5

    java1.5 cn 4

    java1.5 cn 4 java1.5 cn 4 java1.5 cn 4

    java1.5新特征

    Java 1.5 是一个重要的版本更新,引入了许多新特性,极大地提升了开发效率和代码质量。以下是对这些新特性的详细解释: 1. **自动装箱与拆箱**: 自动装箱是指将基本数据类型(如 int、char 等)自动转换为对应的...

    Java-jdk1.5安装包

    JDK1.5,也称为Java 5.0,是一个重要的版本,它引入了许多新的特性和改进,对Java语言的发展产生了深远影响。 一、泛型(Generics) 在Java 5.0中,最重要的特性之一就是泛型的引入。泛型允许开发者在定义类、接口...

    JAVA API1.5中文文档

    Java API 1.5,也被称为Java SE 5.0(Java Standard Edition 5.0),是Java发展历程中的一个重要里程碑,引入了许多创新特性和改进,为开发者提供了更强大的工具和功能。这个API文档包含了Java语言的全面参考资料,...

    BioJava1.5-docs.tar

    BioJava1.5-docs.tar是BioJava 1.5版本的文档集合,包含了关于该项目的详细说明和API参考,是开发者理解和使用BioJava的重要资源。 在解压BioJava1.5-docs.tar后,主要会得到一个名为"doc"的文件夹,该文件夹内包含...

    java JDK1.5---32位和64位

    总的来说,Java JDK 1.5是Java发展历程中的一个重要里程碑,它的许多新特性至今仍被广泛使用,并且为后续版本的开发奠定了坚实的基础。对于学习和使用Java的开发者来说,了解和掌握这些特性至关重要。

    java学习(Jcreator+java1.5的帮助文档)

    "java学习(Jcreator+java1.5的帮助文档)"这个资源包正提供了这样的基础支持。 Jcreator是一款轻量级的Java集成开发环境(IDE),适合初学者和专业开发者使用。它提供了代码编辑、编译、调试和运行等功能,让编程...

    java1.5新特性[定义].pdf

    Java 1.5 引入的新特性之一就是枚举(Enum)类型,这是对之前版本的一个重大改进,尤其是在从 C++ 等语言过渡到 Java 的开发者中受到了广泛关注。在 Java 1.5 之前,Java 缺乏对枚举类型的原生支持,导致了一些不便...

    IBM_jdk1.5_Guide.zip_IBM jdk 1.5_aix_ibm java1.5_ibm jdk1.5 wind

    IBM JDK 1.5,全称为IBM Java Development Kit 1.5,是IBM公司为AIX操作系统提供的一个Java运行环境,特别针对AIX平台进行了优化和定制。在AIX系统中进行开发工作时,IBM JDK 1.5扮演着至关重要的角色,因为它提供了...

Global site tag (gtag.js) - Google Analytics