首页
关于
留言
归档
动态
友链
推荐
虫洞
开往
憶夣
累计撰写
57
篇文章
累计创建
11
个标签
累计收到
2
条评论
栏目
首页
关于
留言
归档
动态
友链
推荐
虫洞
开往
目 录
CONTENT
Java-憶夣
以下是
Java
相关的文章
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
71
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
93
0
0
Java
2023-04-04
6、接口、lambda 表达式与内部类
本文全面介绍了Java中接口、Lambda表达式与内部类三大核心技术。**接口**用于描述类的功能(非实现),支持静态方法与默认方法,并提供了超类优先和接口覆盖两种冲突解决策略。接口还包含Cloneable等标记接口,用于类型查询。**Lambda表达式**以简洁的箭头语法实现回调与变量行为代码,支持参数类型推导、方法引用和构造器引用,要求捕获变量必须为effectively final;其核心优势在于延迟执行,适用于多线程、排序、事件响应等场景,配套了Predicate、Function等丰富的函数式接口。**内部类**可访问外部类私有成员、隐藏实现细节,包括普通内部类(限制静态域/方法)、匿名内部类(适用于回调)和静态内部类(无外部类引用,可定义静态成员)。**代理**是运行时动态创建实现指定接口的类,通过InvocationHandler的invoke方法统一处理所有调用,适用于构建系统级工具。
2023-04-04
76
0
0
Java
2023-04-04
5、继承
本文围绕Java继承,介绍this与super的用途、方法签名与子类覆盖,区分静态绑定和动态绑定,并说明抽象类及四种访问修饰符。文章强调Object是所有类的超类,规范equals、hashCode、toString的编写,指出重写equals须同时重写hashCode且二者一致。还涵盖ArrayList、对象包装器与自动装箱、可变参数、枚举及反射的用途与限制。最后总结继承设计技巧:使用is-a关系、慎用protected域、覆盖不改变预期行为、多用多态并避免滥用反射。
2023-04-04
75
0
0
Java
2023-04-04
4、对象和类
Java对象具有行为、状态和标识,类之间可有依赖、聚合和继承关系。使用Date、LocalDate等预定义类时,应注意LocalDate的plusDays等方法返回新对象而非修改原对象。自定义类强调封装:构造器避免重名局部变量,不直接返回可变对象引用,必要时用clone。Java方法参数采用值传递:不能修改基本类型参数,可改变对象参数状态,但不能让参数引用新对象;未显式初始化的域使用默认值。类设计应保持数据私有、正确初始化、避免过多基本类型、合理分解职责、命名体现职责,并优先使用不可变类以便线程间安全共享。
2023-04-04
60
0
0
Java
2023-04-04
3、Java基本程序设计结构
文章介绍Java基本程序设计结构:Java为强类型语言,有4种整型、2种浮点型、char和boolean共8种基本类型。浮点溢出产生正负无穷大或NaN,NaN须用Double.isNaN检测;整数除0抛异常,浮点除0得无穷或NaN,负余数可用Math.floorMod处理。>>>以0填充高位,>>以符号位填充,且无<<<。输入输出包括Scanner、Console读密码不回显、printf/String.format格式化及文件读写;控制流程支持标签break。文中还归纳String/StringBuilder、Scanner、PrintWriter、BigInteger/BigDecimal和Arrays常用API,便于掌握基础语法、输入输出、字符串、大数与数组操作。
2023-04-04
77
0
0
Java
1
2
3
4