博客小周
码龄5年
关注
提问 私信
  • 博客:61,323
    社区:2
    61,325
    总访问量
  • 73
    原创
  • 1,776,091
    排名
  • 7
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:陕西省
  • 加入CSDN时间: 2020-05-14
博客简介:

weixin_47796247的博客

查看详细资料
个人成就
  • 获得27次点赞
  • 内容获得4次评论
  • 获得92次收藏
创作历程
  • 1篇
    2023年
  • 66篇
    2022年
  • 9篇
    2021年
成就勋章
TA的专栏
  • 一起学习啦
    9篇
创作活动更多

新星杯·14天创作挑战营·第9期

这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你们参加为期14天的创作挑战赛! 注: 1、参赛者可以进入活动群进行交流、分享创作心得,互相鼓励与支持(开卷),答疑及活动群请见 https://bbs.csdn.net/topics/619626357 2、文章质量分查询:https://www.csdn.net/qc

475人参与 去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

正则表达式心得

`(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+`:匹配一个或多个以"."开头,后面跟着小写字母、大写字母、数字和"-"字符的字符串。- `[-a-zA-Z0-9]{0,62}`:匹配0到62个小写字母、大写字母、数字和"-"字符。- `[-a-zA-Z0-9]`:匹配小写字母、大写字母、数字和"-"字符。- `[a-zA-Z0-9]`:匹配小写字母、大写字母和数字。这个正则表达式规则用于匹配域名。这个正则表达式规则主要用于验证域名的格式是否正确。`:匹配0或1个"."字符。
原创
发布博客 2023.07.18 ·
248 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mysql中MVCC--多版本并发控制

只有InnoDB引擎支持mvcc,mysql默认支持可重复读,就是依赖mvcc实现的。多版本并发控制,主要是为了提高数据库的并发性能,在多事务、高并发的情况下数据不会错乱。同一行数据平时发生读写请求时,会上锁阻塞住。但mvcc用更好的方式去处理读一写请求,做到在发生读-写请求冲突时 不用加锁。不会有锁竞争这个读是指的快照读,就是单纯的selectMVCC保障写者写操作造成的变化在写操作完成之前(或者数据库事务提交之前)对于其他的读者来说是不可见的。当前读,当前读是一种加锁操作,是悲观锁。
原创
发布博客 2022.12.12 ·
592 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MyISAM 与 InnoDB区别对比

InnoDB是聚簇索引,聚簇索引的文件存放在主键索引的叶子节点上,因此InnoDB必须要有主键,通过主键索引效率 很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索弓|也都会很大。而MyISAM用一个变量保存了整个表的行数,执行.上述语句时只需要读出该变量即可,速度很快;MyISAM是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。行级锁操作只锁一行,不对其它行有影响,合适高并发。
原创
发布博客 2022.12.12 ·
626 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java和数据库交互

java通过socket把http协议发送网卡,网卡通过对3306端口的监听收到来自Java进程的http请求(数据库也是http协议),通过3306端口把请求发送给了msql,mysql解析http请求得到sql字符串,然后mysql去磁盘中查询对应的表文件,把表文件或者索引加载到内存中,mysql对表文件中的信息进行筛选,最终得到查询结果,mysql根据建立的连接,然后再通过socket传输到端口,通过3306端口将处理结果返回给Java进程。
原创
发布博客 2022.12.12 ·
926 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mysql锁的机制

根据属性分为共享锁和排他锁按照锁的粒度分类可以把数据库锁分为表级锁和行级锁。
原创
发布博客 2022.12.11 ·
494 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

mysql关键字执行顺序

from->on->join->where->group by(开始使用select中的别名,后面的语句中都可以使用别名)->sum、count、max、avg->having->select->distinct->order by->limit。可选字段:distinct、join、on、where、group by、having、sum、count、max、avg、order by、limit。必须字段:select、from。
原创
发布博客 2022.12.11 ·
861 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

mybatis中#和$的区别

是占位符,预编译处理;MyBatis会创建预编译的SQL语句,然后在执行SQL时MyBatis会为预编译SQL中的占位符(?)赋值,预编译的SQL语句执行效率高。传入参数是以字符串传入,会将SQL中的#{}替换为?号,调用PreparedStatement的set方法来赋值。${}是拼接符, 字符串替换,没有预编译处理。可以有效的防止SQL注入,提高系统安全性。也有适用的情况,比如模糊查询可以使用。${} 对应的变量不会加上单引号”${} 不能防止SQL注入。对应的变量自动加上单引号。
原创
发布博客 2022.12.11 ·
116 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mysql分库分表

阿里提供的开发手册当中,建议: -个表的数据量超过500W或者数据文件超过2G,就要考虑分库分表了。
原创
发布博客 2022.12.11 ·
590 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mysql慢查询优化

通过慢查询定位一些查询比较慢的sq|语询, 在使用explain 具排查该sql语句索引是否有生效 ●EXPLAIN select * from mayikt_ user where id=1;●possible_ keys:表示查询时, 可能使用的索引。●Extra:执行情况的描述和说明询,又是上述三种复杂查询中。●select_ type:表示查询的类型。●rows:扫描出的行数(估算的行数)●key_ _len:索弓字段的长度。●type:表示表的连接类型。●key:表示实际使用的索引。
原创
发布博客 2022.12.11 ·
370 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mysql索引失效

某些查询的时候没有办法使用索引 比如下面的例子 ,因为没有办法使用数据结构 ,索引一般是hash或者btree结构,比如我们一般用某种数据结构二分法查询一个值,可以查到。但是我们查询一个结果,用二分法要求查询不属于某些值的,就没有办法使用数据结构,就使用不了索引。所以核心就是判断一个sql语句能不能通过数据结构来查询出结果,能查询出来就是能够使用索引,不能查询出来就是不能使用索引。,该索引失效,只有当or左右查询字段均为索引时,才会生效。,导致不能命中索引,引发失效。,导致不能命中索引,引发失效。
原创
发布博客 2022.12.11 ·
4046 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

mysql索引中最左前缀原则

如果用(B,C)这样的数据来检索的话,就会找不到A使得索引失效。如果使用(A,C)这样的数据来检索的话,就会先找到所有A的值然后匹配C,此时联合索引是失效的。由于最左前缀原则,在创建联合索引时,索引字段的顺序需要考虑字段值去重之后的个数,较多的放前面。因为辅助聚簇索引是把索引按照组合索引的顺序存到一起的,如果没有最左边一个,那么将定位不到对应的叶子节点。(a,b,c是索引) where后面的条件有没有给a对应的条件。最先匹配最左边的索引,匹配上就继续,如果匹配不上就检索不到。
原创
发布博客 2022.12.11 ·
1130 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

mysql读写分离操作

依赖于binlog日志 ,是个二进制的文件,插入、修改操作的时候,会写入到binlog文件,然后启动一个log dump异步线程,这个异步线程会把binlog复制到从库上去,从节点/O线程接收binlog内容,,然后写入relay log的日志(中继日志),然后从库会启动一个sql线程去执行这个中继日志里面的inset和update,然后从库就同步了,分成几台数据库服务器,每台都一样,每个数据库的存的数据都一样,同时存几份,通过配置的形式,要么都存失败,要么都存成功。经典的数据库拆分方案,
原创
发布博客 2022.12.11 ·
464 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mysql的索引类型

1.添加PRIMARY KEY(主键索引)4.添加FULLTEXT(全文索引)2.添加UNIQUE(唯一索引)3.添加INDEX(普通索引)
原创
发布博客 2022.12.11 ·
439 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

浅谈mysql索引

在内存中把索引文件恢复成一个平衡树结构,树结构会给索引文件里面的数据排序变有序,然后通过树结构查找到我们需要的数据,然后把数据所在的行地址拿出来直接去磁盘表文件上定位到,在没有索引的时候我们需要把整个表加载到内存中,有了索引之后我们只需要从磁盘中把建立好的索引加载到内存中,然后根据索引文件定位到我们需要的数据,这样大大减少的内存的消耗。创建索引的时候会把 这个字段的数据生成索引文件,索引文件包括:索引列数据和行地址,然后调用时会加载到内存当中,:需要生成索引文件,占据空间,
原创
发布博客 2022.12.11 ·
408 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

包装类的128陷阱

128陷阱 128陷阱是包装器类之间表示的一个陷阱,两个Integer类型的包装类,他们的值,无论是否在-128~127之间,两个对象都是相等的,但是在包装器类中的两个对象,在-128~127范围内是相等的,超出这个范围,比较相等就会返回false(底层是一个cache数组,范围-128-127,如果超过了就会创建新的数组,比较地址不同)。自动装箱:是将基本类型转换成包装器类型(equals);自动拆箱:是将包装器类型转换成基本类型(==)
原创
发布博客 2022.12.04 ·
337 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SpringBoot核心注解

全局配置的属性如:server.port等,通过@ConfigurationProperties注解,绑定到对应的XxxxProperties bean,通过这个 bean 获取相应的属性(serverProperties.getPort())。注解相当于@ResponseBody+@Controller合在一起的作用,RestController使用的效果是将方法返回的对象直接在浏览器上展示成json格式.开启自动扫描符合条件的bean(添加了@Controller、@Service等注解)。
原创
发布博客 2022.11.16 ·
988 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

工厂设计模式

比如苹果有创建苹果的工厂,各自有各自的工厂,免除了简单工厂模式的每次新增就会修改工厂代码,各自负责自己的工厂创建,每个工厂决定到底生产哪些产品。工厂的工厂:一个大工厂,里面有具体的不同产品的小工厂,每个生成的工厂都能按照简单工厂模式提供对象,他们自己决定生产哪一些产品。当时当想给添加别的汽车品牌的时候,就需要添加代码,违反开闭原则,需要修改工厂的代码。缺点:当我们新增类的时候,需要去修改工厂配置,增加创建对象的分支,每次都要去修改。,工厂负责创建对象,程序员只需要去调用就行。优点:创建对象分离开,
原创
发布博客 2022.11.16 ·
101 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java建造者模式

(1)建造模式是将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造者和建造工具,对于内部是如何建造成成品的,调用者无需关心,良好的封装性是建造者模式的优点之一。(2)需要生产的产品的属性相互依赖,这些属性的赋值顺序比较重要时(因为在调用ConcreteBuilder的赋值方法时是有先后顺序的)。这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建,一般由子类具体实现。,在指导者中不涉及具体产品的信息,只负责保证对象各部分完整创建或按某种顺序创建。
原创
发布博客 2022.11.16 ·
736 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java单例模式

如果没有加volatile,不能防止指令重排序,可能对象创建了,但是句柄的地址没有传给属性,判断时还是空,这样就需要继续走第一层if。我们可以选择不给getInstance方法加synchronize锁,而是在这个方法里面去进行加synchronize锁,因为方法锁的范围太广,其他线程阻塞的范围就大,时间就长。,当创建了100个线程,调用getInstance方法时,可能会有多个线程同时看到没有new,就会执行多次new,调用多次构造方法(也就是会进行多次初始化):一个全局使用的类频繁地创建与销毁。
原创
发布博客 2022.11.16 ·
1465 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

设计模式6大原则

又叫做最少知道原则,就是说一个对象应当对其它对象有尽可能少的了解,类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大,所以一个对象应该对其他对象保持最少的了解,也就是说,对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的public方法,不对外泄漏任何信息,迪米特法则初衷在于降低类之间的耦合。举个栗子:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。
转载
发布博客 2022.11.16 ·
216 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏
加载更多