亿阳信通笔试题


亿阳通信笔试题
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可以不必抛出和捕获

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值