自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

欢迎您访问我的公众号【前程有光】

欢迎关注我的公众号【前程有光】 专注于系统架构实战,面试干货,分享百本各类电子书资料

原创 深度分析:高并发系统架构设计原理,史上最全系列!
原力计划

架构设计是一系列相关的抽象模式,是人们对一个结构内的元素及元素间关系的一种主观映射的产物。一、计算机网络基础A. OSI模型OSIOpen System Interconnection,简称OSI模型或七层模型。开放系统互连参考模型,是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。OSI模型从低到高分别是:(1)物理层 (2)数据链路层 (3)网络层 (4)传输层 (5)会话层 (6)表示层 (7).

2020-05-31 15:54:51 157

原创 新鲜出炉!阿里巴巴,京东,美团面经汇总,已拿offer!

最近在后台收到了很多小伙伴的私信,说自己最近想好好准备一下,在不久后的秋招跳个槽往大厂冲击一下,想要我给大家整理出一份大厂面试题好用来做好准备。之前公司有点事比较忙就没回私信。最近好一点了我也是立马联系了之前的一个粉丝朋友,他是去年辞的职然后再今年春招的时候去面试阿里,美团,京东并且都拿到了offer,我在他那拿到了这份面试真题并给大家整理在了下面!阿里巴巴1、开发中Java用了比较多的数据结构有哪些?2、谈谈你对HashMap的理解,底层原理的基本实现,HashMap怎么解决碰撞问题的?3、这些数

2020-05-30 17:08:22 72

原创 阿里面试官:小伙子,给我说一下Spring 和 Spring Boot 的区别吧
原力计划

前言对于 Spring和 SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习 SpringBoot的我当时也是一头雾水,随着经验的积累、我慢慢理解了这两个框架到底有什么区别,相信对于用了 SpringBoot很久的同学来说,还不是很理解 SpringBoot到底和 Spring有什么区别,看完文章中的比较,或许你有了不同的答案和看法!什么是Spring作为 Java开发人员,大家都 Spring都不陌生,简而言之, Spring框架为开发 Java应用程序提供了全面的基础架构支持。它

2020-05-29 19:48:13 154

原创 面试大厂必看!就凭借这份Java多线程和并发面试题,我拿到了字节和美团的offer!
原力计划

最近好多粉丝私信我说在最近的面试中老是被问到多线程和高并发的问题,又对这一块不是很了解,很简单就被面试官给问倒了,被问倒的后果当然就是被刷下去了,因为粉丝要求,我最近也是花了两天时间 给大家整理了这一份Java多线程和并发的面试题,看完之后去手撕面试官!1. 进程和线程之间有什么不同?一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序的单一进程。线程可以被称为轻量级进程。线程需要较少的

2020-05-28 20:27:41 266 1

原创 面试官:小伙子,说一下「SpringBoot」 Starter 该怎么写吧
原力计划

1 前言从前从前,有个面试官问我一个 SpringBoot Starter 的开发流程,我说我没有写过 starter,然后就没有然后了,面试官说我技术深度不够。我想说这东西不是很简单吗,如果要自己写一个出来也是分分钟的事情。至于就因为我没有写过 starter 就觉得我一点都不会 SpringBoot 吗?当然我当时确实水平不足,连 Java 的 SPI 都忘了是啥,后来又捡了起来,原来我在大学的时候就用过 Java 的 SPI,悔之晚矣!2 什么是 SpringBoot starterstar

2020-05-27 20:54:15 79

原创 凭借着这份面经,我拿下了字节,美团的offer!

最近经常有粉丝私信问我问了一些诸如秋招该怎么复习的问题,我就想顺便把回答整理发一发。我也是把之前面试的一些经历经验和身边的人面试的经验总结了一下放在下面。前期准备规划:如果秋招的话一般过年回来就可以慢慢开始准备了,可以找一下黑马有没有合适方向的视频课,我是淘宝买的,九块钱。就照着学,每个方向都有时间规划,某个知识点学几天之类的。也可以先看看往年岗位的面经,大概知道考哪些点了再去学习。(我当年没参加春招,因为实验室不放实习,而且估计那时候要找我应该也找不到,那时候还什么都没学好的样子,所以就放弃春招直

2020-05-26 19:36:16 68

原创 凭借这份Redis面试题,我成功拿下了京东,美团的offer
原力计划

1.Redis是什么?Redis是一个开放源代码(BSD许可)的内存中数据结构存储,可用作数据库,缓存和消息代理,是一个基于键值对的NoSQl数据库。2.Redis特性?速度快基于键值对的数据结构服务器丰富的功能、丰富的数据结构简单稳定客户端语言多持久化主从复制高可以 & 分布式3.Redis合适的应用场景?缓存排行榜计数器分布式会话分布式锁社交网络最新列表消息系统4.除了Redis你还知道哪些NoSQL数据库?MongoDB、MemcacheDB、Cass

2020-05-25 16:29:09 1103 7

原创 新鲜出炉,2020最详细MySQL面试题(附答案)
原力计划

数据库隔离级别分为哪几种?read uncommittedread committedrepeatable readserial如果将数据库隔离级别设置为read uncommitted,会有什么问题会出现脏读。脏读例子,如现在有两个事务,分别是事务a,事务b。一开始数据库中的row1的money列值为90。事务b,开启一个事务,将row1的money列设置为100,但是还没有提交,这时候,事务a开启一个事务,首先读取row1的数据money列为100,此时事务b回滚事务,此时a读取到的值为10

2020-05-24 20:55:36 78

原创 今天,我们来聊一聊互联网真的有你所期待的那么好吗?来自一个老码农的碎碎念
原力计划

最近很多要毕业的小伙伴或是正在实习的同学,甚至已经工作几年了朋友都在给我发私信想问问我对互联网这个行业的看法。说自己对自己的现状很迷茫,要毕业的对自己的实习工作迷茫,对自己实习要去哪迷茫。正在实习的对自己当初的选择迷茫,自己当初选这个专业是不是正确的选择,实习完了还要继续从事这份工作吗?工作了几年的朋友对自己的现状迷茫,工作两三年996的工作制,工资还老是涨不上去,每天除了加班还要面对领导的喋喋不休,自己这辈子难道就这样了吗?如果你是对互联网满怀憧憬想干一番大事业的新同学,还是已经开始征程的老同学,希望都

2020-05-22 20:30:51 86

原创 新鲜出炉!阿里Java后端面经,已拿offer!
原力计划

前面给大家分享了一篇字节跳动拿下offer的面经,很多小伙伴都私信我说收获很大,感兴趣的朋友可以回头去看看。很多小伙伴还问我有没有其他大厂的面试题分享,这不他来啦,阿里2020春招面试题给大家整理在下面了!一面:1. 触发新生代GC,如果存活对象总量大于survivor区容量,咋办2. 如果任务很多,线程池的阻塞队列会撑爆内存的哪个区域3. 栈在堆上吗4. GC root有哪些5. 实例变量可以是GC root吗6. 了解哪些GC算法,介绍一下7. 给个场景,问怎么设置JVM参数8. 问了

2020-05-22 14:55:49 762

原创 面试阿里,字节跳动,美团必被问到的红黑树原来这么简单
原力计划

红黑树是一个平衡的二叉树,但不是一个完美的平衡二叉树。虽然我们希望一个所有查找都能在~lgN次比较内结束,但是这样在动态插入中保持树的完美平衡代价太高,所以,我们稍微放松逛一下限制,希望找到一个能在对数时间内完成查找的数据结构。这个时候,红黑树站了出来。阅读以下需要了解普通二叉树的插入以及删除操作。红黑树是在普通二叉树上,对没个节点添加一个颜色属性形成的,同时整个红黑二叉树需要同时满足一下五条性质红黑树需要满足的五条性质:性质一:节点是红色或者是黑色;在树里面的节点不是红色的就是黑色的,没有其他颜

2020-05-21 21:32:22 718

原创 凭借着这份Spring面试题,我拿到了阿里,字节跳动美团的offer!
原力计划

一般问题1.1. 不同版本的 Spring Framework 有哪些主要功能?1.2. 什么是 Spring Framework?Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度。它是轻量级、松散耦合的。它具有分层体系结构,允许用户选择组件,同时还为 J2EE 应用程序开发提供了一个有凝聚力的框架。它可以集成其他框架,如 Structs、Hibernate、EJB 等,所以又称为框架的框架。1.3. 列举 Spring Framework 的优点。由于 Spring Fra

2020-05-21 15:21:03 5927 8

原创 新鲜出炉!春招-面试-阿里钉钉、头条广告,美团面经分享,看我如何拿下offer!
原力计划

之前给大家分享了一个朋友在字节面试的面试经历和拿到offer的过程,过程也算是比较精彩了,感兴趣的朋友可以去翻翻之前的那篇文章。话不多说重点来啦,一直有人发私信问我有没有其他大厂的面经分享啊,我也是联系了几个参加春招去面试阿里头条的粉丝,从他们那拿到了面试题和面试流程,花了三天给大家整理在了下面。阿里-钉钉-春招实习-面试-java研发一面(p7)(1h45min):1、自我介绍(主要是项目经验,及项目中遇到的难点)2、针对项目中中间件zk,dubbo,kafka等出题3、消息中间件的优缺点及选型

2020-05-20 20:30:57 61

原创 【面试】:再有面试官问你Java线程池,你就把这篇文章丢给他吧
原力计划

前言线程池概述线程池是一种线程使用的模式。它通过一个监控管理器管理任务与线程之间的关系,避免了频繁创建和销毁线程带来的代价,同时还限制了线程和任务的数量,避免了因为内存溢出、线程切换、任务过多等情况系统负载过重的情况。任务的调度通常使用同步队列,主线程将任务放入队列中,其他工作线程则从队列中获取任务来执行,如果没有任务可以执行,则工作线程将会挂起。线程池使用了一种生产者-消费者模式,分为同步层、队列层、异步层三层。同步层的主线程负责处理工作任务并将任务放入队列层的同步队列中,异步层的工作线程则负责从

2020-05-20 15:43:40 122

原创 最新出炉,字节跳动一二三面面经,看我如何一步一步攻克面试官?

之前一直有朋友让我给大家分享一下大厂的面经。这不,听说最近刚好有个朋友去面试字节拿到了offer,我也是急忙联系到他花费了两天的时间把他的面试经历和面试题以及答案整理出来分享给大家。朋友背景介绍:非科班(机械),项目是管理系统,本科211,硕士985。话不多说,面试经历和面试题都整理在下方了简要版:一面:4月22日下午5:00-5:40两个有序链表合并K个有序链表合并两道sql题二面:4月26日    2:00-2:50最长连续子序列基础问题三面

2020-05-19 20:27:17 50

原创 刚面完字节、网易、阿里,整理三天整理出来的面经!
原力计划

自我情况介绍:本科阶段:人在双非,问就是混当前宁波某软院渣硕,去年7月份开始Java的学习,道阻且长当前面试情况:腾讯(一面挂)、美团(二面挂)、网易严选(oc)、杭州字节lark(口头offer)、阿里新零售业务平台(oc)、滴滴交易平台(HR面)面筋总结:因为并不是每家都有做录音,忘了一些面试问题。我就贴一下我面过比较普适性的问题。此外, 我只是做一点些关键词的提示,具体达到面试要求需要自己去详细的理解和掌握一些面试问题,我在自己的Java技术交流:1067382554有解答。欢迎前辈斧正

2020-05-19 17:19:07 43

原创 面试阿里,腾讯美团90%会被问到的Redis 面试题,全系列一次性帮你搞定!
原力计划

1、什么是 Redis?Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库。Redis 与其他 key - value 缓存产品有以下三个特点:Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再 次加载进行使用。Redis 不仅仅支持简单的 key-value 类型的数据,同时还提供 list,set,zset, hash 等数据结构的存储。Redis 支持数据的备份,即 master-slave 模式的数据备份。Redis

2020-05-18 20:56:32 58

原创 面试阿里,腾讯美团必须知道的内存知识——操作系统层,看完你就懂了
原力计划

1.虚拟存储器作用1.为了给每个进程提供一致的地址空间(都从0开始),方便内存管理。2.保护每个进程的数据不会因为其它进程而被破坏。基于以上的原因,有了虚拟存储器,虚拟存储器是在硬盘上的一个文件,例如我们申请20G内存,其实只是在硬盘上创建了一个20g的文件,内存中只会有我们频繁读写的数据,换句话说内存是这个文件的缓存。这是一个32操作系统的虚拟存储器图结构为了对所有进程一致,下方是低地址从0开始。堆指针从低地址为向高地址为移动,通过malloc申请内存,通过free释放。一般适合零散内存

2020-05-18 15:23:42 172

原创 深度分析:Java并发系列之volatile,看完你就理解了!
原力计划

讲到Java并发,多线程编程,一定避免不了对关键字volatile的了解,那么如何来认识volatile,从哪些方面来了解它会比较合适呢?个人认为,既然是多线程编程,那我们在平常的学习中,工作中,大部分都接触到的就是线程安全的概念。而线程安全就会涉及到共享变量的概念,所以首先,我们得弄清楚共享变量是什么,且处理器和内存间的数据交互机制是如何导致共享变量变得不安全。共享变量能够在多个线程间被多个线程都访问到的变量,我们称之为共享变量。共享变量包括所有的实例变量,静态变量和数组元素。他们都被存放在堆内存

2020-05-17 20:30:50 25

原创 毕业后第一份工作,到底去大公司还是小公司?
原力计划

前言对应届生而言,在找工作的时候,最先纠结的一件事可能就是:去大公司还是小公司。有人说:小公司有梦想,大公司只有KPI;也有人说:大公司平台大,起点高,制度规范,小公司薪资高,学得多,晋升更快。大公司 VS 小公司你会怎么选择?回答任何一个问题之前,先要想清楚自己目的是什么。选择大公司还是小公司,先要看看哪种方式能最大满足你的期许。别急,我给你从各个维度比较一下大小公司的利弊。大公司VS小公司:5大方面对比就业大公司:工作稳定,适合图安逸、踏实做事的人。小公司:充满刺激和挑战,有更大的发

2020-05-17 14:52:23 135 1

原创 六年一线架构师为你讲解:java线程生命周期,听完原来这么简单!
原力计划

前言在我们日常开发过程中避免不了跟并发编程打交道,而并发编程的核心自然就是线程。搞清楚线程的生命周期以及状态的转换对于我们排查某些线上问题有着至关重要的作用。操作系统通用线程,java线程傻傻分不清楚1.操作系统通用线程操作系统通用线程的生命周期主要分为五种状态:初始状态,可运行状态,运行状态,休眠状态,终止状态。初始态:指的是线程已经被创建,但是还不允许分配 CPU 执行。这个状态属于编程语言特有的,不过这里所谓的被创建,仅仅是在编程语言层面被创建,而在操作系统层面,真正的线程还没有创建。可

2020-05-15 21:05:53 74

原创 面试官:说一说浏览器的垃圾回收机制吧
原力计划

垃圾数据 :有些数据被使用之后,可能就不再需要了,我们把这种数据称为垃圾数据为什么要做垃圾回收:数据一直保存在内存中,那么内存会越用越多,所以我们需要对这些垃圾数据进行回收,以释放有限的内存空间。垃圾回收机制的原理:一、不同语言的垃圾回收策略通常情况下,垃圾数据回收分为手动回收和自动回收两种策略。eg:C/C++ 就是使用手动回收策略,何时分配内存、何时销毁内存都是由代码控制的JavaScript、Java、Python 等语言产生的垃圾数据是由垃圾回收器来释放的,并不需要手动通过代码来释放

2020-05-15 14:50:01 72

原创 阿里,腾讯字节跳动顶级面试真题分享,附答案!
原力计划

1.看面试题正常人第一步肯定都会看面试题,我也不例外。2.深入学习在看面试题的过程,你会遇到一些自己没接触过的或者以前没深入学习过的知识,例如最常问的HashMap内部实现原理,这就促使你得开始去看JDK的源码或者是学习一些新的东西。看源码是很重要的一步,起步很难,但是会让你收益良多,看源码的过程如果碰到无法理解的地方,可以百度看下别人的理解。3.熟悉项目找出自己工作以来开发过的最叼的功能,将整个功能的流程和涉及的东西吃透(这边有个小捷径,如果你觉得项目中别人做的某个功能很牛逼,你可以把这个功能吃

2020-05-14 20:09:51 80

原创 想面试阿里,字节跳动这些大厂,看完此文你的成功率至少达到80%!

我们在面试的过程中有很多棘手的问题:1.介绍你自己这个问题通常是一个面试的开始的第一个问题,要额外的小心不要滔滔不绝。尽可能的让你的回答在一分钟,最多2分钟的时间内结束。你的回答应该包含以下4个主题:早期生活,教育背景,工作背景以及最近的工作经验。要着重强调最后的那个主题。要牢记这个问题通常是一个热身的问题,不要把你的最重要的观点浪费在这个问题上。2.你对我们公司有什么样的了解你必须能够谈论关于这个公司的产品,服务,收入,业界声望,形象,目标,存在的问题,管理风格,职工,历史和企业文化等问题。但是不

2020-05-14 14:03:23 105

原创 深度解析阿里面试题:设计模式-装饰器模式,看完还不懂你来找我!

先说下装饰器模式要解决的问题:可以使我们在不修改任何底层代码的情况下,给你的对象赋予新的职责,也就是在不改变原有对象的前提下增加行为,满足开闭原则,开闭原则:对扩展开放,对修改关闭!定义:装饰器模式是动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。00原则:封装变化多用组合,少用继承针对接口变成,不针对实现编程为交互对象直接的松耦合对扩张开放,对修改关闭优点:动态的提供了有别于继承的另一种选择符合开闭原则可以搭配其他模式,如工厂模

2020-05-13 14:18:32 96

原创 腾讯面试题:java如何消除太多的if else判断?看我如何回答
原力计划

1.简介if判断语句是很多编程语言的重要组成部分。但是,若我们最终编写了大量嵌套的if语句,这将使得我们的代码更加复杂和难以维护。让我们看看能否使用别的方式来做呢。设计模式是为了更好的代码重用性,可读性,可靠性,可维护性,它有六大原则:单一职责原则(Single Responsibility Principle,简称SRP):该原则是针对类来说的,即一个类应该只负责一项职责.开放–封闭原则(The Open-Closed Principle简称OCP):是说软件实体(类、模块、函数等等)应该可以扩

2020-05-12 20:36:50 1208 3

原创 深度分析:java多线程之线程的通信、生产者与消费者模式

一、重点知识isDaemon 判断是否为守护线程。run方法是不能用synchronized修饰,他是继承来的,不能改变其结构,而且,如果run方法加了synchronized,就变成单线程了,就没有并发了。只要不是静态的同步方法,同步方法默认的同步监视器就是this。静态的同步方法的同步监视器为类.classwait方法如果不是同步监视器去调用的话会报IllegalMonitorStateException异常如果没有线程处于wait状态,调用notify此时是一个空唤醒stringBuff

2020-05-12 16:09:13 20

原创 面试阿里,美团90%会被问到的Java垃圾回收机制,一次性帮你搞定!
原力计划

Java的内存分布在JVM中,内存是按照分代进行组织的。其中,堆内存分为年轻代和年老代,非堆内存主要是Permanent区域,主要用于存储一些类的元数据,常量池等信息。而年轻代又分为两种,一种是Eden区域,另外一种是两个大小对等的Survivor区域。之所以将Java内存按照分代进行组织,主要是基于这样一个“弱假设” - 大多数对象都在年轻时候死亡。同时,将内存按照分代进行组织,使得我们可以在不同的分代上使用不同的垃圾回收算法,使得整个内存的垃圾回收更加有效。年轻代的垃圾回收在年轻代上采用的垃圾

2020-05-11 14:19:49 122

原创 面试阿里,首先要掌握的 Java 泛型,帮你一次性搞懂!
原力计划

引言泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用。本文我们将从零开始来看一下Java泛型的设计,将会涉及到通配符处理,以及让人苦恼的类型擦除。泛型基础泛型类我们首先定义一个简单的Box类:这是最常见的做法,这样做的一个坏处是Box里面现在只能装入String类型的元素,今后如果我们需要装入Integer等其他类型的元素,还必须要另外重写一个Box,代码得不到复用,使用泛型可以很好的解决这个问题。这样我们的Box类便可以得到复用,我们可以将T替换成任何我们想要的类

2020-05-10 14:50:44 29

原创 面试阿里,字节跳动,腾讯90%会被问道的什么是Java内存模型,你还没掌握吗?
原力计划

什么是Java内存模型有一个关于JVM名词定义的问题,说”JVM内存模型“,有人会说是关于JVM内存分布(堆栈,方法区等)这些介绍,也有地方说(深入理解JVM虚拟机)上说Java内存模型是JVM的抽象模型(主内存,本地内存)。这两个到底怎么区分啊?有必然关系吗?比如主内存就是堆,本地内存就是栈,这种说法对吗?时间久了,我也把内存模型和内存结构给搞混了,所以抽了时间把JSR133规范中关于内存模型的部分重新看了下。后来听了好多人反馈:在面试的时候,有面试官会让你解释一下Java的内存模型,有些人解释对了

2020-05-08 20:14:50 1793 5

原创 深度解析:JVM内存模型的相关概念,一次性帮你全部解决!
原力计划

1.前言Android的虚拟机是根据移动设备的特点基于Java虚拟机(JVM)改进而来,虽然没有保留规范,但作为Java语言的使用者,了解一下JVM的规范还是有必要的。2.JVM内存模型JVM在执行Java程序时,会把它管理的内存划分为若干个的区域,每个区域都有自己的用途和创建销毁时间。如下图所示,可以分为两大部分,线程私有区和共享区:2.1.线程私有区程序计数器。当同时进行的线程数超...

2020-05-08 15:29:39 41

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