
全栈学习
文章平均质量分 75
全栈学习之路
小熊学Java
3年互联网金融方面的工作经验,优快云 Java领域优质创作者,阿里云社区博客专家,51CTO博客专家博主,担任过项目技术负责人,目前专攻于Java领域,也是全栈工程师哦!
展开
-
16个Redis应用场景大揭秘,你用过几个?
通过原子操作,如INCR命令,可以生成自增ID,适用于订单号、用户ID等需要唯一标识的场景。String 类型,因为 Redis 是分布式的独立服务,可以在多个应用之间共享,使用 Redis 实现分布式 Session。今天来聊聊Redis的那些事儿,你可能不知道,Redis在我们的日常开发中有着超多的应用场景,下面我就来给大家逐一揭秘!value:商品数量。原创 2025-01-08 20:24:41 · 894 阅读 · 1 评论 -
Spring Boot请求参数读取+Vue调用,6大技巧全揭秘!
注解描述前端调用从查询参数中读取数据,如?从路径参数中读取数据,如/user/1从;分隔的路径参数中读取数据isbn=1234;topN=5')从请求体中读取复杂数据(JSON)从请求头中读取数据从 Cookie 中读取数据浏览器会自动携带同源 Cookie这些注解涵盖了 Spring Boot 接收参数的不同场景,结合前端 Vue 示例,可以快速开发前后端联动的功能。希望这份总结对大家有所帮助!如果你有其他用法,欢迎补充~ 😊。原创 2025-01-03 15:03:42 · 371 阅读 · 0 评论 -
程序员BOSS直聘,这样打招呼回复率翻倍!
如果有任何需要我进一步解释的地方,或者对我的简历有任何疑问,我随时愿意与您沟通。您好,我是[您的名字],之前在招聘平台上向贵公司投递了一份简历,应聘互联网开发岗位。您好,我仔细阅读了贵公司发布的互联网开发岗位JD,发现它非常符合我的求职预期,我对贵公司发布的这个岗位非常感兴趣。如果贵公司觉得我合适,我愿意发送我的简历,我们可以进一步沟通。您好,我看了贵公司的互联网开发岗位,觉得很符合我的求职预期,对这个岗位非常感兴趣。如果贵公司觉得我合适,我愿意发送我的简历,我们可以进一步沟通。原创 2024-11-09 23:31:30 · 1020 阅读 · 0 评论 -
Java中大对象复用的目标和注意点,以及优化方案
最后我们总结一下:首先,我们看了比较老的 JDK 版本中,String 为了复用引起的内容泄漏问题,所以我们平常的编码中,一定要注意大对象的回收,及时切断与它的联系。接下来,我们看了 Java 中集合的一些扩容操作,如果你知道确切的集合大小,就可以指定一个初始值,避免耗时的扩容操作。针对大对象,我们有结构纬度的优化和时间维度的优化两种方法:从结构纬度来说,通过把对象切分成合适的粒度,可以把操作集中在小数据结构上,减少时间处理成本;通过把对象进行压缩、转换,或者提取热点数据。原创 2024-08-24 15:29:28 · 1242 阅读 · 0 评论 -
案例分析:常用的Java代码优化法则
代码优化方法从缓冲、缓存、池化对象、大对象复用、并行计算、锁优化、NIO 等优化方法,它们对性能的提升往往是质的飞跃。但语言本身对性能也是有影响的,比如就有很多公司就因为语言的特性由 Java 切换到 Golang。对于 Java 语言来说,也有它的一套优化法则,这些细微的性能差异,经过多次调用和迭代,会产生越来越大的影响。今天我们一起看看一些常用的代码优化法则,从而在编码中保持好的习惯,让代码保持最优状态。原创 2024-08-21 12:23:31 · 1130 阅读 · 0 评论 -
BigDecimal你了解吗,遇到过哪些坑?
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(String) 和Float.valueOf(String)会丢失精度。所以开发中,如果我们需要精确计算的结果,则必须使用BigDecimal类来操作。原创 2024-08-02 12:23:38 · 635 阅读 · 0 评论 -
推荐一个Java全能学习+面试指南的站点,yyds
从这出的docsify部署,再到用vuepress部署,然后再使用一些主题reco,最后到现在的主题hope,折腾路上真的很难,有时候没解决,查各种也没查到解决办法,好之,结果还是不错的,达到了自己理想的效果,后续也会持续不断完善自己的网站!另外,最近创建了一个编程资料共享群,不定期分享最新资料,有需要的朋友可以扫码进群xiaobear_docsify地址:https://yhx1001.github.io/xiaobear_docsify/#/部分内容有密码,公众号回复密码。原创 2023-07-14 16:18:05 · 394 阅读 · 1 评论 -
JDK 21新特性深度分析,但我用Java 8
JDK21 是2023.09.19发布的正式版Alpha:软件或系统的内部测试版本,仅内部人员使用。一般不向外部发布,通常会有很多 Bug,除非你也是测试人员,否则不建议使用,alpha 就是 α,是希腊字母的第一位,表示最初级的版本,beta 就是 β,alpha 版就是比 beta 还早的测试版,一般都是内部测试的版本。Beta:公开测试版。原创 2023-11-01 23:02:28 · 3955 阅读 · 0 评论 -
常见持久层框架赏析,到底是什么让你选择 MyBatis?
我们重点介绍了 3 种常见的 ORM 持久化框架,那在实际工作中我们又应该如何选择合适的持久层框架呢?从性能角度来看,Hibernate、Spring Data JPA 在对 SQL 语句的掌控、SQL 手工调优、多表连接查询等方面,不及 MyBatis 直接使用原生 SQL 语句方便、高效;从可移植性角度。原创 2023-10-29 15:26:01 · 466 阅读 · 0 评论 -
Java序列化引发的血案
序列化是将内存中的对象信息转化成可以存储或者传输的数据到临时或永久存储的过程。在Java中其实就是把Java对象转换为二进制内容,其本质就是一个byte[]数组反序列化是从临时或永久存储中读取序列化的数据并转化成内存对象的过程。在Java中就是将一个byte[]转换为Java对象的过程主要描述了Java序列化的场景和使用,以及案例分析,在开发中我们还是要注意细节,避开趟坑!原创 2023-05-08 10:45:28 · 671 阅读 · 0 评论 -
流程引擎Activiti流程实例讲解
流程实例(ProcessInstance)代表流程定义的执行实例。一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。例如:用户或程序按照流程定义内容发起一个流程,这就是一个流程实例。原创 2022-12-10 23:11:54 · 813 阅读 · 0 评论 -
流程引擎activiti太难?(看这篇就够了)
Alfresco软件在2010年5月17日宣布Activiti业务流程管理(BPM)开源项目的正式启动,其首席架构师由业务流程管理BPM的专家 Tom Baeyens担任,Tom Baeyens就是原来jbpm的架构师,而jbpm是一个非常有名的工作流引擎,当然activiti也是一个工作流引擎。原创 2022-12-08 21:28:17 · 1599 阅读 · 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 · 465 阅读 · 0 评论 -
这篇数据库设计规范建议,我必须分享给你
再具体点, 比如股票表(股票编号, 股票名称,股票市场,股票交易手续费),这个表就不符合第三范式,因为股票交易手续费是依赖股票市场来确定, 需要再拆分为(股票编号, 股票名称)和(股票市场,股票交易手续费)多张表。数据库是一个项目的最底层设计, 如果设计不清晰,结构模糊, 规范混乱,是很难做成一个成功的项目,而这些需要我们从最基本的开始,对数据库有一套明确的设计规范。再细化:有上面的清晰脉络, 再去填充对象的属性, 仔细考量, 适当加入反范式设计, 冗余一些常用信息,这些就需再仔细去细化, 斟酌与权衡。原创 2022-10-31 09:08:40 · 556 阅读 · 0 评论 -
这篇数据库设计规范建议,我必须分享给你
再具体点, 比如股票表(股票编号, 股票名称,股票市场,股票交易手续费),这个表就不符合第三范式,因为股票交易手续费是依赖股票市场来确定, 需要再拆分为(股票编号, 股票名称)和(股票市场,股票交易手续费)多张表。数据库是一个项目的最底层设计, 如果设计不清晰,结构模糊, 规范混乱,是很难做成一个成功的项目,而这些需要我们从最基本的开始,对数据库有一套明确的设计规范。再细化:有上面的清晰脉络, 再去填充对象的属性, 仔细考量, 适当加入反范式设计, 冗余一些常用信息,这些就需再仔细去细化, 斟酌与权衡。原创 2022-10-27 09:49:27 · 531 阅读 · 0 评论 -
CAT链路追踪从入门到实战(看这一篇就够了)
1、为什么要学习?从单体架构到微服务架构的演变, 一个业务请求往往会流转多个服务, 大型互联网产品服务架构尤为复杂,腾讯的抢红包服务, 阿里的交易支付服务, 可能就流转成百上千个服务节点, 面对众多服务, 如何监控管理?服务请求一旦出现问题, 如何快速定位问题?如何保障服务的高可用, 做到全面的监控与预警?如何分析统计服务的运行状况?看下链路监控产品如何解决这些问题。2、什么是CAT?CAT 是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务。原创 2022-10-26 21:59:32 · 2795 阅读 · 0 评论 -
Java字符串拼接选择
一般我们拼接字符串的方式有三种:加号concat方法StringBuilder的append()方法。原创 2022-09-30 09:29:19 · 708 阅读 · 0 评论 -
MyBatis-Plus保姆级快速上手教程
Mybatis简化JDBC操作(简称 MP)是一个的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。原创 2022-09-02 12:40:13 · 404 阅读 · 0 评论 -
Redis最佳实践--键值设计
Key的最佳实践固定格式[业务名][数据名][id]足够简短不超过44字节不包含特殊字符Value的最佳实践合理的拆分数据,拒绝BigKey选择合适数据结构Hash结构的entry数量不要超过1000设置合理的超时时间httpshttpshttpshttpshttpshttpshttps。...原创 2022-07-17 21:25:38 · 625 阅读 · 0 评论 -
Java可视化报表,你需要了解的opencsv操作csv文件!
1、csv文件概述CSV文件:Comma-Separated Values,中文叫逗号分隔值或者字符分割值,其文件以纯文本的形式存储表格数据。该文件是一个字符序列,可以由任意数目的记录组成,记录间以某种换行符分割。每条记录由字段组成,字段间的分隔符是其他字符或者字符串。所有的记录都有完全相同的字段序列,相当于一个结构化表的纯文本形式。用文本文件、excel或者类似与文本文件的编辑器都可以打开CSV文件。为了简化开发,我们可以使用opencsv类库来导出csv文件<dependency>原创 2021-08-20 10:52:33 · 547 阅读 · 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 · 10661 阅读 · 11 评论 -
Java可视化报表设计,你必须学会的写入数据操作!
1、基于模板导出列表数据首先准备一个excel模板,这个模板把复杂的样式和固定的内容先准备好并且放入到项目中,然后读取到模板后向里面放入数据。1、准备工作准备模板内容第二个sheet页把这个模板改一个英文名称比如:userList.xlsx,放入到项目中2、步骤获取模板路径获取我们设置的样式处理数据导出3、实现 /** * 通过模板下载 * @param request * @param response * @原创 2021-08-20 10:38:52 · 717 阅读 · 0 评论 -
Spring Boot @SpringBootApplication原理
启动类注解@SpringBootApplication=@Configuration+@EnableAutoConfiguration+@ComponentScan@Target({ElementType.TYPE}) // 注解的适用范围,其中TYPE用于描述类、接口(包括包注解类型)或enum声明@Retention(RetentionPolicy.RUNTIME)// 注解的生命周期,保...原创 2020-03-30 20:07:15 · 297 阅读 · 0 评论 -
Spring Boot run方法执行流程
SpringApplication的run方法的实现是启动原理探寻的起点,该方法的主要流程大体可以归纳如下:1、如果我们使用的是SpringApplication的静态run方法,那么,这个方法里面首先要创建一个SpringApplication对象实例,然后调用这个创建好的SpringApplication的实例方法。在SpringApplication实例初始化的时候,它会提前做几件事情:...原创 2020-03-30 20:10:31 · 3913 阅读 · 0 评论 -
一看就懂,关于Redis的缓存更新策略
业务场景:低一致性需求:使用内存淘汰机制。例如店铺类型的查询缓存高一致性需求:主动更新,并以超时剔除作为兜底方案。例如店铺详情查询的缓存1、主动更新Cache Aside Pattern:由缓存的调用者,在更新数据库的同时更新缓存Read/Write Through Pattern:缓存与数据库整合为一个服务,由服务维护一致性,调用者调用该服务,无需关心缓存一致性问题Write Behind Caching Pattern:调用者只操作缓存,由其他线程异步的将缓存的数据持久化到数据库,保.原创 2022-05-29 11:27:05 · 2543 阅读 · 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 · 8158 阅读 · 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 · 1405 阅读 · 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 · 459 阅读 · 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 · 796 阅读 · 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 · 548 阅读 · 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 · 4116 阅读 · 0 评论 -
Vimc常用运维查看命令,你会用吗
输入”vim 文件名” 打开文件,刚刚时是”一般模式”。一般模式:可以浏览文件内容,可以进行文本快捷操作。如单行复制,多行复制,单行删除,多行删除,(退出)等。插入模式:可以编辑文件内容。底行模式:可以进行强制退出操作,不保存 :q!可以进行保存并退出操作 :wq按下”i”或”a”或”o”键,从”一般模式”,进入”插入模式(编辑模式)”。在编辑模式下按”Esc” 即可到一般模式在一般模式下按”:”,冒号进入底行模式。在一般模式下的快捷键dd ;删除一整行X ;向前删除 等同于windo原创 2021-09-08 09:28:00 · 511 阅读 · 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 · 587 阅读 · 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 · 2014 阅读 · 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 · 906 阅读 · 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 · 1385 阅读 · 0 评论 -
当你学会了冒泡排序算法
冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。1、算法步骤比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续.原创 2021-08-19 15:29:30 · 196 阅读 · 0 评论 -
时间复杂度VS空间复杂度,你还不会计算吗?
研究算法的最终目的就是如何花更少的时间,如何占用更少的内存去完成相同的需求,并且也通过案例演示了不同算法之间时间耗费和空间耗费上的差异,但我们并不能将时间占用和空间占用量化,因此,接下来我们要学习有关算法时间耗费和算法空间耗费的描述和分析。有关算法时间耗费分析,我们称之为算法的时间复杂度分析,有关算法的空间耗费分析,我们称之为算法的空间复杂度分析。1、时间复杂度1、大O记法在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随着n的变化情况并确定T(n)的量级。算法.原创 2021-08-19 15:27:05 · 364 阅读 · 0 评论 -
Spring Boot常用注解汇总
使用注解的优势:采用纯java代码,不在需要配置繁杂的xml文件在配置中也可享受面向对象带来的好处类型安全对重构可以提供良好的支持减少复杂配置文件的同时亦能享受到springIoC容器提供的功能一、注解详解@SpringBootApplication申明让spring boot自动给程序进行必要的配置,这个配置等同于:@Configuration,@EnableAutoConfiguration 和 @ComponentScan三个配置。@ResponseBody表示该方法的.原创 2021-04-08 12:55:34 · 162 阅读 · 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 · 3016 阅读 · 0 评论