java面试题

1.面向对象的特征有哪几方面?

答:面向对象的特征有:

1)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面

2)继承:继承是从已有类中继承信息创建新类的过程。父子类

3)多态性:多态性指不同的子类型对同一消息作出的不同相应

4)封装:封装是将数据和操作数据的方法捆绑起来,操作数据只能调用已定义好的接口

2.重载(overload)与重写(override)的区别

都是实现多态性的方式

重载:方法名相同,参数不同,编译时多态性

重写:方法名相同,参数相同,父子类中,覆盖父类方法,运行时多抬

3.int和Integer的区别

int是基本数据类型,Integer是int的包装类型

4.&和&&的区别

&位运算符,逻辑与,&&是短路与,都要求两侧布尔类型为true才能运行,但是&&前面为false,不再执行后面

5.数组有没有length()方法?String有没有length()方法?(笔试基础题)

数组有length属性没有length()方法,数组的长度,String有length()方法,表示字符串长度

6.构造器(constructor)可否背重写(override)?

不能,但是可以背重载

7.是否可以继承String类?

不能,String是final修饰类,值无法改变,不能背继承

8.String ,StringBuffer和StringBuild的区别?

Sting值不可变,StringBuffer和StringBuild可以改变

StringBuild非同步,效率快

StringBuffer同步,线程安全

9.char是否可以存储一个汉字

可以,char可以存储16个字节,汉子占8个字节

10.抽象类(abstract class)和接口(interface)的区别?

都不可以被实例化,但可以定义引用,继承接口或抽象类需要实现全部方法,不然必须声明为抽象类,

接口成员必须是public声明,,抽象类可以是public、protect、private、默认的,

抽象类的成员可以定义成员变量,接口的成员定义的成员变量都是常量

11.静态嵌套类(Static Nested class)和内部类(inner class)的区别?

Static Nested class 是被声明为静态的内部类,不需要外部实例化

内部类是需要在外部类实例化之后才能实例化

12.java 中final的作用

修饰类:不可被继承

修饰方法:不可被重写

修饰变量:变量为常量,不可以被修改

13.JDBC操作数据库

1.加载驱动

    Class.forName("oracle.jdbc.driver.OracleDriver");

创建连接

    Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger");

创建语句

    PreparedStatement ps = con.prepareStatement("select * from emp where sal between ? and ?");
    ps.setInt(1, 1000);
    ps.setInt(2, 3000);

执行语句

    ResultSet rs = ps.executeQuery();

处理结果

    while(rs.next()) {
        System.out.println(rs.getInt("empno") + " --- " + rs.getString("ename"));
    }

关闭资源

    finally {
        if(con != null) {
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

 14.hibernate与mybatis的区别?

Hibernate与mybatis相比较,mybatis更为轻便、灵活,容易掌握。mybatis可以把sql语句从Java代码中分离了出来,放在了配置文件中书写,大大降低里java代码与SQL语句的耦合度,更容易对sql语句操作,重要的是mybatis还可以书写动态的sql语句,但mybatis也存在一些缺陷,比如mybatis本身的缓存机制没有hibernate那么完善,hibernate除了本身有良好的缓存机制,还可以使用第三方缓存。Hibernate较完整的封装了JDBC,Hibernate的DAO层开发比MyBatis简单,对对象的维护和缓存要比MyBatis好。

15.springmvc与Struts的区别

springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,参数的传递是直接注入到方法中的,是该方法独有的。

struts2是类级别的拦截, 一个类对应一个request上下文, struts是在接受参数的时候,可以用属性来接受参数, 这就说明参数是让多个方法共享的,这也就无法用注解或其他方式标识其所属方法了

posted @ 2019-03-10 10:15  ZMJ笔记  阅读(117)  评论(0编辑  收藏  举报