- 博客(233)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 Java程序员学习算法路线规划总结
数组(Array)链表(Linked List)栈(Stack)队列(Queue)树(Tree)图(Graph)哈希表(Hash Table)
2023-09-11 18:09:59
3803
原创 PulsarMQ系列入门篇
PulsarMQ 现托管于apache Apache 软件基金会顶级项目,2016年由雅虎公司开源的分布式多租户消息中间件 ,是下一代云原生分布式消息流平台,集消息、存储、轻量化函数计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、跨区域复制、具有强一致性、高吞吐、低延迟及高可扩展性等流数据存储特性。etcd、ZooKeeper 和 Nacos 都是分布式存储和协调工具,用于管理和维护分布式系统中的元数据信息,例如配置信息、服务发现、任务调度等。在共享订阅类型中,消息是单独确认的。
2023-06-15 19:35:53
5142
原创 Linux下安装JKD17(openjdk)
JDK 17于2021年9月14日正式发布(General-Availability Release)。JDK17将是大多数供应商的长期支持(LMS)版本。上一个LTS版本是JDK 11。Linux安装JKD17下安装首先需要搞清楚自己的机子是多少位的!!!重点!!!
2023-06-15 15:45:30
12986
原创 Protobuf详解
Protobuf(Google Protocol Buffers),官方文档对 protobuf 的定义:protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,可用于数据通信协议和数据存储等,它是 Google 提供的一个具有高效协议数据交换格式工具库,是一种灵活、高效和自动化机制的结构数据序列化方法。因此,您可以根据自己的设计需求定义专属于您的标记。7.实践应用:通过实际应用案例来巩固您对 Protocol Buffers 的理解,并使用其提供的优势简化您的代码。
2023-05-12 11:28:11
4143
原创 JdbcTemple常见错误
nested exception is java.sql.SQLException: ORA-17041: 索引中丢失 IN 或 OUT 参数:: 15。1.queryForObject,queryForList的进行泛型映射时,常见会报错说应该是多少条错误,实际是多少条,一般需要有至少有一条记录,最安全的做法是在这个方式时进行映射,直接获取map,再自己java处理。sql错误,检查是否拼接的时候是否应为 id in (1,2),漏了苹姐id in等这种写法。
2023-05-09 10:20:33
861
原创 关于分页查询
所以大数据量查询最大的问题就是就是如何在大数据量下突破瓶颈,如何在1000w+的数据上还可以让我们的数据速度足够快捷。那我们就不能使用深分页了,非必要不count,前端展示默认不总条数,不适应跳页,或者限制跳页智能跳到前面的,使用标准查询条件+上一页最后一个id,按创建时间或者id排序或者两个条件综合去获取,这个要看id是否是趋势递增的,然后每次limit返回多少条,一页一页查。传统的分页都是使用的limit和skip去处理数据库分页查询,当数据量不算大的时候这是可以的,不会造成业务阻塞。
2023-04-21 11:33:31
614
原创 工作流Flowable基础篇
工作流,是把业务之间的各个步骤以及规则进行抽象和概括性的描述。使用特定的语言为业务流程建模,让其运行在计算机上,并让计算机进行计算和推动。Flowable就是工作流的一种具体实现。Flowable是一个流行的轻量级的采用Java开发的业务流程引擎。通过Flowable流程引擎,我们可以部署BPMN2.0的流程定义(一般为XML文件),通过流程定义创建流程实例,查询和访问流程相关的实例与数据等等。
2023-04-06 14:00:14
920
原创 JUC三大工具类(CountDownLatch,CyclicBarrier,Semaphore)
【代码】JUC三大工具类(CountDownLatch,CyclicBarrier,Semaphore)
2023-03-15 23:07:59
529
原创 算法题BM1:反转链表
将链表反转,就是将每个表元的指针从向后变成向前,那我们可以遍历原始链表,将遇到的节点一一指针逆向即可。不过就是断掉当前节点向后的指针,改为向前罢了。step 3:遍历整个链表,每到一个节点,断开当前节点与后面节点的指针,并用临时变量记录后一个节点,然后当前节点指向上一个节点,即可以将指针逆向。step 2:我们可以设置两个指针,一个当前节点的指针,一个上一个节点的指针(初始为空)。step 4:再轮换当前指针与上一个指针,让它们进入下一个节点及下一个节点的前序节点。
2023-03-02 22:10:58
361
原创 Java字符串反转以及数组集合转换的方法
不同的是,StringBuffer 是线程安全的,而 StringBuilder 则没有实现线程安全功能,所以性能略高。Char字符,可以理解为看见的元素即为字符,char在java中表示单个字符,一个字母一个数字一个汉一个符号都可以是字符,汉字占的的字节数为2。Array不可变数组,在Java中数组是不可变的,Array不是关键字,Java中写法为: String[] arr;String类是字符串常量,是不可更改的常量。String字符串,简单理解即一串拼接在一起的字符,在Java中为常量,不可修改。
2023-03-02 17:00:02
1504
原创 Elasticsearch总结笔记
底层使用的lucene引擎,lucene引擎直接使用相对复杂,有一定的学习成本,同样是使用Java编写,Elasticsearch使用的rest风格的进行交互,而数据呢则是以JSON的方式进行传输。学习Elasticsearch要求使用的JDK版本在8以上。Elasticsearch主要用于检索,尤其是其全文检索的能力,以及自带乐观锁以及友好的集群,让它越来越受欢迎。使用Elasticsearch首先要指定是如何定位数据。即三要素进行定位,index索引,type类型,id主键(_index,_typ.
2023-02-27 13:39:59
1252
原创 JVM基础概念总结
2.GC即垃圾回收机制,分ygc和fgc。分别为新生代回收和全范围回收。1.对象进堆,方法进栈,类信息方法区,堆内有新老代。堆,栈,方法区,本地方法栈,程序计数器。方法区:存放类相关的所有信息。程序计数器:执行计算相关事项。本地方法栈:非Java方法。
2023-02-27 13:35:08
158
原创 关系型数据之分区分表分库
一般优先垂直分库,之后再进行水平分库,常见商品库里,商品的记录很多,单表1500W+,可将原本的DB,变为DB1,DB2,结构一致,将数据根据id,进行%2+1然后分别插入(算法可以自定义),这样一个库就只有750W了,弊端数据库实例过多,导致运营维护不便。一个表的字段过多,根据实际业务访问获取数据的字段,将其拆分成两个表,就类似于副表,相当于单表转为一对一,如商品订单详情表,将订单的时间,商品各种基本信息作为主表,相对不重要的东西,或者需要点击多一步的东西作为副本表,通过增加访问接口的形式实现加速。
2023-02-21 15:33:10
666
转载 Java线程中wait、await、sleep、yield、join用法总结
1.Thread.yield():一定是当前线程调用此方法,当前线程放弃获取CPU的时间片,由运行态转变为就绪态,让操作系统中再次选择线程执行。2.t.join()/t.join(long millis):当前线程调用t2.join()方法,当前线程阻塞但是不会释放对象锁,直到t2线程执行完毕或者millis时间到,则当前的线程恢复就绪状态。obj.wait()/obj.wait(long timeout)是Object中的方法,当线程调用wait()方法,当前线程释放对象锁,进入等待队列。
2023-02-20 21:56:40
1429
转载 详解MySQL执行计划EXPLAIN
要对执行计划有个比较好的理解,需要先对 MySQL 的基础结构及查询基本原理有简单的了解。MySQL 本身的功能架构分为三个部分,分别是 应用层、逻辑层、物理层,不只是 MySQL ,其他大多数数据库产品都是按这种架构来进行划分的。1.应用层,主要负责与客户端进行交互,建立链接,记住链接状态,返回数据,响应请求,这一层是和客户端打交道的。2.逻辑层,主要负责查询处理、事务管理等其他数据库功能处理,以查询为例。
2023-02-19 21:28:26
297
转载 Java实现常用设计模式之工厂模式
意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何时使用:我们明确地计划不同条件下创建不同实例时。如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。关键代码:创建过程在其子类执行。应用实例: 1、您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。2、Hibernate 换数据库只需换方言和驱动就可以。优点。
2022-10-28 14:47:29
874
转载 Java实现常用设计模式之策略模式
意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。如何解决:将这些算法封装成一个一个的类,任意地替换。关键代码:实现同一个接口。应用实例: 1、诸葛亮的锦囊妙计,每一个锦囊就是一个策略。2、旅行的出游方式,选择骑自行车、坐汽车,每一种旅行方式都是一个策略。3、JAVA AWT 中的 LayoutManager。优点: 1、算法可以自由切换。
2022-10-27 17:45:00
769
转载 Java实现常用设计模式之观察者模式
意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。如何解决:使用面向对象技术,可以将这种依赖关系弱化。关键代码:在抽象类里有一个 ArrayList 存放观察者们。应用实例: 1、拍卖的时候,拍卖师观察最高标价,然后通知给其他竞价者竞价。
2022-10-26 12:01:44
7024
1
转载 经典秒杀之八个维度讲解秒杀系统架构分析与实战
互联网正在高速发展,使用互联网服务的用户越多,高并发的场景也变得越来越多。电商秒杀和抢购,是两个比较典型的互联网高并发场景。虽然我们解决问题的具体技术方案可能千差万别,但是遇到的挑战却是相似的,因此解决问题的思路也异曲同工。来源 | my.oschina.net/xianggao/blog/524943分割线 卡通。
2022-10-18 18:07:17
252
原创 Spring MongoDB利用反射构建Spring的Update对象进行动态修改值
业务线时间紧没有进行抽代码,先能用就行,有个问题就是如果遇到冗余的自定义对象如集合或者对象应该排除字段,或者get属性之后进行递归判断操作或者自行getset处理值再set进去。起初是使用的fastjson序列化又转回来,然后进行处理set值,后面发现很大的问题,就是比如date类型会变成string类型的时间戳等等一些乱七八糟的小问题。:思路传对象,将对象进行处理获取有没有映射特殊字段,没有则使用属性作为key,应该修改的值作为value进行set。
2022-09-28 17:14:25
768
原创 计算机常用端口号以及对应服务总结
3.端口23,服务telnet。6.端口443,服务https。5.端口80,服务http。1.端口21,服务FTP。2.端口22,服务SSH。4.端口53,服务DNS。
2022-09-03 18:49:40
2016
原创 IDEA使用默认的maven构建的springboot项目启动异常
创建springboot项目的时候,我们可以使用脚手架创建也可以使用普通maven的方式创建,使用普通maven创建的项目一般需要自己配置根目录,根配置文件目录,且有的时候配置文件无法出现带有叶子的样式,需要手动配置。如果自己手动配置之后还是不正常的话,请删除IDEA目录下的文件,重启项目,重新加载为MAVEN项目即可正常使用。检查以上位置是否都正常。...
2022-08-27 16:31:22
747
转载 JAVA接收带时区模板表达式写法
转载样例连接:https://blog.youkuaiyun.com/m0_57302315/article/details/121380113。也可以在spring的DateTimeFormat中使用!可结合前后端以及数据库综合使用!对应Java格式化,写法。
2022-08-12 12:44:32
853
转载 ES宽表查询常见问题
ES宽表查询常见问题,本帖指的是想关联的子文档集合,以属性的形式嵌套在我们的父文档中:直接创建索引插入文档执行布尔查询:很明显不应该命中,然而出现这种原因是因为user默认是普通对象,在没有声明的情况下,会变成平铺式,所以就绕过了这个查询的联合match怎么避免呢,可以使用es的特性指定对象是nested。测试使用原来的语句终于不会被绕过去了,但是修改成user.last改成"White"也不行,其实是其有自己特定的语法:结果:而last使用Smith是不行,修复问题了......
2022-06-16 14:57:44
1037
原创 MongoDB之视图脚本操作以及Java程序代码操作
这里我们还是使用此前lookup文章的脚本。执行后,使用navicat15版本可以看见视图已经成功创建。删除视图使用脚本操作查询创建springboot项目配置连接以及给mongodb配置驼峰映射,日志打印注意视图对象是只读集合喔,只能进行查询操作!!Java实体类:以spring的mongoTemple为例子,编写测试用例运行结果:...
2022-06-10 11:01:03
826
原创 加密算法概念分类,以及使用通俗的例子说明什么是可逆算法,不可逆算法,对称加密算法,非对称加密算法
这里就不引用百科长长的概念解释了,通俗的说可逆即是可以将密文再次转为明文即为可逆。这里同样不引用百科长长的概念解释了,通俗的说可逆即是不可以将密文再次转为明文即为可逆。引用360百科解释引用360百科解释看完以上概念,应该对这四中分类有一定的了解,那么实际上呢,四种分类评判的维度不完全一致,而细心的小伙伴则会发现,实际上可逆加密是包含非对称加密和对称加密的,为什么这样说呢,因为对称和非对称,实际上都是为了保证数据的安全传输,本质是需要传输后解析,获取回原来的数据的,所以先决条件就是必须可逆。1.不可逆算法,
2022-06-09 00:09:08
2717
原创 MongoDB之多表关联查询-$lookup
文章目录一、聚合框架二、 $lookup的功能及语法三、案例一、聚合框架聚合框架是MongoDB的高级查询语言,它允许我们通过转换和合并多个文档中的数据来生成新的单个文档中不存在的信息。聚合管道操作主要包含下面几个部分:命令 功能描述 备注$project 指定输出文档里的字段 $match 选择要处理的文档,与fine()类似 $limit 限制传递给下一步的文档数量 $skip 跳过一定数量的文档 $unwind 扩展数组,为每个数组入口生成一个输出文档
2022-05-25 23:00:35
11903
原创 MongoDB封装分页方法统一返回Spring封装的Page分页对象
import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.domain.Page;import org.springframework.data.domain.PageImpl;import org.springframework.data.domain.PageRequest;import org.springframework.data.domain.Pageable
2022-05-20 15:16:29
641
原创 MongoDB之解决spring data mongodb使用Example无法查询到MongoDB中的数据问题
文章目录1.给springboot配置默认打印sql执行2.使用可视化工具先执行我们想使用的测试用例3.运行代码,查看日志1.给springboot配置默认打印sql执行application.properties里面加入logging.level.org.springframework.data.mongodb.core= DEBUG2.使用可视化工具先执行我们想使用的测试用例这是一个简单的模糊匹配!!3.运行代码,查看日志发现混入了一个很奇怪的_class字段,解决办法忽略该字段
2022-05-20 11:16:47
1417
转载 mysql排序字段为空的排在最后面
排序字段为orderid;1、使用order by orderid desc实现降序时,orderid 为null数据的会排在数据的最后面;但是,order by orderid升序时,orderid 为null的数据则会排在最前面,如果想要将orderid为null的数据排在最后,就需要加上is null。select * from user u order by u.orderid is null, u.orderid————————————————版权声明:本文为优快云博主「Chris
2022-05-10 16:59:02
5666
原创 layui复选框跨页回显
文章目录全局JS声明变量监听的复选框函数table的渲染处理抽取的回显函数全局JS声明变量var ids = [];//选中的数据var dataArr= [];//当前页面数据var id='lineId';监听的复选框函数table.on('checkbox(test)', function(obj) { let checked = obj.checked; //当前选择的状态,是否选中 let tempAllCheckDatas=[];
2022-05-09 16:57:47
976
原创 Java如何完整使用获取操作日志拦截请求参数
文章目录1.最传统的方式2.restful的方式3.使用了json方式即用了@requestBody注解简介:由于发展springmvc发展,请求的写法已经有好几种类型,现有获取请求参数要根据不同情况获取。主要有三种,传统,以及restful以及使用json形式参数放在请求体中传输1.最传统的方式即非json,非restful的方式,获取方式为:request.getParameterMap();2.restful的方式request.getAttribute(HandlerMapping.UR
2022-04-21 18:06:50
892
原创 Java实现最简易延时任务的操作
代码如下:Timer timer = new Timer();timer.schedule(new TimerTask() { @Override public void run() { System.out.println(LocalDateTime.now()+"执行了延时任务"); }}, 10000);这是同步代码,改造成异步即可
2022-03-29 11:26:18
810
vue-admin-template.zip
2020-12-08
git community Book 中文版.zip
2020-08-15
用springboot整合es使用nested映射类型错误问题
2022-06-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人