自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java 中间件——专栏索引篇

Java 中间件项目索引Ⅰ 前言Ⅱ 目录1. C/S 模式中间件项目博文项目描述项目功能介绍项目源码2. Romote Method Invocation项目博文项目描述项目功能介绍项目源码3. 多文件自平衡云传输项目博文项目描述项目功能介绍项目源码4. NioFramework5. Spring IOC6. Spring AOP7. 服务发现Ⅰ 前言这个专栏是我自己做的中间件项目,有些是对著名的框架比如 Spring IOC,RPC 的一个模拟再实现,文章可能大都很长,我会将我写一个中间件从零到一的

2021-03-04 21:27:44 382 1

原创 Java Web——专栏索引篇

Java Web 索引Ⅰ 前言Ⅱ 目录A. 前端部分a. HTML 5b. CSSc. JavaScriptB. 后台部分a. Java webb. SSM① Spring 5② MyBatis③ SpringMVCc. Spring Bootd. Spring CloudⅠ 前言这个专栏是我学习 Java Web 的笔记,包括 前端和后台,因为我的方向是后台和中间件,所以专栏的重点会着重在后台技术上,包括核心的 SSM 框架,微服务,消息队列等,还有相关的源码分析以及底层技术讲解,我都会逐渐扩充进来。

2021-03-04 21:09:08 253 1

原创 Java核心原理——专栏索引篇

前言这篇文章是我的专栏 Java核心原理 的索引篇,在这个专栏中我会记录我对 Java 高级技术的学习如 JVM、JUC、NIO,以及我写的一些源码分析如 HashMap、LinkedList 。目录JUC 篇第一课:volatile----------------------------------------------------------------《详解 volatile》第二课:CAS--------------------------------------------------

2021-03-04 20:40:06 141 1

原创 程序员必修数学课——专栏索引篇

前言有人说过,“如果你只想当一个普通的程序员,那么数学对你来说,并不重要。如果你的梦想是做一个顶级程序员,梦想着改变世界,那么数学对你来说就很重要了”。越往高处走,越能发现数学在编程中的重要性。数学学得好不好,将会直接决定一个程序员有没有发展潜力。往大了说,数学是一种思维模式,考验的是一个人归纳、总结和抽象的能力。 这同时也对应了你作为程序员解决问题的能力。如果编程语言是血肉,数学的思想和知识...

2020-04-16 18:47:22 385

原创 C语言基础——专栏索引篇

前言C语言是编程初学者最需要掌握的一个语言,对C语言了解地足够透彻,对于对其他语言的理解就会更加轻松。而且正是由于其没有那么大的便捷性,对我们编程的能力会有更多的提升。这篇集合是我对C语言基础语法的一个讲解集合,我会尽可能写的详细和透彻深入,帮助大家更轻松地掌握C语言。我会努力提高更新文章的速度,使得这个体系变得更加完善。目录第一课:一个有趣的运算符-------------------...

2020-02-16 19:32:21 981

原创 数据结构与算法——专栏索引篇

前言数据结构与算法在编程里是很重要的一个环节,走过这条路,就算是入了编程的门了。并且数据结构与算法的思想在各个编程语言中都能用到,是编程中重要的思想锻造历程。我在我的博客中,会用C语言讲解数据结构与算法中的重要知识点,不仅是因为C语言是基础,更是因为C语言的多变性,而且C语言是较为复杂的,我们需要自己手动去实现很多东西,不像Python,Java,很多东西已经在那里了,我们是得不到充足的锻炼...

2020-02-16 19:09:09 3033

原创 一个普通大学生的2021春招面经——其实只是流水账

春招面经Ⅰ 前言Ⅱ 面经A. 腾讯B. 阿里巴巴C. 携程旅行网D. 涂鸦智能E. 上海耀乘健康科技有限公司Z. 出师未捷Ⅰ 前言2021年,大三第二学期,双非一本,计算机科学与技术专业,人生中第一次找工作,面试。我的方向是后台开发,主语言 Java,项目是三个中间件,暂时没有业务项目。具体可以看我下面的文章????Java 项目博客Java 项目源码记录一下自己整个的面试经历,自己的一些碎碎念,包括我面到的题,跟着进度更新,希望能有个好结果。(cross finger)Ⅱ 面经A. 腾讯

2021-03-23 22:33:15 1940 2

原创 【Java Web】-> Spring Boot -> Web 场景

Web 场景简单功能分析A. 静态资源访问简单功能分析A. 静态资源访问在 官方文档 中说,Spring Boot 给我们提供静态资源的目录,比如说你的图片、视频、JS、CSS文件,都可以放到文档中说的目录下,这样就可以直接访问这些资源了。static 是我们用 Spring Initializr 创建的时候,自动创建的。然后我们现在建立文档中说的其他文件夹。最终的文件如下????现在我在这些文件夹里放几张图片。然后我们来启动服务器,看看能否访问这些静态资源。可以看到

2021-03-17 16:42:17 253 1

原创 【Java Web】-> Spring Boot -> 配置文件详解

配置文件Ⅰ PropertiesⅡ YAMLA. 介绍B. 基本语法C. 数据类型D. 一个 YAML 的例子Ⅲ 配置提示Ⅰ PropertiesProperties 配置文件还是我们惯常的用法,通过等号连接一对键值对。Spring Boot 会有一个全局的 properties 配置文件 application.properties 来配置 Spring MVC 或者服务器参数之类的配置,这个配置文件的名称是不变的。Ⅱ YAMLA. 介绍除了 properties 配置文件外,Spring

2021-03-15 20:21:00 308

原创 【Java Web】-> Spring Boot -> 详解底层注解

详解底层注解Ⅰ @ConfiguraionⅡ @ImportⅢ @Condition其他Ⅰ @Configuraion我先定义一个简单的实体类 Book 。完成基本的 setter 方法和 toString 方法 。在 Spring IOC 中,我们可以通过配置 xml 文件和注解两种方式来完成一个类的注入,也可以通过配置类生成对应的 Bean,我们在配置类中就会使用到 @Configuraion 注解。【Java Web】 -> Spring 5 ->IOC 操作 -> Bean 管理 ->关于

2021-03-15 12:43:38 214 1

原创 【Java Web】-> Spring Boot ->第一个 Spring Boot 程序

Spring BootⅠ 第一个Spring Boot 程序Ⅰ 第一个Spring Boot 程序首先我们需要注意版本的问题,Spring Boot 要求的版本是 Java 8 及以上,Maven 需要 3.3 以上。然后我们来建一个 Maven 工程,第一个程序我们可以根据 官方文档 来做。首先需要引入一个父工程 Spring Boot 。 <parent> <groupId>org.springframework.boot</groupId&g

2021-03-14 20:33:48 139 2

原创 【Java Web】->MyBatis -> 详解 动态 SQL

@toc

2021-03-06 10:11:29 273

原创 【Java Web】-> MyBatis ->映射文件详解

@tocⅠ 前言在 MyBatis 第一课 中,我详细讲解了写一个 MyBatis 程序的全过程和它的全局配置文件。在 MyBatis 中还有一个重要的配置文件就是 SQL 映射文件。我们可以看一下官方文档对这个文件的描述。文档中说,SQL 映射文件是 MyBatis 真正的力量所在……这里发生了神奇的事情。这篇文章我们就来研究一下 SQL 映射文件。Ⅱ先回顾一下 MyBatis 第一课 中我的 case 。我定义了一个实体类 Employee,和我的数据库中的一个表相对应;定义了一个接

2021-03-03 18:00:42 1406 3

原创 【Java Web】-> MyBatis -> Hello MyBatis -> 第一个 MyBatis 程序与配置文件详解

初识 MyBatis Ⅰ第一个MyBatis程序Ⅱ 接口式编程的实现Ⅰ第一个MyBatis程序我们先建立一个数据库 mybatis,建立一张表tbl_employee。方便起见,我们先填充一条记录。然后我们建立一个和这张表映射的实体类Employee,完成其 Setter 方法和 toString 方法。注意,我这里的 firstName 属性和数据库中的字段名就不一样了。我们先用普通的方法,不用Maven做。首先要导入几个 jar 包,第一个就是下载的MyBatis中的jar包,然后我们

2021-02-28 22:03:33 174

原创 【Java Web】-> Spring 5 -> Spring 5 新功能 -> 整合 JUnit 5 单元测试框架

整合 JUnit 单元测试框架Ⅰ 前言Ⅱ Spring 整合 JUnit4Ⅲ Spring 整合 JUnit5Ⅰ 前言Spring 基础文章回顾:【Java Web】-> Spring 5 -> Spring 的下载 & 第一个样例【Java Web】 -> Spring 5 -> IOC 底层原理【Java Web】 -> Spring 5 ->IOC 操作 -> Bean 管理 ->关于 IOC 的一切就在这里了【Java Web】-> Spring 5 -> AOP【Java W

2021-02-28 16:11:28 379

原创 【Java Web】-> Spring 5 -> Spring 5 新功能 -> 对 Log4j2 日志的整合

整合日志框架Ⅰ 前言Ⅱ 整合 Log4j2Ⅰ 前言Spring 5 框架自带了通用的日志封装,它移除了 Log4jConfigListener,官方建议使用 Log4j2。这篇文章将讲解如何整合 Log4j2 框架。Ⅱ 整合 Log4j2首先我们需要引入四个 jar 包:对应的 Maven pom文件如下:<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api --> &

2021-02-28 15:12:29 248

原创 【Java Web】 -> Spring 5 -> Spring TX -> 详解事务管理

Spring 事务Ⅰ 事务是什么Ⅱ 事务环境的搭建Ⅰ 事务是什么首先我们要明确,事务是数据库操作的基本单元,基本单元意味着它们是一个整体,一个事务中如果有一组操作,那么它们要么都成功,要么都失败。事务一个典型的应用场景就是银行转账,A 给 B 转了 100,意味着 A 的账户要少 100, B 的账户要多 100,那么这个转账操作成功,这两件事必须都要发生,如果转账失败这两件事都不可以发生,绝对不能一件事发生了一件没有。事务有四个特性:ACIDAtomic(原子性)Consistency(一致性

2021-02-28 12:46:09 252

原创 【Java Web】-> Spring 5 -> JdbcTemplate

发送文件块就比较简单了,SendingClient 连接接收端服务器之后,初始化 SendingEnd,通过 SendingEnd 进行文件块的传输。发送端

2021-02-27 11:02:38 265 3

原创 【Java项目整理】-> 多文件自平衡云传输 -> 从零搭建一个分布式中间件

多文件自平衡云传输Ⅰ 前言Ⅱ 框架的搭建壹 · 基本构想A. 信息头——文件块该如何发送与接收Ⅰ 前言此篇文章将详细分析一个中间件 多文件自平衡云传输(FilesCloudTransmission) 是如何搭建起来的。先来介绍一下这个框架。一般我们要下载比如一个电影的话,最简单就是两种方式,一个是HTTP协议,通过浏览器下载,但是这个在文件稍微一大的时候,会把你卡崩溃。还有一种就是FTP(文件传输协议) FTP采用两个 TCP 连接来传输一个文件。但是无论是HTTP还是FTP,都难以解决单一服务

2021-02-23 08:42:06 648

原创 【Java Web】-> Spring 5 -> AOP

AOPⅠ 什么是AOPⅡ AOP 主要概念Ⅲ AOP 操作A. 准备工作Ⅰ 什么是AOPAOP(Aspect Oriented Programming),意为面向切面编程。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。比如我们现在有一个用户登录的功能。这个功能做完了以后,我们现在想再添加一个功能,比如根据用户的账号权限不同给用户显示不同的页面,这个鉴权的功能怎么做?有AOP的话,我们根本不需要修改源代码,直接单独写一

2021-02-13 15:49:00 234 1

原创 【Java 核心原理】-> JUC -> 深入理解 CAS -> Unsafe类 & ABA问题

CAS 详解Ⅰ CAS 是什么?Ⅱ CAS 底层原理Ⅲ CAS 的缺点A. 循环时间长开销很大B. 只能保证一个共享变量的原子操作C. ABA 问题① ABA 问题是什么② ABA 问题的解决Ⅰ CAS 是什么?CAS(Compare and Swap),即比较再交换。我们先来看一个方法,AtomicInteger 的 compareAndSet()。我们来看一下这个方法的参数。一个叫 except 一个叫 update,也就是说,这个方法做的是,如果当前的值是我所期望的那个值 except

2021-02-06 18:50:45 364

原创 【Java Web】 -> Spring 5 ->IOC 操作 -> Bean 管理 ->关于 IOC 的一切就在这里了

IOC Bean管理Ⅰ 什么是 Bean 管理Ⅱ Bean 管理的两种方式A. 基于xml配置文件的Bean管理a. 创建对象b. 注入属性① set 方法注入② 有参构造方法注入③ p 名称空间注入④ 注入特殊值???? 设置空值???? 设置特殊符号⑤ 外部 bean⑥ 内部 bean⑦ 级联赋值⑧ 注入集合???? 基本类型注入???? 引用类型注入???? 提取集合注入部分B. FactoryBeanC. Bean 的作用域与生命周期a. Bean 的作用域b. Bean 的生命周期Ⅰ 什么是

2021-02-06 12:09:07 196

原创 【Java Web】 -> Spring 5 -> IOC 底层原理

Spring IOCⅠ IOC是什么Ⅱ IOC 底层原理Ⅲ IOC 容器的实现方式① BeanFactory② ApplicationContextⅠ IOC是什么我简单总结一下 IOC 是什么:控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理;使用 IOC 的目的:降低耦合度。我第一篇文章写了一个 Spring 的第一个case,实现的就是 IOC 的功能。【Java Web】-> Spring 5 -> Spring 的下载 & 第一个样例其实 IOC 也

2021-02-05 15:39:36 149

原创 【Java Web】-> Spring 5 -> Spring 的下载 & 第一个样例

Spring5 初识Ⅰ Spring5 下载Ⅱ 第一个Spring CaseA. jar包的导入B. Spring的使用① 创建一个普通类② 创建Spring 配置文件③ 获取对象Ⅰ Spring5 下载首先进入spring的官网:spring.io点击project,选择Spring Framework3. 下拉,找到 LEARN,找最新的并且后面标注 GA 的版本,这个代表是稳定版本,SNAPSHOT 是快照,就是不太稳定的意思。4. 点OVERVIEW,再点击上面的github的猫

2021-02-05 13:59:13 233

原创 【Java核心原理】-> JUC -> 详解 volatile

在前面的过程里,我们从最细碎的文件块的思考与操作开始,然后往上走思考了文件块组成的文件,再往上完成了文件组成的资源的描述,现在再继续往上,看看资源组合在一起的注册中心是什么,资源之间怎么操作,思考一下多文件云传输框架的基本逻辑是什么。在资源的描述中,我们定义了一个字段,resourceId,资源编号。它是用来和其他资源做区分的。那么,我们来想想,这个资源编号是谁来编的,是发送端?是接收端?这里我再把一开始画的图拿来。初始时,所有的资源是在图中的服务器手里的。然后经过几次其他设备的请求和发送,这个网

2021-02-03 18:33:49 247

原创 【Java项目整理】-> CsFramework -> 从零开始手动搭建一个C/S模式中间件

CsFrameworkⅠ 前言Ⅱ 准备工作A. 包扫描器Ⅲ 搭建框架A. 通信的建立① 通信层基类的实现② 通信协议的实现③ 会话层的建立B. 核心层① Server② ClientⅠ 前言本文旨在实现一个基于C/S模式的工具型框架 CsFramework,该框架将完成如下几个功能:服务器对客户端一对多,实现长连接,传送数据流;可配置连接客户端的最大数量;识别对端异常掉线;拒绝同名登录;支持服务器与客户端进行基于此框架的MVC模式二次开发;提供APP接口;客户端之间可进行一对一,一对多通

2021-01-28 22:20:01 1778 2

原创 【Java核心原理】->JVM浅谈 -> 类加载

JVM 类加载Ⅰ 前言Ⅱ 类加载机制概述Ⅲ 类加载的过程A. 加载(Loading)B. 链接(Linking)① 验证(Verification)② 准备(Preparation)③ 解析(Resolution)C. 初始化(Initialization)Ⅳ 类加载器A. 概念B. 三层类加载器与双亲委派模型Ⅰ 前言Java 语言的类型一共可以分为两大类:基本类型(primitive types) 和 引用类型(reference types)。基本类型都是由 JVM 预先定义好的。引用类型一共可以

2021-01-26 18:17:13 195

原创 【Java Web】-> Session -> 如何实现登录与注销?

SessionⅠ 关于SessionⅡ Seesion的用法Ⅰ 关于Session在前面一篇讲Cookie的文章中我提到了会话的概念,->Cookie,这个Seesion就是一个会话。关于seesion我们有几点需要知道:服务器会给每一个用户(浏览器)创建一个Session对象一个Session独占一个浏览器,只要浏览器没有关闭,这个Session就一直存在。用户登录之后,整个网站都可以访问。(比如你登了CSDN,点首页、创作中心任何地方跳转过去还保留着你的登录信息)。Ⅱ Seesio

2021-01-26 13:37:25 922

原创 【Java Web】-> Cookie -> 如何得到用户上一次访问网站的时间?

CookieⅠ 前言Ⅱ 会话A. 理解会话B. 保存会话的两种技术Ⅲ 如何使用cookieA. 得到用户上一次访问时间B. Cookie总结Ⅰ 前言从字面上来看,cookie就是曲奇饼,session就是会话。那在web中,对应的指代就是服务器给客户端一个网络小饼干,和 服务器和客户端建立一次互有往来的对话。Ⅱ 会话A. 理解会话我们简单来定义一下会话的概念,就是用户打开一个浏览器,点了很多链接,访问不同的 Web 资源(对应不同的servlet),关闭浏览器的这个全过程。会话又分成了无状态会话

2021-01-24 22:19:22 511

原创 【Java底层原理】-> HashMap & HashTable & TreeMap 详细分析

HashMap 再认识 Ⅰ 从面试出发Ⅱ Map 整体结构Ⅲ 相关数据结构与算法一、 数据结构① 散列表② 链表③ 红黑树二、算法Ⅳ 源码分析一、 HashMap① 内部结构实现② 一些极其巧妙并且重要的方法a. 哈希桶的索引位置如何确定b. 扩容 & 数据迁移c. 树化Ⅴ 总结Ⅰ 从面试出发HashMap 现在也算是面试官非常爱考的一个东西了,针对 HashMap 可以考量的东西很多,比如牵扯到的几种数据结构(散列表,链表,红黑树),典型的应用场景,以及技术实现等等。尤其是在 Java 8 中

2021-01-23 23:02:47 447 1

原创 【Java底层原理】-> Vector & ArrayList & LinkedList 详细分析

Vector & ArrayList & LinkedList 详细分析Ⅰ从面试出发Ⅱ 相关数据结构与算法Ⅲ Java 集合框架设计结构Ⅳ 源码分析① ArrayList② LinkedListⅤ 总结Ⅰ从面试出发这篇文章我们先从一个面试问题出发,然后逐步详细分析这三个集合类的原理。Q: 请你谈一谈,Vector, ArrayList, LinkedList 有什么区别?下面的答案源引自极客时间,杨晓峰《Java核心技术面试精讲》。A:这三者都是实现集合框架中的 List,也就

2021-01-21 18:41:43 292

原创 【数据结构与算法】-> 社群分享

社群分享Ⅰ 前言Ⅱ 链表Ⅲ 位运算Ⅰ 前言这篇文章的缘起,是我参加的极客大学算法训练营,要做一次社群分享,这篇文章作为底稿,大致梳理一下我想要分享的两个部分:位运算和链表。由于现在时间有限,只先梳理一个大概的总结,在后面的文章中我会将这三个部分以及其他模块比如BFS,DFS,DP,二分,贪心等等补充详细。基础知识补充在我的数据结构与算法已经发出的相关文章中,相关力扣题的整理再单独发出。Ⅱ 链表链表是数据结构里最最基础的一个结构,之所以想跟大家分享这么基础的东西,是因为链表的很多题是挺有趣的,我刚开始

2020-12-22 21:37:39 1603 6

原创 【LeetCode】->链表->通向链表自由之路

LeetCode - 链表Ⅰ 前言Ⅱ 删除链表倒数第 n 个结点(#19)Ⅲ 两个有序链表的合并 (#21)Ⅳ 链表中环的检测(#141)Ⅴ 单链表反转(#206)Ⅵ 求链表的中间节点(#876)Ⅰ 前言在我数据结构与算法的链表讲解中,我留下了几个链表必须要掌握的操作,掌握看了它们,就基本可以实现 “链表自由” 了。关于链表的详细讲解,可以跳转到我下面的文章。【数据结构与算法】->数据结构->链表->LRU缓存淘汰算法的实现这几个操作分别对应了 LeetCode 上的几道题,我们一起来看看。Ⅱ

2020-10-03 21:24:37 1043

原创 【数据结构与算法】->算法-> A* 搜索算法->如何实现游戏中的寻路功能?

A* 搜索算法Ⅰ 前言Ⅱ 算法解析Ⅲ 如何实现游戏寻路问题Ⅳ 总结Ⅰ 前言你可能玩过魔兽世界,仙剑奇侠和英雄联盟这类 MMRPG 游戏,在这些游戏中,有一个非常重要的功能,就是人物角色自动寻路。当人物处于游戏地图中的某个位置的时候,我们用鼠标点击另外一个相对较远的位置,人物就会自动地绕过障碍物走过去。那么这个功能是如何实现的呢?这篇文章我们就来探索一下这个功能。Ⅱ 算法解析实际上,这是一个非常典型的搜索问题,人物的起点就是他当下所在的位置,终点就是鼠标点击的位置。我们需要在地图中,找一条从起点到终点

2020-09-22 20:36:19 776

原创 【数据结构与算法】->数据结构-> B+ 树->如何实现 MySQL 数据库索引

B+ 树Ⅰ 前言Ⅱ 算法解析① 需求分析② 二叉查找树的演化Ⅰ 前言我们在使用数据库的时候,为了加速数据库中数据的查找速度,我们常用的处理思路是,对表中数据创建索引。那么,数据库索引是怎么实现的呢?它的底层使用的是什么数据结构和算法?这篇文章我们就来研究一下这个问题。Ⅱ 算法解析① 需求分析首先,我们先思考一个问题,就是数据库要解决什么问题,有哪种需求。我们这里只思考两个最常用的需求:根据某个值查找数据,比如 SELECT * FROM user WHERE id = 123;根据区间值来查

2020-09-22 07:30:44 334

原创 【数据结构与算法】->算法->地图软件的最优路线是如何计算的?

最短路径算法Ⅰ 前言Ⅱ 一些基本分析Ⅲ 迪杰斯特拉算法(Dijkstra)A. 原理及实现B. 时间复杂度C. Dijkstra 算法在实际开发中的优化Ⅰ 前言在我前面的文章中,我讲了两种图的搜索算法,深度优先搜索和广度优先搜索。这两种算法主要针对的是无权图,也就是说每个顶点到其他顶点的距离都一样的,都是 1。【数据结构与算法】->算法->深度优先搜索&广度优先搜索针对有权图,也就是图中的每条边都有一个权重,我们该如何计算两点间的最短路径(经过的边的权重和最小)呢?这就引出了我们这篇文章的内

2020-09-20 20:14:50 3438 3

原创 【数据结构与算法】->算法->拓扑排序->如何确定代码源文件的编译依赖?

拓扑排序(Topological Sorting)Ⅰ 前言Ⅱ 拓扑排序算法解析A. Kahn 算法B. DFS 算法Ⅰ 前言我们一般写程序的时候,一个完整的项目往往会包含很多代码源文件,编译器在编译整个项目的时候,需要按照依赖关系,依次编译每个源文件。比如 a.java 依赖 b.java,那在编译的时候,编译器需要先编译 b.java,才能编译 a.java。原来我写 C 语言的程序的时候,经常要用到联合编译,当时我们运行程序都是手动在命令行上编译和运行,所以如果要联合编译而且有依赖关系,比如 a.

2020-09-20 08:51:45 1281

原创 【数据结构与算法】->算法->动态规划(下)->如何实现搜索引擎的拼写纠错功能?

动态规划(下)Ⅰ 前言Ⅱ 字符串相似度的量化Ⅲ 莱温斯坦距离的计算Ⅰ 前言在我前面的一篇文章 Trie 树 中我提到了搜索引擎的一个功能,关键词提示。除此之外,一般搜索引擎为了优化用户的体验,还有个拼写纠错的功能。当你在搜索框中,不小心输入错单词时,搜索引擎就会非常智能地检测出你的拼写错误,并且用对应的正确单词来进行搜索。那么,这个功能是如何实现的呢?Ⅱ 字符串相似度的量化要实现拼写纠错功能,首先要能识别两个字符串,但是计算机只认识数字,两个字符串之间的相似度要如何量化呢?有一个非常著名的量化方

2020-09-18 11:21:46 663

原创 【数据结构与算法】->算法->动态规划(中)->详解动态规划理论

动态规划(中)Ⅰ 前言Ⅱ 一个模型三个特征A. 一个模型B. 三个特征1. 最优子结构2. 无后效性3. 重复子问题Ⅲ 一个特征三个模型实例解析Ⅳ 两种动态规划解题思路总结A. 状态转移表法B. 状态转移方程法Ⅴ 四种算法思想比较分析Ⅵ 小总结Ⅰ 前言在上一篇文章中,我通过几个例子讲述了动态规划的思想,这篇文章我们再回到动态规划的基本概念中,带你搞清楚最优子结构,无后效性和重复子问题。【数据结构与算法】->算法->动态规划(上)->初识动态规划->怎么精准地帮助女朋友薅羊毛Ⅱ 一个模型三个特征什么

2020-09-18 00:05:33 408

原创 【数据结构与算法】->算法->动态规划(上)->初识动态规划->怎么精准地帮助女朋友薅羊毛

动态规划(上)Ⅰ 前言Ⅱ 0-1 背包问题Ⅲ 0-1 背包问题 PlusⅠ 前言淘宝的双十一大家相比都经历过,双十一里有很多满减活动,比如“满 200 元减 50 元”。假如你的女朋友的购物车中有 n 个(n > 100)想买的商品,她希望能从里面选出来几个,在凑够满减条件的前提下,选出来的商品价格总和最大程度地接近满减条件(200 元),这样就可以极大限度地“薅羊毛”。作为程序员的你,能不能换个女朋友?奥不对,能不能写个代码帮她搞定这件事呢?要想高效地解决这个问题,就要用到这篇文章要讲的动态规

2020-09-17 10:13:51 1069 1

PersonalFinancialMangeSystem.zip

该程序完成了对个人收支明细的管理系统,实现将明细写入文件,对信息进行添加、删除以及查询汇总。个人收支明细包括编码(各个不同项自行编码)、金额、发生时间以及备注,查询时可以做到根据时间进行汇总。

2020-06-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除