自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 linux centos7安装mysql5.7并开启远程访问

1.1 下载Linux 安装包https://dev.mysql.com/downloads/mysql/5.7.html#downloads1.2 安装MySQL1) 检查系统是否自带mysql rpm -qa | grep mysql 如果有,卸载掉 rpm -e --nodeps mysql的名称2) 检查系统是否自带mariadb rpm -qa | grep mariadb 如果有,卸载掉 rpm -e --nodeps mariadb的名称3) 在/usr/

2021-05-26 18:15:24 611 1

原创 Vue学习笔记——组件的注册

目录1. 组件的注册1.1 组件注册的传统步骤1.1.1 传统步骤:1.1.2 注册组件传统步骤解析1.2 组件名大小写问题短横线分隔命名首字母大写命名1.3 全局组件和局部组件1.3.1 全局组件1.3.2 局部组件1.4 父组件和子组件的注册1.5 注册组件语法糖1.5.1 注册全局组件语法糖1.5.2 注册局部组件语法糖1.6 模板的分离写法1. 组件的注册1.1 组件注册的传统步骤1.1.1 传统步骤:创建组件构造器注册组件使用组件<div id="app"&gt

2021-01-30 20:33:07 255

原创 Vue的v-model指令的双向绑定原理

基本使用表单在实际开发中是非常常见的,特别是对于用户信息的提交,需要大量的表单。Vue中使用v-model指令来实现表单元素和数据的双向绑定,代码示例:<div id="app"> <input type="text" v-model="message"> <h2>{{message}}</h2></div><script src="../js/vue.js"></script><script&g

2021-01-19 14:01:43 444

原创 springcloud config配置中心使用github作为远程仓库时,出现NoSuchLabelException:No such label: master问题

springcloud config配置中心使用github作为远程仓库时,出现NoSuchLabelException:No such label: master问题:项目正常启动浏览器访问配置文件报错:No such label: master修改日志级别为debug,重启项目发现控制台抛出异常:org.springframework.cloud.config.server.environment.NoSuchLabelException: No such label: master辗转发现我的

2020-12-23 16:02:45 1151 1

原创 代理模式(静态代理、JDK动态代理)Java实现

目录代理模式概述模式的结构静态代理动态代理JDK动态代理代理模式概述在有些情况下,一个对象不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务,这个中介就是代理对象。例如,购买火车票不一定要去火车站买,可以通过 12306 网站或者去火车票代售点买。又如找女朋友、找保姆、找工作等都可以通过找中介完成。代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。模式的结构代理模式的主要

2020-10-14 20:06:36 69

原创 工厂设计模式-Java实现(简单工厂模式、工厂方法模式、抽象工厂模式)

目录工厂模式介绍简单工厂模式模式的结构与实现模式的结构模式的实现优缺点应用场景简单工厂模式在JDK中的应用工厂方法模式模式的结构与实现模式的结构模式的实现优缺点应用场景工厂方法模式在JDK中的应用抽象工厂模式模式的定义与特点模式的结构与实现模式的结构模式的实现模式的应用场景模式的扩展工厂模式介绍凡是需要创建复杂对象的地方,都可以尝试考虑使用工厂模式来代替。注意:上述复杂对象指的是类的构造函数参数过多等对类的构造有影响的情况,因为类的构造过于复杂,如果直接在其他业务类内使用,则两者的耦合过重,后续业务

2020-10-10 19:10:39 265

原创 单例设计模式Java实现的八种写法以及反序列化、反射的破坏与防御

目录单例设计模式概述主要步骤单例模式实现方案1. 饿汉式(静态常量,线程安全)优缺点说明2. 饿汉式(静态代码块,线程安全)优缺点说明3. 懒汉式(线程不安全)优缺点说明4. 懒汉式(同步方法,线程安全,但性能差)优缺点说明5. 懒汉式(同步代码块,但并不能保证线程安全)优缺点说明6. 懒汉式(双重检查加锁,线程安全)优缺点说明7. 静态内部类(线程安全)优缺点说明8. 枚举(线程安全)优缺点说明反序列化破坏单例模式及解决方案反射破坏单例模式及解决方案单例模式在JDK中的应用单例设计模式概述单例设计模式

2020-10-05 20:04:19 161

原创 设计模式七大原则之合成复用原则(组合优于继承)

目录概述案例演示使用继承方式使用组合/聚合方式概述合成复用原则,又叫组合/聚合复用原则,它要求在软件复用时,要优先考虑使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。聚合关系:是整体与部分的关系,且部分可以离开整体而单独存在,是一种不稳定的包含关系,它们有各自独立的生命周期;例如:公司和员工的关系,公司包含员工,但如果公司倒闭,员工依然可以换公司上班。代码体现:通常将一个类的对象作为另一个类的成员变量来实现聚合关系组合关系:也是整体与部分的关系,但部分不能离开整体而单独

2020-09-22 23:12:04 1705

原创 设计模式七大原则之里氏替换原则

继承性的思考和说明1)继承包含这样一层含义:父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些已经实现的方法任意修改,就会对整个继承体系造成破坏。2)继承在给程序设计带来便利的同时,也带来了弊端。比如使用继承会给程序带来侵入性,程序的可移植性降低,增加对象间的耦合性,如果一个类被其他的类所继承,则当这个类需要修改时,必须考虑到所有的子类,并且父类修改后,所有涉及到子类的功能都有可能产生故障3)问题提出:在编程中,如何正确的使用继承? =

2020-09-21 21:00:15 101

原创 设计模式七大原则之迪米特法则(最少知道原则)

目录概述案例演示违反迪米特法则的实现遵循迪米特法则的改进方案概述定义:一个类对于其他类知道的越少越好,一个对象应当对其他对象有尽可能少的了解从迪米特法则的定义和特点可知,它强调以下两点:从依赖者的角度来说,只依赖应该依赖的对象。从被依赖者的角度说,只暴露应该暴露的方法。案例演示计算机关机案例:当我们点击计算机关机按钮的时候,计算机会执行一系列的动作,比如:保存当前未完成的任务,关闭相关的服务,接着关闭显示屏,关闭电源,这些都完成后,计算机正式关闭。违反迪米特法则的实现Computer类

2020-09-20 21:14:57 207

原创 设计模式七大原则之依赖倒置原则

目录概述案例演示依赖正置方案:改进方案:依赖倒置普通方法传递依赖对象构造方法传递依赖对象set方法传入依赖对象依赖倒转原则的注意事项和细节概述定义:1)高层模块不应该依赖低层模块,二者都应该依赖其抽象。从代码的角度来说,高层模块就是调用者,低层模块就是被调用者。2)抽象不应该依赖细节,细节应该依赖抽象依赖倒置的中心思想是面向抽象(抽象类或接口)编程依赖倒置原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。在java中,抽象指

2020-09-19 22:44:50 178

原创 设计模式七大原则之接口隔离原则

目录概述案例演示:未使用接口隔离原则的设计:使用接口隔离原则的设计概述定义:客户端不应该依赖它不需要的接口,一个类对另一个类的依赖应该建立在最小的接口上。简单地说,就是不要定义方法多而全的总接口,尽量细化接口,接口中的方法尽量少。案例演示:类C通过通过接口依赖(使用)类A,但是只会使用到1、2、3方法,类D通过接口依赖(使用)类B,但是只会使用到1、4、5方法未使用接口隔离原则的设计:代码:public interface TotalInterface { void operatio

2020-09-18 21:53:59 145

原创 设计模式七大原则之单一职责原则

目录概述案例演示单一职责原则的优点注意事项概述定义:不要存在多于一个导致类变更的原因。通俗的说,一个类、接口、方法只负责一项职责。例如:类A负责两个不同职责:职责1,职责2,当职责1需求变更而修改A时,可能造成职责2执行错误,所有需要将类A的粒度分解为A1,A2。原则上说,我们设计一个类的时候不应该设计成大而全的类,要设计粒度小、功能单一的类,如果一个类有两个或两个以上的不相干的功能,那么我们就说它违背了单一职责原则,应该把它拆分成多个功能单一、粒度更细的类。案例演示以交通工具案例来分析方案一

2020-09-16 22:39:00 90

原创 设计模式七大原则之开闭原则

目录概述案例演示概述开闭原则是编程中最基础、最重要的设计原则。一个软件实体(类、模块、方法等)应该对扩展新功能开放,对修改原有功能关闭。用抽象构建框架,用实现扩展细节。当软件需要添加一个功能时,尽量在原有代码基础上进行扩展,而不是修改原有代码。案例演示以书店销售书籍为例来说明什么是开闭原则:public interface IBook { String getName(); double getPrice(); String getAuthor();}public

2020-09-15 20:27:46 170

原创 UML类图和类之间的关系

目录1. 类和接口的UML表示类接口2. 类之间的关系泛化(继承)实现依赖关联聚合组合区别统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,一种用于软件系统分析和设计的工具。UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系。1. 类和接口的UML表示类使用三层矩形框表示第一层是类的名称第二层是属性格式:[可见性]属性名:类型[=默认值]例如:- name: String

2020-09-12 18:44:01 490

原创 Java8新特性之流式编程Stream API

目录1. 流式思想概述2. 获取stream流的方式3. 常用方法:forEach : 逐一处理count:统计流中的元素个数filter:过滤limit:取出前n个元素skip:跳过前n个元素sorted:排序map:映射distinct:去除重复数据reduce:归约concat:组合collect:收集Stream流中的结果到指定结构Stream流中的结果收集到集合中Stream流中的结果收集到数组中1. 流式思想概述Java8中有两大最为重要的改变。第一个是 Lambda 表达式;另外一个则是

2020-09-08 23:58:51 337

原创 Java8新特性之双冒号::语法:方法引用与构造器引用

目录1 方法引用1.1 对象—引用实例方法1.1.1 普通使用情况:1.1.2 super或this引用实例方法1.2 类—引用静态方法1.3 类—引用实例方法2. 构造器引用2.1 类—引用构造器2.2 数组—引用构造器1 方法引用lambda表达式是用来简化函数式接口的匿名内部类的一种函数式编程的语法。当Lambda体的实现是通过调用一个现有的方法来完成功能的,并且该方法满足一些特殊条件时,则可以通过双冒号::来引用该方法替代Lambda表达式。 双冒号::称为方法引用操作符,而它所在的表达式被称

2020-09-07 23:39:34 912

原创 Java8新特性之函数式接口-Supplier、Consumer、Predicate、Function详解

目录1. 概述@FunctionalInterface注解2. 供给型接口典型代表—Supplier接口3. 消费型接口典型代表—Consumer接口4. 判断型接口典型代表—Predicate接口5. 功能型接口典型代表—Function接口1. 概述函数式接口在Java中是指:有且仅有一个抽象方法的接口。Lambda表达式是用来实现SAM接口的,所谓SAM就是Single Abstract Method,即该接口中只有一个抽象方法需要实现,当然该接口可以包含其他非抽象方法。从应用层面来讲,Ja

2020-09-06 00:23:14 2075 2

原创 Java8新特性之Lambda表达式

目录1. Lambda表达式引入2. Lambda表达式的格式标准格式:省略格式:3. Lambda表达式的前提条件4. Lambda表达式的本质5. Lambda表达式和匿名内部类的区别1. Lambda表达式引入当需要启动一个线程去完成任务时,通常会通过 java.lang.Runnable 接口来定义任务内容,并使用 java.lang.Thread 类来启动该线程。传统写法,代码如下:public class ThreadDemo { public static void main(Str

2020-09-05 13:03:29 177

原创 Java泛型通配符和泛型的上限、下限

目录1. 通配符基本使用2. 受限泛型1. 通配符基本使用假设有这样的需求:定义一个方法,可以遍历任意数据类型的ArrayList集合。从前面已经知道,ArrayList 集合和 ArrayList、ArrayList 集合等不存在继承关系,所有方法的形参不能使用ArrayList,那么该如何实现呢?方式一:不使用泛型:public class WildcardTest { public static void main(String[] args) { ArrayLis

2020-09-04 17:50:10 654

原创 Java泛型与继承

目录泛型与继承instanceof后面不支持泛型类泛型与继承通过泛型使得一个类型的功能增强了,好像扩展出好多子类一样。例如:ArrayList,通过指定泛型,可以延伸出ArrayList只能处理字符串类型的集合,ArrayList只能处理Ingeter类型的集合。但是,实际上,系统并没有为ArrayList等生成新的class文件,而且也不会把ArrayList当成新的类型处理。看下面的代码的打印结果是什么?ArrayList list1 = new ArrayList();ArrayList&l

2020-09-04 13:13:24 250

原创 Java反射获取类的加载器、修饰符、属性、构造器、方法、注解等信息

1. 反射概念JVM会为每一个加载到内存的class文件创建一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了类的完整的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构。将java类的各个组成部分封装为对象,可以在程序运行过程中操作这些对象,这就是java的反射机制。反射具体能干那些事:1、在运行时能够获取任意类型的详细信息2、在运行时能够创建任意引用数据类型的对象3、在运行时读取某个注解信息3、在运行时读取某个类的泛型实参5

2020-09-02 10:33:22 760

原创 Java注解(Annotation)、元注解、自定义注解

目录1. 注解概述2. 注解的使用3. 元注解(meta-annotation)@Target@Retention@Documented@Inherited4. 自定义注解定义格式注解的配置参数5. 注解解析与注解解析相关的接口获取注解数据的原理使用反射获取注解的数据代码实现6. 模拟Junit1. 注解概述注解(Annotation)是 JDK5.0增加的功能,该机制允许在Java代码中添加特殊标记,并允许通过反射(reflection),以编程方式访问这些特殊标记。通过使用注解,开发人员可以在不改变

2020-08-28 21:56:24 179

原创 idea生成javadoc时编码报错“错误: 编码GBK的不可映射字符”的解决办法

使用idea生成开发文档,报错(错误: 编码GBK的不可映射字符)并出现乱码问题解决:菜单 Tools -> Generate JavaDoc,弹出的配置面板,在Other command line arguments 栏指定编码,输入:-encoding utf-8 -charset utf-8...

2020-08-27 09:24:26 2492

原创 Java比较器:Comparator接口与Comparable接口的compare(compareTo)方法返回值的正负与升序、降序的关系

目录

2020-08-25 23:36:47 1704 1

原创 Java枚举(enum)详解

目录1. 枚举概述2. 枚举类型的定义2.1 自定义枚举类2.2 使用enum定义枚举3. 枚举的隐含直接父类:Enum类3.1 Enum类的主要方法4. 枚举实现接口1. 枚举概述枚举:列举,一个一个地列出来。Java枚举:把某个类型的对象,全部列出来。什么情况下会用到枚举类型?某些类的对象只有确定的有限个时,可以把这样的类声明为枚举。例如:星期:Monday(星期一)…Sunday(星期天)性别:Male(男)、Female(女)月份:January(1月)…December(1

2020-08-23 19:14:35 844

原创 Java类加载器ClassLoader的双亲委派模型

类加载器我们编写的.java文件被编译器编译成.class的字节码文件,类加载器ClassLoader负责将这些字节码文件加载到内存中去执行。JVM提供了三种类加载器:引导类加载器Bootstrap:最顶层类加载器,负责加载JDK核心类库,C++语言实现扩展类加载器ExtClassLoader:负责加载JDK扩展类库,Java语言实现应用类加载器AppClassLoader:负责加载我们自己定义的类和第三方jar包中的类,Java语言实现AppClassLoader的父加载器是ExtClassL

2020-08-21 15:33:57 113

原创 Java类的加载时机与类的初始化

目录1. 类的加载时机2. 类的初始化会发生类的初始化的情况:不会发生类的初始化的情况:1. 类的加载时机以下5个情况,只要有1个出现,那么类的加载器就会将这个类的class文件加载到内存中:创建类的实例。使用类的静态变量或静态方法。使用反射方式来强制创建某个类或接口对应的java.lang.Class对象。初始化某个类的子类。直接使用java.exe命令来运行某个主类。2. 类的初始化类的初始化主要就是对静态的类变量进行初始化:(1)执行类构造器()方法的过程。类构造器()方法是由

2020-08-19 10:45:16 274

原创 Java多态详解及对象的向上转型、向下转型

目录1. 概述定义前提条件2. 多态的体现3. 多态的好处4. 引用类型转换向上转型向下转型为什么要转型转型的异常instanceof 关键字5. 多态的弊端6. 接口多态案例案例需求代码实现1. 概述生活中,比如跑的动作,小猫、小狗和大象,跑起来是不一样的。再比如飞的动作,昆虫、鸟类和飞机,飞起来也是不一样的。可见,同一行为,通过不同的事物,可以体现出来的不同的形态。多态,描述的就是这样的状态。定义多态: 是指对同一方法的调用,由于编译时类型和运行时类型不一致可能会有不同的行为前提条件继

2020-08-18 17:01:20 400

原创 Java接口详解,含接口新特性及抽象类与接口的区别

目录1. 概述2. 定义格式常量抽象方法默认方法和静态方法私有方法3. 基本的实现实现的概述抽象方法的使用默认方法的使用静态方法的使用私有方法的使用4. 接口的多实现抽象方法默认方法静态方法方法重名时的优先级问题5. 接口的多继承6. 接口的其他特点7. 抽象类和接口的区别1. 概述接口,是Java语言中一种引用数据类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法(JDK

2020-08-18 14:00:37 119

原创 Java抽象类、抽象方法详解

目录1. 概述2. 抽象方法3. 抽象类4. abstract关键字5. 抽象类简单案例5.1案例介绍5.2 案例分析5.3 示例代码1. 概述类用于描述现实生活中一类事物。类中有属性、方法等成员。父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有 意义,而方法主体则没有存在的意义了。某种情况下,父类只能知道子类应该具备一个怎样的方法,但是不能够明确知道如何实现该方法。只能在子类中才能确定如何去实现方法体。例如:所有几何图形都应该具备一个计算面积的方

2020-08-18 11:26:37 676

原创 Java成员内部类、静态内部类、局部内部类、匿名内部类详解

目录成员内部类定义成员内部类特点如何使用成员内部类静态内部类定义静态内部类的特点如何使用静态内部类局部内部类定义局部内部类的特点如何使用局部内部类匿名内部类定义前提格式:匿名内部类的特点如何使用匿名内部类成员内部类定义成员内部类 :定义在外部类中方法外的类定义格式:[public] class 外部类名 [extends 外部类的父类] [implements 外部类的父接口们] { [修饰符] class 内部类名 [extends 非静态内部类自己的父类] [implements

2020-08-17 10:47:19 381 1

原创 Java中“==”运算符和equals(Object obj)方法的区别

目录== 运算符equals(Object obj) 方法== 运算符== 既可以用于基本数据类型的比较,也可以用于引用数据类型的比较(1)如果比较的是基本数据类型变量:比较两个变量的值是否相等,相等即为true注意:当基本数据类型进行比较时,符号两边的数据必须类型兼容(类型相同或可自动类型转换),否则编译出错。测试代码:public class EqualsTest { public static void main(String[] args) { //基本数据类型

2020-08-14 18:50:12 233

原创 静态代码块和类初始化、实例初始化过程

目录1. 静态代码块2. 类初始化3. 子类初始化4. 类初始化和实例初始化结合5. 子类初始化和子类实例初始化结合非静态代码块和实例初始化过程1. 静态代码块静态代码块:定义在类中方法外,使用static修饰①可以为类变量(静态变量)初始化②静态代码块在第一次使用这个类之前执行,即在类初始化时执行,且只执行一次③若有多个静态代码块,那么按照定义的先后顺序依次执行④在静态代码块中不能访问非静态成员(属性、方法、内部类)⑤在静态代码块中不能使用this和super关键字⑥静态代码块的执行优先

2020-08-13 21:45:22 886

原创 非静态代码块和实例初始化过程

1. 非静态码块1.1 声明格式修饰符 class 类名 { ... { //非静态代码块的内容 ... } ...}1.2 非静态代码块中的代码什么时候执行①在每次创建对象的时候执行②比构造器早测试代码:class MyClass { private String str; public MyClass() { System.out.println("无参构造"); }

2020-08-13 10:40:02 254

原创 Java方法重载和方法重写的区别

方法重载:在同一个类中,允许存在多个同名方法,只要它们的参数个数或者参数类型不同,与修饰符和返回值类型无关,这样的多个同名方法之间构成重载。根据实际传入的参数决定调用哪个方法。方法重写:当父类中的方法对于子类来说不适用的时,子类可以对从父类中继承来的方法进行重写/覆写。根据对象所属的类决定调用调用哪个类的方法。总结:重载(Overload)与重写(Override)的区别重载重写定义位置同一个类中父类(接口)、子类(实现类)方法名必须相同必须相同形参列表必须

2020-08-11 23:52:48 140

原创 继承后访问成员的特点

目录继承后的特点——成员变量super和this父类空间优先于子类对象产生super和this的含义super和this的用法继承后的特点——成员方法成员方法不重名时成员方法重名——重写(Override)重写的应用方法重写注意事项继承后的特点——构造方法继承后的特点——成员变量对象访问成员变量时,会先在子类中查找有没有定义对应的变量,若子类中存在就会就近使用子类中的变量,若子类中没有定义就会沿着继承关系往上找有没有定义相应的变量,若父类中也没有则编译不通过。代码示例:class Fu { /

2020-08-11 15:42:07 171

原创 Java成员变量和局部变量的区别

定义位置不同:成员变量:类中方法外分为类变量(static修饰)、实例变量(没有使用static修饰)局部变量:方法形参、方法内部的变量、语句块内变量(for循环初始化语句及其循环体属于同一个作用域)默认值不同:成员变量:有默认初始化值局部变量:没有默认初始化值,必须显式赋值,方可使用作用范围不同:成员变量:静态变量(类变量),在本类中随便用,在其他类中使用“类名.静态变量"非静态变量(实例变量),在本类中只能在非静态成员中使用,在其他类中使用“对象..

2020-08-11 10:37:25 179

原创 Java中对象和对象引用的区别,引用、指向是什么意思

Java的变量分为两大类:基本数据类型和引用数据类型。其中基本类型变量有四类8种:byte short int long float double char boolean,除了8种基本数据类型变量,其他变量都是引用数据类型,如类、接口、数组等。基本数据类型,只有一块存储空间, 在栈中,存放的是具体数据值。引用数据类型,有两块存储空间一个在栈(Stack)中,一个在堆(heap)中。堆中存放对象本身(使用new关键字,即表示在堆中开辟一块新的存储空间),栈中存放对象在堆中所在位置的首地址。引用类型变量

2020-08-11 09:20:53 2458

原创 Collection集合迭代器iterator遍历集合元素的过程及源码分析

迭代器是遍历Collection集合的通用方式,任意Collection集合都可以使用迭代器进行遍历,那么每一种集合的自身特性是不同的,也就是存储元素的方式不同,那么是如何做到遍历方式的统一呢,接下来我们分析一下迭代器的源代码。Collection接口中有一个抽象方法 Iterator<E> iterator(),返回对集合中元素进行迭代(遍历)的迭代器。java.util.Iterator接口public interface Iterator<E> { boolean

2020-07-24 13:53:21 490

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除