- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 Java面试题020:一文深入了解微服务之负载均衡Feign
使用Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成了一套模板化的调用方法。实际开发中,往往一个接口会被多处调用,通常会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。Feign在此基础上做了进一步封装,由他来定义和实现依赖服务接口的定义。我们只需创建一个接口并使用注解的方式来配置它(以前是Dao接口上标注Mapper注解,现在是一个微服务接口上面标注一个Feign注解即可),
2025-06-12 14:50:27
399
原创 Java面试题019:一文深入了解微服务之负载均衡Ribbon
Ribbon是Netflix下的负载均衡项目,它在集群中为各个客户端的通信提供了支持,主要实现中间层应用层析的负载均衡。负载均衡器,可支持插拔式的负载均衡规则。对多种协议提供支持,例如HTTP、TCP、UDP。集成了负载均衡功能的客户端。Spring Cloud将Ribbon的API进行了封装,使用者可以使用封装后的API来实现负载均衡,也可以直接使用Ribbon的原生API。ribbon-core:项目核心,包括负载均衡器接口定义、客户端接口定义、内置的负载均衡实现等API。
2025-06-11 17:33:26
1210
原创 Java面试题015:一文深入了解微服务之熔断器Hystrix
Hystrix是由Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。Hystrix主 要通过以下几点实现延迟和容错。(1)包裹请求:使用@HystrixCommand包裹对依赖服务的调用逻辑。(2)跳闸机制:当某服务的错误率超过一定的阈值时,Hystrix可以跳闸,停止请求该服务一段时间。(3)资源隔离:Hystrix为每个依赖都维护了一个小型的线程池(舱壁模式)(或者信号量)。
2025-06-08 13:43:54
516
原创 Java面试题014:一文深入了解微服务之服务注册中心zookeeper
Zookeeper最早起源于雅虎研究院的一个研究小组,雅虎的开发人员就试图开发一个通用的无单点问题的分布式协调框架,以便让开发人员将精力集中在处理业务逻辑上。在立项初期,考虑到之前雅虎内部很多项目都是使用动物的名字来命名的,时任研究院的首席科学家RaghuRamakrishnan开玩笑地说:“在这样下去,我们这儿就变成动物园了!”,动物园管理员-Zookeeper的名字也就由此诞生。
2025-06-08 10:12:37
598
原创 Java面试题013:一文深入了解微服务之服务注册中心Nacos
ORM里面还有Hibernate和Mybatis-plus没介绍,后边再补上。还是先把知识体系的主干先建立起来,从这节开始我们进入微服务结构的整理,微服务的组件比较多,我们尽量都涵盖到,对于一些已经过时或者停更的组件,就简单一带而过,满足面试需要就足够了,把更多的时间放在实用的组件上。
2025-06-07 23:33:03
389
原创 Java面试题012:一文深入了解Mybatis原理2
目前比较流行的MyBatis分页插件是PageHelper,其基于拦截器的原理,在拦截器中实现了分页查询的逻辑,并提供了丰富的配置选项和API,可以方便地实现各种复杂的分页查询需求。预编译之后的 sql 多数情况下可以直接执行,DBMS 不需要再次编译,越复杂的sql,编译的复杂度将越大,预编译阶段可以合并多次操作为一个操作。2.MyBatis可以使用SQL语句中的LIMIT关键字实现简单的分页,但是对于大数据量的分页查询,需要使用更高效的方法。${} 是拼接符,字符串替换,没有预编译处理。
2025-06-07 13:49:37
27
原创 Java面试题011:一文深入了解Mybatis原理
从这节开始,我们先用2-3节的时间把ORM相关的内容整理一下,让大家先对ORM有一个深入的熟悉,方便我们后续的微服务和数据库相关章节的理解学习。1、ORM概念ORM(Object Relational Mapping),对象关系映射,是⼀种为了解决关系型数据库数据与简单Java对象(POJO)的映射关系的技术。简单来说,ORM是通过使⽤描述对象和数据库之间映射的元数据,将程序中的对象⾃动持久化到关系型数据库中。ORM技术特点:1.提高了开发效率。
2025-06-06 21:50:17
21
原创 Java面试题010:一文深入了解Springboot原理
至此,@EnableAutoConfiguration自动配置就是:从classpath中搜寻所有的META-INF/spring.factories配置文件,并将其中org.springframework.boot.autoconfigure.EnableutoConfiguration对应的配置项通过反射(Java Refletion)实例化为对应的标注了@Configuration的JavaConfig形式的IoC容器配置类,然后汇总为一个列表并加载到IoC容器。使用 Maven 打包该项目A。
2025-06-04 15:47:43
299
原创 Java面试题009:一文深入了解Spring MVC原理
HandlerAdapter:处理器适配器,Handler 执行业务方法之前,需要进行一系列的操作,包括表单数据的验证、数据类型的转换、将表单数据封装到 JavaBean 等,这些操作都是由 HandlerApater 来完成,开发者只需将注意力集中业务逻辑的处理理上,DispatcherServlet 通过 HandlerAdapter 执行不同的 Handler。DispatcherServlet:前置控制器,是整个流程控制的核心,控制其他组件的执行,进行统一调度,降低组件之间的耦合性,相当于总指挥。
2025-06-03 21:41:38
23
原创 Java面试题008:一文深入了解Spring原理--AOP和常用注解
AOP(Aspect Oriented Programming),即面向切面编程,可以说是 OOP(ObjectOrientedProgramming,面向对象编程)的补充和完善。OOP引 入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过OOP 允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能。
2025-06-03 11:34:22
22
原创 Java面试题007:一文深入了解Spring原理--IOC
这一节出的比较慢,主要是对比了网上大量的文章和源码,网上的文章有很多过时、存在歧义、甚至错误的说法。框架:Spring 实现了简单的组件的配合组成一个复杂的应用(应用对象被声明式地组合,典型地是在一个XML文件里),在IOC和AOP基础上可以整合各种的企业应用的开源框架和优秀的第三方类库。Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化 Bean,装配好 Bean 之间的依赖关系,为上层应用提供准备就绪的运行环境。
2025-06-02 09:17:09
788
原创 Java面试题006:一文深入了解多线程并发---锁机制
java当中的锁是在多线程环境下为保证共享资源健康、线程安全的一种手段。线程操作某个共享资源之前,先对资源加一层锁,保证操作期间没有其他线程访问资源,当操作完成后,再释放锁。锁的大分类,有两种:悲观锁、乐观锁。1、乐观锁乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,使用版本号机制或 CAS 算法。Java没有提供可直接使用的乐观锁。
2025-06-02 09:12:56
589
原创 Java面试题005:一文深入了解多线程并发---线程池
线程池会返回一个 Future 类型的对象,通过这个Future 对象可以判断任务是否执行成功,并且可以通过 Future 的 get() 方法来获取返回值,get() 方法会阻塞当前线程直到任务完成,而使用 get(long timeout,TimeUnit unit) 方法则会阻塞当前线程一段时间后立即返回,这时候有可能任务没有执行完。线程的创建和销毁都需要映射到操作系统,因此其代价是比较高的,如果任务来了才创建线程那么响应时间会变长,出于避免频繁创建、销毁线程以及快速响应的需要,线程池应运而生。
2025-06-01 10:32:05
428
原创 Java面试题004:一文深入了解多线程并发---线程
至于为什么用公众号去写,而不是用CSDN,这个问题其实是我自己的一个习惯使然。平常上下班路上或者在某个场合等待之余,会有刷手机的习惯。公众号的文章就比CSDN要方便了许多,尤其是许多小伙伴去面试的路上或者等待面试的时候,可以拿出手机再看一遍。1、线程进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。线程是指进程中的一个执行流程,一个进程中可以运行多个线程。
2025-06-01 10:19:56
579
原创 Java面试题003:一文深入了解JAVA集合
欢迎大家关注我的微信公众号:吾城十二楼,文章是从公众号直接复制粘贴过来的,排版不太美观。10、JAVA集合集合相关类和接⼝都在java.util中,主要分为3种:List(列表)、Map(映射)、Set(集)。其中 Collection 是集合 List 、 Set 的⽗接⼝,它主要有两个⼦接⼝:List :存储的元素有序,可重复。Set :存储的元素⽆序,不可重复。Map 是另外的接⼝,是键值对映射结构的集合。1、List。
2025-06-01 10:13:45
585
原创 Java面试题002:一文深入了解JAVA异常的方方面面
class MyException extends Exception { // 创建自定义异常类 String message;// 定义String类型变量 public MyException(String ErrorMessagr) { // 父类方法 message = ErrorMessagr;public String getMessage() { // 覆盖getMessage()方法 return message;}}欢迎关注我的微信公众号:吾城十二楼。
2025-06-01 10:06:09
448
原创 Java面试题001:java基础
最近看着团队里小伙伴找工作很焦虑,现在的市场行情不好,人员饱和程度高,每年不断有新人加入,他们成本低,好培养,相对来说,工作三四年甚至七八年的人,找起工作来就比较吃力。随着央国企开始过紧日子,企业的岗位需求也越来越少,一个中高级岗位会有几百上千人来竞争,面试官的要求越来越挑剔,既要精通还要广泛全面的技术储备。结合这几年带团队做项目和面试与被面试的经历,想整理一份全面深入的面试题,分享给大家的同时,也让自己的知识体系延伸加深。
2025-06-01 09:54:54
870
原创 通过数据泵expdp、impdp方式备份与还原
既然是因为是“默认”的永久表空间不可以删除,我们仅需将默认的永久表空间指定到其他表空间,然后USERS表空间便可以被顺利删除。创建备份逻辑目录,此目录不是真实的目录(单引号里面的内容是备份的目录,可以先查看一下所有的目录:select * from dba_directories;注:remap_schema=WMSDBA:WMSDBA表示把左边的WMSDBA用户的数据,导入到右边的WMSDBA用户里面。创建还原目录(单引号里面的内容是导入的目录,与前面创建的目录相同)1)查询数据库系统的默认永久表空间。
2023-05-24 11:21:06
3022
1
反编译工具
2017-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人