java 都是引用行的
c++不是
c++不是
解决方案 »
- C#加密算法改成Java实现,谁来帮我下啊?
- 大家好,请教一个程序调试的问题,十分感谢(程序,错误提示如下)
- JTree的节点连接线的垂直线怎么改为虚线
- 求救~关于install sheild
- double 类型能不能不用科学计数法来实现!
- 请问:在游戏中,对场景(或者叫背景)的浏览是怎么做的。比如在“红警”中有很多的地图,我们可以通过鼠标来遍历它,这个地图在程序中是
- JTextField的一个小问题,大家帮忙解决!
- 怎样把int转为char
- 请教一个BS结构本地服务器搭建的技术脉络.
- 谁碰到过maven管理springmvc的项目打成war包后启动报找不到service注解的这种错误
- 如何锁定数据库表中某一特定行?(首次发贴,多多帮忙)
- 画图问题
这里str就是一个指向aa字符串的引用
c++里指针定义People *teacher = new People();
java引用定义为 People teacher = new People();
现在的感觉就是,java里面究竟什么是对象,什么是引用,我都搞糊涂了.
People是个自定义的类
teacher是这个类的一个实例如果在程序中要用到这个实例,那么teacher就要充当引用的角色,并通过它去对People这个对象的实例
teacher进行操作.我感觉说的好绕口啊!
Java中的句柄(应用)跟C++的指针没有什么区别。
而且Java的指针你是无法象C++那样操纵的
比如说,C++中的引用一生当中只能引用到一个对象或变量,可谓从一而终,而Java中的引用却可以朝三暮四,除非final引用。
你能操作的只有引用,也就是对象的句柄,或叫指针,或叫引用,都一个意思...
不管你新建一个什么对象,都是引用
People teacher =new People();
People *t1=teacher;
是创建了一个名字为teacher的“对象”,并将类型为People的“引用(指针)”t1指向teacher这个对象(有内存分配和实际的值)。这里我们如果再:
*t1=null;
那么你仍然可以通过teacher来使用该对象。(如果上面语法行的通的话..好久没用C++了..)
而java中:
People teacher = new People();
实际是等于C++的:
People *teacher =null;
new People();//创建一个对象,包括分配空间等操作。
teacher=刚创建的People对象;//把teacher指针(引用)指向刚创建的对象。如果我们再:
teacher=null;
那么刚才创建的对象将因为没有办法通过引用而访问而被闲置。c++中如果是通过malloc分配的空间,那么就会造成内存泄露。而java的vm可以自动将此对象收回。