SCJP认证考试复习笔记系列之二

      下周去考SCJP,这两天再复习一下。

  1. 调用线程实例的start()方法他的run()方法会运行,你直接调用run()它也会运行。
  2. Java中方法参数是按值传递的,最简单的情况就是传递基本数据类型。他不能更改传递给他的参数的,例如下面的程序会输出0
    public class MyClass
    {
     public static void main(String argv[])
     {
                    MyClass mc = new MyClass();
                    int i = 0;
                    mc.increment(i);
                    System.out.println(i);
            }
          void increment(int i)
     {
                    i++;
            }
    }
  3. throws用在方法的声明中表示方法可能出现异常,throw表示抛出一个异常。不要混淆
  4. finally中抛出异常可以导致try中的异常被忽略。看下面的例子
    public class Test2
    {
     public static void main(String[] args) throws Exception
     {
      try
      {
       f(); 
      }
     
      finally
      {
      
       m();
       
      }
      
     }
     
     public static void f() throws MyException
     {
      throw new MyException(); 
     }  
     
     public static void m() throws MyException2
     {
      throw new MyException2(); 
     } 
    }
    class MyException extends Exception
    {}
    class MyException2 extends Exception
    {}
  5.    assert Exp1:Exp2这种形势中 Exp2如果是方法的话必须有返回值,可以是基本数据类型也可以是任何Object但是不可以void。
  6. 如果你提供了一个类的构造器那么编译器就不会提供无参数的构造器给你了,往往在扩展类的时候会出现问题,下面的例子就不能通过编译
    class Base
    {
            Base(int i)
     {
      System.out.println("Base");
     }
    }
    class Derived extends Base
    {
     public static void main(String argv[])
     {
      Derived d = new Derived();
     }
     
     void Derived()
     {
      System.out.println("Derived");
     }
    }
  7. 构造器是不能被覆盖的
  8. native的方法是不能有body的,因为他们通常用c/c++来实现
  9. public class MyClass
    {
     private static int x = getValue();
     private static int y = 5;
     
     private static int getValue()
     { 
      return y;
     }
     
     public static void main(String args[])
     {
      System.out.println(x); 
       System.out.println(y);
     } 
    }
    这段程序的输出会是0,5。因为首先x,y都会设置为默认值0,当给他们赋值的时候y还是0,所以返回的y付给了x,所以x=0,然后给y赋值=5
  10. 引用声明为final的表示他不能再指向其他的对象,但是不说明引用的内容不能被修改
  11. 数组声明的时候,如果是基本数据类型的初始化为0或者false,如果是对象的初始化为null
  12. String = String+char是合理的 char = char+String是不合理的
  13. StringBuffer sb = new StringBuffer("haha"); String s1 = "haha";System.out.println(s1.equals(sb));输出会是false的。不要被迷惑,不同类型的比较输出是false String和StringBuffer在层次上没有关系
  14. static的方法中不能使用this
  15. &可以用在两个int之间表示bit与操作  &&不能用在两个int之间 要在布尔型之间使用

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值