- 博客(53)
- 收藏
- 关注
原创 汇编语言-div指令溢出问题
8086CPU中被除数保存在ax(16位)或ax和dx(32位)中,如果被除数为16位,进行除法运算时al保存商,ah保存余数。16位的数据除8位的数据时,最终得到的商可能大于8位,al保存不下会产生除法溢出。解释:898762使用16位存储不下,只能使用32位进行存储,11可以使用16位存储,他们的计算结果大于16位,会产生除法溢出。上述例子中可以将810存储到一个寄存器,705存储到一个寄存器,然后使用单独的一个寄存器储存余数,就能解决产生溢出的问题。5.将余数保存到cx,将高位保存到dx。
2023-10-29 20:10:30
867
原创 MySQL-逻辑架构
MySQL属于典型的C/S架构,客户端进程发送请求,服务端进程处理请求。处理的基本流程如下。MySQL的逻辑架构如下:Connectors:与服务端程序连接的程序。Manager Services & Utilties:基础服务组件;Connection Pool:提供多个客户端和服务端交互的线程并进行管理;SQL Interface:接收SQL指令,返回查询结果;Parser:语法分析,语义分析,生成语法树;Optimizer:核心组件,对SQL进行优化;
2023-10-19 00:52:00
753
原创 TCP&UDP
UDP(User Datagram Protocol)是一种无连接的传输层协议,而是简单地将数据报文从一个主机发送到另一个主机。UDP协议是一种轻量级的协议.无连接:UDP是一种无连接的协议,发送数据之前不需要建立连接,也不需要维护连接状态,因此传输效率高。不可靠:UDP不提供可靠的数据传输保证,发送数据时不会进行数据的重传和校验,数据包有可能在传输过程中丢失或者重复。面向报文:UDP将应用程序传递给它的数据报文看作一个整体进行处理,不会进行数据分段和重组操作,因此能够保证数据的完整性。
2023-10-11 22:34:46
1364
原创 Redis-集群
主从复制和哨兵只能在主节点进行写数据,从节点读取数据,因此本质上,是进行了读写的分离,每个节点都保存了所有的数据,并不能实现一个很好的分布式效果。
2023-10-10 17:45:06
472
原创 MySQL-锁
事务不能同时具有行共享锁和排他锁,如果事务想要获取排他锁,前提是行没有共享锁和排他锁。而共享锁,只要行没有排他锁都能获取到。注意:当一个事务尝试获取一个已经被其他事务持有的排他锁时,它会进入等待状态,直到该锁被释放为止。在MySQL 8.0版本中,新增了NOWAIT和SKIP LOCKED两种语法,可以用来控制事务在获取不到锁时的行为。update操作过程:分为两种情况,有更改主键值和未修改主键值。修改主键值:在原记录进行一次delete操作,再来一次insert操作。
2023-10-09 23:45:12
853
原创 MySQL-事务
举例:想象炒菜的过程。我相信缺少任何任何一个步骤,都不完美!!!可以将炒菜的过程理解为一个事务,是一组操作的集合,而MySQL中的事务也是如此。但在MySQL中定义了事务的一些特性。只有符合这些特征才能称之为MySQL事务,它们保证了数据库在并发环境下的正确性和可靠性。
2023-10-08 19:32:29
200
原创 MySQL-MVCC(Multi-Version Concurrency Control)
MVCC只在RC(READ COMMITED)和RR(READ REPEATABLE )中生效,因为READ UNCOMMITED读取的永远都是最新数据,SERIALIZABLE会对读取的行加锁,不需要解决并发和数据一致性问题。参考书籍:数据一致性问题。参考书籍:[2]MySQL技术内幕[M].,:391.
2023-10-04 00:59:39
1976
原创 Spring事务和事务传播机制
指的是一系列的操作或步骤,这些操作要么全部完成、要么全部不完成。对于数据库而言、一系列操作数据库的SQL语句就是一个事务,这些SQL语句只能同时执行成功或失败。事务的特性:ACID没有事务的隔离性可能会有什么问题?
2023-09-28 17:09:07
180
原创 软件测试-Web自动化测试
自动测试指软件测试的自动化,根据预设的要求,采用一些工具来帮我们完成一些频繁操作的事情,然后评估运行结果。随着软件的更新迭代版本越来越多,仅仅通过人工测试回归所有的版本肯定是不现实的,因此自动化可以提高我们的测试效率。
2023-09-27 22:58:41
392
原创 软件测试-测试用例
为了实施测试而向被测系统提供的一组集合。这组集合包括测试环境、操作步骤、测试数据、预期结果等要素。举例:对一个垃圾桶设计测试用例。
2023-09-26 20:37:16
526
原创 AOP(Aspect Oriented Programming)
Slf4j//生成sessionlog.info("用户session生成成功 id:"+session.getId());return "登录成功";//连接点//验证登录~~~使用AOPlog.info("获取用户详细成功");return "获取用户详细信息成功";/*** 定义切面,登录拦截*/@Component@Aspect@Slf4j/*** @Pointcut:定义切点* 对UserController使用规则。
2023-09-25 12:39:04
145
原创 MyBatis
Data@Mapper@Mapper:指示MyBatis框架为该接口创建代理对象,从而将该接口的方法映射到数据库操作。@Param:表示将传入的参数uid,插入到查询语句中#{id}占位符中。<select>元素用于定义查询操作,它支持以下属性:id:必选属性,用于唯一标识该元素。parameterType:可选属性,指定传入参数的类型。这是在MyBatis 3.4.0版本之后被弃用的,推荐在接口方法上使用@Param注解。resultType:可选属性,指定查询结果的类型。
2023-09-24 11:58:51
120
原创 SpringMVC
MVC(Model View Controller):是软件工程中的一种软件架构模式。分别为为模型、视图、控制器。各个部分实现不同的功能,方便开发。视图:负责界面的显示控制器:对请求参数处理和决定使用哪一个模型。模型:执行业务逻辑和获取数据。MVC是一种思想、Spring MVC是具体的实现,继承了Servlet API的Web框架。Spring功能的具体使用,在SpringMVC中得到了很大的体现,大部分Java项目都是SpringMVC项目,因此也是学习SpringMVC的原因。
2023-09-23 15:19:46
195
原创 SpringBoot
/获取日志对象(使用spring boot内置的日志框架Slf4j)//使用日志对象提供的方法进行日志打印,默认级别是info//微量级别最低//调试级别//普通打印信息,默认级别//警告级别//错误级别不同的日志框架,实际的实现都不尽相同,日志门面(logging facade)是一种用于封装和统一处理不同底层日志库的接口和工具。
2023-09-22 13:20:21
373
原创 软件测试-BUG
软件版本:Google Chrome浏览器(具体版本号)发现问题环境:在Windows 10操作系统上使用Google Chrome浏览器,在xxx网址登录页面。发现问题步骤:a. 打开Google Chrome浏览器并访问xxx网址登录页面。b. 在该网站上填写登录表单,包括用户名和密码等输入框。c. 在输入框中输入了用户名或密码但没输入完整,发现光标会自动跳到下一个输入框。d. 手动的将光标调回到上一个输入框进行再次输入。
2023-09-21 01:36:26
524
原创 软件测试-基本概念
分为两大类,分别是用户需求和软件需求。用户需求:由用户提出的需求,比如用户要求制作一个点餐小程序等。该需求一般比较简略。自研产品的话,一般由产品经理提出需求。例如:用户对点餐小程序提出需求软件需求/功能需求:将用户需求转化为软件需求,详细描述开发人员需要实现的功能。注意:用户需求不等于软件需求。用户需求不一定合理、需要对用户需求进行提取和分析。软件需求是我们测试人员进行测试工作的基本依据,而用户需求不能。
2023-09-20 02:01:38
336
原创 @Autowired、@Resource、@Qualifier
先看看@Autowired和@Resource的定义。功能:它们都是用于实现对象注入的。使用范围:@Autowired可以用于构造器、方法、参数、字段、注解类型上。@Resourse用于字段、方法、各种类型上。因此@Resourse不能用于构造器注入。参数信息:@Autowired不能注入指定名字的bean(首先会根据类名进行匹配,匹配不到根据变量名进行匹配),@Resource可以指定bean的名字注入。注解出处:@Autowired出自Spring、@Resource出自JDK.
2023-09-15 02:07:36
208
原创 IOC容器
IOC(Inversion of Control)一般译为控制反转,1996年,Michael Mattson在一篇有关探讨面向对象框架的文章中,首次提出IOC这个概念,是面向对象程序设计的一种编程思想。控制反转就是将对象控制权的转移,从程序代码本身反转到了外部容器(在代码中new对象->容器帮我们创建对象)。把对象的创建、初始化、销毁等工作交给容器来做。由容器控制对象的生命周期。为什么要IOC?在面向对象程序设计系统中,底层通过对象之间的相互协调配合实现系统的业务逻辑。
2023-09-13 21:02:39
177
原创 设计模式-原型模式
修改方案:在原来的基础上进行拷贝,在进行部分的修改。(具体采用深拷贝和浅拷贝根据具体的业务场景进行选择)就像我们写一段文本时,前面已经写过一段极其相似的文本,我们可以直接拷贝,然后进行修改。提高了写文本的效率。原型模式应用场景:创建一个对象比较复杂,当前存在一个和需要创建的对象极其相似,我们就可以采用原型模式,在原来的对象上进行一个修改。
2023-09-06 08:59:12
384
翻译 设计模式-建造者模式
解决这些问题,我们可以提供一个具有必要参数的构造方法,然后用不同的setter来设置可选参数。但是这种方法的问题是,会造成对象不一致的问题,Builder模式解决了大量可选参数和不一致状态的问题,它提供了一种逐步构建对象的方法,并提供了一个实际返回最终object的方法。翻译于:https://www.digitalocean.com/community/tutorials/builder-design-pattern-in-java。主要解决在工厂模式和抽象工厂模式中创建的对象包含太多的参数问题。
2023-09-05 15:16:16
65
原创 设计模式-单例模式
在实际开发的场景中,部分对象只需要在程序中存在一份即可,因为存在多份没有什么意义。实现单例模式的方式有很多种,通常分为两种懒汉式(使用时在创建对象)和饿汉式(类加载时创建对象)。
2023-09-03 10:48:53
622
1
原创 Java反射、代理机制
官方解释:反射允许对封装类的字段、方法和构造方法的信息进行编程访问。虚拟机加载类文件后,会在方法区生成一个类对象,包含了类的结构信息,如字段、方法、构造方法等。反射是一种能够在程序运行时动态访问、修改类对象中任意属性的机制(包括private属性)。Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为 Java 语言的反射机制。
2023-09-02 08:55:25
475
原创 Java运算符详解
目录🔑前言🎽算式运算符⚙赋值运算符🍊关系运算符🍺逻辑运算符🍒位运算符🌹移位运算符🍃条件运算符🍉运算符优先级🔑前言任何一个程序都离不开计算问题,运算符代表着表达式之间进行何种运算,所以我们要熟练掌握各种运算符的使用方法。了解单目操作运算符、双目运算符、三目运算符单目运算符:即运算符只对一个表示式执行操作,...
2023-05-16 20:34:22
501
1
原创 Java继承
1、为什么要继承继承从字面意思还是比较好理解的,与我们生活密切相关,像子女继承了父母的财产。而在我们Java当中,使用类来描述一些事物,在复杂的世界中,事物之间可能会存在一些关联,比如猫、狗、鸡,猫是动物,狗是动物,鸡也是动物,他们身上具有一些共同的特征,在Java中使用类来描述猫、狗、鸡,在描述的时候会发现他们都有的共同特性,若在每个类中都需要描述一遍,使得开发变的很慢,而我们写一个动物类,让其猫、狗、鸡类去继承动物类,就解决了这个问题。继承是从已经存在的类派生出新的类(派生类),并且新的类拥有被
2022-10-16 01:50:33
764
原创 Java类和对象
一、认识面向对象1.1什么是面向对象(Object Oriented)面向对象是软件开发的一种思想,一种编程风格,面向对象开发方法认为客观世界是由对象组成的, 对象由属性和行为组成。任何对象都可以看做某 一类事物的实例,面向对象的方法主要是把事物给对象化(实例化)。一类事物:人类、狗类、树类……对象:一个人、一只狗,一棵树……属性:人的属性有身高、年龄、姓名、性别……行为:人会吃、喝、玩、乐……二、类定义和使用1.1认识类类是对现实生活中一类具有共同特征的事物的抽象,描述 一类对象对象的属
2022-09-05 16:41:26
591
原创 动态规划刷题篇(二)
👉Example 1(三角形最小路径和)给定一个三角形 triangle ,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 i 或 i + 1 。示例 1:输入:triangle = [[2],[3,4],[6,5,7],[4,1,8,3]]输出:11解释:如下面简图所示: 2 3 4...
2022-05-21 12:06:25
493
原创 Java标识符规范
🔒标识符标识符是我们给变量、类、方法等取的名字。取名规则:1.标识符中可以包含字母(中文)、下划线、美元符 $、数字,不能包含其他符号2.标识符不能以数字开头3.标识符不能是关键字命名建议:1.类名,每个单词的首字母大写(大驼峰)例如:MyFirstApp,TestApp等2.方法名,首字母小写,后面每个单词开头大写 例如:getHttpMessage(), localValue等3.变量名,和方法名规则一样。4.常量命名全部大写,每个单词间下划线分开5.字定义的标识符在命名时,使用尽
2022-05-13 21:52:28
4522
1
原创 如何学习JAVA
认识java认识祖师爷詹姆斯·高斯林 (James Gosling)是一名软件专家,1955年5月19日出生于加拿大,Java编程语言的共同创始人之一,一般公认他为“Java之父”。1991年,在Sun公司工作期间,詹姆斯和一群技术人员创建了一个名为Oak的项目,旨在开发运行于虚拟机的编程语言,同时允许程序在电视机机顶盒等多平台上运行。后来,这项工作就演变为Java。1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位--百度百...
2022-05-08 11:42:41
813
8
原创 IDEA各种玩法(开发者必备)
快捷键(提高码字速度)常用快捷键1.快速生成main方法:psvm +Tab或 main+Tab2.快速生成System.out.prinltn():输入sout+Tab3.删除一行:Ctrl+Y4.切换java文件(前提是工程有多个.java文件)Alt+右箭头 或 Alt+左箭头5,复制选中行到下一行:Ctrl+D6.撤销上一步操作:Ctrl+Z7.取消撤销:Ctrl+Shift+Z8.将选中的行合并成一行:Ctrl+shift+J9.Ct...
2022-04-24 11:07:40
49500
105
原创 【get C】数据在内存是如何存储的
前言在计算机内存中,数据的存储方式都是以0和1的形式存储,也就是二进制的形式,数据是如何向内存写入的呢?数据类型介绍整形数据在内存中存取浮点型数据在内存存储...
2022-04-21 07:32:34
1355
43
原创 动态规划刷题篇(一)
👌Example 1(最长回文子串)👌Example 2(整数拆分)👌Example 3(单词拆分)👌Example 4 (打家劫舍)👌Example 5(最小化目标值与所选元素的差)
2022-04-19 10:14:20
836
16
原创 动态规划进阶篇(下)
大家好,我是耀星🌟,欢迎来到动态规划频道📡。本节主要讲解多重背包问题和二维费用背包问题。💌多重背包问题🎊Example 1有N种物品和一个容量是V的背包。第i种物品最多有si件,每件体积是vi,价值是wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。输入格式第一行两个整数,N,V用空格隔开,分别表示物品种数和背包容积。接下来有N行,每行三个整数vi,wi,si用空格隔开,分别表示第ii种物品的体积、价...
2022-04-11 12:14:26
1135
8
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人