面试总结一

来源:互联网 发布:广东继续教育网络平台 编辑:程序博客网 时间:2024/04/29 18:55

一个大神的总结一:

看图说问题,然后解决问题。

1、java的垃圾回收机制:

      垃圾回收GC  是一个很重要的概念,主要作用是----回收程序中不在使用的内存, 为了减轻开发人员的工作,同事增加系统的安全性与稳定性,JAVA语言提供了垃圾回收器来自动检测对象的作用域,可自动地把不在被使用的存储空间释放掉。

    具体而言,GC要负责完成 3 项任务:分配任务、确保被引用对象的内存不被错误地回收以及回收不在被引用的对象的内存空间。

2、Object的equals和hashcode方法

     hashCode()和equals()定义在Object类中,这个类是所有Java类的基类,所以所有的java类都继承这两个方法。

equals():反映的是对象或变量具体的值,即两个对象里面包含的值--可能是对象的引用,也可能是值类型的值。

hashCode():计算出对象实例的哈希码,并返回哈希码,又称为散列函数。根类Object的hashCode()方法的计算依赖于对象实例的D(内存地址),故每个Object对象的hashCode都是唯一的;当然,当对象所对应的类重写了hashCode()方法时,结果就截然不同了。

  之所以有hashCode方法,是因为在批量的对象比较中,hashCode要比equals来得快,很多集合都用到了hashCode,比如HashTable。
 
  两个obj,如果equals()相等,hashCode()一定相等。
  两个
obj,如果hashCode()相等,equals()不一定相等Hash散列值有冲突的情况,虽然概率很低)。
所以:
  可以考虑在集合中,判断两个对象是否相等的规则是:
    第一步,如果hashCode()相等,则查看第二步,否则不相等;
    第二步,查看equals()是否相等,如果相等,则两obj相等,否则还是不相等。


3、说说java的异常机制

    http://blog.csdn.net/liyintaoliuyun/article/details/54016638

    http://blog.csdn.net/lovesomnus/article/details/52815332

4、ArrayList、LinkedList与Vector的对比   
      从图中可以看出,这三者都实现了List 接口.所有使用方式也很相似,主要区别在于因为实现方式的不同,所以对不同的操作具有不同的效率。
ArrayList 是一个可改变大小的数组.当更多的元素加入到ArrayList中时,其大小将会动态地增长.内部的元素可以直接通过get与set方法进行访问,因为ArrayList本质上就是一个数组.
LinkedList 是一个双链表,在添加和删除元素时具有比ArrayList更好的性能.但在get与set方面弱于ArrayList.
当然,这些对比都是指数据量很大或者操作很频繁的情况下的对比,如果数据和运算量很小,那么对比将失去意义.
Vector 和ArrayList类似,但属于强同步类。如果你的程序本身是线程安全的(thread-safe,没有在多个线程之间共享同一个集合/对象),那么使用ArrayList是更好的选择。
Vector和ArrayList在更多元素添加进来时会请求更大的空间。Vector每次请求其大小的双倍空间,而ArrayList每次对size增长50%.
LinkedList 还实现了 Queue 接口,该接口比List提供了更多的方法,包括 offer(),peek(),poll()等.
注意: 默认情况下ArrayList的初始容量非常小,所以如果可以预估数据量的话,分配一个较大的初始值属于最佳实践,这样可以减少调整大小的开销.


五、java如何解析注解的



六、为什么要用spring

       Struts2原理就是用拦截器,使得你客户端发送的请求都被拦截下来后处理。拦截器用到了反射机制。Struts2主要的功能是控制转发,在于Action的处理,和struts.xml配置。   

   Spring其实包含了很多的知识,用到的有IOC,AOP等,其实就是一个管理框架的容器,你不用再考虑你new对象了,它会帮你做,降低了层与层之间的耦合度。Spring里面有很多的思想,IOC就是控制反转,注入。AOP是面向切面的,有点像拦截器。            

   Hibernate是持久层框架,我们平时用JDBC操作数据库要写SQL语句,有时候字段一多会很麻烦,于是用hibernate就很方便了,你只要熟练掌握里面的映射关系,就不用写sql语句了,它会帮你写,API调用一下很方便的。


      

0 0
原创粉丝点击