c语言可以写java吗

Python013

c语言可以写java吗,第1张

c语言学完可以转java吗?当然可以转,但如果说你学C语言的目标是为了初步掌握编程基础,并打算学习更高级语言做web开发,那可以考虑直接去学java。C语言是高级语言的基础,也是高级语言入门的最佳选择之一,C语言面向过程写程序按部就班自由性比较大,java基础比较简单,没有语言基础的照样能学会。

在你学了C语言之后,顶多了解了C语言的思想以及某些语法。但是在java里除了语法与C语言有个别类似的,其他的都不太一样。所以如果说在学Java之前先学C语言,对于你后续帮助不太大,但是还是有那么一点点帮助的,比如说你接触和学习Java会比一般小白更容易接受,因为你已经有了编程的基础概念了。如果为了就业的话,除了技术主要还是要看学历,毕竟现在JAVA火了太多年,许多学校学计算机的都学JAVA,一问到就说学了JAVA,所以市场也逐步饱和。投简历的时候,基本上都是要求大专,本科以上学历,大专以下的直接OUT了。

如果你是大专学历的话,学了C语言,建议学嵌入式会好点,毕竟嵌入式的基础就是C语言。当然,如果你的学历够高,JAVA学的够深,进入大厂也不是太大难事。毕竟在IT行业里,技术才是硬道理,技术相当的话就会看学历。

所以学完C语言再去学Java完全是没有问题的,只是相对于Java,更建议去学习嵌入式,如果确实是想学Java的,那么可以直接学习Java,不需要绕弯子先学C语言。

JNI允许您从本机代码内调用 Java 类方法。

要做到这一点,通常必须使用 Invocation API 在本机代码内创建和初始化一个 JVM。

下列是您可能决定从 C/C++ 代码调用Java 代码的典型情况:

1.希望实现的这部分代码是平台无关的,它将用于跨多种平台使用的功能。

2.需要在本机应用程序中访问用 Java 语言编写的代码或代码库。

3.希望从本机代码利用标准 Java 类库。

从C/C++ 程序调用 Java 代码的四个步骤:

1.编写 Java 代码。

这个步骤包含编写一个或多个 Java 类,这些类实现(或调用其它方法实现)您想要访问的功能。

2.编译 Java 代码。

在能够使用这些 Java 类之前,必须成功地将它们编译成字节码。

3.编写 C/C++ 代码。

这个代码将创建和实例化 JVM,并调用正确的 Java 方法。

4.运行本机 C/C++ 应用程序。

如何在c语言中使用java传入的字符串s,也就是说如何使用jstring类型。那么在c语言实现中如何使用传入的字符串s?

我们知道java中的String,c语言中应该对应的是char*类型,也就是说我们在jni的c语言实现中如何把jstring类型转换成为char*即可。

方法是这样的:

在c文件中声明char* str,然后

str= (char*)(*env)->GetStringUTFChars(env, jstring,NULL)

这样就可以得到传入的字符串,过程如下:

JNIEXPORT jstring JNICALLJava_Test_sayHello

(JNIEnv * env, jobject obj, jstring s)

{

char * str

str=(char*)(*env)->GetStringUTFChars(env,s,NULL)

printf("%s",str)

(*env)->ReleaseStringUTFChars(env, s, str)

......

}

当然,java中有垃圾回收机制,二c语言没有,那么使用完该字符串之后该如何处理呢?字符串str使用完后,需要通知虚拟机平台相关代码无需再访问,方法是

(*env)->ReleaseStringUTFChars(env, jstring, str)

最后还要说一下,如果传入传出的字符串是中文,就又有问题了,我们需要手工进行uncode编码,否则就是乱码,当然如果程序设计合理,这里一般情况下尽量避免进行汉字的传递。

呵呵,就这样了!