2015面试的技术点

1,对于数据库优化你有什么办法?

 

1、1、调整数据结构的设计。这一部分在开发信息系统之前完成,程序员需要考虑是否使用ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。


2、2、调整应用程序结构设计。这一部分也是在开发信息系统之前完成,程序员在这一步需要考虑应用程序使用什么样的体系结构,是使用传统的Client/Server两层体系结构,还是使用Browser/Web/Database的三层体系结构。不同的应用程序体系结构要求的数据库资源是不同的。

3、3、调整数据库SQL语句。应用程序的执行最终将归结为数据库中的SQL语句执行,因此SQL语句的执行效率最终决定了ORACLE数据库的性能。ORACLE公司推荐使用ORACLE语句优化器(Oracle Optimizer)和行锁管理器(row-level manager)来调整优化SQL语句。

4、4、调整服务器内存分配。内存分配是在信息系统运行过程中优化配置的,数据库管理员可以根据数据库运行状况调整数据库系统全局区(SGA区)的数据缓冲区、日志缓冲区和共享池的大小;还可以调整程序全局区(PGA区)的大小。需要注意的是,SGA区不是越大越好,SGA区过大会占用操作系统使用的内存而引起虚拟内存的页面交换,这样反而会降低系统。

5、5、调整硬盘I/O,这一步是在信息系统开发之前完成的。数据库管理员可以将组成同一个表空间的数据文件放在不同的硬盘上,做到硬盘之间I/O负载均衡。

6、6、调整操作系统参数,例如:运行在UNIX操作系统上的ORACLE数据库,可以调整UNIX数据缓冲池的大小,每个进程所能使用的内存大小等参数。

实际上,上述数据库优化措施之间是相互联系的。ORACLE数据库性能恶化表现基本上都是用户响应时间比较长,需要用户长时间的等待。但性能恶化的原因却是多种多样的,有时是多个因素共同造成了性能恶化的结果,这就需要数据库管理员有比较全面的计算机知识,能够敏感地察觉到影响数据库性能的主要原因所在。

 

2,强制提高网站性能有什么办法?

 

如果是占用客户端的资源比较高的话,可能是JS的问题。--检查js,优化之
如果是服务器响应慢的话。可能是网络问题--无解,可能是某个功能模块的问题(一般都是数据库操作和外部系统交互有问题)--去分析服务器的日志、javacore、dump文件,优化之,可能是机器性能问题--换机器/加服务器,搞负载均衡

 

3,千万级,亿级数据查询慢,有什么优化办法?

 

1,如果是单表或者是多表连接,返回一个不大的结果集,加入查询条件上有可用的索引,不会太慢,如果返回一个不大的结果集就慢,直接优化索引和sql写法,当然也不排除执行计划,缓存这些影响性能的因素,这一点是说正常情况下慢的一些原因
2,如果对千万级亿万级的单表或者是多表查询,即便是有索引,一个查询返回数百万条结果集,神仙也没办法,即便是数据库能够返回这个查询的结果集,你应用程序短的时间内也接收不了这么大的结果集
3,如果返回结果集不大,但是是对大数量的聚合操作(sum,count,avg,max,min)等,也不会快,原因是数据库要运算
4,对于2,3两点,我觉得是设计问题,你动不动就遍历和千万级的表,动不动就对全表做聚合运算,动不动是十几个千万级的别做join,绝对是设计的问题
5,以上设计没有问题,也没有大批量的查询或者大数据的聚合,查询一个不大的结果集,就慢,那问题可能出在硬件上,别拿个PC级做服务器,内存不够使,CPU不够使,网络不够使

4,聚集索引,非聚集索引的区别是什么?怎么用?什么场合用?

 

聚集索引的缺点是对表进行修改速度较慢,这是为了保持表中的记录的物理顺序与索引的顺序一致,而把记录插入到数据页的相应位置,必须在数据页中进行数据重排,降低了执行速度。建议使用聚集索引的场合为:
a.此列包含有限数目的不同值;
b.查询的结果返回一个区间的值;
c.查询的结果返回某值相同的大量结果集。
非聚集索引指定了表中记录的逻辑顺序,但记录的物理顺序和索引的顺序不一致,聚集索引和非聚集索引都采用了B+树的结构,但非聚集索引的叶子层并不与实际的数据页相重叠,而采用叶子层包含一个指向表中的记录在数据页中的指针的方式。非聚集索引比聚集索引层次多,添加记录不会引起数据顺序的重组。建议使用非聚集索引的场合为:
a.此列包含了大量数目不同的值;
b.查询的结束返回的是少量的结果集;
c.order by 子句中使用了该列。

 

http://blog.csdn.net/liu_ben_qian/article/details/8472902

 

5,常用的集合类是哪些?哪些效率高?效率高的原因是什么?

 

http://www.cnblogs.com/linjiqin/archive/2013/05/30/3107785.html

http://blog.163.com/haoge03180318@126/blog/static/119585844201249114044122/

 

6,权限管理,具体到增删改查,你如何控制页面显示哪些操作功能?

 

http://bbs.csdn.net/topics/320014491

 

7,索引为什么可以提高访问速度原理是什么?

 

http://blog.chinaunix.net/uid-10673338-id-2936909.html

 

8,说一说简单工厂模式应用场景是什么?

 

http://www.cnblogs.com/shenliang123/archive/2012/05/10/2494412.html

http://www.cnblogs.com/zhangchenliang/p/3700820.html

 

9,说一说垃圾回收的原理,讲一下过程?

 

java垃圾回收的优点:它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。

java垃圾回收的原理: 垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。

http://www.importnew.com/15802.html

http://www.cnblogs.com/dolphin0520/p/3783345.html

 

10,说一下单例模式的应用场景,都有哪些模式,区别是什么?

 

http://blog.csdn.net/tanyujing/article/details/14160941

 

11,iis如何实现一个简单的集群,Session存在哪里?如何实现共享?

 

http://www.cnblogs.com/gowhy/archive/2012/12/19/2824999.html

http://blog.csdn.net/fuxiaohui/article/details/45440829

 

12,说下HttpModule和HttpHandle的区别?

 

http://www.cnblogs.com/kissdodog/p/3567448.html

 

13,说下页面的生命周期?从浏览器请求到结束这个过程?

 

http://blog.csdn.net/gatr/article/details/6804405

http://www.blogjava.net/fastzch/archive/2010/08/24/329729.html

 

14,说下webForm与MVC分别的优势是什么?

 

http://www.cnblogs.com/chay1227/archive/2013/03/11/2953301.html

http://blog.csdn.net/yisuowushinian/article/details/17646121

 

15,有没有用过WCF?说下webService的基础技术是什么?它是靠什么支撑的?

 

http://blog.csdn.net/avi9111/article/details/5655563

 

16,说下NPOI你是怎么使用的?说下你用过的数据导入,导出?

 

http://blog.csdn.net/lploveme/article/details/8551359

 

17,说下你在项目中用的缓存数据怎么实现?说下常用方式?

 

http://blog.csdn.net/madun/article/details/8569860

 

18,Memcached的内部结构是什么?它的原理是什么?

 

http://www.ha97.com/4575.html

http://blog.csdn.net/madding/article/details/5753870

 

21,有没有用过除了Jquery以外的其他框架?

 

http://zhidao.baidu.com/link?url=MF4AZ2U06kLbpzBTMhQYI7A1PZkU_Bsn_tAmI73rylIH1jgeu6GjC4P5OAGh2gT4tyfZRcPXcqVkZuFGpDi3fjBerx_AZ1-vke5qd74xMF3

 

25,你常用的存储过程有哪些?为什么使用存储过程?存储过程的优势是什么?

 

存储过程是一组予编译的SQL语句
它的优点:

1.允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。
2.允许更快执行,如果某操作需要执行大量
SQL语句或重复执行,存储过程比SQL
语句执行的要快。
3.减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。
4.更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。

1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的 SQL 语句,可能要多次连接数据库。而换成存储,只需要连接一次数据库就可以了。
3.存储过程可以重复使用,可减少数据库开发人员的工作量。
4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权。

http://blog.csdn.net/seelye/article/details/8502660

 

29,说一说session,session的分类,说一说登陆信息存储如何实现多服务器共享?你有什么方案?

 

http://www.cnblogs.com/wangtao_20/archive/2013/10/29/3395518.html

 

36,JavaScript作用域链说一说?继承如何实现?

 

http://www.cnblogs.com/dolphinX/p/3280876.html

http://blog.csdn.net/daiwei15/article/details/7631442

http://www.cnblogs.com/lhb25/archive/2011/09/06/javascript-scope-chain.html

 

37,jquery选择器都有哪些?

 

http://www.cnblogs.com/hulang/archive/2011/01/12/1933771.html

 

39,多线程和锁的问题你是怎么解决的?

 

http://blog.csdn.net/werm520/article/details/38731095

 

40,说一说抽象类和接口区别,你对类的理解?

 

http://www.cnblogs.com/dolphin0520/p/3811437.html

 

 

posted @ 2015-09-11 09:08  刘竹青  阅读(134)  评论(0编辑  收藏  举报