- 博客(110)
- 收藏
- 关注
原创 使用插件快速完成yapi文档
后端开发人员写文档,可以借助工具,快速生成文档。本文主要介绍生成到yapi环境:● idea2020.1● 插件 POJO TO JSON● 插件 EasyYapi使用EasyYapi的优势:可以导出Markdown文档,可以兼容许多地方,只需要将Mackdown粘贴到需要的地方即可安装好插件重启后,配置好easyapi路径获取token值得获取然后定位到需要生成的controller -->右键 ,选择导出MD文件选择文件的存放路径就能得到一个md接口文档如果需
2022-03-25 16:55:07
625
原创 【解决】long类型和前端交互精度丢失问题
问题:前后端交互,当后端传一些值给前端的时候,如果是long类型,有可能会出现数字太大而前端接收不了(java中的long大于js的number)而导致数据不一致,精度会丢失。分析:前端接收不了long类型。需要特别注意传的long类型值。如何实现不想修改数据库,又要确保前端能顺利接收到long类型的数据呢?使用该注解,在字段上面加上即可 @JSONField(serializeUsing = ToStringSerializer.class) private Long id;
2022-03-17 17:05:18
6361
原创 Mysql建表脚本转ClickHouse建表脚本
MySql建表脚本转CK前置知识主要是类型的转换、和空、非空的问题整形ClickHouse则直接使用Int8、Int16、Int32和Int64指代4种大小的Int类型,其末尾的数字正好表明了占用字节的大小(8位=1字节)mysql中: int(M)的作用于int的范围明显是无关的,int(M)只是用来显示数据的宽度,我们能看到的宽度。当字段被设计为int类型,那么它的范围就已经被写死了(-2147483648~2147483647),与M无关。CK的NOT NULL、N
2022-03-09 12:36:18
2146
原创 哈夫曼编码译码
题目编写一个哈夫曼编码译码程序。按词频从小到大的顺序给出各个字符(不超过30个)的词频,根据词频构造哈夫曼树,给出每个字符的哈夫曼编码,并对给出的语句进行译码。为确保构建的哈夫曼树唯一,本题做如下限定:(1)选择根结点权值最小的两棵二叉树时,选取权值较小者作为左子树。(2)若多棵二叉树根结点权值相等,按先后次序分左右,先出现的作为左子树,后出现的作为右子树。生成哈夫曼编码时,哈夫曼树左分支标记为0,右分支标记为1。【输入格式】第一行输入字符个数n;第二行到第n行输入相应的字符及其权值;
2021-12-31 19:38:05
8233
23
原创 奇怪的Andy,奇怪的旅行(无向图——邻接链表)
题目:在地球上有一个奇怪的国家,这个国家有 n 个城市,但却只有 n−1 条道路,但是每个城市之间都可以互相到达。某天 Andy 来到了这个国家,但是他以前没有出去旅游,真是个奇怪的人呢。他来到了这个国家进行一次旅行,想花尽量少的钱走过更多的城市,他不想走回头路,因为这样会多花钱,真是个抠门的人呢。已知的是 dh 可以任意选一个城市作为他旅行的起点。现在他找到你,他想知道他最多能走过多少个城市。【输入格式】第一行一个整数 n 表示这个国家的城市数量。接下来 n−1行,每一行有两个整数 (u,v
2021-12-28 23:05:45
2394
11
原创 将本地SpringBoot项目发布到云服务器
如何将本地的SpringBoot项目发布到云服务器环境、准备一台云服务器(我的是linux系统)一个能运行的SpringBoot项目xsheel或者连接云服务器的软件编辑器IDEA首先对本地的项目打包成jar包1.配置打包项目的依赖在主pom.xml里添加<build> <plugins> <plugin> <groupId>org.springframework.boot</group
2021-12-26 19:20:44
2421
2
原创 那为啥书上说str1必须足够长?
今天遇到一个问题strcat(str1,str2)中:如果str1不够长的话,会怎样?(是不是只会连接一部分str2的内容啊?)答案是:如果str1不够长,那么该程序可能会出现bug来直接看结果可见,虽然给str1申请的长度小于str1+str2的长度,不过仍然是可以连接上的尽管多运行几次,答案仍然是一样这是可以运行,并且能拿到预期的结果,只不过程序有可能会出现bug下面讲原理此时我们给str1和str2申请的长度都是20,申请的空间是占用内存的,就大概是这样strcat 函数复
2021-12-10 22:18:33
1027
原创 一个问题引发的思考
今天看到一个题,这是以前并没有去在意的,答案是80刚开始的时候只知道加不加括号的区别,但是为什么呢?#define: 预编译预编译:又叫预处理。预编译不是编译,而是编译前的处理,预编译所执行的操作就是简单的“文本”替换主要想到了这个语言有:编译型和解释型。例如c是编译型语言,python是解释型语言,java一半一半。解释型语言需要先解释成机器指令(以后计算机组成原理的内容)也就是需要有一个翻译的过程,而且每一次执行都需要进行翻译的过程,那么一定存在效率问题。编译型语言,一次编译就能生成可执
2021-12-07 18:53:27
924
原创 SSM整合
在完成数据库设计,maven配置依赖后,创建对应实体类@Data@AllArgsConstructor@NoArgsConstructorpublic class Books { private int bookID; private String bookName ; private int bookCounts; private String detail;}1、先完成mybatis层创建mybatis配置文件mybatis-config.xml<
2021-11-21 12:59:58
509
原创 域名绑定服务器
很多小伙伴在申请到一个域名的时候,并且也拥有自己的主机(服务器)想将他们关联起来 却不太懂如何操作。希望这篇文章能给你帮助我使用的是阿里云esc服务器。并且使用的是宝塔面板配置管理服务器。如果使用其他的,原理基本都是一样的。接下来以阿里云来介绍1.首先,你得拥有一个域名。最好进行实名认证,不进行也可以访问,但是说不定明天就访问不了点击解析。来到域名控制台,添加你申请的域名,添加记录,来添加解析该域名的设置然后来到这里,这些值是什么意思 网上很多,大家可以自行百度,比如我的
2021-09-27 14:07:33
14278
原创 MyBatis-Plus实现数据库curd操作
文章目录2.1、mp入门MP主键策略2.2、curd2.3、自动填充3、乐观锁3.1、场景MP实现乐观锁。4、MP查询4.1、多个ID批量查询4.2、简单条件查询(Map)4.3、分页查询5、MP删除5.1、物理删除和逻辑删除逻辑删除6、条件构造器和常用接口MyBatis-Plus实现数据库curd操作mp是什么MyBatis-Plus(简称MP)是一个MyBatis 的增强工具,在MyBatis,的基础上只做增强不做改变,为简化开发、提高效率而生。润物无声,只做增强不做改变,引入它不会对现
2021-09-24 22:41:42
1561
原创 项目技术点总结
图片不显示,可以来码云码云看,内含源码项目简介网上预约挂号系统,网上预约挂号是近年来开展的一项便民就医服务,旨在缓解看病难、挂号难的就医难题,许多患者为看一次病要跑很多次医院,最终还不一定能保证看得上医生。网上预约挂号全面提供的预约挂号业务从根本上解决了这一就医难题。随时随地轻松挂号!不用排长队!项目描述1.前后端分离开发2.后端技术:SpringBoot 简化应用搭建和开发;MyBatis-Plus 作为持久层框架;Redis、Nacos、 RabbitMQ 中间件;使用 Swagge
2021-09-24 00:36:12
4965
原创 MongoDB简介,安装及配置
MongoDB简介1、NoSQL简介NoSQL(NoSQL = Not Only SQL),意即反SQL运动,指的是非关系型的数据库,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于目前铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入为什幺使用NoSQL :1、对数据库高并发读写。2、对海量数据的高效率存储和访问。3、对数据库的高可扩展性和高可用性。弱点:1、数据库事务一致性需求2、数据库的写实
2021-09-23 14:25:15
852
原创 本地数据库连接服务器数据库报错`1130 - Host ‘219.232.77.43‘ is not allowed to connect to this MySQL server`
本地数据库连接服务器报错1130 - Host '219.232.77.43' is not allowed to connect to this MySQL server因为服务器数据库默认设置只允许localhost用户连接1.开启3306端口2.在服务器上的数据库设置可以远程访问使用xshell,或者其他能操作你服务器数据库的。然后按一下代码执行一遍就OK了登录: mysql -u root -p123456 root是用户名, -p后面是你自己设置的密码进入数据库:use
2021-09-23 13:13:09
260
原创 泪目了,记录一下改了一天的bug
一杯茶、一包烟、一个BUG改一天首先,最后一步是困扰我最久的——修改数据库字段的属性。不然读取不到数据,返回空值。空指针异常看得我头皮发麻。在把数据库字段修改正确后,我改的是对象OrderInfo(这里的是有个属性,没有和数据库一样,导致插入不了数据),并没有改数据库的字段,效果一样。接着运行,报错java.net.ConnectException: Connection refused: connect异常因为我使用的是阿里云,nacos中间件,并且注册了网关。这里需要使用到另一个
2021-09-20 20:26:23
1261
14
原创 Java8时间和日期API
时间和日期API(记录下来当成字典查用了)旧版日期时间API存在的问题设计很差:在java.util和java.sql的包中都有日期类,java.util.Date同时包含日期和时间,而java.sql.Date仅包含日期。此外用于格式化和解析的类在java.text包中定义。非线程安全: java.util.Date是非线程安全的,所有的日期类都是可变的,这是Java日期类最大的问题之一。时区处理麻烦:日期类并不提供国际化,没有时区支持,因此Java引入了java.util.Calen
2021-08-25 15:31:24
426
原创 Java8新特性
Java8新特性面试问到你Java8的新特性,你能答上来吗Java现在更新到了很高的版本,不过不建议它一更新我们就去了解、就去学。因为很少概率能用的到,现在很多公司或企业使用的版本都是比较低的。新版本需要经过岁月的考验,才能知道哪些特性是好用的哪些是不好用的。Java8可以看成自Java5以来最具有革命性的版本,**非常推荐**学习Java8的新特性。在学习的时候,会遇到的非常多听着、看着都一头雾水的概念。不要被劝退,看代码,带着疑问去学习。怎么去实现?它能用来干嘛?第一遍学习完过后,只是给自己了
2021-08-25 14:34:12
2840
原创 Linux常用管理命令(二)
实验目的(1)复习Linux基本命令。(2)掌握常用Linux命令实验内容(1)练习命令行模式下的常用命令:man:命令帮助通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息-a:在所有的man帮助手册中搜索;-f:等价于whatis指令,显示给定关键字的简短描述信息;-P:指定内容时使用分页程序;-M:指定man手册搜索的路径。alt+Fx(快捷键,x是数字):虚终端切换练习常用命令:chmod、cat、ps、chown、kill、ln、who、whoa
2021-08-22 16:11:08
575
原创 Linux常用管理命令(一)
实验内容掌握Linux下常用的文件及目录的操作命令;掌握文件打包及压缩命令;学会使用帮助信息。实验目的及要求1.了解Linux下的Shell常用命令;2.掌握文件及目录操作命令;3.掌握文件打包、压缩命令;4.掌握联机帮助命令的使用方法。实验设计及实施指导1.文件及目录操作命令(1)练习常用shell命令date、bc、echo、last、history等。date: 系统去调用date程序显示当前的日期和时间。bc: 是任意精度计算器语言,使用它可以做基本的数学运算echo
2021-08-22 15:52:15
368
原创 JAVA进阶——JVM
1、JVM现在人们对jvm(Java虚拟机)的探究式越来越深了,如果我们想当一名java程序员,jvm是我们必须要跨过去的一道坎。学习Java的人对jvm这个词并不陌生,来了解一下java的进阶知识Java虚拟机吧!学习jvm的方法:jvm的大多数知识点,我们真正要去实现的并没有几个,很多都是以理论学习为主。善用百度和思维导图(参考别人画好的,非常丰富),通过思维导图或者百度,把一个点一个点搞清楚。1.1、 JVM与操作系统之间的关系?jvm是运行在操作系统上的,操作系统是jvm的下一层。jv
2021-08-21 23:52:13
2659
12
原创 Java基础——注解和反射
1、注解java中的注解我们已经见过非常多了,现在来深入了解一下。什么是注解(Annotation)Annotation是从JDK5.0开始引入的新技术.(现在不算新了)Annotation的作用:不是程序本身,可以对程序作出解释(这一点和注释(comment)没什么区别可以被其他程序(比如:编译器等)读取.Annotation的格式:注解是以"@注释名"在代码中存在的,还可以添加一些参数值﹐例如:@SuppressWarnings(value=“unchecked”).Annot
2021-08-15 21:39:32
772
5
原创 Java20行代码实现爬取网络资源
只需要将URL换成资源的URL就可以爬取到想要的资源。如何获取url请看最后import java.io.FileOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;public class UrlDown { public static void main(String[] args) throws Exception { //下载地
2021-08-13 19:57:30
468
原创 Java基础——网络编程
文章目录网络编程1.1 概述1.2、网络通信的要素1.3、IP1.4、端口1.5、通信协议1.6、TCP模拟通信文件上传1.7、UDP1.8、URL网络编程1.1 概述1.2、网络通信的要素如何实现网络通信?1.网络编程中有两个主要的问题如何定位到网络上的一台或者多台主机使用cmd——>ping命令,ping一个域名,可以看到访问的主机的IP地址[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ztQmkDEl-1628853105623)(D:\lea
2021-08-13 19:13:03
409
原创 快速排序算法
/*** 快速排序* 使用双指针,原地操作数组* 将大于基数的值全部换到基数的右边* 小于基数的值,全部换到基数的左边* 当指针重叠,这就是基数应该在的位置。因为左边的值全部比它小,右边的值全部比它大。* 基数一般取当前排序的数组的第一个。也可以选最后一个,方便操作* 使用递归*/public class DemoMain { public static void main(String[] args) { //模拟需要排序的数组 i
2021-08-12 18:48:39
92
原创 Java基础——集合体系结构
1.Collection1.1 集合知识集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变1.2 集合的体系结构1.3 Collection集合概述和使用Collection集合概述是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素JDK不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现创建Collection集合的对象多态的方式具体的实现类ArrayList1.4 Collection集合
2021-08-08 22:57:34
2260
原创 ClassCastException: com.collection.Student cannot be cast to java.lang.Comparable
出现问题,那就寻找解决问题的方法:去jdk文档里查看Comparable接口原因是我们没有让实体类自然排序,所以实体类需要实现这个接口,并重写他的自然比较方法这里举个例子说明:自然排序 Comparable的使用题目要求:存储学生对象并遍历,创建TreeSet集合使用无参构造方法按照年龄从小到大排序,年龄相同时,按照姓名的字母顺序排序//学生类public class Student { private String name; private int age;
2021-08-08 17:05:59
1559
原创 (源码剖析)HashSet集合是如何保证元素的唯一性
HashSet集合特点底层数据结构是哈希表对集合的迭代顺序不作任何保证,也就是说不保证存储和取出的元素顺序一致没有带索引的方法,所以不能使用普通for循环遍历由于是Set集合,所以是不包含重复元素的集合HashSet集合保证元素唯一性的源码分析HashSet<String> hashSet = new HashSet<>();//添加元素hashSet.add("java");hashSet.add("hello");hashSet.add("world");
2021-08-08 14:27:16
362
原创 (源码刨析)并发修改异常: java.util.ConcurrentModificationException
java.util.ConcurrentModificationException:并发修改异常。出现的原因是使用迭代器遍历List,在遍历的过程中,对List进行了增删操作。比如:Iterator<String> it = list.iterator();while (it.hasNext()) { String s = it.next(); if ("world".equals(s)) {//如果两个字符串相等 // list.add("abc");
2021-08-08 11:03:31
172
原创 JAVA基础——IO流
文章目录1、IO流1.流和流的分类2.如何使用流1、输入流(读文件):FileInputStream2、输出流(写文件):FileOutputStream3.文件的拷贝1、IO流1.流和流的分类什么是IO流?I:Input (输入)O: Ouput(输出)通过IO可以完成硬盘文件的读和写[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c07fTZ3S-1628331326228)(D:\learningappDataSave\Typora\image\image-
2021-08-07 18:16:17
133
原创 JAVA基础——多线程(二)
3、线程同步1、三大不安全案例1.不安全的买票每个线程都在自己的内存交互,内存控制不当会造成数据不一致。当多个线程同时进入临界区的时候,他们看到的都是同样的票数,一个线程买了票后,执行了票数–,另一个线程在这基础上又执行了一次,就会出现负数。比如当票只剩一张了,a、b同时进入临界区,买了两张票,所以会出现-1。另一种情况是,他们同时对票数–,所以买了两张票后,发现票数只减了一次。//不安全的买票,线程不安全public class UnsafeBuyTicket { public st
2021-08-07 09:17:05
188
原创 JAVA基础——多线程(一)
文章目录1、线程、进程、多任务多任务多线程程序(进程)多进程与多线程的区别多线程解释2、线程状态1.新线程创建(new)三种创建方式:(只关注前两种)方法1方法2总结方法三(了解即可)2.线程停止3.线程休眠4.线程让步5.线程强制执行(插队)6.观测线程状态7.线程的优先级8.守护(daemon)线程1、线程、进程、多任务多任务首先需要了解操作系统中的多任务:在同一时刻运行多个程序的能力。例如,在编辑或下载邮件的同时可以打印文件。多线程程序(进程)多线程程序在较低的层次上扩展了多任务的概念:一
2021-08-06 13:11:11
186
原创 二叉树的前中后序遍历(java递归、迭代分别实现)
文章目录代码实现(递归)代码实现(迭代)前序遍历后序遍历中序遍历代码实现(递归)递归算法的三个要素:确定递归函数的参数和返回值: 确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。确定终止条件: 写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。确定单层递归的逻辑: 确定每一
2021-08-02 16:24:21
720
1
转载 二叉树入门知识——一篇了解二叉树
文章目录常接触的二叉树满二叉树完全二叉树二叉搜索树平衡二叉搜索树二叉树的存储方式二叉树的遍历方式代码实现(递归)常接触的二叉树满二叉树满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。如图所示:这棵二叉树为满二叉树,也可以说深度为k,有2^k-1个节点的二叉树。完全二叉树什么是完全二叉树?完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若
2021-08-02 11:16:56
547
原创 Spring---事务管理
Spring中的事务管理声明式事务:AOP编程式事务:需要在代码中,进行事务的管理为什么需要事务?如果不配置事务,可能存在数据提交不一致的情况下;如果我们不在Spring中配置声明式事务,我们就需要在代码中手动配置事务比如在一个事务中,执行了添加和删除的方法,但是因为删除方法出错了,程序执行异常。但是增加的方法却成功执行了,并且提交到了数据库。这不是我们希望的,我们希望是一个事务,要么全部失败,要么全部成功。像银行转账,如果一边已经扣款,但是另一边却没有到账,这错误是非常严重的。
2021-07-26 20:14:21
175
原创 Spring整合MyBatis的两种方式
文章目录1、Spring整合mybatis方式一2、Spring整合mybatis方式二首先搭建一个Mybatis-spring的环境【环境搭建】步骤:1.导入相关jar包junitmybatismysql数据库驱动spring相关的aop织入mybatis-spring<dependencies> <!--junit--> <dependency> <groupId>junit
2021-07-26 20:12:41
283
原创 Mybatis学习笔记(六):一级缓存、二级缓存
文章目录13.1、简介13.2、MyBatis缓存13.3、一级缓存测试查看一级缓存缓存失效的情况13.4、二级缓存13.1、简介1.什么是缓存(cache)?存在内存中的临时数据将用户经常查询的数据放在缓存(内存)中,用户查询该数据的时候就不用从磁盘上(关系型数据库数据文件)查询,在缓存的数据计算机可以直接拿到,从而提高查询效率,解决了高并发系统的性能问题2.为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率3.什么样的数据能使用缓存经常查询且不经常该表的数据
2021-07-25 20:50:18
268
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人