自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序那些事

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧,尽在程序那些事!...

原创 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新
原力计划

区块链是一种防篡改的共享数字分布式账本,可记录公共或私有对等网络中的交易。分布式账本分布到网络中的所有成员节点,以加密散列链接的块的顺序链,永久记录网络中对等点之间发生的资产交换的历史记录。 区块链的广为人知是从比特币开始的,但是区块链不是比特币,区块链只是比特币底层的技术基础。比特币可以看做是...

2020-05-21 06:42:40 9177 16

原创 Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新
原力计划

文章目录简介Spring Boot的基本操作Spring Boot的构建和部署Spring Boot工具Spring Boot的测试Spring Boot中使用JPASpring Boot和第三方系统的集成总结 简介 自从Spring横空出世之后,Spring就成了事实上的J2EE标准。Sprin...

2020-05-20 06:50:27 9398 11

原创 Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新
原力计划

是什么让java世界变得更好,程序员变得更友爱,秃头率变得不是那么的高,让程序员不必再每天996,有时间找个女朋友? 是Spring。 是什么让企业级java应用变得简单易懂,降低了java程序员的进入门槛,导致了现在遍地都是java程序员的窘境? 是Spring。 是什么从无冕之王变成了事实上的...

2020-05-20 06:30:50 9622 14

原创 java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程
原力计划

java作为第一大编程语言,可谓源远流长,一代又一代的java程序员前仆后继走在java学习的路上。java程序员的学习之路在2020年又有什么变化呢?本文详细附上了每一个部分所需知识的教程链接地址,并会持续更新,希望能够和大家一起进步!

2020-04-13 10:16:38 12086 8

原创 开源认证和访问控制的利器keycloak使用简介

keycloak是一个开源的进行身份认证和访问控制的软件。是由Red Hat基金会开发的,我们可以使用keycloak方便的向应用程序和安全服务添加身份认证,非常的方便。 keycloak还支持一些高级的特性,比如身份代理,社交登录等等。 本文将会带领大家进入keycloak的神秘世界。

2020-11-26 09:35:11 245 2

原创 OAuth 2.0授权框架详解

在现代的网站中,我们经常会遇到使用OAuth授权的情况,比如有一个比较小众的网站,需要用户登录,但是直接让用户注册就显得非常麻烦,用户可能因为这个原因而流失,那么该网站可以使用OAuth授权,借助于github或者其他的第三方网站的认证授权,来获取相关的用户信息,从而避免了用户注册的步骤。 当然...

2020-11-24 09:59:27 2334 13

原创 深入理解r2dbc-mysql

mysql应该是我们在日常工作中使用到的一个非常普遍的数据库,虽然mysql现在是oracle公司的,但是它是开源的,市场占有率还是非常高的。 今天我们将会介绍r2dbc在mysql中的使用。

2020-11-22 08:02:42 1230 5

原创 深入理解h2和r2dbc-h2

本文将会介绍R2DBC的H2实现r2dbc-h2的使用方法和要注意的事项。一起来看看吧。

2020-11-20 09:51:49 2265 10

原创 快乐学算法之:三分查找树ternary search tree

之前我们介绍了tire字典树,tire字典树的优点就是插入和查找比较快速,但是它的缺点就是占用的空间比较大。假如我们要存放一个英文字典(全都是小写字母),那么每个节点将会有26个子节点,用来保存所有可能字符。 trie树既然这么占用空间,有没有比较好的办法来减少空间的占用或者提高空间的使用率呢?...

2020-11-18 10:56:23 1361 2

原创 响应式关系数据库处理R2DBC

之前我们提到过,对于底层的数据源来说,MongoDB, Redis, 和 Cassandra 可以直接以reactive的方式支持Spring Data。而其他很多关系型数据库比如Postgres, Microsoft SQL Server, MySQL, H2 和 Google Spanner ...

2020-11-18 09:58:59 2552 10

原创 SpringBoot中的响应式web应用

在Spring 5中,Spring MVC引入了webFlux的概念,webFlux的底层是基于reactor-netty来的,而reactor-netty又使用了Reactor库。 本文将会介绍在Spring Boot中reactive在WebFlux中的使用。

2020-11-16 10:19:08 1700 3

原创 Reactor详解之:异常处理

不管是在响应式编程还是普通的程序设计中,异常处理都是一个非常重要的方面。今天将会给大家介绍Reactor中异常的处理流程。

2020-11-13 10:00:05 2194 2

原创 Reactor中的Thread和Scheduler

今天我们要介绍的是Reactor中的多线程模型和定时器模型,Reactor之前我们已经介绍过了,它实际上是观察者模式的延伸。 所以从本质上来说,Reactor是和多线程无关的。你可以把它用在多线程或者不用在多线程。 今天将会给大家介绍一下如何在Reactor中使用多线程和定时器模型。

2020-11-11 09:37:58 2736 12

原创 快乐学算法之:字典树Trie

字典树的英文名叫做Trie,取自retrieval,也就是检索的意思。它是一种特殊的树状结构,可以进行快速的字符插入和字符串搜索,特别适用于文本搜索和词频统计等应用方面。 本文将会详细介绍字典树Trie的特性。

2020-11-09 09:58:22 29 1

原创 Reactor:深入理解reactor core

上篇文章我们简单的介绍了Reactor的发展史和基本的Flux和Mono的使用,本文将会进一步挖掘Reactor的高级用法,一起来看看吧。

2020-11-09 09:26:26 2218 2

原创 响应式编程简介之:Reactor

Reactor是reactivex家族的一个非常重要的成员,Reactor是第四代的reactive library,它是基于Reactive Streams标准基础上开发的,主要用来构建JVM环境下的非阻塞应用程序。 今天给大家介绍一下Reactor。

2020-11-06 09:12:47 2267 2

原创 JDK8中的新时间API:Duration Period和ChronoUnit介绍

在JDK8中,引入了三个非常有用的时间相关的API:Duration,Period和ChronoUnit。 他们都是用来对时间进行统计的,本文将会详细讲解一下这三个API的使用。

2020-11-05 10:24:03 2394 3

原创 java安全编码指南之:文件和共享目录的安全性

java程序是跨平台的,可以运行在windows也可以运行在linux。但是平台不同,平台中的文件权限也是不同的。windows大家经常使用,并且是可视化的权限管理,这里就不多讲了。 本文主要讲讲linux下面的文件的权限和安全性问题,并且探讨一下如何在java程序中考虑文件的安全性。

2020-11-03 09:14:31 2322 3

原创 java安全编码指南之:序列化Serialization

序列化是java中一个非常常用又会被人忽视的功能,我们将对象写入文件需要序列化,同时,对象如果想要在网络上传输也需要进行序列化。 序列化的目的就是保证对象可以正确的传输,那么我们在序列化的过程中需要注意些什么问题呢?

2020-11-01 10:27:26 3859 24

原创 web worker的介绍和使用

什么是web worker呢?从名字上就可以看出,web worker就是在web应用程序中使用的worker。这个worker是独立于web主线程的,在后台运行的线程。 web worker的优点就是可以将工作交给独立的其他线程去做,这样就不会阻塞主线程。

2020-10-29 09:30:44 4014 14

原创 java安全编码指南之:文件IO操作

对于文件的IO操作应该是我们经常会使用到的,因为文件的复杂性,我们在使用File操作的时候也有很多需要注意的地方,下面我一起来看看吧。

2020-10-27 10:47:35 3435 5

原创 万字长文深入理解java中的集合-附PDF下载

集合是用来存储多个数据的,除了基本类型之外,集合应该是java中最最常用的类型了。java中的集合类型一般都集中在java.util包和java.util.concurrent包中。 其中util包中的集合类是基础的集合类,而concurrent包中的集合类是为并发特别准备的集合类。 集合类的父类...

2020-10-24 12:13:21 5247 20

原创 java安全编码指南之:线程安全规则

如果我们在多线程中引入了共享变量,那么我们就需要考虑一下多线程下线程安全的问题了。那么我们在编写代码的过程中,需要注意哪些线程安全的问题呢?

2020-10-23 09:26:22 4396 15

原创 Storage API简介和存储限制与逐出策略

对于现代浏览器来说,为了提升效率和处理更加复杂的客户端操作,通常都需要将数据存储在客户端,也就是本地磁盘上。那么这个存储有没有什么限制?如果数据存满了之后,如何进行数据的淘汰和置换?

2020-10-21 08:41:46 2627 7

原创 java安全编码指南之:ThreadPool的使用

在java中,除了单个使用Thread之外,我们还会使用到ThreadPool来构建线程池,那么在使用线程池的过程中需要注意哪些事情呢? 一起来看看吧。

2020-10-20 09:41:22 2668 6

原创 java安全编码指南之:Thread API调用规则

java中多线程的开发中少不了使用Thread,我们在使用Thread中提供的API过程中,应该注意些什么规则呢? 一起来看一看吧。

2020-10-19 09:15:03 4005 13

原创 使用Spring Boot创建docker image

在很久很久以前,我们是怎么创建Spring Boot的docker image呢?最最通用的办法就是将Spring boot的应用程序打包成一个fat jar,然后写一个docker file,将这个fat jar制作成为一个docker image然后运行。 今天我们来体验一下Spring B...

2020-10-15 10:14:13 4849 10

原创 java安全编码指南之:锁的双重检测

双重检测锁定模式是一种设计模式,我们通过首次检测锁定条件而不是实际获得锁从而减少获取锁的开销。 双重检查锁定模式用法通常用于实现执行延迟初始化的单例工厂模式。延迟初始化推迟了成员字段或成员字段引用的对象的构造,直到实际需要才真正的创建。 但是我们需要非常小心的使用双重检测模式,以避免发送错误。

2020-10-14 08:56:24 4547 15

原创 java安全编码指南之:输入注入injection

注入问题是安全中一个非常常见的问题,今天我们来探讨一下java中的SQL注入和XML注入的防范。

2020-10-12 09:03:44 4611 19

原创 java安全编码指南之:lock和同步的正确使用

在java多线程环境中,lock和同步是我们一定会使用到的功能。那么在java中编写lock和同步相关的代码之后,需要注意哪些问题呢?一起来看看吧。

2020-10-10 08:57:22 3551 12

原创 看动画学算法之:递归和递归树

在之前我们介绍的很多数据结构和算法都用到了递归,递归非常容易理解,用途也很广泛,但是有一个缺点就是需要保存栈的状态,如果递归次数太多会造成栈溢出的问题。 本文将会讲解常见的栈的应用,并使用递归树形象的展示其递归的过程。

2020-10-09 09:22:00 136 4

原创 java安全编码指南之:方法编写指南

java程序的逻辑是由一个个的方法组成的,而在编写方法的过程中,我们也需要遵守一定的安全规则,比如方法的参数进行校验,不要在assert中添加业务逻辑,不要使用废弃或者过期的方法,做安全检查的方法一定要设置为private等。 今天我们再来深入的探讨一下,java方法的编写过程中还有哪些要注意的...

2020-10-08 09:05:50 2886 8

原创 Web Storage API的介绍和使用

Web Storage为浏览器提供了方便的key value存储,是一种比cookie更加方便简洁的存储方式。也是诸多客户端存储方式中非常常见的一种。 一起来看看吧。

2020-10-06 09:09:58 5098 12

原创 java安全编码指南之:死锁dead lock

java中为了保证共享数据的安全性,我们引入了锁的机制。有了锁就有可能产生死锁。 死锁的原因就是多个线程锁住了对方所需要的资源,然后现有的资源又没有释放,从而导致循环等待的情况。 通常来说如果不同的线程对加锁和释放锁的顺序不一致的话,就很有可能产生死锁。

2020-10-01 08:44:36 4669 8

原创 java安全编码指南之:异常处理

异常是java程序员无法避免的一个话题,我们会有JVM自己的异常也有应用程序的异常,对于不同的异常,我们的处理原则是不是一样的呢? 一起来看看吧。

2020-09-29 09:16:16 5512 16

原创 java安全编码指南之:敏感类的拷贝

一般来说class中如果包含了私有的或者敏感的数据的时候是不允许被拷贝的。 如果一个class不想被拷贝,我们是不是不提供拷贝的方法就能保证class的安全了呢? 一起来看看吧。

2020-09-27 09:46:37 3108 5

原创 java安全编码指南之:可见性和原子性

java类中会定义很多变量,有类变量也有实例变量,这些变量在访问的过程中,会遇到一些可见性和原子性的问题。这里我们来详细了解一下怎么避免这些问题。

2020-09-25 10:57:36 5893 17

原创 看动画学算法之:环检测算法-弗洛伊德的兔子和乌龟

环检测应该是一个非常常见的算法问题,怎么判断是否有环的问题呢? 一个很简单的做法就是用HashSet来保存要遍历的数据,如果出现了重复就知道这个链表是有环的。但是这个方法需要保存遍历过的所有的元素,所以其空间复杂度是o(n)。 有没有什么方法可以不用保存之前的元素也能够判断是否有环呢? 来看...

2020-09-23 10:01:52 4211 5

原创 ECMAScript 6新特性简介

ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,正式发布与2015年6月。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 今天我们将会讲解一下ES6中引入的语法新特性。

2020-09-22 09:41:12 5691 9

原创 java安全编码指南之:输入校验

为了保证java程序的安全,任何外部用户的输入我们都认为是可能有恶意攻击意图,我们需要对所有的用户输入都进行一定程度的校验。 本文将带领大家探讨一下用户输入校验的一些场景。一起来看看吧。

2020-09-21 10:27:04 4746 10

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