自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码上暴富

真诚做人,认真做事, 你想要的,岁月都会给你。

  • 博客(95)
  • 资源 (3)
  • 收藏
  • 关注

原创 拼多多大数据开发工程师SQL实战解析

不久前,裸考国内知名电商平台拼多多的大数据岗位在线笔试,问答题(写SQL)被虐的很惨,完了下来默默学习一波。本文以一个笔试题为线索,穿插了基本的SQL语法,也涉及到高级的自定义变量和实现排名,希望帮助到找实习、找工作的同学。

2019-03-25 09:43:18 3873 11

原创 从单机到分布式微服务,大文件校验上传的通用解决方案

本文将结合我的工作实战经历,总结和提炼一种从单体架构到分布式微服务都适用的一种文件上传和校验的通用解决方案,形成一个完整的方法论。本文主要解决手段包括多线程、设计模式、分而治之、MapReduce等,虽然文中使用的编程语言为Java,但解决问题和优化思路是互通的,适合有一定开发经验的开发者阅读,希望对大家有帮助

2024-03-18 08:54:21 580

原创 我的2023--即将30岁的程序员,不得不说的那些怨念

作为一个即将年满30岁的程序员,如果用一句话总结我自己的2023年,这句话应该是什么?这个问题还真把我难住了。这一年是百感交集啊。纠结良久,我打算这样来总结我的2023:平凡而满意的生活,累而不得的工作,再次起航的写作生涯,当然还有焦虑而迷茫的未来。篇中更多是我的怨念总结,各位看官别见笑啊!

2024-03-04 07:50:09 472

原创 FMEA:总监和架构师都在用的高可用架构分析方法

记得之前准备春晚项目的时候,团队成员在一起过架构,老板最常问的问题是“这个组件挂了怎么办?有什么影响?”,我当时还在心里默默嘀咕:这咋都这么容易挂呢?其他组件不做高可用的吗?最近看到FMEA,我恍然大悟:哦,这原来不就是 FMEA 吗?原来是我“有眼无珠,识不得真神啊”!

2024-01-29 08:55:43 1079

原创 ConcurrentModificationException日志关键字报警引发的思考

本文将记录和分析日志中的ConcurrentModificationException关键字报警,还有一些我的思考,希望对大家有帮助。

2023-12-11 08:11:37 74

原创 6张图表 + 1个案例 带你入门tcpdump的使用和原理

本文通过6张图表 + 1个实战案例,带你轻松入门tcpdump的使用和原理,希望对大家有用!

2023-06-24 22:20:11 454

原创 我的2022——有点卷、没学习、还羊了

夜幕下的北京,迎来全新的一年,屏幕前的我,又到了该做年终总结的时候了。我的2022——有点卷、没学习、还羊了……

2023-02-10 23:38:40 515

原创 花1分钟配置远程DEBUG,开发效率翻倍,妹子直呼绝绝子

当把一个工程部署到远程服务器后有可能出现意想不到错误,日志打印过多或者过少都影响问题排查的效率,这个时候可以通过远程调试的方式快速定位bug,提升工作效率。本文主要讲解如何使用Idea开发工具进行远程调试,希望对你有帮助。

2023-02-10 15:50:58 687

原创 一文精通HashMap灵魂七问,你学还是不学

如果让你看一篇文章,就可以精通HashMap,成为硬刚才面试官的高手,你学还是不学

2022-06-26 12:43:52 249

原创 MySQL数据迁移报错1067 - Invalid default value for ‘xxx‘

本文使用Navicat解决MySQL数据迁移时候的报错1067 - Invalid default value for 'xxx'。

2021-02-20 11:17:01 1314 2

原创 设计模式:如何优雅地使用责任链模式

责任链模式(Chain of Responsibility Pattern)在《Head First设计模式》一书中被称为“剩下的模式”,其实使用也是蛮多的。最近在学习Netty的过程中用到了责任链模式,在此反过头来重温一下责任链模式。本文教你如何优雅地使用责任链模式。

2020-07-25 19:16:04 406

原创 Spring Boot使用AOP的正确姿势

一、为什么需要面向切面编程?面向对象编程(OOP)的好处是显而易见的,缺点也同样明显。当需要为多个不具有继承关系的对象添加一个公共的方法的时候,例如日志记录、性能监控等,如果采用面向对象编程的方法,需要在每个对象里面都添加相同的方法,这样就产生了较大的重复工作量和大量的重复代码,不利于维护。面向切面编程(AOP)是面向对象编程的补充,简单来说就是统一处理某一“切面”的问题的编程思想。如果使用AOP的方式进行日志的记录和处理,所有的日志代码都集中于一处,不需要再每个方法里面都去添加,极大减少了重复代码。二

2020-07-22 22:56:57 4144

原创 分布式任务调度平台XXL-JOB快速搭建教程

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。它的有两个核心模块,一个模块叫做调度中心,另外一个模块叫做执行器,它把任务调度和任务执行分成两个部分。本文从准备工作、搭建“调度中心”、搭建“执行器”三个步骤进行快速搭建。

2020-07-12 21:26:42 692

原创 【亲测管用】解决IDEA控制台Tomcat Localhost Log和Catalina Log乱码

本文通过修改配置文件解决IDEA控制台Tomcat Localhost Log和Catalina Log乱码问题。

2020-07-06 19:52:40 745

原创 使用Host和Nginx把自定义域名映射到本地

在真实的线上环境中,一个网站需要域名和公网IP才可以访问。在本地代码调试的时候,可以利用系统提供的hosts文件来设置一个虚拟的域名,并利用Nginx将域名解析到指定的IP地址和端口。

2020-07-05 21:05:52 2330

原创 我的2019——菜鸟互联网找实习和工作记录

2019在干什么,在实习和找工作的旋律中飞快度过。说起这段历程,肯定首先是感谢。感谢在此过程中遇到的每家公司和每一个人,感谢给我机会的每家公司,有你们的认可,我觉得我还是有价值的;也要感谢拒绝我的公司,谢谢你们曾经看轻我,是你们的拒绝和不屑,鞭策我继续努力。第一份实习过完年回来学校,三月份开始准备找实习。师兄建议先找小公司练手,所以就投了一些小公司,但是吧,没有收到面试邀请,可能是自己菜,可能...

2019-12-31 20:50:30 426

原创 Python网络爬虫——Appuim+夜神模拟器爬取得到APP课程数据

随着生产力和经济社会的发展,现在已经进入内容付费的时代。得到APP便是其中的代表作,本文用于爬取得到APP的课程数据,包括课程名称、作者、单价、学习人数等数据,可作为一个爬取APP数据的demo进行分享。

2019-10-27 16:58:08 1901

原创 用代码说话:如何在Java中实现线程

并发编程是Java语言的重要特性之一,“如何在Java中实现线程”是学习并发编程的入门知识,也是Java工程师面试必备的基础知识。本文从线程说起,然后用代码说明如何在Java中实现线程。

2019-08-28 22:12:47 358

原创 用代码说话:synchronized关键字和多线程访问同步方法的7种情况

synchronized关键字在多线程并发编程中一直是元老级角色的存在,是学习并发编程中必须面对的坎,也是走向Java高级开发的必经之路。一、synchronized性质synchronized是Java提供的内置锁机制,有如下两种特性:互斥性:即在同一时间最多只有一个线程能持有这种锁。当线程1尝试去获取一个由线程2持有的锁时,线程1必须等待或者阻塞,知道线程2释放这个锁。如果线程2永远...

2019-08-24 16:59:48 294

原创 RabbitMQ(四):使用Docker构建RabbitMQ高可用负载均衡集群

本文使用Docker搭建RabbitMQ集群,然后使用HAProxy做负载均衡,最后使用KeepAlived实现集群高可用,从而搭建起来一个完成了RabbitMQ高可用负载均衡集群。受限于自身条件,本文使用VMware虚拟机的克隆功能克隆了两台服务器进行操作,仅作为一个demo,开发中可根据实际情况进行调整。

2019-08-03 19:52:07 607

原创 RabbitMQ(三):RabbitMQ与Spring Boot简单整合

RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。Spring Boot的兴起,极大地简化了Spring的开发,本文将使用Spring Boot与RabbitMQ进行简单整合,实现生产和消费消息。

2019-08-03 19:50:23 356

原创 RabbitMQ(二):RabbitMQ高级特性

RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。作为一名合格的开发者,有必要了解一下相关知识,《RabbitMQ(一):RabbitMQ快速入门》已经入门RabbitMQ,本文介绍RabbitMQ的高级特性。

2019-08-03 19:48:48 146

原创 RabbitMQ(一):RabbitMQ快速入门

RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。作为一名合格的开发者,有必要对RabbitMQ有所了解,本文是RabbitMQ快速入门文章,主要内容包括RabbitMQ是什么、RabbitMQ核心概念、常用交换器类型、用Docker安装RabbitMQ等。

2019-08-03 19:46:46 377

原创 CentOS 7安装和配置HAProxy

本文记录在CentOS 7环境下使用源码安装的方式安装HAProxy。HAProxy简介HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很...

2019-07-19 20:34:52 4779 4

原创 使用Docker部署Spring Boot项目

本文使用Docker部署Spring Boot项目。部署之前需要环境中已经安装Docker和Maven(用于打包),所以本文先进行安装Docker和Maven;接着搭建一个Spring Boot项目,使其支持Docker部署;最后进行部署和测试。

2019-06-24 19:33:01 7766 1

原创 一文快速入门Docker

Docker提供一种安全、可重复的环境中自动部署软件的方式,拉开了基于与计算平台发展方式的变革序幕。如今Docker在互联网公司使用已经非常普遍。本文用十分钟时间,带你快速入门Docker。

2019-06-22 09:17:21 301

原创 Xshell6 连接本地VMware中的CentOS 7

之前在本机安装了VMware虚拟机软件,并且安装了CentOS 7系统。经过一段时间的使用,发现在本机和虚拟机直接的切换不是很方便,或者说很不方便,比如说使用wget命令从某网站下载一个压缩包,一长串的网址,稍有不慎就会输入错误,作为程序员的你,是不是跟我一样,总是有Ctrl+C和Ctrl+V的冲动?然而,这个时候,Ctrl按键貌似不听话,总是不起作用,复制不过去,气不气?!今天,再一次遇到了...

2019-06-17 21:18:07 1527

原创 Linux(CentOS 7)安装JDK踩坑记录

CentOS7安装JDK 1.8踩坑记录——五个步骤轻松搞定JDK安装和环境变量的配置

2019-06-17 21:00:41 502

转载 OpenJDK和JDK区别

今天在CentOS7中安装JDK的时候,在网上看了一些教程,教程里面都说要先删除CentOS自带了OpenJDK,我就很好奇,为什么一定要删除呢?究竟什么是OpenJDK?有什么作用呢?和正式的JDK有什么不同呢?

2019-06-16 23:18:11 133899 8

原创 Spring Boot整合Mybatis完成级联一对多CRUD操作

在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能。关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾[Spring Boot整合Mybatis并完成CRUD操作],这是本文操作的基础。本文先准备一个测试的数据库,然后使用MyBatis Generator进行部分代码自动生成,再以一个例子来展示稍微高级点的操作:使用Mybatis完成级联一对多的CRUD操作。

2019-06-06 15:50:16 1176

原创 反射——Java高级开发必备知识

反射是Java开发中一个非常重要的概念。在运行状态中,对于任意一个类,都能都知道这个类所有的属性和方法;对于任意个对象,都能够调用它的任一个方法和属性;这种动态获取信息以及动态调用对象的方法的功能称为Java的反射机制。本文主要记录Class类的使用,方法和成员变量的反射,以及通过反射了解集合泛型的本质等知识。

2019-05-31 23:41:19 144

原创 Maven面试必备

Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

2019-05-21 15:53:48 193

原创 贪心算法习题讲解

实验室的算法课程,今天轮到我给师弟师妹们讲贪心算法,顺便也复习一下。贪心算法这个名字听起来唬人,其实通常是比较简单的。虽然通常贪心算法的实现非常容易,但是,一个问题是否能够使用贪心算法,是一定要小心的。本文课通过LeetCode的一些习题,我们来回顾一下贪心算法。

2019-05-21 15:42:14 1602 1

原创 如何手写JDK锁

手写JDK锁需要三个步骤:手写一个类MyLock,实现Lock接口重写lock()方法重写unlock()方法代码:public class MyLock implements Lock { //线程的原子操作类 AtomicReference<Thread> owner = new AtomicReference<>();...

2019-04-24 22:22:40 281

原创 如何优雅地手写单例模式

单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。正是因为简单,也成为面试中的众矢之的。本文来手写单例模式。

2019-04-22 20:02:36 763

原创 来聊一聊不low的Linux命令——find、grep、awk、sed

前几天面试,被一位面试官嫌弃了“你的Linux命令有点low”。说心里话,还是挺感激的,因为很少有面试官会指出我的简历上出现的问题。所以呢,今天就来聊一聊不low的Linux命令——搜索文件的find命令、搜索文件内容的grep命令、对文件内容进行统计的awk命令、批量替换文件内容的sed命令。

2019-04-15 20:57:54 235

原创 我们一起来排序——使用Java语言优雅地实现常用排序算法

排序算法——最基础的算法,互联网面试必备技能。春来来了,排序的季节来了!本文使用Java语言优雅地实现常用排序算法,希望对大家有帮助,早日拿到Offer!

2019-04-02 17:12:58 178

转载 在MySQL中实现Rank高级排名函数【转】

MySQL中没有Rank排名函数,当我们需要查询排名时,只能使用MySQL数据库中的基本查询语句来查询普通排名。尽管如此,可不要小瞧基础而简单的查询语句,我们可以利用其来达到Rank函数一样的高级排名效果。

2019-03-22 15:03:48 147

原创 从源码解读线程(Thread)和线程池(ThreadPoolExecutor)的状态

线程是比进程更加轻量级的调度执行单位,理解线程是理解并发编程的不可或缺的一部分;而生产过程中不可能永远使用裸线程,需要线程池技术,线程池是管理和调度线程的资源池。因为前不就遇到了一个关于线程状态的问题,今天就趁热打铁从源码的层面来谈一谈线程和线程池的状态及状态之间的转移。

2019-03-14 09:03:23 522

原创 计算机网络面试核心梳理

计算机网络是互联网企业研发岗面试的基础,本人针对一些面试经验和网络上的资料对本部分内容进行了复习和简单的梳理,希望对大家有帮助。

2019-03-10 22:07:56 537

EncodingDetect.java

检测文件编码类型的工具类,用Java语言描述,如有需要请下载。不知道积分怎么越来越高,已经违背了本人分享的初衷,没有积分的可到博客评论留下邮箱

2019-01-09

Java命令行实现日历工程

java实现简单日历,有两种模式,模式一输入年月日,输出星期;模式二输入年和月,输出这个月的日历。

2017-12-05

Maven实战笔记

国内第一本公开出版的Maven专著,Juven Xu亲自执笔,适合所有Java程序员阅读。

2017-12-04

空空如也

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

TA关注的人

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