Interview
文章平均质量分 88
恼火的面试题
Mxin5
一个正在搞数据开发和前端和运维的java开发,目前从事金融行业,热衷于分享前后端实际开发相关技术。
展开
-
【面试】项目高并发如何进行处理?如何优化?
前端优化:1对页面服务器使用集群部署,,从而分担一个服务器的压力,高并发的情况下不会都去请求一个服务器导致服务器压力过大,导致崩溃。原创 2022-07-21 23:44:48 · 2713 阅读 · 0 评论 -
【面试】使用联表查询比较慢如何进行优化?
如果查询的字段比较多,就需要对sql语句进行优化了,通过explain关键字加在慢sql前执行看是否走的索引,如果没有走索引就创建索引。原创 2022-10-26 14:23:43 · 8056 阅读 · 0 评论 -
【面试】实现分布式锁的三种方式
在单击环境下,就是只有当前JVM虚拟机A中的多个线程对同一个Object(共享资源)进行操作,可以采用同步互斥(就是只有同一时间只有一个线程对共享资源进行事务操作)的方式,我们常用的方式就是采用加锁的方式解决,虽然不能保证数据的强一致性,但是能够保证数据的最终一致性。........................原创 2022-08-07 00:23:46 · 6686 阅读 · 1 评论 -
【面试】浅学事务与分布式事务
事务隔离级别:指的是一个事务与其他事务隔离的程度事务隔离级别包含4种:读未提交(READ UNCOMMITTED):允许事务A能够读取到事务B未提交的数据(三个都可能会出现)。读提交(READ COMMITTED):事务A只能读取到事务B已经提交的数据(可能会出现不可重复读和幻读问题)。可重复读(REPEATABLE READ):事务A多次读取共享资源(数据)(例如数据库的一行数据),读取的数据的值都是一致的(可能会出现幻读)。意思就是在事务A对共享资源进行操作时,其实事务不能对共享资源进行原创 2022-08-08 16:08:41 · 1249 阅读 · 2 评论 -
【面试】浅学线程与线程池
关于线程相关的理论知识。原创 2022-08-08 18:05:38 · 1195 阅读 · 0 评论 -
【面试】浅学Synchronized、Lock、Volatile、闭锁,死锁...
内涵Synchronized、Lock、Volatile、闭锁,死锁的解释和代码举例说明。原创 2022-08-08 19:52:12 · 1697 阅读 · 1 评论 -
【面试】浅学Redis
缓存击穿:指的是Redis中一个热点Key,在高并发的情况下,这个redis的缓存时间失效,导致redis中这个热点key中大量的请求打到数据库上,导致数据库压力过大导致数据库崩了。 解决方案:加互斥锁,只能允许一个线程访问数据库,然后其他线程就可以在缓存中拿缓存穿透:用户访问的数据在Redis缓存中和数据库中都没有这样的数据,然后用户不断地使用脚本发送这个请求【数据库中的id是自增长从0开始的,没有负数】,这种数据直接穿透缓存,打到数据库上,导致数据库挂掉。...........原创 2022-08-09 00:00:27 · 1418 阅读 · 1 评论 -
【面试】数据结构+B树
有了二叉树为什么要出现多叉树?因为二叉树【每个结点最多有两个子结点】在大规模的数据存储中,树会高的没谱,这会导致IO读写过于频繁,查询效率低下多叉树【每个结点可以有多个子结点】可以解决这个问题,它每层可以存放更多的数据,因此能大幅度降低树的深度,提高查询性能.................................原创 2022-08-10 00:47:06 · 1069 阅读 · 0 评论 -
【面试】算法+二分查找+冒泡排序+位运算+sql语句+单例
什么是算法复杂度?算法复杂度分为时间复杂度和空间复杂度时间复杂度:衡量算法执行时间的长短空间复杂度:衡量算法所需的存储空间的大小【缓存以空间换时间】时间复杂度是用来度量算法执行的时间的长短,一个算法花费的时间与算法中语句的执行次数成正比例.........原创 2022-08-10 22:26:59 · 438 阅读 · 0 评论 -
【面试】浅学Spring
Spring事务失效的场景 未开启事务:@EnableTransactionManagement 注解用来启用spring事务自动管理事务的功能,这个注解千万不要忘记写了 数据库不支持事务 注解修饰的方法不是public类型的:@Transaction 可以用在类上、接口上、public方法上,如果将@Trasaction用在了非public方法上,事务将无效。 数据源未配置事务管理器【将datasource交给事务管理器处理】............原创 2022-08-13 00:46:06 · 965 阅读 · 0 评论 -
【面试】浅学JVM调优
关于JVM的相关理论知识点。原创 2022-08-13 19:33:12 · 1344 阅读 · 1 评论 -
【面试】浅学RocketMQ
RocketMQ主要包含四个角色Broker、NameServer、Consumer、Producer,为了增强Broker性能与吞吐量,Broker一般都是以集群形式出现的。各集群节点中可能存放着相同Topic的不同Queue。不过,这里有个问题,如果某Broker节点宕机,如何保证数据不丢失呢?其解决方案是,将每个Broker集群节点进行横向扩展,即将Broker节点再建为一个HA集群,解决单点问题。Broker节点【每一个服务器】集群是一个主从集群,即集群中具有Master与Slave两种角色原创 2022-08-19 16:22:38 · 2356 阅读 · 2 评论 -
【面试】SpringCloud
zuul按照执行顺序,分为pre前置过滤器,route路由过滤器【路由根据断言进行分发请求(到各个微服务进行处理)】,post后置过滤器,error异常过滤器正常流程是请求先经过前置过滤器【进行权限验证或者登录】,到达路由过滤器进行路由,路由到各种微服务执行请求,返回结果后经过后置过滤,返回用户异常流程,如果再整个过程中出现异常,都会进入error异常过滤器,处理完毕后经过post过滤器返回用户,如果error自己出现异常,最终也会通过post过滤器返回用户,如果post过滤器出现异原创 2022-08-22 00:03:31 · 3172 阅读 · 0 评论 -
【面试】浅学Java基础
java基础理论知识原创 2022-08-30 20:38:32 · 1265 阅读 · 0 评论 -
【面试】浅学Mybatis
动态sql,主要用于解决查询条件不确定的情况:在程序运行期间,根据用户提交的查询条件实现动态拼接sql语句进行查询数据。这里的条件判断使用的表达式为OGNL表达式,常用的动态sql标签有、、等if标签:条件判断where标签:判断包含节点有内容就插入 where,否则不插入foreach标签:遍历元素............原创 2022-08-28 17:05:28 · 1053 阅读 · 0 评论 -
【面试】浅学SpringMVC、SpringBoot
SpringMVC和SpringBoot相关面试题原创 2022-08-28 15:53:17 · 935 阅读 · 0 评论 -
【面试】数据库优化、索引
覆盖索引就是将需要查询的数据(列)作为索引建立普通索引(就是需要查询name字段,刚好有一个普通索引就是以name创建的),从而可以利用索引快速查询,所以sql语句就会直接通过索引进行查询就不用进行回表(数据库),所需要的字段都在索引的叶子节点上,直接返回结果即可,不用进行回表。.................................原创 2022-08-20 23:10:11 · 2219 阅读 · 1 评论 -
【面试】Java中的设计模式【我终于懂设计模式了】
代理模式:对目标对象的功能进行增强 【其实是代理对象中注入了目标对象(将目标对象的类当作自己的成员变量),然后调用目标对象的方法,再进行扩展功能】,比如说在目标对象的某个方法执行前后增加一些代码进行功能增强。这样就能够保证在不修改原本目标对象的前提下,提供额外的功能给目标对象,扩展目标对象的功能。【遵守OCP原则】** ...............原创 2022-08-11 00:50:33 · 453 阅读 · 1 评论 -
【面试】浅析集合体系
具体细节看下面这篇文章【ConcurrentHashMap如何保证线程安全的。什么是ConcurrentHashMap?_GuGuBirdXXXX的博客-CSDN博客:使用锁分段技术确保线性安全,是一种高效但是线程安全的集合。它是HashMap的线程安全,支持高并发的版本.在jdk1.7中,它是通过分段锁的方式来实现线程安全的。意思是将哈希表分成许多片段Segment,而Segment本质是一个可重入的互斥锁,所以叫做分段锁。在jdk1.8中,它是采用了CAS操作和synchronized来实现。原创 2022-08-10 22:41:10 · 330 阅读 · 0 评论 -
【面试】代理模式+动态代理+静态代理+那些使用场景?
MyBaits的Mapper接口没有实现类为什么可以用@Autowired直接注入? 使用了JDK动态代理,赋值给mapper接口的对象其实是一个代理对象,这个代理对象是由 JDK 动态代理创建的。在解析mapper的时候,mybatis会通过java反射,获取到接口所有的方法。当调用接口中方法时,将通过接口全限定名+方法名对应找到映射文件中namespace和id匹配的sql,然后进行执行sql语句。..................原创 2022-08-08 21:06:44 · 1076 阅读 · 0 评论