![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
文章平均质量分 60
Java基础
落-雨
无为心 有为法
展开
-
Java 构建器模式示例
【代码】Java 构建器模式示例。原创 2024-01-21 16:59:54 · 402 阅读 · 0 评论 -
StreamAPI 的 Collectors.toMap 方法
由于最终返回的是一个 Map 对象,因此我们需要在 Collectors.toMap() 方法中定义 key、value 的映射关系。(v1, v2) -> v1 表示:如果 key 值相同,则采用前一个 key 对应的 value 值作为最终的 value 值。k -> k.getId() 表示:采用 person 对象的 id 指作为 key 值。v -> v 表示:采用原来的 person 对象作为 value 值。原创 2024-01-21 12:20:57 · 414 阅读 · 0 评论 -
map 和 flatMap 的区别
StreamAPI 中的 map 方法,实现是一种映射关系。类似数学中的 x -> f(x)。而 flatMap 方法是在 map 的基础上做了一次 flat。原创 2023-11-28 22:48:43 · 336 阅读 · 0 评论 -
开发、测试、生产环境
开发环境:开发环境是程序猿们专门用于开发的服务器,配置可以比较随意, 为了开发调试方便,一般打开全部错误报告。简单讲就是项目尚且处于编码阶段,一般这时候会把代码放在开发环境中,不会放在生产环境中。生产环境:是指正式提供对外服务的,一般会关掉错误报告,打开错误日志。简单讲就是所谓的线上,就是正式给用户使用的环境。测试环境:是开发环境到生产环境的一个过渡,配置会参考生产环境,用于测试程序是否有错误,力求在将代码部署到生产环境前对所有问题进行排查解决。原创 2023-11-26 22:34:36 · 167 阅读 · 0 评论 -
如何使用 arrayList.removeAll(Collection<?> c)?
如果原集合对象的元素数量 < c 中元素数量,那么调用原集合对象的迭代器去遍历原集合,检查元素是否包含在 c 中,并调用原集合迭代器的。如果原集合对象的元素数量 > c 中元素数量,那么调用 c 的代器去遍历 c ,查看元素是否包含在原集合中,并使用原集合的。方法,该方法是通过哈希计算的方式去查询的,因此速度十分快。中存在的所有元素的总体时间复杂度为 O( n * m )。方法来判断是否存在相同的元素,效率与 c 的类型有关。中存在的所有元素的总体时间复杂度为 O( n )。方法的时间复杂度为 O(1)。原创 2023-10-12 23:09:19 · 264 阅读 · 0 评论 -
Java泛型理解
我们都知道 Java 中有形参和实参之分,是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数,其本身没有确定的值。在调用函数时,实参将赋值给形参。而泛型是一种参数化的类型(可以理解为类型形参),它允许在定义类、接口时通过一个「标识」表示类中某个属性的类型或者是某个方法的返回值或参数的类型。这个类型参数将在使用时(例如,继承或实现这个接口、创建对象或调用方法时)确定(即实际传入的类型参数,也称为类型实参)。好处是增强代码的安全性。原创 2023-10-03 23:36:55 · 822 阅读 · 0 评论 -
为什么说Java是值传递?
java值传递原创 2023-08-09 23:03:22 · 188 阅读 · 0 评论 -
跨域问题解决方案
跨域问题本质上是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。它指的服务A对服务B发起请求时,如果有任意一个不同,就会出现请求不到的问题。下面是几个典型的例子:对于复杂请求,比如PUT、DELETE等,在进行跨域请求时会先发送预检请求OPTIONS,然后根据返回的响应信息判断能否跨域,如果可以跨域,再发送真实请求。原创 2023-05-01 22:39:13 · 752 阅读 · 1 评论 -
常见的函数式接口及其应用场景
函数式接口更普遍的一个应用场景是StreamAPI,如进行过滤时的filter(Predicate p),进行映射时的map(Function f),进行遍历输出时的forEach(Consumer c)。函数式接口(Functional Interface)指的是有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。如果我们要定义的接口只有一个抽象方法,且符合这些函数式接口的特点,那么直接用函数式接口就 ok 了。原创 2023-04-30 23:04:13 · 1248 阅读 · 0 评论 -
函数式接口、匿名实现类、Lambda表达式之间的关系
通过匿名实现类可以对接口中的抽象方法进行快速实现。进一步地,如果该接口是函数式接口(即只有一个抽象方法,其他方法可以有多个),那么可以用lambda表达式来进一步简化代码。原创 2023-04-30 22:24:23 · 570 阅读 · 0 评论 -
DO、DTO、BO、AO、VO、POJO
常见分层领域模型的区别:如 DTO、VO、POJO 等原创 2022-08-18 10:06:08 · 673 阅读 · 0 评论 -
为什么要使用 for 循环
为什么要使用 for 循环Java 中有三种主要的循环结构:while 循环、do…while 循环、for 循环。虽然所有循环结构都可以用 while 或者 do…while 表示,但 Java 提供的 for 循环,使一些循环结构变得更加简单。比如我们要实现变量 x 从 0 增加到 10 ,while 循环的实现方式如下:class Test { public static void main(String[] args) { int x = 0; while(x < 10){原创 2022-01-14 11:44:52 · 903 阅读 · 0 评论 -
JAVA编程中的静态、非静态变量及方法
Java语言支持的变量类型有:局部变量:类的方法中的变量。静态变量:静态变量也称为类变量,是独立于方法之外的变量,用 static 修饰。实例变量:独立于方法之外的变量,不过没有 static 修饰。局部变量只在声明它的方法、构造方法或者语句块中可见,且当它们执行完成后,变量将会被销毁。而类变量和实例变量均可以被类中的方法、构造方法或者语句块引用。Java 中静态变量(类变量)和实例变量区别在变量调用时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,原创 2022-01-13 17:33:17 · 1096 阅读 · 0 评论