Spring全家桶
未读
浅析Spring中AOP的实现原理——动态代理
本文深入解析了Spring框架中AOP的实现原理,重点探讨了动态代理的应用。文章首先介绍了Spring AOP的实现原理,通过JDK动态代理和CGLib动态代理两种方式,详细阐述了各自的原理、优缺点及适用场景。接着,通过代码示例验证了Spring在类实现接口时使用JDK动态代理,在类没有实现接口时使用CGLib动态代理。最后,文章还介绍了如何通过配置强制Spring使用CGLib进行AOP代理。
Spring全家桶
未读
Autowried和Resource注解总结
本文深入探讨了Spring框架中的`@Autowired`和`@Resource`注解,分析了它们在依赖注入(DI)中的使用方法、区别以及解决冲突的策略。`@Autowired`默认按类型注入,支持多种注入方式,并推荐使用构造方法注入;而`@Resource`则默认按名称注入,更适合需要明确指定资源名称的场景。两者在解决依赖注入冲突方面各有特点,`@Autowired`通过`@Qualifier`和`@Primary`注解,而`@Resource`则通过显式指定名称或字段名/方法名作为Bean名称。在Spring应用中,`@Autowired`是首选,而在需要跨框架移植或明确指定资源名称时,`@Resource`可能更合适。
Java文件与IO
未读
Java NIO 比传统 IO 强在哪里?
本文深入探讨了Java NIO与传统IO的差异,主要论点包括:NIO通过非阻塞I/O和多路复用,提高了网络传输的性能和可伸缩性;在文件操作方面,NIO的通道和缓冲区机制相比传统IO的字节流或字符流并没有显著优势;零拷贝技术进一步提升了NIO的性能。文章通过实际测试验证了NIO在处理大量并发连接时比传统IO更高效,特别是在网络传输场景中。
Java集合框架
未读
Java函数式编程
本文探讨了Java函数式编程,重点介绍了函数对象、闭包、柯里化、高阶函数等概念。文章首先阐述了合格函数的定义,并通过实例说明了函数与方法的区别。接着,介绍了函数对象的表现形式,包括lambda表达式和方法引用,并详细讲解了其语法和用法。随后,文章深入探讨了闭包和柯里化的概念,并展示了其在实际应用中的优势。此外,文章还介绍了高阶函数的概念,并通过实例展示了其如何简化代码并提高可读性。最后,文章对Stream流API进行了详细讲解,包括其基本操作、合并与截取、生成流、查找与判断、去重和排序、化简、收集、基本流和特性等内容,并展示了如何使用并行流来提高程序性能。
Java重要知识
未读
Java网络编程的基础:计算机网络
Java文件与IO
未读
Java 转换流:Java 字节流和字符流的桥梁
本文介绍了Java中的转换流,即InputStreamReader和OutputStreamWriter,它们是字节流和字符流之间的桥梁,用于处理文本数据。文章首先阐述了编码和解码的概念,并举例说明了ASCII、Unicode、Base64等编码方式。接着,详细介绍了常见的字符集,如ASCII、Unicode和GBK,以及它们的编码方式。然后,通过实例说明了乱码问题的产生及解决方法。最后,重点讲解了InputStreamReader和OutputStreamWriter的构造方法和常用方法,并强调了在转换流中使用正确的字符集编码方式的重要性。
Java文件与IO
未读
Java 序列流:Java 对象的序列化和反序列化
本文介绍了Java对象的序列化和反序列化机制,重点阐述了ObjectOutputStream和ObjectInputStream的使用方法。文章指出,Java对象的序列化需要实现Serializable接口,并通过ObjectOutputStream将对象序列化到文件或网络流中,而ObjectInputStream则用于反序列化字节流为对象。此外,文章还介绍了Kryo库,它提供了一种高性能的序列化解决方案,以克服JDK序列化机制的局限性。
Java文件与IO
未读
Java 字符流:Reader和Writer的故事