程序人生
程序员摩西
这个作者很懒,什么都没留下…
展开
-
首发!阿里大佬整理万字MyBatis实战笔记,精简易懂,开源免费下载
MyBatis作为国内经常使用的持久层框架,其内部代码的设计非常优秀。比如在开发过程中,有能力对框架进行深度的定制化开发,解决BUG也更加得心应手!另外学习开发者是如何设计高扩展性、低耦合性的代码,便于在自己的开发场景中应用。而在跳槽的时候MyBatis更是面试必问的内容,那你对于MyBatis又掌握了多少呢?想学习MyBatisK但,市面上真正适合学习的MyBatis资料太少,有的书或资料虽然讲得比较深入,但是语言晦涩难懂,大多数人看完这些书基本都是从入门到放弃。学透MyBatis源码难道就真的就没有一转载 2020-11-12 21:28:45 · 237 阅读 · 0 评论 -
2020年阿里巴巴最新120道 面试真题:天猫+蚂蚁金服+阿里巴巴 面试最新总结(附:答案)
每一年的双11,都是阿里新技术的演练场,也是阿里技术人一年一度的大秀秀场。作为国内互联网技术的典型代表,阿里巴巴的技术一直备受着大家的关注。能进入阿里工作,是很多开发者们的目标与梦想,为帮助开发者们提升面试技能、高效通关一线互联网公司的面试,我们走访了多位阿里巴巴资深技术专家以及阿里高级Java候选人,提炼总结了这份面试真题,一次整体放出送给大家。看看自己能答对多少,如果能回答70%的题目,就大胆去阿里以及各互联网公司试试身手吧。本篇建议大家收藏、备用~【阿里、天猫、蚂蚁面试题目】涵盖: 开源原创 2020-11-05 22:19:25 · 1155 阅读 · 4 评论 -
限量!Alibaba首发“Java从入门到架构成长笔记”公开半小时获8K标星
现在面试大部分候选人在工作 3 年的时候基本都会遇上一道难过的坎。为啥这么说呢?因为工作一段时间之后,大部分工程师都已经完成了最原始的基础技能积累,大家的技术水平差距集中在语言、框架、工具的使用熟练度上。而这个差异不会很大,就算大,也很容易追赶。但如果一个工程师一直停留在业务开发,一直沉浸于工具的使用熟练度,那他自然就会遇到能力瓶颈。这个瓶颈就是前面说的那道坎,跳过去了,你就发现了一片新天地,可以在下一个区间里继续生长。跳不过去,就可能不停地在原地打转。最近意外收获了到一份Alibaba一位大佬给的Jav原创 2020-10-15 21:47:37 · 312 阅读 · 0 评论 -
面对海量数据,如何才能查得更快?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等本文和大家分享一下如何来保存原始数据,我们知道,原始数据的数据量太大,能存下来就很不容易了,这个数据是没法直接来给业务系统查询和分析的。有两个原因,一是数据量太大了,二是也没有很好的数据结构和查询能力,来支持业务系统查询。所以一般的做法是,用流计算或者是批计算,把原始数据再进行一次或者多次的过滤、汇聚和计算,把计算结果落到另外一个存储系统中去,由这个存储再给业务系统提供查询支持。这里的“流计算”,指的是 Flink、Storm..原创 2020-08-29 20:18:35 · 815 阅读 · 1 评论 -
揭秘:一条SQL语句的执行过程是怎么样的?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等数据库系统能够接受 SQL 语句,并返回数据查询的结果,或者对数据库中的数据进行修改,可以说几乎每个程序员都使用过它。而 MySQL 又是目前使用最广泛的数据库。所以,解析一下 MySQL 编译并执行 SQL 语句的过程,一方面能帮助你加深对数据库领域的编译技术的理解;另一方面,由于 SQL 是一种最成功的 DSL(特定领域语言),所以理解了 MySQL 编译器的内部运作机制,也能加深你对所有使用数据操作类 DSL 的理解,比如.原创 2020-08-26 21:10:31 · 654 阅读 · 0 评论 -
面试官:有没有比读写锁更快的锁?StampedLock了解下
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等本文主要和大家分享一下 StampedLock 的使用方法、内部工作原理以及在使用过程中需要注意的事项。一、StampedLock支持的三种锁模式我们先来看看在使用上 StampedLock 和上一篇文章讲的 ReadWriteLock 有哪些区别。ReadWriteLock 支持两种模式:一种是读锁,一种是写锁。而 StampedLock 支持三种模式,分别是:写锁、悲观读锁和乐观读。其中,写锁、悲观读锁的语义和 Rea..原创 2020-08-22 20:26:22 · 372 阅读 · 0 评论 -
温故知新:常用的SQL标准有哪些,在SQL92中是 如何使用连接的?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等本文主要和大家分享一下连接表的操作。在分享之前,我想先给大家介绍下连接(JOIN)在 SQL 中的重要性。我们知道 SQL 的英文全称叫做 Structured QueryLanguage,它有一个很强大的功能,就是能在各个数据表之间进行连接查询(Query)。这是因为 SQL 是建立在关系型数据库基础上的一种语言。关系型数据库的典型数据结构就是数据表,这些数据表的组成都是结构化的(Structured)。你可以把关系模型理解..原创 2020-08-18 20:26:55 · 650 阅读 · 0 评论 -
数据库中的数据是如何被黑客拖取的?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等说到数据库,你肯定会说:“数据库是我最熟悉的工具了。利用它,我能够设计复杂的表结构、写出炫酷的 SQL 语句、优化高并发场景下的读写性能。”当然,我们的日常工作离不开数据库的使用。而且,数据库中储存的大量机密信息,对于公司和用户都至关重要。那关于数据库的安全你知道多少呢?你知道数据库是如何进行认证的吗?使用数据库交换数据的过程是安全的吗?假如黑客连入了数据库,又会发生什么呢?今天,我就以两种比较常见的数据库 Redis 和 My.原创 2020-08-13 17:46:16 · 458 阅读 · 0 评论 -
如何用数据结构和算法实现一个短网址系统?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等短网址服务你用过吗?如果我们在微博里发布一条带网址的信息,微博会把里面的网址转化成一个更短的网址。我们只要访问这个短网址,就相当于访问原始的网址。从功能上讲,短网址服务其实非常简单,就是把一个长的网址转化成一个短的网址。作为一名软件工程师,你是否思考过,这样一个简单的功能,是如何实现的呢?底层都依赖了哪些数据结构和算法呢?一、短网址服务整体介绍刚刚我们讲了,短网址服务的一个核心功能,就是把原始的长网址转化成短网址。除了这个功.原创 2020-08-10 18:13:31 · 408 阅读 · 0 评论 -
阿里架构师浅析数据结构:队列在线程池等有限资源池中的应用
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等我们知道,CPU 资源是有限的,任务的处理速度与线程个数并不是线性正相关。相反,过多的线程反而会导致 CPU 频繁切换,处理性能下降。所以,线程池的大小一般都是综合考虑要处理任务的特点和硬件环境,来事先设置的。当我们向固定大小的线程池中请求一个线程时,如果线程池中没有空闲资源了,这个时候线程池如何处理这个请求?是拒绝请求还是排队请求?各种处理策略又是怎么实现的呢?实际上,这些问题并不复杂,其底层的数据结构就是我们今天要学的内容.原创 2020-08-05 17:49:47 · 261 阅读 · 0 评论 -
阿里大牛的数据库优化方案:写入数据量增加时,如何实现分库分表?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等之前个大家分享给在高并发下数据库的一种优化方案:读写分离,它就是依靠主从复制的技术使得数据库实现了数据复制为多份,增强了抵抗大量并发读请求的能力,提升了数据库的查询性能的同时,也提升了数据的安全性,当某一个数据库节点,无论是主库还是从库发生故障时,我们还有其他的节点中存储着全量的数据,保证数据不会丢失。此时,你的电商系统的架构图变成了下面这样:这时,公司 CEO 突然传来一个好消息,运营推广持续带来了流量,你所设计的电商系统的.原创 2020-08-02 20:53:03 · 448 阅读 · 0 评论 -
反应式编程框架设计:如何使程序调用不阻塞等待,立即响应?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等在之前的文章中就讨论过为什么在高并发的情况下,程序会崩溃。主要原因是,在高并发的情况下,有大量用户请求需要程序计算处理,而目前的处理方式是,为每个用户请求分配一个线程,当程序内部因为访问数据库等原因造成线程阻塞时,线程无法释放去处理其他请求,这样就会造成请求堆积,不断消耗资源,最终导致程序崩溃。这是传统的 Web 应用程序运行期的线程特性。对于一个高并发的应用系统来说,总是同时有很多个用户请求到达系统的 Web 容器。Web .原创 2020-07-29 20:57:56 · 490 阅读 · 0 评论 -
阿里架构师的炫技与克制:代码的两种味道与态度
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等虽然你代码可能已经写得不少了,但要真正提高代码水平,其实还需要多读代码。就像写作,写得再多,不多读书,思维和认知水平其实是很难提高的。代码读得多了,慢慢就会感受到好代码中有一种味道和品质:克制。但也会发现另一种代码,它也会散发出一种味道:炫技。一、炫技什么是炫技的代码?我先从一个读代码的故事说起。几年前我因为工作需要,去研究一个开源项目的源代码。这是一个国外知名互联网公司开源的工具项目,据说已在内部孵化了 6 年之久,这才.原创 2020-07-23 21:24:48 · 347 阅读 · 0 评论 -
阿里架构师全方位、多角度的剖析数据的持久化和一致性
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等在阅读之前,我想你很可能已经使用过许多存储层的技术了,例如缓存、文件、关系数据库,甚至一些云上 key-value 的存储服务,但就如同我之前提到的那样,某项具体技术总是相对好学,可对于全栈知识系统地学习,也包括持久层的学习,是一定要立足于技术的基础、原理和本质的。今天,我们要讲的就是其中之一 —— 一致性(Consistency)。数据的可用性和一致性是很多工程师几乎每天都会挂在嘴边的概念,在存储系统的技术选型上面,一致性将会.原创 2020-07-21 20:49:08 · 251 阅读 · 0 评论 -
熟悉会导致轻蔑,记一次MySQL 选错索引的原因
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等MySQL 中,可以为某张表指定多个索引,但在语句具体执行时,选用哪个索引是由 MySQL 中执行器确定的。那么执行器选择索引的原则是什么,以及会不会出现选错索引的情况呢?先看这样一个例子:创建表 Y,设置两个普通索引, 创建一个存储过程用于插入数据。MySQL: 5.7.27, 隔离级别: RRCREATE TABLE `Y` ( `id` int(11) NOT NULL AUTO_INCREMENT, `.原创 2020-07-15 21:09:23 · 246 阅读 · 0 评论 -
海量数据做计算,到底可以有多快?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等内存计算是近十几年来,在数据库和大数据领域的一个热点。随着内存越来越便宜,CPU的架构越来越先进,整个数据库都可以放在内存中,并通过 SIMD 和并行计算技术,来提升数据处理的性能。我问你一个问题:做 1.6 亿条数据的汇总计算,需要花费多少时间呢?几秒?几十秒?还是几分钟?如果你经常使用数据库,肯定会知道,我们不会在数据库的一张表中保存上亿条的数据,因为处理速度会很慢。但今天,我会带你采用内存计算技术,提高海量数据处理工作的.原创 2020-07-14 21:33:27 · 715 阅读 · 0 评论 -
阿里架构师浅析系统高可用的实现,如何让你的系统不掉链子?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等在实际工作中,我们平常更关注系统业务功能的实现,而对于系统是否会出故障,总觉得那是小概率事件,一开始不会考虑得太多。然而系统上线后,我们会发现系统其实很脆弱,每个地方都可能会出问题,处理线上事故的时间往往超过了开发功能的时间。所以,对于系统的高可用,我想你经常会有这样的疑问:系统的高可用真的很重要吗?如何实现系统的高可用,具体都有哪些手段呢?十年前的时候,我们有几个数据来说明系统宕机对公司的影响,我记得其中一个是系统每宕掉 1.原创 2020-07-13 22:02:54 · 373 阅读 · 0 评论 -
看了这个高并发系统架构,才知道我对秒杀的误解有多深
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等一、前言很多小伙伴反馈说,高并发学了那么久,但是在真正做项目时,仍然不知道如何下手处理高并发业务场景!甚至很多小伙伴仍然停留在只是简单的提供接口(CRUD)阶段,不知道学习的并发知识如何运用到实际项目中,就更别提如何构建高并发系统了!究竟什么样的系统算是高并发系统?今天,我们就一起解密高并发业务场景下典型的秒杀系统的架构,让大家学以致用。二、电商系统架构在电商领域,存在着典型的秒杀业务场景,那何谓秒杀场景呢。简单的来说就是.原创 2020-07-10 21:25:42 · 1392 阅读 · 3 评论 -
深入理解微服务架构:银弹or焦油坑?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等微服务是近几年非常火热的架构设计理念,大部分人认为是 Martin Fowler 提出了微服务概念,但事实上微服务概念的历史要早得多,也不是 Martin Fowler 创造出来的,Martin只是将微服务进行了系统的阐述。不过不能否认 Martin 在推动微服务起到的作用,微服务能火,Martin 功不可没。微服务的定义相信你早已耳熟能详,参考维基百科,我就来简单梳理一下微服务的历史吧2005 年:Dr. Peter ..原创 2020-07-07 20:59:03 · 449 阅读 · 0 评论 -
阿里大佬是怎么监控Kafka?这次算是长见识了
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等监控 Kafka,历来都是个老大难的问题。无论是在我维护的微信公众号,还是 Kafka QQ群里面,大家问得最多的问题,一定是 Kafka 的监控。大家提问的内容看似五花八门,但真正想了解的,其实都是监控这点事,也就是我应该监控什么,怎么监控。我个人认为,和头疼医头、脚疼医脚的问题类似,在监控 Kafka 时,如果我们只监控Broker 的话,就难免以偏概全。单个 Broker 启动的进程虽然属于 Kafka 应用,但它也是一..原创 2020-07-06 20:39:19 · 475 阅读 · 0 评论 -
磁盘I/O性能优化的几个思路
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等虽然 I/O 的性能指标很多,相应的性能分析工具也有好几个,但理解了各种指标的含义后,你就会发现它们其实都有一定的关联。顺着这些关系往下理解,你就会发现,掌握这些常用的瓶颈分析思路,其实并不难。找出了 I/O 的性能瓶颈后,下一步要做的就是优化了,也就是如何以最快的速度完成 I/O操作,或者换个思路,减少甚至避免磁盘的 I/O 操作。本文,我就来说说,优化 I/O 性能问题的思路和注意事项。I/O基准测试按照我的习惯,..原创 2020-07-05 21:43:05 · 1514 阅读 · 1 评论 -
Java虚拟机是怎么实现synchronized的?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等文章目录重量级锁轻量级锁偏向锁总结在 Java 程序中,我们可以利用 synchronized 关键字来对程序进行加锁。它既可以用来声明一个 synchronized 代码块,也可以直接标记静态方法或者实例方法。当声明 synchronized 代码块时,编译而成的字节码将包含 monitorenter 和 monitorexit指令。这两种指令均会消耗操作数栈上的一个引用类型的元素(也就是 synchronized 关键字括.原创 2020-07-02 21:16:52 · 280 阅读 · 0 评论 -
Kafka中位移提交那些事儿
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等之前我们说过,Consumer 端有个位移的概念,它和消息在分区中的位移不是一回事儿,虽然它们的英文都是 Offset。今天我们要聊的位移是 Consumer 的消费位移,它记录了Consumer 要消费的下一条消息的位移。这可能和你以前了解的有些出入,不过切记是下一条消息的位移,而不是目前最新消费消息的位移。我来举个例子说明一下。假设一个分区中有 10 条消息,位移分别是 0 到 9。某个Consumer 应用已消费了 5 条.原创 2020-07-01 21:25:35 · 347 阅读 · 0 评论 -
阿里架构师的内存管理心得:如何避免内存溢出和频繁的垃圾回收?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等不知道你有没有发现,在高并发、高吞吐量的极限情况下,简单的事情就会变得没有那么简单了。一个业务逻辑非常简单的微服务,日常情况下都能稳定运行,为什么一到大促就卡死甚至进程挂掉?再比如,一个做数据汇总的应用,按照小时、天这样的粒度进行数据汇总都没问题,到年底需要汇总全年数据的时候,没等数据汇总出来,程序就死掉了。之所以出现这些情况,大部分的原因是,程序在设计的时候,没有针对高并发高吞吐量的情况做好内存管理。要想解决这类问题,首先你要.原创 2020-06-30 21:43:53 · 221 阅读 · 0 评论 -
这样简单地的设置一下,可以让你的让Docker镜像起飞
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等一、前言Docker用起来非常爽,尤其是用于DevOps实践时。但是,当你在国内或者本地拉取镜像时,经常会碰到各种“便秘”——要么镜像拉取缓慢,要么时断时连,要么连接超时!当我们的镜像又比较大时(比如某人在代码里面丢了个魔兽争霸的包),这简直是一个噩梦!那么如何解决这个问题?接下来我们就主要从以下几个方面来解决这个问题:使用镜像加速器换源自己做镜像推送到国内仓库自己搭建就近镜像仓库最后的绝招(保密)二、镜像加速.原创 2020-06-29 20:31:29 · 188 阅读 · 0 评论 -
面试官:讲一讲你对数据结构——数组、链表、栈、队列的理解
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等一、解释定义1. 数据结构:数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。再简单描述一下:数据结构就是描述对象间逻辑关系的学科。如果还是不太清楚下面会举例说明的。2. 数据存储结构:简单的讲就是数据在计算机中的存储方式。常用的数据存储方式有两种:顺序存储,非顺序存储。顺序存储就是把数据存储在一块联系的存储介质(硬盘或内存等)中。反之就是非顺序存储咯。Java中的数组就是典型的顺序存储,链表就是非顺序存储。.原创 2020-06-24 21:08:08 · 430 阅读 · 0 评论 -
面试官:你来举个栗子,如何使用异步设计提升系统性能?
最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub对于开发者来说,异步是一种程序设计的思想,使用异步模式设计的程序可以显著减少线程等待,从而在高吞吐量的场景中,极大提升系统的整体性能,显著降低时延。因此,像消息队列这种需要超高吞吐量和超低时延的中间件系统,在其核心流程中,一定会大量采用异步的设计思想。接下来,我们一起来通过一个非常简单的例子学习一下,使用异步设计是如何提升系统性能的。异步设计如何提升系统性能?假设我们要实现一个转账的微服务 Transf.原创 2020-06-13 21:53:31 · 368 阅读 · 0 评论 -
公司新来的阿里P7大牛,只用十分钟就教会了我实现高层次的复用
最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub作为开发人员,你对复用这个概念一定不陌生。在开发过程中,我们把系统中通用的代码逻辑抽取出来,变成公共方法或公共类,然后在多个地方调用,这就是最简单的技术上的复用。但一开始,我们不会过多地考虑复用,当一个新项目过来,我们会选择最直接的方式来实现,结果往往是欲速而不达,比如说:好不容易搞定了一个项目,接着又有新的类似项目过来,我们又要从头再来;项目的代码是定制的,项目结束后,系统维护的噩梦刚刚开始。如果项原创 2020-06-12 21:29:47 · 604 阅读 · 0 评论 -
P6到P7只用了两年,阅码无数的阿里大佬,是如何去阅读别人代码的?
最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub一、为何要读别人的代码?我们去阅读别人的代码,通常会带有一定的目的性。完整把一个系统的代码 “读懂” 需要极大的精力。所以明确阅读代码的目标很重要,因为它决定了你最终能够为这事付出多大的精力,或者说成本。大体来说,我们可以把目标分为这样几种类型:我要评估是否引入某个第三方模块;我要给某个模块局部修改一个 Bug(可能是因为使用的第三方模块遇到了一个问题,或者可能是你的上级临时指定了一个模块的 Bug原创 2020-06-11 15:56:20 · 605 阅读 · 0 评论 -
阿里P7大佬手把手叫我如何判断一个数据库是不是出问题了,受教了!
最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub在一主一备的双 M 架构里,主备切换只需要把客户端流量切到备库;而在一主多从架构里,主备切换除了要把客户端流量切到备库外,还需要把从库接到新主库上。主备切换有两种场景,一种是主动切换,一种是被动切换。而其中被动切换,往往是因为主库出问题了,由 HA 系统发起的。这也就引出了我们今天要讨论的问题:怎么判断一个主库出问题了?你一定会说,这很简单啊,连上 MySQL,执行个 select 1 就好了。但是 se原创 2020-06-09 20:58:14 · 294 阅读 · 0 评论 -
为什么公司新来的阿里P8大佬说:这几种情况下不能使用Java泛型
最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请访问GitHub1. 前言Java 1.5 引入了泛型来保证类型安全,防止在运行时发生类型转换异常,让类型参数化,提高了代码的可读性和重用率。但是有些情况下泛型也是不允许使用的,今天就总结一下编码中不能使用泛型的一些场景。2. 基本类型无法直接使用泛型以下写法是错误的:// error Map<int,char> wrong= new HashMap<>()基本类型是不能够作为泛型类型的,需原创 2020-06-03 22:09:19 · 264 阅读 · 0 评论 -
天天都在用数据库,你真的搞懂MySQL数据库索引是如何实现的吗?
最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub作为一个Java开发工程师,你对数据库肯定再熟悉不过了。作为主流的数据存储系统,它在我们的业务开发中,有着举足轻重的地位。在工作中,为了加速数据库中数据的查找速度,我们常用的处理思路是,对表中数据创建索引。那你是否思考过,数据库索引是如何实现的呢?底层使用的是什么数据结构和算法呢?一、解决问题的前提是定义清楚问题如何定义清楚问题呢?除了对问题进行详细的调研,还有一个办法,那就是,通过对一些模糊的需求进行假.原创 2020-06-02 15:43:24 · 302 阅读 · 0 评论 -
身为程序员就算月薪再高,想找女朋友的话这些你千万别做!
推荐阅读:程序员如何预防大龄危机我的一位大学同学,现在三十了,还单着,也是跟我一样从事编程工作,昨天跟我一起吃饭,他向我诉苦,说他在一个APP被一个女孩歧视,他在APP上跟一位女孩聊天时,他聊到他月收入两万,现在三十了,还是找不到女朋友,然后那女孩回他一句:你不会是个程序员吧?当时,我同学顿时无语,他很受打击,也很受委屈,为什么程序员群体就这么被人歧视?为何我月入两万却找不到女朋友?是因为我长的丑还是我条件太高?坦白讲,一个月两万的工资和能不能找到女朋友其实没有必然的联系。经济基础确实在恋爱中确..原创 2020-05-28 14:48:13 · 526 阅读 · 1 评论 -
关于高并发系统设计看这篇就够了,阿里、百度、美团都在用
本文转载自:关于"高并发系统设计"看这篇就够了,阿里、百度、美团都在用“秒杀活动”、“抢红包”、“微博热搜”、“12306抢票”、"共享单车拉新"等都是高并发的典型业务场景,那么如何解决这些业务场景背后的难点问题呢?秒杀系统中,QPS达到10万/s时,如何定位并解决业务瓶颈?明星婚恋话题不断弓|爆微博热搜,如何确保系统不宕机?共享单车充值活动,如何保证不超卖?…同一时间、海量用户的高频访问对任何平台都是难题,但可喜的是,虽然业务场景不同,设计和优化的思想却是万变不离宗。如果你掌握了高并发系原创 2020-05-21 15:38:36 · 2405 阅读 · 0 评论 -
为什么大厂的面试题问的都是底层原理,前阿里P7架构师是这样说的
为什么大厂的面试题问的都是底层原理,前阿里P7架构师是这样说的面试官:看你第一面的介绍不错,你先自我介绍下吧我:我叫小X,目前在负责…(省略800字)面试官:项目中Spring用的多么?我:还可以,基本上都用到面试官:那你讲讲使用Spring的几个核心技术我:我想想(平时只瞎用用)哦,IOC和AOP厉害了面试官:嗯,IOC具体指什么?我:我想想,IOC是控制反转,应该是把对象的创...原创 2020-04-29 15:25:57 · 586 阅读 · 1 评论 -
同样开发三年,为什么领导愿意提拔那个技术比你差的程序员?原因很真实
本文转载自同样开发三年,为什么领导愿意提拔那个技术比你差的程序员?原因很真实说这句话的前提有两个:一是你真的确定那个领导所提拔的人处处都不如你;二是领导明知道你比别人强,还故意提拔别人。假如上述两个前提不成立,那么我觉得说这句话之前可以再思考下:我遇到的情况真的和我想象的一样吗?下面,就这个话题,我个人谈几点自己的看法,仅供各位参考。一、切勿自我中心主义,只看到自己的长处而忽略了他人...原创 2020-04-20 13:36:08 · 661 阅读 · 0 评论 -
Java内部类的四种分类以及作用
本文转载自:Java内部类的四种分类以及作用一、内部类内容解析1. 内部类的区分内部类分别有成员内部类、局部内部类、匿名内部类、静态内部类,接下来将分别介绍。2. 成员内部类就是位于外部类成员位置的类。与外部类的属性、方法并列。成员内部类作为外部类的成员,可以访问外部类的私有成员或属性。(即使将外部类声明为private,但是对于处于其内部的内部类还是可见的。)用成员内部类定义在...原创 2020-04-02 13:37:37 · 975 阅读 · 0 评论 -
纯干货!二十八道BATJ大厂Java岗之"多线程与并发"面试题分享
本文转载自:纯干货!二十八道BATJ大厂Java岗之"多线程与并发"面试题分享年底了,又到了跳槽季啦,该刷题走起了。这里总结了一些被问到可能会懵逼的面试真题,有需要的可以看下~一、进程与线程进程是资源分配的最小单位,线程是cpu调度的最小单位。线程也被称为轻量级进程。所有与进程相关的资源,都被记录在PCB中进程是抢占处理及的调度单位;线程属于某个进程,共享其资源一个 Java 程...原创 2020-01-03 17:34:45 · 636 阅读 · 0 评论 -
有了这些面试宝典,还怕拿不到大厂offer?BATJava面试真题分享
本文转载自:有了这些面试宝典,还怕拿不到大厂offer?BATJava面试真题分享一. 接口的意义-(百度 面试题)1. 重要性:在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。2. 简单、规范性:如果一个项目比较庞大,那么就需要一个能理清所有业务的架构师来定义一些主要的接...原创 2019-12-25 15:56:18 · 614 阅读 · 0 评论 -
一文彻底弄懂Java的移位操作符
本文转载自:一文彻底弄懂Java的移位操作符前言对于移位操作符,很多人既感到熟悉,又感到陌生。熟悉是因为移位操作符是最基本的操作符之一,几乎每种编程语言都包含这一操作符;陌生是因为除非是追求极致性能等罕见场景,否则也很难用得上它。打开JDK源码,你会发现移位操作符的身影极为常见,弄清楚它的用法,对阅读源码很有帮助。移位操作是把数据看作是二进制数,然后将其向左或向右移动若干位的运算。在Jav...原创 2019-12-23 21:28:02 · 1641 阅读 · 2 评论