- 博客(181)
- 收藏
- 关注
原创 数据结构与算法(五)—— 广义表
广义表是线性表的推广,又称列表。线性表的元素仅限于原子项,即每个数据元素只能是一个数或一个记录,如果放松对线性表元素的这种限制,允许它们自身具有结构,由此就产生了广义表的概念。一、广义表的定义 广义表是n(n>=0)个元素的有限序列,其中每个元素是原子项或者是一个广义表,通常记作GL=(a1,a2,a3,...,an)。GL是广义表的名字,n是它的长度。...
2019-08-22 21:34:56 2346
原创 数据结构与算法(四)—— 栈与队列
目录一、栈的定义二、栈的抽象数据类型三、栈的顺序存储结构及实现1、栈的顺序存储结构2、进栈操作3、出栈操作四、两栈共享空间五、栈的链式存储结构及实现1、栈的链式存储结构2、栈的链式存储结构——进栈操作3、栈的链式存储结构——出栈操作六、栈的应用——递归七、栈的应用——四则运算表达式求值1、后缀(逆波兰)表示法定义2、后缀表达式计算结果...
2019-08-11 13:42:20 1197
原创 数据结构与算法(三)——线性表
目录一、线性表的定义二、线性表的抽象数据类型三、线性表的顺序存储结构1、顺序存储定义2、顺序存储方式3、数据长度与线性表长度区别4、地址计算方法四、顺序存储结构的插入与删除1、获取元素2、插入操作3、删除操作4、线性表顺序存储结构的优缺点五、线性表的链式存储结构1、线性表的链式存储结构定义2、头指针和头结点的异同3、线性表链式存储结构...
2019-07-18 20:56:17 895
原创 Java8学习笔记(五)—— 方法引用(::双冒号操作符)
Java8学习笔记系列:Java8学习笔记(一)—— 函数式编程的四个基本接口Java8学习笔记(二)—— Lambda表达式Java8学习笔记(三)—— Optional类的使用Java8学习笔记(四) —— Stream流式编程Java8学习笔记(五)—— 方法引用(::双冒号操作符)一、什么是方法引用? 简单来说就是一个Lambda表达式,方法引用提...
2019-07-13 17:56:31 1811 3
原创 Java8学习笔记(四) —— Stream流式编程
Java8学习笔记系列:Java8学习笔记(一)—— 函数式编程的四个基本接口Java8学习笔记(二)—— Lambda表达式Java8学习笔记(三)—— Optional类的使用Java8学习笔记(四) —— Stream流式编程Java8学习笔记(五)—— 方法引用(::双冒号操作符)一、什么是Stream? Stream API借助Lambda表达式...
2019-07-13 17:48:34 2783 1
原创 Java8学习笔记(三)—— Optional类的使用
Java8学习笔记系列:Java8学习笔记(一)—— 函数式编程的四个基本接口Java8学习笔记(二)—— Lambda表达式Java8学习笔记(三)—— Optional类的使用Java8学习笔记(四) —— Stream流式编程Java8学习笔记(五)—— 方法引用(::双冒号操作符)一、Optional类的作用 Optional类的作用主要是为了解决...
2019-07-13 17:35:07 1961 1
原创 Java8学习笔记(二)—— Lambda表达式
Java8学习笔记系列:Java8学习笔记(一)—— 函数式编程的四个基本接口Java8学习笔记(二)—— Lambda表达式Java8学习笔记(三)—— Optional类的使用Java8学习笔记(四) —— Stream流式编程Java8学习笔记(五)—— 方法引用(::双冒号操作符)一、什么是Lambda表达式 Lambda是Java8的一个语法糖,...
2019-07-13 17:26:30 934
原创 Java8学习笔记(一)—— 函数式编程的四个基本接口
Java8学习笔记系列:Java8学习笔记(一)—— 函数式编程的四个基本接口Java8学习笔记(二)—— Lambda表达式Java8学习笔记(三)—— Optional类的使用Java8学习笔记(四) —— Stream流式编程Java8学习笔记(五)—— 方法引用(::双冒号操作符)一、基本函式数接口基本的函数式接口主要有四个:① Supplier<T&...
2019-07-13 16:55:32 1551
原创 启航 —— 记 —— 第二次自考的反思:自考与自我改造的困境
第二次自考的成绩出来之后,我突然意识到,我的自我改造出现了问题。这段时间我一直在思考,我的问题究竟出现在哪里,应该怎样去修正它。截止到今天,有的问题我已经找到了解决方法,而有的问题我找不到正确的答案。我决定,不再等待,让这些问题暴露在阳光之下,我相信众多自考者的智慧将铺就一条成功之路!一、自考困境之时间困境1、困境初级——学习时间不足 自考者的学习时间不足...
2019-07-13 12:48:24 6258 1
原创 数据结构与算法(二)—— 算法
一、算法定义 算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。二、算法的特性1、输入输出 算法具有零个或多个输入,至少有一个或多个输出。输入可以是零个,但输出是一定要的。输出的形式可以是打印输出,也可以是返回一个或多个值等。2、有穷性 是指算法在执行有限的步骤之后,自动结束而不会出现...
2019-05-20 00:02:33 471
原创 前后端分离实践(六)—— 前端与后端在生产环境中的分离部署
前后端分离实践系列文章总目录 前后端分离也包括部署的分离,下面来简单说一下三层应用如何进行部署。Springboot应用可以打包成一个jar包直接上传到linux服务器上启动运行。Vue应用可以借助webpack打包工具将所有资源打包成一个dist文件夹,可以将dist目录中的文件放到nginx服务器的html目录下,通过访问nginx来访问静态资源。而Node应用的部署就相对比...
2019-05-15 23:44:57 9737 1
原创 前后端分离实践(五)—— 前端与后端的集成
前后端分离实践系列文章总目录目录一、前端服务层Nodejs应用与后端Springboot应用的集成1、启动Springboot应用访问/api/hello接口确保能正常访问2、在fbsep-node目录下安装axios3、在routes目录的api.js中添加访问Java接口的内容4、启动Node应用查看通过Node层获取到的接口数据二、前端展示层Vue应用与前端服务层...
2019-05-15 23:44:52 3114
原创 前后端分离实践(四)—— 使用vue-cli搭建前端展示层并用mock模拟测试数据
前后端分离实践系列文章总目录目录一、搭建一个Vue-cli脚手架应用1、全局安装vue-cli2、使用webpack初始化一个vue应用3、进入fbsep-vue应用目录启动应用4、浏览器访问fbsep-vue应用二、使用mock进行接口数据模拟1、安装mockjs2、安装Axios3、添加mock测试数据文件4、引用mock测试数据文件5、在ind...
2019-05-15 23:44:45 1434
原创 前后端分离实践(三)—— 使用Express+Nodejs搭建前端服务层
前后端分离实践系列文章总目录目录一、搭建Nodejs开发环境1、什么是npm?2、下载安装npm3、查看node和npm版本号4、什么是cnpm?5、安装淘宝的cnpm6、添加cnpm的环境变量二、搭建Express开发环境1、什么是Express?2、安装express应用程序生成器3、创建一个名为fbsep-node的express应用4、进...
2019-05-15 23:44:39 5604
原创 前后端分离实践(二)—— 使用Springboot2.0搭建REST风格的Java后端架构
前后端分离实践系列文章总目录目录一、统一的JSON数据返回格式1、JSON响应结构预览2、JSON响应结构与Java类的映射3、添加Springboot-web模块的Maven依赖4、新建一个Controller类编写JSON响应结构的测试方法5、测试JSON响应结构二、集成Swagger2进行在线接口文档维护1、添加Swagger2的Maven依赖2、在S...
2019-05-15 23:44:29 3110
原创 前后端分离实践(一)—— 基础理论篇
前后端分离实践系列文章总目录目录一、什么是前后端分离?二、为什么需要前后端分离?1、前后端职责不清2、开发效率不高三、前后端分离究竟分离了什么?1、开发职责的分离2、交互方式的分离3、代码组织方式的分离4、应用部署的分离四、为什么要加入Node中间层来实现前后端分离?1、反思前后端的定义2、加入Node中间层之后的系统架构图3、加入Node中...
2019-05-15 23:44:15 2686
原创 前后端分离实践系列文章总目录
前后端分离实践(一)—— 基础理论篇前后端分离实践(二)—— 使用Springboot2.0搭建REST风格的Java后端架构前后端分离实践(三)—— 使用Express+Nodejs搭建前端服务层前后端分离实践(四)—— 使用vue-cli搭建前端展示层并用mock模拟测试数据前后端分离实践(五)—— 前端与后端的集成前后端分离实践(六)—— 前端与后端在生产环境中的分离部署...
2019-05-15 23:44:01 1912
原创 Swagger使用(三)—— 解决swagger2markup生成的离线pdf接口文档中的乱码问题
上一篇:Swagger使用(二)—— 利用swagger2markup生成离线的html和pdf接口文档 生成的pdf接口文档之所以会有乱码问题,是由于asciidoctorj-pdf包中使用的字体不全,有些中文字体无法正常显示。所以,要解决这个问题我们只需要将asciidoctorj-pdf包中的字体替换掉就可以了。有两个方法,下面来看一下详细的步骤:目录一、直接使用...
2019-04-27 20:38:01 2568 2
原创 Swagger使用(二)—— 利用swagger2markup生成离线的html和pdf接口文档
上一篇:Swagger使用(一)—— Springboot2.0与Swagger2整合生成在线接口文档(支持多文件数组上传) 当我们的项目中集成了Swagger,开发时一般只会使用在线文档,但当接口开发完成之后,我们就需要提供一份给接口调用人参考的接口文档,比如html、pdf、word等格式的接口文档。怎么生成这样的文档呢?有一个Github开源项目swagger2markup...
2019-04-27 20:37:50 2947 8
原创 Swagger使用(一)—— Springboot2.0与Swagger2整合生成在线接口文档(支持多文件数组上传)
Swagger与Springboot项目进行集成很简单,首先就是添加一些maven的jar包依赖,然后添加一些swagger的相关配置,之后启用swagger在Controller的类或方法上添加一些swagger的描述信息,最后启动项目访问swagger的ui地址进行接口测试即可。具体步骤如下:目录一、POM依赖二、添加Swagger的配置文件SwaggerConfig.ja...
2019-04-27 20:37:33 3176
原创 Eclipse使用(十三)—— 在Eclipse上使用Debug模式启动进行断点调试(新手教程)
最近有不少初学JavaWeb的同学在网上找我解决一些问题,我大概看了一下他们的问题,其实都是一些很简单的问题,但由于缺乏解决问题的方法,导致迟迟找不到问题的原因。今天就在这里给初学者介绍一种寻找程序问题的最简单方法——断点调试。 什么是断点调试?简单来说,就是我们在Debug模式下运行程序,然后在希望调试的地方打一个断点,当程序执行到这里时就会暂停执行,此时程序的...
2019-04-27 00:11:39 4255
原创 使用SpEL表达式来获取SpringData Jpa在更新数据时传递的对象参数的属性
一、问题描述 使用Jpa时我们经常需要对数据库中的数据进行更新操作,通常更新数据库的数据有两种方法。 第一种是通过Jpa的实体管理器对托管态实体对象进行更新,对托管态实体对象的更新即意味着对数据库对应记录的更新。这种方法虽然使用起来比较简单,但也存在全字段更新、意料之外的记录更新、业务层跟持久层职责不清等问题。示例如下:@Override@Transac...
2019-04-24 23:27:12 5127 2
原创 数据结构与算法(一)—— 数据结构绪论
一、基本概念和术语 数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。1、数据 数据,是描述客观事物的符号,是计算机中可以操作的对象,是能够被计算机识别并输入给计算机处理的符号集合。数据不仅仅包括整型、实型等数值类型,还包括字符、声音、图像、视频等非数值类型。 数据,其实就是符号,它必须具备的...
2019-04-23 23:21:41 347
原创 操作系统(六)—— 存储管理
一、存储管理概述1、存储体系 内存空间,是由存储单元组成的一组连续的地址空间,简称内存空间。内存空间一般分为两部分:一部分是系统区,用以存储操作系统常驻内存部分,用户不能占用这部分空间;另一部分是用户区,分配给用户使用,用于装入并存储用户程序和数据,这部分的信息随时都在发生变化。2、存储管理的任务 存储管理实质上就是管理供用户使用的那部分空间。(1...
2019-03-23 16:50:30 1305
原创 springboot2.0+mysql+druid+jpa+atomikos实现多数据源的jta事务
简介: 本项目使用springboot2.0.5+jpa+mysql+druid+atomikos实现jta事务管理,请注意druid与mysql的jar包版本适配,否则可能会出现异常。一、相关链接事务相关的基础知识:https://blog.csdn.net/u013789656/article/details/80928299XA协议原理:https://blog.csdn...
2019-03-22 21:02:42 2036
原创 操作系统(五)—— 死锁
一、死锁的产生1、死锁的定义 所谓死锁是在多道程序中的一种现象,一组进程中的每一个进程均无限期地等待被该组进程中的另一个进程所占有且永远不会释放的资源。处于死锁状态的进程称为死锁进程。 系统发生死锁时,死锁进程的个数至少为两个;所有死锁进程都在等待资源,并且其中至少有两个进程已占有资源。2、死锁产生的原因 死锁产生的原因主要有两个:一是竞...
2019-03-18 21:40:20 1540
原创 瞭望 —— 忆 —— 思考:我们究竟该如何选择适合自己的行业?
古人有云:女怕嫁错郎,男怕入错行。前半句我无法体会,但后半句我深以为然。人类文明是一个高度分工的社会组织,组织中的人分属各种不同的行业,每个行业都为组织这个庞大机器的运转输送着动力,而作为各个行业中的人在这个过程中发挥着不可替代的作用。 选择大于努力,选择不对,努力白费。人生是一场即性演出,没有台词,没有剧本,更没有彩排,在很多时候我们所做的选择是没有后悔可...
2019-03-18 20:46:47 1202
原创 梦飞 —— 述:我只是一个普通农民家的孩子,但我有一个梦想
我只是一个普通农民家的孩子,但我有一个梦想。 我梦想有一天能找到我喜欢的行业,然后为之奋斗一生。 我只是一个普通农民家的孩子,但我有一个梦想。 我梦想有一天能够长成一颗参天大树,为身边的人遮风挡雨。 我只是一个普通农民家的孩子,但我有一个梦想。 我梦想有一天能够实现自我价值,让流逝...
2019-03-18 20:46:03 686 1
原创 软件工程(四)—— 面向对象方法UML
前言 长期以来,关于如何建造一个软件系统中的模块,先后出现了4种基本的观点。第一种观点是以“过程”和“函数”来构建一个模块,使每个模块实现一项功能,由此产生了结构化方法;第二种观点是围绕一个数据结构来构建一个模块,使每个模块实现该数据结构上的操作,由此产生了面向数据结构的软件开发方法;第三种观点是围绕一类事件来构造一个模块,使每个模块能够识别该类事件并对该类事件作为响应,由此产生...
2019-03-16 17:34:08 2200
原创 操作系统(四)—— 进程同步与互斥
一、进程间相互作用1、相关进程和无关进程 在一个多道程序系统中同时运行的并发进程通常有多个,在逻辑上具有某种联系的进程被称为相关进程,在逻辑上没有任何联系的进程被称为无关进程,并发进程相互之间可能是无关的,也可能是相关的。 如果一个进程的执行不影响其他进程的执行,且与其他进程的进展情况无关,即它们是各自独立的,则说这些并发进程的相互之间是无关的。 ...
2019-03-13 21:23:57 1976
转载 @Cacheable加Redis缓存出现异常InvalidDefinitionException: No serializer found for class ByteBuddyInterceptor
解决办法:https://blog.csdn.net/J080624/article/details/82529082
2019-03-12 21:50:27 2126
原创 操作系统(三)—— 进程和线程
一、多道程序设计 一个程序在计算机系统中运行,除了程序本身要是可执行的目标代码外,还要有相应的数据。程序和数据被提前存储在存储器中,在执行该程序前,处理器中的指令计数器必须指向存储器中被执行程序的首地址。如果程序执行过程中还需要其他的资源,那么在申请使用磁盘时,还要知道磁盘的设备编号、文件的名称以及文件在磁盘中的物理位置、文件长度等信息,这些信息均要有存储空间对它们加以保存。如果...
2019-03-10 18:54:41 1281
原创 软件工程(三)—— 结构化方法
一、结构化需求分析 在软件系统的需求工作中,通常面临三大挑战,即问题空间理解、人与人之间的通信、需求的变化性。为了应对这三大挑战,支持需求工作目标的实现,一种好的需求技术应具有以下基本特征:①提供方便的通信机制;②鼓励需求分析人员使用问题空间的术语思考问题,编写文档;③提供定义系统边界的方法;④提供支持抽象的基本机制;⑤为需求分析人员提供多种可供选择的...
2019-03-09 14:37:18 8427
转载 一位资深程序员大牛给予Java初学者的学习建议
作者原文:https://www.cnblogs.com/huaxingtianxia/p/5724093.html Java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍。这一部分的内容,同样适用于一...
2019-03-07 00:06:21 409
原创 软件工程(二)—— 软件需求与软件需求规约
一、需求与需求获取1、需求定义 一个需求是描述了待开发产品/系统功能上的能力、性能参数或其他性质。对于一个单一的需求,必须具有以下5个基本性质:①必要的,该需求是用户所需要的;②无歧义的,该需求只能用一种方式来解释;③可测试的,该需求是可进行测试的;④可跟踪的,该需求是可以从一个开发阶段跟踪到另一个开发阶段的;⑤可测量的,该需求是可以测量的...
2019-03-03 11:21:19 2905
原创 操作系统(二)——操作系统的运行环境
一、处理器1、处理器的构成与基本工作方式 处理器一般由运算器、控制器、一系列的寄存器以及高速缓存构成。其中运算器实现指令中的算术和逻辑运算;控制器负责控制程序运行的流程,包括取指令、维护处理器状态、处理器与内存的交互等;寄存器是一种暂时存储器件,用于处理器执行指令的过程中暂存数据、地址以及指令信息。在计算机的存储系统中,寄存器具有最快的访问速度,但因为寄存器集成在微处理器芯片...
2019-03-02 18:13:49 2696
原创 进程的三态和五态模型以及Java中线程的六种状态
一、进程与线程1、进程和线程分别是什么?进程:进程是计算机中和程序关于数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。线程:进程的子集,它是进程内部的一个独立的执行单元,一个进程可以同时并发执行多个线程。2、进程和线程的区别进程:有独立的内存空间,进程中的数据存放空间是独立的(堆空间和栈空间都独立),进程中至少有一个线程。线程:推空间是共享的,而栈空间是独立的...
2019-03-02 00:23:30 5526 1
原创 在linux下搭建ftp和nginx组合服务器
一、搭建ftp服务器1、查看是否已经安装ftp [root@localhost ~]# which vsftpd2、使用yum安装ftp服务器(安装目录在/usr/sbin/vsftpd下,工作目录在/home/ftpuser下) [root@localhost ~]# yum install vsftpd -y3、创建一个ftp用户:ftpuser [...
2019-02-28 20:52:50 1785
原创 软件工程(一)—— 软件工程绪论
一、软件工程概念的提出与发展1、软件工程的定义 软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度满足用户要求的软件产品的工程,或以此为研究对象的学科。2、软件工程的发展 软件工程的发展大体可以分为两个时期:① 20世纪60年代末到80年代初 这一时期主要围绕软件项目,开展了有关开发模型、开发方法和支持工具的研究...
2019-02-26 23:32:32 1293
原创 在linux下安装使用nginx并配置反向代理
一、下载并安装nginx(以下安装有确认提示时,按:y)1、下载安装包(下载地址:http://nginx.org/en/download.html)2、上传安装包到linux并解压(yum安装使用命令:yum install nginx) (1) 安装上传下载工具:yum install lrzsz (2) 上传命令:rz (下载使用:sz) (3) 解压...
2019-02-23 21:51:07 4203
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人