首页
关于
留言
归档
动态
友链
推荐
虫洞
开往
憶夣
累计撰写
57
篇文章
累计创建
11
个标签
累计收到
2
条评论
栏目
首页
关于
留言
归档
动态
友链
推荐
虫洞
开往
目 录
CONTENT
以下是
yilee
的文章
2023-04-04
8、泛型程序设计
## 摘要 本文系统介绍了Java泛型程序设计的核心概念与实践要点。**定义简单泛型类**通过类型参数T实现类型安全的通用类(如Pair);**泛型方法**使用`<T>`声明,调用时可显式指定或由编译器自动推断。**类型变量限定**利用`extends`和`&`对T添加上界约束,确保类型能力。 **类型擦除**是泛型在虚拟机中的实现机制——泛型信息被擦除,类型参数替换为限定类型(无限定则为Object),编译器自动插入必要的强制转换和桥方法以保持多态与类型安全。 泛型存在多项**约束**:不能用基本类型实例化、不能创建参数化数组、不能在静态上下文中使用类型变量、不能抛出或捕获泛型实例、不能实例化类型变量本身等。可通过`Supplier<T>`等函数式接口变通解决实例化问题。 **继承规则**上,`Pair<S>`与`Pair<T>`互不兼容。**通配符**提供灵活的类型匹配:`? extends T`用于安全读取,`? super T`用于安全写入,`?`为无限定通配符仅可读null。通配符捕获机制允许通过辅助泛型方法间接操作通配符类型。 最后,**反射与泛型**结合方面,`Class<T>`和`Constructor<T>`等类已泛型化,`java.lang.reflect`包提供了`TypeVariable`、`WildcardType`、`ParameterizedType`等接口,可在运行时获取泛型类型声明信息。
2023-04-04
56
0
0
Java
2023-04-04
7、异常、断言和日志
## 摘要 本文系统讲解了Java中异常处理、断言和日志三大机制。 **异常处理**方面,区分了受检查异常(编译期强制检查)和不受检查异常(RuntimeException及其派生类,如空指针、数组越界等)。介绍了异常捕获、异常链(initCause/getCause保留原始异常)、finally子句的必执行特性,以及try-with-resources自动资源管理(需实现AutoCloseable/Closeable接口)。核心原则是"早抛出,晚捕获",并强调异常不应替代简单逻辑判断。 **断言**是开发调试阶段的战术工具,通过`assert`语句检测致命且不可恢复的错误,默认禁用,可通过`-ea`选项启用,生产环境应关闭。 **日志**则是贯穿程序全生命周期的策略性工具。Java使用`java.util.logging`框架,支持多级日志(SEVERE→FINEST)、自定义Handler(控制台/文件/网络)、Filter过滤和Formatter格式化。建议面向用户的消息使用INFO及以上级别,面向开发者的调试信息使用FINE级别。
2023-04-04
65
0
0
Java
2023-04-04
6、接口、lambda 表达式与内部类
本文全面介绍了Java中接口、Lambda表达式与内部类三大核心技术。**接口**用于描述类的功能(非实现),支持静态方法与默认方法,并提供了超类优先和接口覆盖两种冲突解决策略。接口还包含Cloneable等标记接口,用于类型查询。**Lambda表达式**以简洁的箭头语法实现回调与变量行为代码,支持参数类型推导、方法引用和构造器引用,要求捕获变量必须为effectively final;其核心优势在于延迟执行,适用于多线程、排序、事件响应等场景,配套了Predicate、Function等丰富的函数式接口。**内部类**可访问外部类私有成员、隐藏实现细节,包括普通内部类(限制静态域/方法)、匿名内部类(适用于回调)和静态内部类(无外部类引用,可定义静态成员)。**代理**是运行时动态创建实现指定接口的类,通过InvocationHandler的invoke方法统一处理所有调用,适用于构建系统级工具。
2023-04-04
52
0
0
Java
2023-04-04
5、继承
五 继承5.1 类、超类和子类关键字this一是引用隐式参数二是调用该类其他的构造器关键字super一是调用超类的方法二是调用超类的构造器方法调用过程注1:方法的名字和参数列表称为方法的签, 如 public int setAge(int age),签名为 setAge(int)注2:若子类中定义一
2023-04-04
62
0
0
Java
2023-04-04
4、对象和类
第四章 对象和类4.1 面向对象程序设计概述对象的三个主要特性对象的行为(behavior)对象的状态(state)对象标识(identity)类之间的关系依赖(“uses-a”):如果一个类的方法操纵另一个类的对象, 我们就说一个类依赖于另一个类。聚合(“has-a”):聚合关系意味着类A 的对象
2023-04-04
52
0
0
Java
2023-04-04
3、Java基本程序设计结构
第三章 Java基本程序设计结构3.3 数据类型Java 是一种强类型语言。这就意味着必须为每一个变量声明一种类型: 在Java 中, 一共有8种基本类型(primitive type ), 其中有4 种整型、2 种浮点类型、1 种用于表示Unicode 编码的字符单元的字符类型char和1 种用于
2023-04-04
57
0
0
Java
2023-04-03
Hello Halo
## 摘要 这是一篇由博客系统 **Halo** 自动生成的欢迎页面,用于确认用户已成功完成安装。文章简要感谢用户选择 Halo 作为创作工具,并附上了官方资源链接,包括官网、文档、社区论坛、主题仓库及 GitHub 开源地址,方便用户在使用过程中获取帮助与支持。最后提醒用户删除此默认文章后即可开始正式创作。整体内容简洁,主要起到引导新用户入门的作用。
2023-04-03
226
1
0
1
2
3
4
5
6