自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MyBatis一级和二级缓存介绍

MyBatis是一个持久层框架,它提供了一级缓存和二级缓存来提高数据库操作的性能。

2024-06-08 14:41:35 421

原创 Spring框架IoC和AOP

无论是Web应用开发、数据访问、AOP编程还是依赖注入,Spring都可以提供相应的解决方案,并且可以与其他框架和技术无缝集成,帮助开发者更高效地完成项目开发。Spring提供了一个轻量级的容器,用于管理和装配应用程序的对象。通过将对象的创建和依赖关系的管理交给Spring容器,开发人员可以更轻松地编写可测试和可扩展的代码。它通过将对象的依赖关系注入到对象中,而不是在对象内部创建和管理依赖关系,从而实现了松耦合的设计。模块化开发:Spring框架采用模块化的设计,使开发人员可以选择性地使用框架的不同功能。

2024-06-08 14:39:04 331

原创 异步和同步

使用异步JSON的好处是可以提高程序的性能和响应速度,尤其在处理大量的数据时效果更加明显。异步提交表单:当用户在网页上填写完一个表单后,点击提交按钮时,如果使用同步方式提交表单,用户需要等待服务器响应完成后才能继续其他操作。在处理JSON(JavaScript Object Notation)数据时,异步和同步的方式也是可以用来读取和解析JSON数据的。总的来说,异步JSON适用于对性能和响应速度要求较高的情况下,而同步JSON适用于对数据的完整性和一致性要求较高的情况下。

2024-04-08 15:44:50 508 1

原创 认识Redis

例如,可以使用 Redis 原子递增操作来实现网站的页面访问计数器,或者使用 Redis 的过期时间功能来实现短时间内的计时器。可以使用 Redis 的字符串数据结构存储用户的会话信息,并使用 Redis 提供的过期时间功能来管理会话的有效期。可以将用户的得分作为有序集合中的成员,使用 Redis 提供的命令进行排名和排行榜的操作。通过获取和释放锁,可以防止并发访问导致的数据冲突。Redis是一个开源的高性能键值数据库,它存储数据以键值对的形式,可以存储字符串、列表、哈希表、集合和有序集合等数据结构。

2024-03-14 11:39:29 1631 1

原创 Java多态

然后调用animal1和animal2的sound()方法,由于多态的特性,实际上会调用各自类中的重写方法。动态加载类(Dynamic Class Loading):Java允许在运行时动态地加载类,而不需要在编译时将所有的类都加载进来。通过动态代理,程序可以在运行时动态地创建代理类,并在代理类中添加相关的逻辑,实现对被代理对象的控制和扩展。可以看到,animal1和animal2虽然都是Animal类型的对象,但它们的sound()方法根据实际的对象类型而执行不同的实现。

2024-03-07 10:27:57 713 1

原创 Java的封装

通过公共的getter和setter方法,可以对name和age进行访问和操作。在Java中,封装通常通过定义类的私有字段(private)和公共方法(public)来实现。通过公共方法,可以对私有字段进行操作和访问,同时可以添加其他的逻辑,对数据进行验证和处理。封装可以隐藏实现细节,使得类的使用者只需要关注类的公共接口,而不需要了解类的内部实现。封装是一种面向对象编程的概念,它指的是将数据和操作数据的方法捆绑在一起,形成一个类。封装可以隐藏类的实现细节,只暴露必要的方法给外部使用。

2024-03-06 11:02:39 586 2

原创 认识JAVA接口

抽象类 vs 接口:接口只能定义方法的声明,而抽象类既可以定义方法的声明又可以定义方法的实现。通过使用接口,我们可以定义一组共同的方法,然后让不同的类去实现这些方法,从而达到代码重用和扩展的目的。实现多重继承:Java中不支持类的多重继承,但一个类可以实现多个接口,从而实现多重继承的效果。定义规范:接口可以定义一组方法,实现接口的类必须实现这些方法,以满足特定的规范。多态性:通过接口可以实现多态性,即不同的对象可以以相同的接口进行使用。定义常量:接口可以定义一些常量,这些常量可以被实现接口的类直接使用。

2024-03-05 14:11:39 624 1

原创 认识java继承

这只是一个简单的例子,实际上,继承的概念在更复杂的Java程序中发挥了重要作用。通过继承,我们可以创建更多的子类,它们继承了父类的特性,并且可以根据需要添加自己的方法和属性。上述例子中,我们创建了一个名为dog的Dog对象,给它的name属性赋了一个值"Bobby",然后调用了display()和eat()方法。在Java中,继承是一种重要的对象间的关系,它允许一个类继承另一个类的属性和方法。继承使用关键字"extends"来实现,子类继承了父类的所有非私有属性和方法,并可以在子类中添加新的属性和方法。

2024-03-04 16:34:38 313 3

原创 认识JAVA数组

上述代码创建了一个长度为5的整数数组,然后通过索引为每个元素赋值。接着,通过索引访问数组中的元素,并使用循环遍历数组打印出所有元素。展示了如何使用数组来存储和访问多个相同类型的数据。

2024-03-04 11:23:36 502 2

原创 认识JAVA集合和使用集合

它提供了一系列接口和类来实现不同类型的集合,包括列表(List)、集合(Set)、映射(Map)等。修改元素:Set集合中的元素是不可修改的,如果需要修改元素,需要先删除旧元素,再添加新元素。查找元素:使用get()方法,或使用contains()方法进行判断。注意:Map中的键是唯一的,新增相同键的元素会替换掉原来的值。修改元素:使用put()方法,将新的值放入相同的键中。查找元素:使用get()方法,根据键获取对应的值。删除元素:使用remove()方法。修改元素:使用set()方法。

2024-03-01 11:19:29 511 2

原创 mysql 悲观锁与乐观锁的详解

悲观锁和乐观锁是两种不同的并发控制机制,用来处理多个用户同时访问数据库时可能出现的冲突问题。悲观锁是指在整个数据读取和更新的过程中,始终保持着对数据的悲观态度,认为随时可能发生冲突,所以在对数据进行任何操作之前都会先将其锁定,以防止其他用户更新数据。悲观锁可以在事务中使用,通过使用SELECT ... FOR UPDATE语句对数据进行锁定,以保证在事务中不会发生数据冲突。悲观锁的缺点是会降低并发性能,因为每次操作都需要进行锁定和解锁。乐观锁是指在整个数据读取和更新的过程中,始终保持着对数据的乐观态

2024-02-29 09:12:56 475 4

原创 多线程 认识线程池

总之,线程池是多线程编程中非常常用的一种技术,它可以帮助我们提高程序的性能和资源利用率,提供线程管理和调度能力,同时还可以避免一些多线程并发执行时的常见问题。提高性能和资源利用率:通过复用线程,避免频繁地创建和销毁线程,减少了系统资源的消耗,提高了程序的性能和资源利用率。多线程的线程池是一种常用的线程管理机制,它可以帮助我们有效地管理和复用线程,提高程序的性能和资源利用率。提供线程管理和调度能力:线程池可以方便地管理和调度线程,包括线程的创建、销毁、启动、暂停和恢复等操作。

2024-02-29 09:09:19 540

原创 认识Spring

Spring是一个开源框架,用于构建企业级Java应用程序。Web开发:Spring框架提供了丰富的Web开发功能,包括MVC框架、REST服务、WebSocket等,可以快速开发高性能的Web应用程序。集成:Spring框架提供了与其他框架和技术的集成支持,包括Spring Boot、Spring Cloud、Spring Security等。数据访问:Spring框架提供了对各种数据访问技术的集成支持,包括JDBC、Hibernate、MyBatis等,简化了数据访问层的开发。

2024-02-28 11:06:55 414 2

原创 认识微服务

微服务架构可以带来许多优势,如提高系统的可维护性、可扩展性和可测试性,加速开发和部署速度,以及促进团队之间的协作和创新。每个服务都可以独立开发、部署、运行和扩展,而且可以使用不同的编程语言和技术栈。微服务是一种架构风格,它将一个应用程序拆分为一组小型、独立的服务,每个服务都可以单独部署、维护和扩展。技术多样性:由于每个微服务都是独立的,因此可以使用不同的技术栈和工具来实现不同的服务。可伸缩性:由于每个微服务都可以独立部署和扩展,因此可以根据实际需求对每个服务进行水平扩展,从而提高系统的整体性能和可伸缩性。

2024-02-27 11:32:48 1420 1

原创 认识StringMVC框架

它的目标是帮助开发人员更好地组织和管理代码,并提供一种简单和灵活的方式来开发和维护应用程序。在StringMVC中,模型(Model)表示应用程序的数据和业务逻辑,视图(View)负责展示数据和与用户交互,控制器(Controller)处理用户的请求并更新模型和视图。可扩展性(Scalability):StringMVC提供了灵活的机制来添加新的模型、视图和控制器,并支持模块化开发。总而言之,StringMVC是一个功能强大且易于使用的框架,可帮助开发人员构建高效和可维护的Web应用程序。

2024-02-26 09:08:36 369 3

原创 认识MyBatis介绍

MyBatis的核心思想是将SQL语句与Java代码的逻辑分离,将SQL语句定义在XML配置文件中,然后通过Java代码调用MyBatis的API来执行SQL语句。MyBatis是一个开源的Java持久化框架,它提供了一种简化数据库访问的方式。MyBatis通过使用简单的XML或注解配置,将Java对象与数据库之间的映射关系进行了解耦,从而实现了面向对象的数据库访问。总之,MyBatis是一个功能强大、灵活易用的Java持久化框架,通过简化数据库访问的方式,提供了一种高效可靠的数据持久化解决方案。

2024-02-22 17:21:41 290 1

原创 认识Spring Boot详细介绍

它简化了Spring应用程序的配置和部署过程,提供了大量的开箱即用的功能和约定,使得开发者可以专注于业务逻辑的实现,而不必关注繁琐的配置和部署细节。总之,Spring Boot通过提供简化的配置和开箱即用的功能,大大简化了Spring应用程序的开发和部署过程,使得开发者可以更加专注于业务逻辑的实现,提高开发效率。简化配置:Spring Boot提供了自动配置的能力,根据项目的依赖和配置文件,自动化地进行配置和装配,减少了繁琐的手动配置过程。

2024-02-21 11:55:43 517 1

原创 vue的生命周期

updated(更新完成):在此阶段,Vue实例的数据已经更新完成,并且虚拟DOM也重新渲染完成,此时可以进行DOM操作。mounted(挂载完成):在此阶段,Vue实例已经将编译好的虚拟DOM挂载到了真实的DOM上,此时可以进行DOM操作。beforeUpdate(更新前):在此阶段,当Vue实例的数据发生改变时,会触发此阶段。created(创建完成):在此阶段,Vue实例已经完成了数据观测,属性和方法已经被设置,但是DOM还未挂载。Vue的生命周期是指Vue实例从创建到销毁期间所经过的一系列过程。

2024-02-20 10:55:30 815

原创 解释 Git 的基本概念和使用方式

分支(Branch):分支是仓库中独立的开发线路,可以在不影响主分支的情况下进行开发和实验。提交(Commit):提交是Git中的基本操作,用于将更改记录到仓库中。推送和拉取:使用git push命令将本地更改推送到远程仓库,使用git pull命令从远程仓库拉取最新的更改。一个仓库可以包含多个文件和文件夹。切换分支:使用git branch命令查看所有分支,并使用git checkout命令切换到其他分支。查看状态:使用git status命令查看当前仓库的状态,包括修改的文件和未暂存的更改。

2024-02-20 10:40:09 426

空空如也

空空如也

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

TA关注的人

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