后端
文章平均质量分 88
程序员阿轩
Java领域:架构干货分享:互联网分析
展开
-
十年经验倾囊相授,MySQL-高性能使用索引,拿走不谢
前言索引是存储引擎用于快速找到记录的一种数据结构,索引对于良好的性能非常关键,特别是随着数据量的加大,索引对性能的影响越发重要,但是日常工作中索引经常被忽略,造成经常遇到糟糕索引导致的性能问题。索引优化是对查询性能优化最有效的手段,索引能够轻易将查询性能提高几个数量级,创建一个真正的最优索引,应该是研发追求的目标。所谓索引其实就是我们日常经常使用目录,协助我们尽快找到需要的内容。索引有很多种类型,为不同的场景提供更好的性能。在MySQL中,索引是在存储引擎层实现,而不是在服务器层实现,所以并没有统一的索原创 2021-06-24 15:57:15 · 354 阅读 · 1 评论 -
炒干货!!!Springboot整合Shiro实现登录加密和权限
这篇文章实打实的技术指导,废话不多说,直接开始干,希望大家多多一键三连支持一下野生技术博客,毕竟这年头技术博士不多见了呀先看看下面的teacher表role表 perms表 shiro是一个安全框架,可以进行认证、授权、密码加密、会话管理 从外部来解析shiro框架:Subject:主体,代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,如网络爬虫,机器人等;即一个抽象概念;所有Subject都绑定到SecurityManager,与Subject原创 2021-06-24 14:33:43 · 493 阅读 · 1 评论 -
前三星程序员被无良HR欺骗,因祸得福竟“意外”拿下字节跳动offer(定薪45K)
前言先讲述一下自己为什么到字节跳动面试的原因吧,因为上一次面试被无良HR欺骗坑惨,面试的是一家上海某电商公司,给的薪资是不错。面试的时候,找我要了工资流水,然后给了我口头offer,就让我回去等了邮件了。回去之后就觉得offer没啥问题,稳稳当当了,就没再去面其他的公司,打起了游戏。结果等了两个礼拜也没等来邮件,问HR告诉我在走流程,我问是不是不要我,HR说要,让我继续等。再过了几天我再去问,HR就怎么都不回我了,这个时候我才反应过来“坏了”。好在后来我马上开始面试其他的公司,阴差阳错拿到了字节跳动的o原创 2021-06-23 16:46:28 · 972 阅读 · 0 评论 -
网曝:985毕业的“打工人”,大厂java开发5年被裁,内卷优化后还被经历了哪些黑幕?
周末的时候,一个很久没联系的朋友在微信上找到我,说有些关于程序员职业规划的问题想聊一聊。其实我跟他并不熟,甚至不记得是因为什么加的微信,只记得有过几次问题的探讨。那个时候,他还在大厂工作,负责一个创新业务的产品工作。现在,他刚从那家待了两年的大厂离职了。按他的说法,自己是被「优化」的。「优化」这个词也算一个互联网行业的「黑话」,通常指因为某些原因被辞退或者拿了公司赔偿后主动离职的。他发给我的经历,我看完后觉得,其实相对于大多数职场人来说,他的履历还算是光鲜的。本科985,毕业后通过校招进了美团原创 2021-06-23 10:01:24 · 445 阅读 · 0 评论 -
Github标星35K+超火的整理宝典【数据结构和算法】爆肝三万字你必须知道的20个解决问题的技巧
前言数据结构和算法 (DSA) 通常被认为是一个令人生畏的话题——一种常见的误解。它们是技术领域最具创新性概念的基础,对于工作/实习申请者和有经验的程序员的职业发展都至关重要。掌握DSA意味着你能够使用你的计算和算法思维来解决前所未见的问题,并为任何科技公司的价值做出贡献(包括你自己的!)。通过了解它们,您可以提高代码的可维护性、可扩展性和效率。话虽如此,我决定将我所了解的数据结构和算法集中起来。本文旨在使 DSA 看起来不像人们认为的那样令人生畏。它包括 15 个最有用的数据结构和 15 个最重要原创 2021-06-22 20:58:14 · 2606 阅读 · 0 评论 -
阿里巴巴面试官:谈谈 Tomcat 请求处理流程,我一脸懵逼。。
很多东西在时序图中体现的已经非常清楚了,没有必要再一步一步的作介绍,所以本文以图为主,然后对部分内容加以简单解释。那接下来我将重点聊聊Tomcat,希望给你以借鉴!大家看完觉得还不错的话,别忘了给个一键三连哦!绘制图形使用的工具是 PlantUML + Visual Studio Code + PlantUML Extension本文对 Tomcat 的介绍以 Tomcat-9.0.0.M22 为标准。https://tomcat.apache.org/tomcat-9.0-doc/index.h原创 2021-06-21 15:14:42 · 224 阅读 · 0 评论 -
渣硕试水字节跳动,消息队列面试连环问,本以为简历都过不了,123+HR面直接拿到意向书满满干货指导!
消息队列核心知识点有很多,为了更贴合实际场景,这里我们从常见的面试问题入手:如何保证消息不丢失?如何处理重复消息?如何保证消息的有序性?如何处理消息堆积?当然在剖析这几个问题之前需要简单的介绍下什么是消息队列,消息队列常见的一些基本术语和概念。接下来进入正文。什么是消息队列来看看维基百科怎么说的,顺带学学英语这波不亏:In computer science, message queues and mailboxes are software-engineering component转载 2021-06-18 17:01:29 · 433 阅读 · 0 评论 -
我把Github上最牛b的Java教程设计模式(三)命令模式整合成了一个PDF文档
前言今天在面试别人的过程,问到了设计模式,他说命令模式,what!!我没有听过,我只能强装淡定,问了问他,回来赶紧翻翻书,补一补。命令模式日常背书:命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。先来讲个故事吧,再来说说自己的理解。板面的故事板面相信大家都吃过吧,今天讲的是公司那边的一家板面店, 我们皮皮家族经常去吃,这家店中原创 2021-06-18 15:42:20 · 258 阅读 · 2 评论 -
阿里内部Java实战指南|花3分钟你就初步掌握了Redis分布式锁
前言:随着互联网的发展,单体架构所存在的问题也一一爆了出来,如部署成本高,迭代速度慢,不易于扩展等问题,微服务架构也油然而生,微服务的出现,并不是为了替代原先单体架构,而是为了解决单体架构出现的相关问题;微服务并不是为了取代某一种程序架构,而是它更适合于某种业务场景或更好地解决某种问题。然而微服务的出现也会带来一些相关的问题如:分布式问题更加复杂化:因为本来分布式问题就存在,比如分布式锁,分布式事务,数据一致性等问题,随着服务的细化,自然就让分布式问题更加复杂化;问题排查增加难度:微服务很多时原创 2021-06-18 14:33:34 · 208 阅读 · 1 评论 -
Github标星35K+超火的阿里p7大佬整理的Java核心知识总结,附超全教程文档
JDK JRE JVMJDK:Java标准开发包,它提供了编译、运⾏Java程序所需的各种⼯具和资源,包括Java编译器、Java运⾏时环境,以及常⽤的Java类库等。JRE:Java运⾏环境,⽤于解释执⾏Java的字节码⽂件。JVM:Java虚拟机,是JRE的⼀部分。负责解释执⾏字节码⽂件,是可运⾏java字节码⽂件的虚拟计算机区别联系:JDK包含JRE,JDK 和 JRE 中都包含 JVM。JDK出了包含jre还包含⼀些常⽤开发⼯具和基础类库JDK ⽤于开发,JRE ⽤于运⾏jav.原创 2021-06-17 15:40:25 · 356 阅读 · 0 评论 -
关于垃圾回收你真的了解透彻了吗?我熬夜深度剖析了一下
本文章我们重点剖析 JVM 的垃圾回收机制。关于 JVM 垃圾回收机制面试中主要涉及这三个考题:JVM 中有哪些垃圾回收算法?它们各自有什么优劣? CMS 垃圾回收器是怎么工作的?有哪些阶段? 服务卡顿的元凶到底是谁?虽然 Java 不用“手动管理”内存回收,代码写起来很顺畅。但是你有没有想过,这些内存是怎么被回收的?其实,JVM 是有专门的线程在做这件事情。当我们的内存空间达到一定条件时,会自动触发。这个过程就叫作 GC,负责 GC 的组件,就叫作垃圾回收器。JVM 规范并没有规定垃圾回原创 2021-04-10 16:13:03 · 214 阅读 · 0 评论 -
面试时总是搞混JMM 与 JVM?一文带你了解得透透的
本篇文章我们主要分析一个大厂面试题:不要搞混 JMM 与 JVM。在面试的时候,有一个问题经常被问到,那就是 Java 的内存模型,它已经成为了面试中的标配,是非常具有原理性的一个知识点。但是,有不少人把它和 JVM 的内存布局搞混了,以至于答非所问。这个现象在一些工作多年的程序员中非常普遍,主要是因为 JMM 与多线程有关,而且相对于底层而言,很多人平常的工作就是 CRUD,很难接触到这方面的知识。JMM 概念在前几篇文章,就已经了解了 JVM 的内存布局,你可以认为这是 JVM 的数据存储模原创 2021-04-06 22:24:19 · 369 阅读 · 0 评论 -
怎么得心应手应对 OOM 的疑难杂症?我给出了详细的解析
在前面几篇文章中,我们不止一次提到了堆(heap),堆是一个巨大的对象池。在这个对象池中管理着数量巨大的对象实例。而池中对象的引用层次,有的是很深的。一个被频繁调用的接口,每秒生成对象的速度,也是非常可观的。对象之间的关系,形成了一张巨大的网。虽然 Java 一直在营造一种无限内存的氛围,但对象不能只增不减,所以需要垃圾回收。那 JVM 是如何判断哪些对象应该被回收?哪些应该被保持呢?在古代,刑罚中有诛九族一说。指的是有些人犯大事时,皇上杀一人不足以平复内心的愤怒时,会对亲朋好友产生连带责任。诛原创 2021-04-03 21:11:46 · 109 阅读 · 0 评论 -
如何在亿级流量高并发下进行估算和调优?直接上实战案例
本篇文章主要讲解如何在大流量高并发场景下进行估算和调优。我们知道,垃圾回收器一般使用默认参数,就可以比较好的运行。但如果用错了某些参数,那么后果可能会比较严重,我不只一次看到有同学想要验证某个刚刚学到的优化参数,结果引起了线上 GC 的严重问题。所以你的应用程序如果目前已经满足了需求,那就不要再随便动这些参数了。另外,优化代码获得的性能提升,远远大于参数调整所获得的性能提升,你不要纯粹为了调参数而走了弯路。那么,GC 优化有没有可遵循的一些规则呢?这些“需求”又是指的什么?我们可以将目标归结为三原创 2021-04-02 17:57:39 · 220 阅读 · 0 评论 -
JVM探究:全面解析OOM异常,都在这了,看完再也不怕遇到了
在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(下文称OOM)异常的可能。本节探究主要基于jdk1.8的内存结构。JVM探究:全面解析OOM异常,都在这了,看完再也不怕遇到了1. Java堆溢出Java堆用于存储对象实例,只要不断地创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么在对象数量到达最大堆的容量限制后就会产生内存溢出异常。import java.util.Arra原创 2021-03-31 17:57:14 · 583 阅读 · 0 评论 -
Redis:看完就比常人多会三种类型实战,可以拿去炫耀了
前言对于Redis而言,很多小伙伴只关注其关键的五大基础类型:string、hash、list、set、sorted set(有序集合),其实还有三种特殊类型在很多应用场景也比较适合使用,分别是:bitmap、geospatial、hyperloglog;上一篇(跟我一起学Redis之五种基本类型及其应用场景举例(干了6个小时))对五种类型进行分享,接下来结合应用场景来说说三种特殊类型的使用方式;正文geospatial(地理空间)该类型在Redis3.2.0版本中加入,其本质是将经纬度通过原创 2021-03-25 17:55:47 · 138 阅读 · 0 评论 -
美团面试官总结的“Spring boot面试文档”,全是大厂高频面试题,太全了!
前言Spring boot不单单在BAT这些一线大厂使用率极其的高,在中小企业中使用率也是非常高的,又赶上现在是跳槽面试的高峰期“金三银四”,企业的需求增大,当然对待面试者的要求也会随之提高,竞争也会随之增大。相信现在的你之所以可以看到我的这篇文章,那肯定是因为最近在准备面试,到处搜刮面试题吧,今天给大家分享的这份“spring boot面试题集锦”,是美团面试官花了几个月的时间整理的,涵盖一线大厂所有常见的高频spring boot面试题,十分全面!现在分享给大家。xu要这份文档的完整版可以原创 2021-03-24 17:46:06 · 167 阅读 · 0 评论 -
从不同的角度教你类加载子系统,十分钟看懂!不来看看?
类文件首先需要经过类加载子系统,进行加载,进类信息等加载到运行时数据区,生成Klass的实例。在类加载子系统中有以下3个阶段操作(广义上的加载):加载阶段 Bootstrap ClassLoader:引导类加载器,主要加载JDK里面的核心类 Extension ClassLoader:拓展类加载器 Application ClassLoader:应用加载器 链接阶段 验证 链接 解析 初始化阶段如果加载的时候失败了,则不会执行后面的链接等操作。...原创 2021-03-17 17:59:25 · 94 阅读 · 0 评论 -
Java树结构实际应用(平衡二叉树/AVL树),讲得透透的
1、 看一个案例(说明二叉排序树可能的问题)给你一个数列{1,2,3,4,5,6},要求创建一颗二叉排序树(BST), 并分析问题所在. 左边 BST 存在的问题分析:1) 左子树全部为空,从形式上看,更像一个单链表.2) 插入速度没有影响3) 查询速度明显降低(因为需要依次比较), 不能发挥 BST的优势,因为每次还需要比较左子树,其查询速度比单链表还慢4) 解决方案-平衡二叉树(AVL)2、 基本介绍1) 平衡二叉树也叫平衡二叉搜索树(Self-balancin原创 2021-03-16 17:26:09 · 373 阅读 · 0 评论 -
腾讯高工保姆级“Java成长手册”,层层递进,全是精华
好像在当今这个社会,什么事物都会分成不同的层级,不管是物件还是人,虽然当今这个时代,是一个人人平等的时代,但是现实中还是有着各种不同的层级。作为程序员的我们,也同样是一样的,有的是在小公司的,有的是在外包公司,有的是在BAT这样的一线大厂,在大厂也会对程序员进行分级,P6、P7、P8...等等,这些层级就好像代表着程序员自身技术能力的分级。努力的人一直在往前,就像打怪升级一样的,安于现状的人,就一直停留在现在这个层级中,原地踏步。今天给大家分享的这份腾讯高工手写的“Java成长手册”,每一...原创 2021-03-12 17:17:32 · 560 阅读 · 2 评论 -
面试必备的计算机网络核心知识点,全都梳理好了,去怼面试官吧
目录1. OSI参考模型与TCP/IP参考模型 2. TCP的三次握手2.1 传输控制协议TCP简介:2.2 TCP报文头:2.3 三次握手3. TCP的四次挥手3.1 四次挥手的过程3.2 为什么会有TIME_WAIT状态?3.3 为什么需要四次挥手才能断开连接?4. TCP和UDP的区别4.1 UDP特点4.2 TCP和UDP区别:5. HTTP详解5.1 协议简介5.2 HTTP主要特点5.3 请求/响应的步骤5.4 在浏览器地址栏键...原创 2021-03-11 16:47:51 · 404 阅读 · 0 评论 -
最全的教程了!分布式任务调度解决方案XXL-JOB快速搭建
目录1. XXL-JOB简介 2. XXL-JOB搭建2.1 准备工作2.1.1 下载源码 2.2 搭建调度中心 2.2.1 配置调度中心2.2.2 启动调度中心 2.3 搭建“执行器” 2.3.1 新建执行器项目2.3.2 添加相关依赖和配置执行器2.3.3 编写执行器3. 测试3.1 新增执行器3.2 新增任务3.2.1 新增任务3.2.2 配置属性3.3 启动任务测试1. XXL-JOB简介XXL-JOB是一个分布式任务调度平台原创 2021-03-10 22:24:10 · 726 阅读 · 1 评论 -
一步步带你搭建Elasticsearch环境,还看不懂?
目录1.1 Elasticsearch安装 1.1.1 Elasticsearch安装 1.1.2 Elasticsearch目录结构 1.1.3 Elasticsearch插件安装 1.1.4 Elasticsearch多实例启动 1.2 Kibana安装 1.2.1 Kibana安装 1.2.2 Kibana插件安装 1.3 Logstash安装 1.3.1 Logstash安装 1.3.2 Logstash导入数据 磨刀不误砍柴工,要学习Elas...原创 2021-03-09 17:57:21 · 149 阅读 · 0 评论 -
腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer
我20年的十一月份之前一直在一家中型互联网企业做后端,接近十一月中旬工作交接完成后正式离职,我为什么离职?很简单,就是想去更大的企业,让自己有更大的发展空间和学习空间,就毅然裸辞了(注:大家不要学我裸辞,请慎重考虑)。之后就一直在准备接下来的面试,如标题所示,我的目标就是这几家企业(网易、腾讯、CVTE、字节),其中就想去的还是字节。接下来就是和大家分享一下我的面试经历和面试所问到的问题。文章后半段会分享一些我个人总结的大厂最新“面试真题笔记含答案”,需要完整版的朋友点击这里即可免费获取!原创 2021-03-09 15:30:59 · 1145 阅读 · 2 评论 -
干货!使用Docker构建RabbitMQ高可用负载均衡集群
目录一、构建RabbitMQ集群 1. 启动多个RabbitMQ节点 2. 加入集群 3. 配置镜像队列 二、HAProxy负载均衡 1. 安装HAProxy 2. 配置HAProxy 3. 启动 三、KeepAlived配置高可用 1. KeepAlived安装 2. KeepAlived配置 本文使用Docker搭建RabbitMQ集群,然后使用HAProxy做负载均衡,最后使用KeepAlived实现集群高可用,从而搭建起来一个完成了Ra...原创 2021-03-08 17:33:00 · 413 阅读 · 0 评论 -
《吃透MQ系列》核心基础全在这里了,一文啃透!
本文主要讲解 MQ 的通用知识,让大家先弄明白:如果让你来设计一个 MQ,该如何下手?需要考虑哪些问题?又有哪些技术挑战?有了这个基础后,我相信后面几篇文章再讲 Kafka 和 RocketMQ 这两种具体的消息中间件时,大家能很快地抓住主脉络,同时分辨出它们各自的特点。对于 MQ 来说,不管是 RocketMQ、Kafka 还是其他消息队列,它们的本质都是:一发一存一消费。下面我们以这个本质作为根,一起由浅入深地聊聊 MQ。01 从 MQ 的本质说起将 MQ 掰开了揉碎了来看,都是「一发一原创 2021-03-04 17:15:31 · 168 阅读 · 1 评论 -
超干货!一篇文章带你快速入门JVM,还看不懂吗?
简介Java是一门可以跨平台的语言,但是Java本身是不可以实现跨平台的,需要JVM实现跨平台。javac编译好后的class文件,在Windows、Linux、Mac等系统上,只要该系统安装对应的Java虚拟机,class文件都可以运行。达到 ”一次编译,到处运行” 的效果。什么是JVMJVM是可以运行在Java代码的虚拟的计算机,既然是虚拟的计算机,当然也包含自己的CPU、字节码指令集、寄存器、栈、垃圾回收、堆和存储方法域,我们可以理解成JVM自己就是一套操作系统。Java从编...原创 2021-03-03 17:54:08 · 316 阅读 · 1 评论 -
看完就能懂!ElasticSearch 垃圾回收器优化
背景介绍es版本:6.3.2 es集群配置:16核cpu,内存64G,磁盘200G JDK版本:1.8 垃圾回收器: CMS+ParNew部署在这个集群的服务偶尔会遇到服务超时的情况,从kibana监控中可以看到,服务超时情况发生时,es服务器cpu较高。es存在young gc频繁,old gc 低频率,每天约出现2-4次。imageimage查看过去一小时的监控情况,发现young gc 比较频繁,大量对象最终进入了老年代,通过old gc被回收掉了。image原创 2021-03-02 18:11:43 · 1066 阅读 · 0 评论 -
太强了!阿里大神亲码“SpringCloud核心手册”,已献出我的膝盖
前言大家都知道springcloud是一个基于springboot实现的云应用开发工具,springcloud为开发人员提供了快速构建分布式系统中的一些常见模式的工具(如配置管理、服务发现、断路器、智能路由、微代理、控制总线)等。springcloud在企业中活跃度非常的高,教程很丰富,遇到问题很容易找到解决方案。所以像BAT这种大企业非常重视面试者在这方面的能力。今天给大家分享的这份阿里P8大牛亲码的“springcloud核心手册”从基础知识、springcloud常用模块的介绍,大型分布式原创 2021-03-02 17:59:21 · 201 阅读 · 0 评论 -
mysql系列:innodb日志管理,带你高效快速理解
本文从两个方面进行阐述,常规的日志文件(不区分存储引擎),第二就是讲innodb存储引擎的事务日志。第三就是看下binlog日志和事务日志的对比。一、基本日志文件1.1、基本日志文件分类:错误日志(error log)慢查询日志日志(slow query log)二进制日志(binlog)查询日志(general log)1.2、错误日志主要包括mysql的启动,运行,关闭过程进行记录。默认情况下以服务器的主机名命名`hostname`.err,可以通过参数--log-...原创 2021-02-28 20:54:00 · 309 阅读 · 0 评论 -
惊了!我这样优化了Tomcat后,网站访问性能竟飙升
一、前言tomcat 服务器在JavaEE项目中使用率非常高,所以在生产环境对tomcat的优化也变得非常重要了,对于tomcat的优化,主要是从2个方面入手,一是tomcat本身的配置,另一个是tomcat所运行的Jvm虚拟机的调优二、Tomcat配置优化2.1 下载安装tomcat案例中使用的Tomcat版本是 8.0+ 版本下载安装:https://tomcat.apache.org/download-80.cgi2.2 配置修改cd apache-tomca.原创 2021-02-27 19:47:03 · 341 阅读 · 0 评论 -
MySQL全面剖析:MySQL索引实现和使用
MySQL索引实现上一篇我们详细了解了B+树的实现原理(传送门)。我们知道,MySQL内部索引是由不同的引擎实现的,主要包含InnoDB和MyISAM这两种,并且这两种引擎中的索引都是使用b+树的结构来存储的。InnoDB引擎中的索引Innodb中有2种索引:主键索引(也叫聚集索引)、辅助索引(也叫非聚集索引)。主键索引:每个表只有一个主键索引,b+树结构,叶子节点存储主键的值以及对应整条记录的数据,非叶子节点不存储记录的数据,只存储主键的值。当表中未指定主键时,MySQL内部...原创 2021-02-26 17:48:39 · 156 阅读 · 0 评论 -
学习Dubbo-带你通过源码看看dubbo对netty的使用
前言前段时间,从头开始将netty源码了解了个大概,但都是原理上理解。刚好博主对dubbo框架了解过一些,这次就以dubbo框架为例,详细看看dubbo这种出色的开源框架是如何使用netty的,又是如何与框架本身逻辑进行融合的。本文分成两大部分,一部分是dubbo服务端对netty的封装,一部分是dubbo客户端对netty的封装,而每部分都分netty初始化和调用两个阶段,下面进入正题。一、Dubbo服务端Dubbo服务端对netty的调用始于服务导出,在服务导出的最后,会调用D.原创 2021-02-25 17:37:21 · 480 阅读 · 0 评论 -
一次性讲清楚,Nginx详解其原理,可以给我鼓掌了
金三银四即将到来,推荐阅读:过关斩将!三面字节,27k*17offer,原来也没那么难一、Nginx进程模型分析 在介绍Nginx的进程模型之前我们先来给大家解释下一些常见的名词,这能辅助我们更好地了解Nginx的进程模型。作为Web服务器,设计的初衷就是为了能够处理更多的客户端的请求,一般来说,完成并行处理请求工作有三种方式可以选择,多进程、多线程、异步方式。二、多进程方式服务器每接收到一个客户端请求,就会由主进程生成一个子进程出来和该请求建立连接进行交互,直到连接断开以后子进程.原创 2021-02-24 21:33:25 · 1528 阅读 · 0 评论 -
这么深入地带你去学习JAVA-IO流,你不可能还不会吧?
(一)IO流基本概念Java对数据的操作是通过流的方式,io是java中实现输入输出的基础,它可以很方便地完成数据的输入输出操作,Java把不同的输入输出抽象为流,通过流的方式允许Java程序使用相同的方式来访问不同的输入、输出。(二)文件字节输入流(2.1)使用输入流的4个基本步骤1.设定输入流的源。2.创建指向源的输入流。3.让输入流读取源中的数据。4.关闭输入流。(2.2)构造方法如果对文件读取需求比较简单,从文件系统中的某个文件中获得输入字节,可以使..原创 2021-02-24 21:32:11 · 102 阅读 · 0 评论 -
这样去理解MySQL的存储引擎,面试官都对我拍手叫好了
MySQL关于存储引擎的架构设计,相较于其他关系数据库管理系统,比如Oracle,SQL Server等数据库,这是MySQL最大的特色,也是MySQL最不一样的地方,因此,在这篇文章中我们来简单地了解一下。存储引擎架构MySQL的存储引擎架构被设计为可插拔式架构模式,也就是在不影响任何业务逻辑的情况下,我们可以随时替换当前的存储引擎,以达到以存储和性能方面的需求。其实,我们可以通过下面MySQL服务架构图来了解一下这个过程:从上面的图我们可以看到,MySQL的Server层与存储.原创 2021-02-23 20:44:55 · 141 阅读 · 0 评论 -
过关斩将!三面字节,27k*17offer,原来也没那么难
一、为什么跳槽?我做后端五年多了,同很多人一样,我大学的专业和程序员这个行业没有任何的关系。毕业后,很迷茫,就做了门槛相对来说较低的服务行业,之后,就一个偶然的机会接触了程序员这个行业,之后便开始了我长达五年多的后端开发工作。我之前在一家中型的互联网公司工作,技术一直还算可以,一年前,随着年纪的增长,有了家庭的压力,便开始想着提升自己,想让自己到达一个新的高度,而且大厂的话不论是管理还是工作氛围都是可以帮助到自己的。接下来就是跟大家分享一下我的字节面试经历,希望对即将在金三银四跳槽的朋友有所帮助原创 2021-02-23 18:03:13 · 465 阅读 · 0 评论 -
历经几小时,终于把Spring IOC介绍和操作讲得明明白白
一、IOC和 Bean介绍IOC也被称为DI。使用构造器参数,fatory参数,属性的方式的设置对象实例。在这个过程中创建bean的时候,容器会注入这些依赖,Bean本身通过使用类的直接构造来控制其依赖项的实例化或位置的过程,因为创建Bean的方式完成是反过来的,所以称为Inversion of Control (IoC)。说句人话就是以前创建对象是通过new,现在不new了,直接通过类的构造注入对象。org.springframework.beans 和 org.springframework.c原创 2021-02-22 20:38:39 · 78 阅读 · 0 评论 -
太硬核了!这篇HashMap源码分析,绝对可以堪称为圣经
一、前言本篇是继硬核ArrayList源码分析,答应我每天看一遍好么之后进行的第二篇源码分析;学完本篇你将对hashMap的结构和方法有个全面的了解;面试自己有多强,超人都不知道;比如HashMap的扩容机制,最大容量是多少,HashMap链表是如何转到红黑树,HashMap为什么线程不安全,HashMap的key,value是否能null值等等;二、源码分析2.1 官方说明实践官方说**HashMap实现了Map接口,拥有所有的Map操作;并且允许key,value都为null;**实践一原创 2021-02-21 21:53:36 · 311 阅读 · 0 评论 -
企业级实战!Springboot集成自定义异常类,清楚明了
一、说明会使用枚举 熟悉面向切面编程思想 熟悉枚举 熟悉异常 了解springboot基本知识 熟悉基本项目搭建,在演示文档中省略该步骤 springboot 2.0 , jdk1.8,构建工具idea二、 自定义异常类作者只能说简洁明了直接撸代码。2.1 在pom文件中引入相关依赖 <dependencies> <!-- web启动器--> <dependency> <grou原创 2021-02-20 17:19:42 · 215 阅读 · 0 评论