java面试的一些问题记录

1、谈一下对jvm的看法:
jvm,虚拟机。自动垃圾回收机制。内存中分为栈、堆。栈中存放的是一些基本数据类型,堆中存放的是一些引用类型。堆内存还分为了新生代和老年代,当新生代内存不够用时,会把持续处于活跃状态的对象移到老年代,当老年代也不够用时,会做一次全量的垃圾回收。
jvm的调优,包括了对堆内存的分配,新生代中内存的一个比例分配等
2、谈一下对集合的看法:
java中的集合主要有这么几大类:collection、set、map
其中vector、list继承自collection,vection是线程安全的,list效率相对高些,list存放是按照先进后出的方式存放的,允许,插队插入,有个list.add(index,obj)。list还有个linkedlist是双向链表集合,对于增删改较少的可以采用,它的查询速度相对比较快,因为是双向链表。
3、谈一下对设计模式的看法:
设计模式,主要遵循了以下几个原则:职责单一、里氏置换、依赖倒置、接口隔离、迪米特法则、开闭原则。如果很好的遵循了这几个原则就算是对设计模式比较好的实现。当然是合理的遵循,过犹不及。
我们常用的设计模式,包括单例模式、工厂模式、建造者模式、原型模式,这几个都是用来实现对象构建的,算是创建型模式。在开发中经常用到的有工厂模式,单例模式,原型模式的话,可以更好性能的实现对象的copy,是直接在内存中操作的。
再有的话,行为型模式:模板模式、观察者模式、中介者模式、访问者模式等等等
等我理解一下再来复述
4、谈一下对性能优化的看法:
算是一个比较大的范围了,包括了前端页面的优化,静态资源文件的合理引入等,页面尽量减少数据库查询局部刷新、图片的压缩,使用组合图片,js,css文件的压缩,减少不必要的js引入,加载js的先后顺序等等
缓存的使用,memcached、redis等数据层缓存服务器的使用,尽量减少数据库层次的查询
数据库优化,索引,分表,分库等,对于sql的优化:条件查询合理的限制条件、只查必要字段避免*、尽量使用一条sql等
5、谈一下SSH的看法
标准的MVC框架。struts2、spring、hibernate。
 
6、工作中遇到的一些问题,如何处理的:
 
7、如何开始实现一个功能的,从需求开始到发布上线,整个业务流程介绍一下:
 
posted @ 2017-03-10 13:01  orange16  阅读(137)  评论(0)    收藏  举报