java能与C++混编吗?

Python012

java能与C++混编吗?,第1张

用jni调用可以,JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java 1.1开始,Java Native Interface (JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。

建议不要混在一起学,Java不是C家族成员。原因如下:

1)可以先学C++后再学Java,有C++的指针,面向对象基础作铺垫,再学Java或其它任何一门语言会有事半功倍效果;

2)正如前面所说,Java不是C家族的成员,例如,在面向对象这块至少在一些语法层面上,你会发现Java的语法是很恶心的。如B类需要继承A类:

Java会这样写

class A{

}

class B extends A{

}

C++这样写(C家族)

class A{

}

class B :A{

}

C#这样写(C家族)

class A { 

}

class B :A{ 

}

再比如,在Java里,类变量,类方法,不仅可以用类名去调用,甚至还可以用对象名去调用,而在C家族里是不允许的。

再比如,在Java里定义类的成员时,若不加访问修饰符时,默认访问级别是本包任何地方均可以访问,而C家族默认是私有的,即类体内部可访问。

当然还有很多差异...

当然可以,但是不建议。第一,C/C++和JAVA的语法的相似度很高,但是他们的运行机制是完全不一样的。初学者很容易混淆。比如C/C++里面有指针的概念,而且指针在不用的时候需要通过free或者delete来收回。但是Java有垃圾回收机制,而不必手动回收指针。(初学者很有可能受到JAVA的影响,在C/C++里面申请了指针,而最后忘记回收)。第二,C++和JAVA是面向对象的编程语言,而C是面向过程的。此二者之间的差异也会让同时学习这三种语言的初学者感到迷茫。第三,JAVA和C++已经封装了好多基本数据结构(链表,栈,映射等)和基本算法(排序等),而C只提供了最底层的功能。如果同时学习三者,在你需要用C语言写程序而又需要用到一些数据结构和算法的时候会感到不适应。所以我的建议是,先学习和掌握C语言,再同时学习C++和JAVA。