亿阳信通笔试题
億陽通信筆試題
1、list 、set、map 有什么區別?
2、抽象類和接口的區別?
3、連接ORACLE數據庫
4、什么是序列化?
5、多線程終止?
6、讀出文件,顯示行號?
7、Runtime Exception和Exception區別?
億陽通信筆試題
list 、set、map 有什么區別?
? ? List有序key和value都能重復
Set 無序(除treeSet) key和value都不能重復
Map無序(除treeMap) key 必須唯一 value 可以重復
抽象類和接口的區別?
抽象類里面可以有非抽象方法
但接口里只能有抽象方法?
聲明方法的存在而不去實現它的類被叫做抽像類(abstract class),它用于要創建一個體現某些基本行為的類,并為該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例。然而可以創建一個變量,其類型是一個抽像類,并讓它指向具體子類的一個實例。不能有抽像構造函數或抽像靜態方法。Abstract 類的子類為它們父類中的所有抽像方法提供實現,否則它們也是抽像類為。取而代之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法。
接口(interface)是抽像類的變體。在接口中,所有方法都是抽像的。多繼承性可通過實現這樣的接口而獲得。接口中的所有方法都是抽像的,沒有一個有程序體。接口只可以定義static final成員變量。接口的實現與子類相似,除了該實現類不能從接口定義中繼承行為。當類實現特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現了該接口的類的任何對像上調用接口的方法。由于有抽像類,它允許使用接口名作為引用變量的類型。通常的動態聯編將生效。引用可以轉換到接口類型或從接口類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了接口。
連接ORACLE數據庫
public class DBConnection {
? ??
? ? /** Oracle數據庫連接URL*/
? ? private final static String DB_URL = "jdbc:oracle:thin:@192.168.2.66:1521:orcl66";
? ??
? ? /** Oracle數據庫連接驅動*/
? ? private final static String DB_DRIVER = "oracle.jdbc.driver.OracleDriver";
? ??
? ? /** 數據庫用戶名*/
? ? private final static String DB_USERNAME = "cpp";
? ??
? ? /** 數據庫密碼*/
? ? private final static String DB_PASSWORD = "cpp";
? ??
? ? /**
? ? ?* 獲取數據庫連接
? ? ?* @return
? ? ?*/
? ? public Connection getConnection(){
? ? ? ? /** 聲明Connection連接對象*/
? ? ? ? Connection conn = null;
? ? ? ? try{
? ? ? ? ? ? /** 使用Class.forName()方法自動創建這個驅動程序的實例且自動調用DriverManager來注冊它*/
? ? ? ? ? ? Class.forName(DB_DRIVER);
? ? ? ? ? ? /** 通過DriverManager的getConnection()方法獲取數據庫連接*/
? ? ? ? ? ? conn = DriverManager.getConnection(DB_URL,DB_USERNAME,DB_PASSWORD);
? ? ? ? }catch(Exception ex){
? ? ? ? ? ? ex.printStackTrace();
? ? ? ? }
? ? ? ? return conn;
? ? }
? ??
? ? /**
? ? ?* 關閉數據庫連接
? ? ?*?
? ? ?* @param connect
? ? ?*/
? ? public void closeConnection(Connection conn){
? ? ? ? try{
? ? ? ? ? ? if(conn!=null){
? ? ? ? ? ? ? ? /** 判斷當前連接連接對象如果沒有被關閉就調用關閉方法*/
? ? ? ? ? ? ? ? if(!conn.isClosed()){
? ? ? ? ? ? ? ? ? ? conn.close();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }catch(Exception ex){
? ? ? ? ? ? ex.printStackTrace();
? ? ? ? }
? ? }
? ??
}
什么是序列化?
(1)、序列化是干什么的?
? ? ? ?簡單說就是為了保存在內存中的各種對象的狀態(也就是實例變量,不是方法),并且可以把保存的對象狀態再讀出來。雖然你可以用你自己的各種各樣的方法來保存object states,但是Java給你提供一種應該比你自己好的保存對象狀態的機制,那就是序列化。
(2)、什么情況下需要序列化 ??
? ? a)當你想把的內存中的對象狀態保存到一個文件中或者數據庫中時候;
? ? b)當你想用套接字在網絡上傳送對象的時候;
? ? c)當你想通過RMI傳輸對象的時候;
多線程終止?
interrupt只是試圖中斷線程,而非強行終止,如果線程不愿意被中斷,它仍然可以繼續執行。
stop方法,已經被遺棄,缺點多多,API已經不建議使用,倒是可以強制終止線程。
讀出文件,顯示行號?
public class Test {
?public static void main(String[] args) {
? readFileByLines("d://test.txt");
? ? }
?/**
? ? ?* 以行為單位讀取文件,常用于讀面向行的格式化文件
? ? ?*/
? ? public static void readFileByLines(String fileName) {
? ? ? ? File file = new File(fileName);
? ? ? ? BufferedReader reader = null;
? ? ? ? try {
? ? ? ? ? ? System.out.println("以行為單位讀取文件內容,一次讀一整行:");
? ? ? ? ? ? reader = new BufferedReader(new FileReader(file));
? ? ? ? ? ? String tempString = null;
? ? ? ? ? ? int line = 1;
? ? ? ? ? ? // 一次讀入一行,直到讀入null為文件結束
? ? ? ? ? ? while ((tempString = reader.readLine()) != null) {
? ? ? ? ? ? ? ? // 顯示行號
? ? ? ? ? ? ? ? System.out.println("line " + line + ": " + tempString);
? ? ? ? ? ? ? ? line++;
? ? ? ? ? ? }
? ? ? ? ? ? reader.close();
? ? ? ? } catch (IOException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? } finally {
? ? ? ? ? ? if (reader != null) {
? ? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? reader.close();
? ? ? ? ? ? ? ? } catch (IOException e1) {
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? }
}
Runtime Exception和Exception區別?
Exception是所有異常的父類?
runtimeException是他的一個子類
runtimeException可以不必拋出和捕獲
總結
- 上一篇: Hulu日常实习面经 (SDE/RSDE
- 下一篇: binding