自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 BAT高频面试系列:设计模式+Spring源码+MyBatis+SpringMVC多线程+MySQL+Redis+框架使用+数据结构算法答案和总结...

需要获取BAT高频面试系列:设计模式+Spring源码+MyBatis+SpringMVC多线程+MySQL+Redis+框架使用+数据结构算法答案和总结.pdf的小伙伴们可以加一下架构华山论剑:836442475,进群即可免费获取,群内还会有其它的面试资料以及进阶资料。点此加入设计模式与6大原则Design Pattern 代表了最佳的实践,通常被有经验的面向对象的软件开发...

2019-08-27 15:45:31 738

原创 突击Java程序员,看看如何完美回答面试官问的Mybatis初始化原理

突击Java程序员,看看如何完美回答面试官问的Mybatis初始化原理对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外。本章将通过以下几点详细介绍MyBatis的初始化过程。MyBatis的初始化做了什么MyBatis基于XML配置文件创建Configuration对象的过程手动加载XML配置文件创建Configuration对象完成初...

2019-08-26 20:13:49 282

原创 全面解析大数据批处理框架Spring Batch,所谓完美解析方案是什么

如今微服务架构讨论的如火如荼。但在企业架构里除了大量的OLTP交易外,还存在海量的批处理交易。在诸如银行的金融机构中,每天有3-4万笔的批处理作业需要处理。针对OLTP,业界有大量的开源框架、优秀的架构设计给予支撑;但批处理领域的框架确凤毛麟角。是时候和我们一起来了解下批处理的世界哪些优秀的框架和设计了,今天我将以Spring Batch为例,和大家一起探...

2019-08-21 15:57:00 329

原创 亿级请求下多级缓存那些事,你全部吃下了吗?

什么是多级缓存所谓多级缓存,即在整个系统架构的不同系统层级进行数据缓存,以提升访问效率,这也是应用最广的方案之一。我们应用的整体架构如图1所示:亿级请求下多级缓存那些事,你全部吃下了吗?图1 多级缓存方案文末有福利赠送,如果你感兴趣的话可以去领取架构资料。整体流程如上图所示:1)首先接入Nginx将请求负载均衡到应用Nginx,此处...

2019-08-19 21:46:00 165

原创 HashMap实现原理:容量、负载因子、hash与定位都搞定了吗?

HashMap是常考点,而一般不问List的几个实现类(偏简单)。以下基于JDK1.8.0_102分析。JDK版本:oracle java 1.8.0_102内部存储HashMap的内部存储是一个数组(bucket),数组的元素Node实现了是Map.Entry接口(hash, key, value, next),next非空时指向定位相同的另一...

2019-08-19 21:04:00 241

原创 一线互联网公司Java大牛一书带你深入浅出MyBatis技术原理与实战

写在前面MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记...

2019-08-19 15:22:00 127

原创 程序员注意了,带你鸟瞰 Java 中4款常用的并发框架

程序员注意了,带你鸟瞰 Java 中4款常用的并发框架为什么要写这篇文章几年前 NoSQL 开始流行的时候,像其他团队一样,我们的团队也热衷于令人兴奋的新东西,并且计划替换一个应用程序的数据库。 但是,当深入实现细节时,我们想起了一位智者曾经说过的话:“细节决定成败”。最终我们意识到 NoSQL 不是解决所有问题的银弹,而 NoSQL vs...

2019-08-14 11:33:00 266

原创 作为一名Java程序员,如何做到不接私活也能月薪38k?

接私活 对程序员这个圈子来说是一个既公开又隐私的话题,不说全部,应该大多数程序员都有过想要接私活的想法,当然,也有部分得道成仙的不主张接私活。但是很少有人在公开场合讨论私活的问题,似乎都在避嫌。就跟有人下班后跑滴滴一样,程序员私有时间接点活挣点钱不也很正常么,不过不要在上班时间就行,就跟你上班期间出去跑滴滴一样。但是我是不建议接私活的,接私活会浪费自己...

2019-08-14 10:41:00 738

原创 我们总是被贴上「爱跳槽」标签,程序员到底什么时候该考虑辞职?

我们总是被贴上「爱跳槽」标签,程序员到底什么时候该考虑辞职?很多人想要辞职但是因为怕被贴上「爱跳槽」的标签而裹足不前。从我观察的结果来看,很多程序员趋向于为了所谓的「声誉」而呆在老公司,但是在后期将两者相比较,「呆在老公司」的程序员处理问题的经验和职业发展前景远远不如那些频繁跳槽的。正如我以前曾经说过,有的公司甚至非常愿意在岗位上看到一些积极...

2019-08-13 14:58:00 158

原创 JAVA架构技术演进,阿里架构师到底有多牛逼?

V1.0拥抱架构师JAVA架构技术演进,阿里架构师到底有多牛逼?V2.0拥抱微服务JAVA架构技术演进,阿里架构师到底有多牛逼?V3.0拥抱互联网实战JAVA架构技术演进,阿里架构师到底有多牛逼?Spring全家桶Spring框架/Boot框架/微服务JAVA架构技术演进,阿里架构师到底有多牛逼...

2019-08-12 17:17:00 565

原创 周一福利!分享Nginx实战——取代Apache的高性能Web服务器

周末福利!分享Nginx实战——取代Apache的高性能Web服务器众所周知,Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于20...

2019-08-12 13:54:00 304

原创 超全面详解Java开发环境搭建(看完收藏)

在项目产品开发中,开发环境搭建是软件开发的首要阶段,也是必须阶段,只有开发环境搭建好了,方可进行开发,良好的开发环境搭建,为后续的开发工作带来极大便利。对于大公司来说,软件开发环境搭建工作一般是由运维来做,然而,对于小公司来说,这个工作就交给开发人员来做了,如开发经理。不管这个工作是交给运维人员做,还是交给开发人员做,能确定的是:做这件事的人,一定是个...

2019-08-12 11:08:00 1590

原创 阿里架构师用心整理JVM与性能优化核心知识分享

QQ截图20190810153954.pngJVM是Java Virtual Machine(Java 虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java语言的一个非常重要的特点就是平台无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要...

2019-08-10 17:02:00 190

原创 Redis集群架构+Dubbo开发框架+SSO单点登录+Nginx+ZooKeeper

Redis集群架构+Dubbo开发框架+SSO单点登录+Nginx+ZooKeeperRedis集群架构Redis集群架构+Dubbo开发框架+SSO单点登录+Nginx+ZooKeeper【课程介绍】Redis是现在使用为广泛的NoSQL数据库技术,其自身不仅拥有着良好的操作性能,也被广泛的应用于各种集群架构的数据整合处理...

2019-08-10 10:00:00 159

原创 25岁北漂程序员,如果不想35 岁被淘汰,请把它当成一种信仰

25岁,一个北漂程序员,入职三年,Java中级工程师,月薪15k,965的工作经常干成996,比起老家的同龄人,我拥有一份不错的薪水,但是想在北京安家,梦想似乎遥不可及。image北京大概一年有5万人加入IT行业,这些人和你一起抢饭碗,你随时可能被淘汰掉。现实中的你,没办法谈恋爱,没有朋友,没房没车没钱,似乎得不到任何人的认可,每天坐着单...

2019-08-06 16:35:00 810

原创 Sharding-JDBC教程:Spring Boot整合Sharding-JDBC实现数据分表+读写分离

读写分离在上一篇文章介绍了如何使用Sharing-JDBC实现数据库的读写分离。读写分离的好处就是在并发量比较大的情况下,将查询数据库的压力 分担到多个从库中,能够满足高并发的要求。比如上一篇实现的那样,架构图如下:image数据分表当数据量比较大的时候,比如单个表的数据量超过了500W的数据,这时可以考虑将数据存储在不同的表中。比如将...

2019-08-06 09:55:00 318

原创 创业公司技术总监,自信满满面试上市公司,结果不期而然

1、先来个故事主人公介绍这是我朋友的故事,以第一人称来介绍首先,大概介绍下自己,后端开发8年,头两年用.NET,之后用Python至今,大概六年。大概工作到第三年的时候,就开始兼着任管理职位。工作地点是在一个三、四线的沿海城市,本地IT业不发达,公司规模普遍偏小,对技术要求不高,但需要较为全面的人才。而我长时间在这样的氛围下工作,慢慢也成长为一...

2019-08-05 16:13:00 533

原创 作为一名程序员,谁没跳过槽,“6”招让你“空降”大厂

作为一名程序员,谁没跳过槽,“6”招让你“空降”大厂作为一名程序员,没有谁没跳过槽撇开在跳槽时对所“空降”的企业所需要的行业知识知根知底而“得心应手”,从而“稳定”外,其他人可能或多或少都有过因“不适应”新单位环境而又被迫再离开的厄运,以至于在再“找工作”时因为不能“骑马选马”而每况日下!有32.98%的开发者在过去一年(2013)中曾...

2019-07-30 21:45:00 231

原创 最近很火的MySQL:抛开复杂的架构设计,MySQL优化思想基本都在这

优化一览图image优化image笔者将优化分为了两大类:软优化和硬优化。软优化一般是操作数据库即可;而硬优化则是操作服务器硬件及参数设置。1、软优化1)查询语句优化首先我们可以用EXPLAIN或DESCRIBE(简写:DESC)命令分析一条查询语句的执行信息。例:<pre style="margin: 0p...

2019-07-30 21:38:00 115

原创 三千字讲清TypeScript与React的实战技巧

很多时候虽然我们了解了TypeScript相关的基础知识,但是这不足以保证我们在实际项目中可以灵活运用,比如现在绝大部分前端开发者的项目都是依赖于框架的,因此我们需要来讲一下React与TypeScript应该如何结合运用。如果你仅仅了解了一下TypeScript的基础知识就上手框架会碰到非常多的坑(比如笔者自己),如果你是React开发者一定要看过本文...

2019-07-26 21:18:00 366

原创 如何进行高效的源码阅读:以Spring Cache扩展为例带你搞清楚

如何进行高效的源码阅读:以Spring Cache扩展为例带你搞清楚摘要日常开发中,需要用到各种各样的框架来实现API、系统的构建。作为程序员,除了会使用框架还必须要了解框架工作的原理。这样可以便于我们排查问题,和自定义的扩展。那么如何去学习框架呢。通常我们通过阅读文档、查看源码,然后又很快忘记。始终不能融汇贯通。本文主要基于Spring ...

2019-07-25 21:57:00 182

原创 架构不容错过干货之分布式系统的负载均衡

一、 什么是负载均衡?什么是负载均衡?记得第一次接触 Nginx 是在实验室,那时候在服务器部署网站需要用 Nginx 。Nginx 是一个服务组件,用来反向代理、负载平衡和 HTTP 缓存等。那么这里的 负载均衡 是什么?负载均衡(LB,Load Balance),是一种技术解决方案。用来在多个资源(一般是服务器)中分配负载,达到最优化资源使用,避...

2019-07-25 17:04:00 85

原创 Java8 Stream不好用?如何通过 IntelliJ IDEA 提升撸码效率

目录Java8 Stream API 的不友好性借助 IntelliJ IDEA 来优化一下2.1 新建 Stream Live Templates2.2 顺手把其他常用的模板设置一下Java8 Stream API 的不友好性Java8 自 2014 年 3 月发布以来,已经过去很多个年头了。在公司内部也已逐渐将所有的生产代码迁移到这个版...

2019-07-25 16:31:00 183

原创 抽象同步队列AQS——AbstractQueuedSynchronizer锁详解

AQS——锁的底层支持谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDown...

2019-07-22 21:02:00 158

原创 Java多线程之Executor框架<Callable、Future、Executor和ExecutorService>

引言Executor框架是指JDK 1.5中引入的一系列并发库中与Executor相关的功能类,包括Executor、Executors、ExecutorService、Future、Callable等。一、为什么要引入Executor框架?1、如果使用new Thread(...).start()的方法处理多线程,有如下缺点:① 开销大。对于JV...

2019-07-20 20:54:00 138

原创 限流降级神器,带你解读阿里巴巴开源 Sentinel 实现原理

Sentinel 是阿里中间件团队开源的,面向分布式服务架构的轻量级高可用流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助用户保护服务的稳定性。大家可能会问:Sentinel 和之前常用的熔断降级库 Netflix Hystrix 有什么异同呢?Sentinel官网有一个对比的文章,这里摘抄一个总结的表格,具体的对...

2019-07-12 21:03:00 508

原创 互联网、科技公司校招偏好,解读高校就业数据,应届毕业生的后宫

推荐这是一个信息泛滥的社会,但信息不等于知识,不等于文化。在繁杂的信息中,梳理出有价值的知识是这个时代最需要的能力。沉淀和提炼信息的能力,是一种强大的学习力,也是难能可贵的求知欲和行动力。前言最近,各大高校纷纷发布了毕业生的就业质量报告,其中部分高校公布了重点就业单位及数据(也有高校称之为全球五百强企业就业情况),笔者整理了27所高校的就业报告,发现...

2019-07-12 20:50:00 1992

原创 面试题:说说你理解的适配器模式?

前语:不要为了读文章而读文章,一定要带着问题来读文章,勤思考面试题:说说你理解的适配器模式?序言在以前学习适配器模式时,有个经典例子:就是有些电器的工作电压不是220V, 比如电脑工作电压20V,但是我们家庭用电的电压是220。怎么让20V的电脑在220V的电压下工作,这就需要一个电源适配器——俗称充电器或变压器。有了这个电源适配器 家庭...

2019-07-11 22:36:00 593

原创 我们在开发中需要遵循的几个设计原则!

一、开发原则S:单一职责SRPO:开放封闭原则OCPL:里氏替换原则LSPI:接口隔离法则D:依赖倒置原则DIP合成/聚合复用原则迪米特法则在软件开发中,前人对软件系统的设计和开发总结了一些原则和模式, 不管用什么语言做开发,都将对我们系统设计和开发提供指导意义。本文主要将总结这些常见的原则和具体阐述意义。面向对象的基本原则(solid)...

2019-07-11 22:01:00 324

原创 谁说数据库不适合Docker?解读MySQL DB Mesh的创造性实践

以 Docker 为代表的容器技术正在以一种不可阻挡的趋势席卷全球,但真正的落地过程依然十分坎坷。6 月 20 日北京,在 2019 企业容器创新大会上,业内首家覆盖业务全流程、运营全体系的移动信贷整体技术服务商飞贷金融科技的副总裁陈定玮分享了飞贷的数据库生产容器化及 Istio 应用的经验。基于飞贷金融科技容器化道路的实践与经验,InfoQ 记者也专访...

2019-07-08 21:53:00 275

原创 Java 并发编程 -- 线程池源码实战

一、概述小编在网上看了好多的关于线程池原理、源码分析相关的文章,但是说实话,没有一篇让我觉得读完之后豁然开朗,完完全全的明白线程池,要么写的太简单,只写了一点皮毛,要么就是是晦涩难懂,看完之后几乎都是一知半解。我想要么是笔者智商捉急,要么就是那些写博客的人以为我很懂所以就大概讲了讲,再或者是作者压根就没认真去讲述线程池。当然多线程以及并发这一块的知识点...

2019-07-08 21:51:00 400 1

原创 死磕设计模式之单例模式,饿汉、懒汉统统搞定

image单例模式单例模式可能是代码最少的模式了,但是少不一定意味着简单,想要用好、用对单例模式,还真得费一番脑筋。本文对Java中常见的单例模式写法做了一个总结,如有错漏之处,恳请读者指正饿汉1.饿汉如果应用程序总是创建并使用单例实例或在创建和运行时开销不大classSingle {private Single(){} priv...

2019-07-05 17:54:00 94

原创 微服务架构之幂等性问题及设计思想,你不得不知的一些幂等方案

微服务架构之幂等性问题及设计思想,你不得不知的一些幂等方案前言小伙伴们有没有遇到过生产环境经常出现过重复的数据?在排查问题的时候,数据又是正常的。这个是何解呢?怎么会出现这种情况,而且还很难排查问题。今天我给大家分享一下这里的原因,以及解决方案。罪魁祸首产生重复数据或数据不一致(假定程序业务代码没问题),绝大部分就是发生了重复的请求,重...

2019-07-04 16:19:00 229

原创 我是技术总监,你干嘛总问我技术细节?

最近在公众号号上看到了一篇文章,读后蛮有感触的,程序员常常因为走技术还是管理两个方向而犹豫不决,希望通过以下文章的分享对大家有所思考,以下是作者原文。image熟悉我的人都知道,我有位从事猎头工作的老婆,平时的工作是专为某些医疗、金融投资机构提供中、高级岗位职位人才招聘及相关咨询服务。相比之下,这项工作对业务专业性与人脉关系要求较高,经常...

2019-07-03 20:57:00 237

原创 通过IDEA快速定位和排除依赖冲突

1 |前言我们程序员在开发的时候经常会遇到各种各样的 BUG 问题,其中大部分是业务逻辑异常,还有一些是代码书写不规范造成的异常例如:NullPointException(NPE),IndexOutOfBoundsException 等等,其实这些我们都好定位和修复。但是还有一些运行时异常定位起来是特别头疼的,那就是 jar 包冲突引起的异常。一般程...

2019-07-03 20:55:00 242

原创 Spring Boot引起的“堆外内存泄漏”排查及经验总结

背景为了更好地实现对项目的管理,我们将组内一个项目迁移到MDP框架(基于Spring Boot),随后我们就发现系统会频繁报出Swap区域使用量过高的异常。笔者被叫去帮忙查看原因,发现配置了4G堆内内存,但是实际使用的物理内存竟然高达7G,确实不正常。JVM参数配置是“-XX:MetaspaceSize=256M -XX:MaxMetaspaceSize...

2019-06-28 15:38:00 358

原创 分布式系统中session一致性问题

分布式系统中session一致性问题业务场景在单机系统中,用户登陆之后,服务端会保存用户的会话信息,只要用户不退出重新登陆,在一段时间内用户可以一直访问该网站,无需重复登陆。用户的信息存在服务端的 session 中,session中可以存放服务端需要的一些用户信息,例如用户ID,所属公司companyId,所属部门deptId等等。...

2019-06-26 21:37:00 223

原创 程序员,知道Mysql中事务ACID的原理吗?

引言照例,我们先来一个场景~面试官:"知道事务的四大特性么?"你:"懂,ACID嘛,原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)!"面试官:“你们是用mysql数据库吧,能简单说说innodb中怎么实现这四大特性的么?”你:"我只知道隔离性是怎么做的balabala...

2019-06-25 21:51:00 161

原创 JAVA中令人眼花撩乱的数字魔法

五月的深圳空气中弥漫起初夏的味道,淡淡的,暖暖的。春日里不太张扬的阳光也掺入这股气息…(烟哥好文采!)这天,我愉快的喝着霸气芝士莓莓莓。一边东张西望,寻找着可以装13的机会。一切正如下面这张图这样QQ截图20190625170052.png这时,小刘出现了!没错,就是那个大家期待的小刘出现了!她拿着一本《XXXjava笔试指南》来找我。...

2019-06-25 17:02:00 250

原创 面试官:spring boot和spring究竟有啥区别?

面试官:spring boot和spring究竟有啥区别?前言今天本篇文章主要聚焦说说,spring boot和spring究竟有啥区别,重点对比MVC模块以及Security模块在两大框架使用时的区别。1 、啥是spring?简而言之,Spring框架为开发Java应用程序提供了全面的基础架构支持。它包含一些很好的功能,如依赖注入和...

2019-06-24 21:10:00 39256 3

空空如也

空空如也

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

TA关注的人

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