自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 五分钟带你使用SmartUnit

Auto-Unit-Test-Case-Generator是一款工业级智能单元测试用例生成产品,致力于解决单测领域下用例的自动生成、执行、汰换、管理。使用Auto-Unit-Test-Case-Generator,能够在无人介入的情况下自动生成高覆盖率、高有效性的单元测试用例集,智能化提升质量水位、提高研发效能。目前在蚂蚁内部已经有超过1000个工程在使用Auto-Unit-Test-Case-Generator进行用例生成。

2022-05-06 15:57:33 4110

原创 浅谈JDK动态代理

前言:尽管动态代理看起来似乎有一定难度,但却必须拿下。因为Spring的事务控制依赖于AOP,AOP底层实现便是动态代理,环环相扣。到最后,还是看基本功。主要内容:一个小需求:给原有方法添加日志打印静态代理实现日志打印静态代理的问题一个小需求:给原有方法添加日志打印假设现在我们有一个类Calculator,代表一个计算器,它可以进行加减乘除操作。public class Calculator { //加 public int add(int a, int b) { int r

2022-05-06 14:07:49 260

原创 Spring 基础

核心IoC 容器:管理组件的生命周期和依赖传统:组件A依赖B,B依赖C,C依赖D和B…,如果要得到组件A就需要相应的一层层的初始化其他组件,其他组件之间可能存在相互依赖这种情况,这种层层依赖的管理如果人工管理就会非常麻烦,而容器能帮助你管理组件,让你要一个对象轻轻松松BeanFactory 接口Ioc 容器类通用工厂Spring 框架底层使用ApplicationContext 接口应用上下文开发者使用反射资源文件(配置文件)加载、访

2022-05-06 13:58:07 192

原创 什么是RDB和ROF? 一文了解Redis持久化

参考文档: https://redis.io/topics/persistence概述本文提供Redis持久化技术说明, 建议所有Redis用户阅读. 如果您想更深入了解Redis持久性原理机制和底层持久性保证, 请参考文章 揭秘Redis持久化Redis持久化Redis提供了不同级别的持久化选项:RDB模式, Redis数据库备份文件(Redis Database Backup)持久化方式, 提供周期性基于时间点的数据集快照备份, 比如每小时生成一个快照备份.AOF模式, 仅追加到文

2022-05-06 13:51:19 843

原创 MySql实战

第1讲 基础架构:一条SQL查询语句是如何执行的Server层,它主要做的是MySQL功能层面的事情;引擎层,负责存储相关的具体事宜。连接器负责跟客户端建立连接、获取权限、维持和管理连接。MySQL拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这条语句。之前执行过的语句及其结果可能会以key-value对的形式,被直接缓存在内存中查询缓存的失效非常频繁,只要有对一个表的更新,这个表上所有的查询缓存都会被清空。不建议使用优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句.

2022-05-06 13:44:26 759

原创 MySql事务隔离机制

事务(Transaction)事务是一个最小的不可再分的工作单元,事务只和DML语句有关,用来管理insert,update和delete语句,在 MySql 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。ACID事务隔离级别MVCC(多版本并发控制)数据库锁详解一、事务是必须满足4个条件(ACID)原子性(Atomicity): 一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事

2022-05-01 15:19:14 713

原创 nacos启动报错

nacos工作原理

2022-02-21 16:25:09 202

原创 Redis 唯快不破的秘密

根据官方数据,Redis 的 QPS 可以达到约 100000(每秒请求数)。基于内存实现高效的数据结构合理的数据编码单线程模型I/O 多路复用模型一、 完全基于内存实现Redis 是用 C 语言实现的,是基于内存的数据库,不论读写操作都是在内存上完成的。跟磁盘数据库相比,完全吊打磁盘的速度。对于磁盘数据库来说,首先要将数据通过 IO 操作读取到内存里。磁盘调用栈图:内存操作内存直接由 CPU 控制,也就是 CPU 内部集成的内存控制器,所以说内存是直接与 CPU 对接,享受

2022-02-21 16:19:48 172

原创 Spring Bean生命周期

Spring bean 的生命周期很容易理解。实例化 bean 时,可能需要执行一些初始化以使其进入可用 (Ready for Use)状态。类似地,当不再需要 bean 并将其从容器中移除时,可能需要进行一些清理,这就是它的生命周期。上一篇文章 面试还不知道BeanFactory和ApplicationContext的区别? 中说明了接口 Beanfactory 和 Applicationcontext 可以通过 T getBean(String name, Class requiredType

2022-02-17 17:35:46 328

原创 Hadoop相关组成介绍

Hadoop只是一套工具的总称,它包含三部分:HDFS,Yarn,MapReduce,功能分别是分布式文件存储、资源调度和计算。仓库管理中心(namenode)每次入库,需要管理中心安排自我复制多份放到不同的仓库,每次有人来取,需要去管理中心查询在哪些仓库并就近获取。(namenode管理元数据,负责HDFS上数据的读写)HDFS(分布式文件系统):分布式文件系统,将不同服务器的硬盘连接起来,在外面看起来就好像一块巨大的硬盘。然后构建与其上的MapReduce协同各个服务器运算。MapReduce

2022-02-09 18:08:08 3566

原创 软考中级软件设计师基础整理(3.数据结构)

数据结构一、逻辑结构1. 线性(1)队列和栈栈:先进后出队列:先进先出(2)线性表数组(顺序存储):内存连续分配,并且静态分配。时间复杂度(O)查找的次数:读操作:O(1)查询操作:O(n)插入操作:O(n)删除操作:O(n)链表(链式存储):(分为数据域和指针域)链表的内存不连续,是通过一个指向下一个元素地址的引用将链表中的所有元素串起来。时间复杂度(O)查找的次数:读操作:O(n),最好情况为1,最坏为n查询操作:O(n)插入操作:O(1)删除操作:

2022-01-10 15:42:37 356

原创 快速学会FRP搭建实现内网穿透

一.准备工具准备工作: 至少两台电脑,其中一台需要是有公网IP的服务器工具: frp, centOS二.下载工具Frp工具: https://github.com/fatedier/frp/releases官网: https://www.chuantou.org/官方使用文档:https://gofrp.org/docs/examples/ssh/Git使用示例:https://gitee.com/yijicai/frp#frp三.配置Frp 服务器端(公网IP) 和 客户端(电脑

2022-01-07 16:59:28 2199

原创 Spring的事务传播行为

REQUIRED(默认)REQUIRES_NEWSUPPORTS(支持)NOT_SUPPORTED(不支持)NEVERMANDATORY(强制性的)NESTED(嵌套)一、REQUIRED(当前存在事务就用当前,没有就创建新的事务)当前方法必须在Transaction中运行,支持当前已经存在的事务,如果还没有事务,就创建一个新事务。这是默认值,也即不进行该参数配置等于配置成REQUIRED。Class A { @Transactional(propagation=propa.

2022-01-06 19:26:06 696

原创 Linux系统安装Vue环境并启动服务

Linux安装nodejsnpm包管理器安装cnpm国内资源镜像安装vue-cli脚手架构建工具用vue-cli构建项目一、Linux安装nodejs安装环境本机系统:CentOS Linux release 7.9.2009 (Core)Node.js:v16.13.1(包含npm 8.1.2版本)(1)获取node.js安装包Node.js 安装包及源码下载地址为:https://nodejs.org/en/download/(2)Linux 上安装 Node.js.

2021-12-21 14:53:40 7458

原创 Springboot整合ElasticSearch和kibana(M1\MacOs+docker)

ElasticSearch和kibana安装(基于docker)Springboot整合ElasticSearch(demo测试)kibana配合操作查看Springboot整合ElasticSearch(整体)ElasticSearch和kibana安装(基于docker)一、创建Elasticsearch容器(1) 先拉取Elasticsearch镜像(需要带上版本号,默认无法拉取)docker pull elasticsearch:7.14.2(2)创建挂载目录并修改目录.

2021-11-25 15:48:39 2215

原创 软考中级软件设计师基础整理(2.操作系统)

操作系统学习步骤及分类总结:操作系统概述及作用特殊的操作系统线程的概念进程的状态信号量的取值范围PV操作相关概念信号量与PV操作前趋图与PV操作(待更新)死锁资源数计算(待更新)进程资源图(待更新)银行家算法(待更新)页式存储与页面置换(待更新)段式存储(待更新)段页式存储(待更新)磁盘管理(待更新)I/O管理软件(待更新)文件相关概念(待更新)树形目录结构(绝对路径与相对路径)(待更新)索引文件(待更新)位示图(待更新)一、操作系统概述及作用计算机系统(

2021-11-13 11:39:32 1295

原创 软考中级软件设计师基础整理(1.计算机组成与体系结构)

a

2021-11-07 18:58:55 2022 2

原创 深入理解Java类加载器

一、JVM三种预定义类型类加载器当JVM启动的时候,Java开始使用如下三种类型的类加载器:启动(Bootstrap)类加载器:启动类加载器是用本地代码实现的类加载器,它负责将JAVA_HOME/lib下面的核心类库或-Xbootclasspath选项指定的jar包等虚拟机识别的类库加载到内存中。由于启动类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用。具体可由启动类加载器加载到的路径可通过System.getProperty(“sun.boot.class.path”)查看。

2021-10-15 14:03:36 236

原创 五分钟带你了解!Java程序的编译过程

Java程序的编译过程Java 语言的「编译期」其实是一段「不确定」的操作过程。因为它可能是一个前端编译器(如 Javac)把 *.java 文件编译成 *.class 文件的过程;也可能是程序运行期的即时编译器(JIT 编译器,Just In Time Compiler)把字节码文件编译成机器码的过程;还可能是静态提前编译器(AOT 编译器,Ahead Of Time Compiler)直接把 *.java 文件编译成本地机器码的过程。将 *.java文件转为 *.class的过程称为编译器的前端

2021-09-26 15:11:58 3619

原创 面试还不知道BeanFactory和ApplicationContext的区别?

ApplicationContext(应用上下文):继承BeanFactory接口,简单来说就是Spring中的容器,是Spring的一个更高级的容器。可以用来获取容器中的各种bean组件,注册监听事件,加载资源文件等功能。BeanFactory:是Spring里面最低层的接口,提供了最简单的容器的功能,只提供了实例化对象和拿对象的功能;ApplicationContext内容:1. 国际化(MessageSource)<!- 资源国际化测试 ->< beans>&lt

2021-08-23 16:39:14 2208

原创 Java IO模型 详细讲解

Java IO 详细讲解1. Java IO概念无论是Socket的读写还是文件的读写,在Java层面的应用开发或者是linux系统底层开发,都属于输入input和输出output的处理,简称为IO读写。用户程序进行IO的读写,基本上会用到read&write两大系统调用。1.1 read&write(理解read和write前建议先了解内核缓冲区、进程缓冲区,可查看详细内容:用户进程缓冲区和内核缓冲区)read:把数据从内核缓冲区复制到进程缓冲区,并不是把数据直接从物理设备,读

2021-08-23 14:38:57 359

原创 十分钟带你了解!用户进程缓冲区和内核缓冲区

用户进程缓冲区和内核缓冲区1. 用户进程和系统进程用户进程:运行在操作系统上的进程,都运行在用户空间系统空间:操作系统运行的空间2. 内核态和用户态(kernel mode和user mode)(1)内核态可以访问系统资源,比如:ps:上面所说的这些系统资源,在用户进程中是无法被直接访问的,只能通过操作系统来访问,所以也把操作系统提供的这些功能成为:“系统调用”。比如下图,展示一个用户通过shell控制计算机所经过的数据流向:文件读写和终端控制,都是通过内核进行的。提供这些限制的基础

2021-08-19 16:48:46 3887 1

原创 python下载及安装教程

Python下载及安装教程参考:https://www.python.org/python安装不再赘述,注意安装时添加环境变量(classpath)。安装地址:https://jupyter.org/install使用国内镜像安装jupyterpip install -i https://pypi.tuna.tsinghua.edu.cn/simple jupyter启动jupyter开始编程之旅命令行启动:jupyter notebook小tips:当前文件夹会变成为项目目录快捷键地

2021-08-05 17:25:42 121

原创 JVM体系结构整理

JVM(java虚拟机)的体系结构:堆 : 分配内存空间, 保存类的实例(对象), 线程共享;方法区 : 保存类的模板信息, 静态成员变量(它属于类的属性), 线程共享;本地方法栈 : 存放对象引用, 一般来用来函数计算, 一个线程一个栈区, 线程私有;pc寄存器 : 寄存器在处理器内部, 由编译器分配, 且数量有限;堆区:存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对

2021-08-05 16:53:19 1229

空空如也

空空如也

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

TA关注的人

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