`

菜鸟Java大面经------------做我自己的大面经

阅读更多

面试官:M   我: I 
在面试官进行面对面面试的,紧张有一些,最烦的是自己知道怎么做,一问大脑短路了下,
然后开始吐词不清,说到后面忘记前面还有东西没说完整,又想去补充下,补充完了在说后面,
顿时感觉自己表述的凌乱不堪。。。经验还是总结了一些些,在这里慢慢累积吧;
   1.面试官问你时,你慢慢将问题的核心转移到你自己擅长的部分,因为,他问你一个问题,然后
        你可以自由发挥,而将你要说的重点放在后面,慢慢说,有几成机会他会顺着你问下去
     (除非他自己事先准备好了几个问题,非要按流程来),所以说他问你问题时,
       千万不要自己把自己带向死路,尽量的把问题引向自己擅长的领域;
   2.稳定性,就业老师多次给我们强调这个问题,在面试时,你要展现出你在这里工作的强烈愿望即可;
JAVA:
①:对面向对象的理解
M:你觉得对象是什么?面向对象又是什么?
I:对象,事实是一类事物的实例,通俗点说,就是某个个体;
  面向对象是说,我们在编程时可以直接操纵某个具体的对象而不需要像
  C语言一样为每个个体再去编写特定的属性或函数;
M:那类呢?类有什么特点(或者说什么是类)?
I:类其实就是对某一类事物的抽象,它将这类事物的属性,行为抽取出来组成一个类;
  在Java里类有三个主要的特点:封装、继承、多态;
  封装指的是类里面的访问修饰符,private可以将字段封装起来,防止其他类的访问;
  继承是指:类和类之间可以单继承;
  多态:类的多态主要体现在以下三方面:重载、覆盖,父类引用指向子类的实例
M:构造方法可以被重载和覆盖吗?
I:构造方法可以被重载,但是不能被覆盖;因为重载可以发生在一个类里面,覆盖发生
  在有继承关系的类之间,如果在子类中覆盖父类的构造方法,
  而这个方法在子类中并不符合类里面的方法声明的规范;
②:各种区别理解
M:什么是抽象类,什么是接口,抽象类和接口有什么区别?
I: 抽象类由abstract修饰,接口由interface声明;
   抽象类的方法可以是抽象的,也可以是非抽象的,接口里面的方法必须是抽象的;
   抽象类有构造方法,但不能直接创建实例,接口无构造方法也不能直接创建实例;
   抽象类如果省略修饰符,默认为default,接口省略修饰符,默认为public abstract;
   抽象类可以有字段,接口里的字段默认为静态常量;
   抽象类只能被其子类单继承,而接口可以多实现;
M:final、finalize、finaly有什么区别?
I: fianl用在类里面,可以修饰字段、方法、类
      修饰字段时,表示该字段为常量
      修饰方法时,表示该方法不能被覆盖
      修饰类时,表示该类为最终类,不能被继承
   finally用在异常里,通常和try搭配使用,在fianlly放置的语句,是必须被执行的语句,
   通常放置一些关闭流的操作
   finalize在Object类里,被所有类所继承,当对象使用完毕后,系统会自动调用该方法来
   处理使用完毕的对象,如果想手动调用,可以使用System.gc();语句来调用;
M:Collection和Collections又有什么区别?
I:Collecttion是集合接口,Collections是类,包含若干用来处理集合元素的方法;
M:String,StringBuilder,StringBuffer的区别?

I:String,不可变字符串,通常用来存储一些不需要被修改的字符串
    StringBuffer,可变字符串,通常用来存储一些需要修改的字符串,线程安全,同步,效率比StringBuileder低一些
    StringBuilder, 可变字符串,通常用来存储一些需要修改的字符串,线程不安全,异步,效率比StringBuffer高一些
③:数据库
M:索引有哪些优点,又有哪些缺点?
  优点:索引在面对大量数据时,可以极大的提高查询效率
  缺点:虽然如此,但是在面对经常需要修改(添加,修改,删除)的表时,就会增加系统的额外开销,降低效率
  补充:在Oracle数据库中,索引的数据最好和表的数据放置在不同的表空间,否则会引起I/O竞争
④:JDBC
M:工具类中你用到了哪些类或接口?
I: DriverManager:conn=DriverManager.getConnection(url,user,password);
   Connection:pstmt=conn.prepareStatement(sql);
   PreparedStatement rs=pstmt.executeQuery();
  ResultSet:rs
⑤:Servlet
M:通过"查询"按钮实现一个页面跳转,显示出查询结果,请你详细地描述下这个过程?
I: 点击提交,通过button提交给后台对应的servlet,然后在servlet的中通过service对象调用Dao层中的查询方法,
   查询方法通过JDBC连接数据库,将查询出来的结果放到一个集合中,在servlet中存到一次回话Session中,然后
  转发到显示结果的页面上,在该页面上通过Session对象读取结果集,然后将其显示出来;
⑥:Web前端
M:html,servlet,java代码在前端执行的先后顺序?
I:Java>html>servlet

0
3
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics