- 博客(32)
- 收藏
- 关注
原创 【Netty框架理解】
Redis,Zookeper,Netty,游戏服务器等其实底层就是I/O通讯程序(C/S架构)Client与Server之间进行IO通讯。
2024-04-18 15:48:06
901
原创 【java八股】
Redis全称(Remote Dictionary Server):本质上是一个Key-Value类型的内存数据库,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。使用场景:常用于缓存用户信息,因为字符串的操作是原子的,可以避免多线程同时修改同一个用户信息导致数据不一致的问题。2、list: 可以重复的集合。
2024-03-20 17:47:11
1323
原创 【 小米-暑期实习-面经】
1、B+ 树的非叶子节点不存放实际的记录数据,仅存放索引,因此数据量相同的情况下,相比存储即存索引又存记录的 B 树,B+树的非叶子节点可以存放更多的索引,因此 B+ 树可以比 B 树更「矮胖」,查询底层节点的磁盘 I/O次数会更少。2、B+ 树有大量的冗余节点(所有非叶子节点都是冗余索引),这些冗余索引让 B+ 树在插入、删除的效率都更高,比如删除根节点的时候,不会像 B 树那样会发生复杂的树的变化;在运行时,创建目标对象的代理对象,并对目标对象中的方法进行功能性增强的一种技术,AOP就是基于这种思想。
2024-03-13 14:30:16
1648
原创 【描述一下Spring 的事务管理 】
Transactional**可以加在类和方法上,但是无论是添加在类上还是方法上,Spring都要为这个类创建代理。来达到在方法执行前能开启事务。方法执行后提交事务的效果,是AOP的一种体现。降低用代码进行事务管理的复杂度。需要做的就是添加**@Transactional。这里的事务是狭义概念的数据库事务。
2023-11-29 19:30:07
386
原创 【Spring是如何解决循环依赖】
3,当创建 A的原始对象后,并把它包装成工厂对象放到三级缓存中,接下来就该填充对象属性了,这时候发现依赖了B,接着就又去创建B,同样的流程,创建完B填充属性时又发现它依赖了A又是同样的流程,不同的是:这时候可以在三级缓存中查到刚放进去的原始对象A(放入二级缓存,并从三级缓存中移除)。所以不需要继续创建,用它注入 B,完成 B的创建,既然 B创建好了,所以 A就可以完成填充属性的步骤了,接着执行剩下的逻辑,闭环完成。2,每次创建 bean之前,我们都会从缓存中查下有没有该bean,因为是单例,只能有一个。
2023-11-29 19:07:18
343
原创 【谈谈你对Spring的理解】
传统的 java 开发模式中,当需要一个对象时,我们会自己使用 new 调用构造方法创建一个对象。而在 spring 开发模式中,spring 容器使用了工厂模式为我们创建了所需要的对象,不需要我们自己创建了,直接调用spring 提供的对象就可以了,这是控制反转的思想。,在面向对象编程(OOP)思想中,我们将事物纵向抽成一个个的对象。,依赖注入是指在 Spring IOC 容器创建对象的过程中,将所依赖的对象通过配置进行注入。Spring是一个开源,IOC和AOP框架,是为简化企业级应用开发而生的。
2023-11-29 16:21:32
530
原创 【SpringMVC中如何返回JSON数据】
3、通过在请求处理方法上使用@ResponseBody注解,对Handler方法返回的结果进行转换。2、在请求处理的方法中将返回值改为具体返回的数据类型,例如数据的集合类List等。1、在项目中加入json转换的依赖,例如jackson。
2023-11-29 15:57:36
334
原创 【volatile与synchronized关键字】
是JAVA提供的,保证了共享变量的可见性;被volatile关键字修饰的变量,如果值发生了变化,其他线程立即可见,避免出现脏读现象。
2023-11-29 15:39:41
396
1
原创 【SpringMVC 的工作流程】
3.HandlerMapping 根据请求的url找到具体的处理器,生成处理器对象和处理器拦截器(如果有则生成),返回处理器执行链给DispatcherServlet。2.DispatcherServlet 收到请求后,调用HandlerMapping处理器映射器,请求后去Handler(即方法)。7.HandlerAdaper将Handler执行结果ModelAndView返回给DispatcherServlet;4.DispatcherServlet 调用HandlerAdapter处理器适配器;
2023-11-29 15:10:19
405
1
原创 【Java注解与反射】
学习获取类的信息、操作他们1、反射第一步:加载类,获取类的字节码:Class对象2、获取类的构造器:Constructor对象3、获取类的成员变量:Field对象4、获取类的成员方法:Method 对象首先得获取class对象初始化对象返回获取成员变量的作用:反射的基本作用?
2023-11-25 21:44:36
397
原创 【Redis】
主从切换技术的方法:当主服务器宕机后,需要手动把一台服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多的时候,我们优先考虑哨兵模式。Redis从2.8开始正式提供了Sentinel(哨兵)架构来解决这个问题。谋权篡位的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库。
2023-11-14 15:12:29
52
1
原创 【HashMap】
HashMapjdk8.0以后可以是红黑树单链表长度大于8时会变成红黑树,单链表长度小于6时,又会变成单链表链地址法除留余数法直接用hashCode取余,高位的数起不到作用,所有利用异或高16位来增加多样性
2023-11-09 12:49:09
42
原创 【软考---11.面向对象技术】
软考—11.面向对象技术一、基本概念二、设计原则三、设计模式的概念与分类四、创建型模式五、结构型模式六、行为型模式七、Java程序设计
2023-10-01 15:31:32
59
原创 【软考---8.软件工程基础知识】
软考—8.软件工程基础知识一、软件工程概述二、软件开发模型三、软件开发方法四、需求分析五、系统设计六、系统测试七、软件开发项目管理八、软件质量九、软件度量
2023-09-28 13:29:29
77
1
原创 【软考---7.程序设计语言基础】
软考—7.程序设计语言基础一、基本概念二、编译与解释三、文法四、有限自动机(会做题)五、正规式六、表达式七、传值和引用(传址)八、各种程序语言特点
2023-09-27 14:18:30
52
1
原创 【软考---5.计算机网络基础】
软考—5.计算机网络基础一、计算机网络的分类二、七层网络体系结构三、网络的设备四、TCP/IP协议族五、IP地址和IPv6简介六、Internet服务
2023-09-19 17:00:36
63
原创 【软考---3.算法设计与分析】
软考—3.算法设计与分析一、分治法递归例题二、动态规划法整体最优(区别贪心法)例题三、贪心法(局部最优)四、回溯法(深度优先搜索法)排序----评价指标
2023-09-15 15:02:34
43
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人