详解 JAVA 创建对象 NEW.docx

上传人:啊飒飒 文档编号:11550248 上传时间:2021-08-23 格式:DOCX 页数:5 大小:43.89KB
返回 下载 相关 举报
详解 JAVA 创建对象 NEW.docx_第1页
第1页 / 共5页
详解 JAVA 创建对象 NEW.docx_第2页
第2页 / 共5页
详解 JAVA 创建对象 NEW.docx_第3页
第3页 / 共5页
详解 JAVA 创建对象 NEW.docx_第4页
第4页 / 共5页
详解 JAVA 创建对象 NEW.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《详解 JAVA 创建对象 NEW.docx》由会员分享,可在线阅读,更多相关《详解 JAVA 创建对象 NEW.docx(5页珍藏版)》请在三一文库上搜索。

1、类名 自定义名 = new 类名()假设我们在函数中写了如下这个简单的语句:StringBuffer str = new StringBuffer(Hello world);别看这个语句简单,其实包含了如下三个步骤:首先,newStringBuffer(Helloworld)在堆里申请了一坨内存,把创建好的StringBuffer对象放进去。其次,StringBufferstr声明了一个指针。这个指针本身是存储在栈上的(因为语句写在函数中),可以用来指向某个StringBuffer类型的对象。或者换一种说法,这个指针可以用来保存某个StringBuffer对象的地址。最后,当中这个等于号(赋值

2、符号)把两者关联起来,也就是把刚申请的那一坨内存的地址保存成str的值。引用对象之间的赋值、判相等通过上述的图解,大伙儿应该明白指针变量和该指针变量指向的对象是一个什么关系了吧。还是接着刚才的例子,再来看赋值的问题。对于如下语句:StringBuffer str2 = str;这个赋值语句是啥意思捏?实际上就是把str的地址复制给str2,记住,是地址的复制,StringBuffer对象本身并没有复制。所以两个指针指向的是同一个东东。再搞一张示意图,如下(今天画这些图把我累坏了):实际上两个指针的值相同,则肯定是指向同一个对象(所以对象内容必定相同)。但是两个内容相同的对象,它们的地址可能不一

3、样(比如克隆出来的多个对象之间,地址就不同)。final常量的问题针对引用类型变量的final修饰符也是很多人搞混淆的地方。实际上final只是修饰指针的值(也就是限定指针保存的地址不能变)。至于该指针指向的对象,内容是否能变,那就管不着了。所以,对于如下语句:final StringBuffer strConst = new StringBuffer();你可以修改它指向的对象的内容,比如:strConst.append( );但是不能修改它的值,比如:strConst = null;传参的问题引用类型(在函数调用中)的传参问题,是一个相当扯的问题。有些书上说是传值,有些书上说是传引用。搞得Java程序员都快成神经分裂了。所以,我们最后来谈一下“引用类型参数传递”的问题。v还是拿刚才的例子,假设现在要把刚才创建的那一坨字符串打印出来,我们会使用如下语句:System.out.println(str);这个语句又是什么意思捏?这时候就两说了。第一种理解:可以认为传进函数的是str这个指针,指针说白了就是一个地址的值,说得再白一点,就是个整数。按照这种理解,就是传值的方式。也就是说,参数传递的是指针本身,所以是传值的。第二种理解:可以认为传进去的是StringBuffer对象,按照这种理解,就是传引用方式了。因为我们确实是把对象的地址(也就是引用)给传了进去。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1