自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 问答 (6)
  • 收藏
  • 关注

原创 MySQL必知必会(两万字MySQL教程,熟练掌握MySQL)

本文是作者在阅读《MySQL必知必会》[英]Ben Forta 著 刘晓霞 钟鸣 译 所整理的阅读笔记,包含了MySQL的从0到1的所有知识点。本文适用于:① 零基础② 刚学MySQL,想快速掌握③ 学过完整的MySQL,想复盘④ 准备面试因为本文大多内容是从书中截取,当然也有作者自己的部分见解,所以可以搭配书本和本文一起学习。另外,本文的sql脚本在下面这个链接中,请在阅读本文前,先运行sql脚本,以便实操。本文数据库脚本文件若有不对的地方,欢迎大家评论区或私信交流!

2023-10-23 20:45:09 927

原创 Java对象排序 Comparator 与 Comparable

这个方法返回一个整数,这个整数表示调用对象和参数对象的相对顺序。:这个接口用于定义某种特定的排序顺序,这种顺序可能与对象的自然顺序不同,或者用于那些没有实现。这个方法返回一个整数,这个整数表示第一个参数对象和第二个参数对象的相对顺序。如果你想定义一种特定的排序顺序,或者你想对没有实现。都是用于对象排序的接口,但它们的使用场景和目的有所不同。总的来说,如果你想定义一个类的默认排序顺序,你应该实现。:这个接口用于定义对象的自然顺序。接口的类的对象进行排序,你应该使用。接口,那么它的对象就可以被排序。

2025-02-06 16:16:41 315

原创 Char和String的区别

类提供了许多方法来操作字符串,例如连接(concatenation)、子字符串(substring)、替换(replace)、搜索(search)等。类型表示的是一个字符序列,可以是空的(“”)、一个字符(“a”)或多个字符(“Hello, World!类型用于表示单个的Unicode字符,例如’a’、‘B’、‘3’或’@'。在Java中是不可变的,这意味着一旦一个。总的来说,你应该根据你的需要来选择使用。变量的值可以改变,只要新的值也是一个。是Java的一种基本数据类型,而。实际上存储的是对其值的引用。

2025-02-05 17:00:56 406

原创 Java中两个不能使用的关键字

语句可以导致程序难以理解和维护,因为它破坏了程序的结构性,使得程序的执行流程变得难以预测。因此,为了鼓励更好的编程实践,Java语言设计者决定不在Java中支持。这个词更能准确地表达其意图,因为它表示一旦一个变量被初始化,它的值就不能再改变。在Java中是保留关键字,但你在编写Java代码时不能使用它们。然而,在Java中,声明常量的方式是使用。语句被用来直接跳转到程序中的另一个位置。都是保留的关键字,但实际上并没有在语言中使用。是一个保留关键字,但Java并没有使用它。: 在许多早期的编程语言中,

2025-02-05 16:54:15 194

原创 Java的基本数据类型的应用场景

这是最大的整数类型,范围从-9,223,372,036,854,775,808到9,223,372,036,854,775,807。当int的范围不足以处理特定的整数时,我们使用long。:这是最常用的整数类型,范围从-2,147,483,648到2,147,483,647。当我们需要处理有小数点的数,而对精度要求不是特别高时,可以使用float。当我们需要处理有小数点的数,并且对精度要求较高时,可以使用double。在选择使用哪种基本数据类型时,你应该考虑你的数据的范围、精度要求、内存使用等因素。

2025-02-05 14:04:45 183

原创 MongoDB简介

MongoDB是一个开源的NoSQL数据库,它使用了一个类似于JSON的格式,称为BSON,来存储数据。这种灵活性来自于它的无模式设计,这意味着你不需要预先定义数据结构,例如创建表,就可以存储数据。每个文档都有一个唯一的_id字段作为主键。:MongoDB支持分布式数据,这意味着你可以在多台机器上存储数据,以提供高可用性和可扩展性。:MongoDB是无模式的,这意味着你可以自由地存储任何类型的数据,不需要预先定义数据结构。:MongoDB支持复制集,这意味着你的数据可以在多台机器上复制,以防止数据丢失。

2024-08-09 15:05:50 421

原创 Sring的IOC和AOP

但在Spring框架中,创建和查找依赖对象的工作不是由对象本身来完成,而是由Spring容器来完成,然后注入到对象中,这就是所谓的控制反转。当一个java类在Spring中被AOP代理时,Spring会创建一个新的代理类,这个类包含了目标类的所有方法,并在特定的切点进行增强处理。总的来说,IOC和AOP是Spring框架的两个核心,它们都是为了提高代码的模块化程度,提高代码的可重用性,提高系统的可维护性。IOC可以增加模块间的解耦,提高模块的可复用性,提高系统的可测试性,提高代码的可读性等。

2024-08-09 14:56:43 302

原创 Java线程池

当任务队列和线程池都满了,说明线程池已经无法处理更多的任务,这时可以通过拒绝策略处理新来的任务。当任务队列满了,且核心线程都在工作时,线程池可以创建更多的线程,但是线程总数不能超过最大线程数。线程池的主要优点是,通过复用已存在的线程,降低线程创建和销毁造成的消耗,提高响应速度,提高线程可管理的数量等。可以通过线程工厂给每个创建出来的线程设置更详细的参数,比如命名线程以方便调试。:线程池中的线程被称为"工作线程"。以上是线程池的一些基本概念和参数,不同的线程池实现可能会有不同的参数和行为。

2024-08-09 14:54:20 276

原创 MYSQL常用函数

以上只是MySQL函数的一部分,MySQL还有许多其他的函数,可以满足各种复杂的查询需求。MySQL提供了许多内置的函数,可以用于各种数据操作。

2024-08-09 14:51:25 243

原创 CHAR和VARCHAR

你存储的字符串长度是1,那么它只会占用1个字节的空间(加上1或2个字节的长度信息)。更好,因为数据库可以更容易地确定数据的物理位置。然而,如果你的字符串长度经常变化,那么。,无论你存储的字符串长度是1还是10,它都会占用10个字节的空间。通常用于存储固定长度的字符串,如性别、国家代码等。时,你需要考虑你的数据的特性,以及你的应用的需求。是固定长度的,所以在某些情况下,它的性能可能会比。则适用于长度可变的字符串,如名字、地址等。可能会更有效,因为它使用的空间更少。会自动去除尾部的空格,而。

2024-08-09 14:33:15 444

原创 #{}和${}的区别

然后通过预编译的方式,将参数设置到SQL语句中。这种方式可以防止SQL注入攻击,因为参数值在设置到SQL语句中时,会被JDBC驱动做必要的转义处理。这种方式可以用于动态地改变SQL语句的结构,但是,因为参数值直接被拼接到SQL语句中,如果参数值是用户提供的,那么可能会存在SQL注入攻击的风险。都可以用于在SQL语句中插入参数,但是它们的工作方式有所不同,这也导致了它们在安全性和灵活性方面有所区别。如果你需要动态地改变SQL语句的结构,并且你能确保插入的值是安全的,那么可以使用。在MyBatis中,

2024-08-09 14:17:15 213

原创 方法的重写(Overriding)和重载(Overloading)

这两个概念的主要区别在于:方法重写是子类改变父类已有方法的行为,而方法重载是在同一个类中定义多个名字相同但参数列表不同的方法。:在同一个类中,如果有两个或者两个以上的方法名相同,但参数列表不同(参数个数或类型不同),则称为方法的重载。:当子类需要改变父类的某个方法的行为时,子类可以定义一个与父类方法签名完全相同的方法,这就是方法的重写。方法都接受不同的参数。

2024-08-09 14:04:33 258

原创 static和final

关键字用于声明一个常量,你可以将其看作是一个不可改变的值。它可以用于声明常量变量、常量方法或者常量类。关键字用于声明独立于对象的静态成员。它可以用于声明静态方法、静态变量或者静态代码块。用于声明一个静态常量,也就是说这个值是不可变的,并且是类的所有实例共享的。这两个关键字可以一起用在一个变量或者方法上。

2024-08-09 13:58:47 244

原创 Java日期格式化注解【@DateTimeFormat和@JsonFormat】✔

如果你需要处理的日期字符串不包含时区信息,那么它将被解析为系统默认的时区。如果你的系统默认时区不是 GMT+8,你可能需要在代码中手动处理时区问题。当你的 Spring 应用程序接收到一个 HTTP 请求,并且请求参数包含日期和时间数据时,对象会被序列化为 “yyyy-MM-dd HH:mm:ss” 格式的字符串,并且使用 GMT+8 的时区。这两个注解通常一起使用,以确保在前后端之间传递日期和时间数据时,数据的格式始终保持一致。参数,如果你需要解析的日期字符串包含时区信息,那么你需要在。

2024-05-23 10:19:04 1397

原创 Java日期格式化(@JsonFormat @JSONField)

和@JSONField都是在 Java 对象序列化为 JSON 格式时,用于指定日期格式的注解,但它们通常与不同的 JSON 库相关联。

2023-11-22 10:00:53 2537

原创 Java知识体系

Java

2023-11-22 09:55:43 162

原创 MySQL实现日期格式化

在 MySQL 中,你可以使用函数来格式化日期。下面是一些使用。

2023-11-22 09:54:07 1125

原创 MySQL索引的添加修改以及删除

在 MySQL 中,可以通过CREATEALTER, 和DROP语句来添加、修改和删除索引。

2023-11-22 09:51:50 3006

原创 SQL查询(专篇)

关键字指定其包括所有行的表**(RIGHT指出的是OUTER JOIN右边的表,而LEFT指出的是OUTER JOIN左边的表)。在这个简单的例子中,使用UNION可能比where更为复杂,但对于更复杂的过滤条件,或者从多个表(而不是单个表)中检索数据,使用UNION可能会使得处理更加简单。外键(foreign key):外键为某个表中的一列,它包含另一个表的主键值,定义了两个表之间的关系。UNION从查询结果集中自动去除重复的行,这是UNION的默认行文,但如果需要改变,可以改变它。

2023-11-22 09:46:58 458

原创 join,inner join,left join,right join的区别

总的来说,INNER JOIN 返回匹配的行,而 LEFT JOIN 和 RIGHT JOIN 返回匹配的行以及左表或右表中没有匹配的行,分别使用 NULL 值填充。这四种关联(join)操作用于合并来自两个或更多表的数据。它们之间的区别主要在于它们对匹配条件和合并的方式的处理。

2023-11-22 09:41:14 176

原创 Cookie和Session的理解

总的来说,Cookie存储在客户端,而Session存储在服务器端。Cookie可以存储更多类型的数据,但由于存储在客户端,存在安全风险。Session相对安全,但在大规模应用中可能会增加服务器负担。选择使用Cookie还是Session通常取决于具体的需求和安全考虑。Cookie和Session都是用于在Web应用中跟踪用户状态的机制,但它们有一些关键的区别。考虑一个用户登录的情境,用Cookie和Session来存储用户信息。

2023-11-22 09:27:11 80

原创 lock和synchronized的区别以及优缺点

lock和都是在多线程编程中用于同步的机制,但它们有一些区别。

2023-11-20 20:43:53 227

原创 MySQL和Redis的区别

总的来说,MySQL和Redis在设计目标、数据模型、存储方式以及适用场景上有很大的差异,开发人员在选择使用时需要根据具体的业务需求和性能要求来进行合理的选择。在一些场景中,二者也可以结合使用,比如将Redis用作缓存,提高读写速度。MySQL(关系型数据库管理系统)和Redis(非关系型内存数据库)是两种不同类型的数据库系统,它们在设计目标、数据存储方式、使用场景等方面存在一些显著的区别。

2023-11-20 20:40:19 169

原创 线程的三种创建方式

【代码】线程的三种创建方式。

2023-11-19 20:06:59 244

原创 Java枚举

enum Day {在这个例子中,Day是一个枚举类型,包含了一周中的每一天作为枚举常量。

2023-11-19 14:18:19 105

原创 Java强制类型转换

在Java中,强制类型转换(也称为类型转换或类型转换)是指将一个数据类型的值转换为另一个数据类型。强制类型转换可能会导致精度损失或溢出,因此在进行强制类型转换时需要注意数据范围和精度。

2023-11-19 14:13:31 163

原创 Java初始化顺序

父类(静态变量、静态语句块)子类(静态变量、静态语句块)父类(实例变量、普通语句块)父类(构造函数)子类(实例变量、普通语句块)子类(构造函数)

2023-11-19 13:53:37 102

原创 Mybatis中#{}与${}的区别

Mybatis中#{}与${}的区别

2023-11-19 13:41:35 83

原创 Object常用方法——clone()

在实际开发中,也可以考虑使用其他方式实现对象的复制,如序列化、构造方法复制等,具体选择取决于需求。方法是Object类中定义的一个方法,用于创建并返回一个对象的拷贝。但是,需要注意的是,方法是浅拷贝,即它只会复制对象的字段值,而不会复制对象引用的其他对象。以下是一个简单的示例,演示了如何使用。类型,因此需要进行类型转换。方法中,我们创建了一个。

2023-11-19 13:38:15 253

原创 Object常用方法——toString()

这个方法返回一个包含对象信息的字符串,可以用于调试、日志记录,或者是将对象的内容以字符串的形式展示给用户。方法是Java中的一个方法,它是Object类的一个公共方法,因此几乎所有的Java类都可以调用这个方法。方法有助于提供更有意义和易读的输出,方便调试和理解对象的状态。这在实际的开发和调试过程中是一个常见的做法。方法返回一个由类名和对象的散列码组成的字符串。在Java中,当我们需要将一个对象转换成字符串时,通常会调用其。方法,以便提供更有意义的字符串表示形式。的主要作用是返回对象的字符串表示形式。

2023-11-19 13:33:04 775

原创 this和super关键字的意义和作用

在Java中,this和super是两个关键字,用于引用对象和父类,分别表示当前对象和父类对象。this。

2023-11-19 11:37:20 312

原创 Java中对象引用是什么意思

在Java中,对象的引用指的是一个变量,该变量存储了对象在内存中的地址。变量本身并不直接存储对象的实际内容,而是存储了对象的引用,通过引用可以访问和操作对象的属性和方法。变量可以存储基本数据类型的值,也可以存储对象的引用,即对象在内存中的地址。引用的概念使得在Java中可以方便地操作和传递对象,同时也引入了一些概念,如对象的生命周期、引用的传递、垃圾回收等。特别需要注意的是,对于基本数据类型(如整数、浮点数等),变量存储的是实际的数值,而对于对象类型,变量存储的是对象在堆内存中的地址。

2023-11-19 11:36:42 441

原创 抽象类和接口的使用场景

抽象类(Abstract Class)和接口(Interface)是Java中两种实现抽象类型的方式,它们各自有不同的使用场景和适用情况。

2023-11-19 11:27:59 301

原创 MySQL索引类型

选择合适的索引类型取决于具体的查询需求和数据特性。不当使用索引可能导致性能问题,因此在设计数据库时需谨慎选择和创建索引。MySQL支持多种类型的索引,这些索引可以加快查询操作的速度并优化数据库性能。

2023-11-19 10:29:31 97

原创 线程和进程的区别

总的来说,线程和进程各有优势和劣势,选择使用哪种取决于具体的应用场景和需求。

2023-11-19 10:27:36 111

原创 工厂模式介绍

抽象工厂模式提供了一组相关或相互依赖的对象的创建接口,而不指定它们的具体类。客户端通过调用工厂接口或抽象类的方法来创建一组相关的产品。// 抽象工厂接口// 具体工厂1// 具体工厂2// 产品A接口// 具体产品A1// 具体产品A2// 产品B接口// 具体产品B1// 具体产品B2// 客户端代码工厂模式提供了一种创建对象的灵活方式,使得客户端代码不需要直接依赖具体类,而是依赖于抽象接口或类。

2023-11-16 18:53:01 74

原创 关于Spring Bean的一些总结

Spring中的Bean生命周期是指一个Bean从被创建、初始化,到被使用,再到被销毁的整个过程。在Spring容器管理的Bean中,生命周期的管理主要通过回调方法和事件监听来实现。destroySpring容器负责管理Bean的生命周期,通过在Bean的配置中指定回调方法、使用注解或接口等方式,可以对Bean的生命周期进行定制。

2023-11-16 18:52:17 198

原创 组合索引实例

组合索引(Composite Index)是包含多个列的索引,允许在多个列上进行排序和搜索。与单列索引不同,组合索引考虑了多个列的联合效果,可以提高某些查询的性能。(a, b, c)

2023-11-16 18:47:10 115

原创 数据库事务的隔离级别介绍

这三种问题与事务隔离级别密切相关,不同的隔离级别对这些问题的解决方式不同。例如,串行化隔离级别通常可以避免脏读、不可重复读和幻读,因为它在读取和写入数据时引入了锁,确保同一时刻只有一个事务能够访问特定的数据。在实际开发中,隔离级别的选择需要根据应用程序的需求和性能考虑。默认情况下,大多数数据库使用的是读已提交的隔离级别。在选择隔离级别时,需要权衡并发性能和数据一致性之间的关系,并根据具体的业务需求来做出合适的选择。

2023-11-16 18:43:33 84

原创 对象比较【边界】

对于较小的整数(通常在-128到127之间,包括边界),JVM使用缓存对象以提高性能。这意味着在此范围内的。在你的例子中,值都是128,这超出了通常发生整数缓存的范围。这段代码的打印结果是false。然而,对于超出此范围的值,将创建新的。对象将引用内存中的相同对象,因此。,因为将为每个变量创建不同的。当你在Java中使用。,因为对象是不同的。对象的值,你应该使用。

2023-11-16 18:31:32 81

空空如也

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

TA关注的人

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