自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVA基础知识

序列化是将对象的状态转换为字节流的过程,以便可以将对象存储到文件中,或者通过网络传输对象。反序列化则是将字节流恢复为对象的过程。

2024-11-20 14:04:26 811

原创 JAVA单例模式面试题

单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取该实例。这个模式的主要目的是控制某个类的实例化过程,确保在应用程序的生命周期中,该类的实例只有一个,从而避免由于多个实例导致的资源消耗和数据不一致等问题。私有构造方法:为了防止外部代码通过new关键字创建类的实例,单例类的构造方法通常被声明为private。静态变量:在单例类中,通常使用一个静态变量来保存该类的唯一实例。这个变量在类加载时或第一次被访问时被初始化。静态工厂方法:单例类提供一个静态工厂方法(通常是public。

2024-11-20 09:57:16 1010

原创 JVM有哪些垃圾回收器

Serial垃圾回收器:单线程收集器,适用于客户端模式下的小型应用。 使用复制算法回收新生代,使用标记-整理算法回收老年代。 在进行垃圾回收时,会停止所有用户线程(Stop-The-World, STW)。 Serial Old垃圾回收器: Serial收集器的老年代版本,单线程,使用标记-整理算法。 通常与Parallel Scavenge收集器配合使用。 Parallel Scavenge垃圾回收器: 多线程收集器,专注于最大化吞吐量。 使用复制算法回收新生代,适合后台处理任务。 Parallel

2024-11-16 17:28:49 371

原创 一文学会Redis幂等性

幂等性原本是数学上的概念,公式为f(x)=f(f(x)),能够成立的数学性质。用在编程领域,则意为对同一个系统,使用同样的条件,一次请求和重复的多次请求对系统资源的影响是一致的。

2024-11-12 16:03:16 598

原创 JDK21主要特性

JDK 21的发布时间是2023年9月19日,以下是对JDK 22主要特性的介绍。

2024-11-12 15:39:23 248

原创 JVM面试题-什么是类加载器,类加载器有哪些

类加载器是Java中用于动态加载类文件的机制。它负责在运行时将类的字节码加载到JVM中,并转换为Java类对象。类加载器主要有以下四种:类加载器(Class Loader)是Java虚拟机(JVM)的一个重要组成部分,它负责将Java类的二进制代码加载到内存中,并转换为可执行的Java字节码。这是Java语言动态性和灵活性的重要特性之一,为Java应用程序提供了动态加载和运行时扩展的能力。类加载器的主要职责是根据类的全限定名(Fully Qualified Name)在运行时定位并读取类的字节码。它执行以下

2024-10-29 17:29:34 457

原创 Oracle创建存储过程,创建定时任务

在Oracle数据库中,创建存储过程和定时任务(也称为调度任务)是常见的数据库管理任务。以下是创建存储过程和定时任务的步骤和说明。

2024-10-29 10:50:00 760

原创 解决IDEA Tomcat的Log控制台中文乱码

经过多种网络搜索尝试均无果后,终于找到了一种有效的解决Tomcat控制台中文乱码问题的方法,特此记录。最后保存,然后重新运行Tomcat,就是正常的中文信息了。,原来的值是UTF-8,将其修改为GBK。进入Tomcat安装包下面的。

2024-10-25 09:31:15 368

原创 并发面试题-什么叫做阻塞队列的有界和无界

有界阻塞队列是指队列的容量是有限制的,即在创建队列时指定了一个最大容量限制。

2024-10-23 17:27:37 213

原创 并发面试题-谈谈你对AQS的理解

AQS(AbstractQueuedSynchronizer抽象队列同步器)是Java并发包中的一个核心组件,它提供了一个框架用于实现基于FIFO等待队列的阻塞锁和同步器。AQS通过管理一个同步状态和一个等待队列来控制多线程对共享资源的访问。它定义了一系列模板方法,如tryAcquire、tryRelease等,供子类实现具体的同步机制。AQS使用CAS操作来确保同步状态的原子性,并通过双向链表实现等待队列来管理处于等待状态的线程。它支持独占模式和共享模式,可以方便地实现互斥锁、读写锁、信号量等同步机制。

2024-10-23 15:46:23 832

原创 JAVA课设-基于SringBoot图书指引系统(前后端分离)

该课设题目是图书指引系统,是基于Springboot-Vue实现的,下面是效果图。管理员可以在这里维护图书信息,包括新增、修改、删除及查询等。用户输入图书名称,点击位置按钮可以查看图书具体位置。管理输入管理账号,进入图书信息维护页面。

2024-10-21 21:27:50 262

原创 Docker常用命令

-------------------------------------docker状态。#-------------------------------------docker帮助。#-------------------------------------镜像(增)#-------------------------------------镜像(查)#-------------------------------------镜像(删)

2024-10-21 17:05:57 653

原创 Oracle里面,with ... as 用法介绍

在Oracle数据库中,WITH AS 子句(也称为公用表表达式,CTE, Common Table Expression)是一种在查询中定义临时结果集的方法。这个临时结果集可以在后续的查询中被引用,就像是一个临时的表或视图一样。使用 WITH AS 子句可以使复杂的查询变得更加清晰和可读。

2024-10-19 13:56:25 1321

原创 MySQL面试题-为什么用了索引就会加快查询

而有了索引,MySQL可以迅速定位到索引中满足条件的记录位置,然后直接访问这些记录,从而大大减少了需要扫描的行数。例如,如果有一个索引覆盖了查询所需的所有列,MySQL可以直接从索引中读取数据,而无需访问表的数据行(覆盖索引)。这意味着使用索引时,MySQL可以减少对磁盘的访问次数,因为索引项(而不是整个数据行)被加载到内存中,并且查询可以在内存中快速完成。在并发环境中,索引还可以减少锁争用的情况。因为索引允许MySQL更精确地定位到需要修改的数据行,从而减少了锁定的范围和时间,提高了系统的并发性能。

2024-10-15 15:27:45 349

原创 JDK22主要特性

JDK 22作为Java SE平台的第22个版,在2024年3月份发布,引入了多项新特性,旨在提升Java语言的性能、简化开发过程以及增强代码的可读性和可维护性。以下是对JDK 22主要特性的介绍。

2024-10-15 14:01:29 386

原创 什么是动态规划

动态规划是解决最优化问题的一种强大工具,通过将复杂问题分解成简单子问题,大大提高了解决效率。在0-1背包问题的例子中,我们可以明显看到动态规划如何有效地管理问题的状态,并通过简洁的状态转移关系得到最终的优化结果。理解动态规划的核心思想和应用场景,可以帮助开发者在遇到类似问题时提供高效的解决方案。

2024-10-11 20:36:04 345

原创 TCP连接的三次握手与四次挥手详解

TCP(传输控制协议)是实现可靠数据传输的重要协议之一。TCP协议的设计之初就考虑到了数据在传输过程中的可靠性和完整性,而三次握手和四次挥手就是实现这一目的的基础机制。

2024-10-11 19:18:55 789

原创 MyBatis 分页的实现方式

MyBatis 提供了多种分页方式,主要包括基于 List 结果集的分页、基于 SQL 参数的分页、基于 RowBounds 的分页以及基于插件的分页。下面将分别介绍这些分页方式的实现原理及步骤。

2024-10-10 20:23:51 1250

原创 MyBatis的动态标签详解

MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis通过XML或注解的方式将对象与存储过程或SQL语句关联起来,以实现数据的持久化。MyBatis的强大特性之一是动态SQL,它允许根据不同的条件动态地构建SQL语句,从而避免了在代码中手动拼接SQL语句的复杂性,提高了代码的可读性和可维护性,并减少了SQL注入的风险。

2024-10-10 20:11:45 1264

原创 Synchronized锁的升级流程详解

在Java多线程编程中,synchronized关键字用于确保在同一时刻只有一个线程可以访问被锁定的资源,从而维护数据的一致性和安全性。然而,在多线程环境中,锁的频繁获取和释放会带来性能开销。为了提高性能,Java虚拟机(JVM)在JDK 1.6及以后的版本中引入了锁的升级机制,通过动态调整锁的策略来减少同步操作的开销。本文将详细解释synchronized锁的升级流程,包括无锁状态、偏向锁、轻量级锁和重量级锁四种状态及其转换过程。

2024-10-09 20:18:48 1545

原创 JAVA使用SM2算法生成密钥对加密解密加签验签

SM2是非对称加密算法,一提非对称加密算法,第一想到的是RSA,没错,这个就是替代RSA的。它是基于椭圆曲线密码的公钥密码算法标准,其秘钥长度256bit,包含数字签名、密钥交换和公钥加密,用于替换RSA/DH/ECDSA/ECDH等国际算法。可以满足电子认证服务系统等应用需求,由国家密码管理局于2010年12月17号发布。SM2采用的是ECC 256位的一种,其安全强度比RSA 2048位高,且运算速度快于RSA。

2024-10-09 20:00:03 5003

原创 SpringCloud面试题-SpringCloud主要的组件有哪些

Eureka是Netflix开源的服务发现组件,它提供了客户服务注册与发现的功能。

2024-10-08 20:55:42 580

原创 JAVA设计模式之建造者模式

建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式。建造者模式一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。

2024-10-08 20:40:29 888

原创 MySQL深度分页

在现代Web应用中,数据的逐步展示除了增强用户体验外,还有效提高了系统性能。然而,随着数据集的不断增大,尤其是在数据库表中记录数量达到百万甚至千万级别时,处理深度分页(即访问较后页的数据)就成为一个重要的挑战。本文将详细探讨MySQL中的深度分页,包括其内在机制、性能问题、优化策略及示例,以帮助开发者更有效地管理数据请求。

2024-09-30 16:00:11 795

原创 JAVA设计模式之策略模式

它为所支持的算法声明了抽象方法,是所有策略类的父类,它可以是抽象类或具体类,也可以是接口。环境类通过抽象策略类中声明的方法在运行时调用具体策略类中实现的算法。:环境类是使用算法的角色,它在解决某个问题(即实现某个方法)时可以采用多种策略。在环境类中维持一个对抽象策略类的引用实例,用于定义所采用的策略。:它实现了在抽象策略类中声明的算法,在运行时,具体策略类将覆盖在环境类中定义的抽象策略类对象,使用一种具体的算法实现某个业务处理。抽象策略类[Strategy.java]环境类[Context.java]

2024-09-30 15:12:08 887 1

原创 Spring面试题-哪些情况事务会回滚

1、异常情况未捕获的RuntimeException及其子类异常:这些异常通常被认为是未检查异常(unchecked exceptions)。如果在事务的执行过程中抛出了这类异常,并且没有被捕获处理,事务管理器会自动触发事务的回滚。 显式地捕获并处理但指定回滚的受检查异常(Checked Exception):虽然受检查异常本身不会导致事务自动回滚,但如果在捕获这类异常后,通过编程方式(如手动调用rollback方法)或配置事务管理器(如使用Spring的@Transactional注解并指定r

2024-09-29 10:22:57 347

原创 Spring面试题-声明式事务和编程式事务的区别

基于AOP(面向切面编程)实现,通过配置或注解的方式将事务管理逻辑与业务代码分离。Spring通过代理机制在方法执行前后自动添加事务的开始和结束逻辑,无需在业务代码中显式编写事务管理代码。通过编写具体代码实现事务管理,通常需要使用Spring提供的事务管理API(如或)来显式地控制事务的开始、提交和回滚。

2024-09-27 14:58:08 340

原创 Spring面试题-@Autowired注解和@Resource注解的区别

Autowired@Autowired是Spring框架提供的注解,主要用于自动装配Spring容器中的Beans。通过@Autowired,Spring会根据类型(Type)来自动查找适合的Bean并注入。@Resource@Resource注解来自Java标准规范(JSR-250),是Java EE(Enterprise Edition)的一部分。它允许Java EE容器管理Beans的依赖关系,支持按名称(Name)和类型(Type)进行注入。

2024-09-27 14:00:55 845

原创 并发面试题-sleep和wait的区别

Sleepsleep是一个系统调用,允许当前线程暂停执行特定的时间段。在线程被挂起的这段时间内,它不会做任何事情,线程状态为“休眠”。这个时候,CPU时间片会分配给其他可运行的线程。Wait: wait通常与线程的同步和协调有关。调用wait的线程会暂停,直到其他线程发出特定的信号(如notify或notifyAll)。在这个过程中,wait操作会自动释放当前线程持有的锁,以便其他线程能够执行。

2024-09-26 14:01:47 952

原创 并发面试题-synchronized的作用

在Java编程语言中,synchronized关键字是一种内置的锁机制,用于控制多线程对共享资源的访问。它主要用于实现线程安全,确保在任何时刻只有一个线程可以执行某个特定的代码块或方法。如果不需要同步整个方法,可以使用同步代码块来锁定一段具体的代码,这样可以提高程序的并发性能。通常情况下,这个对象可以是任何一个对象,但最好是私有的,以避免其他部分的代码意外地获取到相同的锁。时,意味着该方法在同一时间只能被一个线程访问。对于实例方法,这个锁是对象实例级别的;对于静态方法,锁是类级别的。

2024-09-26 11:12:03 257

原创 Spring面试题-如何在Spring中为@Value注解设置默认值

在Spring开发中,我们经常会遇到需要从配置文件中读取属性的情况。@Value注解是Spring提供的一种便捷方式,能够让我们轻松地将配置文件中的属性注入到Spring Bean中。但是,在某些场景下,可能会出现配置文件中未定义某个属性,或者由于其他原因无法获取到属性值的情况,Spring将会抛出一个IllegalArgumentException。设置默认值非常简单。你只需要在属性名称后面加上一个冒号。上面的代码表示,如果配置文件中没有定义。异常,这往往不是我们希望的结果。,并跟上默认值即可。

2024-09-25 20:34:19 462

原创 MySQL面试题-表被锁住怎么办

当MySQL中的表被锁住时,解决的方法取决于锁的类型(表锁、行锁等)和导致锁的原因(如长事务、死锁、大量并发请求等)。

2024-09-25 19:06:58 583

原创 微服务面试-修改nacos配置,不重启服务怎生效

是Spring Cloud提供的一种属性刷新机制,它可以应用于需要动态刷新的配置类或方法上。当Nacos上的属性值发生变化时,通过调用/actuator/refresh端点(如果Spring Boot Actuator已集成到项目中)来刷新被。Nacos 提供了动态配置管理的功能,这意味着在不重启应用的情况下,可以实时更新配置。要实现这一点,需要确保你的微服务项目正确地集成了 Nacos 客户端,并且配置了监听机制。这样,应用就能获取到最新的配置信息,而无需重启服务。

2024-09-24 23:46:30 916

原创 JAVA基础面试题-反射的机制

反射是Java语言的一种机制,它允许程序在运行时获取对象的类型信息、访问对象的属性和方法,并调用对象的方法。反射机制使得程序可以在运行时动态地创建对象、调用方法、访问属性等,而不需要在编译时确定这些信息。

2024-09-24 23:43:33 714

原创 JAVA异常面试题-异常的机制

Java 允许开发者根据需要创建自定义异常。自定义异常通常继承自Exception或。自定义异常有助于提高代码的可读性和维护性,使得错误类型更加具体明确。

2024-09-23 19:53:14 1181

原创 JAVA基础面试题-JDK1.8特有的工具类包有哪些?

JDK 1.8(也称为Java 8)引入了许多新的特性和改进,其中一些新加入的工具类和功能增强容易被问道。

2024-09-23 17:37:25 388

原创 并发面试题-创建线程有几种方式

Thread。

2024-09-21 21:49:06 265 1

原创 JVM面试题-说一下JVM主要组成部分及其作用

栈和程序计数器的运行是线程私有的内存区域,运行时数据区域就是我们常说的JVM的内存。总体来说,方法区和堆是所有线程共享的内存区域;

2024-09-21 12:22:37 383

原创 Linux面试题-日志量很大,怎么查看到目标日志

grepgrep。

2024-09-21 11:44:20 527

原创 Spring面试题-Spring有哪些不同类型的依赖注入实现方式?

使用@Autowired或@Resource注解来自动装配指定的bean,在使用@Autowired或@Resource注解之前需要在Spring配置文件进行配置<context:annotation-config />。在启动spring IoC时,容器自动装载了一个AutowiredAnnotationBeanPostProcessor后置处理器,当容器扫描到@Autowied、@Resource时,就会在IoC容器自动查找需要的bean并装配给该对象的属性。

2024-09-20 15:39:34 413

基于javaswing的ktv歌曲管理系统

基于javaswing的ktv歌曲管理系统

2024-10-23

基于javaswing酒店点餐系统

基于javaswing酒店点餐系统

2024-10-23

基于JavaSwing的简单计算器

基于JavaSwing的简单计算器

2024-10-21

空空如也

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

TA关注的人

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