- 博客(256)
- 资源 (1)
- 收藏
- 关注
原创 面试官问你:MySQL事务和隔离级别,你该如何回答
一、事务事务是由一组SQL语句组成的逻辑处理单元,是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。事务具有以下4个属性,通常简称为事务的ACID属性:原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。比如在同一个事务中的SQL语句,要么全部执行成功,要么全部执行失败。回滚可以用...
2021-01-14 23:02:10
192
原创 程序员进阶之路:Java之String重点解析
主题 JavaString s = new String("abc") 这段代码创建了几个对象呢? s=="abc" 这个判断的结果是什么? s.substring(0,2).intern()=="ab" 这个的结果是什么呢?s.charAt(index) 真的能表示出所有对应的字符吗?"abc"+"gbn"+s 直接的字符串拼接是否真的比使用StringBuilder的性能低?前...
2020-12-19 21:36:14
128
1
原创 【重要】想成为分布式系统架构师,这些你不得知!
作为一个资深架构师,一路走来,发现自己的技术水平很多时候其实是随着项目的发展被迫成长的。其实,很多时候,自身水平达不到能顺利完成架构项目的水平,但是,为了挑战,为了技术成长,更是为了高薪资,只能咬牙坚持,熬夜学习,最终让自己能顺利设计和把控项目的架构。其中,最为艰难的,就是去设计、架构、规划一整套,规模大的分布式系统。但是,正是经历了这些异常艰难的磨炼,我们才能毫不恐惧所谓的技术人员 35 岁大...
2020-12-16 16:28:34
138
原创 Java中CAS原理分析(volatile和synchronized浅析)
CAS是什么?CAS英文解释是比较和交换,是cpu底层的源语,是解决共享变量原子性实现方案,它定义了三个变量,内存地址值对应V,期待值E和要修改的值U,如下图所示,这些变量都是在高速缓存中的,如果两个线程A,B分别通过cas方式同时修改共享变量,假设当A线程先获取时间片,如果发现V的值和E相等就将主内存值更新为U,如果不相等说明线程B在线程A更新之前已经成功更新过,线程A会失败重试,此时根据缓存...
2020-12-15 21:41:58
274
原创 涨薪秘籍之源码篇:Spring全家桶源码解读,大师晋级笔记
最近很多人留言说今年找工作太难了,要涨薪几乎更难了 !真的就这么悲观吗?其实不然,我们企业一直都在大量的招人,一直都没停过。只是一点和之前不一样要求变高了,优秀的人一直都缺。我身边朋友所在的大厂也一样比平时的要求更高了,优秀的人给出薪水甚至比平时还高,因为优秀的人产出高,效率高,特殊时期企业压力也大这样的人才能给企业创造更大的价值,企业才能发展。我就在思考怎么用好这段时间快速把我们自身的能力提升...
2020-11-23 17:00:37
217
原创 超详细280页Docker实战文档,97.6 MB高清可下载,24h后删!
Docker如日中天,这不是单纯的炒概念,Docker确确实实解决了开发与运维的痛点,因此在企业开发中得到了非常广泛的使用。Docker是一个开放源代码软件项目,让应用程序部署在软件容器下的工作可以自动化进行,借此在Linux操作系统上,提供一-个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制。今天分享一份280页的Docker实战文档,相信看完后对Docker会有更深入的了解。由于文档...
2020-11-11 17:52:14
466
原创 【转】理解 MyBatis 是如何在 Spring 容器中初始化的
MyBatis 初始化过程就是生成一些必须的对象放到 Spring 容器中。问题是这个过程到底生成了哪些对象?当遇到 MyBatis 初始化失败时,如何正确的找到分析问题的切入点?本文将针对这些问题进行介绍。本文基于 MyBatis 3和 Spring,假设读者已经知道如何使用 Maven 和 MyBatis,以及了解 Spring 的容器机制。一、Mybatis 三件套我们知道 MyBat...
2020-11-09 20:31:40
170
原创 阿里弃用Hibernate,却用MyBatis,竟然是因为这个!
最近一直在研究MyBatis源码,作为国内经常使用的持久层框架,其内部代码的设计非常优秀。比如在开发过程中,有能力对框架进行深度的定制化开发,解决BUG也更加得心应手!另外学习开发者是如何设计高扩展性、低耦合性的代码,便于在自己的开发场景中应用。而在Mybatis中,缓存是一个绕不开的话题。比如说,MyBatis的一级缓存竟然还会引来麻烦?MyBatis 一级缓存与 SpringFramewo...
2020-11-08 21:56:46
576
1
原创 公布半小时下载量达10W:阿里大牛出品【MyCat笔记】真香
前言如今随着互联网的发展,数据的量级也是成指数式的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求,这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安全指标的。这...
2020-11-04 20:49:11
74
原创 面试:年薪30W+Java岗需要什么水平?《2020年面试宝典总纲笔录》
前言一份月薪30K的java开发岗位工作要求是怎样的呢?面试都会问到哪些呢?任职要求:1、计算机或相关专业本科(或以上)学历,具备3年以上Java服务端开发经验,熟悉常用的Java开源框架,如熟悉Spring、SpringMVC、SpringBoot、Hibernate、MyBatis等,了解其原理和实现机制;2、擅长Java Web服务开发,熟悉掌握各种Web应用开发模式,...
2020-10-22 16:02:54
254
1
原创 阿里架构师剖析程序运行原理,程序是如何运行又是如何崩溃的?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等软件的核心载体是程序代码,软件开发的主要工作产出也是代码,但是代码被存储在磁盘上本身没有任何价值,软件要想实现价值,代码就必须运行起来。那么代码是如何运行的?在运行中可能会出现什么问题呢?一、程序是如何运行起来的软件被开发出来,是文本格式的代码,这些代码通常不能直接运行,需要使用编译器编译成操作系统或者虚拟机可以运行...
2020-10-20 21:29:58
90
原创 360资深架构师:这样讲分布式锁,你怎么能不了解?
欢迎关注专栏:Java架构技术进阶。里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦。分布式锁是一个在分布式环境中重要的原语,它表明不同进程间采用互斥的方式操作共享资源。本文将谈谈分布式相关的内容。文章来源:360技术原创作者:曹思远分布式锁概述从进程锁到分布式锁在单进程环境中,为了 防止多线程同时对共享资源进行读写操作,我们通常使用内核或者类库实现线程间的互...
2020-10-18 21:33:50
140
原创 看完源码记不住?掌握这套方法,Alibaba不会少你一个工位
都说大厂面试必问源码,可很多人看完Spring、MyBatis等源码记不住,是脑子有问题吗?当然不是!是因为你没有掌握学习源码的技巧。看完源码的我…我的朋友子路,很多人都叫他路神,称他为“国内Spring讲解最好的第一人”。子路说他以前学习Spring、Spring boot源码,只能去翻书,去报个线下培训班,或者向其他公司的大牛请教,一个疑问有时候会卡好几天。但现在不一样,各...
2020-10-17 22:02:37
462
1
原创 抢鲜获取!Alibaba限量首发Java从入门到入魂架构成长笔记,先到先得
现在面试大部分候选人在工作 3 年的时候基本都会遇上一道难过的坎。为啥这么说呢?因为工作一段时间之后,大部分工程师都已经完成了最原始的基础技能积累,大家的技术水平差距集中在语言、框架、工具的使用熟练度上。而这个差异不会很大,就算大,也很容易追赶。但如果一个工程师一直停留在业务开发,一直沉浸于工具的使用熟练度,那他自然就会遇到能力瓶颈。这个瓶颈就是前面说的那道坎,跳过去了,你就发现了一片新天地,可以...
2020-10-15 21:52:10
198
原创 终于有人把‘高并发系统设计’讲的明明白白(附:实战演练笔记)
前言在现今IT界特别是程序员,如果你对于高并发都没有接触和了解过未免也有些太孤陋寡闻,而作为一个优秀的程序员,高并发系统架构设计师必须要掌握的。很简单,现在大多数互联网公司都会用到高并发系统架构设计。像常见的"秒杀活动"、"抢红包"、"微博热搜"、"12306抢票"、"共享单车拉新"等都是高并发的典型业务场景,能解决这些业务常见的程序员那都是公司的一把好手,不说多了年薪30W那是妥妥的。温馨...
2020-08-27 21:19:24
500
原创 打破你的认知:Java类加载器ClassLoader总结
JAVA类装载方式,有两种:1.隐式装载, 程序在运行过程中当碰到通过new 等方式生成对象时,隐式调用类装载器加载对应的类到jvm中。 2.显式装载, 通过class.forname()等方法,显式加载需要的类类加载的动态性体现:一个应用程序总是由n多个类组成,Java程序启动时,并不是一次把所有的类全部加载后再运行,它总是先把保证程序运行的基础类一次性加载到jvm中,其它类等到jv...
2020-08-17 22:32:26
2724
原创 为什么微服务一定要上Docker?
引言早在2013年的时候,docker就已经发行,然而那会还是很少人了解docker。一直到2014年,Martin Fowler提出了微服务的概念,两个不相干的技术终于走在了一起,创造了今天的辉煌! 近几年来,很多互联网关系开始跟风,构建docker+微服务的架构体系。然而,根据笔者观察发现,有些童鞋在使用过程中,只是会用,而根本不了解为什么使用docker,反正对他们来说,公司让用就用!而某...
2020-08-14 13:38:13
698
原创 阿里专家整理的面试全秘籍,我看了三个月,却入职京东,税前30K
入职京东,月薪30K今年三月份的时候,我从上一家外包公司裸辞。那时正值疫情期间,实在受不了公司的压迫,毅然决然的选择了离职。卧薪尝胆三个月后,才收到京东的offer,谈到了30k的月薪顺利入职。本来那时候就打算写一份入职感受的,结果恰好是618期间,加上熟悉业务,一直都无法抽出时间来写。最近总算是抽出空来,好好来说一说。1、两轮远程,一轮现场,HR直接过来谈薪资现在的工作地...
2020-08-11 14:09:14
426
原创 大厂面试官为什么老是喜欢问JVM?
前言最近有粉丝在后台跟我抱怨,自己去大厂面试,面试官老是喜欢问JVM!你问JVM干啥?程序员平时又用不到这些东西!多问问框架、数据库、项目经验不行么?有些人觉得是面试官zb,就爱问这种虚而不实的东西,显得自己牛逼,公司牛逼!其实这种想法非常幼稚!我不排除部分面试官有这种想法,喜欢面试虐人。但是大厂有大厂的考虑,问JVM主要是看你在技术方向的潜力,你看对待技术有没有深挖的态度。大概在201...
2020-08-10 17:16:49
1106
原创 那个经常准点下班,到处去参加面试的程序员,又涨薪了
前言程序员小苏前几天去参加面试了,我问他是否准备跳槽?他说,没面上,也不会跳。我问他,“你这样到处去面试,专门挑一些阿里、字节跳动、腾讯等一线互联网大厂,面不上,又耽误了时间,难道你老板不会知道吗?”“老板多多少少应该也知道一点,但是这个月又给我工资涨了3K啊!这是今年以来第二次提薪了。”后来,跟他聊了很久,才知道他经常会准点下班,去大厂面试的真正目的:通过面...
2020-08-07 15:59:14
170
原创 2020年“金九银十”该如何准备?阿里P8整理了一套Java核心.xmind
前言这才刚刚进入8月,我就看到了许多朋友在焦急的准备“金九银十”跳槽面试,甚至很多即将毕业的大学生都在备战秋招,对于学历还算优秀的大学生来说,这是一次离大厂最近的机会,毕竟是应届毕业生,不会对技术有非常严格的要求。而对于工作了一两年的朋友来说,这段时间加强技术能力,多掌握一些Java核心技术点是重中之重。根据小编多年面试经验来说,最重要、最快能掌握的Java开发技术无非就那几个...
2020-08-05 21:43:14
173
原创 字节跳动/美团/京东:Java岗面试真题揭秘,你能拿多少分?
头条抖音Java (三面)一面:hashmap,怎么扩容,怎么处理数据冲突?怎么高效率的实现数据迁移?Linux的共享内存如何实现,大概说了一下socket网络编程,说一下TCP的三次握手和四次挥手同步IO和异步IO的区别?Java GC机制?GC Roots有哪些?红黑树讲一下,五个特性,插入删除操作,时间复杂度?快排的时间复杂度,最坏情况呢,最好情况呢,堆排序的时间复杂度呢,...
2020-08-04 22:06:11
643
原创 阿里面试如何通关?读懂岗位要求,先用27题带你深入理解JVM
最近有很多小伙伴吃了蚂蚁金服上市的酸柠檬,觉得马爸爸说的福报还是存在的。有人问我,进阿里到底难不难?拜托,小天也没进去,我怎么知道?但是,本着刨根问底的精神,小天搜索了很多阿里Java开发岗位的招聘信息,把那些通用的常见的技术要求归纳一下,还没来得及做统计,但是下面的这张截图也八九不离十了,大家先将就着看看。似乎图片不太清晰,没办法,小天截了好几次图,都是这样。...
2020-07-27 18:29:53
135
原创 最新蚂蚁Java岗面经:HashMap+多线程+缓存+中间件(含答案解析)
蚂蚁一面二叉搜索树和平衡二叉树有什么关系,强平衡二叉树(AVL 树)和弱平衡二叉树(红黑树)有什么区别?B树和B+树的区别,为什么MySQL要使用B+树?HashMap 如何解决 Hash 冲突?epoll 和 poll 的区别,及其应用场景简述线程池原理,FixedThreadPool 用的阻塞队列是什么?sychronized 和 ReentrantLock 的区别...
2020-07-24 14:07:17
239
原创 熟悉会导致轻蔑,记一次MySQL 选错索引的原因
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等MySQL 中,可以为某张表指定多个索引,但在语句具体执行时,选用哪个索引是由 MySQL 中执行器确定的。那么执行器选择索引的原则是什么,以及会不会出现选错索引的情况呢?先看这样一个例子:创建表 Y,设置两个普通索引, 创建一个存储过程用于插入数据。MySQL: 5.7.27, 隔离级别: RR...
2020-07-15 21:09:54
162
原创 海量数据做计算,到底可以有多快?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等内存计算是近十几年来,在数据库和大数据领域的一个热点。随着内存越来越便宜,CPU的架构越来越先进,整个数据库都可以放在内存中,并通过 SIMD 和并行计算技术,来提升数据处理的性能。我问你一个问题:做 1.6 亿条数据的汇总计算,需要花费多少时间呢?几秒?几十秒?还是几分钟?如果你经常使用数据库,肯定会知...
2020-07-14 21:34:30
750
原创 阿里架构师浅析系统高可用的实现,如何让你的系统不掉链子?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等在实际工作中,我们平常更关注系统业务功能的实现,而对于系统是否会出故障,总觉得那是小概率事件,一开始不会考虑得太多。然而系统上线后,我们会发现系统其实很脆弱,每个地方都可能会出问题,处理线上事故的时间往往超过了开发功能的时间。所以,对于系统的高可用,我想你经常会有这样的疑问:系统的高可用真的很重要吗?如何实现系统的高可...
2020-07-13 22:03:16
203
原创 看了这个高并发系统架构,才知道我对秒杀的误解有多深
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等一、前言很多小伙伴反馈说,高并发学了那么久,但是在真正做项目时,仍然不知道如何下手处理高并发业务场景!甚至很多小伙伴仍然停留在只是简单的提供接口(CRUD)阶段,不知道学习的并发知识如何运用到实际项目中,就更别提如何构建高并发系统了!究竟什么样的系统算是高并发系统?今天,我们就一起解密高并发业务场景下典型的秒杀系统的...
2020-07-10 21:26:12
398
原创 盘点:2020年最新、最全、最实用的Java岗面试真题,已收录GitHub
本文转载自:盘点:2020年最新、最全、最实用的Java岗面试真题,已收录GitHub文中涉及的面试真题请访问原文链接,点击文末的【阅读原文】即可获取眼看着"金九银十"也快到来了,很多小伙伴都蠢蠢欲动想要刚给自己涨一波薪资;面试作为涨薪最直接最有效的方式,我们需要花费巨大的精力和时间来准备。除了自身的技术积累之外,掌握一定的面试技巧和熟悉最常见的面试题,一定会让我们如虎添翼。所以最近小编...
2020-07-07 15:54:43
413
原创 阿里大佬是怎么监控Kafka?这次算是长见识了
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等监控 Kafka,历来都是个老大难的问题。无论是在我维护的微信公众号,还是 Kafka QQ群里面,大家问得最多的问题,一定是 Kafka 的监控。大家提问的内容看似五花八门,但真正想了解的,其实都是监控这点事,也就是我应该监控什么,怎么监控。我个人认为,和头疼医头、脚疼医脚的问题类似,在监控 Kafka...
2020-07-06 20:39:53
379
1
原创 磁盘I/O性能优化的几个思路
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等虽然 I/O 的性能指标很多,相应的性能分析工具也有好几个,但理解了各种指标的含义后,你就会发现它们其实都有一定的关联。顺着这些关系往下理解,你就会发现,掌握这些常用的瓶颈分析思路,其实并不难。找出了 I/O 的性能瓶颈后,下一步要做的就是优化了,也就是如何以最快的速度完成 I/O操作,或者换个思路,减...
2020-07-05 21:43:37
887
原创 Java虚拟机是怎么实现synchronized的?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等在 Java 程序中,我们可以利用 synchronized 关键字来对程序进行加锁。它既可以用来声明一个 synchronized 代码块,也可以直接标记静态方法或者实例方法。当声明 synchronized 代码块时,编译而成的字节码将包含 monitorenter 和 monitorexit指令。这...
2020-07-02 21:16:09
129
原创 Kafka中位移提交那些事儿
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等之前我们说过,Consumer 端有个位移的概念,它和消息在分区中的位移不是一回事儿,虽然它们的英文都是 Offset。今天我们要聊的位移是 Consumer 的消费位移,它记录了Consumer 要消费的下一条消息的位移。这可能和你以前了解的有些出入,不过切记是下一条消息的位移,而不是目前最新消费消息的位...
2020-07-01 21:27:18
505
原创 阿里架构师的内存管理心得:如何避免内存溢出和频繁的垃圾回收?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等不知道你有没有发现,在高并发、高吞吐量的极限情况下,简单的事情就会变得没有那么简单了。一个业务逻辑非常简单的微服务,日常情况下都能稳定运行,为什么一到大促就卡死甚至进程挂掉?再比如,一个做数据汇总的应用,按照小时、天这样的粒度进行数据汇总都没问题,到年底需要汇总全年数据的时候,没等数据汇总出来,程序就死掉了...
2020-06-30 21:44:39
264
原创 这样简单地的设置一下,可以让你的让Docker镜像起飞
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等一、前言Docker用起来非常爽,尤其是用于DevOps实践时。但是,当你在国内或者本地拉取镜像时,经常会碰到各种“便秘”——要么镜像拉取缓慢,要么时断时连,要么连接超时!当我们的镜像又比较大时(比如某人在代码里面丢了个魔兽争霸的包),这简直是一个噩梦!那么如何解决这个问题?接下来我们就主要从以下几个方面来解决这个问...
2020-06-29 20:32:07
159
原创 分布式架构进阶:如何应对高并发的用户请求
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等互联网应用以及云计算的普及,使得架构设计和软件技术的关注点从如何实现复杂的业务逻辑,转变为如何满足大量用户的高并发访问请求。一个简单的计算处理过程,如果一旦面对大量的用户访问,整个技术挑战就会变得完全不同,软件开发方法、技术团队组织、软件的过程管理都会完全不同。以新浪微博为例,新浪微博最开始只有两个工程...
2020-06-27 21:46:49
355
原创 面试官:讲一讲你对数据结构——数组、链表、栈、队列的理解
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等一、解释定义1. 数据结构:数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。再简单描述一下:数据结构就是描述对象间逻辑关系的学科。如果还是不太清楚下面会举例说明的。2. 数据存储结构:简单的讲就是数据在计算机中的存储方式。常用的数据存储方式有两种:顺序存储,非顺序存储。顺序存储就是把...
2020-06-24 21:09:37
434
原创 Java技术面试到底要准备哪些面试题?别找了,这个GitHub完美的帮你解决
GitHub地址下午在逛GitHub的时候看到的,觉得里面的内容挺不错的(还在更新中)就随手分享出来对正在面试的朋友应该挺有帮助的一、校招真题题解二、计算机网络三、HTTP四、操作系统五、Linux六、算法七、剑指 Offer 题解八、Leetcode 题解九、设计...
2020-06-16 21:23:19
135
原创 面试官:你来举个栗子,如何使用异步设计提升系统性能?
最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub对于开发者来说,异步是一种程序设计的思想,使用异步模式设计的程序可以显著减少线程等待,从而在高吞吐量的场景中,极大提升系统的整体性能,显著降低时延。因此,像消息队列这种需要超高吞吐量和超低时延的中间件系统,在其核心流程中,一定会大量采用异步的设计思想。接下来,我们一起来通过一个非常简...
2020-06-13 21:54:30
135
原创 公司新来的阿里P7大牛,只用十分钟就教会了我实现高层次的复用
最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub作为开发人员,你对复用这个概念一定不陌生。在开发过程中,我们把系统中通用的代码逻辑抽取出来,变成公共方法或公共类,然后在多个地方调用,这就是最简单的技术上的复用。但一开始,我们不会过多地考虑复用,当一个新项目过来,我们会选择最直接的方式来实现,结果往往是欲速而不达,比如说:好不容易搞定了一个项...
2020-06-12 21:30:22
198
性能极限漂移特技,只有头发少的人才知道.docx
2019-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅