摘要: RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。作为一名合格的开发者,有必要对RabbitMQ有所了解,本文是RabbitMQ快速入门文章,主要内容包括RabbitMQ是什么、RabbitMQ核心概念、常用交换器类型、用Docker安装RabbitMQ等。 阅读全文
posted @ 2019-07-20 11:00 James_Shangguan 阅读(168221) 评论(1) 推荐(29) 编辑
摘要: 本文使用Docker部署Spring Boot项目。部署之前需要环境中已经安装Docker和Maven(用于打包),所以本文先进行安装Docker和Maven;接着搭建一个Spring Boot项目,使其支持Docker部署;最后进行部署和测试。 阅读全文
posted @ 2019-06-24 19:29 James_Shangguan 阅读(20006) 评论(1) 推荐(2) 编辑
摘要: Docker提供一种安全、可重复的环境中自动部署软件的方式,拉开了基于与计算平台发展方式的变革序幕。如今Docker在互联网公司使用已经非常普遍。本文用十分钟时间,带你快速入门Docker。 阅读全文
posted @ 2019-06-22 09:13 James_Shangguan 阅读(1051) 评论(0) 推荐(0) 编辑
摘要: 在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能。关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Mybatis并完成CRUD操作,这是本文操作的基础。本文先准备一个测试的数据库,然后使用MyBatis Generator进行部分代码自动生成,再以一个例子来展示稍微高级点的操作:使用Mybatis完成级联一对多的CRUD操作。 阅读全文
posted @ 2019-06-06 15:45 James_Shangguan 阅读(1695) 评论(0) 推荐(0) 编辑
摘要: Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。 阅读全文
posted @ 2019-05-21 15:35 James_Shangguan 阅读(6101) 评论(2) 推荐(2) 编辑
摘要: 单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。正是因为简单,也成为面试中的众矢之的。本文来手写单例模式。 阅读全文
posted @ 2019-04-22 20:00 James_Shangguan 阅读(1829) 评论(0) 推荐(0) 编辑
摘要: 前几天面试,被一位面试官嫌弃了“你的Linux命令有点low”。说心里话,还是挺感激的,因为很少有面试官会指出我的简历上出现的问题。所以呢,今天就来聊一聊不low的Linux命令——搜索文件的find命令、搜索文件内容的grep命令、对文件内容进行统计的awk命令、批量替换文件内容的sed命令。 阅读全文
posted @ 2019-04-15 20:56 James_Shangguan 阅读(2013) 评论(2) 推荐(1) 编辑
摘要: 排序算法——最基础的算法,互联网面试必备技能。春来来了,排序的季节来了!本文使用Java语言优雅地实现常用排序算法,希望对大家有帮助,早日拿到Offer! 阅读全文
posted @ 2019-04-02 17:10 James_Shangguan 阅读(840) 评论(1) 推荐(1) 编辑
摘要: 不久前,裸考国内知名电商平台拼多多的大数据岗位在线笔试,问答题(写SQL)被虐的很惨,完了下来默默学习一波。本文以一个笔试题为线索,穿插了基本的SQL语法,也涉及到高级的自定义变量和实现排名,希望帮助到找实习、找工作的同学。 阅读全文
posted @ 2019-03-25 09:19 James_Shangguan 阅读(3688) 评论(2) 推荐(0) 编辑
摘要: 在工作中常会遇到将数据分组排序的问题,如在考试成绩中,找出每个班级的前五名等。 在orcale等数据库中可以使用partition语句来解决,但在mysql中就比较麻烦了。本文就是专门解决这个问题的。 阅读全文
posted @ 2019-03-23 18:21 James_Shangguan 阅读(543) 评论(0) 推荐(0) 编辑
摘要: MySQL中没有Rank排名函数,当我们需要查询排名时,只能使用MySQL数据库中的基本查询语句来查询普通排名。尽管如此,可不要小瞧基础而简单的查询语句,我们可以利用其来达到Rank函数一样的高级排名效果。 阅读全文
posted @ 2019-03-22 14:59 James_Shangguan 阅读(605) 评论(0) 推荐(0) 编辑
摘要: 线程是比进程更加轻量级的调度执行单位,理解线程是理解并发编程的不可或缺的一部分;而生产过程中不可能永远使用裸线程,需要线程池技术,线程池是管理和调度线程的资源池。因为前不久遇到了一个关于线程状态的问题,今天就趁热打铁从源码的层面来谈一谈线程和线程池的状态及状态之间的转移。 阅读全文
posted @ 2019-03-14 09:00 James_Shangguan 阅读(870) 评论(0) 推荐(1) 编辑
摘要: 计算机网络是互联网企业研发岗面试的基础,本人针对一些面试经验和网络上的资料对本部分内容进行了复习和简单的梳理,希望对大家有帮助。 阅读全文
posted @ 2019-03-10 21:59 James_Shangguan 阅读(2720) 评论(0) 推荐(1) 编辑
摘要: 二叉树天然的递归特性,使得我们可以使用递归算法对二叉树进行遍历和重建。之前已经写过LeetCode二叉树的前序、中序、后序遍历(递归实现),那么本文将进行二叉树的重建,经过对比,会发现二者有着许多相似之处。 阅读全文
posted @ 2019-02-27 11:26 James_Shangguan 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 本文用递归算法实现二叉树的前序、中序和后序遍历,提供Java版的基本模板,在模板上稍作修改,即可解决LeetCode144. Binary Tree Preorder Traversal(二叉树前序遍历),94. Binary Tree Inorder Traversal(二叉树中序遍历),145. Binary Tree Postorder Traversal(二叉树后序遍历)。 阅读全文
posted @ 2019-02-27 11:13 James_Shangguan 阅读(1510) 评论(0) 推荐(1) 编辑
摘要: 本文将介绍Redis持久化的两种方式:快照持久化和AOF持久化,并对两种方法进行分析和对比,方便在实际中做出选择。 阅读全文
posted @ 2019-02-20 09:28 James_Shangguan 阅读(4514) 评论(0) 推荐(3) 编辑
摘要: 本文介绍基于Java语言的Redis客户端——Jedis的使用,包括Jedis简介、获取Jedis、Jedis直连、Jedis连接池以及二者的对比的选择。 阅读全文
posted @ 2019-02-03 21:50 James_Shangguan 阅读(785) 评论(0) 推荐(0) 编辑
摘要: 本文将从Redis简介、Redis特性回顾、Redis安装、Redis典型应用场景四部分进行介绍Redis,读完本文,你将会对Redis的特性和功能有初步的了解。 阅读全文
posted @ 2019-01-30 17:45 James_Shangguan 阅读(643) 评论(0) 推荐(1) 编辑
摘要: 本文在 Java线程面试题 Top 50的基础上,对部分答案进行进行了整理和补充,问题答案主要来自《Java编程思想(第四版)》,《Java并发编程实战》和一些优秀的博客,当然还有我个人的拙见,添加部分大多用不同颜色进行了区别以方便阅读。 阅读全文
posted @ 2019-01-21 10:07 James_Shangguan 阅读(7031) 评论(0) 推荐(2) 编辑
摘要: JPA要求每一个实体必须有且只有一个主键,而@GeneratedValue提供了主键的生成策略,这就是@GeneratedValue注解存在的意义。本文将浅析@GeneratedValue的源码。 阅读全文
posted @ 2019-01-07 10:50 James_Shangguan 阅读(2378) 评论(0) 推荐(0) 编辑