
on_java8
文章平均质量分 75
Java的编程思想学习笔记
EdSheeran乀
一个在编程路上慢慢前进的小菜鸡~
展开
-
23.Java中的注解
文章目录*Java中的注解**23.1基本语法**23.1.1定义注解**23.1.2元注解*Java中的注解注解为在代码中添加信息提供了一种形式化的方法,使得可以在稍后某个时刻非常方便地使用这些数据。它们可以提供用来完整地描述程序所需的信息,而这些信息是无法用java来表达的。因此,注解使得我们能够以将由编译器来测试和验证的格式,存储有关程序的额外信息。注解可以用来生成描述符文件,甚至或是新的类定义,并且有助于减轻样板代码的负担。通过使用注解,可以将这些元数据保存在java源代码中,并利用注解A原创 2021-12-17 09:10:53 · 173 阅读 · 0 评论 -
22.Java中的枚举
Java中的枚举22.1基本enum特性调用enum的values()方法,可以遍历enum实例。values()方法返回enum实例的数组,而且该数组中的元素严格保持其在enum中声明式的顺序,因此可以在循环中使用values()返回的数组。创建enum时,编译器会生成一个相关的类,这个类继承自java.lang.Enum。// Capabilities of the Enum classpublic class EnumClass { public static void main原创 2021-12-10 09:46:18 · 800 阅读 · 0 评论 -
20.Java泛型
文章目录*泛型**20.2简单泛型**20.2.1一个元组类库**20.2.2一个堆栈类**20.2.3`RandomList`**20.3泛型接口**20.4泛型方法**20.4.3简化元组的使用**20.6泛型擦除**20.6.2迁移兼容性**20.6.3擦除的问题**20.6.4边界处的动作**20.7补偿擦除**20.7.1创建类型的实例**20.7.2泛型数组**20.8边界**20.9通配符**20.9.1编译器有多聪明**20.9.2逆变**20.9.3无界通配符**20.9.4捕获转换**2原创 2021-12-03 11:14:18 · 1169 阅读 · 0 评论 -
19.类型信息
文章目录*类型信息**19.1为什么需要RTTI**19.2`Class`对象**19.2.1类字面常量**19.2.2泛型的`Class`引用**19.3类型转换检测*类型信息RTTI(RunTime Type Information,运行时类型信息)能够在程序运行时发现和使用类型信息。19.1为什么需要RTTI在java中,所有类型转换的正确性检查都是在运行时进行的。这也正是RTTI的含义所在:在运行时,识别一个对象的类型。19.2Class对象要理解RTTI在java中的工作原理原创 2021-11-11 15:04:34 · 613 阅读 · 0 评论 -
15.异常
文章目录*异常**15.1异常概念**15.2基本异常**15.6捕获所有异常**15.6.2栈轨迹**15.6.3重新抛出异常**15.6.5异常链**15.8使用`finally`进行清理**15.8.1`finally`用来做什么**15.8.3缺憾:异常丢失**15.9异常限制**15.10构造器**15.11try-with-resources用法**15.11.1揭示细节**15.13其他可选方式**15.13.4把被检查的异常转换为不检查的异常**15.14异常指南*异常15.1异常概念原创 2021-10-27 16:45:31 · 384 阅读 · 0 评论 -
14.流式编程
文章目录*流式编程**14.1流支持**14.2流创建**14.2.1随机数流**14.2.2`int`类型的范围**14.2.3`generate()`**14.2.4`iterate()`**14.2.5流的建造者模式**14.2.6`Arrays`**14.3中间操作**14.3.1跟踪和调试**14.3.2流元素排序**14.3.3移除元素**14.3.4应用函数到元素**14.3.5在`map()`中组合流**14.4`Optional`类**14.4.1便利函数**14.4.2创建`Option原创 2021-10-20 16:17:19 · 1014 阅读 · 0 评论 -
13.函数式编程
文章目录*函数式编程**13.3方法引用**13.3.2未绑定的方法引用**13.4函数式接口**13.5高阶函数**13.6闭包**13.8柯里化和部分求值*函数式编程13.3方法引用13.3.2未绑定的方法引用未绑定的方法引用是指没有关联对象的普通(非静态)方法。使用未绑定的引用时,必须先提供对象:public class UnboundMethodReference { public static void main(String[] args) { // 即使m原创 2021-10-12 15:32:17 · 100 阅读 · 0 评论 -
11.内部类
文章目录*内部类**11.2链接外部类**11.3使用`.this`和`.new`**11.4内部类与向上转型**11.5内部类方法和作用域**11.6匿名内部类**11.7嵌套类**11.8为什么需要内部类**11.8.1闭包与回调**11.9继承内部类**11.10内部类可以被覆盖么*内部类11.2链接外部类当生成一个内部类的对象时,此对象与制造它的外部对象(enclosing object)之间就有了一种联系,所以它能访问其外部对象的所有成员,而不需要任何特殊条件。11.3使用.this和原创 2021-09-28 11:17:51 · 284 阅读 · 0 评论 -
10.Java中的接口
文章目录*接口**10.1抽象类和方法**10.2接口创建**10.2.1默认方法**10.2.3接口中的静态方法*接口10.1抽象类和方法包含抽象方法的类叫做抽象类。如果一个类包含一个或多个抽象方法,那么类本身也必须限定为抽象类,否则,编译器会报错。如果创建一个继承抽象类的新类并为之创建对象,那么就必须为基类的所有抽象方法提供方法定义。如果不这么做(可以选择不做),新类仍然是一个抽象类,编译器会强制为新类加上abstract关键字。可以将一个不包含任何抽象方法的类指明为abstract,在类中原创 2021-09-25 10:10:48 · 72 阅读 · 0 评论 -
9.Java中的多态
多态9.2转机9.2.1方法调用绑定Java中除了static和final方法(private方法也是隐式的final)外,其他所有方法都是后期绑定。9.2.5陷阱:属性与静态方法只有普通的方法调用可以是多态的。例如,如果直接访问一个属性,该访问会在编译时解析。如果一个方法是静态的,它的行为就不具有多态性。9.3构造器和多态9.3.1构造器调用顺序在派生类的构造过程中总会调用基类的构造器。初始化会自动按继承层次结构上移,因此每个基类的构造器都会被调用。这么做是有意义的,因为构造器有原创 2021-09-24 09:13:24 · 97 阅读 · 0 评论 -
8.代码复用
文章目录*复用**8.3委托**8.4结合组合与继承**8.4.1保证适当的清理**8.5组合与继承的选择**8.7向上转型**8.7.1再论组合和继承**8.8`final`关键字**8.8.1`final`数据**8.9类初始化和加载*复用8.3委托Java不直接支持的第三种重用关系称为委托。这介于继承和组合之间,因为将一个成员对象放在正在构建的类中(比如组合),但同时又在新类中公开来自成员对象的所有方法(比如继承)。例如,宇宙飞船需要一个控制模块:class SpaceShipContro原创 2021-09-23 10:09:29 · 270 阅读 · 0 评论 -
6.初始化和清理
文章目录*初始化和清理**6.5垃圾回收器**6.5.3终结条件**6.7构造器初始化**6.7.1初始化的顺序**6.7.2静态数据的初始化*初始化和清理6.5垃圾回收器6.5.3终结条件finalize()有一个有趣的用法,它不依赖于每次都要对finalize()进行调用,这就是对象终结条件的验证。当对某个对象不感兴趣时——也就是它将被清理了,这个对象应该处于某种状态,这种状态下它占用的内存可以被安全释放掉。例如,如果对象代表了一个打开的文件,在对象被垃圾回收之前程序员应该关闭这个文件。只要原创 2021-09-22 10:30:07 · 217 阅读 · 0 评论 -
3.万物皆对象
文章目录*万物皆对象**3.2对象创建**3.2.1数据存储**3.2.2基本类型的存储*万物皆对象3.2对象创建3.2.1数据存储有5个不同的地方可以存储数据:寄存器(registers)最快的存储区域,位于cpu内部。然而,寄存器的数量十分有限,所以寄存器根据需求进行分配。对其没有直接的控制权,也无法在自己的程序里找到寄存器存在的踪迹。栈内存(stack)存在于常规内存ram(随机访问存储器,Random Access Memory)区域中,可通过栈指针获得处理器的直接支持。栈指针下移分原创 2021-09-18 10:31:00 · 150 阅读 · 0 评论 -
1.对象的概念
文章目录*对象的概念**1.1抽象**1.2接口**1.3服务提供**1.4封装**1.5复用**1.6继承**1.7"是一个"与"像是一个"的关系**1.8多态**1.9单继承结构*对象的概念1.1抽象纯粹的面向对象程序设计方法:万物皆对象。程序是一组对象,通过消息传递来告知彼此该做什么。每个对象都有自己的存储空间,可容纳其他对象。每个对象都有一种类型。同一类所有对象都能接收相同的消息。一个对象具有自己的状态,行为和标识。这意味着对象有自己的内部数据(提供状态)、方法(产生行为),原创 2021-09-17 14:51:44 · 749 阅读 · 0 评论