自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 资源 (9)
  • 收藏
  • 关注

原创 【踩错】Spring源码环境搭建踩坑记录

2021-10-06之前调试Spring源码为了图省事,都是直接利用idea搭建一个Spring项目然后断点调试。这样的好处是快,坏处是对于Spring的整个代码架构没办法像自己的项目代码那样每个包、每个模块一目了然,并且是只读的,没有办法做一些修改与注释。搭建Spring源码阅读环境势在必行。废话不多说,记录一下坑。我使用的是Spring-5.0.4、gradle-4.4.11.下载Spring源码,下载并配置gradle2.配置Spring源码依赖的jar包的下载地址,打开根目录下的build

2022-01-27 00:14:41 495

原创 【算法】不用乘、除、取余操作实现除法

2021-09-27来自剑指offerⅡ的一道题,如何在不使用乘号、除号、取余符号的情况下实现整数除法操作。首先想到的是被除数循环减除数,减到不能再减了,减的次数就是最终答案。这也是除法的本质,但是能不能快一点不用一个一个减呢?答案是可以的,我们可以通过位移被除数的操作来判断可减去除数的数量,代码如下。class Solution { // a为被除数,b为除数 public int divide(int a, int b) { if (a == 0)

2022-01-26 18:07:59 1197

原创 【小记】探析Java类加载时机

2021-09-14最近在重温《深入理解Java虚拟机》这本书,对于第七章的类加载机制部分了解到了之前没有注意的细节,特在此总结记录下来。类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中验证、准备、解析3个阶段部分统称为连接(Linking)。什么情况下需要开始

2022-01-26 18:07:42 215

原创 【小记】从公钥私钥理解HTTPS

2021-09-07我们在平时在使用浏览器浏览网页时,通常会看到网址前面写的是https,这表明当前网站通过https协议来进行数据的传输。那么https和http有什么不同的呢?本文将通过介绍HTTP和HTTPS、公钥私钥、加密、数字证书等方面的内容来帮助读者理解HTTPS。HTTPS(全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目的的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程中的安全性。HT

2022-01-26 18:07:21 361

原创 随便记录点

2021-07-23今天长沙的一阵暴雨上了热搜,可能是这两天河南的大雨把大家的神经都伤害地脆弱了些。回想20号的那天,我正在酷暑下吃着甜筒,谁想到郑州正在经历千年大雨。河南是中华名族最重要的发源地。记得老家的祠堂里,金光闪闪的“陈留堂”三个打字,我还问过老爸这三个字啥意思,老爸告诉我,我们祖上是从河南陈留这个地方南迁过来的,为了念祖,使用了“陈留堂”作为祠堂的堂号。。。天灾无情人有情,携手共度难关。...

2022-01-26 18:07:03 125

原创 【踩错】thymeleaf多重${}

2021-07-03今天遇到一个问题,thymeleaf接收到controller传递过来的model数据中,含有list和map结构的数据,在thymeleaf渲染数据的过程中,首先用th:each遍历list,取list中的元素作为map的键,然后从map中取出对应的value来。想要在thymeleaf上渲染controller层传递过来的数据,需要使用${}来获取后台数据,例如contoller传递一个“user”到thymeleaf,需要在前端使用user.id,如下所示,可以获取到传递过来的

2022-01-26 18:03:23 565

原创 【小记】logback日志框架的配置和使用

2021-07-01日志在项目中必不可少,目前流行的日志框架有log4j、log4j2、logback,其中logback和log4j作者是同一个人。logback是SpringBoot默认集成的日志框架,效率高,能适应诸多的运行环境,是SLF4J门面框架的一种实现。添加依赖添加依赖:在pom文件中添加spring-boot-starter-logging<dependency> <groupId>org.springframework.boot</groupI

2022-01-26 18:03:05 187

原创 【小记】fail-fast和fail-safe

2021-06-19以前也遇到过在遍历集合的过程中对集合元素进行删除的时候会报出错误的情况,之前一直没弄明白是怎么回事,这次也花了一点时间看了一下相关内容,在此做一个总结。fail-fast快速失败其实是一种编程思想,即快速反馈系统错误,防止发生更严重的问题。我们平时写的在函数的开始进行参数的判空操作,其实也是属于一种快速失败机制的实现。在用迭代器遍历一个对象的时候,如果遍历的过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concurrent Modification Excepti

2022-01-26 18:02:29 270

原创 【算法】Kruskal回顾

2021-05-20今天520耶,然鹅并没有什么故事,反倒是校园湖里的龟龟都是齐刷刷地出来晒背,湖里的黑天鹅也都成双成对。今天回顾一下最小生成树Kruskal算法,先以题目代入吧。问题描述给你一个points 数组,表示 2D 平面上的一些点,其中 points[i] = [xi, yi] 。连接点 [xi, yi] 和点 [xj, yj] 的费用为它们之间的 曼哈顿距离 :abs(xi - xj) + abs(yi - yj)。请你返回将所有点连接的最小总费用。只有任意两点之间 有且仅有 一条

2022-01-26 18:02:11 182

原创 【算法】交换交换字符串中的元素-并查集

2021-05-19问题描述给你一个字符串 s,以及该字符串中的一些「索引对」数组 pairs,其中 pairs[i] = [a, b] 表示字符串中的两个索引(编号从 0 开始)。你可以 任意多次交换 在 pairs 中任意一对索引处的字符。返回在经过若干次交换后,s 可以变成的按字典序最小的字符串。示例 1:输入:s = “dcab”, pairs = [[0,3],[1,2]]输出:“bacd”解释:交换 s[0] 和 s[3], s = “bcad”交换 s[1] 和 s[2],

2022-01-26 18:01:16 131

原创 最近的记录

2021-05-08时间一天天过去,没有过多的精彩和绚烂,只有不停迈动的步伐,以及偶尔的抬头看到的无尽宇宙中的点点繁星。最近的我忙于论文,老师项目,以及一些内容的总结。可能因为一直忙,所以这段时间对于时间流逝的感觉,尤为明显。实验室新人不断涌来,热闹不已,窗台那些盆栽都展现出勃勃的生机。校园里一片浓浓绿意。最近在总结一些知识点和相关内容,相当于是再次复习。我会趁有时间了慢慢的发布在这里。好啦,出发出发。...

2022-01-26 18:00:59 126

原创 【小记】为什么jvm的新生代要分为一个Eden和两个Survivor

2021-03-12现在的JVM的新生代内存中,除了Eden区,还有两个Survivor区。那为什么要这样设置呢?这和新生代的垃圾回收算法是息息相关的。复制算法复制算法是新生代的垃圾收集收集算法,基本思路是将新生代分为两个大小一样的内存区域,每次新对象会放置在其中的一块区域内。当该区域的大小不足以继续分配对象时,此时就会促发Minor GC,首先将存活的对象标记出来,然后将存活的对象转移到另一块内存区域中,这样可以比较紧凑地将对象排列在一起,减小了内存碎片。同时之前那块内存可以一次回收掉所有的对象。

2022-01-25 21:20:42 1547

原创 【小记】如何保证缓存和数据库的一致性

2021-03-07今天看到一个有意思的问题,如何保证缓存和数据库的一致性,思考后查资料总结如下。要对数据库更新,如何处置缓存,更新or删除?选择删除缓存。因为要更新的数据可能是简单的也可能是复杂的,复杂的数据更新缓存的话,成本较大,所以选择删除缓存。如果选择更新缓存的话,频繁的写操作意味着数据库和缓存都频繁更新,但重点是,该数据的读频率多大。根据28法则,20%的数据占了80%的访问量,对于某些缓存的频繁更新有点得不偿失。先淘汰缓存还是先更新数据库?先淘汰缓存如果先更新数据库,再淘汰缓存,

2022-01-25 21:20:14 81

原创 【算法】一个背包问题

2020-09-23背包问题可以说是动态规划的经典问题了,围绕背包问题能够衍生出很多类似的问题。动态规划看起来不是那么好解决,它涉及到重复子问题和最优子结构,还有状态转移方程的寻找。充分理解了动态规划背后的逻辑,就会理解到其实它真正的原理就是穷举,但它是聪明地进行穷举。今天遇到一道题,类似思路类似于背包问题。问题描述//在计算机界中,我们总是追求用有限的资源获取最大的收益。//// 现在,假设你分别支配着 m 个 0 和 n 个 1。另外,还有一个仅包含 0 和 1 字符串的数组。////

2022-01-25 21:19:54 57

原创 ---开学札记---

2020-08-30漫长的寒假结束了,新的学期开始了,是的,我要开始水博客了。焕然一新的校园,鼓舞人心的条幅,随风飘动的红旗,像似那久别的情人,按捺不住那激动的心。结束了归校的诸多事项,该回归到正常的研究学习生活了。遵着自己的计划一步步进行一切都会势如破竹。今天在小组群里,新加群的师弟师妹们喊师兄的那一刻有一点恍惚,一年了。我在群里说了句:“还没准备好呢就已经是师兄了!”,张老师回复道:“你已经长大了。”,一时我居然不知道怎么回复,于是消息淹没在寒暄中。是的呢,又一年了,自己成长了多少,“但愿长大

2022-01-25 21:19:19 57

原创 【算法】回文子串的数量(manacher)

2020-08-06之前写过一篇关于马拉车算法求最长回文子串的博客,讲到马拉车算法能在O(N)的时间复杂度下求得最长回文子串,今天遇到一个问题:求字符串中的回文子串的数量,这同样可以用马拉车算法来计算。特此记录一下。问题描述输入: “abc”输出: 3解释: 三个回文子串: “a”, “b”, “c”.输入: “aaa”输出: 6说明: 6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”.代码对于马拉车算法的原理可以参考 https://xiepl1

2022-01-25 21:18:47 368

原创 【小记】对于动态规划问题的一点小记录

2020-07-27以前看到动态规划问题毫无思路,脑子里只有多重for的想法。随着见过的和做过的问题越来越多,逐渐地对解决动态规划问题有了些许心得。动态规划问题的一般形态就是求最值,其问题的核心就是穷举,因为是要求得最值,那么肯定是要把所有的可能都列举出来,这样才能够得到其中的最值呗!是的呢,但这和多重for穷举有什么区别嘛?那当然有区别了,动态规划的穷举有点特别,它是一种“聪明的穷举”。动态规划所解决的问题都有些特别,那就是这类问题都存在重叠子问题,如果单纯是暴力穷举的话效率是会很低的,为了共用之前

2022-01-25 21:18:15 44

原创 【实践】springboot中的重定向数据传递

2020-06-17在写springboot项目的时候,有时候会有重定向的需求,例如登录界面登录后,就应该使用重定向来进行页面的跳转。如果这时候使用的是转发的方式来进行页面的跳转的话,会出现两个问题:浏览器上的路径不会改变在主页中点击刷新时,页面会提示需要再次提交表单因为转发是通过forward()方法提交信息在多个页面之间进行传递。登陆后地址栏是需要变为主页地址的,而且也不应该出现刷新提示提交表单的现象,所以应该使用重定向来进行登录跳转。那么这就出现了一个问题,重定向的页面不能读取转向前通

2022-01-25 21:17:54 3526

原创 【实践】springboot上传文件

2020-05-31最近有个需求是上传文件到服务器,使用到的框架是springboot,查询资料后记录如下。1.添加基本依赖这是第一步,但一般建立springboot项目的时候能够勾选该启动依赖。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency&

2022-01-25 21:17:27 934

原创 【实践】关于thymeleaf的select下拉选择框的默认选中项

2020-05-29最近在敲敲敲的过程遇到一个问题,这个问题是这样的:我需要在页面上提供用户更新信息的功能,在进入该页面前,首先获取信息,使用thymeleaf模板填充信息。前端有一个select标签,需求是显示用户之前所选中的内容。但是尝试了通过th:attr和th:if判断,都不好用,使用jquery来进行attr的设置也不好使。查阅一番才知道了解决办法:使用th:selected<select name="select" id="projecttype" class="form-contr

2022-01-25 21:17:04 9427

原创 【小记】有关cookie和session是什么

2020-05-26cookie? 饼干? 是的呀,这玩意儿能让人舒服~cookie大家都熟悉,例如登陆一些网站,一段时间后,就要求你重新登陆。1. cookie 和 session 简介HTTP是一种无状态的一种协议,换句话说,就是服务器记不住你,可能你每刷新一次页面,就要重新输入一次账号和密码进行登陆,这显然是让人无法接受的。cookie的作用就好比服务器给你贴个标,然后你每次向服务器再发起请求的时候,服务器能够认出是你。抽象概括一下,一个cookie可以认为是一个【变量】,形如name=va

2022-01-25 21:15:55 88

原创 【算法】验证二叉搜索树

2020-03-05给定一个二叉树,判断其是否是二叉搜索树。一个二叉搜索树的特点是:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。示例:输入: 2 / \ 1 3输出:true输入: 5 / \ 1 4 / \ 3 6输出:false二叉搜索树有一个特点,就是中序遍历序列为递增序列,例如示例1的中序遍历为1-2-3;而示例2的中序遍历为1-5-3-4-6,不是递增,则其不是二叉搜索树。代码如下

2022-01-24 17:42:21 283

原创 【算法】LeetCode91.解码方法(类似爬楼梯)

2020-02-10一条包含字母A-Z的消息通过以下方式进行了编码:'A' -> 1'B' -> 2....'Z' -> 26给定一个只包含数字(包括0)的非空字符串,请计算解码方法的总数。示例1:输入:“12”输出:2解释:它可以解码为“AB”(1 2)或者“L”(12)示例2:输入:“226”输出:3解释:它可以解码为“BZ”(2 26),“VF”(22 6),或者“BBF”(2 2 6)解题思路(动态规划)首先举例子:例如计算22113的解码方法

2022-01-24 17:41:40 159

原创 【源码】HashMap源码阅读

2020-02-02下面是JDK11中HashMap的源码分析,对代码的分析将主要以注释的方式来体现。1 概述1.1 HashMap的主要概念HashMap是基于Map接口实现的哈希表,实现了Map接口中的所有操作,而且HashMap允许键为空值,也允许值为空值,与之对应的是Hashtable,Hashtable不能将键和值设置为空。HashMap不能保证元素的顺序,特别是,它不能保证随着时间的推移保持顺序不变。HashMap为基本操作(get和put)提供了恒定的时间性能,假设散列函数在

2022-01-24 17:40:57 481

原创 【踩错】解决ajax异步更新后控件的click事件失效的方法

2019-11-14昨天做了一个在线投票网站,是为研究生院“良师益友”活动准备的。在其中遇到一个问题,用 ajax 异步更新了导师列表,列表中有“投票”按钮,在异步更新完成之后,再次点击“投票”按钮则一点动静没有。调试之后发现连按钮的 jQuery 的 click 事件都不能触发了。造成了很大的困扰。按照自己的理解代码没有问题,可是效果就是不对,那就是理解有问题了。查阅资料后果然是自己对机制的不了解导致的这个问题。原来的代码写的是:$(".vote_bt").click( function ()

2022-01-24 17:38:54 648 1

原创 【源码】jdk11源码-Integer.numberOfLeadingZeros(int i)

Integer.numberOfLeadingZeros(int i)源码如下:public static int numberOfLeadingZeros(int i) { if (i <= 0) { return i == 0 ? 32 : 0; } else { int n = 31; if (i >= 65536) { n -= 16; i >>>= 16; } if (i >= 256) { n -= 8; i

2022-01-24 17:36:48 275

原创 【算法】LeetCode 1248 统计[优美子数组]

给你一个整数数组 nums 和一个整数 k 。如果某个连续的子数组中恰好有 k 个奇数数字,我们就认为这个子数组是优美子数组。请返回这个数组中优美子数组的数目。分析例如给出数组0 1 1 0 1 0 0 1 0给出 k = 3很容易可以得出的两个两端都为奇数的符合要求的子数组:(1)1 1 0 1and(2)1 0 1 0 0 1由此来进行扩展:首先对于(1),左端可以选择扩展 1 位或者不扩展,所以一共有 2 种选择。右端可以选择扩展 1 位、2 位或者不扩展,扩展 3 位的

2022-01-24 17:35:49 204

原创 【踩错】idea导入springboot项目使用maven引入依赖失败,包名现红色波浪线

换个了电脑之后,安装好配置好各种环境。从github上把之前的springboot项目clone下来,使用intellijidea对项目进行导入。等待了一个多钟,等来的确是maven中的包名都出现红色波浪线,是引入依赖失败了。试了很多方法都不行,最后想到可能是因为网络的缘故,jar包没有下载完整。最后找到本地仓库,将后缀为.lastupdate的文件都删除,再对maven进行reimport操作,令人抓狂的红色波浪线终于消失。(idea的默认本地仓库:C:\Ususername.m2\reposi

2022-01-24 17:35:12 1231

原创 【算法】下一个排列

题目描述实现获取下一个排列的函数,算法需要将给定的数字序列重新排列成字典序中下一个更大的排列,如果不存在则将数字重新排列成最小的排列(即升序排列),必须原地修改。例如1,2,3 --> 1,3,21,5,8,6,7,3,2,1 --> 1,5,8,7,1,2,3,6为了得到下一个排列,首先找到从右往左的第一对nums[i-1] < nums[i]的一对数,然后在nums[i-1]的右边的序列中按照从右往左的顺序找到第一个大于nums[i-1]的元素nums[j],题目中要求的下一

2022-01-24 17:33:34 153

原创 【算法】Manacher(马拉车)算法

原jekyll 2019-09-07Manacher’s Alogrithm,中文名叫马拉车算法,是一位叫Manacher的人在1975年提出的一种算法,解决的问题是求最长回文子串,算法的神奇之处就在于将时间复杂度精进到了O(N)。还记得在两年前的四省赛中,有一道关于回文的题,题解就是用马拉车算法做解的,然而我们没有做出来。01 由来在求解最长回文子串时,一般的思路是以当前字符为中心向两边扩展寻找回文,但复杂度是O(N^2),那能不能将复杂度降低到线性?马拉车算法就是为此诞生的。02 预处理为了在

2022-01-24 17:31:24 586

原创 【小记】获取客户端用户真实ip方法整理 from jekyll

由请求获取客户端ip地址的方法是request.getRemoteAddr(),在大部分的情况下该方法是有效的,但是在通过了apache、squid等反向代理软件就不能获取到客户端的真实ip了。经过代理后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿取到用户的ip地址,服务器端应用也无法直接通过转发请求的地址返回给客户端。但在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息,用以跟踪原有客户端ip地址和原来客户端的请求的服务器地址。获取客户端真实ip地址的方法如下/**

2022-01-24 17:28:39 394

原创 【小记】2021秋招总结

在2021秋招中,经过沉淀技术、打磨简历、投递、笔试、面试等过程,最终收获了心仪的offer。其中也是经历了憧憬、茫然、失意、下定决心、达成小目标这么几个心路历程。回头看其中还是有些东西值得分享的,遂记录下来。今年秋招我投递的都是java后端开发,从七月底开始投递的,笔试面试主要集中在八九月份。收获的offer有阿里、美团、奇安信等。秋招面试的经历让我知道了,大型互联网企业对于应聘者除了基本能力的考察之外,更加看重应聘者的解决问题的能力以及知识的深度和广度。在面试的过程中,面试官经常会出一些开放性的情景

2021-11-24 21:24:12 171

原创 Web聊天室消息[已读未读]的实现

聊天室快速访问继上次完成聊天室的历史记录功能后,我又想着实现聊天记录的已读未读功能。(轻喷。。)开始之前首先我看了抖音和钉钉这两款应用的消息已读未读功能的呈现效果。首先是抖音,在聊天界面,给好友发送完消息后,消息界面的最右下角有一个“已发送”标记,这时候是属于对方未读,如果对方上线并别点开了和你的聊天界面,你和他的聊天界面上,那个“已发送”就变成了“已读”,所以抖音并不会每一条消息上面都显示“已读”或者“未读”。而钉钉,由于其专注于办公,这个已读未读功能就“变态”多了,每一条发出去的消息都会显示对方是

2021-07-12 16:14:53 7206 8

原创 Web聊天室历史记录解决方案(轻喷。。)

聊天室快速访问之前写的Web聊天室一直没有更新了,其实还有一些功能没有完善,比如历史记录、视频对话等。这几天心血来潮,捡起之前的代码,从看起来最简单的聊天记录开始整。开始之前当时写这个聊天室的时候,没有考虑保存聊天记录的功能,因为当时把写的东西先跑起来实现消息发送再说,,,汗,,。 跑起来之后想了想历史记录保存的问题,第一反应是保存到数据库啊!!!就是发一条,就保存一条,执行一条SQL语句。嗯,,很直接暴力。另外查了查资料,网上的文章和帖子都说即时通讯应用的聊天记录都是不会对数据库进行频繁读写的,因为

2021-07-05 10:07:26 3723 1

原创 个人网站新功能:聊天室

之前在个人网站上预留了一个网页聊天室的功能,在这次寒假抽出了时间来完成。快速访问简要记录一下网页聊天室的设计过程。AJAX轮询在设计之前一直纠结该使用何种方式来实现网页聊天室这个模块,最基本的想法是使用ajax来实现轮询,从而达到消息推送的目的,目前的很多网站也是通过这样的手段来实现推送技术。轮询是在特定的时间间隔(如每一秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这样传统的模式需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可

2021-03-05 13:36:28 353

原创 解决Shiro第一次重定向url带有jsessionid导致400错误

在Shiro进行第一次重定向时,会在url后携带jsessionid,这会导致400错误(无法找到该网页)。原因在于ShiroHttpServletResponse配置类的doIsEncodeable当中,会将url自动拼接jsessionid。解决办法:在Shiro的配置类中的sessionManager()方法中,将sessionIdUrlRewritingEnabled属性设置为false。该方法返回一个DefaultWebSessionManager实例。将上面方法返回的实例设置为Defa

2021-02-20 22:37:28 2637 1

原创 造了个工具:GitHub Page搜索工具

GitHub Page Search地址GitHub Page是什么当你想搭建一个自己的网站,但却没有服务器,没有数据库等,这时候不用一筹莫展,GitHub Page可以助你一臂之力。GitHub Page是GitHub提供给用户为自己的项目搭建网站的免费站点,只能是静态站点,当然也不错啦!(免费就是香)。 官方网站GitHub Page博客在官方介绍中,GiHub Page还可以用来写博客,直接从GitHub存储库托管,只需编辑、推送,您的修改就会生效。例如我的GitHub Page博客。相比

2021-01-14 12:31:31 242

原创 MySql存储emoji表情报错的处理方法

mysql存储emoji表情报错的处理方法:更改编码为utf8mb4uft-8编码可能2个字节、3个字节、4个字节,而MySql的uft-8只支持3字节的数据,而移动端的表情数据是4字节的字符。如果直接采用utf-8编码的数据库中插入表情数据,Java程序将报错:java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1at com.mysql.jdbc.SQLError.cr

2021-01-06 09:49:33 345

原创 剑指offer.41 数据流中的中位数

这道题涉及到对堆这个数据结构的使用,落实到代码上实际使用的是优先队列(优先队列底层可以通过堆来实现)。题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整

2020-12-19 16:30:00 86 2

原创 后端架构的演进

当前微服务架构大行其道,很多java工程师也对微服务架构的学习和使用趋之若鹜。但是对于技术人来说,比了解技术更重要的是了解技术产生的背景及核心原理。现在看起来非常复杂和庞大的架构,一定都是随着业务产品种用户量和数据量增长而不断演进的。架构的发展可能都会经历单体架构、垂直和集群、SOA(面向服务架构)、微服务架构等。单体架构单体架构的整个系统非常简单,通常来说,如果一个war包或者jar包里面包含一个应用的所有功能,则我们称这种架构为单体架构。很多传统互联网公司或者创业型公司早期基本都会采用这样的架构

2020-12-15 19:59:00 172

Android游戏开发大全.pdf

本书以Android手机游戏的开发为主题,结合真实的游戏案例向读者详细介绍了Android平台下游戏开发的整个流程,同时在游戏开发的介绍过程中还分享了作者多年积累的开发技巧与经验。

2017-12-18

OpenStack开源云王者归来.pdf.zip

本书按照入门、扩展的讲授方式,由浅入深地介绍了开源云计算平台OpenStanck

2017-11-06

mentohust_0.3.4-1_amd64.tar.gz

很多在大学的童鞋使用ubuntu时都会遇到如何连接有线校园网的问题,在这里我们使用mentohust来连接有线校园网,这是一个在Linux下与锐捷兼容性较好的认证客户端,方便使用Linux和锐捷的同学使用校园网。

2017-09-06

Hadoop YARN权威指南_(美)默西著_北京:机械工业出版社 , 2015.03_P242.pdf

机械工业出版社,高清扫描版,带目录,你值得拥有!!

2017-03-14

Spark快速大数据分析 高清完整.pdf版下载

《Spark 快速大数据分析》是一本为 Spark 初学者准备的书,它没有过多深入实现细节,而 是更多关注上层用户的具体用法。不过,本书绝不仅仅限于 Spark 的用法,它对 Spark 的 核心概念和基本原理也有较为全面的介绍,让读者能够知其然且知其所以然。

2017-03-13

The Linux Command Line中文版.pdf

自己就用这个学的,排版很好很清楚

2017-03-13

空空如也

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

TA关注的人

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