![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 86
Python炭烧
分享自己工作方面的一些经验和技术知识点,以及自己的一些成长感悟。欢迎关注!
展开
-
源码解析 MyBatis 架构
MySQL 安装与启动安装并启动一个关系型数据是调试 MyBatis 源码的基础。目前很多互联网公司都将 MySQL 作为首选数据库,所以这里我也就选用 MySQL 数据库来配合调试 MyBatis 源码。1. 下载 MySQL首先,从 MySQL 官网下载最新版本的 MySQL Community Server。MySQL Community Server 是社区版本的 MySQL 服务端,可以免费试用。这里我选择使用 tar.gz 的方式进行安装,所以需要下载对应的 tar.gz 安装包,如下图红原创 2021-08-02 15:55:12 · 131 阅读 · 0 评论 -
进入后端Java行业前明白个道理:程序员解决的问题,大多不是程序问题
前言很多人都说,程序员很辛苦,与这个角色联系在一起的词儿,通常是忙碌、加班、熬夜等。作为程序员,我们将其看作一个值得全情投入的职业,希望能够把精力放在设计算法、改进设计、优化系统这些具有创造性与成就感的本职工作上。但现实情况却是,许多人因为一些“意外”,陷入了无休止的忙碌,比如:你辛辛苦苦写的代码还没上线,产品经理就告诉你需求变了;你拼命加班只因错估了工作量,自己造的“孽”,含着泪也要搞定;你累死累活做出来的东西和要求不符,只能从头再来;你大面积地修改代码只是因为设计糟糕,无法适应新的需求变化原创 2021-08-02 10:20:12 · 111 阅读 · 0 评论 -
ShardingSphere4.1.1:Sharding-JDBC数据加密及SPI加密策略实现
0、脱敏规则1、环境构建1.1、创建一个 Spring Boot 项目,引入依赖如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/PO.原创 2021-07-31 21:05:58 · 1507 阅读 · 0 评论 -
MyBatis从前世到今生一网打尽(全网最全,建议收藏)
一、框架概述1.1 软件开发常用结构1.1.1、三层架构三层架构包含的三层:界面层(User Interface layer)业务逻辑层(Business Logic Layer)数据访问层(Data access layer)三层架构分别的职责是:界面层(表示层,视图层):主要功能是接受用户的数据,显示请求的处理结果。使用 web 页面和 用户交互,手机 app 也就是表示层的,用户在 app 中操作,业务逻辑在服务器端处理。业务逻辑层:接收表示传递过来的数据,检查数据,.原创 2021-07-30 22:08:08 · 355 阅读 · 0 评论 -
java根据IP获取当前区域天气信息
大致思路是客户端发起请求,我们首先根据请求获取到外网IP,然后再根据外网IP获取到用户所在城市,最后根据城市获取到天气信息获取外网IP万网获取外网IP地址: www.net.cn/static/cust…/** * @Description:获取客户端外网ip 此方法要接入互联网才行,内网不行 **/public static String getPublicIp() { try { String path = "http://www.net.cn/static/cu原创 2021-07-30 17:49:03 · 414 阅读 · 0 评论 -
我为什么不建议你这样学Java
“没工作经验是不是进不了大厂?这都快金九银十了,来不及了!”在我看来,与其说工作经验,不如说是项目经验或实战经验,而“经验”往往是你拿到offer的关键。不得不说,很多人都有过这类疑问。想要进大厂的Java人很多,同时放弃的人也不少。选择中途放弃往往是因为拿下大厂Java岗没有想象中那么简单,自己的技术能力不能满足大厂要求。一方面是知识积累有要求,除了要面对数不清的资料以及繁杂的学习内容,还要知道在业务场景中哪些技术、工具、架构更受大厂企业欢迎;另一方面就是面试难,使用Java语言的程序员人数最多,原创 2021-07-29 15:48:39 · 233 阅读 · 0 评论 -
讲解JVM原理的文章铺天盖地,希望这篇足够通俗易懂
导读学习过C/C++的同学都有过这样的体验,无论实现什么样的功能,用C/C++实现时,会存在下面两个问题:内存管理:使用C/C++编程,我们必须很好地管理系统内存,如果稍有不慎,可能就会有内存溢出的风险跨平台:比如,我们用C/C++实现聊天工具,为了让该工具可以在Windows、Mac OS、Linux等多个操作系统下使用,就光网络通讯部分,我们就不得不逐个调用这些操作系统自带的库函数来实现,这个代价是很高的于是,Sun公司的大佬们决定开发Java语言,该语言使用JVM运行其编写的程序,让JVM原创 2021-07-29 14:29:52 · 184 阅读 · 0 评论 -
面试官:数据库自增 ID 用完了会咋样?
01 前言哈喽,好久没更新啦。因为最近在面试。用了两周时间准备,在 3 天之内拿了 5 个 offer,最后选择了广州某互联网行业独角兽 offer,昨天刚入职。这几天刚好整理下在面试中被问到有意思的问题,也借此机会跟大家分享下。这家企业的面试官有点意思,一面是个同龄小哥,一起聊了两个小时(聊到我嘴都干了)。他问了我一个有意(keng)思(b)问题:数据库中的自增 ID 用完了该怎么办?这个问题其实可以分为有主键 & 无主键两种情况回答。国际惯例,先上张脑图:02 有主键如果你.原创 2021-07-26 17:54:17 · 130 阅读 · 1 评论 -
被迫“内卷”的程序员,前途真的一片灰暗吗?
没有人的工作是不可取代的,如果你辞职,老板极力挽留,那就说明,你是那帮取代你的候选人当中最便宜的。而现在越来越大的生活压力下,无论是哪个行业都变得越来越“内卷”和焦虑,而什么是内卷呢?简单来说,只有一块蛋糕,怎么分大家都不会满意,就只能 “另辟蹊径”,从而陷入一种恶性竞争。有个形象比喻:看戏时前排站起来看,后排也得站起来看,最终导致全场都站起来看,否则看不着。这是一个竞争不断加码的过程,也是一个煎熬的过程,这意味着你不这样加入竞争就被淘汰出局。而在这个万物可卷的时代,程序员也没能逃离 “卷文化”,更有人评原创 2021-07-26 14:29:15 · 430 阅读 · 0 评论 -
利用Spring的aop原理实现系统级日志管理
背景之前的文章中,对日志记录做过简单的介绍。日常开发中,我们常用的日志有两种,一种是业务日志,该类型主要用于记录系统中某些业务的变化或属性的改变,比如业务流转过程中记录状态的变化或对象属性的变化,此类型主要用于查询业务轨迹使用;另一种是系统日志,主要记录方法的调用信息,比如方法名称,参数以及调用者的名称、ip、调用时间等信息。本文结合项目中的实际情况,介绍下如何使用Spring的aop原理实现系统级日志管理。核心代码1.声明系统日志切面类并交给Spring容器管理代码如下:@Aspect@Com原创 2021-07-24 21:59:09 · 157 阅读 · 0 评论 -
gson 替换 fastjson 引发的线上问题分析
前言Json 序列化框架存在的安全漏洞一直以来都是程序员们挂在嘴边调侃的一个话题,尤其是这两年 fastjson 由于被针对性研究,更是频频地的报出漏洞,出个漏洞不要紧,可安全团队总是用邮件催着线上应用要进行依赖升级,这可就要命了,我相信很多小伙伴也是不胜其苦,考虑了使用其他序列化框架替换 fastjson。这不,最近我们就有一个项目将 fastjson 替换为了 gson,引发了一个线上的问题。分享下这次的经历,以免大家踩到同样的坑,在此警示大家,规范千万条,安全第一条,升级不规范,线上两行泪。问题描原创 2021-07-23 14:00:29 · 604 阅读 · 0 评论 -
【建议收藏】毕设/私活/大佬必备,开源一个SpringBoot标准化框架
今天和大家分享一个项目,这个项目不眠不休足足肝了两天两夜,这是个什么东东呢,它是集SpringBoot+Mybatis+redis+shiro+jwt+vue于一体的标准项目框架。整个项目不涉及任何具体业务场景,只配置了一些常用功能,如:权限管理,用户管理,菜单管理等,外加redis中间件,以及很多好用的工具类(RedisUtil,Id生成器,JWt等),可以说是即拿即用,扩展性也非常强,下面就就进入主题,看看怎么使用吧。一、SpringBoot + Mybatis介绍与搭建不知道大家在开发过程中.原创 2021-07-22 17:03:17 · 1221 阅读 · 2 评论 -
「论道架构师」优雅解决历史代码中的新需求
事件起因6月中旬,可爱的产品大大给我提了一个临时需求,需要我对商品创建/更新业务中由开放平台对接而来的请求做一个Check,如果符合要求,则再做一段稍微复杂的逻辑处理。这种Easy程度的需求怎么拦得住我,不到半天我就Coding,Push一气呵成,正当我准备点一杯喜茶开始摸鱼的时候,我却收到了一封邮件。邮件里有一堆的汉字和英文,但有几个字赫然在目:您的代码已被驳回。当我经历了茫然、震惊、不敢相信、最后无奈接受的情绪转变后,问了评审的同事,为什么要驳回我的代码,他说:“历史代码一般业务都很完整(跟屎原创 2021-07-22 14:53:21 · 105 阅读 · 1 评论 -
【redis前传】zset如何解决内部链表查找效率低下|跳表构建
前言紧接前文我们学习了Redis中Hash结构。在里面我们梳理了字典这个重要的内部结构并分析了hash结构rehash的流程从而解释了为什么redis单线程还是那么快本章节我们将视角下推,继续学习Redis五大天王中的zset数据结构 ; zset是有序不重复集合其内部元素唯一且是有序的,他的排序标准是根据其内部score维度进行排序的。zset结构基本单元关于zset结构很简单,一个是我们之前学习的字典结构(简单理解成Hash结构),另外一个是跳跃表结构 ; 关于字典我们上一章节已经详细原创 2021-07-21 15:12:04 · 177 阅读 · 4 评论 -
终于理解Spring Boot 为什么青睐HikariCP了,图解的太透彻了!
前言现在已经有很多公司在使用HikariCP了,HikariCP还成为了SpringBoot默认的连接池,伴随着SpringBoot和微服务,HikariCP 必将迎来广泛的普及。下面陈某带大家从源码角度分析一下HikariCP为什么能够被Spring Boot 青睐,文章目录如下:零、类图和流程图开始前先来了解下HikariCP获取一个连接时类间的交互流程,方便下面详细流程的阅读。获取连接时的类间交互:一、主流程1:获取连接流程HikariCP获取连接时的入口是HikariDataSou原创 2021-07-21 14:59:46 · 106 阅读 · 0 评论 -
限量!Alibaba首发“Java成长笔记”,差距不止一点点
前言关于技术人如何成长的问题,一直以来都备受关注,因为程序员职业发展很快,即使是相同起点的人,经过几年的工作或学习,会迅速拉开极大的差距,所以技术人保持学习,提升自己,才能够扛得住不断上赶的后浪,也不至于被“拍死”在沙滩上。近日,经过一朋友的透露,Alibaba也首发了一份限量的“Java成长手册”,里面记载的知识点非常齐全,看完之后才知道,差距真的不止一点点!手册主要是将Java程序员按照年限来进行分层,清晰的标注着Java程序员应该按照怎样的路线来提升自己,需要去学习哪些技术点。0-1年入门:原创 2021-07-20 21:56:50 · 86 阅读 · 5 评论 -
你连对外接口签名都不会知道?有时间还是要学习学习
背景周三,18:00。小明扭了扭微微发酸的脖子,揉了揉盯着屏幕有些干涩的眼睛。终于忙完了,临近下班,整个人心也变得放松起来。“对接方需要我们提供新的服务,下周二上线,需求我发你了,很简单的。”产品经理发过来一条消息,打破了这份美好。“我可去他的吧,每次需求都是快下班就来了。”小明不免心里嘀咕了起来,不过手上可没停。“好的,我先看下需求。”回复完后,点开了需求文档,确实很简单。为外部对接方提供一个新增商户的接口。保持和内部控台新增商户一致确实不太难,小明想了想,内部控台新增商户虽.原创 2021-07-20 21:19:08 · 98 阅读 · 0 评论 -
SpringBoot技术实践-随机端口启动
一、SpringBoot随机端口1.1 基础介绍随机端口可以自动找指定范围内可使用的端口,不需要在配置文件中指定固定的启动端口例如在SpringBoot中假如需要运行多个实例,则需要单独修改配置文件比较麻烦随机端口的原理就是与对应socket端口建立连接,能连接则已被使用,反之未被使用随机获取的端口校验可使用之后通过System.setProperty("属性名称", port);写入内存,然后就可以在配置文件中获取到如果写入的名称为server.port则不用在配置文件中指定端口,否则需要配原创 2021-07-19 21:14:37 · 1027 阅读 · 0 评论 -
2021,你还在写“赤裸裸”的API吗?
前言新的项目要开始了,由于项目中涉及到和第三方厂商的接口对接,所有对接口的安全性有要求,下来我们看看如何写好一个规范的接口如何保证接口传输中数据安全保证数据安全,大家首先能想到的就是对内容进行加密。加密的话主要有两种方式,对称加密和非对称加密。1、对称加密我们先一起看一张图 可以看到,上图中采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。对称加密的强度取.原创 2021-07-19 16:26:27 · 65 阅读 · 0 评论 -
操作手册 : Stream 流处理手册 (赶紧收藏)
一 .前言Java 流这个特性已经出来很久了 , 可以大大的减少我们的代码 , 而且并行处理可以在某些场景下使用多个处理器核心可以大大的提高性能.不过 Stream 语法新手使用起来还是会有一定的难度 , 这一篇文档由浅到深看一下这个特性.这是开篇 , 只记录之前梳理的用法 , 下一篇来看源码 , 记得收藏!!!Stream 的特点Stream 不是集合 , 也不是数据结构 , 不可以保存数据Stream 有点类似于高级 的 Iterator , 可以用于算法和计算不同于迭代器 , St原创 2021-07-19 15:33:32 · 732 阅读 · 9 评论 -
号称下一代可视化监控系统,结合SpringBoot使用,贼爽
摘要当面对一个复杂的系统时,我们往往需要监控工具来帮助我们解决一些性能问题。比如之前我们使用SpringBoot Admin来监控应用,从而获取到SpringBoot Actuator暴露的指标信息。今天给大家介绍一个功能强大的监控工具Grafana,只要需要用到监控的地方,用它做可视化就对了!Grafana简介Grafana是一款开源的数据可视化和分析工具,不管你的指标信息存储在哪里,你都可以用它来可视化这些数据。同时它还具有告警功能,当指标超出指定范围时会提醒你。Prometheus简介Pr.原创 2021-07-16 11:30:09 · 2764 阅读 · 23 评论 -
crud的价值!可别瞧不起CRUD
每天清晨,上班的路上。都摆满了油条摊子。小面团一捏,油锅里一烫,用筷子稍微那么挑几下,一根屎黄色的油条就这么出炉了。就这么简单的事。每当这时,我都会盯着炸油条的师傅沉思。由于对生活保持着好奇心,我对一切事物形成的原因保持着最原始的探知需求,包括油条。在一个偶然的机会,家里剩下了一大锅油,我决定DIY一下炸油条的过程。等真正上手去做的时候,才发现炸油条并不是那么简单。我们姑且把材料和配方放在一边,仅仅是掌握火候,控制过程,都需要大费周折。最后,不是炸糊了,就是没炸熟,废了九牛二虎之力,最后还是炸了原创 2021-07-15 11:47:30 · 538 阅读 · 1 评论 -
不是所有的Spring Boot异常都能被统一异常处理 | Java Debug 笔记
通常我们在Spring Boot中设置的统一异常处理(@RestControllerAdvice配合@ExceptionHandler实现)只能处理Controller抛出的异常。有些请求还没到Controller就出异常了,而这些异常不能被统一异常捕获,例如Servlet容器的某些异常。今天我在项目开发中就遇到了一个,这让我很不爽,因为它返回的错误信息格式不能统一处理,我决定找个方案解决这个问题。ErrorPageFilter这类图相信大家没少见,Spring Boot 只要出错,体现在页面上的就是转载 2021-07-15 11:23:00 · 137 阅读 · 0 评论 -
吊炸天的 Kafka 图形化工具 Eagle,必须推荐给你!
摘要Kafka是当下非常流行的消息中间件,据官网透露,已有成千上万的公司在使用它。最近实践了一波Kafka,确实很好很强大。今天我们来从三个方面学习下Kafka:Kafaka在Linux下的安装,Kafka的可视化工具,Kafka和SpringBoot结合使用。希望大家看完后能快速入门Kafka,掌握这个流行的消息中间件!Kafka简介Kafka是由LinkedIn公司开发的一款开源分布式消息流平台,由Scala和Java编写。主要作用是为处理实时数据提供一个统一、高吞吐、低延迟的平台,其本质是基于发原创 2021-07-14 21:43:00 · 7311 阅读 · 30 评论 -
精通Spring?请吃我一狗腿!
我要是说,很多Java大牛,根本没有深入用过Spring。你可能会非常吃惊,因为Spring应用面如此广泛,特性如此之多,况且Spring、SpringBoot、SpringCloud子孙三代,多次避免了Java的衰弱,功不可没,没有理由不深入了解一下。Java能走到今天,Spring功不可没。要说Spring好,那是100个赞美之词都说不清的。夸到极致就是骂,我们只能说:Spring牛B!但为什么很多大牛很少使用Spring呢?这也是由于工作特性决定的。他们经常写一些中间件,做一些分布式引用,这个时候原创 2021-07-14 16:52:17 · 80 阅读 · 0 评论 -
拜托!面试请不要再问我Spring Cloud底层原理
一、业务场景介绍二、Spring Cloud核心组件:Eureka三、Spring Cloud核心组件:Feign四、Spring Cloud核心组件:Ribbon五、Spring Cloud核心组件:Hystrix六、Spring Cloud核心组件:Zuul七、总结概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘.原创 2021-07-14 11:49:02 · 261 阅读 · 1 评论 -
因为我从小就对Java感兴趣,所以我研究了JVM
从小我就对Java有着深厚的感情,算下来有几十年的Java经验了。当年的Java还是Sun公司的,我有着多年的Servlet经验,CURD经验,在现在已经被自我革新,转而研究人生的哲学。罢了,不吹了为了保证文章的流畅性,我决定一口气把它写完。因为相关方面的培训做的多了,就不需要在写的时候参考资料、翻源代码。掐指一算,本文一个小时没花掉,但篇幅已经较长了。长了,那就割断。本篇就定为内存排查的上篇,主要讲一些原理。为什么要讲原理?开车还需要了解汽车结构么?这还真不能相比。汽车很少坏,出了问题你会花钱给拖原创 2021-07-13 15:09:27 · 73 阅读 · 2 评论 -
吃透这份“腾讯限量版”Java架构笔记,要个40k不过分吧
前言本以为两三天就能搞定这篇文章,现在才知道是我想得太天真了,从构思到整理资料差不多用了一个星期的时间,现在也是终于搞定了。我看很多人都说想要一份系统化的学习路线,现在它终于来了!!!整个路线概括了目前一线互联网企业主流的应用技术,从点到面一应俱全,带着大家看看,我们需要学些啥,我甚至还收集配套视频和资料供大家学习。本期Java知识笔记dl方式:正文梳理知识点,是快速提升技术的关键前面讲过,快速提升自己的技术硬实力其实是有方法的。大致就是梳理知识点+夯实基础+进阶深入学习+实战,下面我会一原创 2021-07-13 10:09:14 · 115 阅读 · 15 评论 -
程序员是如何内卷死其它程序员的?同事:兄弟求你别作妖了,要不然我们拔刀相见
我这,应该不算卷吧?公司规定10点上班,我7点就到工位,不要问我为什么,我只是热爱工作,喜欢待在公司,这样我就能在每位同事来上班的时候,和他说一句早上好,当然其中也有我的上司。每次开会的时候,别人都是拿个小本本发言,而我是一份20页的 PPT,不敢写太长,怕别人说我装,PPT里面会有各种高级术语,赋能闭环抓手不在话下,而且我会配以流程图、时序图、脑图等各种图表来说明事情,因为都说一图胜千言嘛。什么?你说是真的不是公司规定这样做的吗?当然不是,都是我自愿的,我没别的意思,只是觉得这是应该的。我还特翻译 2021-07-12 09:48:46 · 241 阅读 · 0 评论 -
一款阿里开源解析excel框架“easy-excel“
前言又写bug呢?当我们线上遇到bug的时候,可能需要修复数据,那么这时候怎么办呢?你很慌了,打开离线表一顿猛之后,得到了一份要修复的数据,然后写了一段修复脚本,准备发布修复一下时候,这时候问题来了,怎么解析数据呢,加载这份数据到内存里,然后依次读取修复吗?太慢啦。这里介绍一款阿里开源解析excel框架 easy-excel。是什么这里引用下官方的介绍Java解析、生成Excel比较有名的框架有Apache、poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的AP原创 2021-07-11 20:50:12 · 716 阅读 · 1 评论 -
字节大佬问我TopK,我反手来一句我这有几种解法,您想要哪种?
我说想要解决TopK问题,首先的话,你需要去熟练掌握两种排序算法,①、快速排序,②、堆排序。快速排序快速排序的基本思想:先从数列中取出一个数作为基准数分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边(或者相反,根据需要升序还是降序来)再对左右区间重复第二步,直到各区间只有一个数import java.util.Arrays;public class sorts { public static void quickSort(int[] arr, int原创 2021-07-09 17:22:07 · 86 阅读 · 0 评论 -
面时莫慌 | 你好,谈谈对Synchronized的理解?
这一篇文章来谈谈实现synchronized的锁升级之轻量级锁。重量级锁上一小节讲到了两个线程竞争锁资源,未获取到锁资源的线程在自旋策略范围内未获取到锁资源,轻量级锁就会升级成重量级锁,这个重量级就是真正的锁,它是一个互斥锁,加锁和解除锁资源都非常消耗资源。那么这个锁到底在哪儿,具体是什么样的呢?锁在哪儿当锁升级成重量级锁后,最明显的变化是锁对象的Markword的锁标记变为10,指向的内容变为指向一个监视器对象Monitor。这个监视器对象是如何实现互斥锁的呢?我们写一段代码来验证一下。publ原创 2021-07-09 17:11:35 · 88 阅读 · 0 评论 -
1年6 个月13天,从外包到拿下阿里offer,没想到屌丝也能有今天
开篇介绍个人背景:不说太多废话,但起码要让你先对我有一个基本的了解。本人毕业于浙江某二本院校,算是科班出身,毕业后就进了一家外包公司做开发,当然不是阿里的外包,具体什么公司就不透露了,在外包一呆就呆了整整2年多,直到现在才从外包离开,如今拿到阿里的offer准备入职了。阐述原因:在外包公司的两年里,作为一名菜鸡,确实非常合格,技术没什么长进,眼见也没有提升,没规划没未来,让人实在焦虑,之所以开始改变自己也是家庭发生了变故,才让自己开始思考人生。身边很多人感叹过,能从外包逆袭,算是传奇,所以今天想要分原创 2021-07-08 10:25:58 · 174 阅读 · 2 评论 -
程序员如何高效提高代码质量?拥有代码洁癖的人必看(阿里巴巴Java开发手册终极版)
前言人跟人的能力千差万别,所以写出来的代码质量,肯定是不同的。有的人,写一个小逻辑,可能需要100行,而有的人,可能仅仅需要10行。代码永远会有Bug,在这方面没有最好只有更好。模块化与面向对象是实现高效无错代码的方法。高效无错代码需要思想与实践的不断反复。如何做到代码高效无错,提高代码质量的方法有哪些?又有哪些经验和技巧呢?一、代码质量软件是交付给用户,并由用户体验的产品;代码则是对软件正确且详细的描述,所以代码质量关系到软件产品的质量。虽然软件质量不等于代码质量,但是代码上的缺陷会严重的影响到软件原创 2021-07-07 18:33:02 · 266 阅读 · 0 评论 -
八零后月薪56K老程序员感慨人生的起起伏伏,跳槽居然没地方让我跳!
高薪也有高薪的烦恼,意味着跳槽的机会也变少了。就像金字塔的顶端一样,越往上走,机会也就越少了,这在程序员圈子比较普遍。月薪三万以下随便跳槽,能开得起这样薪资的公司很多,但如果薪资超过三万,机会就变得很少,就像下面这名八零后高薪程序员所感慨的一样:月薪五万多,想要跳槽看看机会,却发现没有地方可去了,突然发现中年危机已到。无独有偶,在该职场论坛,一些大厂的老员工也表示想要跳槽,却发现很少能有公司开出匹配的薪资。特别是那些在大公司工作了好几年的老员工,虽然工资不一定是最高的,但年终奖,股票期权分红加起来,远远原创 2021-07-06 16:26:06 · 1614 阅读 · 1 评论 -
知乎热搜,最全1184页Spring全家桶面试资料库,学习完大厂offer随你挑
前言Spring 框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶。毋庸置疑,Spring 早已成为 Java 后端开发的行业标准,无数的公司选择 Spring 作为基础的开发框架,大部分Java 后端程序员在日常工作中也会接触到 Spring。很多研发人员把 Spring 看作心目中最好的 Java 项目,没有之一。所以这是重点也是难点,工作中必须会,面试时肯定考。Spring 面试题(一)1、一般问题1.1、不同版本的 Spring Framework 有哪些主要原创 2021-06-29 14:46:18 · 740 阅读 · 17 评论 -
「扫盲」Elasticsearch
前言不知道大家的公司用Elasticsearch多不多,反正我公司的是有在用的。平时听同事们聊天肯定避免不了不认识的技术栈,例如说:把数据放在引擎,从引擎取出数据等等。如果对引擎不了解的同学,就压根听不懂他们在说什么(我就是听不懂的一位,扎心了)。引擎一般指的是搜索引擎,现在用得比较多的就是Elasticsearch。这篇文章主要是对Elasticsearch一个简单的入门,没有高深的知识和使用。至少我想做到的是:以后同事们聊引擎了,至少知道他们在讲什么。什么是Elasticsearch?[E原创 2021-06-23 17:21:53 · 79 阅读 · 0 评论 -
JAVA|一步一步带你看清,关于ThreadLocal内存溢出代码演示和原因分析!
ThreadLocal 翻译成中文是线程本地变量的意思,也就是说它是线程中的私有变量,每个线程只能操作自己的私有变量,所以不会造成线程不安全的问题。线程不安全是指,多个线程在同一时刻对同一个全局变量做写操作时(读操作不会涉及线程不安全问题),如果执行的结果和我们预期的结果不一致就称之为线程不安全,反之,则称为线程安全。在 Java 语言中解决线程不安全的问题通常有两种手段:1.使用锁(使用 synchronized 或 Lock);2.使用 ThreadLocal。锁的实现方案是在多线程写入全局.原创 2021-05-26 09:25:05 · 545 阅读 · 10 评论 -
终极指南:提高Nginx服务器硬度的12个技巧
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。 也许你听过以上关于Nginx的美妙的事情,您可能已经很喜欢它了,正在考虑如何提高Nginx服务器的安全性,稳定性,或者您考虑把Apache替换成Nginx,那么本篇文章非常适合您继续看下去。本文将介绍用.原创 2021-05-25 11:39:53 · 263 阅读 · 0 评论 -
【Redis 干货领域】帮你完全搞定 Cluster 原理(实践篇)
集群的搭建Redis 的下载、安装、启动(单实例)下载 redis 压缩包,然后解压压缩文件, 我们统一将 Redis 下载在/opt 目录下进入到解压缩后的 redis 文件目录(此时可以看到 Makefile 文件),编译 redis 源文件;执行命令如下$ cd /opt$ wget http://download.redis.io/releases/redis-4.0.9.tar.gz$ tar zxvf redis-4.0.9.tar.gz$ cd redis-4.0.9$ ma原创 2021-05-24 16:53:07 · 87 阅读 · 0 评论