欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 计算机基础知识12.30

计算机基础知识12.30

2025/2/25 13:08:06 来源:https://blog.csdn.net/m0_68177611/article/details/144830636  浏览:    关键词:计算机基础知识12.30

varchar(n)能存储多少个汉字

在字符集为UTF-8的情况下,若mysql version<4.1 varchar以字节为单位存储,对于varchar(255)共存放约85个汉字。若mysql version>=4.1 varchar以字符为单位存储,则varchar(255)可以存放255个汉字

三色标记算法思想

将对象的颜色分为了黑,灰,白三种颜色

白色:该对象没有被标记过(对象垃圾)

灰色:该对象已经被标记过了,但该对象下的属性没有全被标记完(GC需要从此对象中去寻找垃圾)

黑色:该对象已经被标记过了,且该对象下的属性也全部都被标记过了(程序所需要的对象)

定义一个springboot-starter

在META-INF/spring.factories包下添加自动配置的元数据

创建一个配置类,该类需要@Configuration和@EnableConfigurationProperties注解,启用定义的配置属性类

在applicaton.yml中配置starter里定义的属性

SPI机制:接口存在于调用方这边,由接口调用方确定接口规则,然后由不同的厂商根据这个规则对这个接口进行实现,从而提供服务

启动类加载器:负责加载Java的核心库,是JVM的一部分,启动类加载器无法被java程序直接引用

扩展类加载器:Java语言实现的,继承自ClassLoader类,负责加载Java扩展目录下的Jar包和类库

应用程序类加载器:java语言实现的,负责加载用户类路径上的指定类库,是我们平时编写java程序时默认使用的类加载器

自定义类加载器:开发者可以根据需求定制类的加载方式,比如从网络加载class ,数据库的加载类

synchronized 锁范围

锁住实例对象 public synchronized void method(){}

锁住类对象  public static synchronized void method(){}

锁住类的实例对象  synchronized(this){}

锁住该类的类对象  synchronized(SynchronizedDemo.class){}

==和equals()的区别

对于基本数据来说,==比较的是值

对于引用数据类型来说,==比较的是对象的内存地址

equals不能判断基本数据类型的变量,只能判断两个对象是否相等

Executors工具类默认线程池

FixedThreadPool:固定线程数量的线程池,该线程池中的线程数量始终不变,当有一个新的任务提交时,线程池中若有空闲线程,则立即执行,若没有,则新的任务会被暂存在一个任务队列中,待有线程空闲时,便处理在任务队列中的任务

SingleThreadPool:只有一个线程的线程池,若多余一个任务被提交到该线程池,任务会被保存到一个任务队列中,待线程空闲时,按先入先出的顺序执行队列中的任务

CachedThreadPool:可根据实际情况调整线程数量的线程池,线程池的线程数量不确定,但若有空闲线程可以复用,则会优先使用可复用的线程,若没有线程均在工作,又有新的任务提交,则会创建新的线程处理任务。所有线程在当前任务执行完毕后,将返回线程池进行复用

ScheduledThreadPool:给定的延迟后运行任务或定期执行任务的线程池

字节流以字节为单位进行数据传输的,它可以处理任何类型的数据,包括二进制数据,直接处理二进制文件,图像,音频等非文本数据,字符流则更注重对文本的处理,包括字符的读取,写入和转换等

事务失效场景

try-catch异常捕获处理

抛出检查异常(rollback=exception.class)

非public方法的异常

进程和线程的区别

进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位

每个进程都有独立的代码和数据空间,程序之间的切换会有较大的开销,线程可以看作轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小

进程中某个线程如果崩溃了,可能会导致整个进程都崩溃,而进程中的子进程崩溃,并不会影响其他进程

系统在运行的时候会为每个进程分配不同的内存空间,而对线程而言,除了CPU外,系统不会为线程分配内存,线程组之间共享资源

垃圾回收算法:标记-清除  复制算法 标记-整理 分代回收

MVCC(多版本并发控制)  

记录中的隐藏字段

DB_TRX_ID:最近修改事务ID,记录插入这条记录或最后一次修改该记录的事务ID

DB_ROLL_PTR:回滚指针,指向这条记录的上一个版本,用于配合undo log,指向上一个版本

DB_ROW_ID:隐藏主键,如果表结构没有指定主键,将会生成该隐藏字段

undo log版本链

ReadView

MyBatis缓存

一级缓存:基于PerpetualCache的HashMap本地缓存,其存储作用域为Session,当Session进行flush或close之后,该Session中的所有Cache就将清空,默认打开一级缓存

二级缓存:是基于namespace和Mapper的作用域起作用的,不是依赖于SQL session,默认也是采用PerpetualCache,HashMap存储。需要单独开启。一个是核心配置,一个是Mapper映射文件

CPU飙高排查

使用top命令 查看进程 CPU占用

使用 ps 打印某个进程中各个线程的cpu占用

使用jstack 命令,打印各个线程

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词