Java学习
文章平均质量分 66
Java学习笔记
持续更新中.........
允诺@晴天
这个作者很懒,什么都没留下…
展开
-
Java——list.stream().filter(item -> item.getType().equals(“type”)).findFirst()报空指针
在Java中使用。原创 2023-08-08 17:42:00 · 5422 阅读 · 1 评论 -
Java——PriorityQueue使用forEach输出元素乱序并实现逆序输出
你可以创建一个自定义的比较器类,然后在创建对象时将该比较器作为参数传入。比较器将比较两个元素的值,并根据需要对它们的顺序进行调整。// 创建自定义的比较器 Comparator < Double > reverseComparator = new Comparator < Double >() {// 逆序比较 } };原创 2023-08-07 10:39:09 · 2483 阅读 · 0 评论 -
Java——如何使用Stream替换掉List<Student>中符合要求的元素
然后,我们使用map()方法对流中的每个学生对象进行操作。在此示例中,我们使用Lambda表达式来检查学生对象的年龄是否大于等于25,如果是,则将姓名设置为"Updated Name"。要使用Stream流替换掉List中符合特定条件的元素,您可以使用Stream的map()方法对每个元素进行映射,并使用collect()方法将映射后的元素收集到一个新的List中。最后,我们使用collect()方法将更新后的学生对象收集到一个新的List中,并使用forEach()方法将更新后的学生列表打印出来。原创 2023-08-04 11:12:10 · 4147 阅读 · 0 评论 -
Java基础——HashMap特征
此时线程t2调用了put,put了一个新值,最后table[bucketIndex] = t2的新值,当t1再次拿到时间片段继续执行,此时table[bucketIndex] = t1的新值,而t1的新值的next却还是之前的数据所以T2存的值就丢失了。当链表长度超过树化阈值 8 时,先尝试扩容来减少链表长度,如果数组容量已经 >=64,才会进行树化。当HashMap中的元素为总容量的3/4是进行扩容操作,扩容为原来的两倍。注:这个e就是新创建的Entry的next的值。值得注意的是:链表长度可能超过8。原创 2022-10-26 20:45:32 · 2457 阅读 · 0 评论 -
数据结构——B树和B+树
一旦定位到磁道后,盘片转动,磁道上的每个位经过磁头时,读写磁头就可以感知到该位的值,也可以修改值。由于B树的每一个节点都包含key和value,因此我们根据key查找value时,只需要找到key所在的位置,就能找到 value,但B+树只有叶子结点存储数据,索引每一次查找,都必须一次一次,一直找到树的最大深度处,也就是叶子结点的深度,才能找到value。在数据库的操作中,查询操作可以说是最频繁的一种操作,因此在设计数据库时,必须要考虑到查询的效率问题,在很多数据库中,都是用到了B+树来提高查询的效率;原创 2022-10-19 08:00:00 · 3454 阅读 · 2 评论 -
Java基础——内部类
将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。可以把内部类理解成寄生,外部类理解成宿主。匿名内部类:是内部类的简化写法。他是一个隐含了名字的内部类。开发中,最常用到的内部类就是匿名内部类了。原创 2022-10-18 09:00:00 · 2495 阅读 · 0 评论 -
数据结构——红黑树的特性及实现
红黑树是含有红黑链接并满足下列条件的二叉查找树:红链接均为左链接;没有任何一个结点同时和两条红链接相连;该树是完美黑色平衡的,即任意空链接到根结点的路径上的黑链接数量相同;原创 2022-10-16 09:00:00 · 2357 阅读 · 1 评论 -
数据结构——2-3查找树特性
一棵2-3查找树要么为空,要么满足满足下面两个要求:2-结点含有一个键(及其对应的值)和两条链,左链接指向2-3树中的键都小于该结点,右链接指向的2-3树中的键都大于该结点。3-结点含有两个键(及其对应的值)和三条链,左链接指向的2-3树中的键都小于该结点,中链接指向的2-3树中的键都位于该结点的两个键之间,右链接指向的2-3树中的键都大于该结点。原创 2022-10-15 19:48:46 · 2276 阅读 · 0 评论 -
Linux——Docker安装及配置RocketMQ
【代码】Linux——Docker安装及配置RocketMQ。构建namesrv容器docker run -d \--restart=always \--name rmqnamesrv \-p 9876:9876 \-v /docker/rocketmq/data/namesrv/logs:/root/logs \-v /docker/rocketmq/data/namesrv/store:/root/store \-e "JAVA_OPT_EXT=-server -Xms原创 2022-09-22 20:55:56 · 4369 阅读 · 0 评论 -
Jvm——垃圾回收
只有所有 GC Roots 对象都不通过【强引用】引用该对象,该对象才能被垃圾回收。定义: Mark Sweep。原创 2022-09-14 20:44:01 · 2289 阅读 · 0 评论 -
设计模式——概述、UML图、原则
"设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中。1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任在他的著作《建筑模式语言:城镇、建筑、构造》中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇、邻里、住宅、花园和房间等进行设计的基本模式。1990年软件工程界开始研讨设计模式的话题,后来召开了多次关于设计模式的研讨会。直到1995 年,艾瑞克·伽马(ErichGamma)、理査德·海尔姆(Richard Helm)、拉尔夫·约翰森(Ralph Johnson)原创 2022-07-10 14:22:38 · 2369 阅读 · 0 评论 -
Git——基本操作及代码提交
文章目录1、Git1.1 基本配置1.2 配置SSH公钥1.3 分支1.4 版本回退1.5 提交代码到远程仓库1、Git1.1 基本配置设置用户名git config --global user.name “XXX”查看用户名git config --global user.name设置邮箱git config --global user.email "[email protected]"查看密码git config --global user.email1.2 配置SSH公钥生成原创 2022-03-19 16:42:48 · 2273 阅读 · 0 评论 -
Servlet——ServletContext对象功能
文章目录一、Sercletcontext对象获取一、Sercletcontext对象获取 /* Sercletcontext对象获取 1. 通过request对象获取 request.getServletContext(); 2. 通过HttpServlet获取 this.getServletContext(); */ ServletContext sc1 = request.getServlet原创 2022-01-19 11:00:00 · 2287 阅读 · 0 评论 -
Docker基础(四)——DI、CD
文章目录Docker DI、CD1.引言2.CI介绍3.实现持续集成3.1 搭建Gitlab服务器3.2 搭建Gitlab-Runner3.3 整合项目入门测试3.4编写.gitlab-ci.yml文件4.CD介绍5.实现持续交付持续部署5.1 安装Jenkins5.2 配置目标服务器以及Gitlab免密码登录5.3 配置Gitlab免密码登录5.4 配置JDK和Maven5.5 手动拉取gitlab项目5.6 创建maven任务6.实现持续交付持续部署结束Docker DI、CD1.引言项目部署原创 2021-10-28 19:40:33 · 3199 阅读 · 0 评论 -
Docker基础(三)——Docker-compose使用及配置
文章目录Docker-Compose1.下载Docker-Compose2.Docker-Compose管理MySQL和Tomcat容器3.使用docker-compose命令管理容器4.docker-compose配置Dockerfile使用Docker-Compose之前运行一个镜像,需要添加大量的参数。可以通过Docker-Compose编写这些参数。Docker-Compose可以帮助我们批量的管理容器。只需要通过一个docker-compose.yml文件去维护即可。1.下载Doc原创 2021-10-28 18:21:22 · 3158 阅读 · 0 评论 -
Docker基础(二)——Docker的应用、自定义镜像
文章目录Docker的应用1.准备SSM工程2.准备MySQL容器3. 准备Tomcat容器4.数据卷Docker自定义镜像Docker的应用1.准备SSM工程# MySQL数据库的连接用户名和密码改变了,修改db.propreties# 项目重新打包mvn clean package -DskipTests# 项目地址链接: https://pan.baidu.com/s/1F4xTLoOFCMb7rl1VUrBASA 密码: bgjw2.准备MySQL容器# 运行MySQL容器原创 2021-10-28 18:12:59 · 2292 阅读 · 0 评论 -
Docker基础(一)——介绍、基本操作
目录Docker介绍Docker的基础操作1.Docker介绍Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。Docker 从 17.03 版本之后分为 CE(Community Edition: 社区原创 2021-10-28 17:40:55 · 2314 阅读 · 0 评论 -
jstl基础语句
jstl:if语句<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><html><head> <title>if 标签</title></head><b.原创 2021-04-17 15:35:00 · 2285 阅读 · 0 评论 -
Servlet基本操作需知
Servlet的实现import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;.原创 2021-04-01 15:10:05 · 2203 阅读 · 0 评论 -
servlet文件下载及上传
servlet文件下载import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSe.原创 2021-03-28 19:22:49 · 2224 阅读 · 0 评论 -
Cookie
Cookie的使用及部分方法package com.example.servlet03;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;impor.原创 2021-03-21 09:08:25 · 2211 阅读 · 2 评论