第一次在Java中感受到指针
可能很多人认为我大惊小怪,可是确实比较激动。
于是发上来分享。
这是我感受到指针的代码。
public List search( List<String> organizationIds) throws Exception {
try {
begin();
List<String> orgList = organizationIds;
for (int i = 0; i < organizationIds.size(); i++) {
List<String> list = DAO.get(organizationIds.get(i));
for (String str:list) {
orgList.add(str);
}
}
commit();
return usersDatas;
} catch (Exception e) {
rollback();
log.error(e.getMessage(), e);
throw e;
}
}
我把参数中organizationIds这个list赋值给了orgList
我的原意是想把organizationIds的值给orgList
然后后面用orgList去进行操作。
可是我发现。我这样的做法。导致我的程序变成了死循环。
从逻辑代码没看出有什么问题。
于是使用断点功能去追查。
最后发现。每次当我orgList进行add的时候
organizationIds的值也会一起变化。
这是什么情况?以前没遇到过啊。以为是代码没有编译
于是费了很大的力气进行编译……
编译的结果。还是跟之前一样。代码反复的查验。。无果。。
忽然反映过来。 难道是指针???
我的orgList没有进行一次 new操作。所以没有给他开辟一个内存空间。
当把organizationIds赋值给orgList的时候。
只是把orgList的指针指向了organizationIds的内存地址????
于是把代码改为如下:
public List search( List<String> organizationIds) throws Exception {
try {
begin();
List<String> orgList = new ArrayList<String>();
for (int i = 0; i < organizationIds.size(); i++) {
orgList.add(organizationIds.get(i));
List<String> list = DAO.get(organizationIds.get(i));
for (String str:list) {
orgList.add(str);
}
}
commit();
return usersDatas;
} catch (Exception e) {
rollback();
log.error(e.getMessage(), e);
throw e;
}
}
果然这一次没有问题了。并且orgLIst的值完全正确……
其实Java也是一样。还是有指针的嘛…………
分享到:
相关推荐
C#中使用指针源程序,我想许多C程序员不愿意学习Java的原因就是Java不支持指针,但是现在类似于Java的C#却已经支持了指针,你可以使用unsafe关键字来告诉编译器下面的函数或者代码是不安全的。一旦你使用了unsafe,...
1.下载后到那个装鼠标指针的文件夹(就是你把指针装在哪个文件夹里) 2.打开压缩包,选种某个鼠标指针的图案,然后点【解压缩到】(在解压缩操作界面的左上角). 3.解压缩到你自己喜欢的文件夹里. 4.然后再打开...
java_指针_数组的
在网上搜集到的C++指针资料,打包上传上来给大家下
经过几天的奋战,终于让我搞懂了JNA的解析以及指针在结构体中的应用!!!下了很多的资料,里面包含c++的.h头文件,给需要帮助的人看看!! 里面包含代码以及解析过程。
数据流分析器 分析静态数据相关性 java实现,用于检测静态代码的相关性,单相关双相关
就指向指针的指针,很早以前在说指针的时候说过,但后来发现很多人还是比较难以理解,这一次我们再次仔细说一说指向指针的指针。 先看下面的代码,注意看代码中的注解: #include #include using namespace...
我这不是我第一次写关于C指针的文章了,只是因为指针对于C来说太重要,而且随着自己编程经历越多,对指针的理解越多,因此有了本文。然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机硬件以及...
彻底理解指针,指针数组和数组指针,指针函数和函数指针.doc
Java中的空指针异常问题Java中的空指针异常问题.docJava中的空指针异常问题.doc
鼠标指针下载鼠标指针下载鼠标指针下载鼠标指针下载鼠标指针下载鼠标指针下载鼠标指针下载鼠标指针下载鼠标指针下载鼠标指针下载Yangcong WolfYangcong WolfYangcong WolfYangcong WolfYangcong WolfYangcong ...
彻底搞定C指针-指向另一指针的指针 <br>摘自博客文章
c语言指针c语言指针c语言指针c语言指针c语言指针c语言指针c语言指针c语言指针c语言指针c语言指针c语言指针c语言指针c语言指针c语言指针c语言指针c语言指针c语言指针c语言指针c语言指针c语言指针c语言指针c语言指针...
C指针C指针C指针C指针C指针C指针C指针C指针C指针C指针C指针C指针C指针C指针C指针C指针C指针C指针C指针C指针C指针C指针C指针C指针C指针C指针C指针
指针 指针教程 指针练习指针 指针教程 指针练习
解决java常见的空指针异常 为大家排忧解难 提供微薄之力
1) 在 View 中获得 Doc 指针 2) 在 App 中获得 MainFrame 指针 3) 在 View 中获得 MainFrame 指针 4) 获得 View (已建立)指针 5) 获得当前文档指针 6) 获得状态栏与工具栏指针 7) 获得状态栏与工具栏变量 8...
假设以带头结点的循环链表表示一个队列,并且只设一个队尾指针指向尾元素结点(注意不设头指针),试写出相应的置空队、入队、出队的算法。(Java描述)
2.在一个表达式里,*p[] 将被求值为一个int 整数,所以p[]必须指向一个int 整数,而p是一个int 指针数组。指针数组p里的5个元素(5个)指针被初始化为分别指向数组a里的5个元素。 3.**pp代表着一个int整数,所以*pp...
本资源为使用Java开发的带有时针,分针,秒针的圆形时钟,同时还可以同步显示数字时间。时间使用获取的系统时间。