`
neora
  • 浏览: 183790 次
  • 性别: 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.5新特性

    JAVA 1.5的新特性是Java发展史上的一个重要里程碑,这一版本引入了一系列创新特性,旨在提升编程效率、增强代码安全性并简化开发流程。以下是对JAVA 1.5新特性的详细解析: ### 1. 泛型 (Generics) #### 概述 泛型...

    JAVA 1.5 API 文档

    Java 1.5 API 文档是Java开发人员的重要参考资料,它包含了Java 1.5版本的所有公共类、接口、方法和异常等详细信息。这个API文档以中文的形式提供,使得国内开发者能更方便地理解和使用Java 1.5的新特性。 在Java ...

    java1.5api

    Java 1.5 API,也被称为Java SE 5.0(Java Standard Edition 5.0),是Java发展历程中的一个重要里程碑,引入了许多新特性和改进,为开发者提供了更强大的工具和功能。JavaScript API虽然在此描述中一同提及,但它们...

    java的jre1.5

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

    java jdk 1.5 windows

    Java JDK 1.5,也被称为Java 5.0,是Java开发工具包的一个重要版本,由Sun Microsystems在2004年推出。这个版本带来了许多显著的改进和新特性,对Java编程语言产生了深远的影响。以下是关于Java JDK 1.5的一些关键...

    Java1.5泛型指南中文版

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

    JAVA API1.5中文帮助文档

    Java API 1.5,也被称为Java SE 5.0,引入了许多重要的新特性和改进。首先,泛型的引入是Java编程的一个重大革新,它允许在编译时检查类型安全,减少了运行时的类型转换异常。泛型在集合框架中得到了广泛的应用,如...

    java1.5新特性

    java1.5之后的新特性: 1,枚举(enum) 作用:一般用于代表一组相同类型的常用常量。 原理:语法结构与java类的语法不一样,但是经过编译器编译之后产生的是一个class文件。该class文件经过反编译之后实际上是...

    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 4

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

    Java-jdk1.5安装包

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

    BioJava1.5-docs.tar

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

    java ee 1.5 1.6 api

    在Java EE 1.5和1.6版本中,这些API得到了进一步的发展和完善,为开发者提供了更强大、更灵活的开发工具。 Servlet是Java EE中的核心组件之一,它是处理HTTP请求的服务器端程序。在Java EE 1.5和1.6中,Servlet API...

    java jdk 1.5 API html

    Java JDK 1.5,也被称为Java 5.0,是Java开发工具包的一个重要版本,于2004年发布。这个版本引入了大量的新特性,优化和改进,极大地提升了Java编程的效率和灵活性。本API HTML文档是开发者学习和查阅Java 1.5 API的...

    Java基础体验Java1.5中面向(AOP)编程.docx

    ### Java基础体验Java1.5中面向(AOP)编程 #### 概述 本文旨在探讨如何在Java 1.5中利用面向切面编程(Aspect-Oriented Programming, AOP)来改善应用程序的状态管理和日志记录。AOP是一种编程范式,通过将横切关注...

    JAVA API1.5中文文档 .rar

    Java API 1.5,也称为Java SE 5.0,是Java开发的关键版本,引入了许多新特性,改进了语言的效率和可读性,并扩展了标准库。这个中文文档对于学习和理解Java编程语言至关重要,它包含了详细的类库、接口、方法和其他...

    OpenBlox 1.4 :Java 1.5实现的Diameter协议栈

    OpenBlox 1.4 :Java 1.5实现的Diameter协议栈,来自tariffsystem.com

    Java虚拟机1.5

    4. **增强的for循环(foreach)**:Java 5引入了增强的for循环,也被称为foreach循环,简化了遍历集合、数组等数据结构的代码,使代码更易读。 5. **变量赋值检查**:编译器在Java 5中增强了对未初始化变量的检查,...

Global site tag (gtag.js) - Google Analytics