![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java架构师
AI 大将军
这个作者很懒,什么都没留下…
展开
-
2019跳槽记录——支付宝(Java面经)3轮技术面+1轮HR面
现如今跳槽已经成为程序员的一个重要话题。很少有程序员能在公司呆10年以上。对于许多程序员来说,像阿里腾讯这样的大公司也是程序员职业生涯追求的目标。另外,大家要明确的很重要的几点是:1.写在简历上的东西一定要慎重,这可能是面试官大量提问的地方;2.大部分应届生找工作的硬伤是没有工作经验或实习经历;3.将自己的项目经历完美的展示出来非常重要。笔主能力有限,如果有不对...原创 2019-11-04 17:11:56 · 770 阅读 · 0 评论 -
开发者如何看 Java 发展趋势?
Java 作为一门长青的编程语言,在比较长的发展时间里,时常会有唱衰的声音。但 Java 一直在不断向前发展,受欢迎程度也一直很高,TIOBE 榜单常年保持在 Top 2,未来 Java 将如何发展呢?本文搜集了一些国外开发者和相关从业人员的看法。最 Hot 的 Java 应用场景在纷繁复杂的编程语言中,Java 一直是深受开发者和企业欢迎的编程语言。从 2001 年起,Java 在 ...原创 2019-10-23 16:34:25 · 420 阅读 · 0 评论 -
分析源码,学会正确使用 Java 线程池
在日常的开发工作当中,线程池往往承载着一个应用中最重要的业务逻辑,因此我们有必要更多地去关注线程池的执行情况,包括异常的处理和分析等。本文主要聚焦在如何正确使用线程池上,以及提供一些实用的建议。文中会稍微涉及到一些线程池实现原理方面的知识,但是不会过多展开。线程池的异常处理UncaughtExceptionHandler我们都知道Runnable接口中的run方法是不允许抛出异常的,因...原创 2019-10-21 17:06:10 · 102 阅读 · 0 评论 -
Java程序员不想被裁员困扰,应该怎样发展才能越走越远?
当我们站在技术之路的原点,未来可能充满了迷茫,也存在着很多不同的可能。在这个知识爆炸与终身学习/碎片化学习为主的时代,我们面临的问题之一就是如何进行有效学习,不仅能有效平衡广度与深度,并且能真正的积淀下来,提升自己的研发效能。于笔者而言,常常郁结于胸的就是以下三个问题:应该学习什么?这是怎样的一个技术世界?存在着怎样的高峰与路径?如何克服遗忘带来的无效学习?如何不再碎片化地学习?究...原创 2019-10-20 17:26:08 · 154 阅读 · 0 评论 -
谷歌临时工达 12 万,外包程序员的出路在哪里?
自从互联网诞生开始进入商业领域运后,很多国内外的高科技公司一直对外宣传他们的企业文化,最常见的关键词就是“扁平化管理”,“高福利”,“高薪资”,“平等”,"人性化" 等等。与传统企业相比较,高科技企业的风格总是很令人憧憬和向往。谷歌公司,为员工提供免费交通车,以及奢华的食堂,每栋大楼都有咖啡厅和餐厅,每个餐饮都有自己的餐饮风格,来满足世界各地的员工;还有健身房、单车、排球、篮球、保龄球、攀...原创 2019-10-15 22:22:13 · 571 阅读 · 0 评论 -
程序员经典面试题,高并发系统,一般需要怎么做
高并发系统总是那么令人着迷,比如说双十一的抢购,比如说12306的抢票,都是非常经典的高并发的例子,也是非常大的挑战。对于开发这样系统的人来说,最怕的就是突发的流量,就好比河流突发大水而引发洪涝灾害一样,突发的流量也会引起服务器奔溃。为了应对这些突发的流量,我们总需要做点什么?今天我们来介绍一下高并发的几个套路。分布式提升并发的好的办法,便是提升硬件。举个大家都熟悉的例子,十年前的...原创 2019-10-12 21:33:51 · 211 阅读 · 0 评论 -
Java开发,大专毕业两年,我成了全班最早进大厂的人
我,大专学历,曾经的软件专业优秀毕业生,今年24岁,进了大厂,公司见我上班辛苦,特地给我配了一辆车。我成了全班最早进大厂的人,同时我也用实际行动告诉了他们,只要有实力大专学历也可以进大厂。其实也没什么值得骄傲的,我也并没有在这里显摆啥,我接下来就讲讲我这两年的艰苦奋斗,只要你也能做到,大厂谁都可以进的。大学期间,我学的专业是软件工程,主修Java语言和C++语言,我个人更偏...原创 2019-10-11 21:58:34 · 1428 阅读 · 6 评论 -
JAVA程序员备战跳槽季,准备面试必备的技术大纲,请查收
跳槽时时刻刻都在发生,但是我建议大家跳槽之前,先想清楚为什么要跳槽。切不可跟风,看到同事一个个都走了,自己也盲目的开始面试起来(期间也没有准备充分),到底是因为技术原因(影响自己的发展,偏移自己规划的轨迹),还是钱给少了,不受重视。那怎样才能通过BAT面试官的考核?怎样成为一名Offer收割机?之前动态有说过:Offer=硬实力*软实力*好的心态,三者缺一不可。硬实力这里说的硬...原创 2019-09-02 21:59:51 · 180 阅读 · 0 评论 -
大中型分布式系统中,Hystrix 分布式系统限流、降级、熔断框架
为什么需要Hystrix在大中型分布式系统中,通常系统很多依赖,如下图:在高并发访问下,这些依赖的稳定性与否对系统的影响非常大,但是依赖有很多不可控问题:如网络连接缓慢,资源繁忙,暂时不可用,服务脱机等,如下图:当依赖阻塞时,大多数服务器的线程池就出现阻塞,影响整个线上服务的稳定性,如下图:在复杂的分布式架构的应用程...原创 2019-08-29 17:43:10 · 324 阅读 · 0 评论 -
2019年Java篇:蚂蚁金服、拼多多、字节跳动的面试总结
上午9点,我还在去公司的公交上,突然收到蚂蚁的面试电话,其实算不上真正的面试。面试官只是和我聊了下他们在做的事情,说的很详细,然后和我沟通了下是否有兴趣,我表示有兴趣,后面就收到正式面试的通知,最后没选择去蚂蚁表示抱歉。当时我自己也准备出去看看机会,顺便看看自己的实力。当时我其实挺纠结的,一方面现在部门也正需要我,还是可以有一番作为的,另一方面觉得近一年来进步缓慢,没有以前飞速进步的成就感了,...原创 2019-08-27 21:35:19 · 965 阅读 · 0 评论 -
程序员的十年工作创业血泪史,万字长文,仔细读完,受益匪浅
吉日噶拉(在外企、上市公司工作过,自己也创业失败过,遇到过很多失败挫折,甚至露宿街头,但是最后还是挺过来了),是一个十几年的程序员了,本文介绍了他的相关经历,以及他的一些经验,无论是对刚入门的程序员,还是工作了十年八年的程序员都有一些经验值得借鉴学习。(一)三年前的一个项目经验作者帮公司拉了一个政府的项目,但是由于经验较少,谈的价格很低,还有很多细节刚开始没有谈到,后面相当于收了很少的钱,...原创 2019-08-22 21:49:19 · 515 阅读 · 0 评论 -
挑战一线大厂Java岗,令人心情愉悦的一次面试总结
前言15年毕业到现在也近三年了,最近面试了阿里集团(菜鸟网络,蚂蚁金服),网易,滴滴,点我达,最终收到点我达,网易offer,蚂蚁金服二面挂掉,菜鸟网络一个月了还在流程中...最终有幸去了网易。但是要特别感谢点我达的领导及HR,真的非常非常好,很感谢他们一直的关照和指导。面试整体事项简历要准备好,联系方式一定要正确清晰醒目,项目经历按照时间倒序阐述,注意描述自己在项目中承担...原创 2019-08-21 21:46:11 · 483 阅读 · 1 评论 -
蚂蚁金服三面(java研发):二叉树+HTTPS加密+自旋锁+Redis缓存穿透
蚂蚁Java一面二叉搜索树和平衡二叉树有什么关系,强平衡二叉树(AVL树)和弱平衡二叉树(红黑树)有什么区别B树和B+树的区别,为什么MySQL要使用B+树HashMap如何解决Hash冲突epoll和poll的区别,及其应用场景简述线程池原理,FixedThreadPool用的阻塞队列是什么sychronized和ReentrantLock的区别sychroniz...原创 2019-08-20 21:51:35 · 445 阅读 · 0 评论 -
颠覆微服务认知:深入思考微服务的七个主流观点
一、逃离单体系统,拥抱微服务?单体系统和微服务的区别在于,一个单体系统是一个大而全的功能集合,每个服务器运行的是这个应用的完整服务。而微服务是独立自治的功能模块,它是生态系统中的一部分,和其他微服务是共生关系。现在,业界对单体系统和微服务的普遍观点是:单体系统非常容易开发、测试、部署,但是单体系统面对的问题也很多,例如开发效率变低、维护成本增加、部署影响变大、可扩展性较差、技术选型成本高,而引...原创 2019-09-18 21:58:30 · 160 阅读 · 0 评论 -
面试再问ThreadLocal,别说你不会
ThreadLocal是什么以前面试的时候问到ThreadLocal总是一脸懵逼,只知道有这个哥们,不了解他是用来做什么的,更不清楚他的原理了。表面上看他是和多线程,线程同步有关的一个工具类,但其实他与线程同步机制无关。线程同步机制是多个线程共享同一个变量,而ThreadLocal是为每个线程创建一个单独的变量副本,每个线程都可以改变自己的变量副本而不影响其它线程所对应的副本。官方API上...原创 2019-08-24 16:49:18 · 288 阅读 · 1 评论 -
【真实生产案例】消息中间件如何处理消费失败的消息?
1、消息中间件在生产系统中的使用下图是一个非常典型的生产环境的问题,很多公司都会在生产系统里使用MQ,即消息队列。也就是说,一个系统跟另外一个系统之间进行通信的时候,假如系统A希望发送一个消息给系统B,让他去处理。但是系统A不关注系统B到底怎么处理或者有没有处理好,所以系统A把消息发送给MQ,然后就不管这条消息的“死活”了,接着系统B从MQ里消费出来处理即可。至于怎么处理,是否处理...原创 2019-09-04 21:37:41 · 284 阅读 · 0 评论 -
Java后端面经总结:拿下蚂蚁金服美团头条 offer 秘诀
笔者在面过 猿辅导,去哪儿,旷视, 陌陌,头条, 阿里, 快手, 美团, 腾讯之后,除了收获一大堆面试问题,还思考到如何成为面试官眼中的"爱技术,爱思考,靠谱,有潜力候选人的"一些"套路".面试问题(Java 后端)猿辅导1.八皇后问题2.求二叉树的最长距离(任意两个节点的路径 中最长的)3.lru 算法的实现4.设计一个数据结构 满足 put 和 getMedium(中位...原创 2019-09-05 21:47:02 · 542 阅读 · 0 评论 -
史上最强多线程面试44题和答案:线程锁+线程池+线程同步等
1、并发编程三要素?1)原子性原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行。2)可见性可见性指多个线程操作一个共享变量时,其中一个线程对变量进行修改后,其他线程可以立即看到修改的结果。实现可见性的方法:synchronized或者Lock:保证同一个时刻只有一个线程获取锁执行代码,锁释放之前把最新的值刷新到主内存,实现可见...原创 2019-09-06 21:33:51 · 501 阅读 · 0 评论 -
多研究些架构,少谈些框架——一名阿里架构师的笔记
引言:微服务现在辣么火,业界流行的对比的却都是所谓的Monolithic单体应用,而大量的系统在十几年前都是已经是分布式系统了,那么微服务作为新的理念和原来的分布式系统,或者说SOA(面向服务架构)是什么区别呢?论微服务架构的核心概念微服务架构和SOA区别我们先看相同点1. 需要Registry,实现动态的服务注册发现机制;2. 需要...转载 2019-09-09 21:06:06 · 167 阅读 · 0 评论 -
一文读懂JVM
一、什么是JVMJVM是Java Virtual Machine(Java 虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java语言的一个非常重要的特点就是平台无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,...原创 2019-09-12 17:08:07 · 189 阅读 · 0 评论 -
最新版的Java 13 将于2019年9月17日发布,最新最全新特性解读
2017年8月,JCP执行委员会提出将Java的发布频率改为每六个月一次,新的发布周期严格遵循时间点,将在每年的3月份和9月份发布。目前,JDK官网上已经可以看到JDK 13的进展,最新版的JDK 13将于2019年9月17日发布。目前,JDK13处于Release-Candidate Phase(发布候选阶段),将于9月17日正式发布。目前该版本包含的特性已经全部固...原创 2019-09-16 22:00:29 · 12094 阅读 · 0 评论 -
实战分布式之电商高并发秒杀场景总览
前言本文是新系列“实战高并发”的开篇作。这个系列作为“我说分布式”的子系列,将着重挑选若干典型的分布式实战场景,尽量对当下高并发领域较为热门的架构及业务场景做一次较为深入的实践与总结。该系列既是对笔者接触过的业务的整理,也希望系列中分享的套路能够对读者朋友解决实际业务中面临的问题有所帮助。言归正传,本文我将主要从业务场景及技术架构等方面出发,对”电商高并发秒杀”这一业务场景做一次较为全...原创 2019-09-20 16:32:56 · 978 阅读 · 0 评论 -
阿里Java后端工作多年老菜鸟的感悟!以及学习成长进阶之路
从事软件这个行业也有六年了,第一次写博文,比较紧张。那么,我写这篇博文的目的是什么呢?从事了六年软件行业,从开始的小菜鸟变成了有六年工作经验的老菜鸟?有时静下来想想,真没学到什么,黄金的六年时间,我不停的在Coding,不停的在Ctrl+C 、Ctrl+V。记得从开始学会复制、粘贴解决了问题之后,总是沾沾自喜,“问题解决了!” ,到现在尝试想自己解决问题却没有头绪的苦恼。...原创 2019-09-23 22:06:52 · 906 阅读 · 0 评论 -
作为一名程序员,没有谁没跳过槽,跳槽“6招”进大厂
作为一名程序员,没有谁没跳过槽撇开在跳槽时对所“空降”的企业所需要的行业知识知根知底而“得心应手”,从而“稳定”外,其他人可能或多或少都有过因“不适应”新单位环境而又被迫再离开的厄运,以至于在再“找工作”时因为不能“骑马选马”而每况日下!有32.98%的开发者在过去一年(2013)中曾换过工作,其中有72.5%的人实现了薪资上涨。而在未换工作的开发者中,约有59.3%的开发者同样...原创 2019-09-25 21:54:28 · 648 阅读 · 0 评论 -
阿里最强Dubbo面试28题答案详解:核心功能+服务治理+架构设计等
1.Dubbo是什么?Dubbo 是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成。RPC 指的是远程调用协议,也就是说两个服务器交互数据。2.Dubbo的由来?互联网的快速发展,Web应用程序的规模不断扩大,一般会经历如下四个发展阶段。单一应用架构当网站流量很小时,只需一个应用,将所有...原创 2019-06-26 21:27:43 · 345 阅读 · 0 评论 -
双非末流一本面霸,十面阿里,七面头条,4个月斩获六个Offer!
今天的主人公是一个双非末流一本,大三,CS专业,有百度实习经历前言先解释一下十面阿里,总共分为阿里云四面,蚂蚁两面,菜鸟四面;七面头条分为金融三面,抖音一面,效率工程三面;六个Offer分别是阿里、腾讯、头条、华为、蘑菇街、三七互娱。从二月份看到阿里云的招聘贴就投了,那是我最早投递的公司,当时也没什么经验,导致表现得很糟糕,最后四面跪,当时伤心到谷底,幸好跪得比较早,跪了之后简历被...原创 2019-08-10 21:35:59 · 229 阅读 · 0 评论 -
一个Java妹子的后台面经总结(蚂蚁金服+美团+携程+滴滴+....)
本人妹子,985硕士,211本科,专业都是软件工程,一直投的是java后台开发,只投过一次网易的测试,技术不是大牛,但是比较努力。实验室没有项目,so项目经验是0,在去年这个时候看到实验室师兄找工作的艰难,因此开始复习的时间比较早。最开始先看的java基础,看的毕向东的视频,后面就看框架视频,后来也看过咕泡学院的视频,都是在网上找的免费的。《剑指offer》刷了一遍,有些重点的题一定要滚瓜烂熟...原创 2019-08-19 17:59:51 · 626 阅读 · 0 评论 -
Redis压缩列表原理与应用分析
摘要Redis是一款著名的key-value内存数据库软件,同时也是一款卓越的数据结构服务软件。它支持字符串、列表、哈希表、集合、有序集合五种数据结构类型,同时每种数据结构类型针对不同的应用场景又支持不同的编码方式。这篇文章主要介绍压缩列表编码,在理解压缩列表编码原理的基础上介绍Redis对压缩列表的应用,最后再对Redis压缩列表应用进行分析。Redis压缩列表原理与应用压...原创 2019-06-29 21:10:24 · 122 阅读 · 0 评论 -
写业务代码最容易掉的8种坑
1、客户端的使用我们在使用Redis、ElasticSearch、RabbitMQ、Mongodb等中间件或存储的时候肯定都会使用客户端包来和这些系统通讯,我们也会使用Http的一些客户端来发Http请求。在使用这些客户端包的时候,非常容易犯错的一个地方就是Client的使用方式,比如有一个叫做RedisClient的类,是Redis操作的入口。你应该是每次使用new RedisClient(...原创 2019-07-09 21:27:31 · 332 阅读 · 0 评论 -
干货:阿里大牛浅谈MySQL架构体系
一 : 数据库和数据库实例在MySQL的学习研究中,存在两个非常容易混淆的概念,即数据库和数据库实例。在MySQL中,数据库和数据库实例定义如下:数据库:存储数据的集合;数据库实例:操作数据库的集合。如上定义很清楚了,数据库是用来存储数据的,数据库实例是用来操作数据的,从操作系统的角度,数据库实例表现为一个进程,对应多个线程,在非集群数据库架构中,数据库与数据库实例存在一 一...原创 2019-06-28 21:33:58 · 388 阅读 · 0 评论 -
高并发核心技术 - 幂等性 与 分布式锁
1. 什么是幂等性幂等性就是指:一个幂等操作任其执行多次所产生的影响均与一次执行的影响相同。用数学的概念表达是这样的: f(f(x)) = f(x).就像 nx1 = n 一样, x1 就是一个幂等操作。无论是乘以多少次结果都一样。2. 常见的幂等性问题幂等性问题经常会是由网络问题引起的,还有重复操作引起的。场景一:比如点赞功能,一个用户只能对同一片文章点赞一次,重复点赞提示已经点...原创 2019-07-08 21:44:00 · 973 阅读 · 0 评论 -
Java设计模式-模板方法模式
定义Define the skeleton of an algorithm in an operation,deferring some steps to subclasses.TemplateMethod lets subclasses redefine certain steps of an algorithm without changing the algorithm'sstr...原创 2019-06-24 17:51:32 · 784 阅读 · 0 评论 -
Java程序员如何运用所掌握的技术构建一个完整的业务架构
1、通用架构概述创业之初,我们往往会为了快速迭代出产品,而选择最简单的技术架构,比如LAMP架构,SSH三层架构。这些架构可以适应初期业务的快速发展,但是,随着业务变得越来越复杂,我们会发现这些架构越来越难支撑业务的发展,出现在一个类中写好几千行代码,一个方法中到处都是if else语句,如果中间遇到主程序猿离职,后面介入的程序猿几乎无法理解这些代码,到最后,产品越来越难迭代,只能推翻重做。如...原创 2019-07-02 21:42:07 · 177 阅读 · 0 评论 -
想要去阿里面试?你必须得跨过 JVM 这道坎!
概述很多人想要到阿里巴巴、美团、京东等互联网大公司去面试,但是现在互联网大厂面试一般都必定会考核JVM相关的知识积累和实践经验,毕竟线上系统写好代码部署之后,每个工程师都必须关注JVM相关的东西,比如OOM、GC等问题.所以一起来看看JVM的最基本的区域划分以及工作原理,这个基本上是互联网公司面试必问。区域划分jvm的区域划分如下所示:...原创 2019-06-22 22:15:34 · 115 阅读 · 0 评论 -
Spring中如何使用设计模式
关于设计模式,如果使用得当,将会使我们的代码更加简洁,并且更具扩展性。本文主要讲解Spring中如何使用策略模式,工厂方法模式以及Builder模式。1. 策略模式关于策略模式的使用方式,在Spring中其实比较简单,从本质上讲,策略模式就是一个接口下有多个实现类,而每种实现类会处理某一种情况。我们以发奖励为例进行讲解,比如我们在抽奖系统中,有多种奖励方式可供选择,比如积分,虚拟币和现金等...原创 2019-06-25 21:23:07 · 145 阅读 · 0 评论 -
爱国者数码十年架构师:我是这样手写Spring的,用300行代码体现优雅之道
人见人爱的Spring已然不仅仅只是一个框架了。如今,Spring已然成为了一个生态。但深入了解Spring的却寥寥无几。这里,我带大家一起来看看,我是如何手写Spring的。我将结合对Spring十多年的研究经验,用不到400行代码来描述SpringIOC、DI、MVC的精华设计思想,并保证基本功能完整。首先,我们先来介绍一下Spring的三个阶段,配置阶段、初始化阶段和运行阶段(如图):...原创 2019-06-21 15:26:37 · 165 阅读 · 0 评论 -
一文搞定HashMap的实现原理和面试
HashMap在日常开发中基本是天天见的,而且都知道什么时候需要用HashMap,根据Key存取Value,但是存和取的时候那些操作却是很少去研究。同时在面试中也是面试官们必问的。以下是基于JDK1.8正文先看看HashMap的结构图:1. 先来认识一下HashMap中定义的一些需要了解的成员变量// hashMap数组的初始容量 16static final int D...原创 2019-06-20 21:12:32 · 148 阅读 · 0 评论 -
微服务之架构技术选型与设计
本文主要介绍了架构技术选型与设计-微服务选型,Spring cloud 实现采用的技术,希望对您的学习有所帮助。架构技术选型与设计-DUBBODubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点(阿里巴巴现在使用架构为HSF)。 于2012-10-24最后版本2.5.3成为最后一版本,由当当接手维护,命名为dubbox;2017年突然继续dubbo进行维护,最后更...原创 2019-06-20 21:02:59 · 1050 阅读 · 0 评论 -
2年java,蚂蚁一面,卒
其实我一个都没答上来。并不是因为我笨,是因为我不会。在大扰的帮助下,现在我会了,求求你再给我一个机会。TreeSet/HashSet 区别顾名思义,首先是结构上的不同1、TreeSet背后的结构是TreeMap,也就是红黑树,能够实现自动排序。它通过equals方法或者compareTo方法进行内容的比较。2、HashSet背后是HashMap,key是无序的,只能做外部排序。既然是H...原创 2019-07-10 22:07:18 · 122 阅读 · 0 评论 -
系统架构之高可扩展系统设计与实现
可扩展性是衡量架构设计的一个因素,也经常被开发者提到。但是,一个系统要设计出比较好的可扩展性是有一定难度的,而且可扩展性体现在不同层次上,有大的可扩展性,也有小的可扩展性,本文从可扩展的本质出发,通过平时常用的框架来印证,最后通过实际案例说明如何设计高可扩展性系统。image一、可扩展的本质是什么?可扩展的意思是在面对变化时,用最少的代价去实现,平时我们听得最多的是面向抽象 (接口...原创 2019-07-05 20:43:42 · 2128 阅读 · 0 评论