自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式之美-王争-极客时间-返现24元 限时优惠

设计模式之美-王争-极客时间-返现24元

2022-02-07 00:21:39 1209

原创 springboot 参数验证 简单灵活自由功能强大 validate-springboot-starter 又一个选择

validate-springboot-starter 最新版本 0.4.0maven 中央仓库 <dependency> <groupId>com.github.liangbaika</groupId> <artifactId>validate-springboot-starter</artifactId> <version>{latest}

2020-06-17 17:38:16 1082 1

原创 Json与Python对象的双向绑定(jsonfy)

Json与Python对象的双向绑定(jsonfy)今天,向大家介绍一款好用的json和对象的双向绑定工具 jsonfy(对 本人就是作者,欢迎大家使用,哈哈哈)jsonfy github 地址 jsonfy github仓库地址 jsonfy 支持复杂 嵌套类型的对象和json互相转化,没有任何第三方依赖,在这个小框架,不,应该是小工具吧,运用到了许多python的特性,比如面向对象, 元...

2020-01-17 20:25:02 809 1

原创 Mysql的B+Tree结构与索引原理

1.什么是索引?索引:加速查询的数据结构。2.索引常见数据结构:1.顺序查找: 最基本的查询算法-复杂度O(n),大数据量此算法效率糟糕.2.二叉树查找(binary tree search): O(log2n)左边是数据表,一共有两列七条记录,最左边的是数据记录的物理地址(注意逻辑上相邻的记录在磁盘上也并不是一定物理相邻的)。为了加快Col2的查找,可以维护一个右边所示的二叉查找树,...

2018-11-23 13:32:39 281 2

原创 基于RBAC模型的可自由拓展的企业级权限基础框架

项目简介:本项目(主要提供restful api 接口,当然也提供了一个带界面的版本web-permission-ui.war)是一个以权限为核心的基于RBAC模型可自由拓展的基础框架权限方面 未采用任何第三方权限框架,全是自己编写,更加可把控,熟悉,自由配置;基础模块1.用户管理2.角色管理3.组织部门管理4.权限模块管理5.权限点管理6.角色与用户关系维护管理7.角色与权限...

2018-10-14 20:01:33 338

原创 连接查询的原理

连接的原理标签: MySQL 是怎样运行的搞数据库一个避不开的概念就是Join,翻译成中文就是连接。相信很多小伙伴在初学连接的时候有些一脸懵逼,理解了连接的语义之后又可能不明白各个表中的记录到底是怎么连起来的,以至于在使用的时候常常陷入下边两种误区:误区一:业务至上,管他三七二十一,再复杂的查询也用在一个连接语句中搞定。误区二:敬而远之,上次 DBA 那给报过来的慢查询就是因为使用了连接导...

2019-04-05 09:52:21 1029

原创 sql优化建议与技巧

在sql查询中为了提高查询效率,我们常常会采取一些措施对查询语句进行sql优化,下面总结的一些方法,有需要的可以参考参考。1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where nu...

2018-11-21 18:44:20 177

原创 sql查询执行顺序

今天遇到一个问题就是mysql中insert into 和update以及delete语句中能使用as别名吗?目前还在查看,但是在查阅资料时发现了一些有益的知识,给大家分享一下,就是关于sql以及MySQL语句执行顺序:sql和mysql执行顺序,发现内部机制是一样的。最大区别是在别名的引用上。一、sql执行顺序(1)from(3) join(2) on(4) where(5)gro...

2018-11-17 23:32:16 12086 2

原创 JWT简介与入门

JWT什么是JWT传统的session认证基于session认证所显露的问题基于token的鉴权机制JWT的构成什么是JWTJson web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的...

2018-11-11 16:21:34 260

原创 CopyOnWriteArrayList解析

CopyOnWrite :容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是我们可以对CopyOnWrite容器进行并发的读,而不需要加锁,因为当前容器不会添加任何元素。所以CopyOnWrite容器也是一种读写分离的思想,读...

2018-10-28 20:25:42 213

原创 Spring mvc基本流程解析

**Spring mvc工作流程描述**1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截...

2018-09-30 01:10:11 167

原创 部门组织树的通用数据库设计及代码的树形构造

在我们学习工作当中,树的这种结构已经屡见不鲜了,用的场景也很多 比如今天我为大家带来的就是工作中经常可能遇到的组织部门树 权限树 菜单树的构造 直接上张部门组织树的数据库设计吧 组织部门表 id 主键 name 名称 pid 父id level 层级 seq 在当前层级...

2018-09-13 22:40:28 8892 3

原创 Java网络爬虫基于webMagic爬取X课网所有免费视频信息实例

说到爬虫呢 当然是python最适合干的事 但是java呢 基于这个庞大成熟的生态圈,也有一些不错的爬虫框架可以在实际项目中使用的。 webMagic就是今天的主角 它在github上的start数量达到了近7000 很了不起了 并且这个是我们国人开发的哦。 简单介绍下吧: webmagic是一个开源的Java垂直爬虫框架,目标是简化爬虫的开发流程,让开发者专注于逻辑功能的开发 项目结构 ...

2018-09-03 20:14:31 2602

原创 接口限流方案

由于业务应用系统的负载能力有限,为了防止非预期的请求对系统压力过大而拖垮业务应用系统,必须采取流量控制措施。 服务接口的流量控制策略:分流、降级、限流 熔断 分流:扩容机器、单元化通道 降级:关闭非核心接口,保证核心接口链路的正常运行 限流:业务系统限流、数据库限流常见的限流算法有:令牌桶、漏桶、Redis计数器。 下面用图说话吧 令牌桶算法 谷歌的guava库已经帮我们...

2018-08-31 20:34:43 1540 1

原创 AOP spring 实例(演示基于注解权限控制及异常处理)

AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-OrientedPrograming,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。spring的支持 Spring中 AOP代理由Spring的 IoC容器负责生成、管理,其依赖关系也由 IoC容器负责管理。因此,...

2018-08-18 14:14:28 375

原创 分布式session

我们知道HTTP协议本身是无状态的,因此在使用HTTP协议进行通信的过程中,需要借助Session机制进行状态的保持。然而在大型网站中,我们的服务器数量通常不止一台,可能是几十台甚至几百台之多,用户发起的HTTP请求通常要经过像Ngnix之类的负载均衡器之后,再路由到具体的服务器上,由于Session默认是存储在单机服务器内存中的,因此在分布式环境下同一个用户发送的多次HTTP请求可能会先后落到不...

2018-08-17 23:30:00 142

原创 WebSocket介绍及使用&&SpringBoot集成

先聊聊websocket 一直以来,网络在很大程度上都是围绕着所谓 HTTP 的请求/响应模式而构建的。客户端加载一个网页,然后直到用户点击下一页之前,什么都不会发生。在 2005 年左右,AJAX 开始让网络变得更加动态了。但所有 HTTP 通信仍然是由客户端控制的,这就需要用户互动或定期轮询,以便从服务器加载新数据。长期以来存在着各种技术,可让服务器得知有新数据可用时,立即将数据发送到客...

2018-08-17 00:46:34 291

原创 springboot2.0 web应用接入微信公众号步骤和一些坑

1可以利用测试公众号进行开发(个人的是没有网页授权的) 配置好相关信息 这里我们可以手工方式原生的按照微信文档进行操作 但现在我们使用第三方sdk来接入, 这个sdk的稳定性 安全性 可用性是值得信赖的 在github上有近1W的star。(包含了微信相关开发的所有了 下面的 mp是公众号模块) 给出github地址:https://github.com/chanjarster/we...

2018-08-07 00:21:48 3468 2

原创 springboot集成jsp

以前用springboot集成jsp的时候遇到一些坑 在这里记录下1 首先 jsp依赖的一些包我们得在pom文件中引入 &lt;dependency&gt; &lt;groupId&gt;javax.servlet&lt;/groupId&gt; &lt;artifactId&gt;javax.servlet-api&lt;/artifa...

2018-08-05 17:52:59 141

原创 线程的join和yield

join()方法的理解 这是官方文档的注释:/** * Waits for this thread to die. * * &lt;p&gt; An invocation of this method behaves in exactly the same * way as the invocation * * &lt;blockquote&gt; * {@linkplain ...

2018-08-01 15:07:59 1528

原创 Spring的jdbctemplate

当sql等查询方式不能满足性能或灵活性的要求,必须使用SQL时,大家有三种选择:第一、使用Hibernate 的sql 查询函数,将查询结果对象转为Entity对象。第二、使用Hibernate Session的getConnection 获得JDBC Connection,然后进行纯JDBC API操作;第三、选择把Spring的JDBCTemplate作为一种很不错的JDBC Ut...

2018-08-01 10:17:11 145

原创 Mysql CONCAT函数

mysql CONCAT()函数用于将多个字符串连接成一个字符串,是最重要的mysql函数之一,下面就将为您详细介绍mysql CONCAT()函数,供您参考mysql CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任...

2018-07-29 18:19:16 296

原创 Spring Data JPA踩坑(@id @GeneratedValue)

最近在做自己的一个项目时 使用了spring jpa 由于数据库用的是mysql 在给实体类entity 的id给注解时@Id遇到了一个坑 自己找了许久才在stackoverflow 上找到了答案 注意 再查询数据库的时候并不会因此报错 而当你的主键是自增的时候 在添加数据的时候就会报错了 看看我们的实体类 注意id 原因是id jpa默认是auto的策略 也就是主键...

2018-07-26 20:35:53 15798 5

转载 java垃圾回收机制

本文转载自博客园 海子 https://www.cnblogs.com/dolphin0520/p/3783345.html Java垃圾回收机制  说到垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来。在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。顾...

2018-06-30 14:12:38 127

原创 线程同步经典案例-生产者与消费者模型-Java

消费者生产者模型在多线程中是一个经典问题 我们可以把并发的操作放在数据缓冲区内 借助 java自带的BlockingQueue 我们可以很容易的实现。 1 借助BlockingQueuepackage com.lq.learn.learn.demo;import com.lq.learn.learn.leran.Task;import java.util.concurrent...

2018-06-25 17:54:02 184

原创 leetcode 219: Contains Duplicate II(java)

给出一个整型数组nums和一个整数k,是否存在索引 i,j使得nums[i]==nums[j],并且i和j的差不超过k这个问题我们完全可以使用暴力解法 2次循环 时间复杂度为O(n2) 在完全没有思路解决时,我们可以使用这种方法先解决问题 然后在看看是否有简单的方法。 在这个问题中 显示 我们可以使用时间复杂度为O(n)来解决,原理就是 利用了滑动窗口+查找表 下面是代码实现:...

2018-06-16 17:08:54 200

原创 世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么?

/** * 世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么? * 输入例子: * 1999 2299 * * 输出例子: * 7 */ public class XiaoMi {public static void test(int m, int n) { // 异或 int...

2018-06-14 17:44:06 541

原创 linux常用基本命令

一、Linux权限的概念 Linux下有两种用户:普通用户和超级用户()。 普通用户:在linux下做有限的事情; 超级用户:可以在linux系统下做任何事情,不受限制。 普通用户的提示符是“$”,超级用户的命令提示符是“#”。 命令: su [用户名] 功能:切换用户 Linux权限管理 1.文件访问者的分类(人) 文件和文件目录的所有者:u—User 文...

2018-06-10 20:08:53 147

原创 jdk的动态代理

先看看java的静态代理吧 建立一个账户接口/** * 账户接口 */public interface Account { // 查看账户方法 void queryCount(); // 修改账户方法 void updateCount();}账户接口普通实现类/** * 委托类 */public class AccountImpl...

2018-06-10 18:15:05 124

原创 1亿求和(java多线程分段实现)

1亿的数据累加求和计算 如果单纯的递归调用那么肯定会出现内存溢出异常 我们可以把数据分段 求每一段的和 最后汇总就行了 这样问题就简单了许多 下面是具体的代码实现:package com.lq.learn.learn.demo;import java.util.ArrayList;import java.util.List;import java.util.concurren...

2018-06-01 20:19:43 2849

原创 大白话TCP/IP协议三次握手与四次分手流程

三次握手流程1 客户端发个请求“开门呐,我要进来”给服务器 2 服务器发个“进来吧,我去给你开门”给客户端 3 客户端有很客气的发个“谢谢,我要进来了”给服务器三次握手(three times handshake;three-way handshaking)所谓的“三次握手”即对每次发送的数据量是怎样跟踪进行协商使数据段的发送和接收同步,根据所接收到的数据量而确定的数据确认数及数据发送...

2018-05-23 21:29:01 226

原创 快速排序(java实现)

快速排序在算法界也是鼎鼎大名的 在20世纪 也算是及具有贡献的算法之一 快速排序和归并排序有相似之处 都利用了分治思想 但是了解的同学肯定知道快速排序的核心是partition过程 以及如何确定基准值 归并排序把一个数组平均分为N份 做归并过程下面来看看快速排序的核心代码:public void sort( int[] arr,int left,int right )...

2018-04-30 18:48:06 154

原创 排序算法之归并排序(java实现)

归并算法是分治算法的一个典型 可以这么说 它的核心就是分而治之 而归并算法就是一个分解 一个合并的过程 直接上代码“` public class demo{ public static void fenJie(int[] arr,int left,int right ) //递归界限 if(left&gt;=right) return;...

2018-04-20 19:19:12 132

转载 java反射机制

ava 反射是Java语言的一个很重要的特征,它使得Java具体了“动态性”。在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的。这种动态获取类的信息以及动态调用对象的方法的功能来自于Java 语言的反射(Reflection)机制。Java 反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类。 ...

2018-04-06 14:13:38 88

原创 java多线程文件的断点续传

java文件的多线程断点续传大致原理 谈到文件断点续传那么就离不开java.io.RandomAcessFile HttpUrlConnection类 大致思路如下: 1 HttpUrlConnection去请求服务器 获得文件的长度con.getContentLength() 2 创建一个空的RandomAcessFile来接收,并且指定刚刚获取的长度setLength 3开启N个线...

2018-04-05 22:17:38 571

原创 几种常见的java单例模式

1 恶汉模式 优点: 加载类时天然的线程安全 调用效率高 (相比懒汉模式,以空间换时间)不需要同步。public class Singleton{ private Singleton(){} priavte static Singleton instance=new Singleton(); public static Singleton getInstance(){...

2018-04-04 17:30:11 156

原创 java内存模型浅析(一)

java虚拟机在执行java程序过程中会把它所管理的内存划分为几个不同的数据区域,这些区域各有各的用途。1.程序计数器  线程私有,占用空间较小,字节码解释器通过改变这个计数器的值来选择下一条需要执行的字节码指令,例如 分支 循环 跳转 异常处理 线程恢复等等。java虚拟机的多线程是通过线程轮流切换并分配处理器时间的方式来实现的。所以,为了线程切换恢复后可以恢复到正确的执行位置,每条线程都需要一...

2018-03-31 11:48:08 158

jdk1.6_ch.chm

java'1.6 中文文档 ...................................................... ..............

2018-04-04

空空如也

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

TA关注的人

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