自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux基本知识----3

Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统2.为什么 Linux 体系结构要分为用户空间和内核空间的原因?Linux 为了保护内核的安全,把系统分成了两部分。3.BASH和DOS之间的基本区别是什么?BASH命令区分大小写,而DOS命令则不区分;在BASH下,/ character是目录分隔符,\作为转义字符。在DOS下,/用作命令参数分隔符,\是目录分隔符DOS遵循命名文件中的约定,即8个字符的文件名后跟一个点,扩展名为3个字符。BASH没有遵循这样的惯例。

2024-06-17 15:48:45 401

原创 Linux常用指令----2

Linux是一个强大的,它提供了许多常用的命令行工具,可以帮助我们用于管理文件、目录、进程、网络和系统配置等。

2024-06-17 15:22:42 407

原创 Linux系统基本知识----1

***可以使用包管理器来安装软件包。****管道是最早的进程间通信方式,但只能用于父子进程之间的通信,且管道缓冲区是有限的。****sudo命令是用于以其他用户(通常为root用户)的身份执行命令的工具,它允许普通用户执行需要特权的命令。****Linux中的目录结构是一个树形结构,根目录为/,每个目录都有一个唯一的路径名。****Linux中的进程间通信方式包括管道、命名管道、消息队列、共享内存、信号等。****SSH(安全外壳协议)是一种加密的网络传输协议,用于在不安全的网络中安全地执行远程命令。

2024-06-17 15:10:49 676

原创 cookie和session的区别

***session依赖于名为JSESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1.只需要关闭窗口该session就会失效,因而session不能达到长期有效的结果。****session是保管在服务端的,每个用户都会产生一个session,假如并发访问的用户十分多,会产生十分多的session,会占用大量的内存。****cookie对客户端是可见的,别有用心的人可以分析存放在本地的cookie并进行cookie欺骗,所以它是不安全的。

2024-06-13 20:48:07 347

原创 MyBatis细节

***Mybatis 仅可以编写针对 ParameterHandler、ResultSetHandler、 StatementHandler、Executor 这 4 种接口的插件,Mybatis 使用 JDK 的动态代 理,为需要拦截的接口生成代理对象以实现接口方法拦截功能,每当执行这4种接口对象的方法时,就会进入拦截方法,具体就是InvocationHandler 的 invoke() 方法,当然,只会拦截那些你指定需要拦截的方法。,就是映射文件中Mapper的Statement的 id值;

2024-06-13 20:28:56 530

原创 项目中用的网关Gateway及SpringCloud

***Spring cloud gateway是spring官方基于Spring 5.0、Spring Boot2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供简单、有效和统一的API路由管理方式,Spring Cloud Gateway作为Spring Cloud生态系统中的网关,目标是替代Netflix Zuul,其不仅提供统一的路由方式,并且还基于Filer链的方式提供了网关基本的功能,例如:安全、监控/埋点、限流等。

2024-06-13 14:59:47 630

原创 项目中的增删改查

接口定义:在Controller层定义修改医院的接口,使用PUT方法,并接收医院信息的JSON数据,包括要修改的医院ID和新的医院信息。接口定义:在Spring Boot的Controller(控制层)定义添加医院的接口,使用POST方法,并接收医院信息的JSON数据。数据库查询:如果缓存中不存在查询结果,则调用Service层的业务方法,通过MyBatis执行SQL查询语句,从数据库中获取医院信息。持久层操作:MyBatis根据医院ID和新医院信息,执行SQL更新语句,更新数据库中的对应记录。

2024-06-13 14:54:34 341

原创 SpringCloud专题

不会影响其他模块的开发;减轻团队的成本,可以并行开发,不用关注其他人怎么开发,先关注自己的开发;他利用springboot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、智能路由、消息总线、负载均衡、断路器、数据监控等,都可以用springboot的开发风格做到一键启动和部署。首先springcloud基于springboot的简洁优雅;springboot可以离开springcloud独立使用开发项目,但是springcloud离不开springboot,属于依赖关系;

2024-06-12 14:50:36 412

原创 Redis专题----2

从服务器连接主服务器,发送SYNC命令.主服务器接收到SYNC命令后,执行命令生成RDB文件并使用缓冲区记录此后执行的所有写命令.主服务器执行完后,向所有的从服务器发送快照文件,并在发送期间继续记录被执行的写命令.从服务器收到快照文件后丢弃所有的旧数据,载入收到的快照.主服务器快照发送完毕后开始向从服务器发送缓冲区的写命令.从服务器完成对快照的载入,开始接收请求命令,并执行来自主服务器缓冲区的写命令.主服务器每执行一个写命令就会向从服务器发送相同的写命令.

2024-06-11 11:24:23 703

原创 Redis专题----1

Redis 提供了多种数据类型来支持不同的业务场景,比如 String(字符串)、Hash(哈希)、 List (列表)、Set(集合)、Zset(有序集合)、Bitmaps(位图)、HyperLogLog(基数统计)、GEO(地理信息)、Stream(流),并且对数据类型的操作都是。RDB 快照就是记录某一个瞬间的内存数据,记录的是实际数据,而 AOF 文件记录的是命令操作的日志,而不是实际的数据。Redis 是一种基于内存的数据库,对数据的读写操作都是在内存中完成,因此。三.Redis持久化。

2024-06-10 16:31:20 201

原创 面试高频问题----6

**stringbuilder的性能通常优于stringbuffer,因为它不需要同步,所以在单线程环境中使用stringbuilder通常会有更好的性能。***string对象是不可变的,一旦创建,其值就不能被改变。***stringbuffer对象是可变的,即其内容可以被修改,而不像string那样生成新的对象。***由于string的不可变性,在频繁修改字符串情况,可能会产生大量的临时对象,导致性能下降。***stringbuffer是线程安全的,它的方法都是同步的,可以在多线程环境下安全地使用。

2024-06-08 15:27:52 744

原创 面试高频问题----5

4.继承thread类不能实现线程变量资源共享;1.数据分片:集群模式通过数据分片提高了系统的扩展性和性能,而哨兵模式没有数据分片功能,适合数据量较小的场景;3.由于java是单继承,一个类继承thread类后不能继承其他类,而实现runnable接口侧面实现多继承。2.如果线程池中的线程数量等于核心线程数,但工作队列未满,将任务放入工作队列中执行。3.如果工作队列已满,但线程数小于最大线程数,则创建新的线程来处理任务。1.如果线程池中的线程数量小于核心线程数,则创建新的线程来处理任务。

2024-06-07 11:43:23 564

原创 垃圾回收算法

垃圾回收基于“对象不再使用”的原则,自动检测并回收不再被引用的对象。JVM通过跟踪对象的引用关系来判断对象是否仍在使用中。当一个对象没有任何引用指向它时,垃圾回收器就会将其标记为可回收对象。标记-清除(Mark-Sweep)算法:这是最基本的垃圾回收算法,分为两个阶段,首先标记出所有存活的对象,然后清除所有未被标记的对象。但这种算法可能会导致内存碎片化。复制(Copying)算法:将内存分为两个相等的区域,

2024-06-05 22:23:12 422 1

原创 JVM的内存结构

Java 程序在编译之后生成字节码(Bytecode),而 JVM 负责解释或将字节码编译为机器码,并在计算机上执行。堆内存主要用于存放对象和数组,它是JVM管理的内存中最大的一块区域,堆内存和方法区都被所有线程共享,在虚拟机启动时创建。多线程是通过线程轮流切换来获得CPU执行时间的,因此,在任一具体时刻,一个CPU的内核只会执行一条线程中的指令。Java栈中存放的是一个个的栈帧,每个栈帧对应一个被调用的方法,在栈帧中包括。JVM 管理程序运行时所需的内存,主要包括堆(Heap)和栈(Stack)。

2024-06-05 22:08:01 608

原创 面试高频问题----4

脏读:事务 A 读取了事务 B 更新但未提交的数据,然后基于这些数据进行了操作,如果事务 B 回滚了,则事务 A 读取到的数据是脏数据。不可重复读:事务 A 多次读取同一个数据项,在两次读取之间,事务 B 修改了该数据项,并提交了事务,导致事务 A 读取到的数据不一致。幻读:事务 A 多次查询一个数据范围,两次查询之间,事务 B 插入了新的数据项并提交了事务,导致事务 A 查询到的数据项数量不一致。1.编写删除缓存的接口,在更新数据库的同时,调用删除缓存的接口删除缓存中的数据。

2024-06-05 21:48:09 739

原创 面试高频问题----3

大小固定:数组在创建时大小是固定的,如果需要存储更多的数据,可能需要重新分配内存并复制数据。平衡问题,对于某些树形结构,如果数据插入的顺序不当,可能导致树的高度过高,从而影响查找效率。2.缓存空对象:在缓存中存储空对象,当查询一个不存在的数据时,直接返回空对象,而不是默认值或者错误信息;缓存击穿:热点key在某个时间点过期的时候,而恰好这个时间点对key有大量的并发请求过来,从而大量的请求打到数据库。解决方案:1.主动设置空缓存:当接收对于数据库中没有的请求查询时,主动在缓存中写入空数据,设置过期时间;

2024-06-05 15:54:29 687 1

原创 面试高频问题----2

4.线程切换的开销比进程的开销小,因为操作系统只需要保存和加载线程的上下文,而不需要保存和加载整个进程的上下文。2.最大线程数:线程池中允许的最大线程数。3.空闲线程的存活时间:当线程池中的线程数量超过核心线程数时,多余的空闲线程在终止之前等待新任务的最长时间。6.线程工厂:用于创建新线程的工厂,可以自定义线程的创建方式,比如设置线程名称,线程优先级。1.核心线程数:线程池中保持存活的最小线程数,即使它们处于空闲状态也不会被销毁。线程:1.线程是操作系统调度的基本单位,但它是进程内的执行流。

2024-06-04 17:55:41 552

原创 面试高频问题----1

哈希表用于快速查找元素和分数,保证O(1)的查找效率。如果一个变量被volatile修饰了,那么肯定可以保证每次读取这个变量值的时候得到的值是最新的,但是一旦需要对变量进行自增这样的非原子操作,就不会保证这个变量的原子性了。4.支持高并发:B+树的插入、删除和查找操作都是在节点上进行的局部操作,由于B+树的平衡性,节点调整次数相对较少,避免了锁的粒度过大,提高了数据库的并发能力。Bean后处理器注册。3.适合磁盘存储:B+树的节点通常比较大,可以容纳更多的键值对,减少了树的高度,从而减少了磁盘I/O次数;

2024-06-04 11:37:22 520

原创 数据库----2

1.读未提交:所有事务都可以读取到别的事务中未提交的数据,会产生脏读问题,项目中基本不用,安全性差;2.读已提交:一个事务只能看见已经提交事务所做的改变,可以避免脏读问题;3.可重复读:这是MYSQL默认隔离级别,确保一个事务中的多个实例在并发读取数据时会读取一样的数据;不过会导致幻读,通过MVCC可以解决;4.可串行化:事务最高级别,通过强制事务的排序,使之不可能相互冲突,从而解决幻读问题。即,在每个读的数据行上加共享锁。

2024-06-03 14:50:37 331

原创 数据库----1

一、MVCC多版本并发控制MVCC,多版本并发控制是现代数据库引擎中常用的处理读写冲突的手段,目的在于提高数据库高并发场景下的吞吐性能。(可以用来解决可重复读的问题)二、数据库ACID实现原理MYSQL通过支持ACID原理来保证事务的可靠性和一致性。****原子性(Atomicity):即不可分割性,事务要么全部被执行,要么就全部不被执行。****一致性(Consistency):事务的执行使得数据库从一种一致性状态转移到另一种一致性状态。

2024-06-03 11:23:28 354

原创 Web----网络通讯部分

一、TCP和UDP的区别TCP是一种面向连接的协议,它在传输数据之前会建立一条专用的通信连接。这意味着在数据传输过程中,两台计算机之间会有一条稳定的数据传输通道。因此,TCP可以保证数据传输的可靠性,但会带来一定的延迟。UDP是一种无连接的协议,它不会建立专用的通信连接。每个数据包都是独立的,可以直接传输。因此,UDP的传输速度比TCP快,但不能保证数据传输的可靠性。TCP和UDP都是来自于传输层的协议。传输层位于应用层和网络层之间,负责位于不同主机中进程之间的通信。

2024-05-31 09:55:29 905

原创 ****三次握手和四次挥手

三次握手1.简要描述TCP三次握手的过程。为什么TCP连接需要三次握手,2次不行吗?在TCP三次握手中,客户端和服务器分别扮演什么角色?在TCP连接过程中,客户端发送SYN包丢失了,会发生什么情况?三次握手的各个状态;简要描述四次挥手的过程;为什么TCP连接需要四次挥手,不能三次挥手吗?如果TCP连接过程中,服务器收到客户端FIN包立即回复ACK包,会发生什么?为什么创建连接是三次握手,断开连接是四次挥手?四次挥手的各个状态

2024-05-30 19:34:38 428

原创 java中的面试高频问题----2

进程、线程、协程有什么区别?进程之间的通信方式有哪些?前端发起请求之后到达后端,中间过程是什么?如果在网页中输入一个网址,会发生什么?涉及到什么协议?UDP访问DNS的过程是怎么样的?Redis的缓存;Redis的热查询和MySQL的慢查询?MySQL的底层数据结构

2024-05-30 18:04:02 631

原创 java面试中高频问题----1

IOC,控制反转,以前创建对象的主动权和时机由自己把握,而现在这种权力转移到spring容器中,并由容器根据配置文件创建和管理实例之间的依赖关系,松散耦合,也有利于功能的复用。AOP,面向切面编程,作为面向对象的一种补充,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被称为“切面”。定义:悲观锁假设资源会发生冲突,在对资源操作时,会将资源锁定,其他线程无法访问,直到当前线程完成操作释放锁。场景:读操作多,写操作少,数据冲突概率低的场景。

2024-05-29 21:09:56 451

原创 springboot总结

一、springboot和spring framework相比有哪些区别?

2024-05-26 15:12:20 144

原创 springboot相关知识集锦----2

一、spring简化配置具体是如何简化的?

2024-05-26 14:46:54 323 2

原创 springboot相关知识集锦----1

一、springboot是什么?springboot是一个用于构建基于spring框架的独立应用程序的框架。它采用自动配置的原则,以减少开发人员在搭建应用方面的时间和精力。同时提升系统的可维护性和可扩展性。二、springboot的优点约定优于配置版本锁定:解决maven依赖版本容易冲突的问题,集合了常用的并且测试过的所有版本起步依赖:解决了完成某一个功能要整合的jar包过多的问题,集合了常用的jar包自动配置:解决了整合框架或者技术的配置文件过多,集合了所有的约定的默认配置。

2024-05-26 13:27:20 354

原创 SpringMVC相关知识集锦----1

一、springMVC框架的了解springMVC是一个基于java的实现了MVC设计模式的请求驱动类型的轻量级web框架,通过把model,view,controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发.二、springMVC主要组件1.前端控制器(dispatcherservlet):接收请求,响应结果,相当于转发器,有了dispatcherservlet就减少了其他组件之间的耦合度。

2024-05-26 12:27:49 525

原创 Spring相关知识集锦----2

在编译的时候,spring会使用aspect编译器将切片代码编译成字节码文件。1.springboot的自动装配实际上是从spring.factories文件中获取到对应的需要进行自动装配的类,并生成相应的bean对象,然后将他们交给spring容器进行管理。将半成品a放入二级缓存,并从三级缓存移除a,最终返回半成品a。6.b的创建过程回溯完之后,b成为正品,将b从三级缓存中移除,将b放入一级缓存,而a还是半成品。7.a的创建过程回溯完之后,a也成为正品,将a放入一级缓存,并从二级缓存中移除。

2024-05-25 18:01:12 298

原创 Spring相关知识集锦----1

过去,基于spring构建一个应用,往往都需要开发人员定义样板化的配置,例如:springmvc的配置、mybatis配置等,但这些配置往往与业务逻辑无关,且具有一定通用性。SpringBoot是一个用于构建基于spring框架的独立应用程序的框架,它采用了自动配置原则,以减少开发人员在搭建应用架构方面的时间和精力,同时提升了系统的可维护性和扩展性。spring的循环依赖的理论依据其实是基于java的引用传递,当我们获取到对象的引用时,对象的field或属性是可以延后设置的。

2024-05-25 17:11:30 474

原创 并发线程相关知识

继承Thread类;实现runnable接口;实现Callable接口;线程池创建线程(项目中使用方式)Runnable接口run方法没有返回值Callable接口call方法有返回值,需要FutureTask获取结果Callable接口的call()方法允许抛出异常;而Runner接口的run()方法的异常只能在内部消化,不能继续上抛。

2024-04-16 22:29:42 361

原创 VUE相关知识锦集

补充keep-alive:缓存当前组件;destory-----关闭页面记录视频播放时间,初始化的时候从上一次的历史开始播放。mounted----- 同步可以获取dom,如果先子组件请求后父组件请求。actions ---- 存放异步方法的,并且用来提交mutatioins。activated-----判断id是否相等,如果不相同发起请求。mutatioins ---- 存放同步方法的。created ----- 单组件请求。区别:mutations----同步。state ---- 全局共享属性。

2024-04-11 20:31:09 293

原创 VUE的相关知识锦集

针对没有浏览器的环境,通过stack和index两个变量,模拟出浏览器的历史调用记录.若没有特殊需求,用hash模式即可;如果路径中没有#,选择history模式;非浏览器环境,选用abstract模式.

2024-04-10 21:27:30 518

原创 Java位运算

java位运算基本理解

2023-03-22 15:44:23 558

原创 JAVA遍历数组的两种方法

JAVA遍历数组的两种方法

2023-03-09 21:00:43 331

原创 每天一段java代码(000)-----郊游人数统计

某班级80名学生,现在需要组成秋游活动,班长提供了四个景点依次是A B C D ,每个同学只能选择一个景点,请统计最终哪个景点想去的人多

2023-02-23 17:33:53 552

原创 每天10个java基本知识点

1.Java Bean 属性命名规范问题分析1. javabean属性命名尽量使用常规的驼峰式命名规则2. 属性名第一个单词尽量避免使用一个字母:如eBook, eMail。3. boolean属性名避免使用 “is” 开头的名称4. 随着jdk, eclipse, spring 等软件版本的不断提高, 底版本的出现的问题可能在高版本中解决了, 低版本原来正常的代码可能在高版本环境下不再支持。

2023-01-30 12:29:00 304

原创 每天10个java基本知识点

1.接口和抽象类有什么区别?(1)接口接口使用interface修饰;接口不能实例化;类可以实现多个接口;①java8之前,接口中的方法都是抽象方法,省略了public abstract。②java8之后;接口中可以定义静态方法,静态方法必须有方法体,普通方法没有方法体,需要被实现;(2)抽象类抽象类使用abstract修饰;抽象类不能被实例化;抽象类只能单继承;抽象类中可以包含抽象方法和非抽象方法,非抽象方法需要有方法体;如果一个类继承了抽象类,①如果实现了所有的抽象方法,子类可以不

2023-01-29 21:31:50 213

原创 每天10个java基础知识点

1、JDK 和 JRE 有什么区别?JDK(Java Development Kit),Java开发工具包JRE(Java Runtime Environment),Java运行环境JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib就是JVM工作所需要的类库

2023-01-28 18:44:41 163

原创 力扣刷题感悟

该题给出了一些已知点和圆;意在求:判断每个不同圆中的已知点个数是几个?实际上,我们可以利用循环,不停地判断当前点是否在给定的圆中,再设置一个数组存储个数。所以本题的关键解题思想就是:如何判断当前点是否在给定圆中。不难看出,如果该点到圆心的距离小于半径则该点位于圆中。

2023-01-24 12:21:49 78

空空如也

空空如也

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

TA关注的人

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