2019年分享net面试的经历和题目.doc 下载本文

内容发布更新时间 : 2024/12/24 20:39:03星期一 下面是文章的全部内容请认真阅读。

2019年分享net面试的经历和题目

下面就和大伙分享我设计的面试过程或内容: 1、现场编码。

要求写出:缓存类+SqlHelper类(30分钟内,然后由代码引向面象对象或设计模式)。 2、数据库。

问了两点:索引的坏处,事务的级别,分布式事务的原理。 3、发散思维题一。

题目:电商,瞬时抢购的方案,你会如何设计。 4、发散思维题二。

题目:4G内存的电脑,如何读取8G的日志文件进行分析,汇总数据成报表。 5、回归基础题。

题目:说说 数组、链表、Hash表的缺点。 6、IIS。

题目:应用程序池的集成模式和经典模式的区别。 7、发散性问题:安全

题目:说说你认为的安全都有涉及到哪些地方? 8、发散性问题:性能

题目:说说你认为的性能都体现在哪些地方? 9、发散性问题:分布式

题目:说说集群、故障转移、负载均衡、分布式都有哪些不

同?

10、Http 协议

   猴子选大王问题是一个十分经典的算法问题,这个问题是这样的:一堆猴子都有编号,编号是1,2,3 ...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。这个问题要解决起来并不难,但求解的方法很多;题目的变化形式也很多,而我们统称这类问题为约瑟夫问题。这类题目基本的描述为:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3,1。下面我们先来分析一下解决这类问题的几个步骤。

(1)由于对于每个人只有死和活两种状态,因此可以用布朗型数组标记每个人的状态,可用true表示死,false表示活。 (2)开始时每个人都是活的,所以数组初值全部赋为false。 (3)模拟杀人过程,直到所有人都被杀死为止。

    题目中N个人围成一圈,因而启发我们用一个循环的链来表示,可以使用数组结构来构成一个循环链表。结构中有两个成员,其一为指向下一个人的指针,以构成环形的链;其二为该人是否被杀死的标记,为1表示还存活。从第一个人开始对还存活的人进行计数,每数到M时,

将结构中的标记改为0,表示该人已被杀死。这样循环计数直到有15个人被杀死为止。

    但是,无论是用链表实现还是用数组实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间复杂度高达O(nm),当n,m非常大(例如上百万,上千万)的时候,几乎是没有办法在短时间内出结果的。我们注意到原问题仅仅是要求出最后的胜利者的序号,而不是要读者模拟整个过程。因此如果要追求效率,就要打破常规,实施一点数学策略。