public class test {
public void change(StringBuffer buffer1,StringBuffer buffer2,StringBuffer buffer3,StringBuffer buffer4)
{
buffer1=new StringBuffer("AA");
buffer2.append("BB");
buffer3=buffer1;
buffer4=buffer2;
buffer4.append("DD");
}
/**
* @param args
*/
public static void main(String[] args)
{
StringBuffer buffer1=new StringBuffer("aa");
StringBuffer buffer2=new StringBuffer("bb");
StringBuffer buffer3=new StringBuffer("cc");
StringBuffer buffer4=new StringBuffer("dd");
test test=new test();
test.change(buffer1, buffer2, buffer3, buffer4);
System.out.println("--1--"+buffer1);
System.out.println("--2--"+buffer2);
System.out.println("--3--"+buffer3);
System.out.println("--4--"+buffer4);
}
}
这是java中值传递过程中的别名问题,在调用方法的过程中 只是调用对象的句柄
*在方法里的buffer1在new 后已经是一个新对象(此时buffer3也是此句柄的别名),它生命周期在方法调用完毕已经结束所以打印的是初始化的buffer1
*在方法里 buffe4=buffer2 看似对buffer4的操作 但此时实际是进行了对buffer2所指向的操作,他们共同指向buffer2 所指向的地址
buffer4此时变成了buffer2的别名,
最后,你打出来的buffer4其实还是你以前开始初始化的那个 这样解释可以吗??希望学习O(∩_∩)O哈哈~
分享到:
相关推荐
Java实现获取窗口句柄并操作窗口 JNA Java实现获取窗口句柄并操作窗口 JNA
Java实现获取窗口句柄,
Java调用Win32获取窗口句柄JNative-1.3.2 Java调用Win32获取窗口句柄JNative-1.3.2
本程序是完整的项目文件,在VS2008下运行成功,程序功能:通过传递主窗体句柄,然后打开子窗体,在子窗体中可对主窗体的控件或函数进行操作,改变其控件属性 ,调用主窗体的函数,(注:在调用前要修改主窗体被调用控件或函数...
在vue开发时需要在页面跳转的时候传递文件句柄,又不想用vuex来传递,因为vuex使用有些大材小用,说以用mitt,也就是vue2的eventbus。vue3没有eventbus,所以使用mitt,来传递文件句柄,在另一个页面就可以拿到文件...
之前在做海康摄像头动态库的JNI封装中遇到了窗口句柄无法获得的问题,着实费了点功夫,现将封装好的动态库以及一个演示程序分享给大家,希望能帮大家省下点时间!!如果希望自己动手解决问题的同志可以自己上网查询...
jni 获得java窗口句柄的C语言源代码
解决“创建窗口句柄时出错”异常,具体问题分析在“说明.txt”文件中
读取其他程序句柄、指定窗口的句柄
查看句柄查看句柄查看句柄查看句柄查看句柄查看句柄
先运行 fdtrans 建立监听, 然后 运行fdtranc fdtranc 连接fdtrans并得到 文件 fdtrans.cpp的句柄。然后 fdtranc 用这个句柄读文件的前 30个字节并显示出来。 参考文章见 apue2 Section 17.4. Passing File ...
找了好久才找到的,用LabVIEW编写的,可以获取窗口句柄的一个函数,很好用
郎启武 201110增强,可以直接将数据连接的句柄传递进去,不用再开 一个新的连接,减少了数据库的连接数。并且里面还是使用了孙兄的多线程 的方式。解决了pb使用多线程的问题。 如有问题,请laolang308@sina.com...
VC中获取窗口句柄的各种方法
2012最好的 金鹰句柄搜索 他结合闪动句柄 为一身
当阅读到C#的代理、事件、事件句柄概念时,本人非常开心,因为《Programmers Heaven C# School》一书上说“事件/事件句柄”是基于观察者模式的,但是,看书上代码一点都不“模式”。所以,本人根据Java的监听器概念...
在服务端不存在或没开启时,clientsocket反复连接服务端会导致程序句柄数急速增加,最后系统资源耗尽出错,本demo较好的解决了这一问题.
本源码可以读取任意软件窗口控件句柄,通过控件的句柄可以更改其他软件控件名称。
窗口句柄获取及API的调用: .版本 2 .程序集 窗口程序集1 .子程序 _按钮_点击按钮_被单击 .局部变量 父窗口句柄, 整数型 .局部变量 编辑框窗口句柄, 整数型 .局部变量 按钮窗口句柄, 整数型 .局部变量 临时文本, ...
使用Labview2013中文版编辑,通过调用API中user32.dll的FindWindowA实现用窗口标题获取句柄。参数如下 int32_t FindWindowA(int32_t lpClassName, CStr lpWindowName);