面试
文章平均质量分 66
&友情岁月&
good good study , day day up!!!
展开
-
spring boot与spring mvc的区别是什么
Spring 框架就像一个家族,有众多衍生产品例如 boot、security、jpa等等。但他们的基础都是Spring 的 ioc和 aop ioc 提供了依赖注入的容器 aop ,解决了面向横切面的编程,然后在此两者的基础上实现了其他延伸产品的高级功能。Spring MVC是基于 Servlet 的一个 MVC 框架 主要解决 WEB 开发的问题,因为 Spring 的配置非常复杂,各种XML、 JavaConfig、hin处理起来比较繁琐。于是为了简化开发者的使用,从而创造性地推出了Spring bo原创 2022-03-28 23:20:08 · 180 阅读 · 0 评论 -
Spring循环依赖的三种方式以及解决办法
一. 什么是循环依赖?循环依赖其实就是循环引用,也就是两个或者两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。如下图:注意,这里不是函数的循环调用,是对象的相互依赖关系。循环调用其实就是一个死循环,除非有终结条件。Spring中循环依赖场景有:(1)构造器的循环依赖(2)field属性的循环依赖其中,构造器的循环依赖问题无法解决,只能拋出BeanCurrentlyInCreationException异常,在解决属性循环依赖时,spri..原创 2022-03-28 23:18:45 · 7316 阅读 · 0 评论 -
Java性能优化之JVM GC(垃圾回收机制)
写文章登录Java性能优化之JVM GC(垃圾回收机制)韦庆明认真,你就赢了252 人赞同了该文章Java的性能优化,整理出一篇文章,供以后温故知新。JVM GC(垃圾回收机制)在学习Java GC 之前,我们需要记住一个单词:stop-the-world 。它会在任何一种GC算法中发生。stop-the-world 意味着JVM因为需要执行GC而停止了应用程序的执行。当stop-the-world 发生时,除GC所需的线程外,所有的线程都进入等待状态,直到GC任务完成。原创 2021-11-25 20:28:35 · 250 阅读 · 0 评论 -
JVM 运行机制及其原理
最近出去面试,总被问到Java JVM相关的东西,什么JVM的内存模型、JVM的内存分配、内存回收、内存回收算法…搞得我一头雾水,早些年还看过一些,蹭着有时间给大家也给自己总结下JVM相关的知识。JVMJVM是Java Virtual Machine(Java虚拟机)的缩写,是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机主要由字节码指令集、寄存器、栈、垃圾回收堆和存储方法域等构成。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java原创 2021-11-25 20:26:09 · 113 阅读 · 0 评论 -
面试题链接地址
Spring常见面试题总结(超详细回答)_张维鹏的博客-CSDN博客_spring面试题SpringMVC常见面试题总结(超详细回答)_张维鹏的博客-CSDN博客_springmvc面试题Mybatis常见面试题总结_张维鹏的博客-CSDN博客_mybatis面试题MySQL数据库常见面试题总结_张维鹏的博客-CSDN博客_数据库面试题https://blog.csdn.net/a745233700/category_10727715.htmlRabbitMQ消息队列常见面试题总结_..原创 2021-11-25 18:53:36 · 1457 阅读 · 0 评论 -
RabbitMQ消息队列常见面试题总结
1、什么是消息队列:1.1、消息队列的优点:(1)解耦:将系统按照不同的业务功能拆分出来,消息生产者只管把消息发布到 MQ 中而不用管谁来取,消息消费者只管从 MQ 中取消息而不管是谁发布的。消息生产者和消费者都不知道对方的存在;(2)异步:主流程只需要完成业务的核心功能;对于业务非核心功能,将消息放入到消息队列之中进行异步处理,减少请求的等待,提高系统的总体性能;(3)削峰/限流:将所有请求都写到消息队列中,消费服务器按照自身能够处理的请求数从队列中拿到请求,防止请求并发过高将系统搞崩溃;原创 2021-11-25 18:41:31 · 1031 阅读 · 0 评论 -
HashMap 与 ConcurrentHashMap 原理总结
一、HashMap原理总结:1、什么是HashMap:(1)HashMap 是基于 Map 接口的非同步实现,线程不安全,是为了快速存取而设计的;它采用 key-value 键值对的形式存放元素(并封装成 Node 对象),允许使用 null 键和 null 值,但只允许存在一个键为 null,并且存放在 Node[0] 的位置,不过允许存在多个 value 为 null 的情况。(2)在 JDK7 及之前的版本,HashMap 的数据结构可以看成“数组+链表”,在 JDK8 及之后的版本,数据原创 2021-11-25 18:39:21 · 1448 阅读 · 0 评论 -
redis中主从、哨兵和集群这三个有什么区别
主从模式是最简单的实现高可用的方案,核心就是主从同步。哨兵(sentinel)的功能比单纯的主从架构全面的多了,它具备自动故障转移、集群监控、消息通知等功能如果说依靠哨兵可以实现redis的高可用,如果还想在支持高并发同时容纳海量的数据,那就需要redis集群。redis集群是redis提供的分布式数据存储方案,集群通过数据分片sharding来进行数据的共享,同时提供复制和故障转移的功能。一、主从通过持久化功能,Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据,因为持久.原创 2021-11-25 18:29:00 · 3362 阅读 · 0 评论 -
feign和ribbon区别
feign和ribbon是Spring Cloud的Netflix中提供的两个实现软负载均衡的组件,Ribbon和Feign都是用于调用其他服务的,方式不同。Feign则是在Ribbon的基础上进行了一次改进,采用接口的方式。feign和ribbon是Spring Cloud的Netflix中提供的两个实现软负载均衡的组件,Ribbon 和 Feign 都是用于调用其他服务的,方式不同。Feign 则是在 Ribbon 的基础上进行了一次改进,采用接口的方式,将需要调用的其他服务的方法定义...转载 2021-11-24 19:57:36 · 782 阅读 · 0 评论 -
ribbon和nginx的区别
服务器端负载均衡 Nginxnginx 是客户端所有请求统一交给 nginx,由 nginx 进行实现负载均衡请求转发,属于服务器端负载均衡。既请求由 nginx 服务器端进行转发。客户端负载均衡 RibbonRibbon 是从 eureka 注册中心服务器端上获取服务注册信息列表,缓存到本地,然后在本地实现轮询负载均衡策略。既在客户端实现负载均衡。应用场景的区别:Nginx适合于服务器端实现负载均衡比如 Tomcat ,Ribbon适合与在微服务中RPC远程调用实现本地原创 2021-11-24 19:56:35 · 530 阅读 · 0 评论 -
Spring boot面试题整理
1、什么是springboot用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件)创建独立的spring引用程序 main方法运行嵌入的Tomcat 无需部署war文件简化maven配置自动配置spring添加对应功能starter自动化配置答:spring boot来简化spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用2、Spring Boot有哪些优点?答:-快速创建独...原创 2021-11-24 19:55:34 · 165 阅读 · 0 评论 -
SpringBoot自动配置原理
1.什么是自动配置个人理解SpringBoot的自动配置就是在系统启动的过程中自动扫描加载starter和自定义的配置类和配置文件中的bean,并且能根据当前环境和条件动态加载bean,达到开箱即用的目的。2.从注解反向看自动配置说到自动配置,很多帖子会直接从启动类的main函数说起,从@SpringBootApplication这个入手,进而找到加载Bean的入口,一般情况下是可以这样看的。@Target(ElementType.TYPE)@Retention(RetentionP原创 2021-11-24 19:52:40 · 324 阅读 · 0 评论 -
spring、spring boot与spring mvc的区别是什么?
Spring 框架就像一个家族,有众多衍生产品例如 boot、security、jpa等等。但他们的基础都是Spring 的 ioc和 aop ioc 提供了依赖注入的容器 aop ,解决了面向横切面的编程,然后在此两者的基础上实现了其他延伸产品的高级功能。Spring MVC是基于 Servlet 的一个 MVC 框架 主要解决 WEB 开发的问题,因为 Spring 的配置非常复杂,各种XML、 JavaConfig、hin处理起来比较繁琐。于是为了简化开发者的使用,从而创造性地推出了Spring bo原创 2021-11-24 19:47:08 · 176 阅读 · 0 评论 -
常用面试题?
1.springboot实现流程2.redis和zookeeper实现SpringCloud的组件和作用,说下熔断机制多线程的优缺点Es选举机制,脑裂问题处理,倒牌索引,Redis 如何保证一致性谈下分库分表,mvcc原创 2021-03-16 19:10:13 · 86 阅读 · 0 评论 -
你能说出多线程中 sleep、yield、join 的用法及 sleep与wait区别吗?
Object中的wait、notify、notifyAll,可以用于线程间的通信,核心原理为借助于监视器的入口集与等待集逻辑通过这三个方法完成线程在指定锁(监视器)上的等待与唤醒,这三个方法是以锁(监视器)为中心的通信方法除了他们之外,还有用于线程调度、控制的方法,他们是sleep、yield、join方法,他们可以用于线程的协作,他们是围绕着线程的调度而来的sleep方法有两个版...转载 2020-02-27 21:22:16 · 156 阅读 · 0 评论 -
这一次, 彻底解决Java的值传递和引用传递
学过Java基础的人都知道:值传递和引用传递是初次接触Java时的一个难点,有时候记得了语法却记不得怎么实际运用,有时候会的了运用却解释不出原理,而且坊间讨论的话题又是充满争议:有的论坛帖子说Java只有值传递,有的博客说两者皆有;这让人有点摸不着头脑,下面我们就这个话题做一些探讨,对书籍、对论坛博客的说法,做一次考证,以得出信得过的答案。其实,对于值传递和引用传递的语法和运用,百度一下,就能...转载 2019-11-30 20:45:20 · 1073 阅读 · 0 评论 -
Java多线程数据共享神器ThreadLocal
ThreadLocal内部结构和作用从ThreadLocal源码中可以看到其提供了3个方法,分别是get/set/remove。维护了一个ThreadLocalMap的数据结构。在多线程环境下能正确地获取共享的数据变量或值。ThreadLocal应用原理ThreadLocal提供了线程本地实例。每个线程在使用该变量时初始化一个完全独立的实例副本。保证了获取的变量正确性和可靠性...转载 2019-11-30 20:38:39 · 130 阅读 · 0 评论 -
java 关于锁常见面试题
1、synchronized作用于静态方法和非静态方法的区别非静态方法:给对象加锁(可以理解为给这个对象的内存上锁,注意 只是这块内存,其他同类对象都会有各自的内存锁),这时候在其他一个以上线程中执行该对象的这个同步方法(注意:是该对象)就会产生互斥静态方法: 相当于在类上加锁(*.class位于代码区,静态方法位于静态区域,这个类产生的对象公用这个静态方法,所以这块内存,N个对象来竞争...转载 2019-11-28 22:30:35 · 323 阅读 · 0 评论 -
为什么ConcurrentHashMap中的链表转红黑树的阀值是8?
红黑树插入为O(lgn),查询为O(lgn),链表插入为O(1),查询为O(n)。个数少时,插入删除成本高,用链表;个数多时,查询成本高,用红黑树。需要定一个值,比这个值大就转红黑树,比这个值小就转链表,而且要避免频繁的转换。根据泊松分布,在负载因子0.75(HashMap默认)的情况下,单个hash槽内元素个数为8的概率小于百万分之一,将7作为一个分水岭,等于7时不做转换,大于等于8才转红黑树,...原创 2019-11-13 21:49:27 · 1347 阅读 · 0 评论 -
精选 Java 面试题大放送
01Java程序是怎么执行的?我们日常的工作中都使用开发工具(IntelliJ IDEA 或 Eclipse 等)可以很方便的调试程序,或者是通过打包工具把项目打包成 jar 包或者 war 包,放入 Tomcat 等 Web 容器中就可以正常运行了,但你有没有想过 Java 程序内部是如何执行的?其实不论是在开发工具中运行还是在 Tomcat 中运行,Java 程序的执行流程基本都是相同...转载 2019-10-24 23:09:48 · 225 阅读 · 0 评论 -
2019年蚂蚁金服、头条、拼多多的面试总结
写在2019年后的蚂蚁、头条、拼多多的面试总结文章有点长,请耐心看完,绝对有收获!不想听我BB直接进入面试分享:•准备过程•蚂蚁金服面试分享•拼多多面试分享•字节跳动面试分享•总结说起来开始进行面试是年前倒数第二周,上午9点,我还在去公司的公交上,突然收到蚂蚁的面试电话,其实算不上真正的面试。面试官只是和我聊了下他们在做的事情(主要是做双十一这里大促的稳定性保障,偏中间件吧),说的很详...转载 2019-06-27 18:37:45 · 344 阅读 · 0 评论