java
文章平均质量分 83
普通网友
这个作者很懒,什么都没留下…
展开
-
JVM性能调优,程序员进阶必看!
JVisualVM 简介案例分析准备模拟内存泄漏样例使用JVisualVM分析内存泄漏JVisualVM 远程监控 TomcatJava学习、面试;文档、视频、刷题笔记+Java全栈开发学习路线图点击这里领取即可JVisualVM 简介VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别..原创 2021-08-02 21:09:40 · 203 阅读 · 0 评论 -
面试阿里被问:“你的项目是如何处理重复请求/并发请求的?”
对于一些用户请求,在某些情况下是可能重复发送的,如果是查询类操作并无大碍,但其中有些是涉及写入操作的,一旦重复了,可能会导致很严重的后果,例如交易的接口如果重复请求可能会重复下单。重复的场景有可能是:黑客拦截了请求,重放前端/客户端因为某些原因请求重复发送了,或者用户在很短的时间内重复点击了。网关重发….本文讨论的是如果在服务端优雅地统一处理这种情况,如何禁止用户重复点击等客户端操作不在本文的讨论范畴。###利用唯一请求编号去重你可能会想到的是,只要请求有唯一的请求编号,那么就能借用原创 2021-07-31 17:30:42 · 195 阅读 · 0 评论 -
主流分布式文件系统选型,写得太好了!
###一、概述分布式文件系统是分布式领域的一个基础应用,其中最著名的毫无疑问是 HDFS/GFS。如今该领域已经趋向于成熟,但了解它的设计要点和思想,对我们将来面临类似场景/问题时,具有借鉴意义。并且,分布式文件系统并非只有 HDFS/GFS 这一种形态,在它之外,还有其他形态各异、各有千秋的产品形态,对它们的了解,也对扩展我们的视野有所俾益。本文试图分析和思考,在分布式文件系统领域,我们要解决哪些问题、有些什么样的方案、以及各自的选择依据。二、过去的样子在几十年以前,分布式文件系统就已经出现了,原创 2021-07-30 15:15:34 · 609 阅读 · 0 评论 -
硬核!一套基于SpringBoot + Vue 的开源物联网智能家居系统!
大家好,我是热爱分享优质开源项目的 Guide!今天推荐的一个可以用来二次开发和学习的开源的软硬件系统,你可以用快速搭建自己的智能家居系统。Java学习、面试;文档、视频、刷题笔记+Java全栈开发学习路线图点击这里领取即可项目的效果图如下,不论是 UI 设计还是功能体验都是非常不错的!这也是我为什么给小伙伴们推荐这个项目的原因。下面这两张图是 APP 端的效果图。下面这两张是 Web 管理后端的效果图。是不是感觉还挺不错的?想要学习物联网开发的小伙伴一定不要错过。这个项目涉及到原创 2021-07-29 21:26:39 · 2193 阅读 · 4 评论 -
Redis高频率面试题之缓存雪崩、穿透、预热、更新、降级等问题
这次给大家整理一篇Redis经常被问到的问题:缓存穿透、缓存雪崩、缓存预热、缓存更新、缓存降级等概念及简单解决方案。一、缓存穿透缓存穿透是指用户查询数据库没有的数据,缓存中自然也不会有。这样就导致用户查询的时候,在缓存中找不到,每次都要去数据库再查询一遍,然后返回空(相当于进行了两次无用的查询)。这样请求绕过缓存直接查数据库,缓存形同虚设,这也是经常提的缓存命中率问题。有很多种方法可以有效地解决缓存穿透问题,最长见的有空对象和布隆过滤器两种解决方案。空对象是首选方案,简单直接,碰到查询结果为空的键原创 2021-07-22 16:16:36 · 227 阅读 · 0 评论 -
归约、分组与分区,深入讲解JavaStream终结操作
思维导图镇楼上一篇中给大家讲了Stream的前半部分知识——包括对Stream的整体概览及Stream的创建和Stream的转换流操作,并对Stream一些内部优化点做了简明的说明。虽迟但到,今天就来继续给大家更Stream第二部分知识——终结操作正式开始之前,我们先来说说聚合方法本身的特性(接下来我将用聚合方法代指终结操作中的方法):聚合方法代表着整个流计算的最终结果,所以它的返回值都不是Stream。聚合方法返回值可能为空,比如filter没有匹配到的情况,JDK8中用Optiona.转载 2021-07-20 19:09:33 · 280 阅读 · 1 评论 -
延迟执行与不可变,系统讲解JavaStream数据处理
在本文中将Stream的内容分为以下几个部分:初看这个导图大家可能对转换流操作和终结流操作这两个名词有点蒙,其实这是我将Stream中的所有API分成两类,每一类起了一个对应的名字(参考自Java8相关书籍,见文末):转换流操作 :例如filter和map方法,将一个Stream转换成另一个Stream,返回值都是Stream。终结流操作 :例如count和collect方法,将一个Stream汇总为我们需要的结果,返回值都不是Stream。其中转换流操作的API我也分了两类,文中会有转载 2021-07-20 17:17:06 · 129 阅读 · 0 评论 -
毕业五年,室友嫌小厂工资低,跳槽快手二面被拒
有个朋友毕业几年,一直在家规模比较小的公司做 Java 开发,工资也处于行业中下游。最近看到跳进大厂的同事工资都涨了不少,他也打算跳槽涨一波薪水。在招聘软件上随便一搜,就能看到大厂的Java岗位待遇真不是一般的好。3 年左右工作经验的年包基本都在 50w 上下,还有房补、三餐等各种福利。但门槛也很高,他投了好几次简历都是“已读不回”,最后找了人内推,才拿到了快手的面试机会。为了这次面试,他准备得非常充分,光是题库就刷了好几遍,并且把自己认为重要的、热门的技术栈从作用到性能特点都从头到尾背了下来。按理原创 2021-07-20 14:20:58 · 335 阅读 · 1 评论 -
精品!阿里P7爆款《K8s+Jenkins》技术笔记,高质量干货必收藏!
前些日子从阿里的朋友那里取得这两份K8s+Jenkins的爆款技术笔记:**《K8S(kubernetes)学习指南》+《Jenkins持续集成从入门到精通》,**非常高质量的干货,我立马收藏!而今天咱们文章的主角就是这非常之干货的技术笔记:K8S+Jenkins!注:《K8S(kubernetes)学习指南》+《Jenkins持续集成从入门到精通》双份技术文档,我已整理好成完整的PDF文件了,如需参考学习的话,点击这里获取 即可先看Jenkins–《Jenkins持续集成从入门到精通》Jen转载 2021-07-19 17:20:33 · 112 阅读 · 0 评论 -
基于Redis的分布式锁设计
前言基于Redis的分布式锁实现,原理很简单嘛:检测一下Key是否存在,不存在则Set Key,加锁成功,存在则加锁失败。对吗?这么简单吗?如果你真这么想,那么你真的需要好好听我讲一下了。接下来,咱们找个例子研究一下。在开始之前,咱们先定些规则:关于示例代码:需要搭配我准备的示例代码,该示例采用C#编写示例中的材料Id固定为10000示例中的材料初始库存均为100关于Redis中的Key:指示材料库存的Key为ProductStock_10000自己实现的分布式锁中,指示锁的K原创 2021-07-16 15:03:46 · 191 阅读 · 3 评论 -
24小时面试6家大厂-offer拿来吧你 | 2021 年中总结
自我介绍大家好 我是小苏~本人三年开发,985渣硕一枚,211本科,专业都是软件工程,一直投的是Java后台开发,只投过一次网易的测试,技术不是太牛,但是比较努力。前言不过说起 2021 的上半年,真是一把辛酸泪呀,我经历的最大的一件事就是离职,离开了我待了整整4年的一家公司,而且我还是 “裸辞” ,没错,你没有看错,就是**“裸辞”,身边也有朋友问我关于离职的建议, 我都是拼命劝大家不要“裸辞”**,压力大风险高巴拉巴拉一大堆,不过正所谓劝人者难自劝,当一点点小的事情积累起来之后就成了压死骆驼的最原创 2021-07-15 19:43:13 · 248 阅读 · 1 评论 -
B站昨晚挂了之后,刷新页面出现的“tengine”是个啥?
一、描述昨天晚上闲来无事就准备上B站刷刷视频,然后就准备睡觉了,进去之后就是诧异,woc?B站挂了!睡都清醒了,真的丝毫不夸张404的状态码,懂得都懂。不过,最下面的“tengine”吸引了我的注意,一时兴起,打算看看它是个什么东西所以特意去购买了一台服务器,打算搞一个hello tengine服务器就位,准备开干!二、官方的介绍Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型原创 2021-07-14 17:30:07 · 8212 阅读 · 1 评论