- 博客(50)
- 收藏
- 关注
原创 resultMap生成
public class Generator { private static final String FORMAT_ERROR = "数据格式错误"; /** * resultMap拼接词缀 */ private static final String QUOTATION_MARK = "\""; private static final String RESULT_PREFIX = "<result property="; priv.
2021-03-18 09:29:43
598
原创 图片型pdf转文本文档
基本思路直接用工具将扫描型pdf转文本是不行的,因为扫描型的pdf是图片。先读取整个pdf文件按页生成图片,在调用OCR识别读取文字即可。pdf第三方库pdfbox依赖: <!--pdfbox pdf解析--> <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</arti
2020-12-15 17:06:55
1477
1
原创 编译原理-词法分析
词法分析对源程序进行扫描产生单词符号,将源程序改造为单词符号串的中间程序,即输入源程序、输出单词符号。词法分析器(Lexical Analyzer)包括扫描器(Scanner)与执行词法分析的程序单词符号是一个程序语言的基本语法符号。称作 token(记号) ,是具有独立意义的最小语法单位。将字符组合成记号与在一个英语句子中将字母构成单词并确定单词的含义很相像,此时的任务很像拼写。程序语言的...
2020-03-16 20:58:47
5211
1
原创 编译原理-文法基础
概述编译程序:将高级语言的源程序翻译成与之等价的低级语言的目标程序的这样一种程序源程序运行过程:编译阶段+运行阶段或者编译阶段+汇编阶段+运行阶段解释程序:以源程序作为输入,但不产生目标程序,解释一条执行一条汇编程序:用于特定计算机上的汇编语言的翻译程序。有时编译器把汇编语言作为目标语言,然后再由汇编程序将它翻译成目标代码。连接程序:将分别在不同的目标文件中编译或汇编的代码收集到一个可直...
2020-02-21 21:03:13
1399
原创 模板引擎thymeleaf
引入在maven中引入:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>在html标签下引入:<html ...
2020-02-01 16:37:54
189
原创 操作系统基础概念
文章目录基本概念处理器管理处理器中断进程线程处理器调度处理器调度算法并发进程的同步与互斥、死锁与饥饿临界区管理信号量与PV操作经典同步问题--哲学家进餐问题经典同步问题--生产者消费者问题经典同步问题--读者写者问题经典同步问题--睡眠理发师问题管程进程间通信死锁存储管理连续存储管理分页存储管理分段存储管理虚拟存储管理设备管理基础概念I/O软件系统磁盘管理虚拟设备文件管理文件与目录文件结构文件空间...
2020-01-04 21:25:32
1668
原创 Linux常用命令
基础概念通配符在查询时可使用通配符进行处理*代表任意字符(0到多个)? 代表一个字符[ ] 中间为字符组合,仅匹配其中任一一个字符文件/目录权限每个文件/目录权限分三种,创建该文件的用户,该用户所在的属组,其他人每种用户可进行的操作有三种r为读,w为写,x为可执行每种操作1代表有,0代表无,三种操作通常连在一起(rwx)可组成一个二进制数字代表其权限操作,直接使用十进制表示。文...
2020-01-02 17:52:51
116
原创 java异常体系
父类ThrowableThrowable是所有异常的父类,Throwable维护两个主要信息:message:表示异常消息cause:表示触发该异常的其它异常,通过该参数可以形成一条异常链直接来看源码,Throwable内部维护的信息为://追踪异常private transient Object backtrace;//该异常维护的异常信息private String det...
2019-12-29 22:28:41
347
原创 Spring-IOC/DI
IOC/DI一种仅通过构造器参数、工厂方法参数或由构造器/工厂方法产生的实例的属性定义依赖关系,由容器在创造bean的过程中注入依赖的过程。下述例子来源: https://www.zhihu.com/question/23277575/answer/169698662所谓依赖注入,就是把底层类作为参数传入上层类,实现上层类对下层类的“控制”org.springframework.b...
2019-12-24 12:15:03
342
原创 Maven创建多模块(父子聚合)项目
通过 maven 可以创建父子-聚合项目。 所谓的父子项目,即有一个父项目,有多个子项目。这些子项目,在业务逻辑上,都归纳在这个父项目下,并且一般来说,都会有重复的jar包共享。所以常用的做法会把重复的 jar 包都放在父项目下进行依赖,那么子项目就无需再去依赖这些重复的 jar 包了。1. 使用IDEA创建maven项目创建的maven项目就是父项目,一般只提供给子项目依赖并将子项目进行...
2019-12-23 13:10:25
720
原创 设计模式-面向对象设计原则
面向对象设计原则单一职责原则 :一个类(或者大到模块,小到方法)承担的职责越多,它被复用的可能性越小,而且如果一个类承担的职责过多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能会影响其他职责的运作。类的职责主要包括两个方面:数据职责和行为职责,数据职责通过其属性来体现,而行为职责通过其方法来体现。 单一职责原则是实现高内聚、低耦合的指导方针,在很多代码重构手法中都能找到它的存在,它...
2019-12-15 22:07:01
203
原创 行为型模式
行为型模式行为型模式(Behavioral Pattern)是对在不同的对象之间划分责任和算法的抽象化。行为型模式不仅仅关注类和对象的结构,而且重点关注它们之间的相互作用。 通过行为型模式,可以更加清晰地划分类与对象的职责,并研究系统在运行时实例对象之间的交互。在系统运行时,对象并不是孤 立的,它们可以通过相互通信与协作完成某些复杂功能,一个对象在运行时也将影响到其他对象的运行。行为型模式分为...
2019-12-15 22:04:28
772
原创 UML、对象创建型模式
UML关联关系(Association)是类与类之间最常用的一种关系, 它是一种结构化关系,用于表示一类对象与另一类对象之间有联系。单线实箭头,可自关联关联关系中要表明对象间的关联关系,如是一对多还是一对一依赖关系(Dependency)一种使用关系,例如类A的某个方法需要类B做参数,即要使用类B的方法,用虚线表示聚合关系(Aggregation)表示一个整体与部分的关系,成...
2019-12-03 21:02:20
19206
原创 对象结构型模式
对象结构型模式结构型模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构适配器模式在适配器模式中可以定义一个包装类,包装不兼容接口的对象,这个包装类指的就是适配器(Adapter),它所包装的对象就是适配者 (Adaptee),即被适配的类。适配器提供客户类需要的接口,适配器的实现就是把客户类的请求 转化为对适配者的相应接口的调用。适配器可以使由于接口不兼...
2019-11-27 21:55:44
20316
原创 01背包
01背包0-1 背包问题:给定 n 种物品和一个容量为 C 的背包,物品 i 的重量是 wi,其价值为 vi 。问:应该如何选择装入背包的物品,使得装入背包中的物品的总价值最大?更具体的,抽象问题为:有n个可选项,价值为vi,耗费wi,在总耗费为C的情况下选取,求总价值最大使用dp[i][j]表示面对第i个可选项,耗费为j时所能取到的最大值,面临的只有两种选择,取当前项,或者不取当前项:...
2019-11-24 19:50:47
19284
原创 RPC与RPC框架
RPC即 Remote Procedure Call ,远程过程调用,一种通信概念,编程模型概念通俗讲,两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。为什么要远程调用无法在一个进程内,甚至一个计算机内通过本地调用的方式完成的需求,比如不同的系统间的通讯,甚至不同的组织间的通...
2019-11-21 22:29:19
19052
原创 类加载机制与ClassLoader
类加载机制与ClassLoader类加载器ClassLoader即用于加载其它类的类,将字节码加载进内存,创建Class对象,输入完全限定的类名,输出Class对象。ClassLoader分三类:启动类加载器Bootstrap ClassLoader:Java虚拟机的一部分,使用C++实现,负责加载java的基础类,主要是<Java_Home>/lib/rt.jar扩展类加载...
2019-11-21 22:25:23
18967
原创 Android基础(2)-工程项目结构、Activity跳转及消息传递
工程项目结构java:写Java代码的地方,业务功能都在这里实现 res:存放各种资源文件的地方,有图片,字符串,动画,音频等,还有各种形式的XML文件res目录下所有的资源文件都会在R.java文件下生成对应的资源id(文件名),可通过id直接资源,即R.xx这样的方式res下主要包括:drawable:存放各种位图文件,(.png,.jpg,.9png,.gif等)除此之外可能...
2019-09-17 15:09:23
151
原创 Android基础(1)-安装Android Studio、构建Activity
安装Android Studio1.下载Android Studio,官网:https://developer.android.com/studio,需翻墙2.安装,勾选SDK(安卓开发包),AVD(Android Virtual Devices,模拟手机)3.创建new Project,Android使用gradle创建工程,第一次创建project时会下载gradle,可能失败,打...
2019-09-15 12:38:47
442
原创 java并发编程-接口Lock、同步器AQS
接口LockLock的用法为Lock lock = new ReentrantLock();lock.lock();try {}finally { lock.unlock();}Lock内部只有6个方法,其中获取锁lock()与释放锁unlock()最常用,都是非static void方法。 并发包java.util.concurrent.locks...
2019-09-10 12:46:40
164
原创 python3 基础
目录基础特性数据结构/常用函数函数类装饰器文件异常模块常用模块基础特性●首部添加#!/usr/bin/env python3表示这是一个python3程序●变量为动态类型,弱类型语言的主要特性之一,要声明变量直接变量名=xx即可,如x=777●语句之后没有分号; 作为结束,取而代之的是每行首部的缩进进行标识●运算符号中**代表^即指数...
2019-09-02 20:35:09
1698
原创 html/css/Bootstrap/Font Awesome
目录基础概念属性:每个标签有诸多属性,可以直接写在标签内部,用于指定内容样式/功能样式属性响应式设计Bootstrap图标库Font Awesome基础概念标签:使用标签指定功能,标签下面可以有子标签标签实际上就是一个矩形标题:<h1> -<h6>段落:<p>引入资源:<link>常用于引入字体等资源,...
2019-09-02 11:08:58
743
原创 java并发编程-基础概念、volatile、synchronized、CAS、ABA、线程、线程基本机制
目录基础概念 关键字volatile关键字synchronizedcas:不加锁实现原子操作(乐观锁)cas中的ABA问题线程进程与线程的区别java线程的实现方式线程优先级线程状态Daemon线程线程基本机制中断Interrupted等待/通知机制管道输入/输出流Thread对象的join()方法线程局部变量ThreadL...
2019-09-02 10:12:21
1609
原创 java数据结构-线段树
线段树是一种树形的高级数据结构。用于解决数组的某段区间的求最值,某段区间更新单个/所有值等问题(或抽象简化后与之相似的题)。线段树的概念比较抽象,应用时要注意与实际问题的抽象简化。 线段树是一颗近似的完全二叉树,每个节点代表一个区间,节点的权值是该区间的最小值。根节点是整个区间。每个节点的左孩子是该节点所代表的的区间的左半部分,右孩子是右半部分。查询和更新操作为O...
2019-09-01 18:37:02
425
原创 json基础
目录JSON语法JSON 对象JSON.parse()JSON.stringify()eval()资料来源:菜鸟教程JSON 是存储和交换文本信息的语法。类似 XML,JSON 比 XML 更小、更快,更易解析。JSON语法JSON 语法是 JavaScript 对象表示语法的子集。数据在名称/值对中 数据由逗号分隔 大括号保存对象 中括号保存数组...
2019-08-29 20:18:45
255
原创 log4j基础
log4j,该框架是专门的记录日志的框架,log4j的api包含多个对象。 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;跟踪代码运行时轨迹,作为日后审计的依据;担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息。Maven导入log4j依赖<dependency> ...
2019-08-27 19:15:52
156
原创 MyBatis基础-ORM、全局配置、mapper配置、使用
目录基础概念ORMMyBatisMyBatis功能架构MyBatis框架架构MyBatis 与 JDBC、Hibernate 的区别基本术语基本使用安装基础核心配置文件核心映射文件Mapper过程概述1.在pom.xml中导入依赖并设置2.配置主文件,并在开发过程中不断添加typeAlias、mapper等3.写映射,即接口与...
2019-08-24 10:06:22
1079
原创 spring基础-AOP、JdbcTemplate
AOP-面向切面编程 AOP是对OOP的有益补充,面向对象的特点是继承、多态和封装。而封装就要求将功能分散到不同的对象中去,这在软件设计中往往称为职责分配。实际上也就是说,让不同的类设计不同的方法。这样代码就分散到一个个的类中去了。这样做的好处是降低了代码的复杂程度,使类可重用。 但是在分散代码的同时,也增加了代码的重复性。什么意思呢?比如说,我们在两个类中,可能...
2019-08-23 16:17:59
846
原创 Java基础-反射、注解、静态/动态代理
目录反射含义使用作用注解含义格式元注解本质使用实例作用动态代理含义实例:cglib动态代理cglib实例:反射含义 每个类都在内存中保留有相应信息,这些信息保存于泛型类Class<?>中,每个实例或者静态类都可以动态获取Class<?>对象,从而在运行时知道对象类的内部信息,...
2019-08-22 14:16:36
347
原创 Servlet基础
参考教程:菜鸟教程目录Servlet基础概念ServletServlet 架构Servlet 任务Tomcat导入jar包Servlet生命周期Servlet部署/IDEA创建Web项目JSP与HTML与ServletServlet项目包结构Servlet实例Servlet编写Servlet与Get/Post读取表单数据Http获...
2019-08-09 19:14:13
910
原创 markdown基础
学习参考来源:菜鸟教程目录标题:使用 # 号标记换行字体:使用*或者_号分隔线删除线无序列表列表嵌套Markdown 区块Markdown 代码代码区块链接Markdown 表格公式标题:使用 # 号标记使用#号可表示 1-6 级标题(从大到小),一级标题对应一个#号,二级标题对应两个#号,以此类推。# 一级标题#...
2019-08-07 19:58:01
179
原创 Hadoop-HDFS
对于框架/工具来说,最好的学习和参考来源还是官网。链接:https://hadoop.apache.org/docs/r3.2.0/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html#IntroductionHDFS:Hadoop 分布式文件系统,用于为有大量数据集的application提供高速数据访问,将数据以高容错的方式部署在众多廉价机器组...
2019-07-20 11:25:40
245
原创 Hadoop基本概念与安装配置
整个Apache Hadoop“平台”包括Hadoop内核、MapReduce、Hadoop分布式文件系统(HDFS)以及一些相关项目。Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。Hadoop相关项目Hadoop Common:在0.20及以前的版本中,包含HDFS、MapReduce和其...
2019-07-18 14:26:28
219
原创 ts基础
ts是js的超集,运行ts需要安装ts运行环境使用npm工具安装:npm install -g typescriptts文件通过tsc编译为js代码,tsc Test.ts,之后可通过node命令执行该js代码ts中;是可选的,加上比较好ts是一种oop语言1.数据类型any:表示任意类型number:64位双精度浮点值string:字符串boolean...
2019-07-16 19:15:35
971
原创 js基础
1.JavaScript 代码是放在<script> ……</script> 标签里,而包含 JavaScript 代码的 script 标签,我们可以放在 <body> ……</body>标签里,也可以放在<head> ……</head>标签里。<script>js代码</script>可以...
2019-07-15 12:05:44
538
原创 经典算法-并查集、快速排序、字典序算法、二分搜索、牛顿开方法、求质数(筛选法)、编辑距离、滑动窗口、异或求重、长除法
目录并查集快速排序字典序算法二分搜索开根号-牛顿开方法求质数编辑距离滑动窗口异或求重长除法并查集并查集用于解决相同元素集合动态连接的快速构建算法例:求相等集合a=b,e=d,d=b初始时,ab为一集合,ed为一集合,又d=b,故应将abed变为一集合,之后e=a就是显而易见的事了并查集利用...
2019-07-14 19:17:24
872
原创 github首次提交项目
如果是自己创建仓库,先在github网页上创建repository,下载github客户端,选择File->clone Repository先把自己创建的项目clone到本地,右键项目文件单击选择gitbash,发现现在正处于master分支,自动完成git与项目的配置工作。或者先创建仓库git config --global user.name "用户名"git config ...
2019-07-06 10:50:55
134
原创 Spring(Spring Boot)-IDEA+Maven 建立Restful Web Service 基本项目
Restful 是一个概念,Rest是一个架构,与其唯一绑定的实例就是http。关于restful:https://www.runoob.com/w3cnote/restful-architecture.html内容来源于spring官网:https://spring.io/guides/gs/rest-service/使用 Spring/SpringBoot/Maven/Tomcat...
2019-06-26 17:37:18
1995
原创 使用IDEA+Maven创建Java Project
初次使用Maven创建Java Project请看:https://spring.io/guides/gs/maven/Maven的下载:https://maven.apache.org/download.cgiMaven教程:https://www.runoob.com/maven/maven-tutorial.htmlMaven Project 用XML文件定义,即pom.x...
2019-06-16 15:25:29
936
原创 gdb
GDB, 是The GNU Project Debugger的缩写, 是 Linux 下功能全面的调试工具。GDB 支持断点、单步执行、打印变量、观察变量、查看寄存器、查看堆栈等调试手段。在 Linux 环境软件开发中,GDB 是主要的调试工具,用来调试 C 和 C++ 程序。gdb安装: sudo apt-get install gdb1.编译 gcc 源文件名(.c...
2019-06-12 14:43:05
529
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人