1. 第一个错误:
今天看一个关于优化代码的帖子,发现有一段有问题,请看贴图:
实际上并非如此,直接看代码:
编译之前的代码:
{
public static void main(String[] args)
{
new Test().test2();
System.out.println("Hello World!");
}
public void test2()
{
String tmp="Hello!"+"some one.";
}
}
反编译之后的代码:
class Test
{
public static void main(String[] paramArrayOfString)
{
new Test().test2();
System.out.println("Hello World!");
}
public void test2()
{
String str = "Hello!some one.";
}
}
很多东西编译的时候就帮你处理了,就好象C#中的get/set一样的语法糖。
2. 第二个错误:
这个是我前阵子面试时碰到的一个题目,
{
public void test() {
System.out.println("A");
}
}
class B extends A
{
public void test() {
System.out.println("B");
}
public static void main(String[] args)
{
A a = new B();
a.test();
}
}
我当时写的输出结果为“B”, 当时面试官看我的答卷时,特意问我override和overload的区别,我还正纳闷中,然后他指着这个题目说,“你这里做错了,结果应该是'A'"。
我当时惊呆了,回家又特意试了一下,结果让我常常的舒了一口气。
其他的暂时还没想到,以后这个帖子慢慢补充。
网名:@"老舟"
兴趣:@"影音,阅读"
动态:@"系统架构设计,Android通信模块开发"
网址:@"http://kilonet.cnblogs.com"
签名:@"--------------------------------------------------
Stay Hungry , Stay Foolish
求 知 若 渴,处 事 若 愚
--------------------------------------------------"
]; // Never Release