自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

苍白的咏叹调的博客

程序小白学习之路

  • 博客(97)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android studio 关于SQlite数据库导出,创建数据库、表以及如何查看操作

1.首先,你要确定你的模拟器或手机已经Root,若没有,在你的android SDK的platform-tools目录下打开shell命令行·如,我的是:C:\Users\10378\AppData\Local\Android\Sdk\platform-tools输入 adb root破解root权限然后输入 adb remount ,看是否破解成功,成功会显示success之类的提示。导出数据库...

2018-04-10 11:13:59 29713 1

原创 操作系统中PV操作之顾客理发师问题

  PV操作:对信号量进行相应操作S:信号量P:请求操作,相当于S=S-1;S>=0,进程继续进行V:释放操作,相当于S=S+1,S>0,进程被唤醒理发师问题 一个理发师,一把理发椅,n把等候理发的顾客椅子,如果没有顾客则理发师便在理发椅上睡觉 ,当有一个顾客到达时,首先看理发师在干什么,如果理发师在睡觉,则唤醒理发师理发,如果理发师正在理发,则查看是否有空的顾客椅子可坐,  如果有,...

2018-03-27 17:40:04 24108 8

原创 C语言递归创建一颗二叉树

1.在这里给出结构体信息:typedef struct tree { struct tree   *lchild;    //左孩子节点 struct tree *rchild;    //右孩子节点 char data;//数据域}Tree,*Bitree;在图纸上画出自己所要创建的二叉树,这里是用先序遍历的方法来创建一颗二叉树: 2.空节点用#代替,这里给出一个...

2018-03-27 11:11:10 15188 6

原创 idea常用插件

1.lombok:可以使用注解自动生成实体类各属性的Getter、Setter、构造器、无参构造器、tostring方法,需要添加Maven依赖2.Maven Helper:可以在pom.xml中Dependency Analyzer里面发现有冲突的依赖项3.Free Mybatis plugin:可以在mapper.java中通过方法名自动跳转到对应的mapper.xml中的sql语句4.Leetcode Editor:LeetCode插件,可以在idea中刷题,登录需要先复制网页登陆成功的c

2021-09-24 21:52:29 321

原创 Redis Lua脚本实现原子性操作

目录一、简介二、内容说明三、Java中使用Jedis操作一、简介redis操作时单线程的,平常如果想要redis原子性操作的话,可以使用incrBy()和decrBy()方法进行原子性的加减,但是对于事务性的逻辑操作,没有办法实现原子性,Redis 使用单个 Lua 解释器去运行所有脚本,当某个脚本正在运行的时候,不会有其他脚本或 Redis 命令被执行,因此,lua脚本需要运行的使用比较快,不会妨碍其它lua脚本执行二、内容说明 redis命令

2021-09-24 21:51:49 7968

原创 MYSQL数据类型

一、数值数据类型1.常用数值数据类型数据类型有 tinyint ,smallint ,mediumint , int ,bigint1 bytes = 8 bit , 在计算机中,数值一律用补码表示和存储的,正数的补码与原码相同,负数的补码为“其反码+1”,**补码的第一位为符号位**。第一位为符号位的话,最大为2的7次方 -1,十进制数为127, 在计算机中用01111111表示,负数用-128表示-0,补码为10000000,为-2的7次方因此1 bytes的大小有符号为-128到127

2021-05-07 23:02:03 521

原创 EasyExcel实现文件读取、导出、上传、下载操作

一、EasyExcel简介​ Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版Excel的解析,能够原本一个3M的excel用POI sax依然需要100M左右内存降低到几M,并且再大的excel不会出现内存溢出,03版...

2021-04-24 13:07:11 5646 3

原创 Spring中策略模式实现方法

一、定义在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。由于spring中我们需要注册对象,不能通过直接通过 **new** 来创建策略实现类,需要使用工厂模式来获取bean对象二、实现方法1.策略模式接口public interface StrangeService {.

2021-04-24 13:05:15 623

原创 ThreadLocal原理

### 一、定义当需要为每一个线程设置一个私有的变量,进行线程隔离时,java提供的ThreadLocal可以帮助我们实现,ThreadLocal有一个内部ThreadLocalMap,存储每个ThreadLocal对象和它的值,value为该线程独有的数据,可以为多种类型ThreadLocal、ThreadLocalMap、Thread三者之间的关系1、ThreadLocal是一个本地线程副本变量工具类,主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,线程之间数

2021-04-24 13:02:28 113

原创 http方式调用接口服务方法

一、使用步骤调用其他服务方法时,除了dubbo、rmq等方式外,还可以采取http方式调取对方服务的url,获取响应数据,可以采用HttpClient或CloseableHttpClient等接口实现http调用请求使用HttpClient发送请求的一般步骤 ,如下所示:(1)进行http连接配置,包括请求超时时间、读取响应时间、重试次数,最大请求数等配置(2)根据请求方式和参数创建对应的http对象。有HttpPost、HttpGet创建请求方式方法,对于HttpPost对象而言,可调用s

2021-03-02 22:58:49 10065 1

原创 分布式事务之TCC

### 一、定义分布式事务:分布式事务指事务的操作位于不同的节点上,需要保证事务的 AICD 特性,一个系统涉及到多个业务系统,出错时需要全部回滚,一般采取两阶段提交(2PC)、补偿事务(TCC)、MQ事务消息还可以使用补单操作,来完成任务的图1-1 电商系统订单服务涉及到库存、积分、仓储服务的数据库,出现问题时,无法直接对它们进行回滚二、TCC补偿分布式事务1.TCC作用机制TCC 其实就是采用的补偿机制,其核心思想是:针对每个操作,都要注册一个与其对应的确认和补偿(撤..

2021-03-02 22:55:39 1181

原创 Filter过滤器

一、定义Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是设置字符集、控制权限、控制转向、做一些业务逻辑判断等。工作原理:只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作,。过滤器在链中的顺序与它在web.xml中配置的顺序有关;同时还可进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面等等工作。它是随你的web应用启动而启

2021-03-02 22:51:36 148 2

原创 Java和Spring中线程池创建方法

一、线程池定义1.JDK中线程池类图Executor:父接口,所有线程池都实现了这个接口,里面有一个excute()方法用于执行线程ExecutorService:线程池接口,继承自Executor接口,供了生命周期管理的方法,返回 Future 对象,可以返回执行完的结果ThreadPoolExecutor:线程池的具体实现类,一般使用ThreadPoolExecutor创建线程池2.创建线程池的工具类Executors:线程池的工具类,用于创建线程池,返回Executo.

2021-01-22 21:11:00 2122

原创 MyBatis之PageHelper分页操作

一、定义PageHelper用在mybatis插件里面,可以自动的为最近的sql语句进行分页查询,提供分页的页码size和每页数量num,在查询过程中hi自动的拼接limit关键字,不用再改写sql语句了在PageHelper.startPage(); 在启动查询 List 数据的查询之前时,会对最近的一个查询进行起作用,但是对于间隔的查询返回 List的数据,将不会有任何影响springboot中Maven依赖<!--pagehelper--> <dependency

2021-01-18 23:00:34 1616

原创 git常用命令操作

一、Git提交代码过程安装好Git,连接远程仓库地址,拉取代码到本地分支master,根据本地分支master创建分支b,修改完毕后,可以commit到本地分支b,之后可以提交到远程仓库地址,若没有远程仓库,会自动生成远程仓库b,再进行推送。如要合并当前分支b代码到主分支master,先切换到主分支master,通过git merge b操作,将分支b合并到主分支master。合并主分支到b也同理。若要进行版本回退,可以用reset –hard即可。删除本地和远程分支点击相应分支名,选择delete即可

2021-01-09 17:52:58 129

原创 spring中容器启动过程中初始化资源使用方法

#### 一、定义在业务场景中,有时需要我们在容器启动过程中加载资源,完成数据的初始化或者配置,需要在调用前加载进spring容器过程中去,有以下一些方法来实现1.定义静态常量,随着类的生命周期加载而提前加载。一般使用较多,这里不做说明2.实现InitializingBean接口;重写afterPropertiesSet()方法3.实现CommandLineRunner接口(Spring Boot中使用);容器启动之后,加载实现类的逻辑资源,已达到完成资源初始化的任务4.@PostCon

2021-01-09 17:51:45 610

原创 zk宕机掉与客户端连接过程记录

Zk 主节点leader宕机,客户端与服务器变化过程1.zk集群的节点数及配置,应用节点数及配置1)节点数5个10.101.194.160、10.101.195.101、10.101.195.99、101.195.102、10.101.195.98。2)zk节点搭建介绍(搭建方法网上找攻略)leader为10.101.195.102(第四台),follower为10.101.194.160(第一台)、10.101.195.101(第二台)、10.101.195.99(第三台)、10.10

2020-12-06 23:03:48 582

原创 Zookeeper集群搭建方法

一、设备环境5台Centos7.3 64bit 虚拟机、xsehll 7连接工具zookeeper:3.4.7版本下载地址:https://archive.apache.org/dist/zookeeper/zookeeper-3.4.7/zookeeper-3.4.7.tar.gz二、搭建集群1.选择任意一台虚拟机节点通过xshell连接,下载zookeeper并解压下载:wget https://archive.apache.org/dist/zookeeper/zookee

2020-12-06 23:03:33 158

原创 拦截器HandlerInterceptorAdapter使用方法

一、Interceptor定义:拦截器是在面向切面编程中应用的,就是在你的service或者一个方法前调用一个方法,或者在方法后调用一个方法。是基于JAVA的反射机制1.拦截器(Interceptor)执行顺序:1. 请求到达 DispatcherServlet2. DispatcherServlet 发送至 Interceptor ,执行 preHandle3. 请求达到 Controller4. 请求结束后,postHandle 执行2.拦截器(Interceptor)和过滤器(.

2020-12-06 23:03:16 36073 4

原创 InitializingBean接口使用方法

1.定义InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候都会执行该方法。2.使用方法1)编写一个类引用InitializingBean接口,重写其中的afterPropertiesSet方法,在其中写自己的方法@Componentpublic class TestComponent implements InitializingBean { private sta

2020-12-06 23:02:51 2182

原创 SpringBoot+Junt+Mock测试方法

一、Mock测试定义Mock 测试就是在测试过程中,对于某些不容易构造(如 HttpServletRequest 必须在Servlet 容器中才能构造出来)或者不容易获取比较复杂的对象(如 JDBC 中的ResultSet 对象),用一个虚拟的对象(Mock 对象)来创建以便测试的测试方法。Mock 最大的功能是帮你把单元测试的耦合分解开,如果你的代码对另一个类或者接口有依赖,它能够帮你模拟这些依赖,并帮你验证所调用的依赖的行为使用场景:当一个方法中调用第三方服务(第三方接口、数据库操作等)不可

2020-12-06 23:02:37 667

原创 MySQL乐观锁、共享锁、排他锁、行锁、表锁区别和使用方法

数据库锁分类锁模式分类 乐观锁、悲观锁 范围锁 行锁、表锁 算法锁 临间锁、间隙锁、记录锁 属性锁 共享锁(读锁)、排他锁(写锁) 状态锁 意向共享锁、意向排他锁 一、乐观锁和悲观锁1.乐观锁介绍乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做。那么我们如何实.

2020-10-29 22:55:59 1904

原创 Spring 通过Java Config方式连接数据库

1.dao层结构图2.配置文件配置数据源#dao层mybatis配置spring.datasource.url=jdbc:mysql://localhost:3306/demo?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;useAffectedRows=truespring.datasource.username=rootspring.datasource.passw

2020-10-29 22:55:21 819

原创 shiro框架采取MD5+salt方式加密密码

1.Maven配置<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.0</version></dependency><dependency> <groupId>org.apache.shiro<

2020-09-08 11:20:30 594

原创 RSA加签解签方法

一、RSA签名的过程(1)A生成一对密钥(公钥和私钥),私钥不公开,A自己保留。公钥为公开的,任何人可以获取。(2)A用自己的私钥对消息加签,形成签名,并将加签的消息和消息本身一起传递给B。(3)B收到消息后,在获取A的公钥进行验签,如果验签出来的内容与消息本身一致,证明消息是A回复的。  在这个过程中,只有2次传递过程,第一次是A传递加签的消息和消息本身给B,第二次是B获取A的公钥,即使都被敌方截获,也没有危险性,因为只有A的私钥才能对消息进行签名,即使知道了消息内容,也无法伪造带签名的回

2020-09-05 16:19:50 3304

原创 sharding jdbc根据年月分表

1.配置Maven依赖<!--shardingsphere分表策略--><dependency> <groupId>io.shardingsphere</groupId> <artifactId>sharding-jdbc-spring-boot-starter</artifactId> <version>3.0.0.M2</version></dependency>...

2020-08-31 22:44:33 3213 2

原创 IDEA中Mybatis逆向工程使用方法

1.首先创建一个Spring Boot项目工程目录如下所示:2..添加maven依赖<!--mysql依赖--><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.30</version></dependency&g.

2020-08-07 15:26:14 975

原创 Dubbo使用Zooker注册服务

一、安装配置Zooker1.下载Zooker在apache mirros上下载Zooker :https://mirror.bit.edu.cn/apache/zookeeper/,下载后解压到指定目录建议下载3.4.14版本,其他版本要下载后缀带bin的压缩包2.安装配置本地Zooker解压到指定目录后,进入conf文件夹,将里面的zoo_example.cfg文件重命名为zoo.cfg进入bin目录,编辑zkServer.cmd文件,在zkServer.cmd最后行前加.

2020-08-03 23:02:33 562

原创 IDEA中Git操作

前提是安装并配置了git,可以使用git init等命令一、创建git项目1.直接从github、gitlab等网址导入项目选择new-》输入你的git url地址,直接拉取代码2.自创git项目选择VCS->Git from version control->输入你的url 地址,操作和上面图一样之后项目有了git之后,可以使用git->remotes->添你的远程git仓库地址之后查看是否添加远程成功,local代表本地,若没有远程连接或者想要刷新

2020-07-23 22:46:00 498

原创 Java实现有向图的拓扑排序

1.拓扑排序对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列2.实现方法利用二维数组保存有向图,重复边过滤,有边的话map...

2019-09-09 21:02:50 714

原创 用BlockingQueue实现生产者与消费者问题

1.生产者与消费者问题:生产者生成一定量的数据放到缓冲区中,然后重复此过程;与此同时,消费者也在缓冲区消耗这些数据。生产者和消费者之间必须保持同步,要保证生产者不会在缓冲区满时放入数据,消费者也不会在缓冲区空时消耗数据2.BlockQueue原理:BlockingQueue 是线程安全的,并且在调用 put,take 方法时会阻塞线程,超过指定容量时,用put时会进行阻塞,没有元素时,...

2019-09-09 10:42:24 461

原创 Java 的Comparator比较器用法

1.定义:Comparator是外部比较器,用于比较来对象与对象之间的,两个对象进行比较,多用于集合排序,而Comparable可以认为是一个内比较器,根据对象某一属性进行排序的2.使用方法1)定义节点信息class Node{ int x; int y; Node(int x,int y){ this.x=x; this.y...

2019-09-03 21:20:45 13234 2

原创 求1~n的全排列组合

1.题目:给定一个数字n,求它的全排列如n=3,则它的全排列组合方式有如下所示:1 2 31 3 22 1 32 3 13 1 23 2 12.思路:通过深度优先搜索来做,用一个数组来标记当前位置,一个数组来记录当前位置所代表的的值,只要未标记就加入排列数组中,当数组中元素达到n时,输出这个排列,并取消对应位置的标记3.代码如下所示:public class...

2019-08-21 15:57:43 4298

原创 动态规划——硬币找零和币值最大化问题

一、硬币找零问题1.问题有面值为1元、3元和5元的硬币若干枚,给定一个输入面额,问如何采用最少的硬币数目,得到当前面额2.思路找出状态转移方程,每次可以拿取1元、3元或者5元的硬币,每次拿取,硬币数加1,用d[v]表示当前面额为v的最小硬币数目,d[0]=0; //硬币数为0,不拿d[1]=d[1-1]+1 ; //硬币数为1,只能拿取1元的硬币,相应的当前硬币数...

2019-08-10 11:03:03 1565

原创 求二叉树最长路径长度和

1.题目:求任意一颗二叉树最长路径长度样例:如下所示图一树的最长路径长度为4,图二的最长路径长度为7,图一最长路径经过根节点,顶点为1,图二不经过,顶点为32.思路树中任意两个节点之间,连接起来的路径最长。方法就是求出每个节点的左子树和右子树的高度,两者相加就是当前节点的最长路径,然后比较每个节点的最长路径,最大的就是结果3.实现方法定义一个静态变量MaxL...

2019-08-09 09:51:39 8081

原创 Shiro安全框架的使用

Shiro安全框架1.介绍Shiro有三个核心的概念:Subject、SecurityManager和Realms。Subject(主体):subject本质上是当前正在执行的用户的特定于安全的“view”。它也可以表示第三方服务、守护进程帐户、cron作业或任何类似的东西——基本上是当前与软件交互的任何东西。SecurityManager(安全管理器): SecurityM...

2019-08-06 12:31:06 1534

原创 CAS乐观锁原理

1.乐观锁介绍程序完成并发操作时,访问数据时每次不加锁,假设没有冲突去完成某项操作,如果因为冲突失败就重试,直到成功为止。就是当去做某个修改或其他操作的时候它认为不会有其他线程来做同样的操作(竞争),这是一种乐观的态度,通常是基于CAS 原子指令来实现的。2.CAS介绍当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并不会被挂起...

2019-07-29 10:22:03 2747

原创 Java读取Excel文件并将之写入数据库操作

一、添加需要的包依赖<!--读取excel文件所需要的包--><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.15</version>...

2019-07-25 11:05:02 9216

原创 后台开发人员面试内容——计算机网络(五)

计算机网络一、OSI七层网络协议:应用层——表示层——会话层——传输层——网络层——数据链路层——物理层五层体系机构:应用层——传输层(TCP报文、UDP数据包)——网络层(IP数据报或分组)——数据链路层(帧)——物理层(比特流)二、TCP和UDP的区别?1.TCP是面向连接的,UDP面向无连接2.TCP是可靠的连接,保证数据的正确性;UDP可能丢包3.TC...

2019-07-16 17:27:09 340

原创 后台开发人员面试内容——JVM虚拟机(四)

一、Java类加载机制类从被加载到虚拟机内存中开始,到卸载出内存,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initiallization)、使用(Using)和卸载(Unloading)这7个阶段。其中验证、准备、解析3个部分统称为连接(Linking),这七个阶段的发生顺序如下图...

2019-07-16 17:22:53 108

python数据挖掘分类聚类回归关联算法代码加样例

算法有关联算法Apriori,分类算法BP、adboost,KNN,聚类算法kmeans、kmedoids、Clarans,回归有线性回归,里面程序代码有自带样例,下载相应包即可运行

2019-01-06

基于人脸识别+百度地图+实时的课堂签到系统

需要android7.0以上的设备支持,有打包的app,在release文件夹下,人脸识别采用Face++平台提供的API,地图定位采用的百度地图SDK,工具包在libs文件夹下,教师起始账号为0121410880000,密码为likui1314

2018-08-15

Face++ 人脸识别方面的sdk工具包

java版本的开发工具包,使用时,放在项目的lib目录下,可以查看里面的demo

2018-05-09

空空如也

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

TA关注的人

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