java面试之谈

半个多月的找工作时间,不是在去面试路上,就是在面试中,经历了大概有近10家的面试,虽然很多家都是一回了无音讯,对自己收获还是有的,至少让自己认识到了自身基础不牢固和技术知识面的狭隘。之前从事的工作主要都是开发企业级的应用项目,对多网络编程,多线程,高并发等相关的技术知之甚少。

面试的一般套路都是:先是自己简单的介绍一下,然后介绍一些自己做过哪些拿得出手的项目,面试官一般会根据你项目中所涉及到的开发技术对你提问,如果注重基础的一般都会问较多的java基础的问题。

下面总结一下面试中被问到的问题:

1、java基础方面:

  1】java集合有哪些?hashmap和hashtable的区别?hashmap底层是如何实现的?对hash算法的了解?

  2】 java异常与错误?运行时异常有哪些?

  3】string,stringbuffer,stringbuild的区别?String a = new String(“abc”),创建了几个对象?

  4】对java虚拟机jvm的了解,什么是GC,为什么要有GC?内存溢出如何解决?虚拟机内存包括哪些?堆,栈的区别?他们的内部结构如何?

  5】说说你了解的设计模式?

  6】对java泛型的了解,什么是java的反射机制,如何实现的?

  7】对数据结构排序算法的掌握,说说冒泡排序、快速排序等基本实现的逻辑。

  8】如何实现同步,如何实现多线程,对同步和多线程的深入理解。

  9】Servlet是如何工作的?深入理解servlet?listener和filter的作用与区别?

2、流行框架方面:

  1】说说对spring的理解,IOC的实现原理,AOP的实现原理及项目中具体的实际使用在哪?

  2】Hibernate中的对象有哪三中状态?它们之间是如何转换的?常用接口有哪些?分别什么作用?

  3】Hibernate与Mybatis的优缺点对比?

  4】SpringMVC的实现流程?是否去查看了底层的实现代码?

  5】常用的SpringMVC注解,分别有什么作用?

  6】对Hibernate缓存机制的理解,如何实现的?

  7】Spring如何实现注入Bean?

3、数据库相关:

  1】数据库表空间创建、授权、创建表的一系列SQL语句。

  2】数据量超大表查询速度慢优化的思路?

  3】left join,right join,inner join的用法?

  4】not in 与 not exist的比较?

  5】数据库实现分布式的一般思路?

  6】创建表索引的目的是什么?加索引的根据是什么?对索引的深入了解。

4、项目上用到的相关技术:

  1】什么是单点登录,如何实现单点登录?

  2】安全框架shiro的实现原理,具体如何做到访问权限的控制?

  3】用到哪些缓存技术?实际项目中缓存了哪些数据?

  4】maven的用途,以及它有什么优势?

  5】对Linux的理解?

  6】SVN、Git等代码冲突如何解决?

  7】是否用过工作流?如何实现的?

  8】项目部署分布式如何实现?

5、其他问题:

  1】你的优势在哪里?

  2】在项目过程中遇到过哪些问题?是如何解决的?

  3】架构师需要具备哪些技术,或者说什么样的人可以称为架构师?

  4】自己的职业规划是什么?

  5】一句话概括自己身上的优缺点?在朋友同事眼中你是一个什么样的人?

  6】你有什么问题还要问我们的吗?

  7】一个5L的水杯,一个3L的水杯,如何测量出4L的水?

  8】一个封闭的房间里有3盏灯,房间外面有3个开关,线路连接完好,只进房间一次,如何判断出哪个开关控制的是哪一盏灯?

  

  

上一篇:Intellij IDEA中file size exceeds configured limit解决


下一篇:.net基础第一天