24小时热门版块排行榜    

查看: 481  |  回复: 0

zyj8119

木虫 (著名写手)

[交流] 【转帖】Delphi与Java用法区别

一、运算符

二、语句

三、其他

字符串处理

  DELPHI

      var s: string; // 变量身明

       s := s + 'a string'; // 字符串表达,赋值

  JAVA (普通用法)

       String s = new String();

       s += "a string"; 或 s = s + "a string";

       由于String对象不可修改,导致对String对象赋值会有一个StringBuffer对象产生并销毁,一个新的String对象被产生。在大字符串处理和循环处理时,性能极差。----参见《JAVA 字符串处理速度测试》

  JAVA (优化用法)

       StringBuffer s = new StringBuffer();     //如果字符串较大,最好能够赋予一个初始的StringBuffer大小。

       s.Append('a string');

数组

DELPHI

    var a:array of string;

    SetLength(10);

JAVA

(1)Arrays

              String[] a = new String[10];

int [] a = {1,2,3,4}

              可以直接赋初始值(不管是基本类型还是对象)

              注意:不可改变数组大小!

              拥有以下实用的函数:full,sort,equals,binarySearch,System.arraycopy

(2)ArrayList (LinkedList)

              ArrayList a = new ArrayList();

              a.add(new Integer(1));

              a.get(1);

              注意:数组的值必须是对象类型!

              不能用“[]”取值。

              容器的元素是Object类。(也即使用时需要强制转型)(JDK1.5支持泛型JAVA)

              ArrayList随机访问性能好,但元素插入和删除性能差。

LinkedList反之。

              LinkedListList中央插入和删除元素性能好,可以用来制作stack,queue或deque。包含下列函数:addFirst,addLast,getFirst,getLast,removeFirst,removeLast

              要访问一个容器,最好是使用迭代器,例如a.iterator()。

              迭代器使用:

              void print(Iterator e) { while (e.hasNext) System.out.println(e.next());}

              迭代器包含下列函数:next,hasNext,remove

              注意:当取得一个迭代器后,如果容器被改变,会抛出异常。


集合

DELPHI

              var option : set of char;

              option := ['a','b'];

JAVA

(1)BitSet

              大小不限制。

              性能相比array略差。

(2)HashSet (TreeSet)

              元素必须唯一。

              每个元素都必须定义equals函数和compareTo函数。

              HashSet查找性能好,但无法排序。必须定义hashCode函数。

              TreeSet是有序的,但查找性能较差。

              TreeSet可以产生大小在一定范围内的一批元素。

Key/Value对


DELPHI


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yaoyepeng/archive/2008/07/08/2626537.aspx

        var sl: TStringList;

        sl.Values['key'] := 'value';

JAVA

          HashMap (TreeMap,WeakHaspMap)

        TreeMap可排序,但性能较差。可以返回在一定大小范围内元素的子集。

      HashMap性能好,不可排序。需要提供hashCode、equals等函数。

      WeakHaspMap似乎可以节省内存空间。



文件操作

DELPHI



压缩

DELPHI

      zlib.pas

JAVA

       ZipInputStream / ZipOutputStream

RTTI

DELPHI

      is, as ,className,typInfo.pas

JAVA

      instanceof或isInstance()相当于delphi中的is

      Class.forName("AClass" 相当于 AClass.class

      对于外覆类例如Integer,其Integer.TYPE 等同于 integer.class

      Class.forName("AClass".newInstance()可以产生一个新对象(该类必须具有缺省构造函数)。

      java.lang.reflect提供Field, Method. Constructor等类。





      var fin :TFileStream;

JAVA

(1)InputStream / OutputStream

2) RandomAccessFile
回复此楼

» 猜你喜欢

好好学习,天天向上。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

相关版块跳转 我要订阅楼主 zyj8119 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见