自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 都说程序员加班很严重,来听听国外的程序员怎么说

据说,某互联网公司招了个日本人做研发,上班第一天就对部门同事说:“我在日本工作时是个加班狂,每天都很晚回家,希望大家跟上我的步伐。”一个月之后他辞职回日本了,扔下一句话:“你们这样加班,经常睡在公司是很不人道的。”程序猿问科比:“科比,你为何如此成功?”科比反问:“你知道洛杉矶每天凌晨4点的样子吗?”程序猿:“知道,那个时候我一般还没下班。你问这个干嘛?”科比:“不干嘛,谈话结束了!1、IT已成为...

2018-07-14 17:10:51 10466 6

原创 2018年4月份,阿里最新的java程序员面试题目

目录技术一面(23问)技术二面(3大块)性能优化(21点)项目实战(34块)JAVA方向技术考察点(15点)JAVA开发技术面试中可能问到的问题(17问)阿里技术面试11.Java IO流的层次结构?2.请说出常用的异常类型?3.SKU的全称是什么,SKU与SPU的区别及关系?4.FileInputStream 在使用完以后,不关闭流,想二次使用可以怎么操作?5.设计一个分步式登录系统?6.Spr...

2018-04-12 15:56:11 13408 1

原创 程序员,你是选择25k的996 还是18k的八小时?

还有很多互联网公司早八晚五,早九晚六,早十晚七,甚至一部分创业公司Google范儿,不打卡,弹性工作制,倡导效率至上,快乐工作: 那么,作为程序员,你是选择哪种工作方式呢?如果是相等的报酬,那么肯定是要选择更快乐的工作方式。今天就探讨一个问题,各位程序员们,你是选择月薪25k的996工作,还是月薪18k的八小时工作呢?很多互联网公司,更多的创业公司,老板都喜欢玩996。一些情况是工作真的做不完,更...

2018-03-29 15:36:14 10346 10

原创 阿里云解决方案架构师,讲述分布式架构云平台解决方案(附图文)

技术架构分布式架构云平台在充分分析IT技术发展趋势,遵循集中化、标准化、集成化、可靠化和可扩展化的设计原则,以价值创造为使命,以规范化、一体化、智能化的云平台为支撑,实现信息的透明共享、业务的敏捷协同、管控及时、决策科学为设计目标,选择传统成熟的J2EE、SOA、应用集成和BI信息技术和新一代的云计算、大数据、移动应用信息技术相结合的技术路线。分布式架构云平台规划设计了集约化、云架构动态配...

2018-01-24 15:40:33 33724 1

原创 做码农差不多十五年了,聊聊程序员十五年内职业生涯规划,共勉之

前言很多人以为技术人员可以做一直做下去,但是最近我发现这个观点不完全正确,因为能一直做下去的技术人员非常稀少,因为不同的年龄段,公司对技术人员的要求会不一样,如最近传言华为计划裁掉40岁以上的程序员,首先我认为肯定不会裁掉所有40岁以上的技术人员,如CTO或高级技术专家不会被开,因为他们达到了40岁技术人员应该达到的能力,而那些没有达到该年龄段能力的技术人员会被淘汰。为什么现在各大公司...

2018-01-14 14:35:39 23427 16

原创 一个五年架构师为什么基本年薪酬可以达到50万?

架构师,我想很多人都知道,其实该职位头衔在最早的IT领域是没有的,它是近些年来由互联网的发展所引发的需求,因为现阶段的数据量及高并发的活跃好动,引起了不少传统的技术人员的力不从心,企业愈发关注到了系统架构的重要性,所以不同行业开始招募架构技术人员,架构师就诞生了。架构设计的条件以下三个条件不适合做架构设计对架构不感兴趣,但又迫于需求;入IT行业,年限小于4年

2018-01-10 17:47:13 26087 6

原创 一个程序员要学会哪些东西,才能独立完成大的项目?

我们99.9%的程序员都会参与一个团队进行开发工作,而并不是单打独斗,但是,没有独立生存的能力是不可能有好的团队合作工作的。

2017-12-24 15:45:40 9904 1

原创 只有2~3年左右的开发经验,为什么年薪就可以达到50万+?

只有2~3年左右的开发经验,为什么年薪就可以达到50万+?

2017-12-22 19:16:36 14252 12

原创 八年Java开发的学习经历自述,希望新人少走弯路

如果你想学习Java工程化、高性能及分布式、高性能、深入浅出。性能调优、Spring,MyBatis,Netty源码分析和大数据等知识点可以来找我。

2017-12-01 15:39:43 13294 32

原创 面试被问Redis和zk两种分布式锁的对比

一、基于数据库实现分布式锁1. 悲观锁利用select … where … for update排他锁注意: 其他附加功能与实现一基本一致,这里需要注意的是“where name=lock ”,name字段必须要走索引,否则会锁表。有些情况下,比如表不大,mysql优化器会不走这个索引,导致锁表问题。2. 乐观锁所谓乐观锁与前边最大区别在于基于CAS思想,是不具有互斥性,不会产生锁等待而消耗资源,操作过程中认为不存在并发冲突,只有update version失败后才能觉察到。我们的.

2021-01-12 00:38:21 170

原创 记一次Consul故障分析与优化

【编者的话】在微服务体系中,服务注册中心是最基础的组件,它的稳定性会直接影响整个服务体系的稳定性。本文主要介绍了爱奇艺微服务平台基于Consul的服务注册中心建设方式,与内部容器平台、API网关的集成情况,并重点记录了Consul遇到的一次故障,分析解决的过程,以及针对这次故障从架构上的优化调整措施。Consul是近几年比较流行的服务发现工具,用于实现分布式系统的服务发现与配置。与其它分布式服务注册与发现的方案相比Consul的方案更“一站式”,使用起来也较 为简单。他的主要应用场景为:服务发现、服务隔离

2021-01-12 00:35:43 248

原创 深入浅出 ZooKeeper

ZooKeeper 是一个分布式协调服务 ,由 Apache 进行维护。ZooKeeper 可以视为一个高可用的文件系统。ZooKeeper 可以用于发布/订阅、负载均衡、命令服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能 。一、ZooKeeper 简介1.1 ZooKeeper 是什么ZooKeeper 是 Apache 的顶级项目。ZooKeeper 为分布式应用提供了高效且可靠的分布式协调服务,提供了诸如统一命名服务、配置管理和分布式锁等分布式的基础服

2021-01-12 00:34:07 114

原创 API快速开发平台设计思考

在我之前谈API网关的时候曾经谈到过快速开发平台,即将API快速开发的一些内容放入到API网关中,实际来看围绕API全生命周期管理,本身包括了开发态,运行态,运维态。对于API网关更多的是解决运行态的问题,API网关本身应该轻量化设计,不做太多的协议转换,适配,数据映射等工作,这些工作应该放到API开发平台来完成。API开发平台最终就是开发完成并暴露一个标准的Http API接口,并将接口注册和接入到API网关。API全生命周期管理围绕API全生命周期管理来看,整个子系统划分如下:简单来

2021-01-12 00:32:29 114

原创 作为程序员,你不能忽视的13个CI/CD的好处

在传统的软件开发方法中,每一个小的功能更新或Bug修复都会每隔一段时间分开发布,这极大地增加了变更在部署时被耦合的几率。随着时间推移,问题开始增多,给整个团队带来了更多的挑战。最糟糕的是,所有的流程都是手动的,而且这些产品大多是单独开发/测试的。很显然,它将变得更容易出现人为错误。CI/CD就是解决这一切的东西,使整个流程更加可控和高效。持续集成/持续部署(以下称为CI/CD)是现代软件开发实践中构建、测试和部署应用到生产环境的支柱。CI/CD在弥合开发与各受影响团队之间的差距方面发挥着举足轻重的作用。C

2021-01-12 00:30:34 142

原创 微服务设计中关于服务组合和可视化编排的思考

这篇文章重新整理下我对服务组合和服务可视化编排的一些思考。从整个服务分层的角度来说,微服务最底层首先提供的是原子服务,再朝上则可以提供更加粗颗粒度的组合服务能力。为何要进行服务组合和编排?简单来说就是进一步将共性的可复用业务能力下沉,这些共性业务能力有些是在前端开发中,开发人员自己进行组合和编排完成的。那么实际这块内容应该下沉到一个统一的领域服务能力提供层。在前后端开发分离的情况下,实际上对于前端人员往往并不熟悉和精通业务,如果是简单的UI界面交互调用多个接口服务,前端来做没有问题。但是对于本身和业

2021-01-12 00:28:45 318 1

原创 如何创建并运行java线程

Java线程类也是一个object类,它的实例都继承自java.lang.Thread或其子类。可以用如下方式用java中创建一个线程:1 Tread thread =newThread(); 执行该线程可以调用该线程的start()方法:1 thread.start(); 在上面的例子中,我们并没有为线程编写运行代码,因此调用该方法后线程就终止了。编写线程运行时执行的代码有两种方式:一种是创建Thread子类的一个实例并重写run方法,第二种是创建类的时候实现Run...

2021-01-12 00:26:28 30

原创 Java内存模型

一、现代计算机内存模型早期的计算机中由于CPU和内存的速度是差不多的,所以CPU是直接访问内存地址的。而在现代计算机中,CPU指令的运行速度远远超过了内存数据的读写速度,为了降低这两者间这高达几个数量级的差距,所以在CPU与主内存之间加入了CPU高速缓存。高速缓存可以很好地解决CPU与主内存之间的速度差距,但CPU缓存并不是所有CPU共享的,因此产生了一个新的问题:数据一致性问题。二、缓存一致性协议(MESI)CPU缓存的一致性问题会导致并发处理的不同步,对于这个问题,大概有以下两种方案

2021-01-12 00:17:42 598

原创 够狠 | 单点登录三种方式,够狠!够劲爆!

前言单点登录分为三种机制,这三种机制分别为http无状态协议,会话机制,登录机制等这三种机制。http无状态协议web应用采用browser/server架构,http作为通信协议,http是无状态协议,浏览器的每一次请求,服务器都会独立处理,用如下图进行说明,三次请求和响应之间没有任何关系。即,根据上图可以看到,http的请求是无状态的协议。会话机制浏览器第一次访问请求服务器的时候,服务器再次创建一个会话,并把数据发送给浏览器,浏览器保存会话id,服务器从请求中通过id判断是不是一个

2021-01-12 00:13:08 153 1

原创 如何在面试中介绍自己的项目经验(面向java改进版)

本人于3年前写的博文,如何在面试中介绍自己的项目经验,经过大家的捧场,陆续得到了将近7万个点击量,也得到了众多网站公众号的转载,不过自己感觉,这篇文章更多的是偏重于方法,没有具体给到Java方面相关的说辞。 三年过去了,随着本人面试官经验的积累,也随着技术的进步,本人就用适合当下2021年Java初级开发的面试场景,改写本文。请注意,这篇文章并不是简单的技术升级,也没有机械地教大家在介绍项目经验时背诵若干说辞,而是教大家如何结合项目经验更好地展示自己的技术亮点,这样就能最大程度地提升面试通过的可能..

2021-01-12 00:10:36 182

原创 北大“女学霸”,3 个月内拿取硅谷10 家顶级科技公司offer!

经过 3 个月精心准备,我拿到了 Google,Facebook,Netflix,linkedin,Snapchat,Roku TV,Amazon,Signal,Wealthfront,Toyota Research Institute 一共 10 个硅谷公司的 offer。airbnb 结果还没出,uber, dropbox 面试体验不好,最后 onsite 直接 withdra...

2020-04-03 20:08:57 467 1

原创 2020年,今日头条Java后端面试复盘 & Redis 6.0多线程IO模型

上周参加了字节跳动的面试,整场下来一共70分钟,面试官非常Nice,无奈自己太过紧张,很多准备好的知识点都没有能够准确传达意思。面试中因为在简历上有提到Redis相关的内容,那么毫无疑问就会被问到了。先从经典的问题开始:Reids为什么这么快?那自然会回答诸如单线程、IO多路复用等固定套路,然后这里因为一直有关注Redis的相关新闻,知道Redis 6.0年末发布了RC1...

2020-04-03 15:00:10 759 1

原创 程序员一定要明白的架构:三地五中心(2)

上篇文章我们总结了一下同城双活、异地多活、两地三中心等一些部署架构,那么这篇文章我来发表一下我对三地五中心的理解。 我们上篇文章讲过两地三中心这个架构,如下图:这种架构具备容灾能力,比如生产数据中心停电了,那么可以把所有流量都切到同城灾备中心或异地灾备中心,那么现在的问题是假如真到了停电的那一天,你敢把所有的流量都切到灾备中心去吗?** 上篇文章说了,灾备中心它主要...

2020-04-02 20:14:42 347

原创 程序员一定要明白的架构:三地五中心(1)

科技圈最火的新闻应该是“AWS中国区光缆被挖,导致三星、小米等众多企业服务不可用”。 又是光缆被挖,咦!?为什么是又,让我们来一起回到过去:2019.6.02:亚马逊光缆被挖断,国内部分地区网络出现异常 2019.3.23:施工队挖断腾讯光纤,致腾讯旗下100多款游戏受影响,损失大了 2015.5.27:由于杭州市萧山区某地光纤被挖断,造成目前少部分用户无法使用支付宝我这...

2020-04-02 14:21:40 469

原创 Java程序员:面试前利用这6个“套路”,让你轻松“镇住”面试官,拿取高薪offer~

以前有个人来我公司面试,我两个下属都给了极高评价,异口同声曰:此子,出乎其类拔乎其萃,乃不可多得之专家码农。我听完很高兴啊,人才啊, 拍桌而起,心里默默说,这次一定要争取到。我问此子Java知识、JVM原理、并发问题,对答如流,如数家珍。于是我欣然让他做了一道hard 难度 leetcode没有的算法题,然后他没做出来。当时我心中一紧,而后释然——算法弱也无妨,看来算法是他的软肋,以后调...

2020-04-01 20:25:16 485

原创 java程序员为什么使用Groovy?

一直听说java世界里有个Groovy,但是一直没时间去了解它究竟是一个怎么样子的。我们现在的项目里放了很多开源包,而且项目中做流程的时候,规则就是用Groovy实现的。近来闲来无事,于是开始认真的看看Groory究竟有什么好的。其实最初我接触它是因为Grails这一个框架,这两个都是为了实现一个目的,java的敏捷开发,与java的无缝对接。在某些情况下,java需要半天处理的事...

2020-04-01 13:40:59 224

原创 程序员:一定提前预防,这11个微服务失败的原因,及时止损!

微服务“很香”,它有许多优势,比如更快的开发、更好的可扩展性、更小的独立团队等等。但是,很多团队却在微服务上举步维艰,没有很好利用其优势。原因到底是什么?1. 管理层低估开发微服务的复杂性我曾与许多非常看好微服务的客户一起合作过。对他们来说,微服务就是解决他们所有问题的“灵丹妙药”。当讨论逐渐深入,我发现:大多数团队及其管理层都低估了微服务开发的复杂性。...

2020-04-01 13:10:54 226

原创 Java程序员,按照这份模板“优化”简历,至少让你涨薪50%!

什么是好的技术简历?首先,一份好的简历不光说明事实,更通过FAB模式来增强其说服力。Feature:是什么 Advantage:比别人好在哪些地方 Benefit:如果雇佣你,招聘方会得到什么好处其次,写简历和写议论文不同,过分的论证会显得自夸,反而容易引起反感,所以要点到为止。这里的技巧是,提供论据,把论点留给阅读简历的人自己去得出。放论据要具体,最基本的是要数字化...

2020-03-31 19:11:24 473

原创 工作十余年的Java大佬:以自身“血泪史”,告诉你毕业后第一份工作怎么选?

经常有刚毕业的新人问我,程序员的第一份工作该怎么选,应该去大公司,还是小公司?年轻人真纠结,肯定是选给钱多的那个啊。好,不开玩笑了。大部分毕业生初次找工作,多个 offer 的薪资差别不大的情况下,选择公司确实比较纠结,大公司福利好、制度完善,小公司简单高效、锻炼人。第一份工作经历我的第一份工作是一个非常非常小的软件公司,呆了 2 年。把时间调回 19年前,...

2020-03-31 14:18:22 274

原创 Java程序员“硬闯”阿里之路,已收获offer(附超详细面经)

本人3年开发经验、18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴、今日头条、滴滴等公司offer,岗位是Java后端开发,最终选择去了阿里巴巴。面试了很多家公司,感觉大部分公司考察的点都差不多,所以将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助。另外,目前在阿里也做面试官的工作,身份从求职者变为面试官,看问题的很多角度也不一样,所以下文中既有求职...

2020-03-30 19:52:47 732 2

原创 大型互联网公司:常用的分布式ID方案总结!

ID是数据的唯一标识,传统的做法是利用UUID和数据库的自增ID,在互联网企业中,大部分公司使用的都是Mysql,并且因为需要事务支持,所以通常会使用Innodb存储引擎,UUID太长以及无序,所以并不适合在Innodb中来作为主键,自增ID比较合适,但是随着公司的业务发展,数据量将越来越大,需要对数据进行分表,而分表后,每个表中的数据都会按自己的节奏进行自增,很有可能出现ID冲突。这时就需要一个...

2020-03-30 13:23:27 160

原创 Tomcat是一个Servlet容器?

“Tomcat是一个Servlet容器”,这句话对于2019年的程序员应该是耳熟能详的。单纯的思考一下这句话,我们可以抽象出来这么一段代码:class Tomcat { List<Servlet> sers;}如果Tomcat就长这样,那么它肯定是不能工作的,所以,Tomcat其实是这样:class Tomcat { Connector ...

2020-03-29 19:38:30 632

原创 Zookeeper如何解决脑裂问题?

什么是脑裂?脑裂(split-brain)就是“大脑分裂”,也就是本来一个“大脑”被拆分了两个或多个“大脑”,我们都知道,如果一个人有多个大脑,并且相互独立的话,那么会导致人体“手舞足蹈”,“不听使唤”。脑裂通常会出现在集群环境中,比如ElasticSearch、Zookeeper集群,而这些集群环境有一个统一的特点,就是它们有一个大脑,比如ElasticSearch集群中有Master节...

2020-03-29 13:56:46 189

原创 Java程序员,如果你想要搞明白CDN,这篇应该够了!

最近在了解边缘计算,发现我们经常听说的CDN也是边缘计算里的一部分。那么说到CDN,好像只知道它中文叫做内容分发网络。那么具体CDN的原理是什么?能够为用户在浏览网站时带来什么好处呢?解决这两个问题是本文的目的。CDN概念CDN全称叫做“Content Delivery Network”,中文叫内容分发网络。实际上CDN这个概念是在1996年由美国麻省理工学院的一个研究小组为改善互...

2020-03-23 20:16:49 399

原创 工作8年的大佬,分享超详细的springBoot学习心得以及步骤路线图

SpringBoot的目标是简化Spring的开发过程、让开发者快速搭建框架和web容器。并为微服务提供更好的支持,提供服务监控能力。Spring为开发者带来了简单和能力:Spring Boot使编码变简单 Spring Boot使配置变简单 Spring Boot使监控变简单 Spring Boot使部署变简单本文也是根据近几年的工作、学习经验,来分析和制定一个学习使用 S...

2020-03-23 14:14:44 657

原创 JVM性能调优总结:JVM内存模型,内存泄漏及解决方法,调优方法~

一、JVM内存模型及垃圾收集算法1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代) Tenured(年老代) 永久代(Perm)其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配,但可以通过-XX:PermSize -XX:MaxPermSize等参数调整其大小。...

2020-03-22 22:24:35 391

原创 程序员,想要彻底弄懂Redis,这15点你一定要明白~(纯干货)

Redis是一款开源的、高性能的键-值存储(key-value store)。它常被称作是一款数据结构服务器(data structure server)。Redis的键值可以包括字符串(strings)类型,同时它还包括哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。 对于这些数据类型,你可以执行原子操作。例如:对字符串进行附...

2020-03-22 20:04:53 151

原创 金三银四季,阿里工作10多年Java大牛的“心得”,献给迷茫中的你

当你从事Java一年后,重新找工作时,才会真实的感受到“金三银四”这四个字背后的意思。工作第一年,往往是什么都充满新鲜感,什么都学习,冲劲十足的一年;WEB行业知识更新特别快,今天一个框架的新版本,明天又是另一个新框架,有时往往根据项目的需要来不断学习新东西;所以,很多时候感觉,自己用过的东西很多呀!但是真正深入研究的东西却不多。面试,是跳槽后第一个需要面对的问题;而且不同...

2020-03-20 14:01:16 266 1

原创 2020年,这10 个 非常热门的Java 微服务框架,你知道吗?

1、Spring BootJava 构建 Spring 应用程序已经有很长一段时间了,Spring Boot 是 Spring 的一个特定版本,它通过对配置细节的处理,使微服务构建更加简便。创建 Spring Boot 旨在自启动任何类型的 Spring 项目,而不仅仅是微服务。应用程序完成后,Spring Boot 将在 web 服务器中混合,并输出一个 JAR 文件,JVM 除外。你可...

2020-03-19 16:59:32 258

原创 Java程序员,这7个简单但棘手的JavaScript面试问题。你会吗?

如果您符合高级开发人员的资格,其工作涉及JavaScript,那么在编码面试中很有可能会被问到棘手的问题。遵循这个建议:“熟能生巧”。深入有规律地学习JavaScript将提高您的编码能力,并且可以提高您的面试技巧。在这篇文章中,你会发现7个乍一看很简单但很棘手的JavaScript面试问题。虽然一开始这些问题看起来是随意的,但是它们试图与JavaScript的重要概念挂钩。...

2020-03-19 16:49:49 176

原创 疫情之下,面对裁员潮,工作三年的Java程序员你看到了什么?你该何去何从?

每个程序员或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划,希望你可以思考一下自己的将来。今天小编给大家分享的是一篇来自阿里Java工程师针对疫情当下对3年工作经验程序员的职业建议,希望对你有启发。程序员的三个阶段第一阶段-——三年我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人。这一阶段,我们走出校...

2020-03-18 21:56:31 265

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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