
java开发
文章平均质量分 63
普通网友
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
这才是Springboot事务创建流程的正确打开方式(附源码分析!)
SpringBoot事务Springboot中事务是相对重要的一个部分。也是aop的一个使用场景。我们今天就来一起从源码的角度分析下,事务的整个创建过程。关于springboot启动过程中的一些加载,很多都是通用的,这块就不再仔细讲述了。这部分可以参看spring boot 加载web容器tomcat流程源码分析和springboot整合mybatis源码分析这两篇文章关于enhancer生成代理类的过程,可以参看Springboot中注解@Configuration源码分析代码路径:sp转载 2021-09-24 15:07:09 · 837 阅读 · 0 评论 -
MySQL幻读:大家好,我是幻读,我今天又被解决了
什么是幻读?幻读的定义我这里还得补充一句,幻读仅专指“新插入的行”,中途通过 update 更新数据而出现同一个事务前后两次查询的「结果集合」不一样,这种不算幻读。然后前几天有位读者跟我说,这个幻读例子不是已经被「可重复读」隔离级别解决了吗?为什么还要有 next-key 呢?他有这个质疑,是因为他做了这个实验。实验的数据库表 t_stu 如下,其中 id 为主键。然后在可重复读隔离级别下,有两个事务的执行顺序如下:从这个实验结果可以看到,即使事务 B 中途插入了一条记录转载 2021-09-24 15:03:19 · 730 阅读 · 0 评论 -
CDN永远的神!成功解决了困惑我多年的GitHub访问太慢问题
我写技术文章画的图片是保存到 GitHub 的,没别的原因,就是因为免费,但是GitHub 访问的速度大家都懂的,访问的速度很慢。所以我会用 CDN 来加速图片的访问,也就是我的图床的方案是 GitHub + jsdelivr CDN,使用很简单,只需要把域名地址替换一下就行。那为什么访问 GitHub 会很慢呢?GitHub 离国内就近的服务器是在新加波,距离我这有 2600 公里,也就是说,访问 GitHub 上的一张图片,一个数据包就要走 2600 公里这么远!而且,互联网从逻辑上转载 2021-09-08 15:51:25 · 621 阅读 · 0 评论 -
So eazy!SpringBoot一键去除参数前后空格和XSS过滤实战解析
去除XSS字符串需要借助工具类 jsoup ,这里jsoup有一点需要注意的是,jsoup的功能可能有点太强大了,能把xss攻击的内容直接过滤掉了不说,也会对英文尖括号 <> 转义,到接口里面拿到的参数就变成了 <> ,存库里面的就是转义后的字符串了。取出来的时候需要转一下。比如前台传的参数传的是: 12<>3<script>alter('11111111')</script>455过滤处理了后,到后台接口里面就成了: [12<>转载 2021-09-08 15:48:52 · 557 阅读 · 0 评论 -
冒死上传!阿里内部出品Java性能优化高级笔记(全彩版)震撼来袭
性能优化作为一个程序员,性能优化是常有的事情,不管你是刚入行的小白还是已经入坑了很久的小秃头都会经历很多不同层次的性能优化——小到代码审查大到整个系统设计的优化!大势所趋之下,如何让自己的优化方向精准到性能瓶颈的那个点以及尽可能的提高优化的性价比已经慢慢成为每一个程序员都要考虑的问题了~下面是目前程序员进行性能优化时需要遵循的一些原则以及注意的一些点,大家可以看看自己在进行优化的时候是否有考虑到这些:如果你对于以上性能优化的原则、层次、通用方法以及代码质量的关系根本没有一个概念,也不知道何从原创 2021-08-07 17:21:41 · 419 阅读 · 0 评论 -
顶级理解!阿里这份Github星标63.7K的Redis高级笔记简直不要太细
Redis大家都知道Redis的业务范围是非常广的,但是对于刚入行的小伙伴来说可能也就知道个缓存跟分布式锁。因为Redis的很多功能在一些小企业里,根本是用不到的,得等到并发量到了一定的程度,系统扛不住了,才会用到Redis那些高级的功能。下面LZ就带大家来看看,Redis到底能干些啥:以上图为例,上面的例举的就是Redis的最常用的核心知识点,掌握了上面这些,面试跟日常开发肯定是够用了,不过你要是想真正的精通Redis这个技术栈,只会上面这些肯定是不够的!如果你自诩自己已经掌握了Redis基础原创 2021-07-28 16:27:28 · 247 阅读 · 0 评论 -
优秀!Alibaba全新出品亿级流量并发系统架构设计实录太香了
前车之鉴,后车之师面对亿级以上的并发量,如果保证自己的系统不崩溃成了大家一个永恒讨论的话题,那么如果站在巨人的肩膀上去优化自己公司的系统架构呢?通常我们面对高并发流量的时候有三种方案:Scale-out(横向扩展)、缓存、异步(具体如何操作这里就不进行过多的赘述了)!你像12306通常就是用异步调用的方式。同时我也想让大家知道的是:高并发系统的演进应当是循序渐进,以解决系统中存在的问题为目的和驱动力的。不要盲目地去跟风,要学会取其精华去其糟粕!今天我们来学习的就是京东商城核心亿级流量并发Ja原创 2021-07-27 21:03:15 · 392 阅读 · 0 评论 -
11场面试无一被拒!Alibaba金九银十面试参考指南(Java版)真香
Java面试今年时间属实过得挺快的,眼瞅着就要到8月了!想必有很多小伙伴这会已经在为金九银十面试跳槽做准备了。临近面试肯定是要想办法提升自己的面试能力,这个时候如果还去一昧地提升自己的代码能力对面试是毫无帮助的。大多数人在面试的时候都会遇到以下几种情况(大家可以看看自己中了几个):1、自我感觉自己的Java的技术不错,但是面试往往不如人意;2、对面试官提出的问题很懵,不知道他问的是什么?3、面试才开始,有些面试官就疯狂地从知识基础的开始询问;4、一些面试官一直在问有关业务场景的问题,完原创 2021-07-23 15:27:00 · 253 阅读 · 0 评论 -
手慢无!Boss直聘大厂内部面试真题整理(全彩版)流出!
2021年的互联网行业竞争越来越严峻,面试也是越来越难,一直以来我都想整理一套完美的面试宝典,奈何难抽出时间,这套1000+道的Java面试手册我整理了整整1个月,上传到Git上目前star数达到了30K+这套互联网Java工程师面试题包括了:MyBatis、ZK、Dubbo、EL、Redis、MySQL、并发编程、Java面试、Spring、微服务、Linux、Springboot、SpringCloud、MQ、Kafka面试专题(共485页,32W字)需要资料的小伙伴,点赞加收藏,关注我之后添原创 2021-07-21 16:51:40 · 608 阅读 · 0 评论 -
阿里技术团队耗时半年打造的258W字Java全栈面试题总结太香了!
这个是大概的目录内容这份Java高级全栈的面试题内容很多,面试题(含答案)的质量肯定是一点问题都没有的,但就是有一个很大的缺点,就是内容太多了!!!老师十分想给大家全部截图展示出来,奈何文章篇幅有限制,而且单一的截图方式也会让大家审美疲劳!所以呢,今天老师想换个方式为大家展示,老师花了一周的时间,基本上每道面试题的都刷了,根据各个模块的内容进行归纳整合出了大纲的的样式!什么意思呢?就是说,每个模块的面试题是在考察哪些知识点,痛点在哪里通过精简的方式为大家整合成了一份脑图,从而通过脑图的方原创 2021-07-20 17:11:58 · 264 阅读 · 0 评论 -
Zookeeper一些重要概念汇总,学完轻松玩转Zookeeper!
相信大家对 ZooKeeper 应该不算陌生。但是你真的了解 ZooKeeper 到底有啥用不?如果别人/面试官让你给他讲讲对于 ZooKeeper 的认识,你能回答到什么地步呢?拿我自己来说吧!我本人曾经使用 Dubbo 来做分布式项目的时候,使用了 ZooKeeper 作为注册中心。为了保证分布式系统能够同步访问某个资源,我还使用 ZooKeeper 做过分布式锁。另外,我在学习 Kafka 的时候,知道 Kafka 很多功能的实现依赖了 ZooKeeper。前几天,总结项目经验的时候,我突然问原创 2020-08-26 21:36:14 · 478 阅读 · 0 评论 -
阿里内部对标P5到P7程序员进阶核心笔记:分布式/开源框架/微服务/性能调优全有
前言程序员,立之根本还是技术,一个程序员的好坏,虽然不能完全用技术强弱来判断,但是技术水平一定是基础,技术差的程序员只能CRUD,技术不深的程序员也成不了架构师。程序员对于技术的掌握,除了从了解-熟悉-熟练-精通的过程以外,还应该从基础出发,到进阶,到源码,到实战。所以,程序员想要成功,首先要成就自己。今天,这份Java全能笔记终于爆火了,看完之后我直接跪了!这份Java全能笔记内容齐全,包括以下几个方面:Java筑基(基础):Tomcat+Mysql+设计模式+并发编程+JVM+Netty原创 2020-08-25 13:57:34 · 652 阅读 · 4 评论 -
如何设计一个超牛逼的本地缓存,太香了
前言最近在看Mybatis的源码,刚好看到缓存这一块,Mybatis提供了一级缓存和二级缓存;一级缓存相对来说比较简单,功能比较齐全的是二级缓存,基本上满足了一个缓存该有的功能;当然如果拿来和专门的缓存框架如ehcache来对比可能稍有差距;本文我们将来整理一下实现一个本地缓存都应该需要考虑哪些东西。考虑点考虑点主要在数据用何种方式存储,能存储多少数据,多余的数据如何处理等几个点,下面我们来详细的介绍每个考虑点,以及该如何去实现;1.数据结构首要考虑的就是数据该如何存储,用什么.原创 2020-08-17 14:28:19 · 451 阅读 · 0 评论 -
一篇文章给你把布隆过滤器的讲的明明白白
不知道从什么时候开始,本来默默无闻的布隆过滤器一下子名声大燥,在面试中面试官问到怎么避免缓存穿透,你的第一反应可能就是布隆过滤器,缓存穿透=布隆过滤器成了标配,但具体什么是布隆过滤器,怎么使用布隆过滤器不是很清楚,那今天我们就来把它说清楚,讲明白。。缓存穿透大家看下这幅图,用户可能进行了一次条件错误的查询,这时候redis是不存在的,按照常规流程就是去数据库找了,可是这是一次错误的条件查询,数据库当然也不会存在,也不会往redis里面写值,返回给用户一个空,这样的操作一次两次还好,可是次数.原创 2020-08-14 16:36:22 · 472 阅读 · 0 评论 -
微处理架构——处理复杂事物,细说微服务架构的优势与不足
摘要微处理架构——处理复杂事物许多公司,比如Amazon、eBay和NetFlix,通过采用微处理结构模式解决了上述问题。其思路不是开发一个巨大的单体式的应用,而是将应用分解为小的、互相连接的微服务。微服务正在博客、社交媒体讨论组和会议演讲中获得越来越多的关注,在Gartner的2014 Hype Cycle上它的排名非常靠前。同时,软件社区中也有不少持怀疑论者,认为微服务不是什么新东西。Naysayers认为这就是SOA架构的重新包装。然 而,尽管存在着不同的争论,微服务架构模式却正在为敏捷部原创 2020-08-12 14:09:54 · 559 阅读 · 0 评论 -
跪了!Java EE+Web搭建云服务器以及云应用平台7大项目详解
前些天在优快云上看到的一篇关于JavaSE、JavaEE和JavaWeb的区别与联系,总结的挺全的,跟大家分享一下Java SEJava SE 以前称为 J2SE,定位在个人计算机使用,用来开发C/S架构软件。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE包含了支持 Java Web 服务开发的类,并为 Java EE提供基础。Java EEJava EE,以前称为 J2EE,定位在服务器端应用。企业版本帮助开发和部署可移植.原创 2020-08-11 17:35:50 · 755 阅读 · 0 评论 -
一款直击痛点http框架让你超高效完成第三方接口的对接
1.背景因为业务关系,要和许多不同第三方公司进行对接。这些服务商都提供基于http的api。但是每家公司提供api具体细节差别很大。有的基于RESTFUL规范,有的基于传统的http规范;有的需要再header里放置签名,有的需要SSL的双向认证,有的只需要SSL的单向认证;有的以JSON 方式进行序列化,有的以XML方式进行序列化。类似于这样细节的差别太多了。不同的公司API规范不一样,这很正常。但是对于我来说,我如果想要代码变得优雅。我就必须解决一个痛点:不同服务商API那么多的差异点,如何原创 2020-08-11 17:29:30 · 683 阅读 · 0 评论 -
Java空指针应该这样玩,打破你的认知!
相信在座的各位都遇到过空指针异常,不甚其烦,本文不是教你避免空指针,而是一些对空指针其他方面的理解。本文可能有点另类,也可能会打破你对空指针的认知。1、null.method() 空指针?我们知道调用一个对象的方法,如果对象为 null 肯定会报空指针错误的,但你确定一定会吗?不一定!来看下面的示例:如果 null 对象指向该类型的静态方法,不但不会报空指针错误,而且还会运行正常,是不是很6?因为静态方法不属于任何对象,它属于类本身的,相当于直接调用类的静态方法。2.原创 2020-08-11 17:22:03 · 660 阅读 · 0 评论 -
字节的面试题到底有多难?大厂为何都注重算法?我们该如何应对?
文章的开头大家先来看一看一道字节的算法题,看是否能做出来:给定一个单链表的头节点 head,实现一个调整单链表的函数,使得每K个节点之间为一组进行逆序,并且从链表的尾部开始组起,头部剩余节点数量不够一组的不需要逆序。(不能使用队列或者栈作为辅助)大家有没有一脸懵逼的感觉?(我也不会)曾经有个说法,程序=数据结构+算法。这在面向过程的编程语言流行的年代是很受推崇的。然而,随着时代的发展,各种编程语言的出现,各种编程模式的发明,面向对象、设计模式、框架、模型等各种概念出来之前那个说法已经.原创 2020-08-10 13:12:40 · 853 阅读 · 0 评论 -
API 面试四连杀:接口如何设计?安全如何保证?签名如何实现?防重如何实现?
说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃取)?除了https的协议之外,能不能加上通用的一套算法以及规范来保证传输的安全性呢?下面我们就来讨论下常用的一些API设计的安全方法,可能不一定是最好的,有更牛逼的实现方式,但是这篇是我自己的经验分享.一:token 简介Token:访问令牌access token, 用于接口中, 用于标识接口调用者的身份、凭证,减少用户名和密码的传输次数。一般情况下客户端(接口调用方)需要先向服务器端申请原创 2020-08-10 13:10:04 · 505 阅读 · 0 评论 -
5年开发3年架构,结果update写错了!你敢信?
最近好几次有开发同学在钉钉上问我,比如下图:问题归纳起来就是:在MySQL里面update一条记录,语法都正确的,但记录并没有被更新...刚遇到这个问题的时候,我拿到这条语句直接在测试库里面执行了一把,发现确实有问题,但和开发描述的还是有区别,这里我用测试数据来模拟下:有问题的SQL语句:执行之前的记录是这样的:执行之后的记录是这样的:可以看到,结果并不像这位开发同学说的“好像没有效果”,实际上是有效果的:why?看起来,语法是完全没有问题,翻了翻My..转载 2020-08-10 13:05:20 · 370 阅读 · 0 评论 -
太牛了!百度开源超轻量中英文OCR模型大小只有8.6M!
光学字符识别(OCR)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。前几个月,猿妹曾和大家分享过一个热门的中文OCR项目———chineseocr_lite。这两天猿妹才知道,百度也开源了一款超轻量级中文OCR,总模型大小仅8.6M,只有chineseocr_lite,那真真是超轻量级别的神级OCR。PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力使用者训练出更好的模型,支持iOS和Andr原创 2020-08-07 16:44:25 · 1712 阅读 · 0 评论 -
腾讯T8架构师基于SpringBoot2.x搭建分布式架构
前言Java 的各种开发框架发展了很多年,影响了一代又一代的程序员,现在无论是程序员,还是架构师,使用这些开发框架都面临着两方面的挑战。一方面是要快速开发出系统,这就要求使用 的开发框架尽量简单,无论是新手还是老手都能快速上手,快速掌握页面渲染、数据库访 问等常用技术。也要求开发框架能尽量多地集成第 方工具,以便信手拈来。最后,还希望在开发调试过程中,方便代码更改后能快速重启。另外一方面是当系统模块增加 ,用户使用量增加时,面对这样的挑战,系统拆分成为新的架构,程序员和架构师当然不希望换掉己有的原创 2020-07-02 18:34:39 · 605 阅读 · 0 评论 -
2020年 11 大顶级 VueJS 开发工具你用过不?
Vue JS 最近变得越来越流行,主要是因为它在学习和开发应用程序方面都提供了很多便利。无论你是经验丰富的开发人员,正希望切换到 Vue 上,还是刚刚开始工作的新人——选择正确的工具都是非常重要的。在合适的工具帮助下,你就能快速构建出色的应用,而无需重新发明轮子。在为这个列表挑选工具时,我们考虑了整个 Vue JS 的开发周期。从为你的新应用程序设置样板开始,我们涵盖了许多重要的应用程序概念、调试甚至测试内容。那就开始吧。1. Vue CLI与其他所有 JavaScript 框架一样,你原创 2020-06-19 20:56:22 · 922 阅读 · 0 评论 -
接私活又有着落了!推荐3个快速开发平台 前后端都有 !
经常性逛github,发现了一些优秀的开源项目,其中的框架及代码非常不错,现在给大家推荐三个快速开发平台。第一个就是优秀的Jeecg-boot快速开发平台前端采用阿里的ant-design-vue,兼容PC端、手机端、Pad端。开发环境语言:Java 8 IDE(JAVA):IDEA / Eclipse安装lombok插件 IDE(前端):WebStorm 或者 IDEA 依赖管理:Maven 数据库:MySQL5.7+ & Oracle 11g & Sqlserve原创 2020-06-11 16:31:01 · 3329 阅读 · 7 评论