自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 问答 (4)
  • 收藏
  • 关注

原创 Java基础-Java之为什么重写equals方法之后一定要重写hashCode方法?

**牢记这一点:java里定义两个对象hashCode相等,equals不一定相等;equals相等的话,它hashcode一定相等我们拿HashSet举例:首先我们知道它是没有顺序,不重复的;那么如何判断新添加的值跟已有的值不重复,就需要先hashCode计算一下位置;然后位置上有值的话就用equals判断值是否相等,如果相等。就说明重复了,插不进来,返回flase;好,假设你不重写hashcode。假设set里面已经有"张三"了,现在再插入一个"张三",你hashcode不重写计算出来的位置

2020-12-23 14:32:23 374 5

原创 算法-LRU淘汰算法加跟LinkedHashMap源码

前言:刷leetcode的每日一题的时候碰到这题,然后百度了LRU,发现这类算法被称之为淘汰算法:FIFO:First In First Out,先进先出LRU:Least Recently Used,淘汰最近最久未使用LFU:Least Frequently Used,淘汰最近使用次数最少的正文:目前就只讨论LRU吧。leetcode上提到了这题的解法最好是希望我们自己能用HashMap+双向链表的解法手动造轮子去实现的。我最开始也是这么做的。写了一个下午,提交无数遍终于通过了之后发现官方题

2020-05-26 16:03:01 433

原创 在做这个项目期间,你有什么记忆深刻的事?

啊,这个啊,还记得项目第一期上线的那天晚上,我开始初始化数据库表,然后调好预估的启动参数。最后开始运行,搞几条可删除的订单跑整个流程。在这个期间,发生了我最难忘的事:手机屏幕亮了一下,女朋友发了一个微信过来:“我想了很久,我们还是分手吧”。那是在2021年10月23号晚23点38分48秒。够不够记忆深刻?...

2022-03-04 11:20:55 632 1

原创 MySQL-全局锁,表锁,行锁分析

今天我们来研究下数据库的锁,首先数据库锁的设计就是用来处理并发问题的,作为多用户共享的资源,出现并发访问的时候,数据库就要合理的控制访问资源的规则,锁????就是用来实现这些访问规则的重要数据结构!根据锁的范围大小,MySQL里面的锁一共可以分为全局锁,表级锁,行锁三大类。下面我们来一一介绍下这些锁:全局锁:全局锁就是对整个数据库实例加锁,加了全局锁之后我们的整个数据库就会变成只读的状态,其他线程的操作都会阻塞,比如数据的增删改,修改表结构,建表等语句。MySQL提供了一个加全局锁的命令就是Flu

2021-11-27 21:27:16 590

原创 MySQL-事务是怎么实现的?

*懒得多说废话: *ACID:原子性,一致性,隔离性,持久性原子性:表示事务是最小的执行单位,该操作不能再被拆分, 保证事务的要么全部成功,要么就不执行。一致性:表示数据库进行事务的操作后,由一个正确的状态到另一个正确的状态隔离性:并发访问数据库的时候,事务与事务之间的操作不会互相受影响,是独立的。持久性:在数据库进行事务的操作后,是能成功的永久的保存到磁盘里的,即使数据库发生故障也不影响;当数据库上有多个事务同时执行的时候就可能会出现脏读,不可重复读,幻读的问题脏读:当一个事务A正在访

2021-11-24 09:39:10 658

原创 MySQL-一条更新语句是怎么执行的

上一篇博客我们简单讲述了一条查询语句在MySQL中是怎么执行的,现在我们再来看看一条更新语句在MySQL中是怎么执行的(前提是InnoDB引擎):比如我们有这么一条sqlupdate user set age=age+1 where user_id = 1;首先确实的是他还是会走在我上一篇的查询语句运行的文章中那些流程,然后在走到执行器这一步的时候开始不一样了:在执行器先找引擎找到user_id = 1的这一行(如果这一行在内存中的话就直接返回这一行,内存中没有的话就要先从磁盘中读取到内存中再返

2021-11-20 09:39:23 602

原创 MySQL-一条查询语句是怎么执行的

MySQL基础架构图:总体上来说,MySQL是分为Server层跟存储引擎层两个部分的Server层:包含连接器,查询缓存,分析器,优化器,执行器等大多数核心的服务功能,以及所有的内置函数。存储引擎:主要负责数据的存储和提取,它其实是相当于一个插件来的。我们熟知的有InnoDB,MyISAM,Memory等存储引擎,在MySQL5.5.5之后默认的存储引擎就是InnoDB下面就让我们来跟随一条sql的内部执行过程,它在MySQL里都经历了什么概括:客户端先要与数据库进行连接,才能查

2021-11-14 12:02:04 928

原创 日常开发-如何写出优雅的代码?

该文章是我看完张建飞著作的《代码精进之路》这本书而做出的有关日常写代码的一些总结,这只是这本书的冰山一角,书里还有很多其他的一些思想,模型,设计让我们受益良多,推荐阅读大家说我们日常开发写代码,是写注释好还是不写注释好…​其实真正好的代码会让你看一遍下来会觉得完全没有写注释的必要。​好的代码就应该有一定的自明性,也就是不借助注释和文档,代码本身就能显性化地表达开发者的意图。那么如何达到这种程度呢,接下来可以从命名,规范,函数,设计原则这四个方面循序渐进的来阐述这些观点。​命名首先就是命名,一个.

2021-06-27 16:29:03 251

原创 Java基础-HashMap中containsKey方法的时间复杂度分析

现有场景是两个User对象的List,A中只有id跟用户名,B中有id跟登录时间,现在我们要把他们合成一个完成的User的List我们直接暴力的的解法就是两个for循环,然后判断id是否相等,相等就给A中复制对应的登录时间。这样这段代码时间复杂度就是O(n^2)然后一般的推荐做法就是我们将其中一个list转为Map,id为key,对象或者直接登录时间为value,然后只需要一遍for循环然后通过containsKey判断id,然后直接进行赋值,那么这样我们整体的时间复杂度就是O(n)了这里我们就来探究

2021-06-14 18:14:08 3567 1

原创 Spring-ApplicationContextAware接口的使用

多日前在项目中使用了ApplicationContextAware这个接口,用来初始化策略类供选择不同的短信平台发送短信。抱着不能copy进来能用就完事了,必须要去弄懂为什么这么用的心态,还是多方学习实践,总结出该文ApplicationContextAware接口的意义:首先,我们都知道ApplicationContext是spring的容器吧,我们那些bean对象啊都是放在这个容器的,那么aware的意思是“知道的,察觉的”,即该接口的字面意思就是通晓spring容器,说人话就是我可以通过实现这个

2021-06-14 16:44:56 1486 5

原创 Spring-Spring是如何解决循环依赖的(浅谈)

首先,稍微看过一点spring源码中有关bean的生命周期那部分的就有了解过:bean对象的实例化跟初始化这两个概念:实例化:创建当前的bean对象,但是还未对属性进行赋值。初始化:对bean对象的属性进行赋值了解完这两个概念之后:我们通过下面的例子来了解spring是怎么解决循环依赖这个问题的@Componentclass A { private B b; public void setB(B b){ this.b = b; } ...}@Componentclass B

2021-06-14 11:55:51 172

原创 日常开发-Maven-Maven老是下载不到依赖,看看是不是pom.xml中的profile没激活

在新公司入职后都会有装Maven的经历,一些公司会有自己的私服,所以在Maven的pom.xml文件里会有特定的配置但是今天这里Maven一直下载不到属于本公司私服里的包。然后再pom.xml文件的Settings标签里的最下里加上这个就可以了,nexus为你Maven的profiles标签下的profile的id,加上这个意思为激活id为nexus的profile配置,这样才能进行我在profile中配置的私服镜像下载!!! <activeProfiles> <act

2021-06-12 18:01:26 277

原创 Java基础-IO-实体类为什么最好需要序列化

什么是序列化?序列化可以保存我们实体类的状态,就是保存当前的类中属性的状态到硬盘中,保证下次或者在其他服务里可以接着使用这个类中的属性的时候,就是序列化。序列化注意的点?序列化只序列对象的属性,不管方法静态类成员不序列化,因为静态属性是属于类的,我们序列化是针对目前的对象状态transient关键字修饰的属性不序列化什么场景需要序列化?需要对对象进行IO操作持久化Mybatis开启了二级缓存且配置文件中readOnly属性默认为false在分布式系统中传递当前实体类对象· 需要对

2021-06-12 17:29:09 2718 1

原创 算法-刷题遇到链表类的题目什么思路?

就tm的用指针,一个不够 那就两个双指针,双指针不优雅?就快慢双指针。基本时间复杂度控制在O(n) 或者)O(m+n)(其实也就是O(n))

2020-10-27 11:35:18 223

原创 第三方对接-云存储-最新亚马逊Amazon云AWS S3服务JAVA上传图片,访问图片教程(API版本2.14.22)

最近的工作中,碰到了要把华为云obs替换成亚马逊的aws的工作,经过一周的翻阅文档,以及踩坑经历后,终于是完成了工作内容,并且腾出时间来总结一下awsS3这个服务的东东,话不多说,开始吧:既然是教程,就要有准备工作,以下内容默认你已经有了:1、亚马逊的aws账户2、创建了存储通(权限默认是阻止公众访问的)这里是引用官方文档创建存储通的指南3、拿到了access-key跟secret-key1⃣️ 开工:首先是上传一张图片到桶里:import software.amazon.awssdk

2020-09-22 23:26:57 5104 2

原创 计算机网络-三次握手的过程最形象解释

满足客户端A和服务端B建立起通讯的条件是:A和B都要知道彼此的发送和接受能力1. A发送一个信息,B接收到了:B就知道了自己的接收跟A的发送能力是正常的2.B返回一个响应消息,A接收到了:A就知道了自己的发送能力,接受能力,B的发送能力跟接收能力是正常的。但是此时B还不知道A的接收能力,跟自己的发送能力正常否,A是否有收到我的回应信息?3.A再根据B的响应信息做出反应,B接收到了:B就知道了...

2020-03-17 19:01:55 411

原创 日常开发-Git-git提交 忽略代码审查AntDesign引入的组件

其实就是忽略代码审查git commit --no-verify -m "注释"

2019-12-31 15:47:33 747

原创 未查询到您的引进业务,请确认办理引进业务的证件号码是否正确

毕业生申请租房补贴同步基本信息失败:提示“未查询到您的引进业务,请确认办理引进业务的证件号码是否正确”唉,我也是被这个问题困扰了一个月了,网上到处搜也没啥解决办法,最后自己到处找有关部门去问,终于解决了,找个地方贴上来(就这了,哈哈哈),供大家参考:我首先是10月31号在布吉派出所办好了入户手续,11月初也拿到身份证了,申请补贴同步基本信息的时候一直报这个问题:然后在广东省政务网上留言咨询深...

2019-12-09 12:33:24 3853 5

原创 算法-整数反转

给出一个整数,要让他每一位上的数进行反转例如:输入:123输出:321输入:-123输出:-321且要考虑溢出情况,比如输入的值在int的范围内,但是反转之后就溢出了就返回0;题解: // 初始化一个long类型的变量 long count = 0; // 逻辑运算 进行反转数据 while(x!=0){ ...

2019-10-28 21:00:24 374

原创 Java基础-StringBuilder类型和StringBuffer类型与String类型相互转换

将String类转换成StringBuilder类:String s = “某某某”;StringBuilder sb = new StringBuilder(s);将StringBuilder转换成String类(同StringBuffer类转换成String类)StringBuilder sb = new StringBuilder();String s = “”+sb;将Stri...

2019-10-18 21:34:05 1134

原创 设计模式-常用的23个设计模式和简述

引自书《Design Patterns》作者:Erich Gamma,Richard Helm,Ralph Johnson,John VlissidesAbstract Factory——抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。Adapter——适配器模式:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容二不能一起工作的那...

2019-10-17 22:23:17 298

原创 web安全-如何形象地理解JWT

我·

2019-09-28 16:07:06 398

原创 日常开发-Navicat-保存新增字段报错:1166 - Incorrect column name “*****“

1166 - Incorrect column name “*****”肯定是字段里面有空格了,删掉就可以了

2019-09-25 20:23:43 1806 1

空空如也

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

TA关注的人

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