自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Linux纯干货知识总结

Linux纯干货知识总结 | 面试专用绝对路径和相对路径绝对路径以正斜杠开始完整的文件的位置路径可用于任何想置顶一个文件名的时候相对路径不以斜线开始置顶相对于当前工作目录或某目录的位置可以作为一个简短的形式指定一个文件名-基名:basename,就是文件本身的名字-目录名:dirname ,就是它所在的文件夹名更改目录cd 改变目录使用绝对或相对路径cd/home/wangcd home/wang切换至父目录:cd切换至以...

2020-10-25 23:54:35 382

转载 优雅停止 SpringBoot 服务

优雅停止 SpringBoot 服务,拒绝 kill -9 暴力停止!Java后端编程7月17日来源:http://39sd.cn/F2DD1在使用 SpringBoot 的时候,都要涉及到服务的停止和启动,当我们停止服务的时候,很多时候大家都是kill -9 直接把程序进程杀掉,这样程序不会执行优雅的关闭。而且一些没有执行完的程序就会直接退出。我们很多时候都需要安全的将服务停止,也就是把没有处理完的工作继续处理完成。比如停止一些依赖的服务,输出一些日志,发一些信号给其他的应用系统,..

2020-10-25 23:53:35 505

转载 Java四种引用类型

Java四种引用类型:强引用、软引用、弱引用、虚引用Java中的四种引用Java中有四种引用类型:强引用、软引用、弱引用、虚引用。Java为什么要设计这四种引用Java的内存分配和内存回收,都不需要程序员负责,都是由伟大的JVM去负责,一个对象是否可以被回收,主要看是否有引用指向此对象,说的专业点,叫可达性分析。Java设计这四种引用的主要目的有两个: 可以让程序员通过代码的方式来决定某个对象的生命周期; 有利用垃圾回收。 强引用强引用是最普遍的一种引用,我.

2020-10-25 23:53:08 418

转载 HashMap 夺命二十一问

面试题汇总:HashMap 夺命二十一问1:HashMap 的数据结构?A:哈希表结构(链表散列:数组+链表)实现,结合数组和链表的优点。当链表长度超过 8 时,链表转换为红黑树。transient Node<K,V>\[\] table;2:HashMap 的工作原理?HashMap 底层是 hash 数组和单向链表实现,数组中的每个元素都是链表,由 Node 内部类(实现 Map.Entry接口)实现,HashMap 通过 put & get...

2020-10-25 23:51:48 94

转载 一文搞懂主流的扫码登录技术原理

一文搞懂主流的扫码登录技术原理1、引言扫码登录这个功能,最早应该是微信的PC端开始搞,虽然有点反人类的功能(不扫码也没别的方式登录),但不得不说还是很酷的。下面这张图,不管是IM开发者还是普通用户,应该很熟悉:于是,搞IM产品的老板和产品经理们,从此又多了一个要抛给程序员们的需求——“为什么微信有扫一扫登录,而我们的没有?”。好吧,每次只要是微信有的功能,IM程序员们想甩锅,难度就有点大了,毕竟老板们都都会想当然认为,微信有的“我”的IM产品里也得有。既然无法回避,那就.

2020-10-25 23:51:02 772

转载 MySQL 主从复制读写分离

一文读懂 MySQL 主从复制读写分离前言在很多项目,特别是互联网项目,在使用MySQL时都会采用主从复制、读写分离的架构。为什么要采用主从复制读写分离的架构?如何实现?有什么缺点?让我们带着这些问题开始这段学习之旅吧!为什么使用主从复制、读写分离主从复制、读写分离一般是一起使用的。目的很简单,就是为了提高数据库的并发性能。你想,假设是单机,读写都在一台MySQL上面完成,性能肯定不高。如果有三台MySQL,一台mater只负责写操作,两台salve只负责读操作,性能不就能大大提高.

2020-10-25 23:50:37 89

转载 SpringBoot 使用 Redis 缓存

SpringBoot 使用 Redis 缓存1、pom.xml引入jar包,如下:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>2、修改项目启动类,增加注解@EnableCachin...

2020-10-25 23:47:59 275

转载 必须了解的 MySQL 三大日志

必须了解的 MySQL 三大日志来源:juejin.im/post/6860252224930070536日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。作为开发,我们重点需要关注的是二进制日志(binlog)和事务日志(包括redo log和undo log),本文接下来会详细介绍这三种日志。binlogbinlog用于记录数据库执行的写入性操作(不包括查询)...

2020-10-25 23:42:48 74

转载 11000 字梳理多线程

11000 字梳理多线程线程线程和进程的区别进程是一个可执行的程序,是系统资源分配的基本单位。线程是进程内部相对独立的可执行单元,是操作系统进行任务调度的基本单位。多线程的优缺点优点: 充分利用多核多cpu的资源,提高cpu的使用率,提高了程序的运行效率。缺点: 线程数过多会影响性能,操作系统会在线程切换之间增加内存的开销。 存在线程同步和安全问题 可能产生死锁 增加了开发人员的技术难度 线程有几种状态一共五种状态:分别是新建,.

2020-10-25 23:39:44 73

转载 13000 字的 Spring MVC 总结

13000 字的 Spring MVC 总结概述SpringMVC再熟悉不过的框架了,因为现在最火的SpringBoot的内置MVC框架就是SpringMVC。我写这篇文章的动机是想通过回顾总结一下,重新认识SpringMVC,所谓温故而知新嘛。为了了解SpringMVC,先看一个流程示意图:从流程图中,我们可以看到: 接收前端传过来Request请求。 根据映射路径找到对应的处理器处理请求,处理完成之后返回ModelAndView。 进行视图解析,视.

2020-10-25 23:38:27 223

转载 JVM 的核心知识

15000 字梳理 JVM 的核心知识前言随着cpu运行速度的提高和内存的增大,我们的应用程序的用户响应时间和系统吞吐量也发生了质的提高。但是只有硬件设备的提高是不行的,软件的性能和运行在硬件上的虚拟机的各项参数都影响着系统的质量。在越来越多的大厂面试中,jvm逐渐成为面试官青睐的考点。本文讲解了运行时数据区域,内存溢出,如何判断对象是否存活,垃圾回收算法和垃圾收集器,类加载机制和双亲委派模型以及对象的创建存储和访问几个方面,涵盖jvm的核心考点,希望你有所收获。运行时数据区..

2020-10-23 16:21:55 188

转载 Java 中的内存模型

13 张图解 Java 中的内存模型Java后端8月30日点击上方Java后端,选择设为星标优质文章,及时送达前言 了解Java中的对象、变量等存放的内存区域十分重要 本文将全面讲解Java虚拟机中的内存模型 & 分区,希望你们会喜欢 目录1. 内存模型 & 分区Java虚拟机在运行Java程序时,会管理着一块内存区域:运行时数据区在运行时数据区里,会根据用途进行划分: Java虚拟机栈(栈区) 本地方法栈 ...

2020-10-23 16:19:44 58

转载 史上最全的数据库面试题,不看绝对后悔

史上最全的数据库面试题,不看绝对后悔追寻自我Java后端8月28日点击上方Java后端,选择设为星标优质文章,及时送达一、基本概念1.主键、外键、超键、候选键超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。候选键:是最小超键,即没有冗余元素的超键。主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空...

2020-10-23 16:17:38 941 1

转载 分布式锁用 Redis 还是 Zookeeper

分布式锁用 Redis 还是 Zookeeper为什么用分布式锁?在讨论这个问题之前,我们先来看一个业务场景:系统A是一个电商系统,目前是一台机器部署,系统中有一个用户下订单的接口,但是用户下订单之前一定要去检查一下库存,确保库存足够了才会给用户下单。由于系统有一定的并发,所以会预先将商品的库存保存在redis中,用户下单的时候会更新redis的库存。此时系统架构如下:但是这样一来会产生一个问题:假如某个时刻,redis里面的某个商品库存为1,此时两个请求同时到来,其中一个请求执

2020-10-23 15:48:26 99

转载 最简单的 6 种防止数据重复提交的方法

最简单的 6 种防止数据重复提交的方法!(干货)有位朋友,某天突然问磊哥:在 Java 中,防止重复提交最简单的方案是什么?这句话中包含了两个关键信息,第一:防止重复提交;第二:最简单。于是磊哥问他,是单机环境还是分布式环境?得到的反馈是单机环境,那就简单了,于是磊哥就开始装*了。话不多说,我们先来复现这个问题。模拟用户场景根据朋友的反馈,大致的场景是这样的,如下图所示:简化的模拟代码如下(基于 Spring Boot):importorg.springfr..

2020-10-23 15:42:17 1075

转载 Spring Security

万字搞定 Spring Security!小小____Java后端7月12日链接:22j.co/bBbq权限系统躲不开的概念,在Shiro和Spring Security之间,你一般选啥?在前后端分离的项目中,你知道怎么Spring security整合JWT么,来看看这篇文章哈!思维导图如下:RBAC 全称为基于角色的权限控制,本段将会从什么是 RBAC,模型分类,什么是权限,用户组的使用,实例分析等几个方面阐述 RBAC.思维导图绘制思维导图如下什么是 R...

2020-10-23 15:39:57 375

转载 RabbitMQ 总结

非常强悍的 RabbitMQ 总结,写得真好RabbitMQ是基于AMQP协议的,通过使用通用协议就可以做到在不同语言之间传递。AMQP协议核心概念 server:又称broker,接受客户端连接,实现AMQP实体服务。 connection:连接和具体broker网络连接。 channel:网络信道,几乎所有操作都在channel中进行,channel是消息读写的通道。客户端可以建立多个channel,每个channel表示一个会话任务。 mes..

2020-10-23 15:34:10 101 1

转载 一个HTTP请求的曲折经历

一个HTTP请求的曲折经历从一个经典的面试题说起,输入URL到页面展现的过程: 输入URL后,会先进行域名解析。优先查找本地host文件有无对应的IP地址,没有的话去本地DNS服务器查找,还不行的话,本地DNS服务器会去找根DNS服务器要一个域服务器的地址进行查询,域服务器将要查询的域名的解析服务器地址返回给本地DNS,本地DNS去这里查询就OK了。 浏览器拿到服务器的IP地址后,会向它发送HTTP请求。HTTP请求经由一层层的处理、封装、发出之后,最终经由网络到达服务器,...

2020-10-23 15:13:47 256

转载 一口气说出 6 种 @Transactional 注解的失效场景

一口气说出 6 种 @Transactional 注解的失效场景一、事务事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种。编程式事务:是指在代码中手动的管理事务的提交、回滚等操作,代码侵入性比较强,如下示例:try{//TODO somethingtransactionManager.commit(status);}catch(Exceptione) {transaction...

2020-10-23 15:11:15 89

转载 面试官:你说说互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景

面试官:你说说互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景数据库开发今天来自公众号:小林coding前言那在编程世界里,「锁」更是五花八门,多种多样,每种锁的加锁开销以及应用场景也可能会不同。如何用好锁,也是程序员的基本素养之一了。高并发的场景下,如果选对了合适的锁,则会大大提高系统的性能,否则性能会降低。所以,知道各种锁的开销,以及应用场景是很有必要的。接下来,就谈一谈常见的这几种锁:正文多线程访问共享资源的时候,避免不了资源竞争而导致数据错乱的..

2020-10-23 15:08:52 124

转载 Nginx 从入门到实践,万字详解!

Nginx 从入门到实践,万字详解!Java后端5月6日以下文章来源于前端下午茶,作者SHERlocked93CentOS 版本:7.6Nginx 版本:1.16.11. Nginx 介绍传统的 Web 服务器,每个客户端连接作为一个单独的进程或线程处理,需在切换任务时将 CPU 切换到新的任务并创建一个新的运行时上下文,消耗额外的内存和 CPU 时间,当并发请求增加时,服务器响应变慢,从而对性能产生负面影响。NginxNginx 是开源、高性能、高可靠的...

2020-10-22 16:27:56 291

转载 2020最新最全面的SQL优化干货总结

2020最新最全面的SQL优化干货总结程序员追风8月12日BATJTMD 等大厂的面试难度越来越高,但无论从大厂还是到小公司,一直不变的重点就是对 SQL 优化经验的考察。一提到数据库,面试官就会问“先说一说你对 SQL 优化的见解吧?”。SQL 优化已经成为衡量程序猿优秀与否的硬性指标,甚至在各大厂招聘岗位职能上都有明码标注,如果是你,在这个问题上能吊打面试官还是会被吊打呢?有朋友疑问到,SQL 优化真的有这么重要么?如下图所示,SQL 优化在提升系统性能中是:成本...

2020-10-22 14:21:36 149

转载 MyBatis动态SQL

MyBatis动态SQL(认真看看, 以后写SQL就爽多了)程序员追风7月16日点击上方蓝色“程序员追风”,选择“设为星标”回复“关键词”获取整理好的面试资料作者:阿进的写字台cnblogs.com/homejim/p/9909657.htmlMyBatis 令人喜欢的一大特性就是动态 SQL。在使用 JDBC 的过程中, 根据条件进行 SQL 的拼接是很麻烦且很容易出错的。MyBatis 动态 SQL 的出现, 解决了这个麻烦。MyBatis通过 OGNL 来进行动态 SQL.

2020-10-22 14:19:34 287

转载 MySQL常用函数,你真得看看

MySQL常用函数,你真得看看!程序员追风7月3日概念:相当于java中的方法,将一组逻辑语句封装在方法体中,对外暴露方法名 隐藏了实现细节 提高代码的可重用性 使用:select 函数名(实参列表)【from 表】 【】中内容可省略正文:字符函数:length:获取字节个数(utf-8 一个汉字为3个字节,gbk为2个字节)SELECTLENGTH('cbuc')#输出4SELECTLENGTH('蔡不菜cb...

2020-10-21 14:54:54 47

转载 大厂架构演进实战之手写 CAS 单点登录

长文慎入!大厂架构演进实战之手写 CAS 单点登录原创楠哥Java大联盟9月15日什么是单点登录单点登录在大型网站里使用得非常频繁,那么什么是单点登录?一句话解释:一处登录,处处登录。比如,淘宝和天猫都属于阿里旗下,账号也是通用的,一个账号即可以登录淘宝,又可以登录天猫,这样也是为了方便用户,如果每个子系统都需要单独注册账号的话就太麻烦了,所以是统一账户可以登录同属于一家公司的所有子系统。那么这些子系统每次都需要登录吗?肯定不是的,比如淘宝登录之后,你在访问天猫就不需要登录,系统会...

2020-10-21 09:44:07 294

转载 4W字的Redis面试教程 码农沉思录

一不小心肝出了4W字的Redis面试教程码农沉思录9月10日以下文章来源于非科班的科班,作者黎杜redis基本数据结构本文脑图前言Redis是基于c语言编写的开源非关系型内存数据库,可以用作数据库、缓存、消息中间件,这么优秀的东西客定要一点一点的吃透它。这是关于Redis五种数据结构详解,包括这五种的数据结构的底层原理实现。理论肯定是要用于实践的,因此最重要的还是实战部分,也就是这里还会讲解五种数据结构的应用场景。话不多说,我们直接进入主题,很多人都知道Re...

2020-10-20 17:50:47 109

转载 Tomcat 高并发之道原理拆解与性能调优

Tomcat 高并发之道原理拆解与性能调优码农沉思录8月20日以下文章来源于码哥字节,作者MageByte技术团队高并发拆解核心准备这回,再次拆解,专注 Tomcat 高并发设计之道与性能调优,让大家对整个架构有更高层次的了解与感悟。其中设计的每个组件思路都是将 Java 面向对象、面向接口、如何封装变与不变,如何根据实际需求抽象不同组件分工合作,如何设计类实现单一职责,怎么做到将相似功能高内聚低耦合,设计模式运用到极致的学习借鉴。这次主要涉及到的是 I/O 模型,以及线程池的基础内..

2020-10-20 17:12:06 179

转载 一口气说出 9种 分布式ID生成方式,面试官有点懵了

一口气说出 9种 分布式ID生成方式,面试官有点懵了码农沉思录7月30日以下文章来源于程序员内点事,作者程序员内点事一、为什么要用分布式ID?在说分布式ID的具体实现之前,我们来简单分析一下为什么用分布式ID?分布式ID应该满足哪些特征?1、什么是分布式ID?拿MySQL数据库举个栗子:在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。但随着数据日渐增长,主从同步也扛不住了,就需要对数据库进行分库分表,但分...

2020-10-20 17:07:02 370

转载 replace into和insert into on duplicate key update的区别

在项目中,我们经常会遇到当数据库存在某条记录时,则更新数据,若不存在则插入数据的情况。在mysql中,replace into ...和insert into ... on duplicate key update ... 都可以实现,那么这两种有什么区别呢?replace into和on duplcate key update都是只有在primary key或者unique key冲突的时候才会执行。如果数据存在,replace into则会将原有数据删除,再进行插入操作,这样就会有一种情况,如果某些

2020-10-20 16:59:45 276

转载 消息队列面试连环问:如何保证消息不丢失?处理重复消息?消息有序性?消息堆积处理?

消息队列面试连环问:如何保证消息不丢失?处理重复消息?消息有序性?消息堆积处理?码农沉思录7月29日以下文章来源于yes的练级攻略,作者是Yes呀yes的练级攻略会分享一些后端技术或写一些想写的。核心点有很多,为了更贴合实际场景,我从常见的面试问题入手: 如何保证消息不丢失? 如何处理重复消息? 如何保证消息的有序性? 如何处理消息堆积? 当然在剖析这几个问题之前需要简单的介绍下什么是消息队列,消息队列常见的一些基本术语和概念。...

2020-10-20 16:16:47 198

转载 Nginx 实现负载均衡、限流、缓存、黑白名单和灰度发布,这是最全的一篇了!

Nginx】实现负载均衡、限流、缓存、黑白名单和灰度发布,这是最全的一篇了!Nginx安装注意:这里以CentOS 6.8服务器为例,以root用户身份来安装Nginx。1.安装依赖环境yum-yinstallwgetgcc-c++ncursesncurses-develcmakemakeperlbisonopensslopenssl-develgcc*libxml2libxml2-develcurl-devellibjpeg*libpng*fr...

2020-10-20 16:11:33 996

空空如也

空空如也

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

TA关注的人

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