《java解惑》笔记四

第十三题:畜牧场

public static void main(String[] args) {
		final String pig = "Length: 10";
		final String dog = "length: "+pig.length();
		System.out.println("Animals are equal:"+pig == dog);
}
//控制台打印:
//false

这题首先考查 == ,==是比较是否是同一对象,pig是一个常量,而dog是经过运行方法调用得到的字符串,两个虽然内容相同但,不是同一对象,所以是false。还有就是+优先级比==高,最终只会输出false;

第十四题:转义字符的溃败

public static void main(String[] args) {
		System.out.println("a\u0022.length()+\u0022b".length());
		System.out.println(\u0022 + \u0022);
}
//控制台输出:
//2
//+

因为\u0022是双引号的Unicode编码,java在处理字符常量时,会先将Unicode字符转成原本的字符。
“a\u0022.length()+\u0022b”.length() 就是 “a”.length()+“b”.length(),所以结果为2
\u0022 + \u0022 就是 “+”,所以结果为+

第十五题:令人晕头转向的Hello

	/**
	 * from F:\TestRoot\apps\al\units\include\PolicyHome.idl
	 */
	public static void main(String[] args) {
		System.out.print("Hell");
		System.out.println("o world");
	}

上面的代码是不能编译通过的,因为有个\u,表示这个一个Unicode字符,后面应该跟四个16进制数字,但是没有,所以报错。解决方法是多加一个\表示转义,\\unit就不会错。

第十六题:行打印程序

public static void main(String[] args) {
		char c = \u000A;
		System.out.println(c);
}

上面代码是不能编译通过的,\u000A是换行符LF即\n的Unicode编码,java将Unicode编码换成原本符号,实在去掉注释和空格之前就实行的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aabond

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值