自编java细节(1)

也是暑期時候寫的,

之前發布於 http://youngershen.com/blog


自编java细节(1)

on August 13th, 2011  by youngershen |  No Comments »

java 是很强大的一门语言,这个自然不必说,就其规模来说实在是太大了,这时候架构的意义才会凸显出来,现在我要写的是以我的观点出发的关于java的细节的东西,gaga!

<1>. 关于^ , & ,| 与 && , || ,! 的区别。

也许很多人只是以为前者只是简单的位运算符,其实不是这样的,看我下面的这段code .

public class test{

public static void  main( String []  args ){ boolean  f  =  false;
boolean  t  =  true;
f ^= t;
System . out . println( f);
}
}
是不是看到了 ^运算符的奇怪用法,是的这个是可以当作逻辑运算符来使用的,只不过它只能用来进行对boolean类型的数据进行求解,而且还有一点就是它是非短路的,所以一般它被称作是逻辑布尔运算符,而且可以和=组合起来使用,是很方便的,关于^在上面情形的使用,输出自然不必解释了,当然是 “true” ,其他的两个运算符也是类似的功能,能用到哪里就看你自己的选择和意图了。
<2>.  奇怪的输出问题

public class test{

public static void main(String[] args){

char x = ‘x’;
System.out.println(x+‘\n’);
}

}

是的你完全有理由相信上面的代码会输出一个x然后紧接着是一个回车换行,是的,一开始我也是这么想的,但是实际上它不是,JVM不是这样做的,确实不是这样做的,实际的输出是一个数字,x的值不同,数字会不同,这到底是为什么呢?其实道理也很简单,字符在计算机中本来就是用数字进行表示的,在进行运算的时候自然是要转化成数字,而且’\n’ 也是一个unicode字符,在java中,其用十六进制表示为 0x000A,然而不幸的是在java中是没有重载运算符这种东西的,最后得到的自然是2个整数相加的结果,如果想看字符输出,可以转换一下,但是和理想输出是不一样的,但是如果是这样呢,就没有问题了

public class  test { public static void  main( String []  args ){

char x = ‘x’;
System.out.println(x+“”+‘\n’);
}

}

java本身已经很聪明了,所以看起来奇怪的东西,也可以运行的和期望一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值