jakiechaipush
小白进化中
展开
-
URI和URL的区别?
URI(Uniform Resource Identifier,统一资源标识符)和URL(Uniform Resource Locator,统一资源定位符)都是网络上用来识别和定位资源的标准方式,但它们之间存在一些差异。URI 可以包含方案名称(scheme),路径(path)和可选的片段(fragment)或查询(query)组件。它主要是标准的方式来标识一个资源,但不提供资源的位置信息。URL 是一种特殊类型的URI,它不仅标识资源,还提供了找到该资源的方法。它指出了资源存在的位置和访问资源的机制。原创 2024-04-13 10:56:04 · 165 阅读 · 0 评论 -
Spring源码复习之AnnotatedBeanDefinitionReader
AnnotatedBeanDefinitionReader是一个用于读取和解析带有注解的Bean定义的类,它主要用于基于注解的配置方式,允许开发者将Java类标记为Spring组件,从而让Spring容器自动扫描和注册这些组件,而不需要显式配置这些组件的Bean定义。创建一个 DefaultListableBeanFactory 容器和关联的 AnnotatedBeanDefinitionReader,手动注册一个 MyBean 类为 Spring Bean,然后获取和打印该 Bean 的实例。原创 2024-04-13 10:23:04 · 56 阅读 · 0 评论 -
Spring源码复习之XmlBeanDefinitionReader
XmlBeanDefinitionReader是Spring Framework中的一个类,用于加载和解析XML格式的Bean定义配置文件,将配置文件中定义的Bean元数据信息提取为Spring容器内部的Bean定义对象,进而实现IOC容器的构建和管理。首先创建了一个Spring容器(DefaultListableBeanFactory),然后使用XmlBeanDefinitionReader来加载和解析名为"beans.xml"的XML配置文件,将其中定义的Bean元数据信息注册到容器中。原创 2024-04-13 10:02:34 · 228 阅读 · 0 评论 -
Spring源码复习之BeanDefinitionRegistry
我们使用Spring的DefaultListableBeanFactory和BeanDefinitionRegistry接口来注册、管理和操作Bean定义的过程,包括创建Bean定义、注册到容器、获取、检查是否存在、获取所有定义的名称和数量、检查名称是否已使用,以及移除Bean定义。Bean定义是描述Spring容器中的对象(Bean)的元数据,包括Bean的类名、依赖关系、作用域等信息。运行结果发现,我们的各种操作已成功执行,包括注册、查询、操作和移除Bean定义。获取Bean定义信息。原创 2024-04-13 09:25:36 · 41 阅读 · 0 评论 -
Spring源码复习之BeanDefinitionHolder
BeanDefinitionHolder 主要用于持有一个 BeanDefinition 对象,它包含有关 Bean 的元数据信息,如类名、作用域、属性、初始化方法等。除了 BeanDefinition 和名称,BeanDefinitionHolder 还可以包含其他元数据,如 BeanDefinition 的原始来源(通常是一个 Resource 对象)以及 BeanDefinition 的描述信息。随后,使用容器的 getBean 方法来检索这些 Bean,验证它们的正确注册和别名的设置。原创 2024-04-13 09:08:15 · 43 阅读 · 0 评论 -
Spring源码复习之BeanDefinition理解
BeanDefinition 是 Spring 框架中的关键构建块,它是一种配置元数据,用于详细描述和定义应用程序中的 Bean 对象,包括 Bean 的类名、作用域、依赖关系、构造函数参数、属性值、初始化方法、销毁方法等信息,从而允许 Spring 容器准确地实例化、配置和管理这些 Bean。BeanDefinition中定义来很多属性来描述一个bean的定义信息,包括bean的作用域是单例还是原型,bean的类型(对应的类的类型),是否是懒加载的bean,bean的初始化方法和销毁方法等。原创 2024-04-13 08:43:21 · 35 阅读 · 0 评论 -
一文解决集合框架源码(一)
文章目录1. 集合框架结构2. Iterable接口3. Conllection接口4. List接口5. Set接口6. Queue接口7. Deque接口8. ArrayList类9. Vector类10. Stack类11. LinkedList类12. HashSet类13. LinkedHashSet类14. SortedSet接口15. NavigableSet接口16. TreeSet类17. ArrayDeque18. PriorityQueue19. Map接口20. HashMap(重点原创 2024-04-09 11:17:50 · 67 阅读 · 0 评论 -
java的Class文件分析
Java有一个著名的口号一次编译,处处运行,这就凸显出来Java程序的一个特点平台无关性。Java的平台无关性是基于各种不同平台的Java虚拟机,以及所有平台都统一支持的程序存储格式—字节码实现的。在Java中任何一个Class文件都对应一个类或接口的定义信息。Class文件是以一组8个字节为单位的二进制流,各个数据项目严格按照顺序紧凑地排列在文件中,中间没有添加任何分隔符,当遇到需要占用8个字节以上空间的数据项时,会按照高位在前的方式分割成若干个8个字节进行存储。原创 2024-04-01 12:36:36 · 41 阅读 · 0 评论 -
JavaNIO的Buffer详解
Buffer缓冲区实际上就是一个数组,把数组的内容和信息包装成一个Buffer对象,它提供了一组访问这些信息的方法。原创 2024-03-29 09:38:15 · 51 阅读 · 0 评论 -
JAVA的NIO和BIO底层原理分析
IO,即Input/Output,指的是输入和输出。在计算机科学中,IO描述的是数据在内部存储器和外部存储器或其他周边设备之间的流动过程,既包括数据从外部复制到内存(输入),也包括数据从内存复制到外部(输出)。IO是计算机与外界交互的过程,涉及到的对象可以是人或其他设备,如文件、管道、网络、命令行、信号等,更广义地讲,I/O指代任何操作系统理解为“文件”的事务。此外,IO也是操作系统中的一个核心概念,在各种系统中都有重要地位,例如在本机、传统的单体应用、分布式系统中。原创 2024-03-28 14:31:28 · 693 阅读 · 0 评论 -
Mysql的Cardinality值
满足上面条件后Cardinality就可以更新,其更新策略采用的是采样法,每次获取8个叶子结点,统计每个页不同记录的数目,然后根据采样的信息估计出Cardinality(这也说明了一个事实,重复获取Cardinality值结果可能不一样)。Cardinality值是Mysql做索引优化时一个非常关键的值,优化器会根据这个值来判断是否使用这个索引,它表示索引中唯一值的数目估计值,该值应该尽可能接近1,如果非常小,则用户需要考虑是否删除该列索引。但注意,这个值并不是准确的,它只是一个大概的值。原创 2024-03-08 21:36:28 · 653 阅读 · 0 评论 -
OAuth2常见面试题
答案:OAuth2 适合在需要授权第三方应用程序访问用户资源、实现安全的 API 访问控制以及需要单点登录和用户身份验证的情况下使用。答案:隐式授权模式是 OAuth2 中简化的授权模式,适用于无法安全保存客户端凭据的情况(如前端应用)。答案:JWT 是一种开放标准的身份验证和授权令牌格式,通常用作 OAuth2 的访问令牌。答案:OAuth2 是一个开放标准的授权协议,用于授权第三方应用程序访问用户资源,而无需将用户的凭据(例如用户名和密码)直接提供给第三方应用程序。原创 2024-03-05 09:53:34 · 390 阅读 · 0 评论