- @toc 1、代理设计模式 所谓代理,就是替别人完成一些事情。在Java开发中,我们也会遇到一些代理类的场景,这些代理类可以帮其他被代理类完成一些它没有或不方便完成的事情,而且还不会改变被代理类原来的功能。这样的场景有很多,如最常见的场景有权限过滤、添加日志、事务处理等。 初学者可能会问为什么要多加个代理类,直接在原来类的方法中加上权限过滤等功能不也可以实现吗?这是因为程序设计中有一个类... @toc 1、代理设计模式 所谓代理,就是替别人完成一些事情。在Java开发中,我们也会遇到一些代理类的场景,这些代理类可以帮其他被代理类完成一些它没有或不方便完成的事情,而且还不会改变被代理类原来的功能。这样的场景有很多,如最常见的场景有权限过滤、添加日志、事务处理等。 初学者可能会问为什么要多加个代理类,直接在原来类的方法中加上权限过滤等功能不也可以实现吗?这是因为程序设计中有一个类...
- @toc 1、List集合 Collection接口没有提供直接的实现类,而是提供了更加具体的子接口的实现类,其中一个最常用的子接口就是List接口。List集合中的元素是有序、可重复的。 List集合关心集合是否有序,而不关心元素是否重复。 1.1 List接口的方法 List除可以从Collection集合继承的方法,List集合中还添加了一些根据索引来操作集合的方法。之前我们说... @toc 1、List集合 Collection接口没有提供直接的实现类,而是提供了更加具体的子接口的实现类,其中一个最常用的子接口就是List接口。List集合中的元素是有序、可重复的。 List集合关心集合是否有序,而不关心元素是否重复。 1.1 List接口的方法 List除可以从Collection集合继承的方法,List集合中还添加了一些根据索引来操作集合的方法。之前我们说...
- @toc 1、Set集合 Set接口也是Collection的子接口,Set接口没有提供额外的方法。Set集合支持的遍历方式也和Collection集合一样,使用foreach和Iterator遍历。 ==Set集合不允许包含相同的元素==,如果试图把两个相同的元素加入同一个Set集合,则添加操作失败,操作失败并不会报错,只是添加不成功而已。Set接口的常用实现类有:HashSet、Li... @toc 1、Set集合 Set接口也是Collection的子接口,Set接口没有提供额外的方法。Set集合支持的遍历方式也和Collection集合一样,使用foreach和Iterator遍历。 ==Set集合不允许包含相同的元素==,如果试图把两个相同的元素加入同一个Set集合,则添加操作失败,操作失败并不会报错,只是添加不成功而已。Set接口的常用实现类有:HashSet、Li...
- @toc 1、Map集合 Map是地图、映射的意思。生活中地图上的某个点可以映射到实际地理环境中的某个位置,这种映射关系可以用(key,value)的键值对来表示。 Map系列的集合就是用来存储键值对的,java.util.Map是Map系列接口的根接口,其中包含一个静态内部接口Entry,它是(key,value)映射关系的根接口,Entry接口中提供了getKey和getValue的... @toc 1、Map集合 Map是地图、映射的意思。生活中地图上的某个点可以映射到实际地理环境中的某个位置,这种映射关系可以用(key,value)的键值对来表示。 Map系列的集合就是用来存储键值对的,java.util.Map是Map系列接口的根接口,其中包含一个静态内部接口Entry,它是(key,value)映射关系的根接口,Entry接口中提供了getKey和getValue的...
- @toc 1、包装类 通过查看源码或API文档,我们可以知道包装类再java.lang包下,而且所有包装类都是final修饰的,即不能被继承。里面维护的基本数据类型的变量value,也是final修饰的,不能更改,即一旦创建对象,其内容就不能修改。包装类主要分为三种不同类型:数值类型(Byte、Short、Integer、Long、Float和Double)、Character类型、Boo... @toc 1、包装类 通过查看源码或API文档,我们可以知道包装类再java.lang包下,而且所有包装类都是final修饰的,即不能被继承。里面维护的基本数据类型的变量value,也是final修饰的,不能更改,即一旦创建对象,其内容就不能修改。包装类主要分为三种不同类型:数值类型(Byte、Short、Integer、Long、Float和Double)、Character类型、Boo...
- @toc 1、Arrays类 为了简化对数组的操作,JDK1.2在java.util包下增加了一个Arrays类(数组工具类),里面提供了一系列静态方法,用于对数组进行排序、查找等。Arrays类常见方法如表所示。序号方法定义描述1String toString(int[] arr)将数组各元素进行拼接,最终返回数组格式的字符串2void sort(int[] arr)对指定的int型数组... @toc 1、Arrays类 为了简化对数组的操作,JDK1.2在java.util包下增加了一个Arrays类(数组工具类),里面提供了一系列静态方法,用于对数组进行排序、查找等。Arrays类常见方法如表所示。序号方法定义描述1String toString(int[] arr)将数组各元素进行拼接,最终返回数组格式的字符串2void sort(int[] arr)对指定的int型数组...
- 一、前言Promise意在让异步请求逻辑代码变得干净和直观,让异步请求逻辑代码变得井然有序。Promise在设计上具有原子性,即只有三种状态:等待(Pending)、成功(Fulfilled)、失败(Rejected)。在调用支持Promise的异步方法时,逻辑变得非常简单,在大规模的软件工程开发中具有良好的健壮性。 二、基本语法要想给一个函数赋予Promise能力,就要先创建一个Prom... 一、前言Promise意在让异步请求逻辑代码变得干净和直观,让异步请求逻辑代码变得井然有序。Promise在设计上具有原子性,即只有三种状态:等待(Pending)、成功(Fulfilled)、失败(Rejected)。在调用支持Promise的异步方法时,逻辑变得非常简单,在大规模的软件工程开发中具有良好的健壮性。 二、基本语法要想给一个函数赋予Promise能力,就要先创建一个Prom...
- "反编译Apk",看上去好像好像很高端的样子,其实不然,就是通过某些反编译软件,对我们的APK进行反编译,从而获取程序的源代码,图片,XML资源等文件;不知道你有没有这样做过,看到一个别人的一个APP界面做得很精美,或者你看上别人的图片素材,简单点的,我们可以下载别人的APK,然后改下后缀名,改成xxx.zip,然后解压。我们随便找了一个apk进行解压:我们可以打开res目录,获取里面的图片... "反编译Apk",看上去好像好像很高端的样子,其实不然,就是通过某些反编译软件,对我们的APK进行反编译,从而获取程序的源代码,图片,XML资源等文件;不知道你有没有这样做过,看到一个别人的一个APP界面做得很精美,或者你看上别人的图片素材,简单点的,我们可以下载别人的APK,然后改下后缀名,改成xxx.zip,然后解压。我们随便找了一个apk进行解压:我们可以打开res目录,获取里面的图片...
- 动态绑定机制(1)当调用对象方法的时候,该方法会和该对象的内存地址/运行类型绑定。(2)当调用对象属性的时候,没有动态绑定机制,在哪里声明就在哪使用。案例public class DynamicBinding { public static void main(String[] args) { //编译类型为X,运行类型为Y X x = new Y();//... 动态绑定机制(1)当调用对象方法的时候,该方法会和该对象的内存地址/运行类型绑定。(2)当调用对象属性的时候,没有动态绑定机制,在哪里声明就在哪使用。案例public class DynamicBinding { public static void main(String[] args) { //编译类型为X,运行类型为Y X x = new Y();//...
- 基本介绍 方法或者对象具有多种形态。是面向对象的第三大特征,多态是建立在封装和继承基础上的。方法的多态public class PolymorphicMethod { public static void main(String[] args) { //方法重载体现多态 B b = new B(); //这里传入不同的参数,就会调... 基本介绍 方法或者对象具有多种形态。是面向对象的第三大特征,多态是建立在封装和继承基础上的。方法的多态public class PolymorphicMethod { public static void main(String[] args) { //方法重载体现多态 B b = new B(); //这里传入不同的参数,就会调...
- super关键字的细节(1)调用父类的构造器的好处(分工明确,父类属性由父类初始化,子类的属性由子类初始化)(2)当子类中有和父类中的成员(属性和方法)重名时,为了访问父类的成员,必须通过super。如果没有重名, 则使用super、this、直接访问的效果是一样的。(3)super的访问不限于直接父类,如果父类的父类和本类中有同名的成员,也可以使用super其访问父类的父类中的成员;如果多... super关键字的细节(1)调用父类的构造器的好处(分工明确,父类属性由父类初始化,子类的属性由子类初始化)(2)当子类中有和父类中的成员(属性和方法)重名时,为了访问父类的成员,必须通过super。如果没有重名, 则使用super、this、直接访问的效果是一样的。(3)super的访问不限于直接父类,如果父类的父类和本类中有同名的成员,也可以使用super其访问父类的父类中的成员;如果多...
- 前缀表达式规则: 从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们进行相应的计算(栈顶元素和次顶元素进行计算),并将结果入数栈;重复上述过程,直至表达式最左端,最后运算得出的值即为表达式的结果。例如:(3 + 4) * 5 - 6 对应的前缀表达式是 - * + 3 4 5 6针对前缀表达式求值步骤如下:(1)从右至左进行扫描,将... 前缀表达式规则: 从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们进行相应的计算(栈顶元素和次顶元素进行计算),并将结果入数栈;重复上述过程,直至表达式最左端,最后运算得出的值即为表达式的结果。例如:(3 + 4) * 5 - 6 对应的前缀表达式是 - * + 3 4 5 6针对前缀表达式求值步骤如下:(1)从右至左进行扫描,将...
- 一、访问修饰符(1)基本介绍 java提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围)。1)公开级别:用public修饰,对外公开。2)受保护级别:用protected修饰,对子类和同一个包中的类公开。3)默认级别:没有修饰符号,对同一个包中的类公开。4)私有级别:用private修饰,只有类本身可以访问,不对外公开。(2)四种访问修饰符的访问范围访... 一、访问修饰符(1)基本介绍 java提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围)。1)公开级别:用public修饰,对外公开。2)受保护级别:用protected修饰,对子类和同一个包中的类公开。3)默认级别:没有修饰符号,对同一个包中的类公开。4)私有级别:用private修饰,只有类本身可以访问,不对外公开。(2)四种访问修饰符的访问范围访...
- 二叉排序树二叉排序树介绍二叉排序树,BST: (Binary Sort(Search) Tree), 对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当 前节点的值小,右子节点的值比当前节点的值大。特别说明:如果有相同的值,可以将该节点放在左子节点或右子节点。二叉排序树创建和遍历一个数组创建成对应的二叉排序树,并使用中序遍历二叉排序树,比如: 数组为 Array(7, 3, 10, 1... 二叉排序树二叉排序树介绍二叉排序树,BST: (Binary Sort(Search) Tree), 对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当 前节点的值小,右子节点的值比当前节点的值大。特别说明:如果有相同的值,可以将该节点放在左子节点或右子节点。二叉排序树创建和遍历一个数组创建成对应的二叉排序树,并使用中序遍历二叉排序树,比如: 数组为 Array(7, 3, 10, 1...
- 赫夫曼树基本介绍1)给定 n 个权值作为 n 个叶子结点,构造一棵二叉树,若该树的带权路径长度(wpl)达到最小,称这样的二叉树为 最优二叉树,也称为哈夫曼树(Huffman Tree), 还有的书翻译为霍夫曼树。2)赫夫曼树是带权路径长度最短的树,权值较大的结点离根较近。赫夫曼树几个重要概念和举例说明1)路径和路径长度:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径... 赫夫曼树基本介绍1)给定 n 个权值作为 n 个叶子结点,构造一棵二叉树,若该树的带权路径长度(wpl)达到最小,称这样的二叉树为 最优二叉树,也称为哈夫曼树(Huffman Tree), 还有的书翻译为霍夫曼树。2)赫夫曼树是带权路径长度最短的树,权值较大的结点离根较近。赫夫曼树几个重要概念和举例说明1)路径和路径长度:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中 -
一个AI团队帮你写代码:华为云码道Agent Space实战2026/06/25 周四 19:00-21:00
张翰文-华为云码道工程师/郭英旭-青软创新科技集团股份有限公司 软件架构师
本场直播聚焦华为云码道Agent Space两大模式:研发办公、代码开发,亲身体验从需求到代码的AI自动化能力。实操演示基于华为 CodeArts CLI,依托 OpenSpec 规格体系从零搭建业务项目。
回顾中
热门标签