☕Java后端开发

3 篇文章
泛型

泛型

Java泛型是一种类型参数化技术,通过在类、接口或方法定义时使用类型占位符(如T、E),在使用时再指定具体类型,从而在编译期实现类型安全并消除强制类型转换,提升代码的通用性与可读性。泛型通配符`?`用于解决泛型类型不兼容的问题,可配合`extends`和`super`实现上下界限定,其中`<? extends T>`设定类型上限、支持只读操作,`<? super T>`设定类型下限、支持写入操作。泛型的底层实现是类型擦除,编译时会将泛型占位符替换为其上限类型(默认Object)并自动插入强制类型转换,运行时JVM无法感知泛型。泛型占位符(如E用于集合元素、T用于通用类型)与通配符有本质区别,前者用于定义,后者用于使用时的类型约束。

IO流详解:如何轻松理解输入流和输出流

IO流详解:如何轻松理解输入流和输出流

理解 Java IO 流方向的关键在于以程序或线程为视角:数据进入程序即为输入(Input),程序读取数据;数据离开程序即为输出(Output),程序写入数据。这一原则同样适用于管道流:写线程使用 PipedOutputStream 将数据“输出”到管道,读线程使用 PipedInputStream 从管道“输入”数据。切勿从数据绝对流向判断,而应始终站在各自线程的角度——谁写数据就用 Output,谁读数据就用 Input。掌握该视角即可避免常犯的方向错误,彻底厘清 PipedOutputStream 与 PipedInputStream 的命名逻辑。

序列流(序列化和反序列化)

序列流(序列化和反序列化)

Java 序列化流的核心作用是将内存中的Java对象转换为字节序列(序列化),或将字节序列还原为内存中的Java对象(反序列化),实现对象的持久化存储(如写入文件)或网络传输(如分布式系统间对象传递)。以下是序列化流的完整解析,涵盖核心概念、API使用、规则与注意事项。 一、核心概念