自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

原创 算法:二元选择排序

选择排序算法也是可以优化的,既然每轮遍历时找出了最小值,何不把最大值也顺便找出来呢?这就是二元选择排序的思想。使用二元选择排序,每轮选择时记录最小值和最大值,可以把数组需要遍历的范围缩小一倍。我们使用 minIndex 记录最小值的下标,maxIndex 记录最大值的下标。每次遍历后,将最小值交换到首位,最大值交换到末尾,就完成了排序。由于每一轮遍历可以排好两个数字,所以最外层的遍历只需遍历一半即可。

2023-10-13 11:30:11 687 1

原创 排序算法的稳定性

排序算法的稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i] = r[j],且 r[i] 在 r[j] 之前,而在排序后的序列中,r[i] 仍在 r[j] 之前,则称这种排序算法是稳定的;否则称为不稳定的。以下以冒泡排序和选择排序作为比较,分析排序算法的稳定性。冒泡排序是入门级的算法,但也有一些有趣的玩法。通常来说,冒泡排序有三种写法:一边比较一边向后两两交换,将最大值 / 最小值冒泡到最后一位;

2023-10-13 11:15:40 615

原创 如何不引入第三个中间变量进行两数交换

但在大厂面试中,有一道非常经典的数字交换题目:如何在不引入第三个中间变量的情况下,完成两个数字的交换。但这两种方式都可能导致数字越界。

2023-10-12 20:06:29 380

转载 Spring @ModelAttribute注解用法

之前项目中并自己并没有怎么使用到过@ModelAttribute这个注解,接手一个老项目的时候发现项目中大量使用@ModelAttribute这个注解,在这里就整理下这个注解常用的方式,也为自己做个记录,以免久了不用又忘记了 @ModelAttribute使用大致有有两种,一种是是直接标记在方法上,一种是标记在方法的参数中,两种标记方法产生的效果也各不相同,这里就列举下两种标记所产生的效果首先先做...

2018-04-09 15:31:24 3013

转载 使用Spring Boot的跨源CORS设置

1. 问题在学习Angular时,使用以下代码发起POST请求,this.http.post("http://localhost:8899/login", body, {headers: headers})会出现以下错误提示。已拦截跨源请求:同源策略禁止读取位于 http://localhost:8899/login 的远程资源。(原因:CORS 头

2018-03-19 23:37:54 480

原创 使用Maven时出现“jssecacerts PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilde”错

方法一:忽略SSL证书检查在Maven命令后加入参数“-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true”方法二. 生成JDK证书并导入JRE security中1. 生成JDK证书import javax.net.ssl.*;import java.io.*;import java.securit...

2018-03-19 15:36:08 9083 2

翻译 Auth0基础

上一篇:Auth0概要    让我们了解一下有关Auth0的基本术语。    本文用了一个例子来说明Auth0的三个主要的概念:域名(domains)、客户端(clients)和连接(connections)。    我们将使用一个非常简单的例子:一个名叫Example-Co的公司想要用Auth0作用户认证。这家公司有一个网页应用和一个手机应用,他们希望公司的用户可以选择用户名/密码登

2018-01-09 18:00:15 4799

翻译 Auth0概要

Auth0提供了验证和授权的服务。    Auth0提供给了程序员和公司构建模块,使得保护应用程序变成一件简单的事,开发者不需要成为安全领域的专家,即可以轻松构建安全的应用。    你可以将任何应用(基于任何栈的任一种语言)连接到Auth0,也可以定义你想要使用的身份提供者(你想怎样让用户登录)。    你可以基于应用程序所使用的技术来选择相应的SDK(或者调用我们的API)来连接你的

2018-01-02 17:57:54 14701

原创 IntellJ IDEA如何调试Gradle项目

1. gradle bootRun --debug-jvm加上--debug-jvm, gradle会默认打开5005端口等待远程连接2. 在IntelliJ IDEA里加Remote, 绑定5005端口:3. Debug Remote连接控制台出现:Connected to the target VM, address: 'localhost:5005', trans

2018-01-01 15:22:52 6458 3

转载 Gradle学习系列之十——自定义Plugin(本系列完)

在本系列的上篇文章中,我们讲到了如何自定义Task类型,在本篇文章中,我们将讲到如何自定义Plugin。   请通过以下方式下载本系列文章的Github示例代码:git clone https://github.com/davenkin/gradle-learning.git    在Plugin中,我们可以向Project中加入新的Task

2017-12-30 14:59:52 247

转载 Gradle学习系列之九——自定义Task类型

在本系列的上篇文章中,我们学习了多Project构建,在本篇文章中,我们将学到如何自定义Task类型。   请通过以下方式下载本系列文章的Github示例代码:git clone https://github.com/davenkin/gradle-learning.git    在前面的文章中我们讲到,Gradle本身只是一个架子,真正起作

2017-12-30 14:59:18 287

转载 Gradle学习系列之八——构建多个Project

在本系列的上篇文章中,我们讲到了Gradle的依赖管理,在本篇文章中,我们将讲到如何构建多个Project。   请通过以下方式下载本系列文章的Github示例代码:git clone https://github.com/davenkin/gradle-learning.git    Gradle为每个build.gradle都会创建一个相

2017-12-30 14:58:52 234

转载 Gradle学习系列之七——依赖管理

在本系列的上篇文章中,我们讲到了如何使用java Plugin,在本篇文章中,我们将讲到Gradle的依赖管理。   请通过以下方式下载本系列文章的Github示例代码:git clone https://github.com/davenkin/gradle-learning.git    一个Java项目总会依赖于第三方,要么是一个第三

2017-12-30 14:58:17 206

转载 Gradle学习系列之六——使用Java Plugin

在本系列的上篇文章中,我们讲到了如何自定义Property,在本篇文章中,我们将讲到如何使用java Plugin。  请通过以下方式下载本系列文章的Github示例代码:git clone https://github.com/davenkin/gradle-learning.git   Gradle最常用的Plugin便是java Plugin了。和

2017-12-30 14:57:45 346

转载 Gradle学习系列之五——自定义Property

在本系列的上篇文章中,我们讲到了增量式构建,在本篇文章中,我们将讲到如何自定义Project的Property。  请通过以下方式下载本系列文章的Github示例代码:git clone https://github.com/davenkin/gradle-learning.git     在前面的文章中我们讲到,设置和读取Project的Property是

2017-12-30 14:57:03 223

转载 Gradle学习系列之四——增量式构建

在本系列的上篇文章中,我们讲到了如何读懂Gradle的语法,在本篇文章中,我们将讲到增量式地构建项目。   请通过以下方式下载本系列文章的Github示例代码:git clone https://github.com/davenkin/gradle-learning.git     如果我们将Gradle的Task看作一个黑盒子,那么我们便可以抽象出

2017-12-30 14:56:28 188

转载 Gradle学习系列之三——读懂Gradle语法

在本系列的上篇文章中,我们讲到了创建Task的多种方法,在本篇文章中,我们将学习如何读懂Gradle。   请通过以下方式下载本系列文章的Github示例代码:git clone https://github.com/davenkin/gradle-learning.git    Gradle是一种声明式的构建工具。在执行时,Gradle并不会一开始

2017-12-30 14:55:56 187

转载 Gradle学习系列之二——创建Task的多种方法

在本系列的上篇文章中,我们讲到了Gradle入门,在本篇文章中我们将讲到创建Task的多种方法。   请通过以下方式下载本系列文章的Github示例代码:git clone https://github.com/davenkin/gradle-learning.git    Gradle的Project从本质上说只是含有多个Task的容器,一

2017-12-30 14:55:19 235

转载 Gradle学习系列之一——Gradle快速入门

这是一个关于Gradle的学习系列,其中包含以下文章:Gradle快速入门创建Task的多种方法读懂Gradle语法增量式构建自定义Property使用java Plugin依赖管理构建多个Project自定义Task类型自定义Plugin     请通过以下方式下载本系列文章的Github示例代码:git clone https:/

2017-12-30 14:54:28 164

转载 intellij IDEA创建nodejs项目---环境搭建

前提是在你的系统下已经对nodejs安装成功并环境配置,这个可以见本人的前一篇博文http://blog.csdn.net/stubbornaccepted/article/details/71374489然后就可以继续啦。 1.默认安装好了IDEA,在IDEA的file -> setting ->Plugins,右边默认是没有这个组件的需要你手动点击Browe repositories..,

2017-12-13 21:14:01 8716

转载 我眼中的SAML (Security Assertion Markup Language)

提到SAML (Security Assertion Markup Language), 很多人都会联想到单点登录SSO。那么Saml到底是什么,它跟sso到底有什么联系?这里给大家分享一下我在读完了saml差不多全部规范之后的一些心得。希望给saml入门者一些帮助。 我并不想详细介绍每个xml节点怎么写。大家可以参考标准规范。 看了这篇随笔,相信如果万一哪天你要做saml, 你也不会害怕了。 

2017-10-17 09:55:53 1496

转载 DTD的作用

在介绍DTD的作用之前先介绍一下SGML:SGML SGML(Standard Generalized Markup Language,标准通用标记语言),是一种定义电子文档结构和描述其内容的国际标准语言,是所有电子文档标记语言的起源,早在Web发明之前SGML就已存在. SGML是1986年出版发布的一个信息管理方面的国际标准(ISO 8879)。该标准定义独立于平台和应用的文本文档的格式

2017-09-20 13:45:39 2293

转载 Spring 注解学习笔记

声明Bean的注解:@Component : 组件,没有明确的角色@Service : 在业务逻辑层(service层)使用@Repository : 在数据访问层(dao层)使用.@Controller : 在展现层(MVC--SpringMVC)使用注入Bean的注解:@Aautowired : Spring提供的注解.@Inject : JSR-330提供

2017-09-04 15:05:24 424

转载 java编程spring boot security oauth2 jwt完美整合例子

一、本文简介本文主要讲解Java编程中spring boot框架+spring security框架+spring security oauth2框架整合的例子,并且oauth2整合使用jwt方式存储二、学习前提首先是讲解oauth2的基本说明:推荐查看:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html上面的地址

2017-09-04 13:24:48 17005 1

转载 CSRF的详细介绍与token的分析

CSRF的攻击与防御CSRF是Web应用程序的一种常见漏洞,其攻击特性是危害性大但非常隐蔽,尤其是在大量Web 2.0技术的应用背景下,攻击者完全可以在用户毫无察觉的情况下发起CSRF攻击。本文将对其基本特性、攻击原理、攻击分类、检测方法及防范手段做一个系统的阐述,并列举攻击实例。1、CSRF漏洞简介CSRF(Cross-Site Request Forge

2017-08-24 15:34:40 1370

转载 单点登录原理

一、单系统登录机制1、http无状态协议web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器

2017-08-23 15:54:01 343

转载 请求授权(Authorize Requests)

我们的案例目前使用的是WebSecurityConfigurerAdapter中默认的HttpSecurity对象的配置,该配置是要求应用中所有url的访问都需要进行验证。我们也可以自定义哪些URL需要权限验证,哪些不需要。只需要在我们的SecurityConfig类中覆写configure(HttpSecurity http)方法即可。protected void configure(H

2017-08-23 13:18:11 30275

转载 看图理解JWT如何用于单点登录

阅读目录前言方案介绍方案总结本文小结单点登录是我比较喜欢的一个技术解决方案,一方面他能够提高产品使用的便利性,另一方面他分离了各个应用都需要的登录服务,对性能以及工作量都有好处。自从上次研究过JWT如何应用于会话管理,加之以前的项目中也一直在使用CAS这个比较流行的单点登录框架,所以就一直在琢磨如何能够把JWT跟单点登录结合起来一起使用,尽量能把两种技术的优势都集成到项目中来。

2017-08-22 12:07:41 282

转载 JSON Web Token - 在Web应用间安全地传递信息

JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。让我们来假想一下一个场景。在A用户关注了B用户的时候,系统发邮件给B用户,并且附有一个链接“点此关注A用户”。链接的地址可以是这样的1https://your.awesome-app.com/make-friend/?from_us

2017-08-22 11:54:14 208

转载 什么是 JWT -- JSON WEB TOKEN

什么是JWTJson web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可

2017-08-22 11:38:07 266

转载 SSL/TLS协议运行机制的概述

互联网的通信安全,建立在SSL/TLS协议之上。本文简要介绍SSL/TLS协议的运行机制。文章的重点是设计思想和运行过程,不涉及具体的实现细节。如果想了解这方面的内容,请参阅RFC文档。一、作用不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文传播,带来了三大风险。(1) 窃听风险(eavesdropping):第三方可以获知通信内容。

2017-08-22 10:00:15 220

转载 Java Security:Java加密框架(JCA)简要说明

加密服务总是关联到一个特定的算法或类型,它既提供了密码操作(如Digital Signature或MessageDigest),生成或供应所需的加密材料(Key或Parameters)加密操作,也会以一个安全的方式生成数据对象(KeyStore或Certificate),封装(压缩)密钥(可以用于加密操作)。    Java Security API中,一个engine class就是定义

2017-08-22 09:30:34 386

转载 JavaWeb-会话的持久化:HttpSessionActivationListener

转载自:http://blog.csdn.net/qq_26525215本文源自【大学之旅_谙忆的博客】要实现会话的持久化,也就是实现HttpSessionActivationListener接口。实现此接口的JavaBean,可以感知自己被活化(从硬盘到内存)和钝化(从内存到硬盘)的过程。如果需要同时保存Session中的JavaBean。 则Java

2017-08-18 13:51:48 303

转载 cookie 和session 的区别详解

这些都是基础知识,不过有必要做深入了解。先简单介绍一下。二者的定义:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie里的内容来判断使用者,送出特定的网页内容给你。

2017-08-18 13:35:26 184

转载 过滤器(Filter)和拦截器(Interceptor)的区别

Filter介绍      Filter可以认为是Servlet的一种“加强版”,它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链。Filter也可以对用户请求生成响应,这一点与Servlet相同,但实际上很少会使用Filter向用户请求生成响应。使用Filter完整的流程是:Filter对用户请求进行预处理,接着将请求交给Serv

2017-08-18 12:14:43 179

转载 instanceof, isinstance,isAssignableFrom的区别

instanceof运算符 只被用于对象引用变量,检查左边的被测试对象 是不是 右边类或接口的 实例化。如果被测对象是null值,则测试结果总是false。 形象地:自身实例或子类实例 instanceof 自身类  返回true 例: String s=new String("javaisland");       System.out.println(s instanceof St

2017-08-17 16:00:02 179

转载 postman中 form-data、x-www-form-urlencoded、raw、binary的区别

1、form-data:                    就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息;由于有boundary隔离,所以mu

2017-08-15 11:26:38 229

转载 request.getHeader("referer")的作用

在开发web程序的时候,有时我们需要得到用户是从什么页面连过来的,这就用到了referer。它是http协议,所以任何能开发web程序的语言都可以实现,比如jsp中是:request.getHeader("referer");PHP是$_SERVER['HTTP_REFERER']。其他的我就不举例了(其实是不会其他的语言)。js的话就是这样做:JavaScript:documen

2017-08-07 11:09:00 2548

原创 Swagger Adoption

Swagger Adoption

2017-07-24 15:56:12 232

转载 数字签名的作用和功能

信息传输过程中,单纯采用加密来保证数据的保密性,实际上还存在缺陷,假如发送方在发送某个信息后突然反悔,声明这个信息不是其发送,进行抵赖,虽然数据传输过程中是保密的,但无法证明这个信息的发送方身份,这样不利于通信的管理.  现实中,一般采用签名的方式,使信息不可抵赖,例如,合同谈判,银行取款等,都采用了用户签名的形式,证明这个信息确实发生过,那么,在网络通信中,通常使用数字签名实现信息的不可

2017-07-03 13:58:17 2612

空空如也

空空如也

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

TA关注的人

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