jni编程,java编程

1,java编程BigInteger.valueof(1);这个地方,如果你输入的是一串整数,那么编译器会默认为是int,而不是long你的值超出了int的范围就会编译报错你需要在你的值后面加上L,这样就表示long型了,如BigInteger.valueof(10000000000000L);【jni编程,java编程】
2 , JAVA 编程错了2个地方.实例化Students对象的时候排列方式错了应该是Students s1=new Students(99,"张三")还有一个地方HashMap data=http://www.lisdn.com/mnsj/hhwd/new HashMap();应该是Map data=new HashMap();HashMap类只是继承Map这个接口.Students(int s,String n){score=s;name=n;}Students s=new Students("张三","90");Students s1=new Students("李四","88");张两行的参数和定义的不一致,应该为Students s=new Students("90","张三");Students s1=new Students("88","李四");
3,JNI编程之如何传递参数一String参数的传递先看一个例子,class Prompt String getLine(String prompt);读入一个String参数 , 返回一个String值 。通过执行javah -jni得到的头文件是这样的#include<jni.h> #ifndef_Included_Prompt #define_Included_Prompt #ifdef __cplusplus extern"C" cout << prompt << endl;编译器肯定会扔给你一个错误信息的 。其实要处理jstring有很多种方式,这里只讲一种我认为最简单的方式,看下面这个例子,#include"Prompt.h" #include<iostream> JNIEXPORT jstringJNICALL Java_Prompt_getLine(JNIEnv *env, jobject obj, jstring prompt) str = env->GetStringUTFChars(prompt, false);将jstring类型变成一个char*类型 。返回的时候,要生成一个jstring类型的对象,也必须通过如下命令,
4 , 请问jni技术到底是什么能不能简单的阐述一下jNi就是java调用本地方法的技术,最简单的来说 , java运行一个程序需要要和不同的系统平台打交道,在windows里就是和windows平台底层打交道,mac就是要和mac打交道,jvm就是通过大量的jni技术使得java能够在不同平台上运行 。而使用了这技术的一个标志就是native,如果一个类里的一个方法被native修饰,那就说明这个方法是jni来实现的,他是通过本地系统api里的方法来实现的 。当然这个本地方法可能是c或者C++,当然也可能是别的语言 。jni是java跨平台的基?。?jvm通过在不同系统上调用不同的本地方法使得jvm可以在不同平台间移植 。当前你自己也可以用jni来写一些程序,这种基本上是你以前使用了其他语言完成了一些功能,但是你有要用java来重复这些功能的时候,就可以使用jni来完成了 。不过带来的问题就是 , 如果你的那个本地方法是依托于本地操作系统的话,那就意味着你的java程序也只能在这一个系统上运行了 。所以jni就使得java很容易限定在了一个系统平台上,而jdk的作用在于他提供一个规范 , 这个规范就是包含了很多native方法,这些方法都是要本地操作系统来实现的,而实现了这些本地方法的操作系统就可以移植java平台了 。5 , JAVA 编程JAVA中的字符串比较应该用equals函数,而不能用“==”所以改成import java.util.*;public class text6{public static void main(String[] args){Scanner input=new Scanner(System.in);int psd;String name;name=input.next();psd=input.nextInt();if(name.equals("管理员")&&psd==123)//这一行改了 , 别的一样{System.out.println("正确用户名密码");}else{System.out.println("错误");}}}import java.util.*;public class text6{public static void main(String args[]){Scanner input=new Scanner(System.in);int psd;String name;name=input.next();psd=input.nextInt();if(name.equals("管理员") && psd==123){System.out.println("正确用户名密码");}else{System.out.println("错误");}}}字符串比较用public boolean equals(String s)字符串比较不是直接用 == 号啊用equal 比较的

    推荐阅读