![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件工程
文章平均质量分 93
rawchen
rawchen com
展开
-
双枢轴快速排序与 Arrays.sort()
时间复杂度差距当数据量大起来的时候可以看到n*log(n)以及n2,n3,2^n的时间复杂度图像都已经快成竖线了。所以在大数据面前你还在写两个for的n平方时间复杂度的暴力解法算法吗?Arrays.sort()因为后面的双指针算法可能要先对数据排序,所以我们来研究下这里面有什么新鲜玩意。第一层/** * 将指定的数组按数字升序排序。 * * 实现说明:排序算法是 Vladimir Yaroslavskiy、Jon Bentley 和 * Joshua Bloch 的双枢轴快速排序。 该原创 2021-10-10 17:18:31 · 553 阅读 · 1 评论 -
SpringSecurity 实现 OAuth 2.0
OAuth2.0小了来说作为前后端分离项目来讲经常需要传递数据。专业上来说也就是客户端想要访问资源服务器的数据,那么就能通过资源服务器内部提供的api来访问数据,那么问题就来了,这安全吗?当然不安全,因为客户端可以伪装和伪造请求资源。所以我们需要权限验证。那么怎么做嘞,OAuth2.0协议就是用来做这个的。OAuth2是一个关于授权的开放标准,核心思路是通过各类认证手段(具体什么手段OAuth2不关心)认证用户身份,并颁发token(令牌),使得第三方应用可以使用该令牌在限定时间、限定范围访问指定资源原创 2021-10-09 15:33:23 · 1198 阅读 · 0 评论 -
高性能服务发现、配置框架Nacos
Nacos是什么https://nacos.io/zh-cn/https://github.com/alibaba/nacosan easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications一个更易于构建云原生应用的 动态服务发现、配置管理和服务管理平台。动态配置服务就是通过一个系统,管理系统中的配置项,在原创 2021-09-09 12:58:53 · 392 阅读 · 0 评论 -
SpringCloud - 微服务架构系统
过渡分布式微服务以前的架构还是最原始阶段,官网、论坛、云平台等应用即一台服务器搞定一切。对应的web服务器、数据库、静态文件资源等,部署到一台服务器上即可。一般每秒几百请求没啥问题,结合内核参数调优、web应用性能参数调优、数据库调优,基本上能够稳定的运行。随着业务量越来越大和越重要,单体的架构模式已经无法对应大规模的应用场景。大量的web请求被堵塞,同时服务器的CPU、磁盘IO、带宽都有压力。系统功能越来越复杂,功能模块之间耦合性强相互影响。而且系统中决不能存在单点故障导致整体不可用。所以只有垂直或是原创 2021-09-09 12:51:25 · 480 阅读 · 0 评论 -
JavaWeb项目IDEA整合SSM
IDEA创建Maven中的web模板应用。项目目录结构如下:ssm-project├─src│ ├─main│ │ ├─java│ │ │ └─com│ │ │ └─yoyling│ │ │ ├─controller│ │ │ │ └─ScoreController.java│ │ │ ├─domain│ │ │ │ └─Score.java│ │ │ ├─mapper原创 2021-06-25 23:54:04 · 192 阅读 · 0 评论 -
Blog-SSM博客项目
JavaWeb博客项目采用SSM框架的web博客项目——Spring、SpringMVC、MyBatis项目简介博客是一种新型网络交流方式,现已受到大家的欢迎,是网络时代的个人“读者文摘”,是以超级链接为入口的网络日记,它代表着新的生活、工作和学习方式。一个典型的博客结合了文字、图像、其他博客或网站的链接及其它与主题相关的媒体,能够让读者以互动的方式留下意见,是许多博客的重要要素。技术栈Spring+SpringMVC+MyBatis+Thymeleaf+JQuery+Js+Ajax+Json+P原创 2021-06-25 23:51:34 · 256 阅读 · 0 评论 -
HashMap源码解析
HashMap源码分析HashMap是我们开发中经常使用到的集合,jdk 8 相对于 7 底层实现发生了一些改变。8 主要优化减少了Hash冲突 ,提高哈希表的存、取效率。这篇分析主要基于JDK 8 。区别添加数据时版本初始化方式hash值计算方法存放数据位置判断插入数据方式JDK 7单独方式:inflateTable()扰动处理=9次扰动+4次位运算+5次异或数组、链表头插法JDK 8集成在扩容函数:resize()扰动处理=2次扰动+1次位运算+原创 2021-06-25 23:48:34 · 81 阅读 · 0 评论 -
Java常用加密解密算法全解
数据编码、数字签名、信息加密 是前后端开发都经常需要使用到的技术,应用场景包括了用户登入、交易、信息通讯、OAuth 等等,不同的应用场景也会需要使用到不同的签名加密算法,或者需要搭配不一样的 签名加密算法 来达到业务目标。这里简单的给大家介绍几种常见的签名加密算法和一些典型场景下的应用。主要包括:数据编码:Base64散列算法(消息摘要、签名算法):MD5/SHA/MAC对称加密算法:DES/AES/RC2/RC4非对称加密算法:RSA数据编码Base64算法并不是加密算法,它的出现是为了解决原创 2021-06-25 23:47:40 · 2824 阅读 · 0 评论 -
分治、动态规划、贪心、回溯、分支界定
事出有因,写这篇文章主要是因为上周的软考一程序大题填空。另外判断该程序属于哪一类问题,我填的贪心,但是答案是动态规划。题目百度搜索下:动态规划-凸多边形的最优三角形划分,极难。https://blog.csdn.net/qq_37706228/article/details/83931053虽然之前多少有了解这几种算法,但是再讲得清楚明白还有之间的区别时就难了,所以要给写下来。分治分而治之,把一个复杂的问题分成多个相同或相似的子问题,再把子问题分成更小的子问题递归或者循环求解。这个思想是很多高效算原创 2021-06-25 23:45:31 · 661 阅读 · 0 评论 -
5万字100图再回顾操作系统
大学学了一学期的操作系统(Operating System),回想还记得几个系统调度算法、页面置换算法啥的,还是很多知识点不太清楚。学习其他相关的软件专业知识时导致了基础知识的脱节,下面就再次通过5万字和100张图清楚的讲一遍操作系统(Operating System),看之前请先认真思考下你为什么要看这篇文章以及为什么要学习操作系统。搞清楚几个问题首先你要搞明白你学习操作系统的目的是什么?操作系统的重要性如何?学习操作系统会给我带来什么?下面我会从这几个方面为你回答下。操作系统也是一种软件,但是操作原创 2021-06-25 23:43:04 · 353 阅读 · 0 评论 -
Spring框架学习笔记
GitHub:https://github.com/yoyling/SpringStudySpringStudySpring Framework 5 学习记录4阶段(1)spring框架的概述以及spring中基于XML的IOC配置spring的概述spring是什么、两大核心、发展历程和优势、体系结构程序的耦合及解耦曾经案例中问题、工厂模式解耦IOC概念和spring中的IOCspring中基于XML的IOC环境搭建依赖注入(Dependency Injection)(2.原创 2021-06-08 15:41:06 · 210 阅读 · 0 评论