![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序员
文章平均质量分 73
Java技术zhai
it技能服务
展开
-
当面试官要你介绍一下MQ时,该怎么回答?
一、为什么要使用MQ消息中间件?一个用消息队列的人,不知道为啥用,有点尴尬。没有复习这点,很容易被问蒙,然后就开始胡扯了。回答:这个问题,咱只答三个最主要的应用场景,不可否认还有其他的,但是只答三个主要的,即以下六个字:解耦、异步、削峰1、解耦传统模式:传统模式的缺点:系统间耦合性太强,如上图所示,系统A在代码中直接调用系统B和系统C的代...转载 2019-09-26 17:56:00 · 655 阅读 · 0 评论 -
最新阿里Java面试题整理+进阶资料分享,看完直接收藏
前言:金三已经过去,现在是银四,据我了解,好多人都会在三月份选择跳槽,为什么大家都会在三月份选择离职跳槽呢?那当然是新年刚刚过去,大家也许是觉得老公司待遇不怎么样?薪资不够高,想换个新环境等等原因,所以,三月份就变成了招聘与跳槽的旺季,那为什么四月份就比不上三月份呢?相信不用我说大家也知道,毕竟三月份大家都去凑热闹,都去招聘与面试了,四月份还剩下来的招聘与面试的人就寥寥无几了,而且四月份还...原创 2019-04-09 22:41:26 · 265 阅读 · 0 评论 -
为什么做java开发的公司需要那么多程序员?
透过现象看本质。Java是企业应用市场的王者,如果一家非互联网公司用Java,那么十有八九是做企业应用的。所以,这个问题本质上是:为什么做企业应用的公司需要那么多Java程序员。开发企业应用的公司有其自身的特点。下面9点不一定在所有企业应用的公司身上都存在,但肯定是大同小异。相对于互联网来说,企业应用不是一个公平竞争的市场。互联网公司创业之初往往是因为有好想法好技术,...转载 2019-03-24 15:03:33 · 1715 阅读 · 0 评论 -
【荐】从Java面试官的角度,如何快速判断程序员的能力
临近金三银四面试跳槽黄金季,最近面试跳槽的人特别多,关注我的朋友都知道我不轻易做分享,因为这没有标准答案,看法也因人而异。但我发现有些面试问题还挺普遍的,今天就说说我做面试官这几年的经验,从面试官的角度去看面试,希望对在准备面试以及想要提升的程序员们有点启发,以下仅是个人经验总结:如何阅读候选人简历阅读候选人的简历,这是招聘流程中的第一项工作。候选人的简历各式各样,工程师们...原创 2019-03-18 21:39:07 · 465 阅读 · 1 评论 -
分布式架构的演进之道
一、前言我们都知道,当今无论在BAT这样的大公司,还是各种各样的小公司,甚至是传统行业刚转互联网的企业都开始使用分布式架构,那么什么叫分布式架构呢?分布式架构有什么好处呢?分布式架构经过了怎样的发展呢?是哪家企业开启了分布式架构的时代呢?读完本文,你就会得到这些答案,下面让我们一起来开启分布式概述的奇妙之旅吧!二、分布式架构的发展历史1946年2.14日,那是一个浪漫的情人节 , ...原创 2019-03-07 21:16:11 · 124 阅读 · 0 评论 -
跳槽季如何快速全面复习面试题
去年的这个时候小编通过两个月的复习拿到了阿里巴巴的 offer,有一些运气,也有一些心得,借着跳槽季来临特此分享出来。简单梳理一下我的复习思路,同时也希望和大家一起交流讨论,一起学习,如果不对之处欢迎指正一起学习。本文即是复习思路,亦可当做学习思路。我大致把 JAVA 的复习分为如下几个方向。1、JVM;2、排序算法和 Java 集合&工具类;3、多线程和并发包;...转载 2019-03-09 22:03:11 · 187 阅读 · 0 评论 -
面试经验总结:注意这几点,面试通过率上涨30%
又到了一年中的招聘旺季的时候,想必很多人都萌动了跳槽的心,笔者也抱着同样的想法换了个公司,从10底开始面,面到1月初,面了有快二十五家公司。我是一个喜欢总结经验的人,每经过一场面试,我在回来的路上都会仔细回想今天哪些问题可以答的更好,或者哪些问题是自己之前没遇到过的,或者是哪个知识点今天又问了等等。不会那就多做准备,往往机会都是留给有准备的人。到现在已经找到满意的工作了,对自己这段痛苦的面试做...原创 2019-02-25 18:10:44 · 4879 阅读 · 0 评论 -
大龄程序员怎样渡过中年危机?
在娱乐圈,哦不,是在程序员这个吃青春饭的行业,有一个人人闻之色变的话题,曰:「年老色衰」。只要是个程序员,心里都会惴惴不安的想:「我老了以后卖不动色相,哦不,写不动代码了,我还能干啥呢?」。今天咱们来谈谈这个禁忌话题。在我还是25岁的时候,我和很多程序员一样,其实有同样的担心,老了以后怎么办?写代码难道还能写到30岁?当我30岁的时候,我发现自己创业去了,虽然非常苦逼,但是苦中作乐...原创 2019-02-17 14:57:59 · 641 阅读 · 1 评论 -
阿里开发强制要求的11条索引创建规范,提高性能
1. 【强制】业务上具有唯一特性的字段,即使是多个字段的组合,也必须建成唯一索引。说明:不要以为唯一索引影响了insert速度,这个速度损耗可以忽略,但提高查找速度是明显的;另外,即使在应用层做了非常完善的校验控制,只要没有唯一索引,根据墨菲定律,必然有脏数据产生。2. 【强制】超过三个表禁止join。需要join的字段,数据类型必须绝对一致;多表关联查询时,保证被关联的字段需要有索...转载 2019-01-24 16:13:30 · 1335 阅读 · 0 评论 -
如何写好一份技术简历?
写简历的基本目的和策略大部分情况下,写简历是找工作的第一步,考虑到第二步就是面试,那么简历就是敲门砖,为了让企业认识到你的价值,必须把自己的真实水平描述出来,展现出你有能力应对这份工作。甚至要体现出自己是某方面的杰出人才,因为只有足够优秀的人,企业才能更看重你,因为你会为企业带来不一样的价值,对应的待遇也将更好。所以写简历的根本策略就是如实的体现出你的水平和阅历,那么如何体现呢?不是通过说...转载 2018-12-13 21:07:40 · 2111 阅读 · 0 评论 -
Java程序员从阿里拿到offer回来,这些面试题你会吗?
前不久刚从阿里面试回来,为了这场面试可以说准备了一个半月,做的准备就是刷题和看视频看书充实自己的技术,话说是真难啊,不过还算顺利拿到了offer,有很多面试题我已经记不起来了,这些是当天回家整理好的,下面我来跟大家一起分享一下。首先我们需要明白一个事实,招聘的一个很关键的因素是在给自己找未来的同事,同级别下要找比自己优秀的人,面试是一个双向选择的过程,也是一个将心比心去沟通的过程。和以前一...转载 2018-12-05 22:30:07 · 272 阅读 · 0 评论 -
快讯|连月薪8万的架构师也“外包”了,那我们该怎么办?
小编今天看到一篇文章,大意是某些不靠谱的互联网公司为了节省人力成本,连团队里的定海神针——架构师都外包了: 其实,这从侧面体现出,架构师这一行业的吃香,但是如果真的遇到这种情况该怎么办呢?小编我咨询了一位律师朋友,他表示,目前不少企业都存在“真派遣,假外包”的行为,以此逃避法律规定的“同工同酬及与员工签署固定劳动期限的劳动协议”等义务。但事实上,法院针对这一类行为有明确的鉴别标准,员工...原创 2018-12-12 18:03:56 · 541 阅读 · 1 评论 -
微服务架构设计纲要
微服务 软件架构是一个包含各种组织的系统组织,这些组件包括 Web服务器, 应用服务器, 数据库,存储, 通讯层), 它们彼此或和环境存在关系。系统架构的目标是解决利益相关者的关注点。Conway’s law: Organizations which design systems[...] are constrained to produce designs which a...转载 2018-11-27 19:48:44 · 1445 阅读 · 0 评论 -
普通的程序员和大神级的程序员有什么区别?
普通的程序员和大神级的程序员的区别,小编来列举几点,顺便给一些普通程序员一些学习建议,请查收 ~一、主要问题1、没有编程思想或许很多人觉得很扯,但确实是这样的。高级程序员在看到一个需求的时候,总是能够快速在大脑里生成这个需求在现实生活中的映射。每当产品经理提一个需求的时候,高级程序员首先想到的就是,这个需求需要哪些数据库上的改动,对现有的逻辑有什么影响,需要提供多少接口,存在哪些可...原创 2018-11-26 17:53:52 · 2442 阅读 · 1 评论 -
如何在高性能服务器上进行JVM调优?
为了充分利用高性能服务器的硬件资源,有两种JVM调优方案,它们都有各自的优缺点,需要根据具体的情况进行选择。1、采用64位操作系统,并为JVM分配大内存我们知道,如果JVM中堆内存太小,那么就会频繁地发生垃圾回收,而垃圾回收都会伴随不同程度的程序停顿,因此,如果扩大堆内存的话可以减少垃圾回收的频率,从而避免程序的停顿。因此,人们自然而然想到扩大内存容量。而32位操作系统理论上最大只...转载 2018-11-24 16:18:17 · 574 阅读 · 0 评论 -
彻底理解Netty,这一篇文章就够了
Netty到底是什么从HTTP说起有了Netty,你可以实现自己的HTTP服务器,FTP服务器,UDP服务器,RPC服务器,WebSocket服务器,Redis的Proxy服务器,MySQL的Proxy服务器等等。我们回顾一下传统的HTTP服务器的原理1、创建一个ServerSocket,监听并绑定一个端口2、一系列客户端来请求这个端口3、服务器使用Accept,获得一个来...原创 2018-11-24 15:18:44 · 2269 阅读 · 0 评论 -
互联网浪潮下,Java程序员如何追赶技术革新的脚步?
一:时代背景身处互联网行业的我们一直处在变革的最前端,受到行业发展浪潮的洗礼,不停歇地追赶着技术革新的脚步。特别是近几年来, 互联网架构不断演化,经历了从集中式架构到分布式架构,再到云原生架构的过程 。在这个演变过程中,我们可以深刻感受到一系列的格局变化 —— 软件改变世界,开源改变软件,云吞噬开源。每一次架构模式的升级都会给这个世界的合作模式带来变化。“云原生”因能解决传统应用升级缓慢、...原创 2019-04-20 22:08:01 · 456 阅读 · 0 评论 -
又一个程序员倒下,病态 996 早需改变,而且不应该只从这里开始!
前两天看到一个视频,视频内容是关于某创业公司的一位员工在镜头下缓缓倒下,虽说最终抢救回来了,但是当时看到这个视频的时候,老李我着实也为视频中的主人公捏了一把汗。看了这个事件之后,老李忍不住想和大家叨叨几句,说说自己对996的一些看法与建议。本文不是鸡汤、广告,全部是老李亲身经历与感悟。01 能增值自己的996,才值得去奋斗还记得我刚毕业到上海的第一年,很幸运得到了一家国外知名...原创 2019-04-26 23:12:05 · 460 阅读 · 0 评论 -
揭秘Zookeeper的特点及应用场景
Zookeeper简介Zookeeper是一个高性能的分布式一致系统,在分布式系统中有着广泛的应用。基于它,可以实现分布式同步、配置管理、命名空间管理等众多功能,是分布式系统中常见的基础系统。Zookeeper主要用来解决分布式集群中应用系统的一致性问题,它有着树状结构的节点,每个节点均可存储少量的数据。同时,用户可以修改和订阅节点中的内容。分布式系统中的节点通过监控这些数据状态的变化,从...原创 2019-07-30 19:55:01 · 412 阅读 · 0 评论 -
漫谈微服务架构:什么是Spring Cloud,为何要选择Spring Cloud
Spring Cloud是基于Spring Boot的,因此还在使用SpringMVC的同学要先了解Spring Boot。先上一段官话,Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发框架。...原创 2019-06-30 15:56:57 · 246 阅读 · 0 评论 -
以Mybatis源码为突破口,带你重新理解这九大设计模式
虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。Mybatis至少遇到了以下的设计模式的使用。Builder模式:例如SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStateme...原创 2019-06-29 21:51:30 · 154 阅读 · 0 评论 -
SpringCloud微服务架构升级总结
一、背景1.1 应用系统的架构历史1.2 什么是微服务?起源:微服务的概念源于 2014 年 3 月 Martin Fowler 所写的一篇文章“Microservices”。文中内容提到:微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。通信方式:每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相...转载 2019-06-28 21:35:24 · 211 阅读 · 0 评论 -
一个知名网站的微服务架构最佳实现
译者语:如果你的项目正在从单体升级为微服务而忧心;或者你在实践微服务过程中手忙脚乱,本文都是你不容错过的好文。微服务架构的目标是帮助工程团队更快、更安全、更高质量地交付产品。拆分服务允许团队快速迭代的同时,保证了对系统剩余部分的最小影响。在Medium,我们的技术堆栈始于2012年的单体Node.js应用程序。我们已经构建了几个卫星服务,但我们还没有制定一个系统地采用微服务架...翻译 2019-07-09 14:10:04 · 729 阅读 · 0 评论 -
别再问什么是数据库分库分表了,看这里!
编者语:为了避免被误解为:「手里有把锤子,看什么都是钉子!」,说明一下不是什么业务都适合分布式数据库,更不是用了分布式数据库性能就一定能得到扩展。其次:本文为纯干货,建议先转发、收藏再观看。分布式数据库已经流行好多年,产品非常众多,其中分布式数据库中间件使用场景最广。本文主要是通过几道关于分库分表的常问面试题带你深入了解数据库分库分表,希望对大家能够有所帮助!一:面试题为什...转载 2019-06-16 17:20:49 · 4743 阅读 · 0 评论 -
什么是服务网关?为什么需要服务网关?如何选择服务网关?
一、什么是服务网关服务网关 = 路由转发 + 过滤器1、路由转发:接收一切外界请求,转发到后端的微服务上去;2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过过滤器完成(其实路由转发也是通过过滤器实现的)。二、为什么需要服务网关上述所说的横切功能(以权限校验为例)可以写在三个位置: 每个服务自己实现一遍 写到一个公...转载 2019-05-27 16:55:47 · 22082 阅读 · 3 评论 -
分库分表中间件的高可用实践
前言分库分表中间件在我们一年多的锤炼下,基本解决了可用性和高性能的问题(只能说基本,肯定还有隐藏的坑要填),问题自然而然的就聚焦于高可用。本文就阐述了我们在这方面做出的一些工作。哪些高可用的问题作为一个无状态的中间件,高可用问题并没有那么困难。但是尽量减少不可用期间的流量损失,还是需要一定的工作的。这些流量损失主要分布在:(1)某台中间件所在的物理机突然宕机。 (2)...转载 2019-05-17 17:45:11 · 662 阅读 · 0 评论 -
如果你项目中引入了Redis,那你不应该错过这篇文章!
目录 概述 Redis的数据结构和常用命令 数据持久化 内存管理与数据淘汰机制 Pipelining 事务与Scripting Redis性能调优 主从复制与集群分片 Redis Java客户端的选择 本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介...转载 2019-05-21 21:34:57 · 456 阅读 · 0 评论 -
Mybatis源码分析之9种常用设计模式总结
虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。Mybatis至少遇到了以下的设计模式的使用:Builder模式,例如SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStatemen...原创 2019-05-15 15:46:32 · 172 阅读 · 0 评论 -
不容错过的HashMap实现原理及源码分析
哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JDK7的HashMap源码进行分析。目录 一、什么是哈希表...转载 2019-05-07 22:53:15 · 151 阅读 · 0 评论 -
假如一个小时后,全世界将永久断网,程序员们会做什么?
互联网已经渗入我们生活的方方面面,于是我们就免不了会思考:如果有一天网络断了怎么办呢?英国 Cable.co.uk 曾进行了一项有趣的"断网"调查,调查发现在 2500 名受访者当中,有 29% 的受访者表示宁愿失去手指也不愿断网。这些受访者表示,他们无法面对无宽带连接的生活,他们将上网视为生命线,他们认为失去了互联网连接,可能产生被社会孤立的感觉。假如某一天断网了,程序员会...转载 2019-05-07 19:21:44 · 254 阅读 · 0 评论 -
Java架构师成长路径(最新版)
jvm 一行代码是怎么运行的首先,java代码会被编译成字节码,字节码就是java虚拟机定义的一种编码格式,需要java虚拟机才能够解析,java虚拟机需要将字节码转换成机器码才能在cpu上执行。 我们可以用硬件实现虚拟机,这样虽然可以提高效率但是就没有了一次编译到处运行的特性了,所以一般在各个平台上用软件来实现,目前的虚拟机还提供了一套运行环境来进行垃圾回收,数组越界检查,权限校验等。虚拟机...原创 2019-05-14 21:47:44 · 2239 阅读 · 0 评论 -
十面阿里,七面头条,手拿六个Offer,你猜我最后选了哪家?
面试者背景简介双非末流一本,大三,软件专业(Java),有百度实习经历面试情况十面阿里,总共分为阿里云四面,蚂蚁两面,菜鸟四面;七面头条分为金融三面,抖音一面,效率工程三面;六个Offer分别是阿里、腾讯、头条、华为、蘑菇街、三七互娱从二月份在牛客网看到阿里云的招聘贴就投了,那是我最早投递的公司,当时也没什么经验,导致表现得很糟糕,最后四面跪,当时伤心到谷底,幸好跪得比较早...原创 2019-05-07 15:39:39 · 1105 阅读 · 0 评论 -
开源自用 OpenJDK 版本,阿里巴巴向全球 Java 开发者的重磅献礼
阿里巴巴重磅开源 OpenJDK 长期支持版本 Alibaba Dragonwell。众所周知,Oracle 对 Java 的态度已经发生系列转变,由于 Java 用户群体庞大,预计此事在很长一段时间内都是开发者的讨论焦点。作为世界上最大的 Java 用户之一,阿里巴巴选择开源 OpenJDK 长期支持版本 Alibaba Dragonwell 是出于哪些考量呢?Oracle 撒手,宣布对...转载 2019-04-29 17:07:04 · 1147 阅读 · 0 评论 -
现在程序员的工资是不是被高估了?
对于优秀的程序员来说,薪酬的天花板犹如发际线,没有最高只有更高。而对于只想「混日子」的程序员来说,高薪很可能是泡沫,风一吹就碎。一、程序员的工资真的高吗?《2018年中国程序员生存状况报告》,来源:程序员客栈 根据程序员客栈所做的《2018年中国程序员生存状况报告》,年薪5w以下的程序员仅占6.2%,且年龄都在25岁以下,工作年限只有1-2年;大多数程序员年薪在9-30w,平均月...转载 2018-11-18 16:43:34 · 317 阅读 · 0 评论 -
Mybatis整合Spring实现事务管理的源码分析
一:前言没有完整看完,但是看到了一些关键的地方,这里做个记录,过程会有点乱,以后逐渐补充最终归档为完整流程;相信看过框架源码的都知道过程中无法完全确定是怎样的流程,毕竟不可能全部都去测试一遍,但是看的过程中灵感的显现很重要(就是直觉知道接下来的步骤是什么应该是什么之类的,但是这个自觉是猜的而非蒙的,即过程里是有往会递推看到了一些关键点的而不是抛色子来确定是哪个子类),因此自己写的时候也...原创 2018-11-19 22:49:26 · 323 阅读 · 1 评论 -
漫谈Java IO之 Netty与NIO服务器
为什么要使用开源框架?这个问题几乎可以当做废话,框架肯定要比一些原生的API封装了更多地功能,重复造轮子在追求效率的情况并不是明智之举。那么先来说说NIO有什么缺点吧:NIO的类库和API还是有点复杂,比如Buffer的使用 Selector编写复杂,如果对某个事件注册后,业务代码过于耦合 需要了解很多多线程的知识,熟悉网络编程 面对断连重连、保丢失、粘包等,处理复杂 NIO存在B...原创 2018-11-23 22:51:26 · 184 阅读 · 0 评论 -
基于Redis实现分布式锁实战
背景在很多互联网产品应用中,有些场景需要加锁处理,比如:秒杀,全局递增ID,楼层生成等等。大部分的解决方案是基于DB实现的,Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对Redis的连接并不存在竞争关系。其次Redis提供一些命令SETNX,GETSET,可以方便实现分布式锁机制。Redis命令介绍使用Redis实现分布式锁,有两个重要函数需要介绍SETNX命令(S...转载 2018-07-13 22:48:50 · 734 阅读 · 0 评论 -
垂直打击之JVM剖析
让Java应用程序运行是一回事,但让他们跑得快就是另外一回事了。在面对对象的环境中,性能问题就像来势凶猛的野兽。但JVM的复杂性将性能调整的复杂程度增加了一个级别。这里Refcard涵盖了JVM internals、class loading(Java8中更新以映射最新的元空间)、垃圾回收、故障诊断、检测、并发性,等等。介绍Java是目前软件开发领域中使用最广泛的编程语言之一。Java应用程序在许...转载 2018-07-12 21:41:46 · 239 阅读 · 0 评论 -
暮然回首:我的10年软件开发生涯
前言我是个码农,在职场干了多年,在超过10个公司服务过,遇到过各种怪现状,拍案惊奇葩,不吐不快,太想写篇文章吐槽一下。这篇文章汇集了我10多年来的工作中遇到的各种经历,总结的心得,分别讨论了团队与协作(同事/领导/客户的交流)、技术与质量(学习、技术选择、质量)、职业与事业(现实、追求、老油条、职业道德、典故、事业/经验)、找工作(猎头/中介、应聘、简历、面试别人)、辞职(原因/理由、信任)等,干...原创 2018-07-16 15:23:01 · 2925 阅读 · 1 评论 -
程序员 != 这些标签
程序员在别的行业的人看来是很牛逼,工资很高,智商很高的人群。 但在作者看来,程序员和平常人没什么差别,都是平常人,也都是凡人。特别聪明的人哪个行业都会有,不只局限于程序员。程序员中厉害的或许就是黑客了吧,会编程的程序员,只是熟悉自己的专业,所以不要觉得是个程序员就很厉害,不存在的。现在的程序员早已轮为代码机器,每天大多时候做着简单重复的工作。同时,也被黑得体无完肤,如:码农,程序猿,搬砖的…都...转载 2018-03-28 16:15:47 · 417 阅读 · 0 评论