Java重难点分析和总结.docx

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
标题Java重难点分析和总结主要内容1Java的重点介绍是比较两个对象是否相等Java重难点包括这些是重难点a按照Java的重点介绍是比较两个对象是否相等bJava中的this隐私c在JAVA中有两种多态是指运行时多态和编译时多态dJava中super的几种用法与this的区别eStatic2Java中有两种多态

Java重难点

Java重难点 1

1、按照Java的重点介绍==是比较两个对象是否相等 1

2.java中的this随处可见,用法也多,现在整理有几点: 2

3、在JAVA中有两种多态是指:运行时多态和编译时多态 4

4、Java中super的几种用法并与this的区别(转载) 5

5.Static 9

7.Clone() 14

8、StringBuffer和String 16

String

str1=Hellow World;

String

str2=Hellow World;

String

str3=new String(Hellow

World);

String

str4=new String(Hellow

World);

1、按照Java的重点介绍==是比较两个对象是否相等

1、按照Java的重点介绍==是比较两个对象是否相等

,且Java

中对String的赋值都是产生一个新的对象,原有的字符串变成了垃圾内存。但我用下面的类测试了一下,却得到了两种截然不同的结果,不知何解?

class

{

public

{

StringTest

static void

main(String

args[])

if

{

(str1==str2)

System.out.println(str1==str2);

}

elseSystem.out.println(str1!=str2);if (str3==str4)

{

System.out.println(str3==str4);

}

elseSystem.out.println(str3!=str4);

}

}

输出结果为str1==str2str3!=str4

按照Java的解释,得到的结果应该都是不等于啊?

回答:在计算机中存储数据内存中有堆与栈,堆中存放的都是对象和值等,而栈中存放的是对于对象函数,变量的引用。上面的

str1=hello word;

str2=hello word

str3 = new

str4 = new

String(hell

String(hellword和str3

word)

word)

不管str=hell

=

new

String(hello

word)都是放在堆中的,上面的定义来

看是实例化了4个对象,其实只是实例化的3个对象,因为在java中有字符数据池,对于str2在赋值之前

会检查内存中会有没有相同的数据,如果有则直接引用而对于str3,str3则不会检查直接实例化,所以会出现以上结果。

String

str3=new

String(Hellow

World);

String

str4=new

String(Hellow

World);

主要一个是还一个是内存内存对象对象基本类型的数据被加载到了内存池中

主要一个是

还一个是

内存

内存

对象

对象

基本类型的数据被加载到了内存池中

那么

String

str1=

Hellow

World

;

String

str2=Hellow

World;

这两个,str1和str2两个对象都指向内存池中的Hellow

也就是说,其实这两句只构造了两个对象

World这个对象

他们分别构造了str3,str4,还有两个Hellow

World对象。是因为它们都用了new关键字来构造对

象,而用new构造的对象之前是没有被加入内存池中的,所以要另外加载过来,然后,把str3和str4分别

指向所对应的Hellow World对象。

现在我们来看,str1和str2指向的都是内存池中原来的Hellow

World对象

而str3指向的是后来加入的一个Hellow World对象,str4指向的又是另外一个后来加入的Hellow

World对象

********************************************************************************************

this是指当前对象自己。

当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用。如下面这个例子中:

publicclassHello{Strings=Hello;

publicHello(Strings){System.out.println(s=+s);

System.out.println(1-this.s=+this.s);this.s=s;

System.out.println(2-this.s=+this.s);

}

publicstaticvoidmain(String[]ar

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档