- 博客(382)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 模仿大佬制作的宿舍门禁系统(一)
本人是软件学渣一枚,偶然的机会了解到arduino这种对我这种硬件小白友好的神器,决定自制一个宿舍门禁系统, 原理就是 通过RFID读卡器读取ic卡号,在arduino 板中对比即可 每个ic卡都有六位固定的卡号 可以直接用if语句比对即可如果比对成功让蜂鸣器响起,并且驱动舵机运动即可材料 rc522 arduino uno r3 蜂鸣器 18650电池两节 mg996r舵机(我...
2018-06-02 16:14:55
10099
11
原创 Netty入门笔记(二)NIO
direct memory acess直接内存拷贝。可以通过得到的 channel,完成业务处理。在java程序中,常用的零拷贝有。mmap(内存映射)
2023-02-06 14:30:37
1111
1
原创 Netty入门笔记(一)BIO、NIO、AIO
MappedByteBuffer 可让文件直接在内存(堆外内存)修改,操作系统不需要拷贝一次。file01.txt 中的数据读入到程序,并显示在控制台屏幕。
2023-01-12 17:40:35
667
原创 JVM学习笔记(四)垃圾收集算法
Stop-The-Worlf简称STW,是在执行垃圾收集算法时候,其他线程都被挂起(除垃圾收集帮助器),GC引起。
2022-10-07 22:28:37
317
原创 JVM学习笔记(三)堆
可达性分析法中不可达的对象,也并非是“非死不可”的,这时候它们暂时处于“缓刑阶段”,要真正宣告一个对象死亡,至少要经历两次标记过程。对象在新生代中Eden区分配。当Eden区没有足够的空间进行分配时,虚拟机将发起一次Minor。整堆收集(Full GC):收集整个Java堆和方法区。避免大对象分配内存时分配担保机制带来的复制效率降低。大量连续内存空间的对象:字符串,数组。存在问题:对象之间相互循环引用的问题。
2022-10-07 22:23:26
506
原创 #JVM学习笔记(二)HotSpot 虚拟机对象创建
虚拟机要对对象进行必要设置,例如这个对象是哪个类的实例,如何才能找到类的元数据信息,对象的哈希码,对象的GC分代年龄等信息,这些信息存在对象头中。虚拟机为新生对象分配内存,对象所需内存大小在类加载完成后确定,从堆中分配。保证对象的实例字段在 Java 代码中可以不赋初始值就直接使用。使用直接指针,对象改变,局部变量表的reference需要改变。使用句柄,对象改变,局部变量表的reference不用改变。虚拟机将分配到的内存空间初始化为零值。执行构造方法,赋初值。
2022-10-07 22:13:16
515
原创 js红宝书学习笔记(一)引用类型
ECMAScript中,引用类型是一种数据结构称之为对象定义,,引用对象不同于传统面向对象语言所支持的类和接口等基本结构。
2022-09-13 21:15:52
402
原创 SpringBoot学习笔记(五)IOC
ApplicationContext接口抽象实现。不强制配置存储类型,简单实现通用上下文功能。这个嘞使用模板方法模式,需要具体的子类实现抽象方法与普通BeanFactory相比,ApplicationContext应该检测其内部bean工厂中定义的特殊bean此类自动注册在上下文中定义bean的BeanFactoryPostProcessors,BeanPostProcessors和ApplicationListeners。......
2022-08-30 21:56:22
452
原创 SpringBoot学习笔记(四)WebMvc
自动配置类执行顺序,WebMvcAutoconfiguration执行顺序在ServletWebServerFactoryAutoConfiguration,dispatchServletAutoConfiguration之后SpringBoot会根据当前classpath下的类来决定装配哪些组件,启动哪种类型的Web容器WebMvc的配置包括消息转换器、视图解析器、处理器映射器、处理器适配器、静态资源映射配置、主页设置、应用图标设置等。...
2022-08-27 00:22:12
676
原创 SpringBoot学习笔记(三)自动装配
执行时机:在注解中其他逻辑被处理完毕之后(包括对)再执行DeferredImportSelector执行时机比ImprotSelector更晚中其AutoconfigurationImprotSelector 配合SpringFactoriseLoader可加载“”中配置@EnableAutoconfiguration对应的自动配置类deferredImportSelector的执行时机比ImprotSelector更晚。
2022-08-23 22:58:17
425
原创 SpringBoot学习笔记(二)自动装配
扫描跟包 AutoConfigurationPackages.get(this.beanFactory)扫描Mapper并注册到IOC容器的ImportBeandefinitionRegistrar,主启动类必须放在所有自定义组件的包的最外层,以保证Spring能扫描到他们。@EnableAutoConfiguration是一个组合注解。basePackage整合第三方技术。SpringBoot自动配置完全由。实现原理:注解标注了。
2022-08-22 23:18:11
844
原创 SpringBoot学习笔记(一)SpringBootApplication启动
SpringBootApplication是组合注解@ComponentScan默认扫描当前配置类所在包以及子包下的所有组件,exclude属性会将主启动类和自动配置类屏蔽掉可标注配置类,并没有对其做实质性扩展。
2022-08-20 16:26:52
606
原创 Mysql 45讲学习笔记(三十七)内部临时表
语句一边读数,一边直接得到结果,不需要额外内存来保存中间结果join_buffer是无序数据,sort_buffer是有序数组,临时表是二维表结构执行逻辑需要二维表特性,有限考虑使用临时表,union需要用唯一索引约束,group by需要额外字段累计存数。...
2022-08-14 17:32:52
320
原创 Mysql 45讲学习笔记(三十五)优化join语句
MRR提升性能核心:这条查询语句在索引a上做一个范围查询(多值查询)然后再根据主键索引查询数据,才能体现出顺序性的优势
2022-08-12 23:52:44
280
原创 Mysql 45讲学习笔记(三十四)join
两个表按各自条件过滤,过滤完成以后,计算join各自字段的总数量,数据量小的表叫小表,应该作为驱动表。join语句执行,驱动表是走全表扫描,被驱动表是走树搜索。表t2字段b上没有索引,因此去查t2的时候要全表扫描。...
2022-08-11 23:14:19
311
原创 Mysql 45讲学习笔记(二十九)判断数据库是否可用
控制InnoDB并发线程上线,一旦并发线程数达到这个值,新请求就会进入等待状态,直到线程退出。我们用select 1检测实例是否正常,但是其他查询表的语句依然可能会被阻塞,因而判定是正常的。更新语句,如果失败或者超时,就可以发起主备切换了,为什么还会有判定慢的问题呢?update命令没有超时,就得到"系统正常"结论。heath_check,里面只放一行数据。...
2022-08-03 22:00:00
531
原创 Mysql 45讲学习笔记(二十八)读写分离
trx1 事务更新完成后,马上执行 show master status 得到当前主库执行到的 File 和 Position;表示命令执行开始,到应用file和pos的binlog位置,执行了多少事务。在从库上执行 select master_pos_wait(File, Position, 1);如果返回值是 >=0 的正整数,则在这个从库执行查询语句;选定一个从库执行查询语句;否则,到主库执行查询语句。...
2022-08-03 13:11:49
265
原创 Mysql 45讲学习笔记(二十七)主库出问题了
T时刻,主库执行完成一个insert语句插入一行数据R,并将binlog传给备份库和从库,传完主库就掉电了。每次碰到错误就停下来,执行一次跳过命令,直到不再出现停下的情况。设置为“1032,1062”从库B的同步线程会报告。,有两种常用的方法。...
2022-08-01 16:58:15
250
原创 Mysql 45讲学习笔记(二十三)MYSQL怎么保证数据不丢
把binlogcache写到binlog文件binlogcache分配了一片内存每个线程一个binlog_cache_size用于控制单个线程内binlogcache所占内存的大小超过了这个参数规定的大小,就要暂存到磁盘。
2022-07-28 19:56:21
283
原创 Mysql 45讲学习笔记(十八)SQL语句逻辑相同,性能差距巨大
如果输入的tradeid字段类型是varchar(32) 输入的参数类型却是整型,就需要做类型转换三.隐式字符编码转换 连接过程中,被驱动表的索引字段加函数操作,直接导致被驱动表做全表扫描的原因 对索引字段做函数操作,可能会破坏索引值的有序性,因此优化器决定放弃走树索引功能,而走主键索引...
2022-07-13 20:48:58
340
原创 Mysql 45讲学习笔记(十五)“order by“怎么工作
初始化sort_buffer,确定放入name,city,age三个字段 从索引city找到第一个满足city=‘杭州’条件的主键id, 到主键id索引取出整行,取name,city,age三个字段的值,存入sort_buffer中; 从索引city取下一个记录的主键id; 重复步骤3,4直到city的值不满足查询条件为止,对应的主键id 对sort_buffer中的数据按照字段那么做快速排序 按照排序结果取前1000行返回客户端。这个过程称为全字段排序如果内存满了怎么办? so
2022-07-13 00:32:08
180
原创 Mysql 45讲学习笔记(十三)表数据删掉一半,表文件大小不变
表数既可以存在共享表空间里,也可以单独的文件,这个行为是参数innodb_file_per_table控制的;MySQL5.6.6版本开始,他的默认值就是ON
2022-06-30 23:18:26
331
原创 Mysql 45讲学习笔记(十四)count(*)
不同MySQL引擎,count(*)有不同的实现方式如果加了where条件,MyISAM表也是不能返回这么快即使是在同一时刻的多个查询,由于多版本并发控制(MVVC),InnoDB表应该返回多少行也不确定。保证逻辑正确的前提下,尽量减少扫描的数据量,这是数据库系统设计 的通用法则之一show table status命令显示的行数也不能直接使用。在并发系统里面,我们是无法精确控制不同线程的执行时刻,无论是先写缓存后写数据库还是先写数据库后写缓存都很不能保证绝对精准。count(1) 执行得要比 count(
2022-06-29 23:31:22
297
原创 Mysql 45讲学习笔记(十二)MySQL会“抖”一下
一条修改SQL语句,正常时候特别快,但是偶尔特别慢,场景很难复现,持续时间短。当内存写满,不得不同步至内存时候,就会比较缓慢 flush就是内存的数据写入磁盘中InnoDB用缓存池(buffer pool)管理内存,缓存池中的内存页有三种状态:InnoDB策略时尽量使用内存,对于一个长时间运行的库来说,未被使用 的页面很少刷脏页是 常态,但是以下会明显影响性能:InnoDB 所在主机的 IO 能力,这样 InnoDB 才能知道需要全力刷脏页的时候,可以刷多快。 innodb_io_capacity
2022-06-26 20:39:08
421
原创 Mysql 45讲学习笔记(十一)字符串字段怎么加索引
使用前缀索引,定义好长度,可以做到节省空间,不额外增加太多的查询成本。例子:统计不同字段的不同长度下的区分度三.前缀索引对覆盖索引的影响 如果是全量字符串的话,支持索引覆盖的话就不会回表。 如果只是一部分字符串的话,系统还是要根据id索引回表看一下,因为系统不确定前缀索引定义是否截断了完整信息。索引越长,占用的磁盘空间越大,相同数据页能放下的索引值越小,搜索效率越低。...
2022-06-25 20:33:21
423
原创 Mysql 45讲学习笔记(十)force index
选择索引是优化器的工作优化器选择索引的目的:优化器还会结合是否使用临时表,是否排序等因素。show index方法 查看索引基数大多数时候优化器都能找到正确的索引,但是偶尔你还是会碰到上面情况:...
2022-06-24 22:24:07
1760
原创 Mysql 45讲学习笔记(七)行锁
比如事务A更新了一行,这时候事务B也要更新同一行,则必须等事务A的操作完成后才能进行更新。如果你的事务中需要锁多个杭,就要把最可能造成锁冲突,最可能影响并发读的锁尽量往后放。实例: 假设你实现一个电影票在线交易业务顾客A要在影院B购买电影票这个业务需要以下操作: 如果这个影院做活动,可以低价预售一年内所有的电影票,而且这个活动只做一天。于是活动时间开始时候,你的Mysql就挂了,你登上服务器一看,CPU消耗接近百分之100但整个数据库每秒就执行不到100个事务,这是什么原因呢?
2022-06-23 21:34:31
483
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人