摘要: 一、概述 1、介绍 Java里古老的容器,JDK1.0版本添加的类,矢量队列,线程安全的,使用关键字synchronized,保证方法同步。 底层维护一个 Object 数组,初始长度为10,默认情况扩容为原来数组的 2 倍。也可以指定扩容步长。其他的和 ArrayList 没有太大区别。 扩容原理 阅读全文
posted @ 2021-09-26 18:26 Craftsman-L 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 一、概述 1、介绍 Arrays 类是 JDK1.2 提供的一个工具类,提供处理数组的各种方法,基本上都是静态方法,能直接通过类名Arrays调用。 二、类源码 1、asList()方法 将一个泛型数组转化为List集合返回。但是,这个List集合既不是ArrayList实例,也不是Vector实例 阅读全文
posted @ 2021-09-26 09:19 Craftsman-L 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 一、概述 1、介绍 String是一个final类,不可被继承,代表不可变的字符序列,是一个类类型的变量。Java程序中的所有字符串字面量(如"abc")都作为此类的实例实现,"abc"是一个对象。字符串是常量,创建之后不能更改,包括该类后续的所有方法都是不能修改该对象的,直至该对象被销毁(该类的一 阅读全文
posted @ 2021-09-25 22:12 Craftsman-L 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 一、概述 1、介绍 为什么出现集合? 答:面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,对对象进行存储,集合就是存储对象最常用的一种方式。 数组和集合类同是容器,有何不同? 答:数组虽然也可以存储对象,但长度是固定的,集合长度是可变的。数组中可以存储基本数据类型,集合中只能 阅读全文
posted @ 2021-09-24 10:23 Craftsman-L 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 一、概述 1、介绍 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。 2、优缺点 优点:提供了对唯一实例的受控访问;由于在系统内存中只存在一个对象,因此可以节约系统资源,当需要频繁创建和销毁的对象时,单 阅读全文
posted @ 2021-09-20 12:16 Craftsman-L 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 一、青蛙跳台阶&斐波那契数列 1、问题 一只青蛙跳台阶,每次可以跳 1 层或 2 层。青蛙跳到 n 层一共有多少种跳法? 2、思想 先把问题规模缩小,考虑 n = 1时,n = 2的解。那么,显然有: (1)边界条件:dp[1] = 1、dp[2] = 2 (2)再考虑 n = 3时,逆向思维一下, 阅读全文
posted @ 2021-09-17 14:11 Craftsman-L 阅读(383) 评论(4) 推荐(1) 编辑
摘要: 一、AOP注解 1、介绍 上一节介绍了 AspectJ 框架如何实现 AOP,具体的实现方式是通过 xml 来进行配置的。xml 方式思路清晰,便于理解,但是书写过于麻烦。这一节介绍注解的方式来进行 AOP 配置。 2、案例(注解) 定义目标对象(被代理的对象) 1 // 定义一个接口 2 publ 阅读全文
posted @ 2021-09-15 22:10 Craftsman-L 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 一、AspectJ 1、介绍 AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法,也可以说 AspectJ 是一个基于 Java 语言的 AOP 框架。通常我们在使用 Spring AOP 的时候,都会导入 AspectJ 的相关 jar 包。 2、案例(xml 阅读全文
posted @ 2021-09-15 10:33 Craftsman-L 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 一、AOP 1、介绍 AOP(Aspect Oriented Programming),面向切面编程。它利用一种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为"Aspect",即切面。所谓"切面",简单说就是那些与业务无关,却为业务模块所共 阅读全文
posted @ 2021-09-15 09:55 Craftsman-L 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 一、介绍 1、介绍 递归:递归就是方法自己调用自己,每次调用时传入不同的变量。递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。迭代和递归区别:迭代使用的是循环结构,递归使用的选择结构。使用递归能使程序的结构更清晰、更简洁、更容易让人理解,从而减少读懂代码的时间。其时间复杂度就是递归的次数。 阅读全文
posted @ 2021-09-09 09:49 Craftsman-L 阅读(281) 评论(0) 推荐(0) 编辑