前言

一直想着复盘下知识点,刚好趁着最近的间隙时间,进行一个简单的阶段系列小结,如下

======================================================================================================

--1、spring 的生命周期、ioc\aop
(1)Spring的生命周期主要指创建、初始化、销毁。Bean的生命周期主要由容器进行管理,我们可以自定义bean的初始化和销毁方法,容器在bean进行到生命周期的特定时间点,来调用自定义的初始化和销毁方法。
以下需结合项目以及实际生产的使用进行进一步的解释
(2)ioc控制反转
(3)AOP面向切面
--2、int 和 integer的区别
两者的区别主要体现在以下几个方面:
(1)数据类型不同:int 是基础数据类型,而 Integer 是包装数据类型;
(2)默认值不同:int 的默认值是 0,而 Integer 的默认值是 null;
(3)内存中存储的方式不同:int 在内存中直接存储的是数据值,而 Integer 实际存储的是对象引用,当 new 一个 Integer 时实际上是生成一个指针指向此对象;
(4)实例化方式不同:Integer 必须实例化才可以使用,而 int 不需要;
(5)变量的比较方式不同:int 可以使用 == 来对比两个变量是否相等,而 Integer 一定要使用 equals 来比较两个变量是否相等。
--3、list的种类和区别
(1)作为共享变量时,存在线程安全问题,作为方法局部变量时,没有线程安全问题
(2)ArrayList与LinkedList区别、ArrayList与Vector区别①底层数据结构不同:ArrayList底层时数组  LinkedList是双向链表,数据结构不同导致api有所差异,比如新增A会计算并决定是否需要扩容,然后把新增的数据直接赋值到数组上;而L只需要改变插入节点与前后节点的指向关系即可②A常用于快速查询匹配,L常用于新增与删除,适合大量修改③Vector与ArrayList区别是V是线程安全的集合,在需要线程安全且对效率要求比较低的情况,使用Vector
--4、Collections知识 ------------>原文链接:https://blog.csdn.net/qq_50692350/article/details/126292057
--5、map的种类与区别
Map类有:HashMap,LinkedHashMap,TreeMap
(1)HashMap中k的值没有顺序,常用来做统计,key和value可以为空,同时是线程不安全的,存入和输出的数据,顺序可能发生变化。
(2)LinkedHashMap。它内部有一个链表,保持Key插入的顺序。迭代的时候,也是按照插入顺序迭代,而且迭代比HashMap快,存入和输出的数据,顺序保持一致。
(3) TreeMap的顺序是Key的自然顺序(如整数从小到大),也可以指定比较函数。但不是插入的顺序。
需要多说明一下:HashMap它的访问时根据容器的大小进行访问,如果容器过大,那么它访问的时间也会变长,但是它访问单个数据的速度要比LinkedHashMap要快,因为linkedHashMap是基于链表有前驱和后继数据占的空间也比较大。LinkedHashMap是HashMap的一个子类。
--6、在JDK1.7和JDK1.8中HashMap有哪些不同
(1)1.8用了红黑树
(2)1.7用了头插法,1.8是尾插法
(3)1.7会rehash,1.8没有这个代码逻辑,但他多了putIfAbsent(key,value)
--7、spring cloud的用到了哪些
--8、项目中是如何处理分布式事务
--9、常用的linux指令
(1)cd /u01/page/                                                          进入文件路径
(2)ll                                                                     查看当前路面下所有文件
(3)mv oisp-beijing-web.zip   oisp-beijing-web$(date +%Y%m%d%H%M%S).zip    zip重命名
(4)zip -p -r oisp-beijing-web.zip oisp-beijing-web/                       压缩项目
(5)unzip -o oisp-beijing-web.zip                                          解压
(6)history                                                                查看历史
(7)tail -f 日志.log                                                       查看实时日志
(8)tail -f -n 100 日志文件名                                              查看日志后100行
--10、数据库优化有哪些 ------------>原文链接:https://blog.csdn.net/m0_72088858/article/details/126815713
(1)最左前缀法则:
如果使用多个列创建了组合索引,则必须满足最左前缀法则才会使用索引,即查询条件中使用了组合索引靠左边的列就会使用索引,不能跳过组合索引的列。
①例如:
EXPLAIN SELECT * FROM tb_seller WHERE NAME = '小米科技'
这条查询语句的条件使用了name,组合索引为:“name,status,address”,属于组合索引靠左边的列。
②再比如:
EXPLAIN SELECT * FROM tb_seller WHERE NAME = '小米科技' AND STATUS = 1
这条查询语句的条件使用了name和status,属于组合索引靠左边的列。
③再比如:EXPLAIN SELECT * FROM tb_seller WHERE NAME = '小米科技' AND STATUS = 1 AND address = '北京市'
这条查询语句的条件使用了name,status和address属于组合索引靠左边的列。
这三条查询语句都满足最左前缀法则会使用索引。
再来看看不符合最左前缀法则的例子:
④例如:EXPLAIN SELECT * FROM tb_seller WHERE STATUS = 1
这条sql语句的查询条件跳过了name,直接使用status不符合最左前缀法则EXPLAIN SELECT * FROM tb_seller WHERE STATUS = 1 AND address='北京市'
这条sql语句同样跳过了name不符合最左前缀法则
如果查询条件跳过了组合索引的某列则只有左边的索引会生效
⑤例如:
EXPLAIN SELECT * FROM tb_seller WHERE NAME = '小米科技' AND address='北京市'
只有name上的索引会生效(2)范围查询右边的列不能使用索引
例如:
EXPLAIN SELECT * FROM tb_seller WHERE NAME = '小米科技' AND STATUS='1' AND address = '北京市'
这条sql语句会使用组合索引中的每一列:
下面这条sql语句使用了范围查询:
EXPLAIN SELECT * FROM tb_seller WHERE NAME = '小米科技' AND STATUS>'1' AND address = '北京市'
索引只能使用name和status索引,不能使用address索引,因此key_len 为410 (3)如果在索引列上进行运算操作索引会失效:
例如:
EXPLAIN SELECT * FROM tb_seller WHERE SUBSTRING(NAME,3,2) = '科技'
这个sql语句的索引列name使用了substring函数所以索引会失效。(4)字符串不加单引号会导致索引失效:
例如:
EXPLAIN SELECT * FROM tb_seller WHERE NAME='科技' AND STATUS = '0'
字符串’0’加了单引号,会使用索引列name和status查询EXPLAIN SELECT * FROM tb_seller WHERE NAME='科技' AND STATUS = '0'
如果使用下面的sql语句,0没有加单引号,只会使用索引列name来查询:
EXPLAIN SELECT * FROM tb_seller WHERE NAME='科技' AND STATUS = 0(5)尽量使用覆盖索引即查询的列都是索引中的列避免使用 select * :
例如:
EXPLAIN SELECT NAME,STATUS FROM tb_seller WHERE NAME='科技' AND STATUS = '0' AND address='西安市'
效率比:
EXPLAIN SELECT * FROM tb_seller WHERE NAME='科技' AND STATUS = '0' AND address='西安市'
要高。(6)用or分割开的条件当中只要有一个非索引列则不会使用索引:
例如:
EXPLAIN SELECT NAME,STATUS FROM tb_seller WHERE STATUS = '0' OR PASSWORD='123'
会导致全表扫描(7)以%开头的模糊查询索引失效。
例如:
EXPLAIN SELECT * FROM tb_seller WHERE NAME LIKE '%米'
这种情况可以采用覆盖索引来解决:
EXPLAIN SELECT NAME FROM tb_seller WHERE NAME = '小米科技'
--11、说说项目使用到redis的地方
(1)保存一些通用参数表信息到redis方便即时查询
(2)通过锁获取redis只增数生成指定业务批次号
--12、说说nginx的使用,配置文件有什么信息
(1)配置文件信息
nginx.conf的内容分为以下几段:
main配置段:全局配置段。其中main配置段中可能包含event配置段
event {}:定义event模型工作特性
http {}:定义http协议相关的配置-----端口、服务地址
配置指令:要以分号结尾,语法格式如下:
derective value1 [value2 …];
(2)作用;nginx错误日志地址配置,服务上传地址,web指定跳转
--13、索引失效的原因有哪些 ------------>原文链接:https://www.cnblogs.com/xiaolincoding/p/15839040.html
(1)当我们使用左或者左右模糊匹配的时候,也就是 like %xx 或者 like %xx%这两种方式都会造成索引失效;
(2)当我们在查询条件中对索引列使用函数,就会导致索引失效。
(3)当我们在查询条件中对索引列进行表达式计算,也是无法走索引的。
(4)MySQL 在遇到字符串和数字比较的时候,会自动把字符串转为数字,然后再进行比较。如果字符串是索引列,而条件语句中的输入参数是数字的话,那么索引列会发生隐式类型转换,由于隐式类型转换是通过 CAST 函数实现的,等同于对索引列使用了函数,所以就会导致索引失效。
(5)联合索引要能正确使用需要遵循最左匹配原则,也就是按照最左优先的方式进行索引的匹配,否则就会导致索引失效。
(6)在 WHERE 子句中,如果在 OR 前的条件列是索引列,而在 OR 后的条件列不是索引列,那么索引会失效。
(7)查询条件中有 is null
(8)查询条件中有<> / not in / not exists
--14、消息队列用到了哪些
--15、数据迁移的过程是怎么处理的
--16、索引的底层原理 ------------>原文链接:https://blog.csdn.net/xxxcAxx/article/details/128197710
(1)索引是排好序的快速帮助MySQL高效获取数据的数据结构。
(2)优点:
①提高数据检索的效率,减少数据库IO的成本;
②通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗
(3)缺点:
①索引会占据磁盘空间
②索引虽然会提高查询效率,但是会降低更新表的效率。比如每次对表进行增删改操作,MySQL不仅要保存数据,还有保存或者更新对应的索引文件。
③创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加
④对表中的数据进行增、删、改的时候,索引也要动态的维护,这就降低了整数的维护速度
⑤如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。
⑥对于非常小的表,大部分情况下简单的全表扫描更高效。
(4)索引的分类
根据索引的具体用途,MySQL 中的索引在逻辑上分为以下 5 类:
①普通索引(索引名:index)
普通索引是 MySQL 中最基本的索引类型,它没有任何限制,唯一任务就是加快系统对数据的访问速度。普通索引允许在定义索引的列中插入重复值和空值。
②唯一索引(索引名:unique)
顾名思义,唯一索引就是专门为具有唯一约束字段创建的索引。当一个字段被设置唯一约束时,MySql会自动为此字段创建唯一索引。唯一索引列的值必须唯一,但允许有空值。
③主键索引(索引名:primary key)
顾名思义,主键索引就是专门为主键字段创建的索引。当一个字段被设置为主键时,MySql会自动为此字段创建主键索引。主键索引是一种特殊的唯一索引,不允许值重复或者值为空。
④全文索引(索引名:fulltext)
全文索引主要用来查找文本中的关键字,只能在 CHAR、VARCHAR 或 TEXT 类型的列上创建。在 MySQL 中只有 MyISAM 存储引擎支持全文索引。
⑤空间索引(索引名:spatial)
空间索引是对地理空间数据类型 GEOMETRY的字段建立的索引。创建空间索引的列必须将其声明为 NOT NULL,空间索引只能在存储引擎为 MyISAM 的表中创建。对于初学者来说,这类索引很少会用到。
--17、redis的优势
(1)单线程
(2)纯内存 KV
(3)高效的数据结构及合理的数据编码
(4)同步非阻塞I/O——多路复用
--18、ob数据库的底层原理  ------------>原文链接:https://blog.csdn.net/songyun333/article/details/125393117
(1)OB是分布式的关系型数据库。
(2)部分节点故障后内部自动切换恢复服务,不需要运维人员或工具产品介入。切换恢复时间在30s以内, 绝对不丢数据。
(3)有多(租户)实例管理能力,集群资源作为一个池子,分出多个(租户)实例给不同业务使用。
(4)极致的弹性伸缩能力。租户扩容和缩容一个命令搞定,集群扩容和缩容也是一个命令搞定。弹性伸缩涉及到的负载均衡和数据迁移等事情都是数据库内部异步完成。 运维很方便。
(5)对硬件要求低。普通PC服务器,普通SSD盘(OB对SSD写很友好,即随机写很少),千兆或万兆网卡。不需要存储、光纤,不需要小机。
(6)OB的数据压缩能力也很强,16T的数据大概会压缩到3T左右

阶段复盘与总结(一)相关推荐

  1. pycharm里怎么关闭一个项目_【周末分享】一个完整的项目复盘到底要怎么做?...

    点击"阅读原文",注册会员,海量活动方案免费拿 作者 | 杨阳(广告创意主笔) 来源 | 广告创意(ID:idea1408) 字数:3099 推荐阅读时长:5min 从计划到执行到 ...

  2. 复盘模型_组织内如何进行经验萃取复盘

    适合场景: 1.越来越多的企业认识到了组织智慧提炼对提高组织核心竞争力和内部培训质量的重要性.组织智慧是什么?什么是最佳实践?组织智慧如何萃取?组织智慧如何传承和推广? 2.经验萃取是企业领导者和培训 ...

  3. 及时复盘的好处_还不会复盘?这篇有最全的复盘介绍

    Hello,鲶鱼精.我是你们的三点半呀~ 这篇文章推荐鲶鱼精一个神仙技能,复盘. 复盘的3个最重要的价值:1有助于复盘者避免犯同样的错误:2 有助于找到事情的底层规律:3 使复盘者始终坚持在正确的方向 ...

  4. 如何和测试团队做复盘?

    经常听到一个词"复盘",一个项目复盘会,一个开发阶段复盘会,一个里程碑后的复盘会,所有的这些,测试同学都跟随着脚步一个一个的参与,那针对单纯的测试团队,是否需要进行复盘呢?有必要进 ...

  5. 一个完整的项目复盘到底要怎么做?

    复盘,是运营必不可少的能力,小到一次买菜的经历,大到百亿千亿的投资项目,都可以通过复盘来总结规律.提升水平. 简单说来,复盘可以达到的效果有两条: 优化弱项,强化强项 明确自己的价值,明确工作的价值 ...

  6. 怎么做好一个完整的项目复盘

    复盘,是运营必不可少的能力,小到一次买菜的经历,大到百亿千亿的投资项目,都可以通过复盘来总结规律.提升水平. 简单说来,复盘可以达到的效果有两条: 优化弱项,强化强项 明确自己的价值,明确工作的价值 ...

  7. [思维模式-18]:《复盘》-6- “行”篇 - 操作复盘- 经营与战略复盘

    目录 前言: 一.谷歌:经营复盘与OKR是"天作之合" 二.联想:将复盘嵌入经营与管理 三.经营与战略复盘如何做 1.季度业务复盘会 2.年度战略复盘与规划研讨会 四.经营与战略复 ...

  8. GBase项目管理实践总结——研发项目复盘简介

    一.项目目标复盘 1.项目进度复盘 1)是否按照原计划交付时间交付? 2)原计划的需求点实现了多少?哪些需求点没有按计划实现? 3)每一个需求点延后原因分别是什么? 4)哪些里程碑有延迟,延迟原因是什 ...

  9. 地产遇冷之际,行业竞争加剧,房企如何走出营销低谷,先声夺人?

    文末可申领TOP100房企的数字化解决方案与案例! 文 | 帆软数据应用研究院 数据显示,自2021年6月起,全国市场持续呈降温态势,商品房销售面积首次低于近三年均值,进入10月,更是同比下降21.7 ...

最新文章

  1. kali 安装输入法
  2. 利用被入侵的路由器迈入内网——抓包,利用路由器漏洞入侵,进行流量劫持...
  3. linux 硬链接和软链接
  4. 腾讯全球数字生态大会进入倒计时,原生技术专场开放云报名
  5. 虚拟机上使用ghost xp
  6. P2278-[HNOI2003]操作系统【堆】
  7. [转] 【领导必读】唐僧为什么可以领导孙悟空
  8. LeetCode 2130. 链表最大孪生和(链表快慢指针+反转链表+双指针)
  9. python工作环境创建_VirtualEnv 和Pip 构建Python的虚拟工作环境
  10. Java让数据库执行一条sql_java数据库编程——执行SQL 语句
  11. Spring的Aop授权不起作用,例如Shiro的注解(@RequiresRoles,@RequiresPermissions)
  12. 修复android下webView控件的总结
  13. VS Code右键运行Open with live Server弹出找不到应用程序
  14. 你可能不知道Flutter到底有多火
  15. hibernate.Session简介
  16. 测试用例模板及测试报告分析
  17. 2022考研资料每日更新(2021.07.28)
  18. 探索跨平台应用开发的最佳实践
  19. git rebase详解(图解+最简单示例,一次就懂)
  20. 冒死推荐一些值得推荐的 Java 练手项目

热门文章

  1. 从零开始搭建一个操作系统(1):搭建工作模式和环境
  2. Word文件乱码XML
  3. hx711c语言滤波函数,模数转换芯片hx711 c驱动程序
  4. 【PostgreSQL 14 安装错误】Problem running post-install step. Installation may not complete correctly...
  5. 阿里巴巴的大物流计划
  6. Gin使用GORM进行CURD2
  7. 可以将照片转换成素描效果的软件:Photo Sketch for Mac
  8. 放宽心,抓紧时间做想做的
  9. 携程App网络服务通道治理和性能优化
  10. 有限差分法在地震波二维正演模拟中的应用