java初学者容易混淆的几个问题

java初学者容易混淆的几个问题

ID:30132829

大小:57.25 KB

页数:3页

时间:2018-12-27

java初学者容易混淆的几个问题_第1页
java初学者容易混淆的几个问题_第2页
java初学者容易混淆的几个问题_第3页
资源描述:

《java初学者容易混淆的几个问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、www.027hpedu.comJava初学者容易混淆的几个问题1.String类和StringBuffer类它们都是处理字符串的类,但是它们有一个最大的区别,那就是,String对象是存储你不能改动的文本字符串,相反,如果你希望改动,则应使用StringBuffer类作为替换.eg1:......//omitsomecodeStrings1="Youarehired!";System.out.println(s1.replace('h','f'));//用f把字串中的h替换了System.out.println(s1);......//omitsomecode运行结

2、果:Youarefired!Youarehired!结果分析:从结果,明显可知,s1的值并没有被改变,而第一行结果只是屏幕内容的替换.eg2:......//omitsomecodeStringBuffers2=newStringBuffer("HellofromJava!");s2.replace(6,10,"to");System.out.println(s2);......//omitsomecode运行结果:HellotoJava!结果分析:显然,s2的值已改变.2.位逻辑与条件逻辑首先声明,为了与位逻辑更好区分开来,我把通常所说的逻辑取了个别名叫做条件逻辑.

3、它们都有各自的操作符,位逻辑操作符有:&(与运算),^(异或运算),

4、(或运算);条件逻辑操作符有:&&(并且),

5、

6、(或者).位逻辑运算通常是针对两个数而言,实行位操作;而条件逻辑运算是针对两个条件表达式而言,实行条件操作.其实,位逻辑操作符一样可以实现条件操作,但是此时有一个重要的区别:用位操作符时,不管操作符两边的条件表达式成不成立,它都要通通进行运算判断,而条件逻辑操作符不一样了,如果通过左侧的操作数就可以进行它们需要的判断,那么它就不会再计算右侧的操作数了,这种情况叫短路.废话少说!且看下例.eg1:......//omitsomecodedoubleval

7、ue=0;if(value!=0&&1/value<1000){System.out.println("Thevalueisnottoosmall.");}else{System.out.println("Thevalueistoosmall.");}......//omitsomecode运行结果:Thevalueistoosmall.结果分析:照理说应会出现除数为0的错误,但是我刚才说了,由于条件逻辑操作符是短路操作符,显然,value!=0不成立,立即就可作出判断应执行else后的语句,所以它就不再会运算判断1/value<1000了.如果不懂请再看一例:eg2

8、:......www.whhpit.comwww.027hpedu.com//omitsomecodedoubleint1=0,int2=1,int3=1;if(int1!=0&(int2=2)==1){}System.out.println("int2="+int2);if(int1!=0&&(int3=2)==1){}System.out.println("int3="+int3);......//omitsomecode运行结果:int2=2.0int3=1.0结果分析:我想不用我分析了,你应该懂了吧.3.实例变量与类变量可以通过两种方法在类中存储数据───作为

9、实例变量和类变量.实例变量是特定于对象的,如果你有两个对象(即一个类的两个实例),每一个对象中的实例变量独立于另一个对象中的实例变量的;另一方面,两个对象的类变量均指向相同的数据,并因此面保存相同的值,换句话说,类变量被类中的所有对象共享.差点忘了,它们在形式上的区别,类变量在声明时比实例变量多一个static.eg:classdata{publicintintdata=0;//显然,intdata在这儿是实例变量}publicclassexam{publicstaticvoidmain(String[]args){dataa,b;a=newdata();b=newd

10、ata();a.intdata=1;System.out.println("b.indata="+b.intdata);}}运行结果:b.intdata=0结果分析:可以看出,a.intdata的值虽然变了,但并没有影响b.intdata.但是如果在data类中声明intdata时,在其前面加上static就变成类变量了(即:publicstaticintintdata=0;),则此时运行结果会变为:b.intdata=1这次a.intdata值的改变可把b.intdata影响了,事实上,对象a和b的类变量均指向相同的数据,所有值一样,这就是类变量的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。