自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序人生|

免费获取技术书籍,架构师视频,面试题,+WX:gupao-cola

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

原创 金九银十跳槽高峰,面试必备之 Redis + MongoDB 常问80道面试题

前言有着“金九银十”之称的招聘旺季已经开启,跳槽高峰期也如约而至。本文为主要是 Redis + MongoDB 知识点的攻略,希望能帮助到大家。内容较多,大家准备好耐心和瓜子矿泉水。Redisredis 和 memcached 什么区别?为什么高并发下有时单线程的 redis 比多线程的memcached 效率要高?区别:1.mc 可缓存图片和视频。rd 支持除 k/v 更多的数据...

2019-09-03 17:06:17 668

转载 为什么要使用SpringBoot?使用SpringBoot的最大好处是什么?

使用SpringBoot的最大好处就是简化配置,它实现了自动化配置。这里以SpringBoot 2.1.4.RELEASE版本和Spring 5.1.6.RELEASE版本为例。API文档:https://docs.spring.io/spring-boot/docs/current/api/自动化配置的原理如下:一个SpringBoot构建的项目都会有一个入口启动类,其中有个最重要的注解...

2019-08-14 14:08:36 40641 3

转载 架构师负责订规范,你负责执行!

心意相通的研发之间,本不需要BB这BB那搞些约束。但宁教我心徒枉然,不教银光惹尘埃。过分的放纵爱自由,那就是一去不复返了。本文系稍成点系统的碎碎语,如有共鸣,拍掌!为什么要有规范规范是一种束缚,是腾飞前的最后一步加速。大公司免费开源复杂的软件,有一个非常重要的目的就是想要占据特殊解决方案的标准制定,想要一个话语权;一项技术趋向成熟的一个标志也是标准、规范的制定。对于公司内部来说,规范能够让...

2019-08-13 15:55:33 357

转载 给面试官讲明白:一致性hash的原理和实践

“一致性hash的设计初衷是解决分布式缓存问题,它不仅能起到hash作用,还可以在服务器宕机时,尽量少地迁移数据。因此被广泛用于状态服务的路由功能”01分布式系统的路由算法假设有一个消息推送系统,其简易架构如下设备接入层不仅要接收设备的登录、下线等状态命令,还要把开发者的消息推送给设备。这个时候设备接入层就需要维护设备的状态信息(当然可以专门拆一个状态服务去维护这些信息,要求这部分必须少有...

2019-08-12 15:49:48 359

原创 一文理解JVM虚拟机(内存、垃圾回收、性能优化)解决面试中遇到问题

一. JVM内存区域的划分1.1 java虚拟机运行时数据区java虚拟机运行时数据区分布图:JVM栈(Java Virtual Machine Stacks): Java中一个线程就会相应有一个线程栈与之对应,因为不同的线程执行逻辑有所不同,因此需要一个独立的线程栈,因此栈存储的信息都是跟当前线程(或程序)相关信息的,包括局部变量、程序运行状态、方法返回值、方法出口等等。每一...

2019-08-11 19:53:02 372

转载 Spring Boot最核心的27个注解,你了解多少?

导读Spring Boot方式的项目开发已经逐步成为Java应用开发领域的主流框架,它不仅可以方便地创建生产级的Spring应用程序,还能轻松地通过一些注解配置与目前比较火热的微服务框架SpringCloud集成。而Spring Boot之所以能够轻松地实现应用的创建及与其他框架快速集成,最核心的原因就在于它极大地简化了项目的配置,最大化地实现了**“约定大于配置”的原则。然而基于Sprin...

2019-08-11 17:01:34 188

转载 复现一个典型的线上Spring Bean对象的线程安全问题(附三种解决办法)

问题复现假设线上是一个典型的Spring Boot Web项目,某一块业务的处理逻辑为:接受一个name字符串参数,然后将该值赋予给一个注入的bean对象,修改bean对象的name属性后再返回,期间我们用了 Thread.sleep(300) 来模拟线上的高耗时业务代码如下:@RestController@RequestMapping("name")public ...

2019-08-09 15:57:54 198

转载 多线程并发一定比单线程快吗?

很多时候我们都以为要想处理速度更快,那就多开几个线程跑!确实多线程在一定情况下比单线程更快。下面的代码演示串行和并发执行并累加操作的时间,请分析:下面的代码并发执行一定比串行执行快吗?当count的数量增加 1万 -> 10万 -> 100万 -> 1000万 -> 1亿public class ConcurrencyTest { private static...

2019-08-06 21:20:16 1884 1

转载 Spring中的后置处理器BeanPostProcessor讲解

BeanPostProcessor接口作用:如果我们想在Spring容器中完成bean实例化、配置以及其他初始化方法前后要添加一些自己逻辑处理。我们需要定义一个或多个BeanPostProcessor接口实现类,然后注册到Spring IoC容器中。package com.test.spring;import org.springframework.beans.BeansException...

2019-08-06 16:57:08 216

原创 手撕面试官系列(十一):BAT面试必备之常问85题

JVM专题Java 类加载过程?描述一下 JVM 加载 Class 文件的原理机制?Java 内存分配。GC 是什么? 为什么要有 GC?简述 Java 垃圾回收机制。如何判断一个对象是否存活?(或者 GC 对象的判定方法)垃圾回收的优点和原理。并考虑 2 种回收机制。垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?Java 中...

2019-08-01 15:13:43 204

原创 Java面试零碎知识点

1.Java文件经过JVM编译成字节码文件,即.class文件,将字节码文件在不同的操作系统中运行时,操作系统再将字节码文件编译成机器码文件。这就是Java跨平台2.首先明确一点,java 的 GC 回收是完全自动的,没有提供相关 api 手动回收,所有的内存分配和回收权限都在 jvm,在开发人员手里没有绝对的强制垃圾回收的方法,不过可以这样去做:对于不再引用的对象,及时把它的引用赋为 nul...

2019-07-25 15:36:16 141

原创 手撕面试官系列(十):面试必备之常问Dubbo29题+MySQL55题

Dubbo专题面试题+答案领取1.Dubbo 支持哪些协议,每种协议的应用场景,优缺点?2.Dubbo 超时时间怎样设置?3.Dubbo 有些哪些注册中心?4.Dubbo 集群的负载均衡有哪些策略5.Dubbo 是什么?6.Dubbo 的主要应用场景?7.Dubbo 的核心功能?8.Dubbo 的核心组件?9.Dubbo 服务注册与发现的流程?10.Dubbo 的架构设计?...

2019-07-23 15:11:44 186

原创 手撕面试官系列(九):分布式限流面试专题 Nginx+zookeeper

Nginx专题面试题+答案领取1、请解释一下什么是 Nginx?2、请列举 Nginx 的一些特性。3、请列举 Nginx 和 Apache 之间的不同点4、请解释 Nginx 如何处理 HTTP 请求。5、在 Nginx 中,如何使用未定义的服务器名称来阻止处理请求?6、 使用“反向代理服务器”的优点是什么?7、请列举 Nginx 服务器的最佳用途。8、请解释 Nginx 服...

2019-07-22 15:05:32 287

原创 手撕面试官系列(八):分布式通讯ActiveMQ+RabbitMQ+Kafka面试专题

ActiveMQ专题(面试题+答案领取方式见主页)什么是 ActiveMQ?ActiveMQ 服务器宕机怎么办?丢消息怎么办?持久化消息非常慢。消息的不均匀消费。死信队列。ActiveMQ 中的消息重发时间间隔和重发次数吗?RabbitMQ专题RabbitMQ 中的 broker 是指什么?cluster 又是指什么?什么是元数据?元数据分为哪些类型?包括哪些内容?...

2019-07-19 14:13:40 190

原创 手撕面试官系列(七):面试必备之常问并发编程高级面试专题

并发编程高级面试面试题(面试题+答案领取方式见个人主页)Synchronized 相关问题Synchronized 用过吗 , 其原理是什么 ?你刚才提到获取对象的锁,这 个“ 锁 ”到底是什么?如何确定对象的锁 ?什么是可重入性,为什么说 Synchronized 是可重入锁?JVM 对 Java 的原生锁做了哪些优化?为什么说 Synchronized 是非公平锁?什么是锁...

2019-07-18 14:49:52 755

原创 手撕面试官系列(六):并发+Netty+JVM+Linux

并发面试专题(面试题+答案领取方式见主页)现在有 T1、T2、T3 三个线程,你怎样保证 T2 在 T1 执行完后执行,T3 在 T2 执行完后执行?在 Java 中 Lock 接口比 synchronized 块的优势是什么?你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它?在 java 中 wait 和 sleep 方法的不同?...

2019-07-17 19:48:40 171

原创 手撕面试官系列(五):Tomcat+Mysql+设计模式面试专题

Tomcat(面试题+答案领取方式见主页)Tomcat 的缺省端口是多少,怎么修改?tomcat 有哪几种 Connector 运行模式(优化)?Tomcat 有几种部署方式?tomcat 容器是如何创建 servlet 类实例?用到了什么原理?tomcat 如何优化?内存怎样调优?垃圾回收怎样策略调优?怎样共享 session 处理?怎样添加 JMS 远程监控?专业点的...

2019-07-17 14:52:19 269

原创 SpringCloud之集成配置中心及自动刷新

环境:SpingBoot2.0 ,SpringCloud Finchley.RELEASE登录github创建一个仓库 myspringcloudconfig 然后再创建一个config-client1文件夹编写application.ymlname: zhangsanapplication-dev.ymlname: zhangsan-devapplication-test.ymln...

2019-07-16 20:32:48 154

原创 手撕面试官系列(四 ):MongoDB+Redis 面试专题

MongoDB(面试题+答案领取方式见首发原文:https://www.cnblogs.com/chengxuwang/p/11194731.html)你说的 NoSQL 数据库是什么意思?NoSQL 与 RDBMS 直接有什么区别?为什么要使用和不使用NoSQL 数据库?说一说 NoSQL 数据库的几个优点?NoSQL 数据库有哪些类型?MySQL 与 MongoDB 之间最基本的差...

2019-07-16 14:44:01 291

原创 Spring Cloud 如何使用Eureka注册服务

要使用Eureka实现服务发现,需要项目中包含Eureka的服务端发现组件以及客户端发现组件。搭建Maven父工程创建一个Maven父工程xcservice-springcloud,并在工程的pom.xml中添加Spring Cloud的版本依赖等信息,如文件4-1所示。  文件4-1 pom.xml<project xmlns="http://maven.apache.o...

2019-07-13 20:52:14 265

原创 手撕面试官系列(三 ):微服务架构面试题Dubbo+Spring Boot+Spring Cloud

直接进入主题Dubbo(面试题+答案领取方式见个人主页)Dubbo 中 中 zookeeper 做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?dubbo 服务负载均衡策略?Dubbo 在安全机制方面是如何解决的dubbo 连接注册中心和直连的区别dubbo 服务集群配置(集群容错模式)dubbo 通信协议 dubbo 协议为什么要消费者比提供者个数多dub...

2019-07-12 16:53:28 1550

原创 手撕面试官系列(二):开源框架面试题Spring+SpringMVC+MyBatis

跳槽时时刻刻都在发生,但是我建议大家跳槽之前,先想清楚为什么要跳槽。切不可跟风,看到同事一个个都走了,自己也盲目的开始面试起来(期间也没有准备充分),到底是因为技术原因(影响自己的发展,偏移自己规划的轨迹),还是钱给少了,不受重视。闲话不多说开始主题(面试题+答案领取方式见主页左上角,博客名下方)以下为常见spring面试题:1 、什么是 Spring 框架?Spring 框架有哪些主要模...

2019-07-11 16:54:11 382

原创 手撕面试官系列(一):spring108道面试题合集

前言想必各位程序员已经开始准备金九银十的秋招了,创建这个这个系列文章的目的就是为了帮助大家解决面试的问题,系列文章将会一直更新,大家如果觉得不错可以关注我并转发,让更多程序兄弟看到~接下来我们进入正文环节(面试题+答案领取方式见左上角,博客名下方)基础篇Spring 概 述什 么 是 spring?使 用 Spring 框 架 的 好 处 是 什 么 ?Spring 由 哪 些 模 ...

2019-07-10 17:04:38 636

原创 面试官:你是如何使用JDK来实现自己的缓存(支持高并发)?

需求分析项目中经常会遇到这种场景:一份数据需要在多处共享,有些数据还有时效性,过期自动失效。比如手机验证码,发送之后需要缓存起来,然后处于安全性考虑,一般还要设置有效期,到期自动失效。我们怎么实现这样的功能呢?解决方案使用现有的缓存技术框架,比如redis,ehcache。优点:成熟,稳定,功能强大;缺点,项目需要引入对应的框架,不够轻量。如果不考虑分布式,只是在单线程或者多线程间作数据缓...

2019-07-10 14:35:10 202

原创 两道面试题,带你透彻解析Java类加载机制

在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题:class Grandpa{ static { System.out.println("爷爷在静态代码块"); }} class Father extends Grandpa{ static { System.out.printl...

2019-07-09 16:15:10 115

原创 为什么 Redis单线程这么快

1、redis是基于内存来存储的,然而内存的读取/响应市场大约为100纳秒,这一点也就是redis能打到每秒万级的重要基础。2、非阻塞I/O,redis使用epoll作为I/O多路复用技术的实现,再加上redis的自身的时间处理模型将epoll中的连接,读写,关闭都转换为事件,不在网络I/O上浪费时间3、单线程避免了线程切换和竟态产生的消耗。单线程带来的好处及问题单线程带来的好处:1、单...

2019-07-08 16:31:27 134

原创 SpringCloud微服务框架搭建

一、微服务架构1.1什么是分布式不同模块部署在不同服务器上作用:分布式解决网站高并发带来问题1.2什么是集群多台服务器部署相同应用构成一个集群作用:通过负载均衡设备共同对外提供服务1.3什么是RPCRPC 的全称是 Remote Procedure Call 是一种进程间通信方式。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远...

2019-07-04 14:42:53 168

原创 Java并发编程:如何创建线程

一.Java中关于应用程序和进程相关的概念在Java中,一个应用程序对应着一个JVM实例(也有地方称为JVM进程),一般来说名字默认为java.exe或者javaw.exe(windows下可以通过任务管理器查看)。Java采用的是单线程编程模型,即在我们自己的程序中如果没有主动创建线程的话,只会创建一个线程,通常称为主线程。但是要注意,虽然只有一个线程来执行任务,不代表JVM中只有一个线程,J...

2019-07-03 16:32:05 163

原创 springboot整合 rabbitmq

1 添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>2 添加配置文件rabbitmq: passw...

2019-06-29 17:47:26 200

原创 获取spring应用中的所有的配置信息

获取spring应用中所有的配置信息前置条件:在一个bean中注入Autowiredprivate Environment environment;获取方法代码:@GetMapping("obtain.environment") public R obtainEnvironment() { StandardServletEnvironment standardServlet...

2019-06-28 21:17:08 2497

原创 Spring注解驱动开发之AOP

前言:现今SpringBoot、SpringCloud技术非常火热,作为Spring之上的框架,他们大量使用到了Spring的一些底层注解、原理,比如@Conditional、@Import、@EnableXXX等。如果掌握这些底层原理、注解,那么我们对这些高层框架就能做到高度定制,使用的游刃有余本篇主要内容:Spring AOP的使用及其原理分析一、AOP功能测试AOP【动态代理】:指在程...

2019-06-28 14:55:10 425

原创 深入了解Spring Boot 核心注解原理

SpringBoot目前是如火如荼,所以今天就跟大家来探讨下SpringBoot的核心注解@SpringBootApplication以及run方法,理解下springBoot为什么不需要XML,达到零配置@SpringBootApplicationpublic class StartApplication{public static void main(String[] args){Spr...

2019-06-27 19:47:19 233

原创 spring源码分析之spring注解@Aspect是如何工作的?

1、@Aspect在xml定义:<aop:aspectj-autoproxy />,其定义在http://www.springframework.org/schema/aop/spring-aop-3.0.xsd- <xsd:element name="aspectj-autoproxy">- <xsd:annotation>- <xsd:docu...

2019-06-27 16:10:30 364

转载 spring源码分析之spring注解@Aspect是如何工作的?

1、@Aspect在xml定义:<aop:aspectj-autoproxy />,其定义在http://www.springframework.org/schema/aop/spring-aop-3.0.xsd- <xsd:element name="aspectj-autoproxy">- <xsd:annotation>- <xsd:docu...

2019-06-27 14:32:43 1288

原创 SpringBoot问题:RedirectAttributes存值后读取不到

首先,检查Controller上面是@Controller还是@RestController(两者区别自行百度)其次,如下 @GetMapping("/redirect") public String redirect(RedirectAttributes redirectAttributes) { redirectAttributes.addFlashAtt...

2019-06-26 17:12:38 984

原创 spring的后台数据校验

数据校验对于开发项目来说是必须的。校验一般分为前台校验和后台校验,前台校验是必须要做的,后台校验是可选的。后台校验相对前台校验来说配置起来一般更复杂。前台校验通过js做,前台校验一般非常容易绕过。spring 后台校验可以使用jsr303标准来实现 。spring 内部并没有实现jsr303的标准,在业内jsr303的标准实现比较好的是hibernate ,在spring 中我们可以使用hiber...

2019-06-26 13:50:08 351

原创 spring jdk动态代理

public class DynamicProxyHandler { //被代理的对象 private Object target; //事务管理器 private TransactionManagerHandler txManager; /** * 返回一个代理对象,代理对象就做了方法的增强,(事物管理,日志控制,权限管理等等) */...

2019-06-25 19:56:37 151

转载 10分钟详解Spring全家桶7大知识点

Spring框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶。它包括SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow等解决方案。很多研发人员把spring看作心目中最好的java项目,没有之一。所以这是重点也是难点,工作中必须会,面试时肯定考。那么,今天花费10分钟,梳理Spring框架相关知识。Spri...

2019-06-24 21:37:37 1233 1

原创 微服务之服务注册与发现(基于kubernetes / SpringCloud)

微服务微服务是一种架构模式,一种分布式的架构风格。顾名思义,micro service,将一个庞大的单体应用拆分成若干个“微小”的服务,服务间通过进程通讯完成原本在单体应用中的调用。其中必要的六个基本技术为:1、服务注册与发现;2、进程间通信;3、负载均衡;4、分布式配置中心;5、熔断器;6、网关路由。基于k8s、springcloud的服务注册与发现对比k8...

2019-06-24 17:46:00 7598 1

原创 Java解决秒杀高并发

一:问题首先我们要考虑的是为什么要解决高并发,高并发瓶颈出现在哪里,有了解过的朋友肯定知道是在数据库,因为在大量请求去操作数据库时会出现数据的错乱,超卖,系统崩溃,mysql死锁等现象。二:思路页面静态化:就是将整个页面存储到redis中,下次访问时去读取redis中的页面值cdn:主要对整个网站的静态资源文件进行加速,如图片,css,js等(去阿里看教程)3.数学验证码:用...

2019-06-24 14:55:02 726

空空如也

空空如也

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

TA关注的人

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