自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一道面试题引发的“血案”

前言es6之前,js的作用域只有两种,全局作用域和函数作用域,没有像C和java那样的块级作用域,于是对于学了C或者java这类语言的然后学习js的同学来说,会遇到很多坑。js的这个特性导致了代码的可阅读性、维护性和容错性都不太好。因此es6可以用let来申明变量,这种方式申明的变量是只能在块作用域里访问,不能跨块访问,也不能跨函数访问。那么我们在使用let的时候,真的就完全知道它怎么用了吗?...

2018-09-27 19:08:37 253

原创 Java并发编程:阻塞队列

本文先讲述一下java.util.concurrent包下提供主要的几种阻塞队列,然后分析了阻塞队列和非阻塞队列的中的各个方法,接着分析了阻塞队列的实现原理,最后给出了一个实际例子和几个使用场景。  一.几种主要的阻塞队列  二.阻塞队列中的方法 VS 非阻塞队列中的方法  三.阻塞队列的实现原理  四.示例和使用场景  若有不正之处请多多谅解,并欢迎批评指正。一.几种主要...

2018-09-19 17:45:31 201

原创 为什么Java大神,都在看Spring Boot和Spring Cloud的书?

如果你是一名Java开发人员,并且最近正打算学习Spring Boot和Spring Cloud框架并寻找一些关于它们的最好的书籍,那么,你今天就来对地方了。本文,我们将讨论一些学习Spring Boot和Spring Cloud的最佳书籍,在这之前,我们先来探讨一下,什么是微服务架构以及Spring Boot和Spring Cloud如何帮助开发Java中的微服务。微服务的基本思想在于考...

2018-09-18 21:00:37 363

原创 架构师视角:对JVM架构进行解析

每一个Java 开发人员都知道字节码由JRE (Java运行时环境)执行。但许多人不知道JRE是Java虚拟机(JVM)的实现, 它负责分析字节码、解析并执行代码。作为一个开发人员了解JVM架构是非常重要的,因为它使我们能更高效的编写代码。在这篇文章中我们将更深入了解Java中的JVM架构以及JVM的各个组件。JVM是什么?虚拟机 是物理机器的一个软件实现。Java运行在VM上,实现WOR...

2018-09-15 16:50:01 309

原创 听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构吧

微服务架构是互联网很热门的话题,是互联网技术发展的必然结果。它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。虽然微服务架构没有公认的技术标准和规范或者草案,但业界已经有一些很有影响力的开源微服务架构框架提供了微服务的关键思路,例如Dubbo和Spring Cloud。各大互联网公司也有自研的微服务框架,但其模式都于这二者相差不大。微服务主要的优势如下:...

2018-09-15 16:32:33 396

原创 阿里架构设计之初体验,送给准备进阶架构的朋友(个人总结)

1 基本概念和目的架构设计的目的是为了解决系统复杂度带来的问题,并不是要面面俱到,不需要每个架构都具备高性能、高可用、高扩展等特点,而是要识别出实际业务实际情况的复杂点,然后有有针对性地解决问题,即:有的放矢,而不是贪大求全。 在实际情况中,不一定每个系统都要做架构设计,需要结合实际情况。有时候最简单的设计开发效率反而是最高的,架构设计毕竟要投入时间和人力,这部分投入如果用来尽早编码,项目...

2018-09-15 16:17:11 427

原创 2017阿里,百度,京东java面试+笔试大合集,2018的你会吗?

2017阿里,百度,京东java面试+笔试大合集1、阿里面试(一二面合集)1、介绍一下你自己。2、介绍一下你认为做的最好的一个项目。3、请用五分钟的时间把你做的项目的流程图画一下。4、项目中你遇到的难点是什么?怎么解决的?5、项目中你认为哪个技术是你最拿手的?6、介绍一下HTTP协议7、如何把一个大的日志文件哈希到不同的哈希表中,这些哈希表的存储格式是什么?...

2018-09-14 16:24:48 398

原创 支付宝架构师眼里的高可用与容灾架构演进

持续可用和快速容灾切换的能力,是技术人员追求的极致目标。在架构设计中,容灾设计强调的是系统对外界环境影响具备快速响应能力,节点级别的快速恢复能力,保障系统的持续可用。去年12月18日,全球架构师峰会上,阿里巴巴高级系统工程师曾欢(善衡)结合互联网金融业务及系统特性,分享了在支付宝系统架构演进中,每个阶段的高可用和容灾能力建设的解决思路。高可用和容灾架构的意义企业服务、云计算、移动互联网...

2018-09-12 17:31:06 227

原创 并发经验八年架构师:缓存在高并发场景下该如何问题

 缓存一致性问题当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异现象。这就比较依赖缓存的过期和更新策略。一般会在数据发生更改的时,主动更新缓存中的数据或者移除对应的缓存。缓存并发问题缓存过期后将尝试从后端数据库获取数据,这是一个看似合理的流程。但是,在高并发场景下,有可能多个请求并发的去从数据库获取数据...

2018-09-09 17:23:10 1721

原创 从 Spring Cloud 看一个微服务框架的「五脏六腑」

Spring Cloud 是一个基于 Spring Boot 实现的微服务框架,它包含了实现微服务架构所需的各种组件。注:Spring Boot 简单理解就是简化 Spring 项目的搭建、配置、组合的框架。因为与构建微服务本身没有直接关系,所以本文不对 Spring Boot 进行展开。另外本文有一些例子涉及到 Spring 和 Spring Boot,建议先了解一下 Spring 和 Sp...

2018-09-07 19:44:19 211

原创 阿里资深架构师私下峰会:了解这几点,人人皆是优秀架构师

前言:最近有好多人问我说:“George,怎样才能成为公司里的前线主力架构师,我现在在公式已经干了快五年了,现在还是一个默默无闻的程序员,我也通过很多种渠道来突破我现在瓶疾,但就是走不出来,技术也一直没有突破上去,我真的是没有办法了,通过朋友推荐介绍,说您这里可以解决我的技术瓶疾,所以我想请你帮我突破一下技术方面上的瓶疾。”你们是否有也有类似这样的问题——“天天写业务代码的程序员,怎么成为...

2018-09-06 16:47:28 234

原创 BAT公司“万变不离其宗”架构的演化历程

大型网站的挑战主要来自庞大的用户,高并发的访问和海量数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得棘手。大型网站架构主要就是解决这类问题。大型网站系统的特点高并发,大流量需要面对高并发用户,大流量访问。Google 日均 PV 35 亿,日 IP 访问数 3 亿;腾讯 QQ 的最大在线用户数 1.4 亿(2011年数据)。高可用系统 7 x 2...

2018-09-05 21:07:25 197

原创 从MVC框架看MVC架构的设计

前言 尽管MVC早已不是什么新鲜话题了,但是从近些年一些优秀MVC框架的设计上,我们还是会发现MVC在架构设计上的一些新亮点。本文将对传统MVC架构中的一些弊病进行解读,了解一些优秀MVC框架是如何化解这些问题的,揭示其中所折射出的设计思想与设计理念。MVC回顾作为一种经典到不能再经典的架构模式,MVC的成功有其必然的道理,这个道理不同的人会有不同的解读,笔者最认同的一种观点是:通过把...

2018-08-29 15:51:05 192

原创 深入解析Spring架构与设计原理-AOP

关于AOP的个人理解 AOP联盟定义的AOP体系结构把与AOP相关的概念大致分为了由高到低、从使用到实现的三个层次。关于这个体系结构,个人的理解是这样的,从上往下,最高层是语言和开发环境,在这个环境中可以看到几个重要的概念:base可以视为待增强对象,或者说目标对象;aspect指切面,通常包含对于base的增强应用;configuration可以看成是一种编织或者说配置,通过在AOP体系中提供...

2018-08-27 17:26:36 190

原创 三条路线告诉你如何掌握Spring IoC容器的核心原理

一、前言前三篇已经从历史的角度和大家一起探讨了为什么会有Spring,Spring的两个核心概念:IoC和AOP的雏形,Spring的历史变迁和如今的生态帝国。本节的主要目的就是通过一个切入点带大家一起学习一下Spring IoC的核心原理,正如从历史的角度出发讲述为什么会有Spring一样,希望通过这个切入点能让你轻松的掌握住Spring IoC的核心原理。本篇文章假设你已经可以熟练的使...

2018-08-27 15:28:05 225

原创 Spring框架自学之路——简易入门

介绍Spring框架是个轻量级的Java EE框架。所谓轻量级,是指不依赖于容器就能运行的。Struts、Hibernate也是轻量级的。轻量级框架是相对于重量级框架而言的,重量级框架必须依赖特定的容器,例如EJB框架就必须运行在Glassfish、JBoss等支持EJB的容器中,而不能运行在Tomcat中。——《Java Web整合开发 王者归来》Spring以IoC、AOP为主要思...

2018-08-25 21:24:46 224

原创 设计模式深入学习---Prototype原型模式

今天我们继续来聊下Prototype原型模式。这篇应该是关于工厂设计模式的最后一篇。下次就往内部讲解结构类型的设计模式。首先我们说下Prototype原型模式的用法。Prototype原型模式主要是用来处理依赖关系的倒置。 比如抽象A类依赖了实现细节B, 拿我们上个帖子举例,比如我们的小车依赖于汽油发动机。 但是当我们的小车不使用汽油发动机,改用电动了,那这时候修改起来就比较痛苦了...

2018-08-24 19:50:37 314

原创 你真的会写单例模式吗?

单例模式可能是代码最少的模式了,但是少不一定意味着简单,想要用好、用对单例模式,还真得费一番脑筋。本文对Java中常见的单例模式写法做了一个总结,如有错漏之处,恳请读者指正。饿汉法顾名思义,饿汉法就是在第一次引用该类的时候就创建对象实例,而不管实际是否需要创建。代码如下:public class Singleton {     private static Singleton = ...

2018-08-23 20:00:17 174

原创 设计模式之简单工厂模式

Simple Factory Pattern:Returns different instances based on different parameters.简单工厂模式:  简单工厂模式又称为静态工厂方法模式,它是一种类创建型模式。在简单工厂模式中可以根据参数的不同返回不同类的实例。简单工厂模式专门定义了一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂...

2018-08-23 16:47:08 210

原创 详解 Java 中的三种代理模式

代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法.举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明...

2018-08-23 16:13:33 200

转载 罗辑思维首席架构师:Go微服务改造实践

一、改造的背景得到最早的APP就是一个单体的PHP的应用,就是图中最大的黄色块,中间蓝色块代表不同模块。下面的黄色部分代表passport 和支付系统,这个是在做得到之前就存在的系统,因为公司早期有微信里的电商业务。后来发现有一些业务逻辑并不需要从得到走,还有一些数据格式转换的工作也不需要跟业务完全耦合,所以加了一层PHP的网关就是下图看到的V3那部分。但是这样做也有一些问题,PHP后...

2018-08-23 15:36:19 274

原创 程序员必须知道的字符集与字符编码详解

在软件的编码和实现中,我们可能会碰到个 一个比较头疼的问题--编码,不同字符间的编码和解码,你确定了解各种字符的编码吗?一个朋友问到了我这 个问题,我虽然能回答一两个出来,但是感觉已经有点模糊,混乱了,在网上搜了搜,在书上翻了翻,总结一下吧。首先按照字符编码的历程来看:1.  ASCII我们需要了解的最早编码是ASCII码。它用7个二进制位来表示,由于那个时期生产的大多数计算机使用8位大小...

2018-08-21 19:30:57 516

原创 自学java和上java培训班分别看什么书?

最近有许多的同学们准备或已开始学习java,然而不少人对于学习java看什么书很是困惑。事实却是如此,在北京图书大厦和中关村图书大厦销售的Java教程有几百本,如何选择?经过我们对许多初中高级java程序员的访问和调查,得出了最受java学习者欢迎的图书。这些图书要么是国外经典,要么是国内畅销,这些书是经过大量师兄师姐们学习并传诵的,是带着口碑传播的精品。它们都具备统一的特性“精辟”“易懂”“...

2018-08-21 17:47:45 1789

原创 Mysql分库分表方案

Mysql分库分表方案 1.为什么要分表:当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。mysql中有一种机制是表锁定和行锁定,是为了保证数据的完整性。表锁定表示你们都不能对这张表进行操作,必须等我对表操作完才行。行锁定也一样,别的sql必须等我对这条数据操作完了,才能对这条数...

2018-08-21 17:31:59 160

原创 程序媛眼中的程序猿原来是这样子的!

一直都想写一篇关于描述程序员的文章,但是一直没能开头,一来因为文笔不好,更主要的原因是貌似对程序员既熟悉又不熟悉,很怕写出来的是以偏概全,给大家造成对程序员的既定印象,不过,管他呢,写了再说,我就主要写写我眼中的程序员,我想应该算是一篇洗刷大家对程序员既定印象的文章吧~一、没大家刻板印象中的那样呆板网络上有太多段子和图文说程序员呆板、没激情、不浪漫……,虽说大多都是程序员自黑,但是却给非I...

2018-08-20 19:58:38 1317

原创 谈一谈我所了解的HTTPS

前言这篇文章我想写很久了,本来想等应用用上https之后再进行阐述。但是时不我待,感觉我们的项目在需求的压力下,暂时没有人、精力来完善这一块。但是我并不想我之前的研究白费,所以我就在这里写下,我所了解的https。http协议首先我并不会很深入的去探讨这个东西,即使我曾经花了很长的时间去研究这个东西。主要是我考虑到1、 自己没有系统的去学习这一块的知识,讲解的会比较的肤浅。...

2018-08-20 17:53:59 216

原创 深入理解OkHttp源码及设计思想

前言用OkHttp很久了,也看了很多人写的源码分析,在这里结合自己的感悟,记录一下对OkHttp源码理解的几点心得。整体结构网络请求框架虽然都要做请求任务的封装和管理,但是最大的难点在于网络请求任务的多样性,因为网络层情况复杂,不仅要考虑功能性的建立Socket连接、文件流传输、TLS安全、多平台等,还要考虑性能上的Cache复用、Cache过期、连接池复用等,这些功能如果交错在一起,...

2018-08-20 17:31:40 274

原创 TreeMap源码分析,看了都说好

一、简介TreeMap最早出现在JDK 1.2中,是 Java 集合框架中比较重要一个的实现。TreeMap 底层基于红黑树实现,可保证在log(n)时间复杂度内完成 containsKey、get、put 和 remove 操作,效率很高。另一方面,由于 TreeMap 基于红黑树实现,这为 TreeMap 保持键的有序性打下了基础。总的来说,TreeMap 的核心是红黑树,其很多方法也是对...

2018-08-20 16:44:49 235

原创 怎样回答技术面试题?

阅读目录1. 听清题,勿抢答2. 从全局到具体3. 不要骄傲自负,也不妄自菲薄4. 简历切勿太夸张,更不要全是产品描述5. 广度与深度6. 积极主动7. 有证明更佳最近一段时间团队也在招人,这期间筛选了不少简历,面试了一些候选人。这里谈谈我自己的对「怎样回答面试题」的理解。欢迎各位各位老司机,新司机一起留言交流,我们一起探讨下,无论做为「面试官」,或者是「求职者...

2018-08-20 16:22:20 354

原创 想要成为大牛应该做到以下几点

1 前言王镜鑫是山东大学软工专业大三学生,学校ING工作室后台组组长,工作党,参加了18年实习生春招,在三周的时间内"收割"了三家大厂的Offer:美团、百度和阿里巴巴, 最后选择了心仪的阿里。联想到近期我接触到的几位优秀年轻人,我觉得他们都有一个共同的特质:确定目标,并且全力以赴地朝目标前行。说起来简单,做起来真不容易。人和人之间的差距也许就是这么形成的吧!友情提示: 文章长达万字,...

2018-08-19 16:00:10 343

原创 为什么程序员千万不要重写代码?

你所做的事情,也许暂时看不到成果,但不要灰心或焦虑,你不是没有成长,而是在扎根。图片来自网络0 前言程序员都有一颗工程师的心,所以当他们到一片新的场地想做的第一件事就是,将旧的一切推倒重来。是的,他们决不会满足于简单的增量劳动。或许这种微妙的心理定位可以解释:为什么程序员进入新项目组后宁愿丢掉旧代码重新写,也不愿意修修补补,他们认为旧代码简直一团糟。但是,事实上真是这样吗?...

2018-08-19 14:59:11 1774 1

原创 浅谈微服务基建的逻辑

 前言这篇文章主要目的是面向初接触微服务的朋友简单介绍微服务基础建设所需要的各个模块以及缘由。起点首先,我们得有一个“服务”。根据定义,我们可以把每个服务实例都视作一个黑盒。这个盒子有着明确的输入点和输出点,并且(理想情况下)仅通过这些输入和输出点和外界产生关联。每个服务实例会拥有专属的网络地址、独立的计算资源,并且独立部署。客户端通过访问服务实例的地址来调用服务 API。不同服务也可...

2018-08-17 22:28:06 169

原创 Spring Cloud Gateway真的有那么差吗?

前言Spring Cloud从一开始最受大家质疑的就是网关性能,那是由于Spring Cloud最初选择了使用Netflix几年前开源的Zuul作为基础,而高性能版的Zuul 2在经过了多次跳票之后,对于Spring这样的整合专家可能也不愿意再继续等待,Spring Cloud Gateway应运而生,那么这个由Spring社区自己开发推出的网关又如何呢?最近一篇《实测 | 转型微服务,这4大...

2018-08-17 22:03:03 2772

原创 怎样回答技术面试题?

一、听清题,勿抢答面试,首先也是一个人与人交流沟通的过程。有些时候,面试官还没说完问题,面试者就会打断说「这个问题我知道...」。打断不利于沟通,同时,这样其实导致面试题没听清。比如面试题是「如何理解Java 的 JMM,...」后面还没说的时候,面试者打断说「你说的这个我会。。。,包括方法区,堆,栈 balabala」这就答的都跑偏了。二、从全局、到具体如果问题是「 Spring 是...

2018-08-17 20:48:54 173

原创 浅谈微服务基建的逻辑

这篇文章主要目的是面向初接触微服务的朋友简单介绍微服务基础建设所需要的各个模块以及缘由。起点首先,我们得有一个“服务”。根据定义,我们可以把每个服务实例都视作一个黑盒。这个盒子有着明确的输入点和输出点,并且(理想情况下)仅通过这些输入和输出点和外界产生关联。每个服务实例会拥有专属的网络地址、独立的计算资源,并且独立部署。客户端通过访问服务实例的地址来调用服务 API。不同服务也可以相互调用...

2018-08-15 22:28:17 148

原创 自学编程需要注意什么?

前几天在知乎上看到这么一个问题,一位在读学生,自己非常想自学编程,但是很怕走一些弯路,于是提问「自学编程需要注意什么?」,我看了一圈回答,看起来都不是自学过来的,很多回答抓不到重点。我的读者都知道,我是非科班 0 基础自学过来的,我很清楚一个人自学编程有哪些误区,有哪些需要注意的地方,以及哪些可以提升效率的地方。所以,我从我的自学经历给一些自学编程的后来者总结了一些建议,希望给正在自学编程或者...

2018-08-15 17:08:00 510

原创 跳槽时,这些Java面试题99%会被问到

我在 Oracle 已经工作了近 7 年,面试过从初级到非常资深的Java工程师,且由于 Java 组工作任务的特点,我非常注重面试者的计算机科学基础和编程语言的理解深度,可以不要求面试者非要精通 Java。所以,如果你对 C/C++ 等其他语言能够掌握得非常系统和深入,也是符合需求的。工作多年以及在面试中,我经常能体会到,有些面试者确实是认真努力工作,但坦白说表现出的能力水平却不足以通过面试...

2018-08-15 15:13:56 156

原创 浅谈微服务基建的逻辑

起点首先,我们得有一个“服务”。根据定义,我们可以把每个服务实例都视作一个黑盒。这个盒子有着明确的输入点和输出点,并且(理想情况下)仅通过这些输入和输出点和外界产生关联。每个服务实例会拥有专属的网络地址、独立的计算资源,并且独立部署。客户端通过访问服务实例的地址来调用服务 API。不同服务也可以相互调用。配置管理器:统一管理配置在微服务体系中,每个服务都独立部署和运行,团队可以根据...

2018-08-14 21:54:44 160

原创 SpringBoot中使用ShardingJdbc切分数据库表

本文主要将业界知名的开源分库分表中间件—ShardingJdbc集成至SpringBoot工程中,利用ShardingJdbc的数据库切分能力来实现库表水平切分和扩展的目标,提高分布式系统整体的并发量,解决数据库中的单表因数据量过大而带来得各种瓶颈和影响(本文所述的ShardingJdbc中间件以其1.X版本为参考,2.X版本和1.X版本有较大区别,在后面的文章中会有介绍)。分库分表中间件Sh...

2018-08-14 21:27:52 637

原创 Netty-在-Dubbo-中如何应用

前言众所周知,国内知名框架 Dubbo 底层使用的是 Netty 作为网络通信,那么内部到底是如何使用的呢?今天我们就来一探究竟。1. dubbo 的 Consumer 消费者如何使用 Netty注意:此次代码使用了从 github 上 clone 的 dubbo 源码中的 dubbo-demo 例子。代码如下:System.setProperty("java.net.pref...

2018-08-14 20:42:06 263

空空如也

空空如也

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

TA关注的人

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