自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 基于Java基础-面向对象实现植物大战僵尸简易版

基于Java基础-面向对象实现植物大战僵尸简易版前言游戏设计游戏对象游戏内容游戏优化放置植物的优化移除植物的优化游戏可玩性的优化添加游戏背景音乐后续优化源码分享前言从零开始学习的Java的第一个月,在面向对象(OOP)的学习中,跟着讲师完成了飞机大战的游戏编码。第二个月开始接触API,心血来潮便结合API中的集合、多线程开始植物大战僵尸的编码,从游戏模式的设计到游戏内容的实现大约花费2个礼拜的...

2019-03-31 15:15:44 22210 822

原创 RocketMQ引发的磁盘预警复盘

一个从软件排查到硬件的RocketMQ问题

2022-12-10 18:29:27 1472 2

原创 对于redis持久化的一些思考

生活和工作无非就是,学习,发现问题,思考,解决问题。

2022-11-01 17:28:58 962

原创 工作三年做了什么,还想做什么

忆苦思甜

2022-01-22 17:34:45 860

原创 Clickhouse入门上手

中间件是生活,大数据是工作

2021-11-06 17:42:07 1136

原创 美团CAT 踩坑记录和项目集成

你想能到的东西,百分之九十九都已经有人实现了。

2021-08-22 17:26:59 875

原创 分布式异常日志追踪设计和demo

先造个轮子,在学习好的轮子怎么造

2021-08-14 16:48:45 513

原创 项目复盘和面试总结

前人种树,后人乘凉,前人挖坑,后人填坑。

2021-07-26 17:19:47 1062 2

原创 RocketMQ原理源码分析之消息发送

精通,不是为了面试,而是为了个人品牌

2021-07-15 17:01:01 642 3

原创 RocketMQ原理源码分析之路由注册

站着巨人的肩膀上,取其精华,去其糟粕

2021-06-14 17:07:53 382 1

原创 解决RocketMQ延时消息失效的问题

解决RocketMQ延时消息失效的问题前言问题的排查解决方案总结前言先说一下使用场景,RocketMQ客户端使用的是阿里云的<dependency> <groupId>com.aliyun.openservices</groupId> <artifactId>ons-client</artifactId> <version>1.8.0.Final</version> </dependency&

2021-05-24 16:19:08 5031 10

原创 关于抢购活动技术方案的一些思考(修订版)

怎么又又又有客诉了?

2021-02-10 15:13:22 2481 4

原创 工作两年的回头看和向前走

工作两年的回头看和向前走

2021-01-21 21:07:21 663 1

原创 说说nacos客户端的随机权重算法

说说nacos客户端的随机权重算法nacos简介随机权重算法总结nacos简介作为Spring Cloud Alibaba的核心组件,nacos完美替代了Spring Cloud中的注册中心eureka和配置中心Spring Cloud config。nacos集服务发现与配置管理为一体,不仅是更加优秀的UI、更方便的可视化操作,还有在支持AP的同时,可通过指令切换成CP模式,使得不少使用Zookeeper的项目也加入到了nacos的大家庭。随机权重算法nacos和eureka相同的是都借用了ri

2020-11-27 16:19:30 1477

原创 最近在Java上踩的坑

写在即将转正之期

2020-08-25 08:29:00 508

原创 近期的面试准备和面试经验

三线小城市的面经

2020-05-30 17:49:49 358

原创 从零搭建微服务(Springboot + SpringCloud)

从零搭建微服务(Springboot + SpringCloud)及相关分布式组件介绍

2020-05-07 17:48:46 1008

原创 手写ArrayList

手写ArrayList大家都知道ArrayList的底层实现是一个动态数组,以及有基本的增删查API,手写一个ArrayList来做简单的实现。首先是基本的属性和构造方法,这里先不考虑负载因子和自动扩容。ArrayList的新增是这样的,比如对原有数组执行add(3)时当然,这是最简单的尾部新增,ArrayList的API里面还有一个是指定位置的新增元素,这个会稍微复杂一点,步骤大概如...

2020-04-19 09:43:20 477

原创 Java实现邮件发送功能

Java实现邮件发送功能1.引入依赖2.封装邮件实体3.实现发送功能4.注意事项1.引入依赖2.封装邮件实体3.实现发送功能import org.apache.commons.lang3.StringUtils;import org.apache.commons.mail.EmailException;import org.apache.commons.mail.HtmlEmail...

2020-03-11 15:12:14 348

原创 工作第一年的所见所闻所学所想

工作第一年的所见所闻所学所想前言所见所闻所学前言2018年8月30开始学习JAVA,2019年1月21日正式入职。我是一个十分自信的人,凭借着在培训班期间融会贯通所教的飞机大战,写出了植物大战僵尸,很轻松的拿下offer,但当时我的技术也仅限于此。对框架不够熟悉,不会Lunix指令,没有钻研过源码,甚至连SVN、Nginx都没用过,对于数据库的操作还仅仅是CMD的操作行。于是在入职培训的第一周...

2020-01-21 22:07:05 864 2

原创 JAVA导入文件超时问题

JAVA导入文件超时问题前言解决问题的思路根据业务数据定制代码前言业务的临时需求,需要开发一个订单EXCEL导入的功能,从开发到上生产差不多是5天。在SIT环境上,导入400条数据大概是1分钟,于是和客户沟通的是100条数据随便导,但在UAT环境却发现100条数据导入超时的情况。由于数据的导入涉及多库多表的存储,所以对几个核心的feign接口都打上了日志,重新发了版UAT,发现在对主数据做校验...

2019-12-27 10:26:11 3465 4

原创 实现读取配置文件转换成SQL进行转存

实现读取配置文件转换成SQL进行转存实现原理通过postman发起请求,上传需要导入的配置文件和指定的参数,后台通过流进行解析,拼接成SQL执行,最后将数据导入到数据库的配置表中。核心的思路还是通过用流进行读取文件,解析成key-value的形式,最后使用JDBC插入数据库。需要源码的可以留下邮箱。...

2019-11-08 11:07:37 1145 2

原创 说一说用Jenkins部署微服务踩过的坑

说一说用Jenkins部署微服务踩过的坑前言实践总结前言先说背景。原本项目的UAT环境和PRD环境分别部署在4台机器上,还未做集群。现在莫名其妙的需求来了,要在UAT的4台服务器上,再部署一套SIT环境。抱怨一句,这个需求一看就是不懂技术的人提的,在稳定UAT的环境上,在新增一套环境,先不考虑复杂的配置以及内存是否足够,先说风险,万一部署出问题了,破坏了原本稳定的UAT的环境那真是得不偿失。在...

2019-11-07 15:54:03 1471

原创 老生常谈的SpringBoot约定大于配置是如何实现的?

老生常谈的SpringBoot约定大于配置是如何实现的?别小看@SpringBootApplication@EnableAutoConfiguration@Conditional派生注解别小看@SpringBootApplicationSpringBoot的启动类头上都会带着@SpringBootApplication注解。先来看看@SpringBootApplication里面有什么。包括...

2019-10-20 17:57:46 1631

原创 用代码来说29种业务场景下的29种设计模式

用代码来说21种业务场景下的21种设计模式六大原则单一职责原则依赖倒置原则里氏替换原则接口隔离原则迪米特原则六大原则单一职责原则概念:一个接口只做一件事优点类的复杂性降低,实现什么职责都有清晰明确的定义可读性提高,复杂性降低可维护性提高,可读性提高变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的实现类有影响,对其他的接口无影响,...

2019-09-30 21:38:03 1878

原创 git和Jenkins的联动部署

git和Jenkins的联动部署前言git相关的问题git和Jenkins的联动部署总结前言先说一下背景。刚接手了一下新项目,架子是SpringBoot+SpringCloud,但从业务的角度来看,微服务的划分做的并不好,过细的划分使得开发起来十分繁琐,熟悉项目结构就需要一段时间,用同事的话来说就是,强行微服务。吐槽完了来说一下遇到的问题。项目原本使用SVN和Jenkins来管理版本和发布版本...

2019-09-02 08:26:05 589

原创 从源码分析为什么ArrayList查询快,LinkedList增删快,HashMap线程不安全

从源码分析为什么ArrayList查询快,LinkedList增删快,HashMap线程不安全1.ArrayList为什么查询快,增删慢呢?2.LinkedList的快速增删是如何实现的?3.HashMap和ConcurrentHashMap1.ArrayList为什么查询快,增删慢呢?一说到ArrayList和LinkedList,相信大家都知道查询的场景用ArrayList,需要经常增删的...

2019-08-23 17:16:55 1817

原创 我眼里的Dubbo和SpringCloud

我眼里的Dubbo和SpringCloud前言什么是微服务技术的选型DubboSpringCloud总结前言接触Java即将一年,工作半年多了。经历过Dubbo的项目,现在做的是SpringCloud的项目。在微服务成为最潮流技术的时代,下文将从微服务的概念开始,谈谈自己对两个微服务主流框架的理解。什么是微服务先看看业界的大牛是怎么定义微服务的马丁福勒的论文 https://martin...

2019-08-10 17:47:18 419

原创 从阿里开发规范中学习高并发

从阿里开发规范中学习高并发前言创建线程和线程池的规范如何使用锁注意事项前言阿里巴巴的开发规范中有一章是专门讲述如何优雅的处理并发的。其中对于如何保证线程安全、如何正确的创建线程池等都有更深层次的讲解。下面用代码结合理论来说说我自己的理解。创建线程和线程池的规范1.创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。public class TimerTaskThread exten...

2019-07-17 18:26:40 772

原创 Lunix常用指令-记第一次部署服务器Nginx+Redis集群

Lunix常用指令-记第一次部署服务器Nginx+Redis集群前言Lunix常用的指令Nginx配置Redis集群部署总结前言帅气的技术总监说过,Lunix指令是初级开发和中级开发的分水岭。在第一次部署服务器之前,我对于Lunix的操作仅仅限于查看日志。当技术总监找到我,问我有没有兴趣挑战一下部署服务器,我兴奋得不行,连忙点头答应。对于未知的挑战全凭着初生牛犊不怕虎的勇气,却万万没想到第一次...

2019-05-12 16:59:06 417

原创 MySQL的索引是如何提高查询效率的?

MySQL的索引是如何提高查询效率的?一.索引是什么?二.MySQL中存储索引用的是什么结构?三.为什么要用B+树?一.索引是什么?索引是数据库中用来提高查询效率的技术,类似于目录。如果不使用索引,数据会零散的保存在磁盘块中,查询数据需要挨个遍历每一个磁盘块,直到找到数据为止,使用索引后会将磁盘块以树桩结构保存,查询数据时会大大降低磁盘块的访问数量,从而提高查询效率。如果表中的数据很少,使用索...

2019-04-14 16:05:41 3795 2

原创 Java解决买汽水、斐波那契数列、组合排序问题

如何用Java解决买汽水、斐波那契数列、组合排序问题?1.经典汽水问题2.斐波那契数列求和问题3.排列组合问题1.经典汽水问题题目一:一瓶汽水两块钱,两个瓶身可以换一瓶汽水,三个瓶盖也可以换一瓶汽水。在不考虑赊账的前提下,20块钱能买多少瓶汽水?解题思路:这是我在学习Java中遇到的第一个递归问题。先解释一下递归,递归就是在满足条件的情况下,在方法中再次调用本方法,从而形成循环,因此递归一定...

2019-04-05 16:20:33 624

Java植物大战僵尸简易版源代码

Java植物大战僵尸简易版源代码分享,欢迎各位下载交流优化。代码为本人原创,如需转载请经本人同意。

2019-03-31

空空如也

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

TA关注的人

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