自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 离职了,聊聊面试官最在意的一个点

今日分享开始啦,请大家多多指教~很多人说程序员是最容易实现财富自由的职业,也确实,比如字节 28 岁的程序员郭宇不正是从普通开发一步步做起的吗?回归行业现状,当开发能力可以满足公司业务需求时,拿到超预期的 Offer 并不算难。最近我也一直在思考这个问题,提升 Java 核心能力最快、最有效,短期内升职加薪的进大厂、拿期权的方法,到底是什么?首先,你需要跳出日常工作,接触更有深度、更前沿的顶级项目。一个简单的逻辑:大厂之所以能够给到高于行业水准的薪资,正是因为即使是普通开发人员,也要应对很多复杂的场景

2021-05-11 13:31:14 152 1

原创 阿里又要发布一个逆天的开源框架了!

今日分享开始啦,请大家多多指教~我想说:12306极其牛(最佩服设计这套算法和系统的人)牛逼主要有以下三点:所销售商品极其复杂(SKU极多)商品和商品之间、横跨全国的渠道之间,都相互干涉访问量极大据铁科院首席研究员、12306技术部主任单杏花介绍,2020年春运期间,12306在高峰日网络点击量高达1495亿次。也就是说,12306在高峰日平均1秒就要承受170多万次点击,大概相当于每个中国人每天在12306上点击了100次。12306面临的流量压力,可想而知,“即便是百度,也很难有这样

2021-05-11 13:14:59 258

原创 使用MySQL,请用好 JSON 这张牌!

今日分享开始啦,请大家多多指教~关系型的结构化存储存在一定的弊端,因为它需要预先定义好所有的列以及列对应的类型。但是业务在发展过程中,或许需要扩展单个列的描述功能,这时,如果能用好 JSON 数据类型,那就能打通关系型和非关系型数据的存储之间的界限,为业务提供更好的架构选择。当然,很多同学在用 JSON 数据类型时会遇到各种各样的问题,其中最容易犯的误区就是将类型 JSON 简单理解成字符串类型。但当你看完这篇文章后,会真正认识到 JSON 数据类型的威力,从而在实际工作中更好地存储非结构化的数据。J

2021-05-10 14:21:34 1736 4

原创 程序员都知道的二维码扫码登录的底层原理

今日分享开始啦,请大家多多指教~在日常生活中,二维码出现在很多场景,比如超市支付、系统登录、应用下载等等。了解二维码的原理,可以为技术人员在技术选型时提供新的思路。对于非技术人员呢,除了解惑,还可以引导他更好地辨别生活中遇到的各种二维码,防止上当受骗。二维码,大家再熟悉不过了:购物扫个码,吃饭扫个码,坐公交也扫个码。在扫码的过程中,大家可能会有疑问:这二维码安全吗?会不会泄漏我的个人信息?更深度的用户还会考虑:我的系统是不是也可以搞一个二维码来推广呢?这时候就需要了解一下二维码背后的技术和逻辑了!

2021-05-09 17:42:19 1168

原创 现在还不会Spring Boot?千万别说你是搞Java的

今日分享开始啦,请大家多多指教~是Java成就了Spring Boot,还是Spring Boot成就了Spring?相信广大程序员们都有所感受,开发项目的时候(JavaEE)仅仅使用Spring逐渐变得笨重起来,大量的XML文件存在与项目中,繁琐的配置,整合第三方框架的配置问题,低下的开发效率和部署效率等等问题。这些问题在不断的社区反馈下,Spring团队也开发出了相应的框架:Spring Boot。Spring Boot可以说是至少近5年来Spring乃至整个Java社区最有影响力的项目之一,也被

2021-05-08 13:28:53 98

原创 3天,把MySQL索引、锁、事务、分库分表撸干净了!

今日分享开始啦,请大家多多指教~现在面试很多候选人都是有点儿回答问题不落地,拿面试最常问的MySQL来说,并不只是懂“增删改查”、表关联就万事大吉了。千万条数据,走索引还是慢,怎么解决?千万级数据,分库分表怎么做?主从延迟怎么解决?这些关于实践以及底层的问题会是面试时区分你和竞争者的一个关键指标,同时也会对我们的实际工作产生真正价值。我们服务于业务,问题的根源也在于业务量极大或者场景复杂,面对这样的状况,我们需要清楚解决的基本逻辑。拿MySQL优化来说,主要分4个方向:SQL语句跟索引、表

2021-05-08 13:17:34 74

原创 又涨了!2021 年 5 月程序员工资统计新鲜出炉,网友:还是Java程序员牛逼~

今日分享开始啦,请大家多多指教~一下数据仅仅是粗略统计的,可以看看是否和自己的城市一样。2021 年 5 月全国招收程序员 429056 人。2021 年 5 月全国程序员平均工资 14926 元,工资中位数 13000 元,其中 96% 的人的工资介于 1750 元到 75000 元。城市南京的工资已经连续两个月超过广州了,苏州也快赶上来了。根据上面的数据我们发现算法工程师是最赚钱的;以上仅代表个人看法哈!今日份分享已结束,请大家多多包涵和指点!...

2021-05-08 13:03:07 720

原创 阿里二面,支付系统构建?被 Spring 难倒了!

今日分享开始啦,请大家多多指教~Spring Boot 已经成为 Java 程序员必须掌握技术之一。当下大部分公司的主流技术栈是 Spring Boot 2.X,包括爆火的微服务等都是基于 Spring Boot 开发的。Spring Boot 这么重要,那你在项目中可以熟练运用吗?如果你有手机,有支付购物的需求,那么不可避免的使用到支付宝与微信两大支付应用。普通人只是支付,但是作为与支付系统、功能开发的后端工程师来说,这里却有不少值得思考的问题。基础服务的构建在支付系统的微服务架构中,基础服务的构

2021-05-07 13:45:37 130

原创 JDK 16 新特性,已发布!程序员:追不上了……

今日分享开始啦,请大家多多指教~3 月 17 日,Java 开发工具包(JDK)16 正式发布,主要包含了工具,内存管理等 17 项功能迭代,不过它只是一个短期支持版本,将在今年 9 月被更新的 Java 17 (LTS)版本淘汰。基本每 3 个程序员里,就有 1 个用 Java 作为主要语言,Java 程序员的竞争程度自然不用多说。很多大型互联网厂商的系统并发量轻松过百万,作为一个 Java 工程师,你必须熟练掌握并发编程,才有更多的机会获得大厂青睐。比如:Java 里的 synchronized

2021-05-07 13:36:08 88 1

原创 从设计角度,深入分析 Spring 循环依赖的解决思路

今日分享开始啦,请大家多多指教~Spring 的循环依赖已经被说烂了,可能很多人也看吐了。但很多说的还是不够清楚,没有完整的表达出 Spring 的设计目的。只介绍了 What ,对于 Why 的介绍却不太够。本文会从设计角度,一步一步详细分析 Spring 这个“三级缓存”的设计原则,说说为什么要这么设计。Bean 创建流程Spring 中的每一个 Bean 都由一个BeanDefinition 创建而来,在注册完成 BeanDefinition 后。会遍历BeanFactory中的 beanDe

2021-05-07 13:27:50 128

原创 【SpringSecurity系列】自定义认证逻辑

今日分享开始啦,请大家多多指教~有小伙伴会说,自定义认证逻辑还不简单?是的,没错,无论是添加登录验证码还是修改登录数据库格式,都需要对认证逻辑作出调整。之前我们自定义的一个核心思路就是自定义过滤器,在过滤器中做各种各样我们想做的事。举一个简单的例子,在添加登录验证码中,我为了校验验证码就自定义了一个过滤器,并把这个自定义的过滤器放入 SpringSecurity 过滤器链中,每次请求都会通过该过滤器。但实际上,只需要登录请求经过该过滤器即可,其他请求是不需要经过该过滤器的,这个时候,大家是不是就发现弊

2021-05-06 14:58:18 289

原创 Spring Boot 中这个默认视图名有点意思,看懂直呼内行内行!

今日分享开始啦,请大家多多指教~在 Spring Boot 项目中,有的时候我们想返回一段 JSON,结果却忘了写 @ResponseBody 注解,像下面这样:@Controllerpublic class HelloController { @GetMapping("/01") public void hello() { System.out.println("01"); }}这个时候当项目跑起来,肯定会报错,具体报什么错,则要看用的什么视图解析器,如

2021-05-06 14:40:46 682 2

原创 40 图|我用 M1 玩转 SpringCloud

今日分享开始啦,请大家多多指教~开源 Spring Cloud 项目 PassJava 一直是在 Windows 和 Ubuntu 上运行,最近换 Mac M1 了么,想把这个项目在 M1 上也跑起来,体验下 M1 的性能!因为 M1 的兼容性不好,所以从 0 开始跑这个项目的时候遇到了很多问题,比如 MySQL 工具经常打不开,前端 Vue 项目起不来,所以专门针对这些疑难杂症,我也做好了记录,相信对使用 M1 的同学有所帮助,另外想学习 Spring Cloud 的同学也可以参照我的开源项目学起来~

2021-05-05 17:50:06 432 1

原创 在二线城市,我是这样学习 MySQL的!

今日分享开始啦,请大家多多指教~跟面试官聊,发现一个普遍想象,不少候选人,对数据库的认知,还处在比较基础的阶段,以为会写“增删改查”、做表关联就足够了,那些工作中经常出现的问题,却支支吾吾答不上来,比如:count(*) 慢该如何解决?对于千万级的大表,MySQL 要怎么优化?SQL 使用 Join 好,还是多次 Select 好?1000 多万条数据,建了索引还是慢,该怎么办?仔细想想,当初在用 MySQL 的过程中,遇到的问题也是五花八门,从开发技巧到管理维护,从性能问题到安全问题。第一

2021-05-04 16:49:41 70

Redis 分布式锁|从青铜到钻石的五种演进方案

今日分享开始啦,请大家多多指教~本地加锁的方式在分布式的场景下就不适用了,所以本文我们来探讨下如何引入分布式锁解决本地锁的问题。本篇所有代码和业务基于我的开源项目 PassJava。本篇主要内容如下:一、本地锁的问题首先我们来回顾下本地锁的问题:目前题目微服务被拆分成了四个微服务。前端请求进来时,会被转发到不同的微服务。假如前端接收了 10 W 个请求,每个微服务接收 2.5 W 个请求,假如缓存失效了,每个微服务在访问数据库时加锁,通过锁(synchronzied 或 lock)来锁住自己的线程

2021-05-03 17:34:37 229

原创 你知道java gc垃圾回收是什么吗?白话介绍,小白都能看得懂!

今日分享开始啦,请大家多多指教~gc是java区别于其他好几门语言(c/c++)的一个代表功能(当然也有很多可以自动管理内存的语言,如所有的脚本语言,你根本不知道内存管理这回事)!当然,之所以要把c/c++和java相比,是因为java出现的初衷即是对标c++的缺点的。不管怎么样,gc让程序员gg们不用痛苦地管理内存,这是好事!回归正题,gc是什么?网上有大片的讲解,但大多显得高深莫测,云里雾里,我想换个角度来讲讲这事。小白:Garbage Collect 垃圾回收(内存),是一种自动管理内存的一种

2021-05-02 17:44:53 107

原创 Java编程中,有哪些好的习惯从一开始就值得坚持?

今日分享开始啦,请大家多多指教~1.规范化自己的代码,少点个人风格,多点通用规矩,并学会使用CheckStyle工具。其实任何东西我们都希望它能够“自动化”,随着编程经验的提升,大部分编程规范你已经了然于心,但是实际操作的时候,又总是忘这忘那,我们希望一个工具来帮我们自动检测我们的程序是否是符合规范,结构良好的。事实上,任何语言都是有自己的编程规范的,编程规范的制定,十分有利于代码的阅读和潜在Bug风险的降低,比如在Java中,有严格的命名规范:对于类(Class)的命名,有这样的规范:类的名字必

2021-05-01 16:25:10 71

原创 工作四年,分享50个让你代码更好的小建议

今日分享开始啦,请大家多多指教~前言50个让你代码更好的小建议,汇总一下。希望大家日常写代码多点思考,多点总结,加油!同时哪里有不对的,也望指出,感谢哈~1. 仅仅判断是否存在时,select count 比 select 具体的列,更好。我们经常遇到类似的业务场景,如,判断某个用户userId是否是会员。「(反例):」 一些小伙伴会这样实现,先查从用户信息表查出用户记录,然后再去判断是否是会员:<select id="selectUserByUserId" resultMap="Bas

2021-04-30 15:11:00 125

原创 都为你整理好了,Java 各种随机方式对比!不看后悔!

目录1. Math.random() 静态方法2. java.util.Random 工具类3.java.util.concurrent.ThreadLocalRandom 工具类4. java.Security.SecureRandom5. 随机字符串今日分享开始啦,请大家多多指教~1. Math.random() 静态方法产生的随机数是 0 - 1 之间的一个 double,即 0 <= random <= 1。for (int i = 0; i < 10; i++) {

2021-04-29 14:32:32 100

原创 场景+案例分析,SQL优化这么做就对了!

目录前言SQL优化一般步骤场景分析今日分享开始啦,请大家多多指教~前言在应用开发的早期,数据量少,开发人员开发功能时更重视功能上的实现,随着生产数据的增长,很多SQL语句开始暴露出性能问题,对生产的影响也越来越大,有时可能这些有问题的SQL就是整个系统性能的瓶颈。如果有不同意见,欢迎留言指正,一起学习!SQL优化一般步骤1、通过慢查日志等定位那些执行效率较低的SQL语句2、explain 分析SQL的执行计划需要重点关注type、rows、filtered、extra。type由上至下,效

2021-04-29 14:07:31 54

原创 深入浅出多线程调优,看完你就懂

今日分享开始啦,请大家多多指教~我问你,你用多线程是为了啥,不就是为了提高一下性能嘛,难不成是为了玩?多线程就类似N个工人『同一时间』去干同一件事情,比一个人『同一时间』去干快N倍。但是吧,如果你使用的不合理的话,可能就要被拉去祭天了,哈哈。下面我给大家列举一下可能会造成多线程性能问题的点:死锁过多串行化过多锁竞争切换上下文内存同步然后分别解析一下,以上的性能隐患。一、死锁:关于死锁,我们在学习操作系统的时候就知道它产生的原因和危害,这里就不从原理上去累述了,可以从下面的代码和图

2021-04-29 13:16:45 200

原创 饿了么EMonitor演进史

今日分享开始啦,请大家多多指教~序言时间回到2008年,还在上海交通大学上学的张旭豪、康嘉等人在上海创办了饿了么,从校园外卖场景出发,饿了么一步一步发展壮大,成为外卖行业的领头羊。2017年8月饿了么并购百度外卖,强强合并,继续开疆扩土。2018年饿了么加入阿里巴巴大家庭,与口碑融合成立阿里巴巴本地生活公司。“爱什么,来什么”,是饿了么对用户不变的承诺。饿了么的技术也伴随着业务的飞速增长也不断突飞猛进。据公开报道,2014年5月的日订单量只有10万,但短短几个月之后就冲到了日订单百万,到当今日订单上千

2021-04-28 15:36:48 293

原创 MySQL主从复制的原理是什么?

今日分享开始啦,请大家多多指教~一.主从复制的方式一主一从主主复制一主多从—扩展系统读取的性能,因为读是在从库读取的;多主一从—5.7开始支持联级复制二.用途及条件1.mysql主从复制用途实时灾备,用于故障切换读写分离,提供查询服务备份,避免影响业务2.主从部署必要条件:主库开启binlog日志(设置log-bin参数)主从server-id不同从库服务器能连通主库三.主从原理mysql主从复制原理从库生成两个线程,一个I/O线程,一个SQL线程;i

2021-04-28 15:07:32 99

原创 硬核|定时任务的10种实现方案,满足你的不同需求!

今日分享开始啦,请大家多多指教~很多人问业务场景,要用什么样的定时任务。确实,在不用的业务场景下要用不同的定时任务,其实我们的选择还是挺多的。今天给大家总结10种非常实用的定时任务,总有一种是适合你的。一. linux自带的定时任务crontab不知道你有没有遇到过这种场景:有时需要临时统计线上的数据,然后导出到excel表格中。这种需求有时较为复杂,光靠写sql语句是无法满足需求的,这就需要写java代码了。然后将该程序打成一个jar包,在线上环境执行,最后将生成的excel文件下载到本地。为了

2021-04-27 14:17:21 735

原创 我把Java反编译了给你解析三大常量池,面试官主动为你加薪

文章目录class常量池运行时常量池字符串常量池总结Integer缓存总结常量池的内存分布问题今日分享开始啦,请大家多多指教~在很多在面试的过程中,只要我们在日常的工作中,做足充分的准备,在面试之前,多深入的学习一下一些基础的知识,我想对于你想要的那个薪资,你就会更近一步。当然了,结果是肯定很明显的了,这里就不多说什么了,今天的主角是常量池,上面三大常量池,我会按照面试官的需求,直接反编译,然后给大家看一下具体的实现原理。class常量池我们都知道,在大学最一开始学Java的时候,都是文本操作,J

2021-04-27 13:25:02 246

空空如也

空空如也

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

TA关注的人

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