何鑫个人博客

软件复杂度主要表现在两个方面,第一个是理解能力,第二个是预测能力。 理解能力 理解能力指的是软件难以理解,它来源于软件的规模和软件的结构。软件的规模与业务密切相关,需求的增长和业务关系的混杂带来软件规模的指数级增长,最直接的表现就是代码量的增长,技术债越来越多,最终将软件拉向深渊。软件结构的复杂来源于我们对软件质量的要求,为了应对高并发,实现高可用,我们拆分业务,引入框架,增加各种中间件,看似提高了软件的质量,实际也使得软件结构越来越复杂。 预测能力 预测能力指的是预测软件变化的能力。技术革新,业务变化,......
封面图
明确搭建个人博客的目的 为什么要搭建个人博客呢?就我个人来说,两点原因。第一点,技术实践。纸上得来终觉浅,绝知此事要躬行。已有的理论知识,不经过实践,很难系统掌握,个人博客听起来很容易实现,其实它是个很锻炼技术的非常综合性的东西,不单单是编码,还需掌握需求分析,数据库设计,服务器相关知识,甚至包括SEO,Web安全等工作之外的知识。第二点,技术累积。做技术行业的,必须善于总结和分析,信息时代,技术发展日新月异,技术体系日益庞大复杂,作为一个普通人,好记忆不如烂笔头,做个笔记,分享到个人博客,做个个人知识库......
专题的开始 最近总碰见问消息队列相关的相关问题,我接触的最早的消息队列是ActiveMQ,与之相关的业务也主要是用于一些发送短信,发送邮件这一类的场景,也没有玩过一些比较高级的用法,后来分布式系统越来越火,消息中间件的运用范围也就更加广泛了,什么流量削峰,分布式事务等等,听起来很高大上,却也没有实际玩过,同时,各种消息中间件也越来越多,功能也越来越复杂,比如RabbitMQ,Kafka,阿里的RocketMQ之类的,各有所长,所以闲暇之余,也得跟上时代的步伐,研究研究相关的技术,就这样就寻思开一个专题,记......

数据结构之链表

  • 2021-07-03 22:27:47
  • 技术
  • 163
什么是链表 同数组一样,链表是一种线性数据结构,由一组相连的节点组成。在日常工作中,虽然我们直接使用链表的机会较少,但是间接使用的机会还是很多的,比如HashMap的底层数据结构中就有链表,而且这个基本上是面试必问的,还有Redis的list也是使用链表实现的,掌握链表对于我们日常编码过程中选择合适的数据结构,提高代码质量大有裨益。 链表的分类 单向链表 在单向链表中,一个节点包含两个部分,一个存储数据,另一个存储指向下个节点的指针。 双向链表 所谓双向链表就是在单向链表的基础上增加了指向前一个节点的指针......
ArrayList概述 ArrayList是一种很常见的数据结构,在实际工作中也非常常用。 我们可以从官方介绍中总结出它的特点。 这是一种实现了List接口的动态数组(基于数组实现,但是容量可变化) 未加锁(线程不安全) 可以容纳所有元素,包括null(基本类型要使用包装类,底层是Object数组) 有初始容量(即初始数组的大小,默认为10),根据需要自动增长 属性分析 常量 // 定义初始容量为10 private static final int DEFAULT_CAPACITY = 10; // 当......