高频面试题---持续更新

  1. HashMap为什么是线程不安全的?哪个方法造成的?如何把它变为线程安全的?

    1 HashMap在put的时候,插入的元素超过了容量(由负载因子决定)的范围就会触发扩容操作,就是rehash,这个会重新将原数组的内容重新hash到新的扩容数组中,在多线程的环境下,存在同时其他的元素也在进行put操作,如果hash值相同,可能出现同时在同一数组下用链表表示,造成闭环,导致在get时出现死循环,所以hashMap是线程不安全的。
    2 通过Collections.synchronizedMap()来封装HashMap的方法

    查看答案

  2. 列举线程池的基本参数有哪些?说说线程池的工作流程
  3. spring框架的IOC基本实现原理,BeanFactory和FactoryBean有什么区别?
  4. 下面是一道阿里巴巴的题目,请问代码输出结果是什么?
  5. 关于list<?>,list<T>,list<Object>,list<? extend Object>以及list<? super T>的区别是什么?
  6. 有一个表t1,列为abc,现建立索引为ac,现在select xx from table where c=xx and a=xx有没有用到索引?
  7. 手写一个单例模式,并分析过程。(懒汉式、饿汉式,双重检测锁)
  8. foreach与正常for循环效率对比哪个高?各自的适应场景是什么?
  9. 一张表,里面有ID自增主键,当insert了5条记录之后,删除了第3,4,5条记录后,再把Mysql重启,再insert一条记录,这条记录的ID是6还是3?
  10. @Transactional在哪些情况下会导致事务失效?列举出来~
  11. 算法题: 给你一串连续的数字,1到10000,随机除去两个数,怎样快速找到这两个数?它的时间复杂度是多少?
  12. mybatis的xxMapper,只有接口,没有实现类,它是怎么实现具体的查询操作的?原理是什么?
  13. mysql的查询,or和in哪个效率更高?为什么?
  14. Java并发编程包中的CountDownLatch类在多线程中有什么作用?
  15. http和https协议的区别是什么?两种协议分别适合用在哪里?
  16. jvm如何判断一个对象是否可以被回收?垃圾回收算法都有哪些?
  17. ThreadLocal如何解决线程不安全的问题,内部原理是怎样的?它的使用场景有哪些?
  18. 以下代码执行后,会输出什么结果?
  19. 请画出微服务框架dubbo消费者调用生产者的顺序图,并说出它是如何工作的
  20. 如图,多线程情况判断,应该选择哪个选项?
  21. 对于mysql来说,Hash索引的时间复杂度是O(1),而B+树的时间复杂度是log(2N),为什么mysql不选择用Hash作为底层结构?
  22. 写出你遇到的Exception,并解释他们会在哪些情况下出现?
  23. 解释一下同步和异步,阻塞和非阻塞是什么?并举例说明
  24. 以下代码输出什么?java是值传递还是引用传递,两者区别是什么?
  25. 队列适用于哪些开发场景,什么时候你会考虑使用队列?常见的队列,你会如何选择
  26. Spring里用到了哪些常见的设计模式?请详述使用场景。
  27. java的引用强度都有哪些类型?在GC过程中都是如何表现的?
  28. 详解TCP三次握手,四次挥手的过程?并解释为什么握手需要三次,挥手却需要四次?
  29. 为什么 Java 中的 String 类是不可变的?使用final有什么好处?
  30. java中i++和++i满足原子性吗,为什么?如果不是,怎么保持其原子性
  31. 同步方法和同步代码块的区别是什么?
  32. String对象的intern()方法作用是什么?实现原理是什么?
  33. linux下现在cpu占用率过高,如何排查是哪个或者哪些线程引起的?
  34. 事务的隔离级别有哪些,分别会引起哪种异常读取?
  35. Http状态码有哪些,分别表示什么含义?
  36. mysql的like语法和Locate函数哪个效率更高?为什么?
  37. redis是单线程的,使用它需要加锁吗?为什么它依然那么快?
  38. 后端如何防止前端的重复请求,如何保证请求的幂等?
  39. 使用随机算法产生一个数,要求将1-1000W之间这些数全部生成出来。(考察高效率,解决产生冲突的问题)
  40. spring中如何解决循环依赖问题?
  41. CAS的原理是什么?适用场景有哪些?有什么优点和缺点?
  42. 说一说Nio为什么要比IO流快,它的底层原理是什么?
  43. Stringbuffer和StringBuilder和String.format()的区别是什么?都适合用在什么样的场景下
  44. Java中Linkedlist也实现了List接口,也存在一个get( int index)方法获取角标处元素。为什么ArrayList的get(n)时间复杂度为O(1),而Linkedlist的get(n)时间复杂度为O(n)?增删呢?可以从数据结构或Java源码实现两方面回答。
  45. 并发和并行分别指什么?对于单核CPU,有必要开多线程吗?解释下原因
  46. 讨论redis与memcached的区别?
  47. 什么是线程局部变量?它存储在哪里?是线程安全的吗?
  48. Mybatis在拼接sql的时候,#和$符号的区别是什么?
  49. SimpleDateFormat是线程安全的吗?为什么?
  50. 说说你认识的软件设计模型层级划分是怎样的?controller、service、dao、job、接口调用、微服务等等
  51. synchronized的底层原理是什么?
  52. 在分布式系统中,如何保证生成的id唯一?
  53. rpc和http区别是什么?哪个效率更高?
  54. mysql有以下数据(假设为student表的score字段):1.1,1.8,5.3,2.2,1.1,1.8,6.7,3.9。要求用sql排序,数据一样,排名一样~
  55. 一个TCP连接可以发多少Http请求?
  56. 为什么HashMap会在并发下出现环形链表?
  57. 理论上讲,两台主机之间同时能有多少条 tcp链接?
  58. java.sql.Date和java.util.Date的联系和区别是什么?
  59. 快速失败(fail-fast)和安全失败(fail-safe)的原理和区别分别是什么?
  60. servlet是线程安全的吗?解释一下为什么?
  61. 消息队列如何保证发送的消息不会丢失(以kafka或者rabbitmq为例说明)
  62. 高并发,执行耗时短的任务,还有低并发,执行耗时长的任务,各自选取什么样的线程池比较合理?为什么?如果业务场景是高并发,且任务耗时长时,有什么解决思路?
  63. forward 和redirect的区别是什么?各自适用于什么情况下?
  64. redis的内存回收策略有哪些?分别用于什么场景?
  65. 说一下concurrentHashMap的put方法的操作原理?
  66. 解释一下redis集群中是如何分配key的?
  67. 设计实现一个扫码登录功能
  68. sql语句的关键词执行的顺序是什么?
  69. 如果是传两个参数,int 和 string 类型的,mybatis是如何接受的?
  70. 什么是接口的幂等性,如何保证接口的幂等?
  71. 都知道反射的性能很差,那么反射的意义在哪里?哪些场景最适合用反射?
  72. 如何提高mysql的吞吐量?实现每秒超过50000+的写入?
  73. 如何将一个很的长url,转化为短url,你能想到的方法有哪些
  74. 如何在20亿个整数中判断一个任意指定的整数是否存在?
  75. bitmap的原理是什么?使用场景是什么
  76. mysq中字符编码集UTF8和UTF8mb4的区别是什么?建议用哪个?原因是什么?
  77. 分别写一个oracle和mysql的分页sql语句,并分析其过程~
  78. 说说你知道的spring的注解有哪些,作用都是什么?
  79. 如何保证缓存和数据库的数据一致性?
  80. 介绍一下java的双亲委派模型以及双亲委派被破坏的3种情况?
  81. 两张同样的表,分别是innodb和myisam引擎,它们的查询方式有什么不同,底层索引存储有什么不同?
  82. 聚簇索引和非聚簇索引的区别是什么?
  83. 前后端分离采用的原理是什么?怎样实现前后端分离?
  84. 解释一下jdk1.8中concurrentHashmap类的put和get方法过程
  85. jvm的内存模型是什么?并解释一下jdk1.7和1.8的变化有哪些
  86. 谈一下jvm的垃圾回收机制,算法演变过程?以及现在jvm采用的是哪种回收算法?
  87. 说一下垃圾回收器都有哪些,有什么不同?目前jdk1.8采用哪种?为什么?
  88. 假如我有个对外开放的接口,这个接口对于任一ip只允许调用一次,第二次调用直接拒绝?如何做到?
  89. 常见的分流算法有哪些?分别都是什么原理
  90. volatile关键字的作用是什么?
  91. 有一张订单表,订单号是雪花id,纯18位的数字。表内有1000w数据,现在要进行分库分表,拆分成20个库,100个表,应该如何划分?每个表存放多少数据?
  92. 线程工作内存和主内存之间同步交互的指令有哪些?
  93. 谈谈你对观察者模式的认识?
  94. jdk1.9相比于1.8有哪些变动和新特性?
  95. HashMap的indexFor方法源码如下:static int indexFor(int h, int length) { 
    return h & (length-1); 

    这里为什么要采取位运算?
  96. @Autowired和@resource的区别是什么?推荐使用哪个?
  97. mysql数据索引结构为什么不采用二叉树和红黑树?
  98. 编写代码,实现生产者-消费者模型功能,内容自由发挥,只需要表达思想
  99. 设计一个微信抢红包算法,根据你平时的抢红包体验,注意几点: 1、最小分配金额为一分钱 2、每个人无论先后顺序抢到的红包金额在概率上是大致均匀的 
    3、适应抢红包的喜悦气氛,现实中不会出现红包金额分配太极端的情况,比如10个人抢100元,第一个红包就被抢了99元
  100. 介绍一下快速排序,有没有什么排序算法时间复杂度能够小于nlogn的?
  101. volatile是绝对线程安全的吗?为什么
  102. 解释一下cap理论,Zookeeper符合哪些?Eureka符合哪些?
  103. 设计一个秒杀架构,会遇到哪些需要解决的问题?
  104. concurrentHashMap为什么要使用红黑树?好处是什么?
  105. 线程都有哪些状态?生命周期是怎样的?
  106. websocket与http请求的不同是什么?两者适用场景有什么不同?
  107. select count(*)from xx,在innodb和myisam中查询哪个更快?为什么?
  108. fullgc和minorgc的区别是什么?fullgc的频率大概多久一次比较好?
  109. TreeSet和HashSet的区别是什么?
  110. 说一说你知道的linux命令有哪些?
  111. Tcp和Udp的区别有哪些?Udp适用于那些场景
  112. 回答代码中的问题:
  113. 线程为什么不是以run方法运行,而是start方法?
  114. concurrentHashMap的size()方法原理是什么?1.7和1.8分别说明。
  115. 什么是缓存伪共享?如何解决伪共享问题?
  116. 如何判断链表中是否有环?
  117. 用户从浏览器输入一个url开始到看到内容,中间会经历什么样的过程?
  118. mysql的drop、delete、truncate的区别是什么?
  119. 来自抖音后端的一个面试题:什么是用户态,什么是内核态?
  120. 为什么 wait,notify 和 notifyAll 方法是在 Object 类中定义的而不是在 Thread 类中定义?
  121. 数据库三大范式是什么,具体是什么含义?
  122. 乐观锁和悲观锁是什么?哪个效率更高?
  123. ReadWriteLock读写锁相比较ReentrantLock有什么不同?它更适合用在什么样的场景中?
  124. QQ或者微信的消息撤回怎么实现?
  125. static修饰的字段是可以被序列化的吗?为什么?
  126. jdk的阻塞队列有哪些?分别有什么不同?
  127. 用阻塞队列实现生产者、消费者模式。
  128. java有多少种创建对象的方式?列举出来
  129. mysql中group by name的时候,如果数据库存在很多name为null的值,会怎么样?如果要避免这样的情况,怎么处理?
  130. BIO、NIO和AIO的区别是什么?简单说明一下BIO
  131. ThreadLocal的使用场景有哪些?
  132. 你所知道的负载均衡策略都有哪些?各自适合的场景是什么?
  133. 编码实现三个线程依次循环打印XYZ,一共打印10次
  134. redis有哪些数据类型?使用场景都是什么?
  135. mysql的主键id是自增的好还是uuid好?为什么
  136. 给定一个单链表的头节点 head,实现一个调整单链表的函数,使得每K个节点之间为一组进行逆序,并且从链表的尾部开始组起,头部剩余节点数量不够一组的不需要逆序。(不能使用队列或者栈作为辅助)例如:链表:1->2->3->4->5->6->7->8->null, K = 3。那么 6->7->8,3->4->5,1->2各为一组。调整后:1->2->5->4->3->8->7->6->null。其中 1,2不调整,因为不够一组。
  137. 要求用zookeeper实现分布式锁,说出原理即可。
  138. 简述一下epoll的工作原理。
  139. http请求中get和post请求的区别是什么?
  140. 为什么要重写equals和hashcode方法?
  141. 用redis如何实现分布式锁?
  142. spring的aop的原理是什么?使用场景有哪些?
  143. select * from table limit 999999,5(主键为id)查询是很慢的,如何优化这个sql?
  144. 用linkedHashMap实现一个lru缓存。
  145. 动态代理为什么需要传入类加载器?为什么只能代理接口?
  146. 如何防止缓存击穿和雪崩?
  147. BeanA依赖B,B依赖C,C依赖于A,spring在bean初始化的时候,如何解决这种循环依赖的问题?
  148. 简述AQS的基本原理
  149. zookeeper的zab协议是什么,具体是如何工作的?
  150. count(1)中的1是什么含义?count(*)和count(1)和count(列名)哪个效率高?
  151. mysql是如何执行一条sql的,流程是怎样的?
  152. 线程池中当某个线程执行过程中异常了,线程池会怎么样?如何处理?
  153. 简述观察者模式以及适用场景~
  154. 如何保证队列消息不被重复消费,或者说,如何保证消息消费的幂等性?
  155. 为什么索引符合最左匹配原则,而不是最右原则?(从B+底层结构分析)
  156. ArrayList为什么不是线程安全的?具体原因是什么?
  157. jdk1.8的jvm结构模型是什么样的?每个区域的作用是什么?
  158. 如何保证消息队列的顺序性?
    例子:假如binlog发送给消息队列是增、改、删,结果没有控制好顺序成了删、增、改,这样就是有问题的
  159. 分库分表后部署上线有哪几种方案?
  160. springmvc运行流程是什么?
  161. jvm垃圾回收器都有哪些?各自的特点是什么?
  162. Spring中@Async注解实现异步调用的实现原理?
  163. redis有哪些集群模式?各自的优缺点是什么?

    1 1.主从模式:可进行读写分离,可分担同步的压力,可用性不太高,master宕机需要手动配置从节点转为master
    2 2.cluter模式: 引入了主从模式,每个节点存储不同的内容
    3 3.哨兵模式:主从模式升级版,主节点挂掉会自动将从节点转为主节点,可用性更高

    参考答案

  164. 如何把htttp请求升级为https?

    1 1:申请SSL证书
    2 2:让自己的服务器支持SSL,nginx需要配置SSL模块和https的跳转
    3 3:开放443端口

    参考答案

原文地址:https://www.cnblogs.com/zsl-keep-learning/p/11631948.html

时间: 2024-11-10 05:32:12

高频面试题---持续更新的相关文章

你应该知道的 javascript面试题 --- 持续更新

var myObject = { foo: "bar", func: function() { var self = this; console.log("outer func: this.foo = " + this.foo); // bar console.log("outer func: self.foo = " + self.foo); // bar (function() { console.log("inner func:

Python-常见面试题-持续更新

1.请你简要介绍一下Python的生成器是什么 答:Python生成器是一个返回可以迭代对象的函数,可以被用作控制循环的迭代行为. 生成器类似于返回值为数组的一个函数,这个函数可以接受参数,可以被调用, 一般函数会返回包括所有数值的数组,生成器一次只能返回一个值, 这样消耗的内存将会大大减小. 2.请说明一下Python中 is 和 == 的区别? is是用来判断两个变量引用的对象是否是同一个, == 用于判断引用对象的值是否相等. 可以通过 id() 函数查看引用对象的地址 原文地址:http

阿里笔试题(2015)持续更新中

第一次做阿里笔试题,除了ACM题之外从来没有做过校招网络题呀,完全是裸考,总体感觉吧,对于我来说,感觉时间不够用,不是题不会,感觉时间紧,大脑很混乱,总结这一次的笔试题 废话不多说,直接上题和答案 平均每个人逗留时间为20分钟,那么开场前20分钟一共来了400人,且有20个人逗留时间已经到,但他们不一定出去,注意是平均时间,所有博物馆最少应该容纳500人 双向循环列表,从任何一个元素开始可以遍历全部元素 先和后面的元素相连 s->next=p->next; p->next->pre

ios笔试题收集(持续更新)

IOS开发笔试题目 一.OC语法部分: 1. NSObject 中description属性的意义,它可以重写吗 用法举例:定义一个Person类,声明两个成员变量 @interface Person : NSObject { NSString * name; int age; } 在类的实现中,init方法初始化成员变量 @implementation Person - (instancetype)init { self = [super init]; if (self) { name = @

前端笔试题总结---持续更新

写在前面:.... 1字符串逆序 function reverse(str){ return str.split("").reverse().join("");//直接用函数 var str1="";//从后向前输出 for(var i=str.length-1;i>=0;i--){ str1+=str[i]; } return str1; var len=str.length;//字符串原地逆序 for(var i=0;i<len;

前端面试题总结——Html5(持续更新中)

前端面试题总结--H5(持续更新中) 1.HTML5 为什么只需要写 <!DOCTYPE HTML>? HTML5 需要doctype来规范浏览器的行为,让浏览器按照它们应该的方式来运行:HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型. 2.HTML5的form如何关闭自动完成功能? 给不想要提示的 form 或某个 input 设置为 autocomplete=off. 3.HTML5 中如何嵌入音频? 当前,audio 元素支持三种音频格式:&l

前端面试题总结——HTML(持续更新中)

前端面试题总结--HTML(持续更新中) 1.什么是HTML? HTML:HyperText Markup Language超文本标记语言 2.XHTML和HTML有什么区别 HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的标记语言 3.简述一下你对HTML语义化的理解? html语义化让页面的内容结构化,结构更清晰,便于对浏览器.搜索引擎解析; 前端学习圈:767273102 ,从最基础的HTML+CSS+JavaScript.jQuery,Ajax,node,angula

备战九十,iOS面试题菜单,持续更新(题目及答案已上传Github)

Objective_C语言特性 (戳这里跳转到Github) 分类 扩展 代理(Delegate) 通知(NSNotification) KVO (Key-value observing) KVC(Key-value coding) 属性关键字 runloop (戳这里跳转到Github) RunLoop概念 RunLoop的数据结构 RunLoop的Mode RunLoop的实现机制 RunLoop与NSTimer RunLoop和线程 讲一下 Observer ? autoreleasePo

前端面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)持续更新 &#362414;

原文: http://blog.gqylpy.com/gqy/438 置顶:来自一名75后老程序员的武林秘籍--必读(博主推荐) 来,先呈上武林秘籍链接:http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我