自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis进阶(三):主从复制

为了解决单点问题,实现多服务器部署redis,有几种解决方案可以实现:主从复制,主从+哨兵还有集群。

2024-03-08 21:18:21 999

原创 Java内存模型

Java内存模型是一个抽象的概念,它只是一个规定jvm虚拟机与内存之间工作方式的规范,简单来说,它规定一个线程何时、如何查看其他线程修改过的数据,以及在必须时如何同步地访问共享变量。

2024-03-08 13:06:42 337

原创 关于反射~

在 Java 中,反射是指在运行时检查和操作类、接口、字段、方法等程序结构的能力。通过反射,可以在运行时获取类的信息,创建类的实例,调用类的方法,访问和修改类的字段等。我们知道在类中如果有私有属性的情况下,类外是无法访问到的,但反射能直接操作类私有属性。反射可以在运行时获取一个类的所有信息,(包括成员变量,成员方法,构造器等),并且可以操纵类的字段、方法、构造器等部分。反射我将其理解为将一个整体的类中成员变量 、方法等都解剖成一个一个的java对象。

2024-03-07 11:44:08 402

原创 浅谈钩子方法

钩子方法(Hook Method)是一种由父类提供的空或默认实现的方法,子类可以选择性地重写或扩展该方法,以实现特定的行为或定制化逻辑。钩子方法可以在父类中被调用,以提供一种可插拔的方式来影响父类的行为。钩子方法通常用于框架或模板方法设计模式中。框架提供一个骨架或模板,其中包含一些已经实现的方法及预留的钩子方法。具体的子类可以通过重写钩子方法来插入定制逻辑,从而影响父类方法的实现方式。

2024-03-03 15:41:56 328

原创 Redis进阶(二):事务

redis事务的原子性不像MySQL原子性一样,执行不成功的话,redis事务不会进行回滚操作。

2024-02-06 15:09:04 527

原创 笔试强训 - 错题总结

重复读(Repeatable Read)是数据库的一种事务隔离级别,它保证在同一个事务中多次读取同一数据时能够得到相同的结果,即保证了在同一个事务内,多个查询操作返回的数据集合是一致的。在此事务中读取数据时,只能访问该视图中的数据,而不能访问其他事务未提交的数据。用sum表示A和B俩个数相异或的结果,carray 为 A和B与后左移一位的结果,得到sum和carray后,看carray是不是为0,如果不为0就让sum变成A,carray变成B进入循环,只要等到carray为0时,输出sum就是结果了。

2024-02-02 17:23:06 715

原创 Redis进阶(一):持久化

MySQL的事务有四个比较核心的特征:原子性、一致性、持久性和隔离性,这里的持久性和持久化说的是一个事,简单来说,数据存储在硬盘上就是持久,存在内存上那就是不持久(重启之后,这个数据还在就是持久),但是redis是一个内存数据库,在内存中想要实现持久化,就需要redis将数据存储到硬盘上。但是redis一大优势就是快,而快的前提是将数据存储到内存上,似乎二者发生了冲突,于是redis决定:插入数据,内存、硬盘都插入数据,取出数据,只从内存读取数据。redis重启,内存恢复数据就是从硬盘中恢复就ok了。

2024-02-02 17:21:59 943

原创 初识Redis

先看一下官方给的解释:从上面的英格力士可以了解到Redis是将数据存储到内存中,但如果是在内存中存储数据,直接定义一个变量不是更好吗?当然,在单机环境下,定义一个变量确实好使,但如果是在分布式的情况下,Redis就发挥神威了。我们都知道进程是有隔离性的,想要进行进程之间的通信,我们常常 使用网络来实现,Redis就是基于网络来实现的,可以把自己内存中的变量给别的进程,甚至别的主机进程也能进行使用。上面还提到作为一款数据库,那Redis和MySql有啥区别,换句话说有啥优劣呢?

2024-01-31 15:36:04 812 1

原创 算法专栏——双指针

那如果从后往前遍历的话,right指标肯定要先指向原数组最后的一个位置就比如上述的数据,right应该指向 val数据是 4。也可以用双指针从前往后,找到right最后的位置,然后left不需要进行换数据啥的,主要就是为了找到位置。看到这个题第一个想到的是:创建一个新的数组,遍历原数组然后普通数字直接复制到新数组上,0就复制俩次呗。我们发现left会往前越过right,并且覆盖掉了 2这显然不可以的,那我们就试着从后往前遍历。像这样子的将一整块数组划分很多部分可以称为数组划分,常用的解法可以是双指针。

2023-09-03 21:54:19 297

原创 Linux 三剑客

grep主打的就是查找功能 ,它能够在一个或者多个文件中搜索某一特定的字符模式。

2023-08-27 09:22:08 444

原创 WebSocket

在实现聊天室项目的时候,我遇到了一个问题,那就是消息是如何从服务器端自己推送给客户端的呢?一开始我的想法是每隔一段时间,就让客户端向服务器端请求数据,也就是所谓的“轮询”机制,但这种方式显然是太耗费资源的,我在查阅资料后,发现有一个应用层协议专门服务于这种情况的:WebSocket。(依旧是基于传输层的TCP实现的)

2023-08-09 19:24:10 808

原创 自动化测试的简单认识

自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。

2023-05-23 14:22:51 526

原创 Spring 事务和事务传播机制

事务就是将一组操作封装成一个执行单元(封装到一起),要么一起成功,要么一起失败。在打账的情景上,A向B转账200 元,A的账户-200.B的账号+200,但是如果是一些特殊情况,A的账号-200之后,但是B账号并没有加上这个200元子的话,就会出现很大的问题,而出现这一大问题的原因,就是没有将转账这个业务变成事务。这里也体现了事务的原子性一大特征。

2023-05-18 14:32:07 856

原创 Spring Boot :统一功能处理

在用户登陆验证的业务中,如果只是使用Spring AOP的话,session无法获取的,还有各种参数(request等)很难获取,这时候Spring拦截器就发挥了重大的作用了。

2023-05-16 14:36:40 1356

原创 Spring AOP - 初识AOP

学到了现在,我们开启新的篇章:Spring AOP的学习,那么说到Spring AOP就要先知道什么是AOP?AOP(Aspect Oriented Programming),即面向切面编程,是一种程序设计思想和开发方法,它将业务逻辑和横切关注点进行分离,使系统更具模块化、可重用性和维护性。在传统的OOP(Object Oriented Programming)中,业务逻辑通常被包含在对象的方法中,而横切关注点(如日志、安全、事务等)则分散在各个模块之间,难以管理和维护。

2023-05-15 17:10:34 66

原创 MyBatis - 基础使用Ⅰ

这篇文章将讲解MyBatis的基础使用,MyBatis的学习是非常重要的,在前面学习servlet的时候,我们就能感受到将数据持久化存储的重要性,当时在使用JDBC的时候非常繁琐麻烦,但是在Spring里,提供了一种框架可以轻松且惬意的实现数据存储的功能:MyBatis。MyBatis的学习只分为俩部分:1.配置MyBatis的环境 2.设置配置信息。

2023-05-12 14:11:36 291

原创 测试用例常见的几种设计方法

我们将从以下几种常见的方法入手,讲解测试用例的设计方法:基于需求的设计方法、等价类、边界值、因果图、正交排列、场景设计法、错误猜测法。

2023-05-08 11:08:49 2077

原创 Spring-MVC:基础知识

请求转发是发生在服务器内部的,当客服端发送请求之后,服务器会先向目标地址发送请求之后,再将结果返回给客户端的,也就是说,转发的过程是服务器代替实现的;重定向是发生在客户端层面的,会将临时响应头返回给客户端,客户端需要再次发送请求(重定向)的 URL 地址,客户端再收到了地址之后,会将请求发送到新的地址上,这就是请求重定向。2.请求方不同请求转发的向目标地址的请求发是服务器,而重定向的向目标地址的请求发是客户端,

2023-05-06 15:10:03 64

原创 Spring-Boot:日志文件

日志在Spring root中有什么作用?在普通的业务中,如果发现代码出现bug,你不打开控制台看日志,你纯纯的看哪里有bug是一件可以说是不可能的事情,因此除了发现和定位问题之外,我们还可以通过⽇志实现以下功能:记录⽤户登录⽇志,⽅便分析⽤户是正常登录还是恶意破解⽤户。记录系统的操作⽇志,⽅便数据恢复和定位操作⼈。记录程序的执⾏时间,⽅便为以后优化程序提供数据⽀持。以上这些都是⽇志提供的⾮常实⽤的功能。

2023-04-22 21:29:27 68

原创 Spring-Boot:创建与简单使用&配置文件

我们学习了一些Spring简单的相关知识,接下来开启新的章节:Spring-Boot,关于啥是Spring-Boot呢?Spring-Boot其实就是Spring的脚手架,是为了更加方便使用Spring快速开发和使用的脚手架~~那我们在学习Spring-Boot简单使用的之前,我们先学习一下Spring-Boot的优点:1.快速的集成框架:快速的添加外部jar包2.内置Web框架:可以直接运行(是有main启动类的)3.快速部署:不依赖任何Web容器4.抛弃传统的xml文件。

2023-04-20 17:51:41 502

原创 软件测试——基础概念篇

开启新副本软件测试环节~~本文将从需求、bug、测试用例等方向入手,了解软化测试的一些基本概念。

2023-04-16 22:19:13 195

原创 Spring:Bean对象的作用域与生命周期

场景:⽤户回话的共享Bean, ⽐如:记录⼀个⽤户的登陆信息备注:限定SpringMVC中使⽤。

2023-04-16 15:50:06 123

原创 Spring:更简单的存储与读取Bean对象

上节课我们简单了解一些Spring非常基础的使用,但是在存储与读取Bean对象这个操作上来看还是有点麻烦滴~~ 我们有更方便的方法去实现存储与读取Bean对象。

2023-04-16 13:43:28 86

原创 初始Spring框架

Spring是当今企业最常见最常使用的框架。我们通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是⼀个开源框架,有着活跃⽽庞⼤的社区,这就是它之所以能⻓久不衰的原因。Spring ⽀持⼴泛的应⽤场景,它可以让 Java 企业级的应⽤程序开发起来更简单。在官方网站里介绍到何为Spring:好像还是有点晦涩难懂,可以用更简单的一句话来概括:Spring就是包含了众多工具方法的IoC容器。Ioc是啥?容器又是啥?

2023-04-10 11:01:38 79

原创 浅浅理解JVM虚拟机

关于JVM虚拟机的内容在面试中经常被提问到,因此写下这篇博客来记录最近在研读的《深入理解JVM虚拟机》,但由于知识广度深度都不足,就先浅谈关于JVM内存划分、类加载过程、垃圾回收。这三个点对于整本书来说仅仅是九牛一毛~~

2023-04-03 16:35:56 262

原创 Linux 常用指令

今天给大家带来简单的一些linux指令~~ 众所周知,linux主要是以命令行的形式进行交互的,当然有图形化界面的Linux系统,但是bug过于多,生产效率低,命令行形式还是我们学习的重中之重~~

2023-03-28 11:30:55 69

原创 HTTP协议

http协议是应用层方面最常见的一种协议,而当我们在浏览器输入一个网址后,浏览器在背后帮我们做了很多的事情,根据你输入的网址按一定的方法,打包成一个HTTP请求发送给网站的服务器。服务器在接受到请求之后,会发送给浏览器HTTP响应,其中可能会包含文本图片等。浏览器再进行渲染,将完整网站呈献在我们面前~~

2023-03-06 14:40:04 90

原创 HTML 基础

head:就是表示页面中的属性body:表明页面中有哪些元素tittl:这个网页叫啥这样的形式构成层级树结构,当然这个框架的话也是有快捷方式的~~ 输入。

2023-02-24 11:59:14 70

原创 网络原理(2)——网络层 数据链路层

上篇文章我们讲解了关于传输层里面的常见的协议内容,本文将继续延续网络原理的讲解 : 网络层中的IP协议 以及传输层重要协议 网络层有俩大作用:1.地址管理 2.路由选择我们先学习一下,协议头格式吧:终于到了最终要环节~~

2023-02-21 16:59:26 105

原创 网络原理(1)——UDP/TCP协议

对于程序员来说,应用层才是发挥的舞台,为啥呢?因为每一个app或者说是软件,它们的协议需求都不尽相同,因此需要特定的一些协议来实现它们,这时候自定义协议就发挥了重要作用~1.明确业务需求,比如说你要写一个关于外卖的程序,当你打开列表的时候,就需要出现一些商家介绍等信息,需求分析是非常重要的环节2.明确要响应的数据以什么形式或者说是格式表达出来,准确一点说是 明确传递的信息以何种方式来组织。常见的有XML,json等。

2023-02-21 10:20:33 130

原创 文件操作- IO

buffer的长度是1024,将buffer传进方法之后,read方法会想尽办法读取文本将1024个位置占满,但是并不是每一个文件都有这些数据的,如果不够的话,有多少填多少,返回值是当前填入了多少个数据,如果超过了就返回1024.可以将数据的读写操作想象成一大盆里面的水,水就是数据,当我们往里加水的时候,想加多少加多少,只要不超过盆的限度,这时候就叫写操作——输出流,反之把水(数据)放出的过程就是——读操作,输入流。把读写文件的相关对象就叫流对象,而java中流对象主要分为俩大类:字节流,字符流。

2023-01-15 15:30:05 43

原创 网络的一些基本概念

IP地址标识了网络上设备的位置,而端口号就是标识了计算机上面具体应用程序协议是啥呢?协议是网络通信中重要的概念,协议也可以理解为一种约定:发送方约定好以什么样的形式发送这个数据,接收方以何种方式来解读这份数据,这就是协议。然而协议是一个复杂的东西,直接使用的话不利有后期维护,学习等,因此我们将一个大的协议分成很多小的协议,然而在这堆小的协议中,发现了很多的具有相似功能的协议,将这类归为一种进行分类(分层),这个操作就是协议分层。

2023-01-12 16:46:33 76 1

原创 JAVA EE - 多线程进阶

上一章我们较为详细的讲解了多线程初阶的内容。这一章,我们要开始继续猛干多线程~~首先我们要明确一点,这里的锁策略不是语法内容,而是任何关于“锁”这个话题,都会牵扯到的这个锁策略。

2023-01-08 18:26:28 86

原创 JAVA EE - 多线程初阶(2w字)

上一个文章我们了解到 多进程编程已经可以解决了并发编程问题了,已经可以利用起来cpu多核资源了,但是进程太重了,其消耗资源重(消耗资源多,速度慢)因此,线程应运而生,线程就是进程的轻量化,(为啥轻呢?把申请资源/释放资源的操作给省下了)总而言之,线程会复用资源。

2022-11-23 15:06:12 436 1

原创 JAVA EE - 操作系统

操作系统(Linux win Mac 等等)是一个软件:搞管理的软件管的啥?1.对下要管理硬件设备 2.对上要给软件提供稳定的运行环境进一步的认为:操作系统是软件 硬件 用户之间交互的媒介!!!

2022-11-20 16:19:10 136

原创 MySQL-索引事务

索引用在查询多的场景,大部分数据库引擎的索引背后的数据结构都是B+树,但也有例外索引:(1)对于插入、删除数据频率高的表,不适用索引(2)对于某列修改频率高的,该列不适用索引(3)通过某列或某几列的条件查询频率高的,可以对这些列创建索引事务。

2022-11-14 16:59:08 275

原创 Java - 泛型

T> 是占位符 代表该类是泛型类。

2022-11-14 11:42:32 62

原创 Java - Set&Map

Map&Set

2022-10-25 14:10:52 203

原创 JAVA-DS-排序

关于java数据结构当中重要且常见的排序!

2022-10-18 12:02:30 159

原创 Java - 重要集合:PriorityQueue

Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的通过观察源码:使用必须导包!堆有很多方法的,接下来我们将学习堆!PriorityQueue中放置的元素必须要能够比较大小,,否则会抛出ClassCastException异常,否则会抛出NullPointerException没有容量限制,可以插入任意多个元素,其内部可以自动扩容。

2022-10-12 10:53:50 370

空空如也

空空如也

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

TA关注的人

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