Java基礎總結(二)

1、開始的嘮叨正則表達式

上篇裏相對重要的是面向抽象與面向接口的編程,兩者都體現了開閉原則。編程

本期繼續回顧Java中的基礎知識。數組

2、學習筆記app

(一)內部類與異常類工具

1.內部類:學習

  • 內部類的外嵌類的成員變量在內部中仍然有效,內部類中的方法也能夠調用外嵌類中的方法
  • 內部類的類體中不能夠聲明類變量和類方法。外嵌類的類體中能夠用內部類聲明對象做爲外嵌類的成員。
  • 內部類僅供它的外嵌類使用,其餘類不能夠用某個類的內部類聲明對象。

值得一提的是內部類編譯後的格式,代碼以下:spa

public class A {
class B{
    
}
}

則編譯後的字節碼文件名字格式爲:調試

2.匿名類:code

  • 匿名類能夠繼承或者重寫父類的方法
  • 匿名類必定是內部類
  • 匿名類能夠訪問外嵌類中的成員變量和方法,不能夠聲明static
  • 建立匿名類時直接使用父類的構造方法

3.異常類:通常的IDE工具都會提示「此處應有異常」,系統自帶的異常就很少說了。惟一值得注意的是try部分一旦發生異常,就會馬上結束執行,轉而執行catch部分。orm

來看看如何自定義異常:

定義一個異常類繼承Exception類

public class TotalException extends Exception{
    public String warnMess(){
        return "有毒";
    }
}

在可能產生異常的方法名中throws自定義的異常類,並在具體的方法體重throw一個自定義異常的實例

public class Count { public void count (int a) throws TotalException{ if(a==10){ throw new TotalException();
    }
}

在使用該方法時包裹try-catch語句

    public static void main(String[] args)  {
        Count c=new Count();
        try {    
            c.count(10);
        } catch (TotalException e) {
            System.out.println(e.warnMess());
        }
    }

4.斷言:assert用於代碼調試階段,當程序不許備經過捕獲異常來處理錯誤時就可使用斷言。

定義一個斷言(表達式爲true時繼續執行,false則從斷言處終端執行)

int a=10;
assert a!=10:"a不但是10";

Java解釋器默認關閉斷言語句,要用-ea命令手動開啓

(二)經常使用實用類

 1.String:

重要方法:

String (char a[])//由字符數組構造
public int length()//獲取長度
public boolean equals(String s)//是否有相同實體
public boolean startsWith(String s)//是否以s開頭
public boolean endsWith(String s)//是否以s結尾
public int compareTo(String s)//比較
public boolean contains(String s)//是否包含s
public int indexOf(String s)//s首次出現的索引
public String substring(int startpoint)//截取
public String trim()//刪除空格

來看一個經典的equals與==的問題:

public static void main(String[] args) {
    String a=new String("1111");
    String b=new String("1111");
    System.out.println(a.equals(b));
    System.out.println(a==b);
    a="1111";
    b="1111";
    System.out.println(a.equals(b));
    System.out.println(a==b);
    }

 

輸出結果爲:true false true true,可見equals方法比較當前字符串對象的實體是否與參數指定的實體相同,而==比較的則是引用是否相同。

2.正則表達式:正則表達式很強大,是一個必須掌握的大坑。元字符表直接百度百科。下面給出一個在Java中使用正則表達式的例子:

    public static void main(String[] args) {
        String regex="[a-zA-Z]+";
        String in="dhasdd4alidhskjl";
        if(in.matches(regex)){
            System.out.println("全是英文字母");
        }else{
            System.out.println("不全是英文字母");
        }        
    }

 

 3.Date:Date能夠獲取當前時間,通常狀況下須要格式化

public static void main(String[] args) {
        DateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date=new Date();
        System.out.println(df.format(date));
    }

4.Math:封裝了一系列 數學方法

5.Class:傳說中的Java反射技術

先用Class.forName(Sting s)法獲取Apple類的class

再利用class對象調用newInstance()方法實例化Apple類的對象

  public static void main(String[] args) {
        try {    
            Class clazz=Class.forName("Apple");
            Apple apple=(Apple)clazz.newInstance();
            apple.setNumber(1);
            System.out.println(apple.getNumber());
            Apple apple2=new Apple();
            Class class1=apple2.getClass();
            System.out.println(class1.getName());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

 

3、結束的嘮叨

之前看大神的博客還沒什麼感受,如今本身開始寫了才發現困難重重。

目前爲止,我寫博客的主要目的是便於本身的知識鞏固,寫的很散,屬於把一本書上的內容根據本身的短板超濃度壓縮。

因此有什麼地方看不懂絕對不是你的問題,歡迎討論。

相關文章
相關標籤/搜索