纠正平时代码中一些简单的误区(附代码)(不断收集)

     1.  第一个错误:
  今天看一个关于优化代码的帖子,发现有一段有问题,请看贴图:

实际上并非如此,直接看代码:

编译之前的代码:

class Test 
{
    
public static void main(String[] args) 
    {
        
new Test().test2();
        System.out.println(
"Hello World!");
    }

    
public void test2()
 {
      String tmp
="Hello!"+"some one.";
 }
}

反编译之后的代码:

import java.io.PrintStream;

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. 第二个错误:

     这个是我前阵子面试时碰到的一个题目,

class A
{
    
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'"。

       我当时惊呆了,回家又特意试了一下,结果让我常常的舒了一口气。

       其他的暂时还没想到,以后这个帖子慢慢补充。

原文地址:https://www.cnblogs.com/KiloNet/p/1935904.html