从编程到设计之路:


    Java 与 C/C++整合的JNI设计 


  << 高焕堂演讲主题 >>           

主题:从编程到设计之路:Java 与 C/C++整合的JNI设计

地点:杭州.浙江大學 (2014/6/5)

下载:高焕堂的演讲PPT


    << 內容說明 >>              

☆ 无论是C++Java,都是从C语言的struct数据结构和function代码结构为基础,而发展出来的。因此,JavaC/C++可以进行无缝对接的设计。如下图:

   从编程到设计之路:Java 与 C/C++整合的JNI设计_第1张图片   

☆ 以上是两个观点(视角)的交叉,C语言是从函数观点切入,看到了函数的代码指挥计算机硬件去处理(Process)数据。如下图: 

  从编程到设计之路:Java 与 C/C++整合的JNI设计_第2张图片

 在这C语言函数视角里,人们的思维和表达形式为:请电脑打开Led灯,或关闭Flash灯。电脑代码则可表示为:turnOn(Led灯),或者:turnOff(Flash灯)

☆ 现在,可变换成为Java语言的对象(数据)视角。此时,人们的思维和表达形式转变成为:请Led灯自己打开,或请Flash灯自己关闭。电脑代码则可表示为:Led灯.turnOn,或者:Flash灯.turnOff如下图

       从编程到设计之路:Java 与 C/C++整合的JNI设计_第3张图片

☆ 于是,把原来C语言的函数(如turnOn)打包进去Light类里,然后创建Light类的对象,再透过Light对象去调用turnOn()函数来打开自己。如下图

     从编程到设计之路:Java 与 C/C++整合的JNI设计_第4张图片 

 上图里的turnOn()和turnOff()函数里的代码,可以使用Java来写,也可以使用C/C++语言来写。 

☆ 如果使用C/C++来写,就定义了JNI来建立Java与C/C++之间的沟通接口标准了。如下图

      从编程到设计之路:Java 与 C/C++整合的JNI设计_第5张图片

☆ 还有许多重要技术。例如,无论是CJava都必须将目前对象(Current Object)指针传给C函数。让C函数可指向目前对象,以便存取对象的内部属性质或调用类里的其它函数。

☆ 请下载高老师的PPT,有详细说明,下载:高焕堂的演讲PPT

                                                 

高老师的先进课程(请点击此图)…

从编程到设计之路:Java 与 C/C++整合的JNI设计_第6张图片