自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 高并发系统架构设计需要考虑哪些

高并发系统架构设计需要考虑哪些转载于https://www.toudo.cn/article/21我们在应对高并发大流量时应对方法,归纳起来共有三种方案。Scale-out(横向扩展): 分而治之是一种常见的高并发系统设计方法,采用分布式部署的方式把流量分流开,让每个服务器都承担一部分并发和流量。缓存:使用缓存来提高系统的性能,就好比用“拓宽河道”的方式来抵御高并发大流量的冲击。异步:在某些场景下,未处理完之前,我们可以让请求先返回,在数据准备好之后再通知请求方,这样可以在单位时间内处理更多的请求

2021-10-11 14:43:17 756

原创 算法之链表反转

转载于https://www.toudo.cn/article/20链表反转两种实现方法迭代法实现步骤单向链表的最后一个节点肯定是指向null,链表反转也就是将尾结点别为头结点。第一步:声明pre指针并指向null,cur 指针指向当前节点,tmp指针 指向cur.next,断开cur.next 指向pre第二步:移动 pre 指针到节点1,cur指针到节点2,tmp指针到节点3,继续断开cur.next节点指向前一个节点。依次类推重复上面的步骤代码实现public class L

2021-09-26 15:41:31 131

原创 数据结构之数组

转载于https://www.toudo.cn/article/17什么是数组数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。定义里有几个关键词,理解了这几个关键词,我想你就能彻底掌握数组的概念了线性表顾名思义,线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表、队列、栈等也是线性表结构。非线性表与线性表相对立的概念是非线性表,比如二叉树、堆、图等。之所以叫非线性,是因为,在非线性表中,数据之间并不

2021-09-03 15:05:09 318

原创 数据结构与算法(二)

转载于https://www.toudo.cn/article/16上节总结上一章,我们讲了复杂度的大 O 表示法和几个分析技巧,还举了一些常见复杂度分析的例子,比如 O(1)、O(logn)、O(n)、O(nlogn) 复杂度分析。掌握了这些内容,对于复杂度分析这个知识点,你已经可以到及格线了。但是,我想你肯定不会满足于此。今天我会继续给你讲四个复杂度分析方面的知识点,最好情况时间复杂度(best case timecomplexity)、最坏情况时间复杂度(worst case time comp

2021-09-03 15:02:23 72

原创 数据结构与算法(一)

转载于https://www.toudo.cn/article/15什么是数据结构与算法是什么数据结构指的是“一组数据的存储结构”,算法指的是“操作数据的一组方法”。数据结构是为算法服务的,算法是要作用再特定的数据结构上的。知识点下面是数据结构和算法的知识点图谱当然上面所有的知识点很多是不常见的,下面总结了20个最常用、最基础的数据结构与算法,不管是应付面试还是工作需要,只要集中精力逐一攻克这 20 个知识点就足够了。这里面有:10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、

2021-09-02 17:44:38 657

原创 什么是微服务架构

转载于https://www.toudo.cn/article/13互联网应用架构历程随着互联网的发展,用户群体逐渐扩大,网站的流量成倍增长,常规的单体架构已无法满足请求压力和业务的快速迭代,架构势在必行。下面以某网的架构演示为例,从最开始的单体架构分析,一步步的到现在的微服务架构。单机应用架构网站诞生之初,因为用户量、数据量规模都很小,项目的所有功能模块都放在一个工程中编码、编译、打包并部署在一个Tomcat容器中的架构模式就是单体应用架构,这样的架构既简单实用、便于维护,成本又低,成为了那个时代

2021-08-20 09:55:11 472

原创 Java并发编程

转载于https://www.toudo.cn/article/synchronizejava内存分区Java程序是交由JVM执行的,所以Java内存区域划分的时候事实上是指JVM区域划分。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JnYVSnaR-1629424208064)(https://www.toudo.cn/upload/2021/08/3ip5io2nc0if6ob8lgud3aidl5.jpg)]根据《Java虚拟机规范》的规定,运行时数据区通常包

2021-08-20 09:51:39 264

原创 监听器设计模式

转载于https://www.toudo.cn/article/listener设计模型监听器模式也是观察者模式的一种实现,主要使用场景,事件源触发了某个操作时,不是自己处理,而是交给某个特定的处理器去处理相应的逻辑。主要目的:解耦、可扩展。三种角色事件源顾名思义,事件发生的源头,比如点击的按钮,属于被监听的对象;事件发布者就是这个事件的发起者,他只能是一个。监听监听者这个是监听器模式的核心,定义事件发生后的动作,通常事件对象作为监听器中定义的函数入参。它可以有多个。举例场景:监听某

2021-08-20 09:48:27 229

原创 策略模式解决重复的if else问题

转载于https://www.toudo.cn/article/9前言想必大家在开发中肯定遇到过某个场景使用了大量的if else 来处理不同的业务。下面给大家介绍一种设计模式,可以优雅的解决这种问题,提高代码的扩展性、和美观性。正文下面给大家举个例子,这是几种汽车品牌public interface CarTypeConstants { static final String DAZHONG = "dazhong"; static final String BSJ = "bs

2021-08-20 09:45:25 366

原创 Java服务线上问题排查思路

前言Java 语言是当前互联网应用最为广泛的语言,作为一名程序猿掌握 Java 服务线上问题排查思路并能够熟练排查问题常用工具/命令/平台是每一个 Java 程序猿进阶必须掌握的实战技能。常见问题总的来说线上问题可以分为两大类:系统异常、业务异常。系统异常不外乎,CPU、内存、磁盘、网络四个方面,例如常见问题CPU使用率峰值突然飙高、内存溢出、磁盘满了、网络流量异常、带宽满了等。一般我们采用排除法、解决问题。当系统业务异常、首先我们想到的是查看业务日志。问题定位查看业务日志常用的查看日志命令

2021-08-20 09:36:26 311

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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