码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-10-11 00:29:09      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:core   哪些   ble   工作   ringbuf   exce   工作流   读写锁   线程安全   

  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端口
    参考答案

     

 

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

标签:core   哪些   ble   工作   ringbuf   exce   工作流   读写锁   线程安全   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!