Java
20230303 2.0. 数组和链表
数组 数组是最基本的构造类型,它是一组相同类型数据的有序集合。数组中的元素在内存中连续存放,用数组名和下标可以唯一地确定数组元素。 链表 链表是一种重要的基础数据结构,也是实现 复杂数据结构 的重要手段。它不按照线性的顺序存储数据,而是由若干个同一结构类型的“结点”依次串接而成的,即每一个结点里保存着下一个结点的地址(指针)。 链表又分 单向链表 ,双向链表 以及 循环链表 等。 单向链表 结构
20230303 2.1. 线性表及其实现
如何表示多项式? [f(x)=a_0+a_1x+...+a_{n-1}x^{n-1}+a_nx^n ]方法1:顺序存储结构直接表示 (a[i]) :项 (x^i) 的系数 (a_i) 例如: [f (x) =4x^5-3x^2+1 ] 下标i 0 1 2 3 4 5 a[i] 1 0 -3 0 0 4 问题: 浪费空间,例如 (x+3x^{2000}) 方法2:顺序存储结构表
20230307 2.2. 堆栈
引题 计算机如何进行表达式求值? 中缀表达式:运算符号位于两个运算数之间。如 ,a+b*c-d/e 后缀表达式:运算符号位于两个运算数之后。如, abc*+de/- 堆栈的抽象数据类型描述 堆栈(Stack):具有一定操作约束的线性表(只在一端(栈顶,Top)做 插入、删除) 插入数据:入栈(Push) 删除数据:出栈(Pop) 后入先出:Last In First Out(LIFO)
20230310 2.3. 队列
简介 队列(Queue):具有一定操作约束的线性表 插入和删除操作:只能在一端插入,而在另一端删除。 数据插入:入队列(AddQ) 数据删除:出队列(DeleteQ) 先来先服务 先进先出:FIFO 队列的抽象数据类型描述 类型名称:队列(Queue) 数据对象集:一个有0个或多个元素的有穷线性表。 操作集:长度为MaxSize的队列Q ∈ Queue,队列元素item ∈ ElementTy
分布式链路追踪Skywalking
简介 skywalkings是2015年开源的一款国产框架,2017年的时候加入了Apache孵化器。skywalking是分布式应用程序的性能监控工具,具有多种监控手段,作为APM工具,它具有分布式追踪、性能指标分析、应用和服务依赖分析等功能。可以通过语言探针来获取监控数据。专门是为了微服务(spring cloud)、云原生架构与容器架构(docker/k8s)而设计的。 Skywal
A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的。)
昨天搞了个测试接口,用postman请求测试,Https的协议,然后请求发出去,既没有报错,也没有返回数据库的数据,code倒是0,不是 100,那程序也没有报错,这就奇怪了,我就先监测数据库,发现请求并没有过来,我傻眼了,一些简单的代码还能出错吗?然后开后端调试,就发现了上面的这个提示,在请求的时候被拦截了,相当于没有请求数据库,原路返回 查找一些资料发现可以在appsettings配置
同源和跨域的那些事-简单图文总结
01、为什么要跨域? 跨域的根本原因是浏览器的“同源策略”,得先了解什么是同源?—— 就是【协议+域名+端口号】相同,即为同源,只能向同源的服务发起AJAX请求。 源1 源2 是否同源 a.com b.com 🚫不同源,域名不同 http://a.com https://a.com 🚫不同源,协议不同 a.com:80 a.com:443 🚫不同源,端口不同 gg.c
JavaScript aes-gcm 加密与解密
1. 场景 浏览器原生支持了AES-GCM。 参考资料:https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/encrypt 2. 代码 /** * AES-GCM helper */ var aesGcmHelper = { _keyMap: new Map(), getIv(keyRaw) {
Spring Boot 调用外部接口的 3 种方式,还有谁不会?!
1、简介 SpringBoot不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。 在Spring-Boot项目开发中,存在着本模块的代码需要访问外面模块接口,或外部url链接的需求, 比如在apaas开发过程中需要封装接口在接口中调用apaas提供的接口(像发起流程接口submit等等)下面也是提供了三种方式(不使用dubbo的方式)供
ReactNative原理与核心知识点
React Native特点 跨平台 使用js写出页面组件代码被React框架统一转成Virtual DOM树,Virtual DOM树是UI结构的一层抽象,可以被转换成任何支持端的UI视图。 ReactNative框架将Virtual DOM 转成原APP的UIView树。 热修复 ReactNative的产物bundle包,bundle包中包含的为RN业务所需要的所有资源,包括代码和资源。bu
Mockito 静态类中的void方法
moke例子(我直接用伪代码) public class DictUtils { public static void removeDictCache(String key) { //执行得方法业务 } } 你的业务代码中引用这个类的方法 public void deleteDictTypeByIds(Long[] dictIds) { DictUtils.removeDict
Java基础-Day01
Java基础-Day01 JDK JRE JVM关系 JDK =(Java开发工具包)= Java的开发工具(javac.exe,java.exe,javadoc.exe等)+JRE(Java运行环境) JRE = JVM(Java虚拟机) + Java核心类库 JDK的下载、安装 下载:官网,gitbub 安装:傻瓜式安装:JDK/JRE 注意问题:安装软件的路径中不能包含中文、空格 为
Gradle 版本管理工具
Gradle 笔记 一、简介 Gradle是一款Google推出的 基于JVM、 通用灵活的 项目构建工具, 支持 Maven,JCenter 多种第三方仓库;支持传递性依赖管理、废弃了繁杂的xml文件,转而使用 简洁的 、 支持多种语言的 build脚本文件 。 二、安装 下载 Gradle 官网 | Installation ,选择完整下载 Download: binary-only(仅二
54基于java的高校图书馆座位预约系统设计与实现
本章节给大家带来一个基于java的座位预约系统,可以用于图书馆占位系统,图书馆座位预约系统,大学自习室占座系统,自习室座位预约系统,图书馆预约占座系统,自习室预约占座系统,高校图书馆座位预约系统等等; 下面以图书馆为例,大家把源码下载下来后,还可以修改图书馆名字改成自习室或者阅览室占座系统都是可以的。 引言 图书馆是学校的文献信息中心,是为教学和科研研究服务的学术性机构,是学校信息化的重要基地
基于 Flink CDC 构建 MySQL 到 Databend 的 实时数据同步
这篇教程将展示如何基于 Flink CDC 快速构建 MySQL 到 Databend 的实时数据同步。本教程的演示都将在 Flink SQL CLI 中进行,只涉及 SQL,无需一行 Java/Scala 代码,也无需安装 IDE。 假设我们有电子商务业务,商品的数据存储在 MySQL ,我们需要实时把它同步到 Databend 中。 接下来的内容将介绍如何使用 Flink Mysql/Data
java中synchronized和ReentrantLock的加锁和解锁能在不同线程吗?如果能,如何实现?
java中synchronized和ReentrantLock的加锁和解锁能在不同线程吗?如果能,如何实现? 答案2023-06-21: java的: 这个问题,我问了一些人,部分人是回答得有问题的。synchronized这是个关键字,加锁和解锁不是直接用代码实现,所以在代码层面上就杜绝了加锁和解锁不在同一个线程得情况。可以这么说,synchronized是无法实现同一把锁的加锁和解锁在不同线程
如何做mysql调优?绝命7招,让慢SQL调优100倍
文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备 免费赠送 :《尼恩技术圣经+高并发系列PDF》 ,帮你 实现技术自由,完成职业升级, 薪酬猛涨!加尼恩免费领 免费赠送 经典图书:《Java高并发核心编程(卷1)加强版》 面试
B/S WebUploader 分块上传
java两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路: 1、服:利用ServerSocket搭建服务器,开启相应端口,进行长连接操作 2、服:使用ServerSocket.accept()方法进行阻塞,接收客户端请求 3、服:每接收到一个Socket就建立一个新的线程来处理它 4、客:利用Sock
Flink任务提交流程分析
背景说明 在早期的Flink1.9时,为了对Flink任务的进行部署管理,对Flink任务提交的流程进行分析。刚好以前的博客图片失效了,那就用Flink1.13来再读一遍相关源码。 任务提交 flink任务提交的起点是flink脚本,以提交至Yarn为例,我们运行wordcount的脚本如下: Flink脚本 最后一行执行java命令 其中 org.apache.flink.client.c
Mybatis 开发使用总结2023
Mybatis 一。入门 1.mybatis:是一款优秀的持久化框架,用于简化JDBC的开发。 2.JDBC 3.数据库连接池 4.lombok 二。mybatis的基础增删改查操作 1.驱动:com.mysql.cj.jdbc.Driver 2.url:jdbc:mysql://localhost:3306/mybatis 3.user:root 4.password:123 三。mybatis
java中如何检测死锁
首先创建一个程序,写两个线程 方法1:使用jstack jstack是java虚拟机自带的一种堆栈跟踪工具。 先用jps查看进程pid信息 使用jstack -l [pid]查看其中的线程信息,可看到Found one Java-level deadlock:及具体的死锁信息展示 方法2:使用jconsole jconsole是jdk自带的内置java性能分析器,用来监控Java应用程序的性
将Double类型转换为String类型
在Java中将String转换为Double 使用Double.toString()方法: 使用String.valueOf()方法: 使用String.format()方法: 无论哪种方法,都可以将一个Double类型的变量或数值转换为相应的String类型。请注意,使用String.format()方法时,可以根据需求格式化输出字符串,其中%f表示浮点数的占位符
tomcat config java option
https://stackoverflow.com/questions/53230473/set-a-basic-java-option-on-tomcat https://docs.oracle.com/cd/E40518_01/integrator.311/integrator_install/src/cli_ldi_server_config.html Follow Tomcat confi
Android Kotlin Retrofit MVP网络请求封装(四)
依赖 上下文 新建http,entity软件包 http网络连接请求封装 entity 实体 在http中封装Result 回调类(接口返回类) 在entity实体中封装UserBean 在http中封装接口请求基本回调抽象类 在http中封装请求工具类HttpHelper 在http中新建Api接口
搭建一个自用的端到端加密服务器 - 以 Matrix-Conduit 为后端
Conduit 是一个用 Rust 编写的、支持基础的 Matrix 协议 的服务器后端。不建议用在生产环境中,因为功能真的很少,只支持基础的加密聊天、语音视频、文件分享,文档又少。如果买了小内存机、想弄一个自用的端到端加密聊天服务器的可以试试。 注意: 它要求 glibc 版本在 2.29 以上,所以至少需要 Debian 11, Ubuntu 20 或 Arch 大法(大雾)。 在 elec
黑马点评(2)- 商户查询缓存
02 商户查询缓存 (0)前期准备 1、接口 根据id查询商铺信息; 更新商铺信息。 ShopController 2、数据库表 (1)缓存是什么 缓存定义:数据交换的缓冲区(Cache),存贮数据的临时地方,一般读写性能高; 缓存使用:如浏览器缓存、应用层缓存、数据库缓存、CPU缓存; 缓存作用:降低后端负载,提高服务读写响应速度; 缓存成本:开发成本、运维成本、一致性问题。 (
数据库中的可视化和探索性:MongoDB的数据可视化和探索性工具
目录1. 引言2. 技术原理及概念2.1 基本概念解释2.2 技术原理介绍2.3 相关技术比较3. 实现步骤与流程3.1 准备工作:环境配置与依赖安装3.2 核心模块实现3.3 集成与测试4. 应用示例与代码实现讲解4.1 应用场景介绍4.2 应用实例分析 文章标题:《45. 数据库中的可视化和探索性:MongoDB的数据可视化和探索性工具》 1. 引言 随着数据量的不断增加和应用场景的不断增多,
Go 数据库连接池的设计与实现
为什么需要连接池 每个连接建立时都会申请内存用来做socket buffer 每个连接都要做三次握手四次挥手 每个连接关闭时都要释放内存空间 在高并发场景下,由于没有连接池的最大连接数限制,可以创建无数个连接,耗尽文件描述符 并发高时,会产生大量的连接,影响系统调度,会占用太多系统资源 连接池设计基本上连接池都会设计以下几个参数: 1)初始连接数:在初始化连接池时就会预先创建好的连接数量,