导航:首页 > 编程语言 > java传址调用

java传址调用

发布时间:2023-02-11 15:13:08

『壹』 java中怎么让函数传地址

你好 java中没有地址传递
java中都是基于值的传递
基本类型变量作为参数传递的话,是直接把变量值复制过去
引用类型作为参数传递的话,是把引用里面的值复制过去

『贰』 java值传递和地址传递

JAVA传递参数有两种方式:值传递和引用传递
值传递是传递数据:如基本数据类型都是值传递
引用传递是把形参和实参的指针指向了堆中的同一对象,对象的引用和数组的引用。

实参,Java的基本数据类型,如int,double等在函数的参数传递时,传递的是副本。String也属于这一范畴。

形参,而如果是对象,则传递的是引用。

如下代码实例:

{

@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
personp=newperson();
p.name="ken";
p.age="12";

reset(p);//传递的是p的指针地址,方法里面在对p的属性进行修改,方法结束后影响依然存在。

Stringname=p.name;
Stringage=p.age;
System.out.println(name+age);
//name=gg,age=223
setContentView(R.layout.main);
}

privatevoidreset(personap){
ap.name="gg";
ap.age="223";
} classperson{
Stringname;
Stringage;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetAge(){
returnage;
}
publicvoidsetAge(Stringage){
this.age=age;
}
}

『叁』 java传地址

在java中简单类型没有传引用,
so楼上几人的回答是错误的。
int等基本类型只能传值。

给你一个实际代码,可以达到传递地址的效果
但是实际上不是传了int a的地址给int b,而是整个Class Test 的地址被传递了。

public class TestChuanCan {
/**
* @param args
*/
public static void main(String[] args) {
int a=1;
Test t=new Test();
System.out.println("init:"+t.c);
t.c=a;
System.out.println("before chang:"+t.c);
changInt(t);
System.out.println("after chang:"+t.c);
}
public static void changInt(Test i){
i.c=3;
Out.println("inner:"+i.c);
}
}
class Test{
int c;
public Test(){
c=4;
}
}

『肆』 Java通过JNI调用C 传递参数时,想传递地址,怎么实现

java数组传递给jni实际是指针,只是java禁止你直接在jni里对java数组操作,所以在jni需要回对java数组转换为jni里可以答操作的数组。典型的还有字符串,c struct等。
之所以禁止jni直接操作数组可能是jvm在安全等方面的考虑。jni调用涉及到java内存栈和native内存栈。jvm只能处理到java内存,没有实现自动管理jni调用的内存。试想下如果jni里操作java数组刚好被回收了会怎样?
所以在jni里需要拷贝java数组副本,而且分配或者是引用了对象,需要手动释放删除(DeleteLocalRef、ReleaseXX)。jni调用实际是个很大的开销.

阅读全文

与java传址调用相关的资料

热点内容
win10邮件不显示图片 浏览:922
口袋妖怪所有版本下载 浏览:504
我们身边都有哪些大数据例子 浏览:25
震旦adc307扫描的文件在哪里 浏览:999
图片打开变成文件 浏览:194
松下微单电脑传文件软件 浏览:574
苹果蓝牙键盘surface 浏览:170
mindmaplinux 浏览:733
oppo手机怎么连接电脑传输数据 浏览:624
word删除尾注分隔符 浏览:773
公告质疑需要哪些文件 浏览:608
数据库模型是干什么的 浏览:404
win10的驱动怎么安装驱动 浏览:320
word文件水印怎么取消 浏览:443
rhel6的镜像文件在哪里下载 浏览:571
成功正能量微信头像 浏览:848
wps表格如何恢复数据 浏览:264
linuxc静态库创建 浏览:838
u盘有微信文件但微信恢复不了 浏览:585
苹果的网站数据是什么 浏览:22

友情链接