后端技术
SpringBoot_
-
(纯干货,非水文)一文1.5w字30图,彻底通透理解红黑树
写在前面当在10亿数据进行不到30次比较就能查找到目标时,不禁感叹编程之魅力!人类之伟大呀! —— 学红黑树有感。终于,在学习了几天的红黑树相关的知识后,我想把我所学所想和所感分享给大家。红黑树是一种比较难的数据结构,要完全搞懂非常耗时耗力,红黑树怎么自平衡?什么时候需要左旋或右旋?插入和删除破坏了树的平衡后怎么处理?等等一连串的问题在学习前困扰着我。如果你在学习过程中也会存在我的疑问,那么本文对你会有帮助,本文帮助你全面、彻底地理解红黑树!本文将通过图文的方式讲解红黑树的知识点,并且不会涉及到任何代原创 2020-12-22 19:23:42 · 3374 阅读 · 4 评论 -
爆肝收集来的各大厂商面试题,JVM篇:核心知识点梳理(垃圾回收算法、GC、内存泄露、对象创建等)
目录前言1、JVN内存结构1、对象分配规则3、解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法4、Perm Space中保存什么数据?会引起OutOfMemory吗?5、什么是类的加载6、如何⾃定义⼀个类加载器?你使⽤过哪些或者你在什么场景下需要⼀个⾃ 定义的类加载器吗?7、描述一下JVM加载class文件的原理机制?8、Java对象创建过程9、类的生命周期10、Java 中会存在GC吗,请简单描述。11、GC是什么?为什么要有GC?12、做GC时,⼀个对象在内存各个Sp原创 2020-12-21 15:05:17 · 3981 阅读 · 6 评论 -
一位4年的JAVA工程师的面试总结:面试应该先从注意整体的节奏,然后从这些地方下手(数据结构、算法、JVM、多线程、数据库)
前言16年毕业到现在也近两年了,最近面试了阿里集团(菜鸟网络,蚂蚁金服),网易,滴滴,点我达,最终收到点我达,网易offer,蚂蚁金服二面挂掉,菜鸟网络一个月了还在流程中…最终有幸去了网易。但是要特别感谢点我达的领导及HR,真的非常非常好,很感谢他们一直的关照和指导。欢迎各位大佬进群共同交流学习,我们的交流分享群:1149778920 暗号:CSDN博主在这里给大家整理了包括但不限于:JAVA基础和进阶类、Spring、Spring boot、Spring MVC、MyBatis、MySQL、J原创 2020-12-16 14:35:37 · 3476 阅读 · 4 评论 -
你怕是对多线程有什么误解,详解JAVA并发的重要性,这就是JAVA这么多年都不使用协程的原因!
前言:发现面试时多线程是Java绕不去的坎,就有几个问题:1.为什么多线程在Java中这么重要2.据说多线程会出现难以排查的BUG,那么使用协程的话能否避免这些BUG呢3.go的协程是可以跑满整个核心的,但Java是不是除非从语言底层改造,否则做不到这一点4.Kotlin支持协程,是否用起来比多线程好呢所以,学好Java中的多线程是否还有必要呢?欢迎各位大佬进群共同交流学习,我们的交流分享群:1149778920 暗号:CSDN博主在这里给大家整理了包括但不限于:JAVA基础和进阶类、原创 2020-12-15 21:42:28 · 3375 阅读 · 6 评论 -
JAVA专精:一看就会一遍就懂,如何快速记住Java常用的八种排序算法与代码实现!你学会了吗?
1.直接插入排序经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中。将第一个数和第二个数排序,然后构成一个有序序列将第三个数插入进去,构成一个新的有序序列。对第四个数、第五个数……直到最后一个数,重复第二步。如何写成代码:首先设定插入次数,即循环次数,for(int i=1;i<length;i++),1个数的那次不用插入。设定插入数和得到已经排好序列的最后一个数的位数。insertNum和j=i-1。从最后一个数开始向前循环,如果插入数小于当前数,就将当前数向后移原创 2020-12-12 14:29:31 · 3556 阅读 · 4 评论 -
关于微服务,围绕着微服务架构里10个不得不讲的核心技术点(非决定论、金丝雀释放、持续集成、持续监测)
前言随着分布式技术栈逐渐成熟,近几年业界采用微服务架构设计的系统和领域越来越多,包括金融、电商、直播、物流、营销、采购、制造等,有互联网领域,也有传统领域。欢迎各位大佬进群共同交流学习,我们的交流分享群:1149778920 暗号:CSDN博主在这里给大家整理了包括但不限于:JAVA基础和进阶类、Spring、Spring boot、Spring MVC、MyBatis、MySQL、JVM等各种资料有,免费分享给各位进群的小伙伴正题我们如何在测试中消除非决定论?非确定性测试(NDT)基本原创 2020-12-09 21:35:43 · 6236 阅读 · 40 评论 -
给2021年毕业的后辈们的一些建议: JAVA后端找工作难嘛?该找什么样的工作才算合格的程序员?
最近我看到不少在校的同学在学java,而且,在我最近举办的一次直播活动中,也有不少在校生同学来提问,java该怎么学。对于那些已经工作的同学,哪怕才工作不久,毕竟也能从项目实践里总结和探索java的学习途径和相关方法。但在校生同学由于没机会接触实际项目,在学习内容、进阶途径和学成标准这些方面都是两眼一抹黑,而大学里的内容可能偏重于理论,讲述的技术往往也和软件公司里常用的技术不匹配。这就导致了很多上心的在校生,虽然很努力,但到毕业时,才发现自己起早贪黑学成的技能并不能帮他们找到工作。在本文里,就将结合我面原创 2020-11-27 19:55:14 · 3049 阅读 · 1 评论 -
不多BB,程序员进阶都要学习的并发编程知识,搞懂涨新3K起!
并发编程简介并发编程式Java语言的重要特性之一,当然也是最难以掌握的内容。编写可靠的并发程序是一项不小的挑战。但是,作为程序员的我们,要变得更有价值,就需要啃一些硬骨头了。因此,理解并发编程的基础理论和编程实践,让自己变得更值钱吧。**博主已经讲文中的各种知识点以及其他核心知识进行了分类整合打包(里面包含了:Spring、Spring boot、Spring MVC、MyBatis、MySQL、JVM等各种刚需知识点)如果有需要的小伙伴可以加群1149778920 来自行领取 暗号:qf使用原创 2020-11-24 20:57:26 · 4588 阅读 · 7 评论 -
为什么Spring Boot神奇般的爆火 , 传统企业使用它会给我们带来什么样变革?
Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,就单从我个人的博客的访问量大幅增加就可以感受到大家对学习 Spring Boot 的热情,那么在这么多人热衷于学习 Spring Boot 之时,我自己也在思考: Spring Boot 诞生的背景是什么?Spring 企业又是基于什么样的考虑创建 Spring Boot? 传统企业使用 Spring Boot 会给我们带来什么样变革?带着这些问题,我们一起来了解下 Spring Boot 到底是什么?Spring 历原创 2020-11-20 17:32:14 · 2499 阅读 · 4 评论 -
后端指路手册(建议收藏):一文告诉你后端都要学习什么?应该从哪里学起!
1. 语言相关1.1 Java核心知识点:Java的类加载机制JVM相关:JVM内存模型和结构,GC原理,性能调优泛型集合体系异常体系IO体系多线程编程反射Servlet推荐数据:《Java编程思想》《Effective Java》《深入理解Java虚拟机》1.2 Shell、Python等脚本语言介绍此类脚本语言的意义在于辅助后端开发,包括系统运维,工具集成(借助管道、重定向),文本处理,数据计算等工作,提升后端工作效率核心知识点(Shell)常用的原创 2020-11-17 21:06:15 · 9913 阅读 · 41 评论 -
面试官:你说说互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景。我:???
前言在编程世界里,「锁」更是五花八门,多种多样,每种锁的加锁开销以及应用场景也可能会不同。如何用好锁,也是程序员的基本素养之一了。高并发的场景下,如果选对了合适的锁,则会大大提高系统的性能,否则性能会降低。所以,知道各种锁的开销,以及应用场景是很有必要的。接下来,就谈一谈常见的这几种锁:正文多线程访问共享资源的时候,避免不了资源竞争而导致数据错乱的问题,所以我们通常为了解决这一问题,都会在访问共享资源之前加锁。最常用的就是互斥锁,当然还有很多种不同的锁,比如自旋锁、读写锁、乐观锁等,不同种转载 2020-11-13 20:48:09 · 4238 阅读 · 4 评论 -
饿了?饿了么?3年工作经验的程序员天天点外卖决定投声了饿了么面经!
面试过程:通过boss直聘网站找相应的职位,找到就申请了。过了2天来电话了,是一个周六的早晨9点钟。电话面试问了 java基础,redis,jdk,spring原理,mybatis,dubbo;后来让我去现场面,问了java内存相关,redis内存相关,最擅长的技术领域。。电话面试的期间,面试官很有耐心的听我讲也不会突然打断我的思路(感觉很舒适)。现场面试不得不说大厂还是大厂,就挺气派的。公司看起来一切都是尽然有序。面试官问的面试题:技术人员一面对于进程中锁的理解。解决死锁的方.原创 2020-11-05 21:27:16 · 4146 阅读 · 5 评论 -
2020年Android高级面试题与相关知识点总结
说下你所知道的设计模式与使用场景a.建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。使用场景比如最常见的AlertDialog,拿我们开发过程中举例,比如Camera开发过程中,可能需要设置一个初始化的相机配置,设置摄像头方向,闪光灯开闭,成像质量等等,这种场景下就可以使用建造者模式装饰者模式:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。装饰者模式可以在不改变原有类结构的情况下曾强类的功能,比如Java中的BufferedIn原创 2020-10-07 20:43:55 · 571 阅读 · 2 评论 -
想看看JAVA常用的笔试题吗?今天就让你看看这22道经典!
1. 下面哪些是Thread类的方法()A start() B run() C exit() D getPriority()答案:ABD解析:看Java API docs吧:http://docs.oracle.com/javase/7/docs/api/,exit()是System类的方法,如System.exit(0)。2. 下面关于java.lang.Exception类的说法正确的是()A 继承自Throwable B Serialable .原创 2020-09-28 21:48:53 · 418 阅读 · 1 评论 -
分享下关于正在学习 JVM 的我们绝对要掌握的 10 个知识要点解析
前言jvm的结构体系每个Java程序都离不开Java虚拟机,Java程序的运行依靠具体的Java虚拟机实例。在Java虚拟机规范中,分别用子系统、内存区、数据类型以及指令这几个术语来描述的。这些组成部分一起展示出一个抽象化的虚拟机内部的抽象体系结构。Java虚拟机主要分为五大模块:类装载器子系统、运行时数据区、执行引擎、本地方法接口和垃圾收集模块。其中垃圾收集模块在Java虚拟机规范中并没有要求Java虚拟机垃圾收集,但是在没有发明无限的内存之前,大多数JVM实现都是有垃圾收集的。而运行时数据区都原创 2020-09-23 15:09:39 · 3612 阅读 · 3 评论 -
刷爆朋友的圈的面试题?字节跳动编码题解析思路分享!
前言:临近国庆节,自己的一个小圈子微信群的伙伴们发了一张图片,是网上流传的字节跳动的面试题编码,闲的无事就思索了下,发现都不难,都是对基础的数学知识的考量。先上图吧!当然40分钟,我也无法把任意两题编码完成,只是知道大概的解题思路,唯一能确定的,在面试规定时间内,第二题我是肯定可以在20分钟内编码完成。正题题目一基础知识就是初中的平面直角坐标系,解析思路:计算总周长;将各边长的前后坐标计算出来封装好,第四步要使用;根据K段值计算出平均分段后的长度;然后循环K次,根据平均长度依次相加计原创 2020-09-22 20:39:02 · 7071 阅读 · 8 评论 -
一次阿里面试,让我明白了自己究竟差在哪?
人狠话不多,直接正题一:阿里技术一面(基础掌握牢固)常用的异常类型?sessionjava锁gc原理hashmaplistlink arraylist 区别aop 原理多线程kafka 原理和容错spark hadoop 原理redis 同步机制classLoader 机制Http 协议cookie的限制如何设计一个分步式登录系统?Spring加载过程?自己有没有写过类似Spring这样的AOP事务?spring的加载过程?atomic 与 volatile的区别?原创 2020-09-04 16:19:52 · 277 阅读 · 0 评论 -
程序员必看的算法一致性Hash算法实现原理
Hash环我们把232次方想成一个环,比如钟表上有60个分针点组成一个圆,那么hash环就是由232个点组成的圆。第一个点是0,最后一个点是232-1,我们把这232个点组成的环称之为HASH环。![图片](https://uploader.shimo.im/f/FcmwzbmsdosBR1Q4.png!thumbnail)一致性Hash算法将memcached物理机节点通过Hash...原创 2020-01-10 16:16:10 · 407 阅读 · 0 评论 -
Rocketmq源码下载与调试
Rocketmq源码编译运行下载从github下载源码,比较慢,也可以从gitee下载源码目录结构名称作用brokerbroker模块:c和p端消息存储逻辑client客户端api:produce、consumer端 接受与发送apicommon公共组件:常量、基类、数据结构tools运维tools:命令行工具模块store存储模块:消...原创 2020-01-05 12:59:58 · 937 阅读 · 0 评论 -
【架构系列】100亿数据1万属性数据架构设计
对于version + ext方案,还是有很多朋友质疑“线上不可能这么用”。本篇将讲述一下58同城最核心的数据“帖子”的架构实现技术细节,说明不仅不是“不可能这么用”,而是大数据,可变属性,高吞吐场景下的“常用手段”。一、背景描述及业务介绍问:什么是数据库扩展的version + ext方案?使用ext来承载不同业务需求的个性化属性,使用version来标识ext里各个字段的含义。例如上...原创 2020-01-03 22:25:32 · 263 阅读 · 0 评论 -
大型分布式网站架构技术总结
对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了概要性描述,并给出一个架构参考。一部分为读书笔记,一部分是个人经验总结。对大型分布式网站架构有很好的参考价值。一、大型网站的特点用户多,分布广泛大流量,高并发海量数据,服务高可用安全环境恶劣,易受网络攻击功能多,变更快,频繁发布从小到大,渐进发展以用户为中心免费服务,付费体验二、大型网站架构目标高性能:提供快速的访问体...原创 2019-12-05 17:27:56 · 295 阅读 · 0 评论 -
工作4年从美团、360、陌陌、百度、阿里、京东面试回来感想
已经凌晨2点多了,看来今天是失眠了,反正睡不着,写篇日记总结一下我的第一次社招面试经历吧。2019年5月8日办理了离职手续,离开了万通中心,也算是和我的第一个东家正式说了再见,其实还是很喜欢国贸的,这是个美妙的地方,容纳着很多金融界人才们的梦想,每每晚上走到这里你会感叹帝都的夜景好美,只可惜这里的多数人都顾不上欣赏这里的风景,每个人都生活在压力下,成为了金钱的奴隶,但这并不是什么坏事,因为他...原创 2019-05-10 19:59:29 · 26377 阅读 · 141 评论 -
Java程序如何去大厂如何技术如何突破经验分享
自我介绍:各位网友大家好,我是 rango,目前在北京,老家是江西宜春的。目前在北京已经工作 4年了。一直从事 Java 后端开发。最近写了一篇去各大厂面试的经历点击游览,得到了大家的关注,有点受宠若惊,但是也反应了一个现象,在大家的阅读和留言中主主要问的问题我都有关注,在这给大家一一说明。希望大家的职业生涯有所帮助。平时在工作中怎样积累这个要看你在公司做的工作是什么,如果大部分工作只...原创 2019-05-16 19:27:54 · 1323 阅读 · 0 评论 -
二线城市拿10K,一线城市拿20K Java程序员怎么选?
前言职场上,工作地点在很大程度上能决定了工资的高低,根据经验,一线城市的工资往往比二三线城市的工资都要高很多,也就是为什么很多人以前在一线城市工作的,转移到二线城市工作之后,工资反而降低了。所以,很多人都会愿意留在一线城市工作拿高工资的,但是也有一些特殊的情况,对此,一位从事程序员职业的朋友问:为什么有的程序员宁愿在二线城市拿8K薪资,也不愿在一线城市拿20K呢?Java技术面试交流群:7429...原创 2019-05-24 09:06:59 · 5443 阅读 · 5 评论 -
史上最牛的Mybatis源码研究分析最透彻的文章并且没有之一
MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. MyBatis can use simple XML or Ann原创 2019-05-29 11:57:35 · 2744 阅读 · 5 评论 -
应聘阿里全流程
应聘阿里是一个相对较长的流程,涉及岗位选择、简历投递、简历评估、技术面试、HR面试、背景调查、入职材料准备等环节。其中,关于技术面试,网上有很多优秀的攻略,但普遍聚焦于“纯知识点”总结,而阿里的技术面试并非单纯的知识点问答,单从技术层面做准备并不可取,此外,应聘流程中还有很多需要注意的点。本场 Chat 将从招聘者和面试官的角度,详细解读应聘阿里全流程,主要内容如下:岗位选择与简历投递;初见...转载 2019-07-10 14:31:33 · 745 阅读 · 3 评论 -
Redis的基础介绍与安装使用步骤
点关注,不迷路;持续更新Java相关技术及资讯!!!一、redis是什么?基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。redis是一个key-value存储系统。它支持存储的value类型:string(字符串)、list(链表)、set(集合)、zset(sorted set 有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、a...原创 2019-08-06 17:21:24 · 240 阅读 · 0 评论 -
Redis的基础数据结构与使用
点关注,不迷路;持续更新Java相关技术及资讯!!!一、基础数据结构Redis 有 5 种基础数据结构,分别为:string (字符串)、list (列表)、set (集合)、hash (哈希) 和 zset (有序集合)。string (字符串)字符串 string 是 Redis 最简单的数据结构。Redis 所有的数据结构都是以唯一的 key 字符串作为名称,然后通过这个唯一 ...原创 2019-08-06 17:36:38 · 289 阅读 · 0 评论