Mxin5
贫居闹市无人问,富在深山有远亲。
展开
-
【五斗米】场景题
你也可以使用 Java 8 的 Stream API 来过滤掉不符合条件的元素,然后将结果收集到一个新的集合中。方法,可以根据给定的谓词(Predicate)删除集合中的元素。的子接口,提供了双向遍历列表的能力。它同样可以用于删除元素。循环来删除元素,但这种方法在遍历集合时删除元素会导致。方法,可以在遍历集合时安全地删除元素。是一种常见的方法,特别是在处理。因此,通常不推荐使用这种方法。从 Java 8 开始,原创 2024-11-30 21:31:47 · 200 阅读 · 0 评论 -
【五斗米】SpringCloud
zuul按照执行顺序,分为pre前置过滤器,route路由过滤器【路由根据断言进行分发请求(到各个微服务进行处理)】,post后置过滤器,error异常过滤器正常流程是请求先经过前置过滤器【进行权限验证或者登录】,到达路由过滤器进行路由,路由到各种微服务执行请求,返回结果后经过后置过滤,返回用户异常流程,如果再整个过程中出现异常,都会进入error异常过滤器,处理完毕后经过post过滤器返回用户,如果error自己出现异常,最终也会通过post过滤器返回用户,如果post过滤器出现异原创 2022-08-22 00:03:31 · 3742 阅读 · 0 评论 -
【五斗米】项目高并发如何进行处理?如何优化?
2.数据库优化避免使用select *创建索引分库分表,根据业务模块进行分库(数据库部署在不同的服务器上),根据业务需求进行分表(垂直分表和水平分表)。读写分离,将读操作和写操作进行分离,采用主从复制的方式,主节点用于写操作,从节点用于读操作。原创 2022-07-21 23:44:48 · 3017 阅读 · 0 评论 -
【五斗米】使用联表查询比较慢如何进行优化?
如果查询的字段比较多,就需要对sql语句进行优化了,通过explain关键字加在慢sql前执行看是否走的索引,如果没有走索引就创建索引。原创 2022-10-26 14:23:43 · 9277 阅读 · 0 评论 -
【五斗米】实现分布式锁的三种方式
在单击环境下,就是只有当前JVM虚拟机A中的多个线程对同一个Object(共享资源)进行操作,可以采用同步互斥(就是只有同一时间只有一个线程对共享资源进行事务操作)的方式,我们常用的方式就是采用加锁的方式解决,虽然不能保证数据的强一致性,但是能够保证数据的最终一致性。........................原创 2022-08-07 00:23:46 · 9274 阅读 · 1 评论 -
【五斗米】浅学事务与分布式事务
事务就是操作数据库的最小执行单元一个事务内的操作要么全部成功,要么全部失败,保证数据的一致性。是事务隔离级别无锁的实现方式用于提高事务并发性能。它通过为每个事务创建一个数据的快照,每条数据都有一个版本号,对数据进行修改时都会生成一个新的版本,而不是进行覆盖。实现读写分离,读取的数据都是快照中的数据,写(修改)的数据只会生成新的数据版本,从而多个事务可以同时读取和写入数据,互不影响。原创 2022-08-08 16:08:41 · 1414 阅读 · 1 评论 -
【五斗米】浅学线程与线程池
若为多继承,当多个父类中有重复的属性和方法时,子类的调用结果会含糊不清因此采用单继承。为什么是多实现呢?实现接口就是拓展类的功能,就算接口中有重复的方法也没有关系,因为实现接口,就必须重写接口中的方法。sleep()和 wait()的区别?1.sleep()方法是Thread(线程)类的静态方法。wait()方法是Object类的实例方法任何实例都能调用。2.sleep()方法不会释放锁,使线程进入TIMED_WAITING状态,线程休眠指定时间后自动唤醒。wait()方法。原创 2022-08-08 18:05:38 · 1426 阅读 · 0 评论 -
【五斗米】锁
内涵Synchronized、Lock、Volatile、闭锁,死锁的解释和代码举例说明。原创 2022-08-08 19:52:12 · 1872 阅读 · 0 评论 -
【五斗米】Redis
缓存击穿:指的是Redis中一个热点Key,在高并发的情况下,这个redis的缓存时间失效,导致redis中这个热点key中大量的请求打到数据库上,导致数据库压力过大导致数据库崩了。 解决方案:加互斥锁,只能允许一个线程访问数据库,然后其他线程就可以在缓存中拿缓存穿透:用户访问的数据在Redis缓存中和数据库中都没有这样的数据,然后用户不断地使用脚本发送这个请求【数据库中的id是自增长从0开始的,没有负数】,这种数据直接穿透缓存,打到数据库上,导致数据库挂掉。...........原创 2022-08-09 00:00:27 · 1663 阅读 · 1 评论 -
【五斗米】数据结构+B树
有了二叉树为什么要出现多叉树?因为二叉树【每个结点最多有两个子结点】在大规模的数据存储中,树会高的没谱,这会导致IO读写过于频繁,查询效率低下多叉树【每个结点可以有多个子结点】可以解决这个问题,它每层可以存放更多的数据,因此能大幅度降低树的深度,提高查询性能.................................原创 2022-08-10 00:47:06 · 1242 阅读 · 0 评论 -
【面试】算法+二分查找+冒泡排序+位运算+sql语句+单例
什么是算法复杂度?算法复杂度分为时间复杂度和空间复杂度时间复杂度:衡量算法执行时间的长短空间复杂度:衡量算法所需的存储空间的大小【缓存以空间换时间】时间复杂度是用来度量算法执行的时间的长短,一个算法花费的时间与算法中语句的执行次数成正比例.........原创 2022-08-10 22:26:59 · 529 阅读 · 0 评论 -
【五斗米】Spring
Spring是一个开源的轻量级的以控制反转(IOC-Inversion Of Control,DI依赖注入是实现)和面向切面编程(Aop-Aspect-oriented programming)为核心的容器框架。使得Java开发更加简单和高效。循环依赖:指的是两个或多个对象之间相互持有对象作为依赖,形成一个循环依赖的关系。举例:比如A类中有B属性(成员变量),B类中有A属性,原创 2022-08-13 00:46:06 · 1123 阅读 · 0 评论 -
【五斗米】JVM调优
关于JVM的相关理论知识点。原创 2022-08-13 19:33:12 · 1669 阅读 · 1 评论 -
【五斗米】RocketMQ
RocketMQ主要包含四个角色Broker、NameServer、Consumer、Producer,为了增强Broker性能与吞吐量,Broker一般都是以集群形式出现的。各集群节点中可能存放着相同Topic的不同Queue。不过,这里有个问题,如果某Broker节点宕机,如何保证数据不丢失呢?其解决方案是,将每个Broker集群节点进行横向扩展,即将Broker节点再建为一个HA集群,解决单点问题。Broker节点【每一个服务器】集群是一个主从集群,即集群中具有Master与Slave两种角色原创 2022-08-19 16:22:38 · 2829 阅读 · 2 评论 -
【五斗米】Java基础
抽象是指将对象的公共特征抽象出来,定义成一个概念和模板而非具体实例(如果一个方法必须子类进行重写,那么就可以用abstract进行修饰。。使得设计更加具有通用性和可扩展性。抽象可以通过抽象类和接口来实现。原创 2022-08-30 20:38:32 · 1446 阅读 · 0 评论 -
【五斗米】Mybatis
动态sql,主要用于解决查询条件不确定的情况:在程序运行期间,根据用户提交的查询条件实现动态拼接sql语句进行查询数据。这里的条件判断使用的表达式为OGNL表达式,常用的动态sql标签有、、等if标签:条件判断where标签:判断包含节点有内容就插入 where,否则不插入foreach标签:遍历元素............原创 2022-08-28 17:05:28 · 1400 阅读 · 0 评论 -
【五斗米】SpringMVC、SpringBoot
SpringMVC和SpringBoot相关面试题原创 2022-08-28 15:53:17 · 1072 阅读 · 0 评论 -
【五斗米】数据库优化、索引
索引就是用来帮助我们快速查询数据的一种数据结构,能够快速定位和访问数据而不需要查询整个表,提高了查询效率。索引又包含了 单列索引、复合索引、唯一索引、主键索引、全文索引、覆盖索引等。根据业务模块进行分库,降低一个数据库的压力。如果某个业务数据库的压力过大,可以采用读写分离。主服务器用作写入操作,从服务器用作读取操作。如果单表数据量很大,这时候可以选择分区表和分表。分区表的规则包括范围分区 列表分区 散列分区 复合分区,分表可以分为垂直分表(按照字段使用频率)和水平分表(按照条数)。原创 2022-08-20 23:10:11 · 3353 阅读 · 0 评论 -
什么是ConcurrentHashMap?
ConcurrentHashMap默认将数组分为16个桶,诸如get、put、remove等常用操作只锁住当前需要用到的桶。这样,原来只能一个线程进入,现在却能同时有16个写线程执行,并发性能的提升是显而易见的【锁的粒度更小】 JDK1.8使用的红黑树结构优化了之前的链表结构,当数据量比较大的时候,查询效率就得到了很大的提升,时JDK1.8使用的红黑树结构优化了之前的链表结构,当数据量比较大的时候,查询效率就得到了很大的提升,时间复杂度从之前的O(n)优化到了O(logn)......原创 2022-08-11 22:35:58 · 1815 阅读 · 0 评论 -
【面试】Java中的设计模式【我终于懂设计模式了】
代理模式:对目标对象的功能进行增强 【其实是代理对象中注入了目标对象(将目标对象的类当作自己的成员变量),然后调用目标对象的方法,再进行扩展功能】,比如说在目标对象的某个方法执行前后增加一些代码进行功能增强。这样就能够保证在不修改原本目标对象的前提下,提供额外的功能给目标对象,扩展目标对象的功能。【遵守OCP原则】** ...............原创 2022-08-11 00:50:33 · 588 阅读 · 1 评论 -
【五斗米】浅析集合体系
具体细节看下面这篇文章【ConcurrentHashMap如何保证线程安全的。什么是ConcurrentHashMap?_GuGuBirdXXXX的博客-CSDN博客:使用锁分段技术确保线性安全,是一种高效但是线程安全的集合。它是HashMap的线程安全,支持高并发的版本.在jdk1.7中,它是通过分段锁的方式来实现线程安全的。意思是将哈希表分成许多片段Segment,而Segment本质是一个可重入的互斥锁,所以叫做分段锁。在jdk1.8中,它是采用了CAS操作和synchronized来实现。原创 2022-08-10 22:41:10 · 435 阅读 · 0 评论