c++中的char * 指针在Java里怎么表示

c++中的char * 指针在Java里怎么表示,第1张

char GetErrMsgA(void);这个函数的返回数据用JAVA可以获取,把int GetMyID(char myid)里面的char myid在JNI里面就直接返回给JAVA,而不是返回int,这样JAVA也是可以获取到myid数据的,但有两个缺点:

1:JAVA里使用的函数结构和原型不一致 TestGetMyID(MyID)变成返回String,而不是原来的int

2:如果dll里有函数同时返回多个Char ,也比较麻烦。

比如int GetInfo(char myid,char mySerial,char logStr );其中myid,mySerial,logStr 都是dll要返回的数据

首先, 在Java中, 不存在引用传递(也就是地址传递)一说, 全部都是值传递, 自然, 在使用对象时实际上都是使用的引用\x0d\\x0d\ Java语言明确说明取消了指针,因为指针往往是在带来方便的同时也是导致代码不安全的根源,同时也会使程序的变得非常复杂难以理解,滥用指针写成的代码不亚于使用早已臭名昭著的"GOTO"语句。Java放弃指针的概念绝对是极其明智的。但这只是在Java语言中没有明确的指针定义,实质上每一个new 语句返回的都是一个指针的引用,只不过在大多时候Java中不用关心如何 *** 作这个"指针",更不用象在 *** 作C++的指针那样胆战心惊。\x0d\\x0d\ 非也,基本类型数据存放在Stack中,存放的是数据。而产生对象时,只把对象的reference存放在stack中,用于指向某个对象,对象本身存放在Heap中。\x0d\\x0d\ 还有, 调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较快。其他变量,如静态变量、实例变量等,都在堆(Heap)中创建,速度较慢。另外,依赖于具体的编译器/JVM,局部变量还可能得到进一步优化。\x0d\\x0d\ 从实现上来讲,引用可以理解为一种受限的指针,引用底层可以采用指针来实现,也可以采用句柄的方式实现。早期jvm一般采用句柄的方式,现在的jvm,比如sun的,IBM的,一般就是用指针来实现。\x0d\\x0d\ 不过从语言的角度来将,没有必要把java的引用和C的指针来比较。\x0d\\x0d\ 指针是可以进行与整数做加减运算的,两个指针之间也可以进行大小比较运算和相减运算。\x0d\\x0d\ 引用不行,只能进行赋值运算。\x0d\\x0d\ 当然有区别\x0d\\x0d\ A a=new A();\x0d\\x0d\ 你可以 a=a+1;吗 指针就可以

首先得弄清楚执行顺序:1 静态块2 父类构造器3 本类中的块4 本类的构造器,这样就很容易分析出为什么了:首先肯定是先执行父类构造函数,打印出abc,然后就是子类中的块了,这时执行的是Student stu = new Student();打印出student,最后执行打印出middleschool

public static void main(String[] args) throws Exception {

Method m = MathclassgetMethod("sqrt", doubleclass);

double x = (Double)minvoke(null, 10);//为什么这句有红线

}

invoke方法返回的是一个对象,转换成基本类型肯定不行的,对象只能转换成对象,这里转换成Double后在自动拆箱成double

另外,java中没有方法指针的概念!你用的这叫java反射机制

区别应该很多,理解这些区别应该是建立在对C的指针和对Java引用类型的高度理解之上2的。

这里说下自己的理解:java中的引用类型可以看成是C中指针概念的封装。C中指针是一个数值,可以进行各种运算(算术、逻辑、位),但是在java中,这些功能被封装,是无法使用的。

根据本题的其他回答更新:java中的参数传递是按值传递当传递的是基础类型的值时,那么会将此值复制一份传递,当传递的是引用类型时候,将会把此引用类型的指针 值复制一份传递。比如:public void test(Person p){}方法中对p的 *** 作,是直接对P在内容中对应的数据直接 *** 作,而不是将P对应的内容中的数据复制一份传递到test方法中。

以上就是关于c++中的char * 指针在Java里怎么表示全部的内容,包括:c++中的char * 指针在Java里怎么表示、java引用与C语言指针的区别是什么、java super指针问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9675394.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存