`
zhangsk
  • 浏览: 31191 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

转 从DELPHI到JAVA

阅读更多

转 http://blog.csdn.net/windindance/archive/2004/09/14/104362.aspx

DELPHIJAVA

1 字符串处理

       DELPHI

              var s :string;

              s := s + 'a string';

       JAVA             习惯用法

              String s = new String();

              s += 'a string';

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

       JAVA             优化用法

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

              s.Append('a string');

2 数组

       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

       JAVA             2: ArrayList (LinkedList)

              ArrayList a = new ArrayList();

              a.add(new Integer(1));

              a.get(1);

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

              不能用“[]”取值。

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

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

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

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

              迭代器使用:

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

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

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

3 集合

       DELPHI

              var option : set of char;

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

       JAVA             1 BitSet

              大小不限制。

              性能相比array略差。

       JAVA             2 HashSet (TreeSet)

              元素必须唯一。

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

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

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

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

              Collection函数说明(包含SetMap):

函数名称

函数说明

备注

add

将对象增加到容器

可能未被实现

addAll

将一批对象增加到容器

可能未被实现

clear

清除所有元素

可能未被实现

contains

检查是否存在元素

 <o:p></o:p>

containsAll

检查是否存在一批元素

 <o:p></o:p>

isEmpty

容器是否为空

 <o:p></o:p>

iterator

返回一个迭代器

 <o:p></o:p>

remove

删除一个元素

可能未被实现

removeAll

删除一批元素

可能未被实现

retainAll

删除除了一批元素外的所有元素

可能未被实现

size

容器中元素个数

 <o:p></o:p>

toArray

返回一个含所有元素的array

 <o:p></o:p>

max,min

取得最大、最小值

 <o:p></o:p>

copy

从一个容器复制到另一个容器

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

             

4 Key/Vaue

       DELPHI

              var sl :TStringList;

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

       JAVA             HashMap (TreeMap,WeakHaspMap)

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

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

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

5 多线程同步

       JAVA

              Collection c = Coolections. synchronizedCollection(new ArrayList());

              List l = Coolections. synchronizedList(new ArrayList());

              Set s = Coolections. synchronizedSet(new HashSet());

              Map c = Coolections. synchronizedMap(new HashMap());

6 文件操作

       DELPHI

              var fin :TFileStream;

       JAVA             1 InputStream / OutputStream

      

       JAVA             2 RandomAccessFile

      

7 目录操作

       DELPHI

              FindFirst,etc.

       JAVA             File

              String[] list = path.list( new FilenameFilter() {

                     public boolean accept(File dir, String s) {

                            String f = new File(s).getName();

                            return f.indexOf(filter)!=-1;

                     }       //这儿是一个内嵌类(inner class

              });

              File类提供下列函数:getAbsolutePath, getName, getPath, length, lastModified, renameTo, mkdirs, isFile, isDirectory, exists,delete等。

 <o:p></o:p>

8 压缩

       DELPHI

              zlib.pas

       JAVA             ZipInputStream / ZipOutputStream

 <o:p></o:p>

9 RTTI

       DELPHI

              is, as ,className,typInfo.pas

       JAVA

              instanceofisInstance()相当于DELPHI中的is

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

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

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

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

             

10 跳出嵌套循环

       DELPHI

              goto

       JAVA

              label1:

              for (int i=0; i<10; i++)

              for (int j=0; j<10; j++)

              {

                     continue label1;    //跳转到label1,循环继续执行

                     break label1;           //跳转到label1,循环中止执行

              }<o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

测试:

       建议在编写程序时同时编写测试代码。

 <o:p></o:p>

其他常用函数:

函数功能

DELPHI

JAVA

输出调试信息

writeln

System.out.println()

随机函数

random

Math.random()

字符串转换为整数

分享到:
评论

相关推荐

    delphi(pas)转java

    总的来说,从Delphi转向Java涉及到语言特性的理解、代码结构的重构、库和API的替换,以及对新平台特性的掌握。这是一个复杂的过程,需要耐心和细致的工作。在转换过程中,保持代码清晰和可维护性,同时考虑未来扩展...

    从DELPHI到JAVA转换.pdf

    从 DELPHI 到 JAVA 转换 DELPHI 和 JAVA 是两种不同的编程语言,分别具有不同的编程思想和设计理念。本文将从 DELPHI 到 JAVA 的转换角度,介绍 JAVA 语言中的一些基本概念和编程技术。 字符串处理 在 DELPHI 中...

    Java2Pas(Java代码转换成Delphi代码)

    1. 项目迁移:当一个组织决定从Java转向Delphi,或者希望将部分Java组件整合到Delphi项目中时,Java2Pas可以帮助快速完成代码的初步转换。 2. 代码复用:开发者可以利用Java2Pas将已有的成熟Java库转换为Delphi代码...

    Delphi调用Java类和包源代码

    Delphi,作为一款强大的Windows应用程序开发工具,有时需要与Java环境交互,以利用Java丰富的类库和跨平台能力。本篇文章将详细探讨如何在Delphi中调用Java类和包源代码,以实现两者之间的无缝连接。 首先,理解...

    DELPHI 7 调用 JAVA 接口

    在IT行业中,跨语言通信是常见的需求,尤其是在不同的开发环境中,比如本文提到的Delphi 7与Java的交互。Delphi 7是一款历史悠久且功能强大的Windows应用程序开发工具,而Java则是一种广泛应用于服务器端和跨平台...

    DELPHI 11调用JAVA 接口

    Java方法执行完成后,结果会返回,同样需要从JNI类型转换回Delphi类型。 6. **异常处理** Java的异常在JNI层会转换为本地异常,因此在Delphi中需要捕获并处理这些异常。 7. **资源释放** 调用完Java接口后,记得...

    java与delphi结合

    Java和Delphi是两种不同的编程语言,它们各自拥有独特的特性和优势。在特定情况下,将两者结合使用可以发挥出强大的协同效应,特别是在跨平台开发、系统集成和利用现有代码库时。本文将深入探讨Java与Delphi的结合,...

    Delphi调用Java类(支持Java 6)完整源代码,可直接调试运行

    通过测试,Delphi的RSA算法无法与Java的RSA算法兼容,经过各种周折最终尝试了Delphi调用Java的类的方法进行RSA加密解密;这是非常令人振奋的解决方案,但是前期也遇到不少问题。 在网上找到...

    从DELPHI到JAVA转换.docx

    从Delphi到Java转换 Delphi和Java都是流行的编程语言,但它们在语法和实现细节方面存在着一些差异。对于开发者来说,了解这些差异非常重要,以便更好地将Delphi项目迁移到Java平台上。本文将从字符串处理、数组、...

    delphi调用java类,包.rar

    这个压缩包“delphi调用java类,包.rar”显然是一个关于如何在Delphi环境中调用Java类的示例或教程。Delphi,作为一种强大的Windows应用程序开发工具,常常需要与Java这样的跨平台语言集成,以利用其丰富的库和服务...

    Java转Pas文件官方工具(delphi的Pas文件)

    总的来说,"Java转Pas文件官方工具"为Java和Delphi之间的代码互操作提供了一个桥梁,它允许开发者利用Java的丰富库和工具集来增强Delphi项目,同时也能让Java开发者更轻松地进入Delphi开发领域。通过深入理解和有效...

    delphi执行java的sdk

    Delphi程序需要链接到JNI的库文件。在Windows上,这通常是`jvm.dll`。在代码中使用`LoadLibrary`函数加载这个库,然后通过`GetProcAddress`获取JNI的函数指针。 3. **创建JNI接口** JNI接口定义了一系列的函数,...

    delphi调用Java函数

    通常,这涉及到Java的Java Native Interface (JNI),这是一个允许Java代码和其他语言写的代码进行交互的框架。Delphi可以通过JNI来调用Java的方法,反之亦然。 1. **创建Java库**:在Java端,你需要编写一个包含你...

    Delphi10.3 中通过JNI调用 Java 函数

    最后,为了在Delphi程序中使用这个DLL,我们需要将其加载到内存中,并通过JNI接口调用Java函数。这可以通过`LoadLibrary`和`GetProcAddress`等API来实现。 总结来说,Delphi 10.3通过JNI调用Java函数的过程涉及以下...

    delphi调用Java接口.rar

    1. **初始化JNIEnv指针**:在Delphi中,你需要获取到JNIEnv指针,这通常通过Java的JNI函数`AttachCurrentThread`或者`AttachCurrentThreadAsDaemon`来完成。这些函数会将当前线程连接到JVM,并返回一个JNIEnv指针。 ...

    JAVA JAR 转DELPHI源码 PAS

    Java到Delphi源码转换是跨平台编程领域中的一个重要话题,尤其对于那些希望利用Java库在Delphi环境中工作的开发者来说。本资源提供了一个名为"JAVA JAR 转DELPHI源码 PAS"的工具,它能够将Java的类、方法和属性转换...

    Delphi.rar_AES_AES加密_delphi AES加密_delphi 加解密_java delphi aes

    本资源"Delphi.rar_AES_AES加密_delphi AES加密_delphi 加解密_java delphi aes"提供的是在Delphi编程环境中实现AES加密和解密的示例代码,其目标是与Java平台上的加解密过程保持兼容。 首先,让我们深入了解一下...

    DELPHI XE7 JAVA 转换工具java to PAS

    简便方法搞定第三方SDK的Jar包 在DELPHI XE 环境下的引入,生成原生桥接文件(NativeBridge File) 所谓“原生桥接文件”,即JAR文件的定义文件,说明了存在JAR库文件里的类、类型、函数等,相当于Windows系统下...

    Delphi XE7调用JAVA的JAR

    然而,当需要与Java环境交互时,如何在Delphi XE7中调用Java的JAR文件就成为一个挑战。本篇将深入探讨如何实现这一目标。 首先,了解Java本地接口(JNI)是关键。JNI允许Java代码调用本地(如C/C++)代码,反之亦然...

    delphi客户端+JAVA服务端

    例如,Delphi客户端可以将数据转换为JSON字符串,通过TCP连接发送到Java服务端,服务端再用JSON库(如Jackson或Gson)反序列化成Java对象。 接下来,安全性和错误处理是必须考虑的因素。使用SSL/TLS加密确保数据...

Global site tag (gtag.js) - Google Analytics