為了賬號安全,請及時綁定郵箱和手機立即綁定

java基礎知識點掃盲(面試必備)

2016.06.22 14:34 13328瀏覽

一、關于Java語言的一些基礎知識點
Java的重要特性:網絡技能,多線程,安全性,動態性,結構中立。其中結構中立可解釋為,Java編譯器生成一個體系結構中立的目標文件格式,這是一種編譯過的代碼,只要機器中有Java運行環境便可運行。
Java編譯器能夠檢測許多在其他語言中僅在運行時刻才能夠檢測出來的問題。
Java解釋器可以在任何安裝了解釋器的機器上執行Java字節碼。
JDK,編寫java程序的軟件;JRE,運行Java程序的軟件,包含虛擬機而不包含編譯器;在沒有IDE的情況下,用命令行執行Java代碼,Javac程序是一個Java編譯器,編譯后得到一個class文件,再用java程序來執行Java字節碼。
JavaSE,用于桌面或簡單的服務器應用的Java平臺;
JavaEE,用于復雜的服務器應用的Java平臺;
JavaME,用于手機和其他小型設備的Java平臺。
二、靜態變量,靜態常量和靜態方法 static
1.如果將變量定義為static,每個類中只有一個這樣的變量,該類的所有的實例對象將共享這個靜態變量。
2.靜態常量用static final 來修飾,初始化一次且不再修改
3.靜態方法是一種不能向對象實施操作的方法。在兩種情況下使用靜態方法:一是,一個方法不需要訪問對象狀態,其所需參數都是通過顯式參數提供;二是,一個方法只需要訪問類的靜態域。
三、finalize方法
在C++中有顯式的析構器,其功能為當一些對象不再使用時清理其使用的資源。由于Java有自動的垃圾回收器,不需要人工回收內存,故Java不支持析構器,但當某些對象使用了除內存以外的其他資源,并且這些資源不再需要時將其回收再利用就顯得十分重要。任何一個類都可以使用finalize方法,該方法將在垃圾回收器清除對象之前調用。
四、反射
在運行時使用反射獲取或分析對象。
作用:增加程序的靈活性,避免將程序寫死在代碼里,常用與spring等框架中,后續加上springMVC的反射機制。
五、內部類
內部類可以訪問外部類的屬性和方法;
局部內部類,在一個方法中定義一個內部類,局部類不能用public或private訪問說明符進行聲明,它的作用域僅限于該方法塊中。
匿名內部類,如果只創建這個類的一個對象,則直接使用匿名內部類。
六、異常
異常在筆試中經常出現,基礎知識應當牢牢掌握。
1.異常基本概念
Java中,異常對象都是派生于Throwable類的實例,分為error和exception,其中error不常用,面試中也不常涉及,這里主要講exception。
exception分為兩種:RuntimeException和其他異常。
常見的RuntimeException異常:
錯誤的類型轉換;
數組訪問越界;
訪問空指針。
其他典型異常:
試圖在文件尾部的后面讀取數據;
試圖打開一個不存在的文件;
試圖通過給定的字符串查找Class對象,但該字符串表示的類不存在。
如果出現RuntimeException異常,那么一定是自己的程序出現了問題;而程序本身沒有問題,但由于像I/O錯誤這類導致的異常屬于其他異常。
未檢查異常:error類或RuntimeException類異常。
已檢查異常:所有其他異常。
2.自定義異常
繼承Exception類或Exception的子類
3.try/catch/finally
編程中建議獨立使用try/catch和try/finally語句塊。

public static String testfunction()
    {
        File file = new File("E:\\test\\java\\pm2_5\\2.json");

        FileInputStream filein = null;
        BufferedReader reader = null;
        try 
        {
            try 
            {
                filein = new FileInputStream(file);
                reader = new BufferedReader(new InputStreamReader(filein));
                StringBuffer strBuf = new StringBuffer();
                String str = "";
                while((str = reader.readLine()) != null)
                {
                    strBuf.append(str);
                }
                return strBuf.toString();
            } 
            finally 
            {
                if(filein != null)
                {
                    filein.close();
                }
                if(reader != null)
                {
                    reader.close();
                }
            }
        } catch (FileNotFoundException e) {
            //打印異常日志
            e.printStackTrace();
            return "";
        } catch (IOException e) {
            //打印異常日志
            e.printStackTrace();
            return "";
        }
    }

這種設計方式不僅清楚而且在finally語句塊中的異常也會在外層報告。內層的try語句塊只有一個職責,就是確保關閉輸入流,而外層的try語句塊也只有一個職責,就是確保報告出現的錯誤。
通過上面的代碼可以看出,如果try塊拋出異常,而且close方法也會拋出異常,那么就會使得代碼顯得臃腫,一個很好的解決方法是使用帶資源的try語句。
Java 7 的編譯器和運行環境支持新的 try-with-resources 語句

public static String testfunction2()
    {
        File file = new File("E:\\test\\java\\pm2_5\\2.json");

        try(FileInputStream filein = new FileInputStream(file);
                BufferedReader reader = new BufferedReader(new InputStreamReader(filein)))
        {
            StringBuffer strBuf = new StringBuffer();
            String str = "";
            while((str = reader.readLine()) != null)
            {
                strBuf.append(str);
            }
            return strBuf.toString();
        }
        catch (Exception e) {
            //打印異常日志
            e.printStackTrace();
            return "";
        }
    }

數據流會在 try 執行完畢后自動被關閉,前提是,這些可關閉的資源必須實現 java.lang.AutoCloseable 接口。
異常的規則:“早拋出,晚捕獲”。

點擊查看更多內容
118人點贊

若覺得本文不錯,就分享一下吧!

評論

相關文章推薦

正在加載中
意見反饋 幫助中心 APP下載
官方微信

舉報

0/150
提交
取消
lpl竞猜