![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
全栈学习
文章平均质量分 74
全栈学习之路
小熊学Java
2年互联网金融方面的工作经验,CSDN Java领域优质创作者,阿里云社区博客专家,51CTO博客专家博主,担任过项目技术负责人,目前专攻于Java领域,也是全栈工程师哦!
展开
-
推荐一个Java全能学习+面试指南的站点,yyds
从这出的docsify部署,再到用vuepress部署,然后再使用一些主题reco,最后到现在的主题hope,折腾路上真的很难,有时候没解决,查各种也没查到解决办法,好之,结果还是不错的,达到了自己理想的效果,后续也会持续不断完善自己的网站!另外,最近创建了一个编程资料共享群,不定期分享最新资料,有需要的朋友可以扫码进群xiaobear_docsify地址:https://yhx1001.github.io/xiaobear_docsify/#/部分内容有密码,公众号回复密码。原创 2023-07-14 16:18:05 · 284 阅读 · 1 评论 -
JDK 21新特性深度分析,但我用Java 8
JDK21 是2023.09.19发布的正式版Alpha:软件或系统的内部测试版本,仅内部人员使用。一般不向外部发布,通常会有很多 Bug,除非你也是测试人员,否则不建议使用,alpha 就是 α,是希腊字母的第一位,表示最初级的版本,beta 就是 β,alpha 版就是比 beta 还早的测试版,一般都是内部测试的版本。Beta:公开测试版。原创 2023-11-01 23:02:28 · 3334 阅读 · 0 评论 -
常见持久层框架赏析,到底是什么让你选择 MyBatis?
我们重点介绍了 3 种常见的 ORM 持久化框架,那在实际工作中我们又应该如何选择合适的持久层框架呢?从性能角度来看,Hibernate、Spring Data JPA 在对 SQL 语句的掌控、SQL 手工调优、多表连接查询等方面,不及 MyBatis 直接使用原生 SQL 语句方便、高效;从可移植性角度。原创 2023-10-29 15:26:01 · 391 阅读 · 0 评论 -
Java序列化引发的血案
序列化是将内存中的对象信息转化成可以存储或者传输的数据到临时或永久存储的过程。在Java中其实就是把Java对象转换为二进制内容,其本质就是一个byte[]数组反序列化是从临时或永久存储中读取序列化的数据并转化成内存对象的过程。在Java中就是将一个byte[]转换为Java对象的过程主要描述了Java序列化的场景和使用,以及案例分析,在开发中我们还是要注意细节,避开趟坑!原创 2023-05-08 10:45:28 · 595 阅读 · 0 评论 -
流程引擎Activiti流程实例讲解
流程实例(ProcessInstance)代表流程定义的执行实例。一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。例如:用户或程序按照流程定义内容发起一个流程,这就是一个流程实例。原创 2022-12-10 23:11:54 · 661 阅读 · 0 评论 -
流程引擎activiti太难?(看这篇就够了)
Alfresco软件在2010年5月17日宣布Activiti业务流程管理(BPM)开源项目的正式启动,其首席架构师由业务流程管理BPM的专家 Tom Baeyens担任,Tom Baeyens就是原来jbpm的架构师,而jbpm是一个非常有名的工作流引擎,当然activiti也是一个工作流引擎。原创 2022-12-08 21:28:17 · 1388 阅读 · 0 评论 -
安装Oracle、连接Oracle遇到的一系列问题
使用Navicat连接Oracle的一系列问题在Navicat中创建连接时,出现ORA-28009错误解决方法:编辑连接,将用户名修改为system或者其他的用户,但是唯独不能使用sys超级用户点击安装[INS-13001] 环境不满足最低要求 的问题发现其不支持win 10系统,所以需要打开Oracle Client 11g安装包目录,找到/stage/cvu目录下的cvu_prereq.xml文件。然后在这个文件中增加如下内容<OPERATING_SYSTEM RELEASE原创 2022-11-15 08:32:23 · 382 阅读 · 0 评论 -
这篇数据库设计规范建议,我必须分享给你
再具体点, 比如股票表(股票编号, 股票名称,股票市场,股票交易手续费),这个表就不符合第三范式,因为股票交易手续费是依赖股票市场来确定, 需要再拆分为(股票编号, 股票名称)和(股票市场,股票交易手续费)多张表。数据库是一个项目的最底层设计, 如果设计不清晰,结构模糊, 规范混乱,是很难做成一个成功的项目,而这些需要我们从最基本的开始,对数据库有一套明确的设计规范。再细化:有上面的清晰脉络, 再去填充对象的属性, 仔细考量, 适当加入反范式设计, 冗余一些常用信息,这些就需再仔细去细化, 斟酌与权衡。原创 2022-10-31 09:08:40 · 488 阅读 · 0 评论 -
这篇数据库设计规范建议,我必须分享给你
再具体点, 比如股票表(股票编号, 股票名称,股票市场,股票交易手续费),这个表就不符合第三范式,因为股票交易手续费是依赖股票市场来确定, 需要再拆分为(股票编号, 股票名称)和(股票市场,股票交易手续费)多张表。数据库是一个项目的最底层设计, 如果设计不清晰,结构模糊, 规范混乱,是很难做成一个成功的项目,而这些需要我们从最基本的开始,对数据库有一套明确的设计规范。再细化:有上面的清晰脉络, 再去填充对象的属性, 仔细考量, 适当加入反范式设计, 冗余一些常用信息,这些就需再仔细去细化, 斟酌与权衡。原创 2022-10-27 09:49:27 · 460 阅读 · 0 评论 -
CAT链路追踪从入门到实战(看这一篇就够了)
1、为什么要学习?从单体架构到微服务架构的演变, 一个业务请求往往会流转多个服务, 大型互联网产品服务架构尤为复杂,腾讯的抢红包服务, 阿里的交易支付服务, 可能就流转成百上千个服务节点, 面对众多服务, 如何监控管理?服务请求一旦出现问题, 如何快速定位问题?如何保障服务的高可用, 做到全面的监控与预警?如何分析统计服务的运行状况?看下链路监控产品如何解决这些问题。2、什么是CAT?CAT 是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务。原创 2022-10-26 21:59:32 · 2315 阅读 · 0 评论 -
Java字符串拼接选择
一般我们拼接字符串的方式有三种:加号concat方法StringBuilder的append()方法。原创 2022-09-30 09:29:19 · 637 阅读 · 0 评论 -
MyBatis-Plus保姆级快速上手教程
Mybatis简化JDBC操作(简称 MP)是一个的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。原创 2022-09-02 12:40:13 · 370 阅读 · 0 评论 -
Redis最佳实践--键值设计
Key的最佳实践固定格式[业务名][数据名][id]足够简短不超过44字节不包含特殊字符Value的最佳实践合理的拆分数据,拒绝BigKey选择合适数据结构Hash结构的entry数量不要超过1000设置合理的超时时间httpshttpshttpshttpshttpshttpshttps。...原创 2022-07-17 21:25:38 · 497 阅读 · 0 评论 -
Java可视化报表,你需要了解的opencsv操作csv文件!
1、csv文件概述CSV文件:Comma-Separated Values,中文叫逗号分隔值或者字符分割值,其文件以纯文本的形式存储表格数据。该文件是一个字符序列,可以由任意数目的记录组成,记录间以某种换行符分割。每条记录由字段组成,字段间的分隔符是其他字符或者字符串。所有的记录都有完全相同的字段序列,相当于一个结构化表的纯文本形式。用文本文件、excel或者类似与文本文件的编辑器都可以打开CSV文件。为了简化开发,我们可以使用opencsv类库来导出csv文件<dependency>原创 2021-08-20 10:52:33 · 496 阅读 · 0 评论 -
三种方法构建Java树形结构,Stream真的厉害
平时大概率我们会构建一些树形结果返回给前端,比如菜单结构、部门列表、文件结构等,我们一般想到的就是利用递归来循环构建;现在,就我个人解决的方法如下:原始递归利用Java 8 Stream流进行处理(原理还是递归)Stream流升级构建场景构建public class TreeSelect implements Serializable{ /** 节点ID */ private Long id; /** 节点名称 */ private String la.原创 2022-04-08 23:01:29 · 10073 阅读 · 11 评论 -
Java可视化报表设计,你必须学会的写入数据操作!
1、基于模板导出列表数据首先准备一个excel模板,这个模板把复杂的样式和固定的内容先准备好并且放入到项目中,然后读取到模板后向里面放入数据。1、准备工作准备模板内容第二个sheet页把这个模板改一个英文名称比如:userList.xlsx,放入到项目中2、步骤获取模板路径获取我们设置的样式处理数据导出3、实现 /** * 通过模板下载 * @param request * @param response * @原创 2021-08-20 10:38:52 · 638 阅读 · 0 评论 -
Spring Boot @SpringBootApplication原理
启动类注解@SpringBootApplication=@Configuration+@EnableAutoConfiguration+@ComponentScan@Target({ElementType.TYPE}) // 注解的适用范围,其中TYPE用于描述类、接口(包括包注解类型)或enum声明@Retention(RetentionPolicy.RUNTIME)// 注解的生命周期,保...原创 2020-03-30 20:07:15 · 257 阅读 · 0 评论 -
Spring Boot run方法执行流程
SpringApplication的run方法的实现是启动原理探寻的起点,该方法的主要流程大体可以归纳如下:1、如果我们使用的是SpringApplication的静态run方法,那么,这个方法里面首先要创建一个SpringApplication对象实例,然后调用这个创建好的SpringApplication的实例方法。在SpringApplication实例初始化的时候,它会提前做几件事情:...原创 2020-03-30 20:10:31 · 3686 阅读 · 0 评论 -
一看就懂,关于Redis的缓存更新策略
业务场景:低一致性需求:使用内存淘汰机制。例如店铺类型的查询缓存高一致性需求:主动更新,并以超时剔除作为兜底方案。例如店铺详情查询的缓存1、主动更新Cache Aside Pattern:由缓存的调用者,在更新数据库的同时更新缓存Read/Write Through Pattern:缓存与数据库整合为一个服务,由服务维护一致性,调用者调用该服务,无需关心缓存一致性问题Write Behind Caching Pattern:调用者只操作缓存,由其他线程异步的将缓存的数据持久化到数据库,保.原创 2022-05-29 11:27:05 · 2416 阅读 · 1 评论 -
终于有人把内网centos安装libreoffice步骤说清楚了
1、下载安装包下载地址:https://www.libreoffice.org/download/download/例如:LibreOffice_7.1.0.2_Linux_x86-64_rpm.tar.gz2、上传至服务器目录3、解压文件tar -zxvf LibreOffice_7.1.0.2_Linux_x86-64_rpm.tar.gz4、进入文件RPMS目录下cd /opt/libreoffice7.1/LibreOffice_7.1.0.2_Linux_x86-64_rpm/原创 2022-04-24 21:33:48 · 6578 阅读 · 10 评论 -
Spring cloud项目加入对象存储spring cloud oss遇到的问题
加入spring-cloud-starter-alicloud-oss爆红的解决方法指定版本即可 <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alicloud-oss</artifactId> <version>2.2.0.RELEASE&原创 2021-10-13 17:16:02 · 1255 阅读 · 0 评论 -
Java项目中Object(VO,DTO,POJO)的划分,你还在用实体类进行传输?
1.PO(persistant object) 持久对象PO 就是对应数据库中某个表中的一条记录,多个记录可以用PO 的集合。PO 中应该不包含任何对数据库的操作。2.DO(Domain Object)领域对象就是从现实世界中抽象出来的有形或无形的业务实体。3.TO(Transfer Object) ,数据传输对象不同的应用程序之间传输的对象4.DTO(Data Transfer Object)数据传输对象这个概念来源于J2EE 的设计模式,原来的目的是为了EJB 的分布式应用提供粗粒度的数据原创 2021-10-13 09:58:49 · 380 阅读 · 0 评论 -
解决整合Swagger2弹出框的问题
关于swagger2弹出框内容:Unable to infer base url. This is common when using dynamic servlet registration or when the API is behind an API Gateway. The base url is the root of where all the swagger resources are served. For e.g. if the api is available at http://原创 2021-09-18 09:39:10 · 737 阅读 · 0 评论 -
【Java基础语法】安排,写的太好了
1、基本数据类型跟封装类型整型:byte、int、short、long浮点型:float、double字符型:char布尔型:boolean1、基本类型与封装类型数据之间的转换valueOf()public class StringtoNum { //主类名需要和文件名一致 //这是个main 函数public static void main(String[] args)//从数据库里取到的num 是String 类型String num =”123”;//通过Integer原创 2021-09-10 23:35:04 · 496 阅读 · 0 评论 -
关于解决EasyExcel不支持解析List以及实体类对象问题(具体实现+代码)
我之前发发布了《解决EasyExcel不支持解析List以及实体类对象问题》后,很多人不知道该怎么继承,怎么用vo来进行接收,现在完整版+代码来了。介绍解决EasyExcel不支持解析List以及实体类对象问题需求说明连表查询一对多的关系,fir_rating_material表与fir_ratingcard_template和fir_rating_card是一对多的关系解决方法方法一:采用Mybatis的继承关系一对多的关系,就相当于一个list里面又包含另一个list集合,这时候我原创 2021-09-09 15:16:47 · 3698 阅读 · 0 评论 -
Vimc常用运维查看命令,你会用吗
输入”vim 文件名” 打开文件,刚刚时是”一般模式”。一般模式:可以浏览文件内容,可以进行文本快捷操作。如单行复制,多行复制,单行删除,多行删除,(退出)等。插入模式:可以编辑文件内容。底行模式:可以进行强制退出操作,不保存 :q!可以进行保存并退出操作 :wq按下”i”或”a”或”o”键,从”一般模式”,进入”插入模式(编辑模式)”。在编辑模式下按”Esc” 即可到一般模式在一般模式下按”:”,冒号进入底行模式。在一般模式下的快捷键dd ;删除一整行X ;向前删除 等同于windo原创 2021-09-08 09:28:00 · 422 阅读 · 0 评论 -
史上最全Java 8新特性总结,助你在工作事半功倍
1、Lambda表达式1、初体验目标:了解使用匿名内部类存在的问题,体验Lambda匿名内部类存在的问题:当需要启动一个线程去完成任务时,通常会通过Runnable 接口来定义任务内容,并使用Thread 类来启动该线程。1、传统写法public class LambdaIntro01 { public static void main(String[] args) { new Thread(new Runnable() { @Override原创 2021-09-01 09:37:49 · 503 阅读 · 0 评论 -
Java可视化报表,关于easyPoi的使用
1、简介原文档地址:https://easypoi.mydoc.io/ (比较推荐)新地址:http://www.wupaas.com/easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板 语言(熟悉的表达式语法),完成以前复杂的写法Easypoi的目标是什么Easypoi的目标不是替代poi,而是让一个不懂导入导出的快速使用poi完成Excel原创 2021-08-20 10:58:37 · 1895 阅读 · 1 评论 -
Java可视化报表,POI操作word的基本用法
1、API介绍1、操作Word正文XWPFDocument代表一个docx文档,其可以用来读docx文档,也可以用来写docx文档一个文档包含多个段落,一个段落包含多个Runs文本,一个Runs包含多个Run,Run是文档的最小单元获取所有段落:List<XWPFParagraph> paragraphs = word.getParagraphs();获取一个段落中的所有片段Runs:List<XWPFRun> xwpfRuns = xwpfParagraph.g原创 2021-08-20 10:54:02 · 762 阅读 · 0 评论 -
Java可视化数据报表,你还不知道的Excel基本操作吗?
1、Excel简介在企业级应用开发中,Excel报表是一种最常见的报表需求。Excel报表开发一般分为两种形式:1、为了方便操作,基于Excel的报表批量上传数据,也就是把Excel中的数据导入到系统中。2、通过java代码生成Excel报表。也就是把系统中的数据导出到Excel中,方便查阅。1、Excel版本目前世面上的Excel分为两个大的版本Excel2003和Excel2007及以上两个版本;Excel2003Excel2007后缀xlsxlsx结原创 2021-08-20 10:29:57 · 1270 阅读 · 0 评论 -
当你学会了冒泡排序算法
冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。1、算法步骤比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续.原创 2021-08-19 15:29:30 · 154 阅读 · 0 评论 -
时间复杂度VS空间复杂度,你还不会计算吗?
研究算法的最终目的就是如何花更少的时间,如何占用更少的内存去完成相同的需求,并且也通过案例演示了不同算法之间时间耗费和空间耗费上的差异,但我们并不能将时间占用和空间占用量化,因此,接下来我们要学习有关算法时间耗费和算法空间耗费的描述和分析。有关算法时间耗费分析,我们称之为算法的时间复杂度分析,有关算法的空间耗费分析,我们称之为算法的空间复杂度分析。1、时间复杂度1、大O记法在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随着n的变化情况并确定T(n)的量级。算法.原创 2021-08-19 15:27:05 · 313 阅读 · 0 评论 -
Spring Boot常用注解汇总
使用注解的优势:采用纯java代码,不在需要配置繁杂的xml文件在配置中也可享受面向对象带来的好处类型安全对重构可以提供良好的支持减少复杂配置文件的同时亦能享受到springIoC容器提供的功能一、注解详解@SpringBootApplication申明让spring boot自动给程序进行必要的配置,这个配置等同于:@Configuration,@EnableAutoConfiguration 和 @ComponentScan三个配置。@ResponseBody表示该方法的.原创 2021-04-08 12:55:34 · 124 阅读 · 0 评论 -
easyExcel导出自定义表头以及自定义合并单元格
easyExcel导出自定义表头1、自定义拦截器,写入头部样式public class CustomCellWriteHandler extends AbstractCellStyleStrategy implements CellWriteHandler { Workbook workbook; @Override public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder原创 2021-02-23 16:59:22 · 2820 阅读 · 0 评论 -
vue使用element-ui tabs切换echarts 解决宽度100% 问题
vue使用element-ui tabs切换echarts 解决宽度100% 问题问题描述:vue+element项目中使用到了tab切换选项卡,其中有一个tab下的内容是echarts,出现了echarts宽度缩减为100px无法继承100%属性。问题:echarts渲染时tab选项卡display为none,所以width:100%没有可继承项,被echarts自带方法切割成100px。解决思路:销毁组件,在tab选项卡被选中时重新渲染组件,这个时候就会有宽度继承。第一种:通过原创 2021-01-29 17:05:05 · 1482 阅读 · 0 评论 -
解决EasyExcel不支持解析List以及实体类对象问题
1、解决EasyExcel不支持解析List以及实体类对象问题1、EasyExcel支持的类型public enum CellDataTypeEnum { STRING, DIRECT_STRING, NUMBER, BOOLEAN, EMPTY, ERROR, IMAGE; ......}EasyExcel默认支持的为我们常见的类型,但在实际项目中,可能会遇到一对一,一对多的关系,这时候EasyExcel就会报错2、解决办法原创 2020-09-19 22:07:43 · 15712 阅读 · 1 评论 -
Spring Boot整合shiro(eclipse版)
在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是,仅仅从技术角度来说,也可以使用 Shiro。在 Spring Boot 中整合 Shiro ,有两种不同的方案:第一种就是原封不动的,将 SSM 整合 Shiro 的配置用 Java 重写一遍。第二种就是使用 Shiro 官方提供的一个 Starter 来配置,但是,这个 Starter 并没有简化多少配置。这里演示第二种,因之后大多数都是用注解来进行开发1、创建spring Boot.原创 2020-08-11 10:04:47 · 313 阅读 · 0 评论 -
双链表__Josephu(约瑟夫、约瑟夫环) 问题
双向链表,又称为双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。单链表跟双链表的区别:单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找。单向链表不能自我删除,需要靠辅助节点 ,而双向链表,则可以自我删除,所以前面我们单链表删除时节点,总是找到temp,temp是待删除节点的前一个节点1、双链表实现public class .原创 2020-06-10 13:58:07 · 314 阅读 · 0 评论 -
单链表的base_高频面试题
链表是有序的列表,但是它在内存中是存储如下链表是以节点的方式来存储,是链式存储每个节点包含 data 域, next 域:指向下一个节点.如图:发现链表的各个节点不一定是连续存储.链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定1、单链表1、CURD添加:直接添加在节点尾部public class SingleLinkedList { public static void main(String[] args) { /** .原创 2020-06-09 16:23:01 · 197 阅读 · 0 评论 -
JavaWeb--随机验证码__登录页面验证码验证
Utils类package com.xiaobear;import javax.imageio.ImageIO;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.awt.image.BufferedImage;import java.io.IOException;import java.io.OutputStream;import jav原创 2020-06-05 22:11:35 · 1127 阅读 · 0 评论