![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
左左在右边
5年工作经验,C#全栈
展开
-
缓存与缓存穿透
缓存穿透2 ,那么缓存穿透是什么,是缓存中没有数据直接访问了数据库假如我们缓存了Hash<id,useInfo>hash这种用户数据,那么以下两种情况会造成缓存穿透: 用户请求的id在缓存中不存在,缓存时间至查询时间段这个用户时新增的并没有加入缓存。 恶意用户伪造不存在的id发起请求,大量的攻击会造成数据库压力过大、系统卡慢甚至死掉。 这样的用户请求导致的结果是:每.原创 2022-03-15 10:42:31 · 654 阅读 · 0 评论 -
面试题-使用递归计算1,1,2,3,5这样的队列的第100个数
面试了几家公司,写了好几遍这个题,才发现这个题答错了。正确的应该时候这样的,记下来把。。。 int sum (int x){ if(x==1|| x==2) return 1; else { result=sum(x-1)+sum(x-2); } return result; } ...原创 2018-08-30 20:15:14 · 2658 阅读 · 2 评论 -
面试题-冒泡算法
冒泡算法,原理是:比较第一个与后一个比较,如果第一个比后一个大,交换,那么第一层遍历完之后,末尾的最后一个一定是最大的。 所以第二次循环的时候只循环到倒数第三个就可以了。 以此类推。每层循环的次数会减一。 int temp; //外层循环是排序的趟数 for (int i = ...原创 2018-08-30 20:25:10 · 336 阅读 · 0 评论 -
面试题-多线程之间的通信
场景: a和 b两个运行的线程,问a如何通知b?方法1: 使用共享内存,创建作用域大于a,b的变量c,当a运行到条件的时候,改变c的值,在b中循环查询这这个变量改变满足条件的时候,执行操作。 方法2: a,b是父子线程,那么b线程可以等到满足条件是执行,然后阻塞a线程执行,直到执行完毕执再执行a. 先这样吧,等到安稳下来,再写代码测试。...原创 2018-08-27 21:17:49 · 1347 阅读 · 0 评论 -
面试题:委托和事件的区别
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。 使用委托可以将多个方法绑定到同一个委托变量,当调用此变量时(这里用“调用”这个词,是因为此变量代表一个方法),可以依次调用所有绑定的方法。事件本身是一个委托,c#编译后是一个私有委托...原创 2018-08-27 22:04:59 · 3649 阅读 · 0 评论