自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TateBrwonJava的博客

学习之路

  • 博客(112)
  • 收藏
  • 关注

原创 使用Arthas调优

定位慢操作针对查询问题可以考虑的方法有是去服务器上开启mysql的慢查询日志,与使用arthas定位.为了与运维工作解耦开,这边仅介绍使用arthas.安装运行点击可以参考运行起服务,运行起arthas,在arthas的shell交互界面中选择你的服务进入.输入命令trace你运行慢的函数,可以使用ognl表达式或其他,也可以直接通配符.例如我要排查FanLibrary这个类下面的getHttpResponse方法。trace com.fun.frame.httpclient.FanLibr

2021-07-05 15:58:59 373

原创 一个由Java泛型类型擦除引起的问题

问题发生项目工具及框架: mybatis-plus,springboot,jackson做json序列化处理器。业务需求:搞了一个字段,字段类型是json。字段在java对应中对应的属性是一个枚举类型的List.展现情况:利用mybatis-plus,存入时很正常的存入了枚举name组成的数组。查看的时候出现了问题,取出对象时是正常的。而当我访问那个枚举数组时,只要一访问这其中的元素,就出现了报错。java.lang.ClassCastException: java.lang.String can

2021-05-29 00:01:31 257

原创 几种水平分表方案与具体实践

最近在写水平分表,调研总结实践了一些比较普遍的方法,下面总结一下。水平分表所谓水平分表,顾名思义,就是由于某个单表数据过多,影响查询效率,于是选择分表,将原来的业务表按某个维度拆分成几个表,查询的时候根据维度限定选择对应的维度分表去查。比如常见情况下的a表,我按某个维度把它分成了a_1,a_2,a_3。那么当我要查1的数据就去查a_1,查2的数据就去查a_2.前提条件最最前提,主键要唯一,有很多实现方法,比如可以针对不同分表设置不同步长来实现,也可以通过雪花算法,uuid来生成分布式唯一id,一

2021-03-08 15:01:39 2680

原创 回首2020,展望2021

2020已经接近尾声,突然很想写点什么,于是就从床上爬起来写了。有过疫情期间的迷茫、考研上岸的喜悦,也有开学之后愈发的迷茫。年初碰上了百年难遇的疫情,在家一边等着出考研成绩,一边做着找工作的准备。现在翻看我的github与社交账号,那段时间虽然焦虑,但是方向还是准的,清一色关注了一堆面经项目,像那些javaGuide、javaFamily、牛客网、leetcode、马士兵等等,也找了一堆面试相关的电子书使劲的背,白天对着电脑背八股文,晚上拿着电脑刷力扣,也去投了几个,面的也还算不错。现在想想这段时

2020-12-27 00:43:53 601 3

原创 morris遍历树

public class Node{ Node left; Node right; int val; } public void morris(Node head){ if(head == null){ return;} Node cur = head; Node mostRight = null; while(cur != null){ most...

2020-08-28 15:55:56 138

原创 Redis简介

Redis缓存缓存是Redis最常见的用途,一般用来保证系统的高性能与高并发,因为缓存是放在内存的,而数据库的数据需要经过磁盘文件,当然mysql也支持一部分缓存,内存读写的并发量一定是比磁盘读写高的。简介Redis与Memcached的区别Redis支持复杂数据结构。Redis支持集群模式,当然Memcached也可也实现集群只是比较麻烦。Redis是单核的,在小数据的处理上Redis比Memcached的性能要高。Memcached是多核的,在大数据的处理上性能较高。线程模型主

2020-07-28 11:51:16 160

原创 分库分表与读写分离

分库分表随着业务的发展,用户数量与数据数量不断增加,迫使进行分库分表。分表所谓分表就是指将一个表的数据存放到多个表,然后查询时候按id的范围到对应的表里去查。因为数据太多,单个表已经不足以存储。分库所谓分库就是将数据存放到多个数据库中,访问时访问其中一个库。常见中间件cobar社区已经黄了,基本不用了。TDDL不支持联表,且依赖diamond配置中心。Atlas社区也差不多黄了。Sharding-jdbc使用比较多,社区活跃,不用部署,性能高,但是需要引入依赖,系统间耦合度较

2020-07-27 13:14:55 313

原创 ElasticSearch(分布式搜索引擎)介绍

ElasticSearchES是目前很流行的分布式搜索引擎,基于Lucene.架构设计主体设计:和一般的分布式思想一致,大的来说即在多个机器或容器上启动多个ElasticSearch进程,进而组成cluster。主要功能:存储数据。基本方式:使用索引作为基本单位存储数据,和Mysql类似,将索引与数据表关联,但也有一点不一样,这里的索引只是差不多相当于一张表,实际的情况index下还可以继续分类,一般按照以下层级分类。index->type->mapping->docume

2020-07-27 11:23:11 296

原创 消息队列介绍

使用消息队列的原因要是针对某些特定的业务场景,如果不使用消息队列会让系统的一些业务实现变得很复杂。这些场景很多,比如电商系统的订单与库存服务,考试系统的提交与日志服务等。将这些复杂的场景抽象起来,其实使用消息队列的场景集中在达到三个目的:解耦、异步、挫峰。解耦这里主要针对耦合度比较高的系统场景,举个简单的例子,比如说电商场景,订单服务需要被支付、仓库、商品等服务调用,而这其中订单服务就会出现很大的问题,它需要去时刻检测另外的服务是否还活着,如果调用失败了是不是还需要存储或者重发,一旦处理的逻辑不当

2020-07-26 17:36:40 211

原创 Java中List对象中clear()方法和List=null方法来清空List的异同(由一道算法题发现)

今天在刷力扣的时候因为一道比较简单的题卡住了,题目如下比较常规的写出了一开始的代码。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public List

2020-07-08 10:50:00 1969

原创 MySQL中的sql语句执行过程

MySQL的基本结构Server层有以下组件连接器在客户端登录Mysql时进行身份认证和权限确认缓存在进行select语句时,会优先查询的区域,同时在发现查询不到时会从表中查询并缓存到这个组件。顾名思义。分析器准确的说是语义分析器,即分析sql语句是否正确优化器优化sql语句到底层最优的方式从而执行sql语句,比如如何选择索引,如何联表,但只是理论最优,不一定是实际最优。执...

2020-04-16 22:39:57 261

原创 HashMap超详解

内部数据结构JDK1.8为例,内部使用数组+链表/红黑树的实现方式学过数据结构的都知道拉链法构造哈希表,这就是通过拉链法构造的过程。但是也有区别,当因哈希碰撞形成的链表长度超过8且数组大小超过64(包含64)时,会变成红黑树,提高查找的效率。当红黑树节点小于6时,又会转化回链表。数据插入原理1.判断数组是否为空,若为空则初始化数组,否则,通过计算(n-1)&hash值得到存储的...

2020-04-15 15:20:42 223

原创 Session、Cookie、JWT详解

Cookie和Session的产生原因为什么会有Cookie和Session,这是一个自然发生的事情,平时在进行开发时,通常使用HTTP或HTTPS协议发送请求到服务端,而学过计算机网络的都知道,HTTP协议是一种无状态的协议,服务端无法从请求本身知道请求方的相应信息状态,简单说就是请求对于服务端来说都是一视同仁的。这就无法满足实际的开发需求,所以就出现了Cookie和Session,这是HTT...

2020-04-13 14:17:41 396

原创 Java高阶笔记

Java语法糖语法糖:Syntactic sugar作用:make things easier to read or to express.使得程序员更容易编写程序,更清晰准确表达逻辑业务,不仅仅是语法的转换,也包括一些小的改进。for/for-each没有分号,和C++类似for(个体:数组)由5.0引入,语法更简介,避免越界错误,但是不可以删除替换元素,不知道当前具体索引,只...

2020-03-04 21:11:43 838

原创 2020考研初试成绩出来后的一点小结

这个寒假,因为肺炎疫情,注定是闲的蛋疼,出分前很慌英语,看到分数还是惊讶的,稳稳过线了,409.加上机考用PAT替代,我也不是跨考,基本上是稳了。 今年总体难度肯定是上升的,但是浙大的分却还是在升。 关于考研,最近也有很多人问,数学怎么学,考研怎么考。。。我觉得能不考还是别考了。我不知道别人怎么样,反正我觉得我这一年完全变成废物,根本没学到实际有价值的东西,完全为了考试而考试。...

2020-02-22 22:52:20 584

原创 Java进阶笔记

Maven构建工具Maven仓库搜索jar包优点:第三方库很强大,要学会在巨人肩膀上工作缺点:搜索,确定版本,下载jar包,工作量大且不易在Maven仓库搜索jar包,添加到pom.xml,右键项目-run as-build,run as即可。Maven概念和实战Maven是一个构建工具,自动下载中心仓库的jar文件,可以更改为aliyun镜像,编译测试运行和打包发布Java项目...

2020-01-26 21:04:49 474

原创 Java基础笔记(一)

主要是mooc陈良育老师的课程,这是第一部分课程的内容,强烈推荐,让我发现不少存在的知识漏洞,下面是笔记。Java类基础知识Class(类)1.main函数简写psvm2.类Java文件必须以.java作为拓展名一个Java文件只能有一个public classpublic class的名字必须和文件名字一样大小写都要完全一致一个文件可以有多个class,但是只有一个是pub...

2020-01-25 20:53:48 292

原创 2020考研初试的一点小总结

1.没咋对答案,随缘吧,反正数学没有150甚至可能没有140,我挺失望的,上不上就看英语能不能过zju线吧。2.后面复试基本没什么好准备的,去找个工作保底,再想想后面一年去干嘛,走一步看一步先走着吧。3.总的来说,感觉考研把自己考成了个废物,考完两天打游戏,感觉自己和时代脱节,打起游戏撑不到一个小时就觉得没意思,也没以前那种大杀四方的感觉,对版本的一切都很陌生。4.然后打代码,基本就是...

2019-12-31 22:05:11 193

原创 SEO之搜索引擎劫持

一、什么是SEO全称:搜索引擎优化 Search Engine Optimization.通俗解释:我们都用过baidu,google。。当我们搜索一个东西的话,搜索产生的链接都是通常都是按照点击量排名的(当然百度一般会把广告放最前面)。二、SEO的种类1.正常的优化,就是正经途径使网站获取较高的排名,同时获得大的流量和利润。2.不正常的SEO,hack手段,着重介绍一下。...

2019-07-29 23:51:15 2012 1

原创 Web安全:DDOS攻击的防范

一、DDOS攻击的原理全程:distributeddenial of service.分布式拒绝服务攻击。官方解释:在某一时刻(极小的一个时间区间)向要攻击的目标服务器发起大量的请求,耗尽目标服务器的可用资源,造成用户无法访问该服务器。也就是无法提供服务了,而且由于这种发起大量请求必然不太可能是单一的,是来自多方位的,所以是分布式的。开发过web或者进行过压力测试的人应该都用过压...

2019-07-28 21:34:14 1528

原创 跨站脚本攻击(XSS)初探(一)

起因:突然觉得不该把人生全压在考研之上,毕竟万一没考上。。那就只能社招了,就当学点课外东西,休闲放松。下面开始正题:一.XSS由来:我刚开始的时候很奇怪,为什么叫XSS,因为跨站脚本攻击英文是Cross Site Script,那不应该是CSS吗,后来查了一下是为了和三剑客(HTML,CSS,JS)里的CSS相互区别,所以就叫XSS了。顾名思义:在web安全里,XSS通常是通过网页...

2019-07-08 01:05:59 283

原创 SPFA+队列优化与迪杰斯特拉+优先队列(最小堆优化)解一道水题

其实算法还是挺有意思的,可惜我年纪大了,搞不动了,这种东西应该适合在中学时候搞。。题目:A traveler's map gives the distances between cities along the highways, together with the cost of each highway. Now you are supposed to write a program ...

2019-07-07 01:02:25 477 1

原创 PAT1034 Head of a Gang

上次三月没满分。。开始准备搞九月了,希望这次能满分吧。3月份的时候英文太差了,看的好累,现在感觉还好了些,看运气了。(其实目前唯一自信的科目只有数学,别的。。都是随缘佛系)。今天做了这道题。。我就服了,我三月去的时候没做这道,结果三月是题设背景和这题基本一样的题目就是加深复杂了一点。。我当时都看不懂Gang是什么意思。。血崩。应该是要并查集做,我这边锻炼下模拟能力用STL模拟做了一下也过了...

2019-07-04 00:21:27 212

原创 分布式配置中心选择

一现有的开源分布式配置中心1.Diamond2.Disconf3.Apollo4.Spring-Cloud-Config5.Netflixarchaius二.优缺点分析与异同比较1.Diamond,Disconf,Apollo都是存在mysql的,spring-cloud-config基于文件,yml或者键值对文件,通过git来拉取的。2.spring-cloud-...

2019-03-07 00:16:11 585

原创 PAT甲级1004,1020解题报告

 1004 Counting Leaves (30 point(s))A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child.Input Specification:Each input file c...

2019-02-08 16:15:24 592

原创 使用lftp进行文件备份

最近碰到一个需求,需要将一些服务器上的文件(主要是一些重要的数据和资源,例如sql,操作产生的图片,文件等等)。方法有很多种,最简单的我看下来还是用lftp算了,但是注意考虑到具体的需求,我这边是因为文件本身是不大的。文件压缩,sql提取,定时任务这种就不说了,都是基操。然后是使用lftp把要备份的文件发送过去。这里不写sh脚本了,就简单列举一下操作步骤一.在存放备份的服务器上...

2019-01-20 08:48:26 595

原创 SpringMVC文件统一下载代理时PathVariable不屏蔽文件名后缀

问题描述 文件名一般带有后缀,但是PathVariable会把最后一个.后面的内容忽略。 解决方法一比较笨的方法,再加一个PathVariable,把后缀和filename分开然后独立写一下。解决方法二也比较笨,再文件名最后再加个.,这样就不会过滤前面那个.了。解决方法三最直接用sqel,如下图,这样就不会把.后面过滤了。@GetMapping("/fil...

2019-01-16 10:33:50 412

原创 填坑之旅:前后端分离Springboot+Vue基于Ueditor实现富文本(包含上传图片文件公式等所有操作,服务器端实现)

期末考考完了,花了一下午把之前一直悬而未决的一个小项目富文本坑填上了,真的是心酸。其实富文本本来就是个坑,前后端分离之后的富文本更加是个坑了。不多说,先是参考的代码网址https://www.cnblogs.com/ocean-sky/p/7132319.html?tdsourcetag=s_pctim_aiomsg说一下里面大牛的主要思路,主要就是把原先的JSP实现强行拆分,把j...

2019-01-15 18:13:09 5250 4

原创 密码学:安全多方计算--比特与(茫然传输协议和数字签名)

数字签名举个例子Alice一个私钥,所有人都有一个公钥。Alice发布自己的消息,并给自己的消息签名,用她的私钥去加密。每个人都可以根据公钥去判断Alice消息的正确性。这样Alice的签名就不能抵赖,不能反悔。具体场景案例Alice和Bob想知道对方是否爱着自己。有以下场景Alice 发送0或1,0表示不爱,1表示爱。Bob也一样,发送0或1,0表示不爱,...

2018-12-30 23:32:14 2115

原创 密码学数论基础:求同余二次根

同余的概念定义给定一个正整数m,如果a,b,m能满足a-b能被m整除,那么可以说a,b对模m同余,记作a≡b(mod m)同余二次根的概念和定义求x^2≡b(mod p*q)求出x。几个重要结论1.除了2以外的所有素数p,必定满足p≡1(mod4)或者p≡3(mod4),这个结论不难证明。2.关于5mod11的平方根的解为±4.3.由结论1,如果x是一个正整数,p是一个...

2018-12-30 22:14:45 1191

原创 nginx配置静态文件代理(通过网络地址直接访问服务器资源)

很多场景我们都需要用到网络地址直接访问静态资源,诸如微信小程序的图片路径,富文本的图片路径,如何让服务器某个地方的静态图片资源能通过网络地址直接访问是很重要的。举个例子,比如图片存在服务器/www/Image文件夹下,我们想通过网络地址直接访问得到这个图片,可以做出如下配置。主要就是把根目录当成文件目录,然后就可以直接通过服务器地址+/图片名直接访问了。html等静态页面则进行另外...

2018-12-23 15:01:17 4588

原创 微信小程序开发遇到的坑:(如何把转发的卡片返回首页,setInterval和settimeout的区别,跳转关联公众号文章,如何上线)

     首先,采用的是原生开发,框架也都了解过,我也是VUE的忠实爱好者,但是还是不想去踩用框架的坑,等稳定点再说哈哈,原生本身就足够强大。一开始写不太熟练边看文档边写还抄抄github上的各种栏。其实和HTML很接近,主要耗时还是在CSS样式方面。后台也就认证,发模板这种要点操作,但是都是做一次就会的操作。可以说小程序的入门门槛比传统的web开发要低一些。但同时成本也是提高了,就像要使用HTT...

2018-12-20 19:56:27 652 1

原创 基于Google authentic实现的双因子登录认证系统前后台基于SSMP+Vue+Element(解决SecureRandom造成的服务器请求缓慢)

用md5两次加盐密码,可以灵活更换算法- -直接上代码地址:JAVA后台:https://github.com/TateBrownJava/TwoFALogindemoBackendVue前端:https://github.com/TateBrownJava/TwoFALoginDemofrontend----------------------------------------...

2018-11-29 01:03:16 1829

原创 PAT甲级1147解题报告

1147 Heaps (30 point(s))In computer science, a heap is a specialized tree-based data structure that satisfies the heap property: if P is a parent node of C, then the key (the value) of P is either g...

2018-11-26 17:30:30 267

原创 PAT甲级1129解题报告

1129 Recommendation System (25 point(s))Recommendation system predicts the preference that a user would give to an item. Now you are asked to program a very simple recommendation system that rates t...

2018-11-25 14:04:21 487

原创 PAT甲级1128解题报告

1128 N Queens Puzzle (20 point(s))The "eight queens puzzle" is the problem of placing eight chess queens on an 8×8 chessboard so that no two queens threaten each other. Thus, a solution requires tha...

2018-11-25 01:16:35 259

原创 PAT甲级1133解题报告

1133 Splitting A Linked List (25 point(s))Given a singly linked list, you are supposed to rearrange its elements so that all the negative values appear before all of the non-negatives, and all the v...

2018-11-23 15:14:00 453

原创 PAT甲级1097解题报告

1097 Deduplication on a Linked List (25 point(s))Given a singly linked list L with integer keys, you are supposed to remove the nodes with duplicated absolute values of the keys. That is, for each v...

2018-11-22 18:21:30 284

原创 PAT甲级1141解题报告

 1141 PAT Ranking of Institutions (25 point(s))After each PAT, the PAT Center will announce the ranking of institutions based on their students' performances. Now you are asked to generate the ran...

2018-11-21 21:02:08 296

原创 小程序全栈(二)一点总结

基本上是一个礼拜完成了整个过程,从java后台到小程序前端,然后是等上线了,而且这个系统逻辑比较简单。过程中发现并解决的问题其实不算问题,遗留下来的问题很多,也没找到什么好的解决方案,当然更多的还有一些感受。一.还未解决的疑问1.假如我的小程序后台需要用web另外开发,我如何控制我的web端用户的表和小程序端的用户表。而且我的后台需要多角色,小程序端也是多角色。是分表,还是一个表加一个字段...

2018-11-20 00:43:58 215

空空如也

空空如也

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

TA关注的人

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