- 博客(6)
- 收藏
- 关注
原创 函数式接口的应用理解
函数式接口从名称上看,在不清楚这种接口如何定义使用的情况下,我们直接先按数学定义写一个函数表达式:y = f(x) //y就是函数,f(x)就是抽象的运算表达式,表示对x的抽象操作,f(x) = 2x //f(x)求值表达式是 2*x,即函数 y = 2x;接下来再给一个函数式接口的应用案例:(按标注顺序阅读)通过上面的例子,应该已经对函数式接口有了大概理解,现在详细探讨下:第一步,函数式接口的定义,我们将整个接口视为抽象的数学函数 中的f(x) ,对x操作的抽象算法;第二步,将函数式接口作
2020-07-18 10:01:04 407
原创 关于类实例化时其中的静态成员及非静态成员的初始化顺序
在探究类成员加载顺序前,我们首先需要知道不论谁先加载,对于成员变量肯定要先被分配空间并初始化,之后再执行赋值语句或者代码块,例如以下代码:(类加载时,先给变量a,b分配内存空间并初始化值为0)。...
2020-06-28 12:00:32 1193
原创 动态代理模式newProxyInstance及invoke方法参数详解
动态代理概述:Java提供的动态代理类Proxy:Proxy provides static methods for creating dynamic proxy classes and instances, and it is also the superclass of all dynamic proxy classes created by those methods. 代理类Proxy提供静态方法用于创建动态代理子类和对象。它也是所有通过这些静态方法所创建的动态代理子类的父类。 其中一个最
2020-07-19 16:38:31 5655
原创 Java泛型的逐步理解
理清泛型之前,先引入容器的概念。容器:就是字面意思,存放东西用。而在java里容器类就是专门存放数据的类,例如集合ArrayList等等。集合这类容器都可以存放多个数据,我们也可以构建一个只存放单个元素的简单容器。再利用数组实现存放多个数据的简单容器:实现了存放数据后,发现只能存放固定的String类型数据,要实现存放任意类型怎么处理?利用Object么?尝试一下:由上,为了在创建容器对象时,指定任意且唯一一种类型的数据存入,这就是泛型应该要实现的效果。泛型就是把类型明确的工作 推迟到创建
2020-07-08 11:29:26 169
原创 对封装、继承、多态的简单理解
封装:封装的目的是为了减少代码冗余,避免重复性使用代码。所以定义方法,可以视为对一段同样作用代码的封装,来降低代码重复性定义一个类,接口等等,也可以视为对具有相同特性的代码块的封装。同样关键字enum,也可视为对Enum类的封装。封装,主要在装,即包装成一个整体,但封也同要重要,这代表着安全性,所以权限修饰符的封装意义更多体现在对装的安全要求,即封。总而言之,在写代码时,当遇到大量重复性代码时,就要考虑是否可以封装来优化。继承:可以视为避免重复性的封装。无论继承类还是实现接口,都是因为父类
2020-06-25 16:34:42 4444
原创 enum枚举关键字
enum枚举关键字:与class、interface平级enum 枚举名{列举常量元素}一开始疑惑列举的元素既然是常量,为什么不可以是字符串等等,例如然后修正代码尝试运行,再反编译后看看:运行后对枚举Week反编译解析:javap -p Week.class反编译后,发现enum Week本质上是class Week extends Enum可以将关键字enum视为对Enum类的封装,因此所有关键字enum声明的枚举都是对枚举类Enum的继承类。而枚举中的元素本质上都是static
2020-06-25 16:29:36 829
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人