Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14481062
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:41:27

下载本文示例代码
  1.String类和StringBuffer类   它们都是处理字符串的类,但是它们有一个最大的区别,那就是。  eg1: ...... //omit some code String s1="You are hired!"; System.out.println(s1.replace(′h′,′f′));//用f把字串中的h替换了 System.out.println(s1); ...... //omit some code   运行结果:    You are fired!    You are hired!   结果分析:   从结果,明显可知,s1的值并没有被改变,而第一行结果只是屏幕内容的替换.   eg2: ...... //omit some code StringBuffer s2=new StringBuffer("Hello from Java!"); s2.replace(6,10,"to"); System.out.println(s2); ...... //omit some code   运行结果:   Hello to Java!   结果分析:   显然,s2的值已改变.    2.位逻辑与条件逻辑   首先声明, 为了与位逻辑更好区分开来,我把通常所说的逻辑取了个别名叫做条件逻辑.   它们都有各自的操作符,位逻辑操作符有:&(与运算),^(异或运算),|(或运算);条件逻辑操作符有:&&(并 且),||(或者)。   位逻辑运算通常是针对两个数而言,实行位操作;而条件逻辑运算是针对两个条件表达式而言,实行条件操作.其实,位逻辑操作符一样可以实现条件操作,但是此时有一个重要的区别:用位操作符时,不管操作符两边的条件表达式成不成立,它都要通通进行运算判断,而条件逻辑操作符不一样了,如果通过左侧的操作数就可以进行它们需要的判断,那么它就不会再计算右侧的操作数了,这种情况叫短路.废话少说!且看下例.   eg1: ...... //omit some code double value=0; if(value!=0 && 1/value<1000){ System.out.println("The value is not too small."); } else{ System.out.println("The value is too small."); } ...... //omit some code   运行结果:   The value is too small.   结果分析:   照理说应会出现除数为0的错误,但是我刚才说了,由于条件逻辑操作符是短路操作符,显然,value!=0不成立,立即就可作出判断应执行else后的语句,所以它就不再会运算判断1/value<1000了.如果不懂请再看一 例:    eg2: ...... //omit some code double int1=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); ...... //omit some code   运行结果:    int2=2.0    int3=1.0   结果分析:   我想不用我分析了,你应该懂了吧.   3.实例变量与类变量   可以通过两种方法在类中存储数据───作为实例变量和类变量.实例变量是特定于对象的,如果你有两个对象(即一个类的两个实例),每一个对象中的实例变量独立于另一个对象中的实例变量的;另一方面,两个对象的类变量均指向相同的数据,并因此面保存相同的值,换句话说,类变量被类中的所有对象共享.差点忘了,它们在形式上的区别,类变量在声明时比实例变量多一个static.   eg: class data { public int intdata=0;//显然,intdata在这儿是实例变量 } public class exam { public static void main(String[] args) { data a,b; a=new data(); b=new data(); a.intdata=1; System.out.println("b.indata=" b.intdata); } }   运行结果:   b.intdata=0   结果分析:   可以看出,a.intdata的值虽然变了,但并没有影响b.intdata.但是如果在data类中声明intdata时,在其前面加上static就变成类变量了(即:public static int intdata=0;),则此时运行结果会变为:   b.intdata=1   这次a.intdata值的改变可把b.intdata影响了,事实上,对象a和b的类变量均指向相同的数据,所有值一样,这就是类变量的作用。 zmbbs=1;共2页。 1 2 :   1.String类和StringBuffer类   它们都是处理字符串的类,但是它们有一个最大的区别,那就是。  eg1: ...... //omit some code String s1="You are hired!"; System.out.println(s1.replace(′h′,′f′));//用f把字串中的h替换了 System.out.println(s1); ...... //omit some code   运行结果:    You are fired!    You are hired!   结果分析:   从结果,明显可知,s1的值并没有被改变,而第一行结果只是屏幕内容的替换.   eg2: ...... //omit some code StringBuffer s2=new StringBuffer("Hello from Java!"); s2.replace(6,10,"to"); System.out.println(s2); ...... //omit some code   运行结果:   Hello to Java!   结果分析:   显然,s2的值已改变.    2.位逻辑与条件逻辑   首先声明, 为了与位逻辑更好区分开来,我把通常所说的逻辑取了个别名叫做条件逻辑.   它们都有各自的操作符,位逻辑操作符有:&(与运算),^(异或运算),|(或运算);条件逻辑操作符有:&&(并 且),||(或者)。   位逻辑运算通常是针对两个数而言,实行位操作;而条件逻辑运算是针对两个条件表达式而言,实行条件操作.其实,位逻辑操作符一样可以实现条件操作,但是此时有一个重要的区别:用位操作符时,不管操作符两边的条件表达式成不成立,它都要通通进行运算判断,而条件逻辑操作符不一样了,如果通过左侧的操作数就可以进行它们需要的判断,那么它就不会再计算右侧的操作数了,这种情况叫短路.废话少说!且看下例.   eg1: ...... //omit some code double value=0; if(value!=0 && 1/value<1000){ System.out.println("The value is not too small."); } else{ System.out.println("The value is too small."); } ...... //omit some code   运行结果:   The value is too small.   结果分析:   照理说应会出现除数为0的错误,但是我刚才说了,由于条件逻辑操作符是短路操作符,显然,value!=0不成立,立即就可作出判断应执行else后的语句,所以它就不再会运算判断1/value<1000了.如果不懂请再看一 例:    eg2: ...... //omit some code double int1=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); ...... //omit some code   运行结果:    int2=2.0    int3=1.0   结果分析:   我想不用我分析了,你应该懂了吧.   3.实例变量与类变量   可以通过两种方法在类中存储数据───作为实例变量和类变量.实例变量是特定于对象的,如果你有两个对象(即一个类的两个实例),每一个对象中的实例变量独立于另一个对象中的实例变量的;另一方面,两个对象的类变量均指向相同的数据,并因此面保存相同的值,换句话说,类变量被类中的所有对象共享.差点忘了,它们在形式上的区别,类变量在声明时比实例变量多一个static.   eg: class data { public int intdata=0;//显然,intdata在这儿是实例变量 } public class exam { public static void main(String[] args) { data a,b; a=new data(); b=new data(); a.intdata=1; System.out.println("b.indata=" b.intdata); } }   运行结果:   b.intdata=0   结果分析:   可以看出,a.intdata的值虽然变了,但并没有影响b.intdata.但是如果在data类中声明intdata时,在其前面加上static就变成类变量了(即:public static int intdata=0;),则此时运行结果会变为:   b.intdata=1   这次a.intdata值的改变可把b.intdata影响了,事实上,对象a和b的类变量均指向相同的数据,所有值一样,这就是类变量的作用。 zmbbs=1;共2页。 1 2 : 下载本文示例代码


Java初学者容易混淆的几个问题Java初学者容易混淆的几个问题Java初学者容易混淆的几个问题Java初学者容易混淆的几个问题Java初学者容易混淆的几个问题Java初学者容易混淆的几个问题Java初学者容易混淆的几个问题Java初学者容易混淆的几个问题Java初学者容易混淆的几个问题Java初学者容易混淆的几个问题Java初学者容易混淆的几个问题Java初学者容易混淆的几个问题Java初学者容易混淆的几个问题Java初学者容易混淆的几个问题Java初学者容易混淆的几个问题
阅读(132) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~