自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

诗与远方的博客

更多好文请关注公众号”慕容千语“

  • 博客(96)
  • 收藏
  • 关注

原创 最实用的 SQL 语句收藏,程序员看完这篇就够了!

前言文章沿着设计一个假想的应用 awesome_app 为主线,从零创建修改数据库,表格,字段属性,索引,字符集,默认值,自增,增删改查,多表查询,内置函数等实用 SQL 语句。收藏此文,告别零散又低效地搜索经常使用的 SQL 语句。所有 SQL 都在 MySQL 下通过验证,可留着日后回顾参考,也可跟着动手一起做,如果未安装 MySQL 可参考 《macOS 安装 mysql》 (windows 安装大同小异)。1. 创建1.1 创建数据库语法:create database db_name示.

2021-05-22 21:32:04 20200 27

原创 年前刷完了这份足足485页的“1000道Java工程师面经”,成功上岸!

本人18年毕业于一家普通二本,考研裂开了且没有实习经验,只做过两个项目会一点SpringBoot,每天就是不断地投简历、刷面经,感觉自己都要抑郁了,最后勉强进入了一家学校合作的互联网公司干了3年的CRUD,每个月拿着4-5000地薪水还要被迫接受996,感觉未来没有希望。在去年的金九银十中看着自己的同学跳槽涨薪拿着月薪14k+的薪水,我决定做出改变,离开这里!刚开始准备地时候其实并不轻松,感觉自己的技术层面还停留在3年前刚毕业的时候,对于当前互联网企业的技术栈一概不通,每天上班在学习,下班也在学习,不断地

2021-05-20 16:01:50 21360 80

原创 蓦然回首,十余年的程序员生涯最后就只剩下了这些!希望我犯过的错误你不要再犯!

前言蓦然回首,本人已经加入互联网企业十年有余,十年光阴一晃即逝,这十年中我获得了很多,技术能力、培训、出国、大公司的经历,还有很多很好的朋友。但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的程序员,可惜我错过了,我用这五年时间和很多程序员一样在困惑和迷茫中找不到出路!幸好!我后来遇到了这两本书!《Java核心技术卷1基础知识原书第10版》《Java核心技术卷2基础知识原书第10版》这两本书在我后面的职业生涯中帮助到了我很多,让我从中获取了很多的知识,帮助我在工作中解

2021-03-03 15:08:52 7532 16

原创 炸裂!这份阿里P8大佬手写“Java核心技能精选”惨遭疯抢!

前言本次很荣幸能够邀请这位阿里P8的大佬为我们整理了这份 “JAVA 核心面试知识点”,这份资料就比较厉害了,它几乎涵盖了所有的Java核心知识点,并且融入了大佬自己的一些经验和思想!文档涵盖知识:面试必问的:Java基础、高并发、多线程、分布式、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat等等知

2021-03-01 20:52:29 11937 26

原创 年度Java学习进阶大作,Java程序员的宝藏文章!你想要的Java进阶中高级知识点大合集我都有!

目录容器线程池乐观锁与悲观锁AtomicAQSJVMJDK 监控和故障处理工具类文件结构类加载过程类加载器HTTPS中的TLS从认识Linux操作系统开始初探Linux&Linux文件系统概览Linux基本命令数据结构MySQLRedis系统设计常用框架认证授权分布式Dubbo消息队列RabbitMQKafkaAPI网关分布式ID4种限流算法Zookeeper如何设计一个高可用系统?Spring Cloud两大必会工具Java学习路线和方法推荐容器ArrayList核心源码分析、经典Demo线

2021-01-14 10:31:49 2012 27

原创 利用Spring的aop原理实现系统级日志管理

日常开发中,我们常用的日志有两种,一种是业务日志,该类型主要用于记录系统中某些业务的变化或属性的改变,比如业务流转过程中记录状态的变化或对象属性的变化,此类型主要用于查询业务轨迹使用;另一种是系统日志,主要记录方法的调用信息,比如方法名称,参数以及调用者的名称、ip、调用时间等信息。本文结合项目中的实际情况,介绍下如何使用Spring的aop原理实现系统级日志管理。核心代码1.声明系统日志切面类并交给Spring容器管理代码如下:@Aspect@Componentpublic class Sys

2021-07-24 11:23:44 396

原创 Redis之父实名认证“Redis实战文档”,你拥有了嘛?

《Redis实战文档》将是一份把读者带入Redis世界、向读者指明正确方向从而避免常见陷阱的文档。我认为《Redis实战文档》对于Redis的生态系统非常有帮助,Redis 的用户应该都会喜欢这份文档。——Salvatore Sanfilippo,“Redis之父”

2021-07-23 15:12:49 1669 14

原创 拿来吧你!原来我们之前都搞错了,Tomcat就该这么学才对!

Apache Tomcat作为著名的Servlet容器实现以及轻量级Java应用服务器,是Apache软件基金会的顶级项目。它开源、轻量,与JBoss、Weblogic 等企业级应用服务器相比,占用资源小,扩展性好,深受Java研发人员喜爱,尤其是在当前主流的基于POJO ( Without EJB )的轻量级编程方式下构建应用系统。除此之外,Apache Tomcat还可以很容易与Apache Http Server、Nginx等知名的Web服务器集成,以实现负载均衡和集群化部署。所有这些特性都使.

2021-07-21 14:37:49 2552 21

原创 浅析分布式主从架构下数据一致性问题

主从架构常见的主从架构,即为一主多从,常见的读写策略为写主读从,并由主节点写日志并通过网络传输来维护从节点的数据库状态,但是这个常见的策略会产生一系列的分布式数据一致性问题。通常我们使用主从架构,主要是处于以下几个目的:提高服务的容错性,即使一个节点崩溃了,还存在多个节点可以对外提供服务;提高服务的响应速度与QPS,存在多个冗余节点可以对外提供服务,自然会降低响应的延迟与提高服务的承受能力;常见的使用策略为CDN,通过在全国各地部署服务器,使得用户可以通过请求最靠近自身的服务器而无需跨较远距离访问

2021-07-18 23:08:38 875 1

原创 面试官:浅析微服务下保证事务数据一致性的几种方案

1. 从本地事务到分布式事务的演变如依赖mysql的传统的单体式应用可以通过mysql基于锁+MVCC实现本地事务的ACID特性对上层应用提供一致的数据视图,而不会因为多个事务并发读写而产生脏读、脏写、更新丢失等问题;本文会贯穿一个相对简单的创建订单的业务场景进行讨论:存在一个订单服务-OrderService,通过createOrder()对外提供创建订单的功能;依赖ConsumerService的consumerVerify()进行消费者信用额度的扣除,如果余额>订单金额,则创建成功,否

2021-07-17 20:43:51 1438 1

原创 什么是真正的架构设计?十年Java经验让我总结出了这些,不愧是我

一. 什么是架构和架构本质在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。 此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。Linux有架构,MySQL有架构,JVM也有架构,使用Java开发、MySQL存储、跑在Linux上的业务系统也有架构,应该关注哪一个?想要清楚以上问题需要梳理几个有关系又相似的概念:系统与子系统、模块与组建、框架与架构:1

2021-07-13 16:31:18 205 4

原创 手把手教你,从零开始实战搭建SpringCloud Alibaba!这份笔记太牛了!

Spring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案,是阿里巴巴开源中间件与 Spring Cloud 体系的融合。

2021-07-12 14:11:59 3445 38

原创 SpringCloudGateway手动编写路由规则对请求进行转发

SpringCloudGateway手动编写路由规则对请求进行转发这篇文章主要是提供一种转发路由的代码实现方式,之前说的gateway都是使用配置文件来对请求进行路由,这样虽然很简单,但是不够灵活,如果后端对应很多服务实例,网关想要根据自己的规则来转发请求,比如编写不同的负载均衡策略,做一些特别的权重,以及在运行过程中动态的变更转发地址,这些用配置文件来做都不够灵活,没法自由的定义规则。涉及的gateway版本 <dependency> <groupI

2021-07-11 20:44:21 390

原创 关于Spring Cloud Gateway与下游服务器的连接分析

最近面试了不少同学,有很大一部分简历上会提到网关,我一般都会顺着往下问他们的网关是怎么做的。基本上都是说直接使用的Spring Cloud Gateway或者基于Spring Cloud Gateway二次开发。这种时候我会继续问一个比较基础的问题:Spring Cloud Gateway作为网关,会把接收到的请求转发给下游服务,那么Spring Cloud Gateway跟下游的服务之间保持的是长连还是短连?还是说每次转发的时候都会新建立一个连接吗?

2021-07-10 20:52:14 1492 4

原创 领略设计模式的魅力,谈谈组合模式搭配访问者模式

组合模式(composite)我们都知道文件和文件夹的概念,并且文件是可以存放在文件夹中,文件夹中也可以存放其他文件夹。需要设计一个简单的程序来实现文件夹和文件的关系。实现思路文件夹需要存放文件夹和文件,首先想到的是在文件夹中设计两个集合分别来存放文件夹和文件。有展示文件路径需求时,不清楚在最里层是文件夹还是文件,所以需要把文件夹和文件当做一个对象来处理会更好,都是条目。所以需要创建一个他们共同的父类。对文件夹的设计优化,创建一个集合容器,容器类型是父类,即解决了既要存放文件夹又要存放文件的问题

2021-07-08 19:39:25 287 1

原创 前方高能预警!阿里大佬出品“Spring实战学习笔记”震撼来袭!

Spring框架已经成为Java开发人员的必备知识,而且Spring 3引入了强大的新特性,例如SpEL、Spring 表达式语言、loC 容器的新注解以及用户急需的对REST的支持。无论你是刚刚接触Spring还是被 Spring 3.0的新特性所吸引,这份笔记都是掌握Spring的最佳选择。

2021-07-05 15:42:25 230 10

原创 注意,不能错过的CAS+volatile实现同步代码块

前言:最近看到有人说可以使用 CAS + volatile 实现同步代码块。心想,确实是可以实现的呀!因为 AbstractQueuedSynchronizer(简称 AQS)内部就是通过 CAS + volatile(修饰同步标志位state) 实现的同步代码块。并且ReentrantLock就是基于AQS原理来实现同步代码块的;ReentrantLock源码学习和了解AQS原理可以参考:带你探索ReentrantLock源码的快乐今天,咱们就通过 CAS + volatile 实现一个 迷你

2021-07-03 20:36:14 439

原创 一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式

前言有时候我们需要在应用启动时执行一些代码片段,这些片段可能是仅仅是为了记录 log,也可能是在启动时检查与安装证书 ,诸如上述业务要求我们可能会经常碰到Spring Boot 提供了至少 5 种方式用于在应用启动时执行代码。我们应该如何选择?本文将会逐步解释与分析这几种不同方式CommandLineRunnerCommandLineRunner 是一个接口,通过实现它,我们可以在 Spring 应用成功启动之后 执行一些代码片段@Slf4j@Component@Order(2)public

2021-07-03 20:34:09 152

原创 跳槽神器!阿里巴巴内部出品“Spring全线笔记”,不止是全家桶,理论与实战结合

对于每一位Java开发人员来说,提起Spring定是不陌生的,实际上自Spring框架诞生以来,就备受开发者的青睐,基本上现在的互联网公司都要使用到Spring框架。Spring框架中又包含了SpringMVC、SpringBoot、SpringCloud等,被开发者称呼为Spring全家桶。

2021-07-01 14:07:34 212 3

原创 面试又被问懵了吗?不如把ThreadLocal拆开了揉碎看看

前言1.为什么用 ThreadLocal?所谓并发,就是有限资源需要应对远超资源的访问。解决问题的方法,要么增加资源应对访问;要么增加资源的利用率。 所以,相信这年头做开发的多多少少,都会那么几个“线程二三招”、“用锁五六式”。 那所带来的就是多线程访问下的并发安全问题。 共享变量的访问域跨越了原始的单线程,进入了千家万户的线程眼里。谁都可以用,谁都可以改,那不就打起来了吗? 因此,防止并发问题的最好办法,就是不要多线程访问(这科技水平倒退二十年~)。ThreadLocal 顾名思义,将一个变量限制为“

2021-06-30 16:16:47 186 2

原创 Docker 环境运行 Mysql 和开启 Binlog 配置主从同步

同一服务器模拟利用 Docker 模拟 Mysql 设置的主从同步设置。1、运行起来两个 Mysql :masterMysql(主库)、slaveMysql(从库),数据库版本 5.7。#拉取镜像docker pull mysql:5.7#y运行主、从容器docker run -p 13306:3306 --name slavemysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7docker run -p 13307:3306 --name maste

2021-06-30 13:47:08 299 2

原创 凡人修仙传!大专毕业3年,我从月薪3k的码农变成大厂的Java架构师!

三年前我从一所大专毕业,成绩不上不下,专升本失败,出去面试处处碰壁,在学长的帮助下进入了一家小公司,月薪3k,觉得前途无望,即将回老家进厂!

2021-06-29 10:53:22 649 10

原创 亲自动手绘图——红黑树,我不信还手撕不清楚

前言红黑树是自平衡的二叉查找树,在许多地方都有实际应用比如JAVA的HashMap,在链表长度大于8就会转化为红黑树;在linux经典的epoll中也使用了红黑树来保存文件描述符的插入删除操作。如果频繁地对数据进行插入删除,还要保证效率,使用红黑树是比较好的选择。红黑树在实际表现上,还是一颗二叉树。在许多性质上和二叉树一样,所以要从二叉树查找开始讲起。二叉查找树二叉查找树是最简单的实现,规定左子节点一定小于右子节点。插入情况只需要对当前节点比大小,不断的递归直到遇到空节点插入。查询和插入相同,不

2021-06-27 23:11:46 176 1

原创 一文带你玩转 Redis 的 RESP 协议 !

RESP 是 Redis 客户端与 Redis 服务器相互通信时使用的一个协议, 全称 REdis Serialization Protocol ,即 redis 串行协议,通俗易懂,也表明了 redis 的特点,串行化(单线程)

2021-06-26 10:55:14 287

原创 Java十九个技术栈常见面试题分享(附答案解析)

Java 基础: 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?不对,两个对象的 hashCode()相同,equals()不一定 true。代码示例:String str1 = "通话"; String str2 = "重地"; System.out.println(String.format("str1:%d | str2:%d", str1.hashCode(),str2.hashCode())); System.out.println(str1.equ

2021-06-24 10:33:12 926 9

原创 我说这是新手入门最好的RabbitMQ学习笔记,谁赞成谁反对?

能够看这篇文章的你或许还在为如何学习RabbitMQ而烦心,或者你正在学习RabbitMQ,这份RabbitMQ学习笔记从入门到进阶到实战,全方面带你解析学习RabbitMQ,可以说是十分完美了!

2021-06-23 12:08:06 191 13

原创 22岁985/211高校毕业的你,请抓好Java程序员的黄金五年!

在Java程序员之间流传着一句话:“黄金五年”!那就是从程序员入职开始算起前五年的一个工作选择,直接影响了你整个职业生涯的一个发展和你的薪资的一个走向!

2021-06-22 10:56:18 243 3

原创 惨遭腾讯面试官吊打高并发系统设计,回来学习2400小时后成功复仇!

去年的金九银十,我和大多数的同行一样加入了升职涨薪的潮水,我早在2个月前就开始准备,我觉得自己在技术方面完全没有问题,于是这两个月我每天在公司摸鱼2小时,回家刷2小时,前前后后刷了几千到面试题,Leetcode也刷了100多道!说实话我在去面试腾讯的时候我一点都不紧张,甚至有点开心,毕竟自己马上就要实现大厂梦了,甚至已经把租房选好了!前两面都没什么问题,第三面的时候我和往常一样信心满满地去面试,这两天已经在幻想自己去工作第一天怎么做自我介绍了,可惜我大意了,没有闪。面试官问了我一个难度偏高地高并发系统设

2021-06-21 11:20:26 1719 30

原创 223道2021金三银四阿里高频面试题分享!

2021阿里高频面试题出炉,223道精心挑选,专为粉丝服务!

2021-06-20 19:44:57 448 2

原创 每天一道Leecode——寻找两个正序数组的中位数,腾讯高频面试题分享!

寻找两个正序数组的中位数方法一:二分查找给定两个有序数组,要求找到两个有序数组的中位数,最直观的思路有以下两种:使用归并的方式,合并两个有序数组,得到一个大的有序数组。大的有序数组的中间位置的元素,即为中位数。不需要合并两个有序数组,只要找到中位数的位置即可。由于两个数组的长度已知,因此中位数对应的两个数组的下标之和也是已知的。维护两个指针,初始时分别指向两个数组的下标 00 的位置,每次将指向较小值的指针后移一位(如果一个指针已经到达数组末尾,则只需要移动另一个数组的指针),直到到达中位数的位置

2021-06-19 19:37:36 170 1

原创 开始刷题吧!十道腾讯金三银四高频leetcode算法题分享(附解题思路及实现代码!)

收集了一些粉丝朋友在今年的金三银四的时候被问到的比较高频、难度比较大的一些算法题,进行收集整理之后分享给大家!

2021-06-18 14:22:28 468 4

原创 Spring Cloud Kubernetes实战之配置管理(附代码实现)

一直以来,玩springcloud的,基本都是在玩Springboot1.x,Springcloud(Dalston版)的众多相关组件来做配置中心、服务注册与发现,网关用的是Netflix公司对springboot做的LB,等等,但是这些东西太过沉重,复杂了。在一个以k8s为基础的iaas服务系统,如果不用k8s的特性来做这些事,那是说不过去的。理由这就不重复述说了。一句话:减少系统服务的复杂性。本文主要介绍springcloud结合k8s,做配置管理,避免更多服务组件的冗余。实战环境:ubunt

2021-06-17 14:14:43 429 1

原创 不知道怎么入门Selet、Poll、Epoll?看这篇文章就够了!

UNIX公司里提供了select、poll、epoll、kqueue这几位年纪、性格和能力都有所差异的收发室小哥,让我们分别介绍下这几位小哥的工作特点吧!

2021-06-16 14:00:03 153

原创 大厂的人自带光环,但光环是从哪儿来的呢?——一位中年Java程序员的感慨

人人都想进大厂,一方面,大厂能够让人有机会得到更大的锻炼,另一方面,大厂出来,未来一片光明。

2021-06-15 14:27:16 318 5

原创 海量数据的分页怎么破?我的方案这样“改良”后,实在太完美!

一、背景分页应该是极为常见的数据展现方式了,一般在数据集较大而无法在单个页面中呈现时会采用分页的方法。各种前端UI组件在实现上也都会支持分页的功能,而数据交互呈现所相应的后端系统、数据库都对数据查询的分页提供了良好的支持。以几个流行的数据库为例:查询表 t_data 第 2 页的数据(假定每页 5 条)MySQL 的做法:select * from t_data limit 5,5PostGreSQL 的做法:select * from t_data limit 5 offset 5MongoD

2021-06-14 20:34:49 730

原创 网易CEO重磅推荐,这本书带你了解SQL编程的奥秘,演绎SQL编程之美!

端午即将到来,不知道大家是怎么过节的,反正我是宅在家打打CSGO的,毕竟长沙这么热,人又多,谁想出去啊!大家是准备怎么过节的呢,可以在评论区分享一下哦!好了哈,进入这篇文章的正题!今天给大家分享的这份资料比较牛了,先给大家看一个细节!厉不厉害,网易CEO推荐,不用想都知道这本书写的很好,下面我就来详细介绍一下这本书厉害在哪里?适合什么水平的开发者学习?适用读者对象数据库管理员数据库开发人员数据库架构设计师各类应用程序开发人员由于篇幅限制这里仅展示一些本书的截图和部分内容,需要完.

2021-06-11 15:22:58 679 9

原创 一文透析SpringCloud,关于Bus消息总线,总算梳理清楚了

什么是消息总线消息代理中间件构建一个共用的消息主题让所有微服务实例订阅,当该消息主题产生消息时会被所有微服务实例监听和消费。消息代理又是什么?消息代理是一个消息验证、传输、路由的架构模式,主要用来实现接收和分发消息,并根据设定好的消息处理流来转发给正确的应用。它在微服务之间起到通信调度作用,减少了服务之间的依赖。什么是 Spring Cloud BusSpring Cloud Bus 是 Spring Cloud 体系内的消息总线,用来连接分布式系统的所有节点。Spring Cloud Bus

2021-06-03 16:46:06 365

原创 MySQL大无语事件:一次生产环境的死锁事故,看看我怎么排查

今天要分享的是在生产环境中出现的一次算得上比较诡异的死锁事件, 不过庆幸的是没有产生较大的业务损失.1. 背景某日线上产生了多封报警邮件, 邮件内容均如下, 由于生产环境这里简化了表格结构如下CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键', `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '.

2021-06-02 16:04:05 236 7

原创 学校门口保安啃完这份524页“Java中高级学习笔记”都能拿13k了,你还不行动起来?

躺平、内卷,这么多新名词下,就是一种集体焦虑和现状。无论任何年纪,人唯有自我的不断提升,才能不落伍,面对黑天鹅或灰犀牛不受大的冲击。好了,进入正题!最近学校的Java老师换了,是一个来自腾讯T9的Java工程师,还没给我们上课呢,就拉了个微信群,问我们Java的基础怎么样?我:完全不会啊!老师:…然后他甩了一份PDF学习资料说到:“这是我珍藏已久的Java学习资料,不是我吹,门口保安啃完都能在长沙拿13k,希望你们能够好好的去学,不要让我失望!”下面我就来介绍一下这份腾讯T9都爱惜不已的Ja.

2021-06-01 16:25:11 2264 25

原创 混不上管理层,加不动班,说好的前程似锦却不见未来,中年Java架构师的崩溃之路!

公众号里有位中年读者粉丝,发私信吐槽诉苦:本人九零后,Java 技术开发程序员,工作经验七年。这七年间,不停的在小公司之间流动,待过的最大的公司规模,也就是五十人左右;在职位上的发展也是一言难尽,我这人,个性比较佛系,对自己要求也不高,拿着程序员一万出头的工资,就觉得挺满意了。可是,随着年龄的增长,职位和能力却不增长,我满意,老板可不满意啊。年龄一过三十,出去面试,一般的公司对三十岁左右的应聘者,都很看重管理经验,一看我,从来没做过管理,在技术上也没什么突出的能力;我能做的工作,二十出头的年轻

2021-05-31 14:25:07 524 8

空空如也

空空如也

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

TA关注的人

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