自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

欢迎来到技术宅的博客

觉得有收获的可以关注我,每周两篇原创干货技术内容

  • 博客(65)
  • 资源 (1)
  • 收藏
  • 关注

原创 2018“金三”之一线互联网公司Java高级面试题总结

JVM1、请介绍一下JVM内存模型??用过什么垃圾回收器都说说呗2、线上发送频繁full gc如何处理? CPU 使用率过高怎么办?如何定位问题?如何解决说一下解决思路和处理方法3、知道字节码吗?字节码都有哪些?Integer x =5,int y =5,比较x =y 都经过哪些步骤?4、讲讲类加载机制呗都有哪些类加载器,这些类加载器都加载哪些文件?手写一下类加载Demo5、知道osgi吗? 他是...

2018-03-31 21:08:20 622

原创 性能优化之MySQL调优篇

MySQL对于很多Linux从业者而言,是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已。图 - MySQL查询过程1.2 优化的哲学优化有风险,涉足需谨慎1.2.1 优化可能带来的问题优化不总是对一个单纯的环境进行...

2018-03-31 17:10:57 184

原创 干货:分布式系统学习笔记

一、分布式的两大场景数据存储的分布式服务的分布式二、数据存储的分布式比如海量数据,单机存储不下,需要多机,以集群的方式存储,即为数据的分布式存储,数据存储的分布式一般涉及如下几个方面数据的分片策略全局主键的实现机制跨结点数据的聚合分布式事务数据容灾机制2.1数据分片策略2.1.1 基于数据范围来分比如库1,存放id 1到1000w的数据,库2存放id 1000w到2000w的数据优点 :单库数据规...

2018-03-30 22:35:25 153

原创 看完这几点,你就会知道微服务为什么这么火爆了

微服务体系的发展并不是一蹴而就的,经过了2014年前后的低潮期,微服务概念顶层的泡沫逐渐褪去,那些真正能够在企业落地的实践在一轮又一轮的大浪淘沙后被甄别、沉淀。在软件开发行业,微软服务正从一个流行术语转向实战战略。随着越来越多的企业开始采用微服务,行业内也累积了不少的经验教训。2017年秋天,红帽对客户进行一项微服务调查,发现了几个有趣的趋势,今天小编就跟大家分享一下。1、微服务被用来重新架构现有...

2018-03-30 20:23:35 1060

原创 别人工作2年半跳槽面试阿里,成功拿到offer,为什么你不可以?

2015年刚毕业的我,进入了一家小小的公司实习工作,在学校学了三年软件开发的我,还是想去寻找一份互联网行业的工作,这样更能学以致用发挥自己的特长。一直到18年三月份,我辞掉已有的工作,北上去面试,且成功拿到offer,面试回来后,好多人问我,你凭什么能拿到阿里的offer,你只不过是刚毕业工作两年的小白。当时我只对他们笑了笑,以谦虚的语气回答:运气好运气好!但其实并不是运气好这么简单的,没实力没底...

2018-03-29 16:53:52 892 1

转载 微服务(Microservice)那点事

WHAT - 什么是微服务微服务简介这次参加JavaOne2015最大的困难就是听Microservice相关的session,无论内容多么水,只要题目带microservice,必定报不上名,可见Microservice有多火。最喜欢其中一页。关于这个典故,可以参考this,此图适用于一切高大上的名字——技术有SOA,Agile,CLOUD,DevOps等等,古代有道,气,八卦等等。此类名词的最...

2018-03-29 15:53:55 195

原创 如何给老婆解释什么是微服务?

程序员有了老婆之后就是累,上次好不容易给她解释了什么是Restful,这不,麻烦又来了…一个周日的清晨,阳光洒在我的脸上,慢慢把我唤醒。我翻过身,感觉好像少了些什么东西,缓缓地睁开眼睛,“咦,老婆呢?”突然,我发现床上多了张纸条:看到这封信时,我已经在回娘家的路上,原因我相信你懂的。如果你不懂,请将信翻到背面。我一脸懵逼,将纸翻了过来:哼,你怎么可能不知道原因,你翻过来看就是想确认我发现的是不是你...

2018-03-28 22:33:10 125

转载 如何给老婆解释什么是微服务?

程序员有了老婆之后就是累,上次好不容易给她解释了什么是Restful,这不,麻烦又来了…一个周日的清晨,阳光洒在我的脸上,慢慢把我唤醒。我翻过身,感觉好像少了些什么东西,缓缓地睁开眼睛,“咦,老婆呢?”突然,我发现床上多了张纸条:看到这封信时,我已经在回娘家的路上,原因我相信你懂的。如果你不懂,请将信翻到背面。我一脸懵逼,将纸翻了过来:哼,你怎么可能不知道原因,你翻过来看就是想确认我发现的是不是你...

2018-03-28 22:23:22 1025

原创 推荐:微服务入坑详细指南

概念:微服务就是一些可独立运行、可协同工作的小的服务。微服务是现在特别流行的服务,微服务的字面意思是大家都很好理解,就是将系统拆分成很多小的独立系统,每个系统我们看成一个服务,从存储,缓存,部署相对独立。通过服务的小型化、原子化以及分布式架构的弹性伸缩和高可用性,可以实现业务之间的松耦合、业务的灵活调整组合以及系统的高可用性。为业务创新和业务持续提供了一个良好的基础平台。从概念中我们可以提取三个关...

2018-03-28 17:46:35 497

原创 掌握这几种微服务模式让你成为更出色的工程师

导读:对于很多工程师来说,进入微服务领域是很困难的。99%的服务属于五类之一,通过这种方式划分责任考虑如何通过管道服务一起管理特性,就像在Unixshell脚本中一样。所有的微服务有什么共同之处,域驱动设计之父Eric Evans将其定义为:“(服务)可以消费和生成消息。”考虑到这一点,对于每个服务模式,会讨论产生或使用消息的类型。这些消息可以再分为两类:事件和命令。开始之前,因为上下文很重要,我...

2018-03-28 17:15:49 297

原创 解析分布式锁之Zookeeper实现

实现分布式锁目前有三种流行方案,分别为基于数据库、Redis、Zookeeper的方案,其中前一种方案基于Redis的,前文中已经写明。现在我们来看下使用Zookeeper如何实现分布式锁。什么是Zookeeper?Zookeeper(业界简称zk)是一种提供配置管理、分布式协同以及命名的中心化服务,这些提供的功能都是分布式系统中非常底层且必不可少的基本功能,但是如果自己实现这些功能而且要达到高吞...

2018-03-27 21:18:05 285

原创 解析分布式锁之redis实现

摘要:分布式架构设计如今在企业中被大量的应用,而在不同的分布式节点进行协同工作的时候,节点服务的时序、结果的正确性以及执行成本也成为了必须考虑的重要因素。其中竞态条件会导致执行结果的不正确,不同服务节点同时处理同一任务也将耗费不必需的系统资源,如果解决呢?方式之一可以选择分布式锁,本文介绍如果通过redis实现分布式锁,也欢迎大家和我一起讨论。分布式锁的基本应用场景和设计原则我们先来看一个简单的案...

2018-03-27 21:04:25 183

原创 程序员的十年工作创业血泪史,万字长文,仔细读完,受益匪浅

本文所书写的内容,无论是对刚入门的程序员,还是工作了十年八年的程序员都有一些经验值得借鉴学习。(一)三年前的一个项目经验作者帮公司拉了一个政府的项目,但是由于经验较少,谈的价格很低,还有很多细节刚开始没有谈到,后面相当于收了很少的钱,給政府干了一个比较完善的项目,这节的经验就是:程序员一般不应该直接和客户谈项目,应该让专业的人去谈,他能把10万的项目谈到50万或更多。(二)2005年我的第一次软件...

2018-03-27 18:57:21 1190

原创 程序员的十年工作创业血泪史,万字长文,仔细读完,受益匪浅

吉日噶拉(在外企、上市公司工作过,自己也创业失败过,遇到过很多失败挫折,甚至露宿街头,但是最后还是挺过来了),是一个十几年的程序员了,本文介绍了他的相关经历,以及他的一些经验,无论是对刚入门的程序员,还是工作了十年八年的程序员都有一些经验值得借鉴学习。(一)三年前的一个项目经验作者帮公司拉了一个政府的项目,但是由于经验较少,谈的价格很低,还有很多细节刚开始没有谈到,后面相当于收了很少的钱,給政府干...

2018-03-27 16:55:09 1675 1

原创 JAVA:一篇文章理清多态

很多人总是喜欢,或者说错误地将JAVA中的多态理解得很复杂,最常见的错误说法就是所谓“方法的多态”,他们会给出类似下面的例子来佐证“多态是指方法的多态”://Enginner和Mechanic是Employee的子类,构造函数参数均为月薪salaryEmployee a=new Enginner(100);Employee b=new Mechanic(100);//getAnnualSa...

2018-03-26 22:36:10 155

原创 技术架构的选择决定公司的格局范围

适用范围本文主要针对中小型互联网公司,特别适用于手机APP或者pc的后台架构,基本可以支撑5万日活。本文会对可能用到的相关技术进行技术选型的说明,以及技术的架构介绍。技术指标说一下一些技术指标的计算过程可以作为其他同学的参考QPS, 如果是5万日活,使用集中在每天的4小时,每个用户大概产生100的请求,那么平均下来,我们系统大概应该支撑的请求为:50000 * 100 / (4 * 60 * 60...

2018-03-26 22:31:04 285

原创 面试必问之HashMap VS HashTable

HashMap和HashTable有什么不同?在面试和被面试的过程中,我问过也被问过这个问题,也见过了不少回答,今天决定写一写自己心目中的理想答案。JDK每一版本都在改进。本文讨论的HashMap和HashTable基于JDK 1.7.0_67。1. 时间HashTable产生于JDK 1.1,而HashMap产生于JDK 1.2。从时间的维度上来看,HashMap要比HashTable出现得晚一...

2018-03-26 16:51:50 343

原创 2018Java线程热门面试题,你知道多少?

面试,难还是不难?取决于面试者的底蕴(气场+技能)、心态和认知及沟通技巧。面试其实可以理解为一场聊天和谈判,在这过程中有心理、思想上的碰撞和博弈。其实你只需要搞清楚一个逻辑:“面试官为什么会这样问?他希望听到什么答案?”然后针对性的准备和回答就行了,无他。不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎...

2018-03-24 17:09:39 433

原创 2018Java线程热门面试题,全部掌握之后轻松拿offer!

1、什么是线程?2、什么是线程安全和线程不安全?3、什么是自旋锁?4、什么是Java内存模型?5、什么是CAS?6、什么是乐观锁和悲观锁?7、什么是AQS?8、什么是原子操作?在Java Concurrency API中有哪些原子类(atomic classes)?9、什么是Executors框架?10、什么是阻塞队列?如何使用阻塞队列来实现生产者-消费者模型?11、什么是Callable和F...

2018-03-24 16:16:53 270

原创 看阿里P9架构师如何向你定义架构及架构师

架构的定义先来看看软件架构的普遍定义吧。一个程序和计算系统软件体系结构是指系统的一个或多个结构。结构中包括软件的构建,构建的外部可见属性以及它们之间的相互关系。体系结构并非可运行软件。确切的说,它是一种表达,使软件工程师能够:1.分析设计在满足规定需求方面的有效性。2.在设计变更相对容易的阶段,考虑体系结构可能的选择方案。3.降低与软件构造相关联的风险。软件架构的生命周期软件开发有其生命周期,它应...

2018-03-23 19:26:09 816

原创 程序员30 岁之后:如何实现质的突破?

30 岁出头的年纪,正是娶妻生子的时候,一方面家庭压力增大,一方面职场上的地位却越发尴尬。稍不留神,就会在这两个战场节节败退。那么,在这个时代,想给自己一份保障,让自己能够从容地活着,到底应该怎么办?哪怕你还没到 30 岁,也应该好好看下这篇文章。毕竟,人总有 30 岁的时候,未雨绸缪,总是不会错的。30 岁的老员工,到底有多惨我们先来看几条新闻:去年年初,有华为内部人士发帖称,华为中国区开始集中...

2018-03-23 18:39:48 434

原创 强者自救,圣者渡人

30 岁出头的年纪,正是娶妻生子的时候,一方面家庭压力增大,一方面职场上的地位却越发尴尬。稍不留神,就会在这两个战场节节败退。那么,在这个时代,想给自己一份保障,让自己能够从容地活着,到底应该怎么办?哪怕你还没到 30 岁,也应该好好看下这篇文章。毕竟,人总有 30 岁的时候,未雨绸缪,总是不会错的。30 岁的老员工,到底有多惨我们先来看几条新闻:去年年初,有华为内部人士发帖称,华为中国区开始集中...

2018-03-22 18:02:08 666

原创 通过双十一等项目实践看架构技术

每年“双 11”都是一场电商盛会,消费者狂欢日。今年双 11 的意义尤为重大,它已经发展成为全世界电商和消费者都参与进来的盛宴。而对技术人员来说,双十一无疑已经成为一场大考,考量的角度是整体架构、基础中间件、运维工具、人员等。 一次成功的大促准备不光是针对活动本身对系统和架构做的优化措施,比如:流量控制,缓存策略,依赖管控,性能优化……更是与长时间的技术积累和打磨分不开。下面我将简单介绍支付宝的整...

2018-03-22 14:34:58 540

原创 干货:Java高并发解决思路大起底

今天在腾讯课堂中看见了关于高并发的这么一个教程,并发问题作为中高级程序员肯定至少会听过,也是十分头疼的问题。于是我就花了点时间去了解了一下。视频地址:https://ke.qq.com/course/185189?flowToken=1000516对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题,但话又说回来了,既然逃避...

2018-03-21 20:42:57 274

原创 亲爱的程序员,再不“疯狂”我们就老了!

在官场上,曾经有一个 59 岁现象,就是官员们会在 59 岁时,会使劲捞上一把。很明显嘛,权力过期作废,再不捞就要退休了,没有机会了。在程序员的圈子里,也有一个 30 岁现象。程序员干到 30 岁,好不容易从码奴混到了白领,却再也干不动了,还时时面临失业的危险。30 岁,是一个程序员伤不起的年龄。明天,何去何从?当然,如果你有铁饭碗,比如在国企或政府机关,那你是无法理解底层劳动人民的感受的。同时也...

2018-03-21 16:17:23 333

原创 微服务开发中的数据架构设计

前言微服务是当前非常流行的技术框架,通过服务的小型化、原子化以及分布式架构的弹性伸缩和高可用性,可以实现业务之间的松耦合、业务的灵活调整组合以及系统的高可用性。为业务创新和业务持续提供了一个良好的基础平台。本文分享在这种技术架构下的数据架构的设计思想以及设计要点,本文包括下面若干内容。微服务技术框架中的多层数据架构设计数据架构设计中的要点要点1:数据易用性要点2:主、副数据及数据解耦要点3:分库分...

2018-03-20 18:50:36 180

原创 微服务开发中的数据架构设计

前言微服务是当前非常流行的技术框架,通过服务的小型化、原子化以及分布式架构的弹性伸缩和高可用性,可以实现业务之间的松耦合、业务的灵活调整组合以及系统的高可用性。为业务创新和业务持续提供了一个良好的基础平台。本文分享在这种技术架构下的数据架构的设计思想以及设计要点,本文包括下面若干内容。微服务技术框架中的多层数据架构设计数据架构设计中的要点要点1:数据易用性要点2:主、副数据及数据解耦要点3:分库分...

2018-03-20 18:46:35 96

原创 微服务:Java EE的拯救者还是掘墓人?

有人认为,微服务的大行其道是在给Java EE下达死刑判决书。也有人认为,Java EE已死的论调可笑至极。读者朋友,你们怎么看?引言有人说,Java确实过于臃肿,经常“小题大做”。但PHP、Node.js扩展方面短板太明显,做小应用可以,大型应用就玩不转了。 另外,Java EE领域有太多优秀框架可以解决开发效率的问题,事实上借用Spring等框架,开发的效率丝毫不亚于PHP。互联网时代的Jav...

2018-03-19 20:57:11 1022

原创 微服务:Java EE的拯救者还是掘墓人?

有人认为,微服务的大行其道是在给Java EE下达死刑判决书。也有人认为,Java EE已死的论调可笑至极。读者朋友,你们怎么看?引言有人说,Java确实过于臃肿,经常“小题大做”。但PHP、Node.js扩展方面短板太明显,做小应用可以,大型应用就玩不转了。 另外,Java EE领域有太多优秀框架可以解决开发效率的问题,事实上借用Spring等框架,开发的效率丝毫不亚于PHP。互联网时代...

2018-03-19 17:54:40 122

原创 纲举目张:带你看看微服务架构的前世今生

资料来源:有群里的朋友给我的一些资料,以及自己百度和论坛、社区找来的一些资料,权当做一个总结式的简介。。。 目录如下:一、微服务架构介绍二、出现和发展三、传统开发模式和微服务的区别四、微服务的具体特征五、SOA和微服务的区别六、如何具体实践微服务七、常见的微服务设计模式和应用八、微服务的优点和缺点九、思考:意识的转变十、参考资料和推荐阅读 一、微服务架构介绍  微服务架构(Microservice...

2018-03-19 16:13:56 326

原创 阿里架构师:​程序员必须掌握的几项核心技术能力

一、源码分析源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂。源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心。我认为是阅读源码的最核心驱动力。我见到绝大多数程序员,对学习的态度,基本上就是这几个层次(很偏激哦):只关注项目本身,不懂就baidu一下。除了做好项目,还会阅读和项目有关的技术书籍,看wikipedia。除了阅读和项目相关的书外...

2018-03-19 13:45:57 264

原创 阿里架构师:​程序员必须掌握的几项核心技术能力

一、源码分析源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂。源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心。我认为是阅读源码的最核心驱动力。我见到绝大多数程序员,对学习的态度,基本上就是这几个层次(很偏激哦):只关注项目本身,不懂就baidu一下。 除了做好项目,还会阅读和项目有关的技术书籍,看wikipedia。 除了阅读和项目相...

2018-03-17 18:23:10 236

原创 架构与微服务本质论

为应对如今无线优先和全渠道用户体验的需求和挑战,我们该如何设计灵活的面向体验的微服务架构?它有哪些模式和最佳实践?携程,Netflix和SoundCloud这些知名互联网公司是如何实践面向体验的微服务架构的?在过去的时间,大牛马丁福勒对微服务有哪些新的观点?微服务各家玩法不尽相同,我发现一些术语的叫法各公司也是不同的,可以说微服务目前仍在激烈的演化中,这个领域还未成熟和标准化,所以今天的分享主要是...

2018-03-17 14:41:05 334

原创 架构的本质是管理复杂性,微服务本身也是架构演化的结果

为应对如今无线优先和全渠道用户体验的需求和挑战,我们该如何设计灵活的面向体验的微服务架构?它有哪些模式和最佳实践?携程,Netflix和SoundCloud这些知名互联网公司是如何实践面向体验的微服务架构的?在过去的2015年,大牛马丁福勒对微服务有哪些新的观点?微服务各家玩法不尽相同,我发现一些术语的叫法各公司也是不同的,可以说微服务目前仍在激烈的演化中,这个领域还未成熟和标准化,所以今天的分享...

2018-03-16 21:01:07 318

原创 Java高并发高性能分布式框架从无到有微服务架构设计

微服务架构模式(Microservice Architect Pattern)。近两年在服务的疯狂增长与云计算技术的进步,让微服务架构受到重点关注微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业...

2018-03-16 19:23:55 1370

原创 【重磅】Spring Boot 2.0的蝴蝶效应

就在本月的1号,Spring Boot 2.0.0.RELEASE正式发布,1号在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误,然后Spring Boot官方又赶紧把 GitHub 上发布的 v2.0.0.RELEASE 版本进行了撤回。到了下午将问题修复后,又重新进行了上传,至此Spring Boot2.0正式推出!要...

2018-03-15 22:25:12 275

原创 微服务架构所要迎接的挑战!你,准备好了吗?

假如你正在运行的微服务少于100,那么你或许可以规避这些问题,但如果将服务扩展到任意更大的量级,这将带来其自有的问题,为了使系统高效运行,你需要解决它们。1:组织性孤立和蔓延Conway法则的反模式表明,公司的组织结构能够映射其软件架构。Fowler-Rigetti称,一家向微服务迁移的公司经常以产生几个孤立的微服务团队告终。另外,由于没有人知道其他团队正在做什么,以及最佳实践无法分享,最终导致技...

2018-03-15 16:57:15 181

原创 JDK8中的HashMap实现原理及源码分析

本篇所述源码基于JDK1.8.0_121在写上一篇线性表的文章的时候,笔者看的是Android源码中support24中的Java代码,当时发现这个ArrayList和LinkedList的源码和Java官方的没有什么区别,然而在阅读HashMap源码的时候,却发现Android中的Java与官方版的出入略大,遂不得不转而用Eclipse导入jdk源码阅读,这里不得不吐槽一句,用惯了IDEA的快捷...

2018-03-15 16:25:27 445

原创 线性表及ArrayList/LinkedList源码分析总结

一.线性表定义:零个或者多个元素的有限序列。也就是说它得满足以下几个条件:  ①该序列的数据元素是有限的。  ②如果元素有多个,除了第一个和最后一个元素之外,每个元素只有一个前驱元素和一个后驱元素。  ③第一元素没有前驱元素,最后一个元素没有后继元素。  ④序列中的元素数据类型相同。则这样的数据结构为线性结构。在复杂的线性表中,一个数据元素(对象)可以由若干个数据项组成,组成一张数据表,类似于数据...

2018-03-15 16:13:37 432

原创 月薪8K与月薪3W的程序员差距到底在哪里?

经常会有人在提问,现在Java好找工作嘛?Python到底好不好学?我要不要学习大数据呢?这些问题的答案其实大家心里都明白:只要你足够认真并坚持下去,学什么都能够找到一份好的工作。思考:【要知道自己到究竟要什么】这是自我定位最关键的一点,也是最重要的一步。因为这关系到你能够选对学习方向,能否沉下心来去学习。我们都知道,去做自己感兴趣的事情时,事半而功倍,因为你愿意为此投入精力,而不是出于某种原因不...

2018-03-15 15:36:32 614

MyBatis 3.4.7-SNAPSHOT 中文.pdf

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

2018-04-22

空空如也

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

TA关注的人

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