1. 2021面试总结

  1. J229公司及面试题
  2. ------------------------229------------------------
  3. 铭日芷星 14~18K
  4. mysql主从同步什么原理
  5. 描述mysql中,索引,主键,唯一索引,联合索引的区别
  6. 简述MyISAMInnoDB的有什么不同?
  7. redis分布式所和同步锁在开发中怎么区分
  8. redis存储的类型有哪些,使用场景有哪些
  9. redis能存放的数据量有多大(记不清,反正问过这个题,关于redis的数据存储量的)
  10. springCloud微服务都使用过哪些,都是为了解决什么问题
  11. jwt实现签发的底层原理是什么?
  12. 书写人生 8~10k
  13. 先来就填表,根据你填的期望工资上机测试打代码,薪资不同做不同的题。 比如一个steam排序,去重,再封装vo
  14. 多重for循环逻辑判断输出,多线程
  15. 线程和进程区别,
  16. java8新特性,
  17. 集合ArrayListhashmap底层,
  18. redis的双写一致性,互斥锁。
  19. 还有些项目中使用的细节,反正项目细节要慢慢讲,他一直会怀疑你的经验那些有问题,介意别包装
  20. 德科信息技术有限公司 8k~12k
  21. springmvc执行流程
  22. 有几种创建线程的方法
  23. StringStringBuilderSpringBuffer的区别和哪个是线程安全的
  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. hashmapconcurrenthashmap底层区别,
  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:IOCDI 自己的理解?
  71. 问题4:Redis应用场景
  72. 问题5:hashtablecurrentHashMap的区别?
  73. 文思海辉 8~12k
  74. 1STRING STRINGBUFFER STRINGBUILD的区别
  75. 2JAVA三大特性
  76. 3、继承的特性
  77. 4JAVA的作用域
  78. 5INTINTEGER的区别
  79. 6HASHMAP的底层
  80. 7ARRAYLISTLINKEDLIST的区别,哪个是线程安全的
  81. 8STRING A = NEW STRING(“XX”)创建了几个对象,哪两个对象,这两个在哪
  82. 9 为什么JAVA语言可以跨平台
  83. 10、== 是干什么的 如果两边是对象的话呢
  84. 11、会不会安装数据库
  85. 12git的使用,遇见冲突怎么解决
  86. 13maven的使用"
  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.StringString bufferString build的区别
  96. 23.什么是装箱和拆箱
  97. 24.能否通过编译float a = 3.4,为什么不能?float类型的能赋值给double类型的吗?double类型的能赋值给float类型吗
  98. 25.抽象类与接口的区别
  99. 26.hashmaphash tablehash table的什么不能为空?
  100. 27.set的什么可以为空,有几个可以为空?"
  101. 28、字节流和字符流区别
  102. 29、怎么解决Springboot循环依赖
  103. 30.jwt是什么,它的组成是?"
  104. 31、字节流和字符流的使用场景
  105. 32springMVC的使用原理
  106. 33mybatis是怎样实现一对多查询的
  107. 34linkedlisthashlist的区别!!!坑,没有hashList
  108. 35、在本地是如何建立你的项目环境的
  109. 36MySQL的安装过程中遇到了什么问题
  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 countidfrom 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 inorder尽可能基于索引排序
  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 MVCSpringMybatis) 整合方案
  4. 什么是SSH
  5. 曾经企业中的主流框架组合:SSH(StrutsSpringHibernate)
  6. 学习框架的目的?
  7. 企业要求开发人员学会各种框架的目的,是为了提升开发效率和开发时间,对应降低企业成本,提升企业利润比
  8. Springmvc替代了什么
  9. SpringMVC替代了我们曾经的Servlet(JSTL+EL+JSP)
  10. 什么是耦合度
  11. 在代码中类与类之间或者对象与对象之间的依赖关系, 对象调用对象的层级越深,则依赖度越高,对应耦合度也就越高,反之则是耦合度低,0耦合指的是每一个类或对象之间都无依赖关系。而耦合度过高会导致维护成本越高
  12. Ideamaven的核心就是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框架,通过把ModelViewController分离,将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. 他支持多种视图技术,而不仅仅局限于JSPJSTLEL还有支持普通的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