1. 2021面试总结

  1. J229公司及面试题
  2. ------------------------229------------------------
  3. 铭日芷星 14~18K
  4. mysql主从同步什么原理
  5. 描述mysql中,索引,主键,唯一索引,联合索引的区别
  6. 简述MyISAM和InnoDB的有什么不同?
  7. redis分布式所和同步锁在开发中怎么区分
  8. redis存储的类型有哪些,使用场景有哪些
  9. redis能存放的数据量有多大(记不清,反正问过这个题,关于redis的数据存储量的)
  10. springCloud微服务都使用过哪些,都是为了解决什么问题
  11. jwt实现签发的底层原理是什么?
  12. 书写人生 8~10k
  13. 先来就填表,根据你填的期望工资上机测试打代码,薪资不同做不同的题。 比如一个steam排序,去重,再封装vo,
  14. 多重for循环逻辑判断输出,多线程
  15. 线程和进程区别,
  16. java8新特性,
  17. 集合ArrayList、hashmap底层,
  18. redis的双写一致性,互斥锁。
  19. 还有些项目中使用的细节,反正项目细节要慢慢讲,他一直会怀疑你的经验那些有问题,介意别包装
  20. 德科信息技术有限公司 8k~12k
  21. springmvc执行流程
  22. 有几种创建线程的方法
  23. String,StringBuilder和SpringBuffer的区别和哪个是线程安全的
  24. 有哪些设计模式
  25. 你用过哪些消息中间件
  26. 集合有哪些,hashmap的底层是用什么实现的
  27. 怎么优化数据库(用索引)。索引什么情况下会失效
  28. 九恒星 7-12K
  29. 观察者监听者模式.
  30. Servlet初始化和生命周期.
  31. 然后就是主要聊之前的项目.
  32. 金融项目优先.
  33. 对项目考察的多.
  34. 要多讲讲你对项目中技术的使用和遇到的问题.
  35. 他们用的Oracle数据库.如果有兴趣可以专项练习.
  36. WEB MVC 里面的知识点多看看. 面试的好.10K可以拿
  37. 软通动力&平安金科&蚂蚁金服一面&三零 12K-18K
  38. 主要是项目业务介绍+少许基础
  39. hashmap和concurrenthashmap底层区别,
  40. synchronized在各个jdk版本中做过哪些优化,
  41. 日常开发中用过哪些JUC下的各种锁,
  42. 对于数据结构是否了解,
  43. spring-aop是什么,是怎么通过代理实现切入,
  44. 日常开发中用过哪些设计模式,
  45. 了解过jvm中的垃圾回收算法吗?
  46. 讲一讲volatile关键字底层原理,
  47. nacos怎么实现高可用,
  48. 生产中怎么查看日志,
  49. 了解过项目是怎么部署上线的吗?
  50. 项目部署在几台服务器上?
  51. 日常的访问量和峰值有多少?
  52. 平安科技 6-8K
  53. 技术组长开门见山直接问最近的项目
  54. 简述项目
  55. 然后项目难点在哪
  56. 是否应用了集群和分布式
  57. 项目数据量什么级别
  58. 是否应用了同步锁
  59. 各种锁 .
  60. 数据库的索引 ,
  61. 什么时候用索引
  62. 建伟科技 6-10k
  63. 流程:自我介绍->项目介绍->java基础题
  64. 重点问的项目,包括项目使用技术、项目大小、多大并发量、用户数量级别。
  65. 然后就是给你算法题,你口头解答
  66. 灵动信息技术有限公司6-8k
  67. 直接跳过项目
  68. 问题1:springBoot的自动装配机制?如何取消自动装配
  69. 问题2:spring创建的Bean和自己手动创建的bean的生命周期, 如何消亡?是否立即消亡?若要立即消亡如何操作?
  70. 问题3:IOC和DI 自己的理解?
  71. 问题4:Redis应用场景
  72. 问题5:hashtable和currentHashMap的区别?
  73. 文思海辉 8~12k
  74. 1、STRING 、STRINGBUFFER 、STRINGBUILD的区别
  75. 2、JAVA三大特性
  76. 3、继承的特性
  77. 4、JAVA的作用域
  78. 5、INT和INTEGER的区别
  79. 6、HASHMAP的底层
  80. 7、ARRAYLIST和LINKEDLIST的区别,哪个是线程安全的
  81. 8、STRING A = NEW STRING(“XX”)创建了几个对象,哪两个对象,这两个在哪
  82. 9、 为什么JAVA语言可以跨平台
  83. 10、== 是干什么的 如果两边是对象的话呢
  84. 11、会不会安装数据库
  85. 12、git的使用,遇见冲突怎么解决
  86. 13、maven的使用"
  87. 14.spring的注入方式有哪些?
  88. 15.Java的三大特性
  89. 16.继承是?
  90. 17.hashmap底层
  91. 18.==是干什么的?
  92. 19.Java jdk1.8新特性流对排序是怎么?
  93. 20.Servlet生命周期
  94. 21.mybatis框架一对多是如何实现的?
  95. 22.String、String buffer、String build的区别
  96. 23.什么是装箱和拆箱
  97. 24.能否通过编译float a = 3.4,为什么不能?float类型的能赋值给double类型的吗?double类型的能赋值给float类型吗
  98. 25.抽象类与接口的区别
  99. 26.hashmap和hash table,hash table的什么不能为空?
  100. 27.set的什么可以为空,有几个可以为空?"
  101. 28、字节流和字符流区别
  102. 29、怎么解决Springboot循环依赖
  103. 30.jwt是什么,它的组成是?"
  104. 31、字节流和字符流的使用场景
  105. 32、springMVC的使用原理
  106. 33、mybatis是怎样实现一对多查询的
  107. 34、linkedlist和hashlist的区别!!!坑,没有hashList
  108. 35、在本地是如何建立你的项目环境的
  109. 36、MySQL的安装过程中遇到了什么问题
  110. J232公司及面试题
  111. ------------------------232------------------------
  112. 一、博彦科技有限公司
  113. 1. 谈一谈最近一个项目干了些什么
  114. 答:最近一个项目是医疗系统,我主要负责出院管理,对各表的数据进行处理。
  115. 2. 谈一谈数据库索引(查询速度快),然后为什么快。
  116. 答:主键、唯一、普通字段、复合(多个字段在一起生成一个索引)
  117. 如果在大量的数据中,直接判断一个值是否null,这样的性能极低,所以唯一索引性能低于主键索引
  118. 因为索引是B+数查找行为
  119. 前序循环
  120. 中序循环
  121. 后序循环 可以保证性能较高,为什么我们会选择主键索引,因为主键拥有唯一和非null的状态,可以再次提升索引性能
  122. 3. 举了两个实际场景,数据库应该怎么查。
  123. 答:1-查询一个公司中姓李的职员的有多少
  124. select count(id)from zhi_yuan where password=‘123456’
  125. 扩展问:count(1) count(*) count(id) 哪一种性能高
  126. 区分 mysql5.5之前和之后
  127. 5.5之后 count(*)默认找主键索引,如果没有,则找普通字段(官方做了对应的优化处理,仅限于order主键的时候)
  128. 如果要求手写sql:尽可能不要出现like,不要出现null判断,不要出现or,不要出现in或者not in,order尽可能基于索引排序
  129. INSERT into jue_se(jue_se_ming_cheng) select jue_se_ming_cheng from jue_se;
  130. select id from jue_se where id>10 ORDER BY id limit 10;
  131. select id from jue_se limit 200000,10;
  132. select count(*) from user where username='' and password='' limit 1;
  133. 4. 联合查询,应该注意些什么(性能问题)
  134. UNION关键字可以把来自多个SELECT的语句的结果组合到一个结果集中,这种查询方法称为并运算(UNION)或联合查询。合并时,多个SELECT子句中对应的字段数和数据类型必须相同。在包括多个查询的UNION语句中,其执行顺序是自左至右,使用括号可以改变这一执行顺序。例如:查询1 UNION (查询2 UNION 查询3

2. springmvc&spring&myabtis

  1. SpringMVC&Spring&Mybatis
  2. 什么是SSM?
  3. 企业中最主流的框架组合解决方案:SSM(Spring MVC、Spring、Mybatis) 整合方案
  4. 什么是SSH?
  5. 曾经企业中的主流框架组合:SSH(Struts、Spring、Hibernate)
  6. 学习框架的目的?
  7. 企业要求开发人员学会各种框架的目的,是为了提升开发效率和开发时间,对应降低企业成本,提升企业利润比
  8. Springmvc替代了什么
  9. SpringMVC替代了我们曾经的Servlet(JSTL+EL+JSP)
  10. 什么是耦合度
  11. 在代码中类与类之间或者对象与对象之间的依赖关系, 对象调用对象的层级越深,则依赖度越高,对应耦合度也就越高,反之则是耦合度低,0耦合指的是每一个类或对象之间都无依赖关系。而耦合度过高会导致维护成本越高
  12. Idea中maven的核心就是pom.xml文件
  13. 中央仓库的作用
  14. 它会保存所有驱动包,当我们需要调用的时候,可以根据指定的地址进行引用,这样的好处在于多个工程可以重复使用相同的驱动包,而不是增加硬盘的压力 它可以根据不同的驱动版本进行保存,所以我们可以非常自由随时更换版本 它可以做到一个真正的驱动和版本统一
  15. 驱动包管理<dependencies>
  16. <dependencies> <!-- 驱动依赖管理 --> <dependency> <!-- 每一个驱动包以 dependency标签为父标签 --> <groupId>junit</groupId> <!-- 分组的名称,必须唯一 --> <artifactId>junit</artifactId> <!-- 驱动的名称,必须唯一 --> <version>4.11</version> <!-- 驱动的版本号 --> <scope>test</scope> <!-- 执行域 前期可以不需要 --> </dependency>
  17. </dependencies>
  18. 每一个驱动包以 dependency标签为父标签 当出现点的行为(com.gxa),就是两个目录,甚至更多的目录
  19. 不是一个dependency就肯定对应唯一一个jar包,而是一个dependency至少对应一个jar包
  20. 中央仓库的加载流程
  21. 1.我们首先配置dependency标签,加入指定的驱动包。并手动import更新pom文件 2.这时候,idea工具会自动检查本地的中央仓库是否存在此驱动 3.如果不存在,则从全球中央仓库自动下载,并且根据组名、驱动名、版本号保存本地中央仓库 4.这时候检查lib驱动库是否存在此驱动
  22. maven项目,一样可以通过WEB-INF/lib目录进行加载驱动
  23. 什么叫做断点续传
  24. 可以随时暂停下载。可以随时根据暂停点继续开始下载
  25. 中央仓库中驱动版本的选择
  26. RELEASE 版本号中,如果出现RELEASE代表最终版,一般在实际开发中,我们都会选择RELEASE版本 BETA 这个版本是测试版 RC 这个版本也是测试版,也可以称呼为临时版 目前版本还会出现没有标示的,这种版本也是稳定版 如果驱动标注了特殊单词的,那么找寻RELEASE版本,如果没有,则找寻没有字母版本的
  27. Spring驱动版本统一性
  28. 所有Spring驱动的版本必须统一,所以,我们都会自定义一个spring版本管理的字段参数properties
  29. <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <spring.version>4.3.16.RELEASE</spring.version> </properties>
  30. 什么是脚手架
  31. 因为java工程的环境配置非常的繁琐,所以企业级项目提出一种新的概念,提前搭建好一个基础的环境,方便每一次新项目开发的时候直接引入基础搭建环境,这样的基础环境叫做脚手架(骨骼)
  32. springmvc的核心就是DispatcherServlet
  33. org.springframework.web.servlet.DispatcherServlet
  34. resources目录存放的是什么
  35. resources目录存放的全部是项目中的资源文件和配置文件(通常存放的文件后缀名都是 .xml .json .properties .yml)
  36. springmvc基本的访问流程
  37. (url地址->web.xml->springmvc.xml->controller->requestmapping->return) 1. 用户输入一个地址 http://localhost:8080/hello 2. 此地址会被springmvc截获,取出端口之后的请求地址,也就是 /hello 3. 然后通过web.xml关联到指定springmvc.xml配置文件中 4. 再通过springmvc.xml中的 <context:component-scan base-package="com.gxa.j259.controller" /> 标记,检查哪些一个包是需要扫描的 5. 检查这些package中的拥有 @RestController 和 @Controller 类头注解的java文件 6. 然后在每一个这样的java文件中,匹配每一个方法头上的注解@RequestMapping("/hello") 里面的路径是否匹配 7. 如果匹配,则调用对应的方法返回,如果都没有匹配则抛出404错误
  38. HTTP错误码
  39. 404 找不到指定地址的网页内容或者后台资源
  40. 500 在web工程中,如果出现java语法错误,则会抛出500异常
  41. 405 未重写HTTPServlet中的对应do方法,导致用户访问时,直接抛出系统内核代码的异常
  42. 200 请求响应成功
  43. 302 缓存
  44. HTTP Status 415 – Unsupported Media Type
  45. 这样错误代表前端没有使用json的头文件格式(contentType)上传
  46. HTTP Status 400 – Bad Request
  47. 当发生400错误,可能是前端没有把json对象转换成字符串
  48. HTTP Status 400 – Bad Request
  49. 当使用form表单数据提交时,如果后台强制要求传递指定的参数,但是前端没有传递,则会抛出400错误
  50. HTTP Status 400 – Bad Request
  51. 当springmvc自动转换数据类型时,发生错误,也会抛出400错误
  52. HTTP Status 405
  53. 后端没有重写对应的请求模式方法
  54. 什么是SpringMVC?
  55. SpringMVC是基于JAVA的,实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将WEB层进行职责解耦,把复杂的WEB应用分成逻辑清晰的几步化,简化开发,减少出错,方便组内开发人员之间的配合。
  56. 简述下SpringMVC的运行流程?
  57. 用户发送请求至前端控制器(DispatcherServlet).
  58. 前端控制器(DispatcherServlet)收到请求后,调用处理器映射器(HandlerMapping)
  59. 处理器映射器(HandlerMapping)根据请求的URL找到具体的处理器(Handler),生成处理器对象与处理器拦截器(如果有则生成)一并返回给前端控制器(DispatcherServlet)。
  60. 前端控制器(DispatcherServlet)通过处理器适配器(HandlerAdapter)调用处理器(Handler)。
  61. 开始执行处理器(Handler),常说的后端控制器(Controller)。
  62. 后端控制器(Controller)处理完成后返回@Response对应的json对象
  63. ModelAndView。针对曾经的转发和转向
  64. 处理器适配器(HandlerAdapter)将Controller执行结果ModelAndView返回给前端控制器(DispatcherServlet)。
  65. 前端控制器(DispatcherServlet)会将ModelAndView传给视图解析器(ViewReslover)。
  66. 解析器(ViewReslover)完成解析后返回具体View。
  67. 前端控制器(DispatcherServlet)对View进行渲染视图,也就是将数据填充进视图中。
  68. 最后,响应用户请求。
  69. SpringMVC的优点。
  70. 他支持多种视图技术,而不仅仅局限于JSP、JSTL、EL还有支持普通的HTML。
  71. 和Spring框架继承。
  72. 清晰的角色分配:前端控制器,处理器映射器,处理器适配器,视图解析器。
  73. 支持多种请求资源的映射策略。
  74. Spring的映射策略有哪些?
  75. 按Bean名称映射请求,这也是SpringMVC默认的映射策略,他是通过BeanNameUrlHandleMapping这个对象来达到目的的。
  76. 可以理解为键值对映射关系,请求的url看做键,接着由键找到对应的处理器。
  77. 按控制器名成员映射请求,他是根据WEB引用程序上下文中声明的控制器的类名称,自动生成映射,他是通过ControllerClassNameHandleMapping对象来达到目的的。
  78. 用定制的映射定义来映射请求,这需要我们通过SimpleUrlHandleMapping来做到这一点。
  79. SpringMVC的主要组件?
  80. 前端控制器。
  81. 接收请求,相应结果,主要作用是降低了其他组件之间的耦合度。
  82. 处理器映射器。
  83. 根据请求的URL来查找处理器。
  84. 处理器适配器。
  85. 根据映射器找到的处理器去处理相关的处理器。
  86. 视图解析器。

转载 https://www.yuque.com/zhanghongneng/oqxh5a/uzgpdt