自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 集合篇-根据字符串出现频率排序

【代码】集合篇-根据字符串出现频率排序。

2025-08-03 23:05:31 121

原创 力扣-最大单词长度乘积

给你一个字符串数组 words,找出并返回 length (words [i]) * length (words [j]) 的最大值,并且这两个单词不含有公共字母。如果不存在这样的两个单词,返回 0。

2025-08-01 23:56:49 254

原创 网络编程-加密算法

计算机网络是指两台或更多的计算机组成的网络,在同一个网络中,任意两台计算机都可以直接通信,因为所有计算机都需要遵循同一种网络协议。那什么是互联网呢?互联网是网络的网络(internet),即把很多计算机网络连接起来,形成一个全球统一的互联网。对某个特定的计算机网络来说,它可能使用网络协议ABC,而另一个计算机网络可能使用网络协议XYZ。如果计算机网络各自的通讯协议不统一,就没法把不同的网络连接起来形成互联网。因此,为了把计算机网络接入互联网,就必须使用TCP/IP协议。TCP/IP。

2025-08-01 20:17:39 613

原创 day21-Excel文件解析

在应用程序的开发过程中,经常需要使用Excel文件来进行数据的导入或导出。所以,在通过Java语言实现此类需求的时候,往往会面临着Excel文件的解析(导入)或生成(导出)。Apache POIJXL等。Apache POI基于DOM方式进行解析,将文件直接加载内存,所以速度较快,适合Excel文件数据量不大的应用场景。JXL只支持Excel 2003以下版本,所以不太常见。

2025-07-30 19:06:34 669

原创 JSON解析(day20)

JSON是一种轻量级的数据交换格式。它基于ECMAScript, 欧洲计算机协会制定的JavaScript规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

2025-07-29 23:03:45 1044

原创 文件操作 & IO流

Reader是Java的IO库提供的另一个输入流接口。和的区别是,是一个字节流,即以byte为单位读取,而Reader是一个字符流,即以charReader字节流,以byte为单位字符流,以char为单位读取字节(-10~255int read()读取字符(-10~65535int read()是所有字符输入流的超类,它最主要的方法是int read(),这个方法读取字符流的下一个字符,并返回字符表示的int,范围是0~65535。如果已读到末尾,返回-1。2.方法。

2025-07-28 21:29:21 841

原创 每日一练(回文串)

【代码】每日一练(回文串)

2025-07-27 22:44:50 433

原创 java基础(day16)set-map

HashMap内部数据结构使用数组链表红黑树进行存储。数组类型为Node[],每个Node都保存了某个KV键值对元素的keyvaluehashnext等值。由于next的存在,所以每个Node对象都是一个单向链表中的组成节点。当新添加一个KV键值对元素时,通过该元素的key的hash值,计算该元素在数组中应该保存的下标位置。如果该下标位置如果已经存在其它Node对象,则采用链地址法处理,即将新添加的KV键值对元素将以链表形式存储。将新元素封装成一个新的Node对象,插入到该下标位置的链表尾部(尾插法)。

2025-07-26 17:08:28 908

原创 谈谈ArrayList与Vector的理解?

从接口实现上,ArrayList与Vector都是基于动态数组实现的List接口的集合实现类。

2025-07-24 23:41:33 443

原创 谈谈你对ArrayList的理解,有了解过LinkedList吗?

将头节点赋值给f节点,new一个新节点,此节点有三个元素,pre,next,e。当元素不足时,调用grow()方法进行扩容,每次扩容后容量都会变为原来的1.5倍。指定位置插入:在指定位置插入新元素,需要从链表的头节点(或尾节点),遍历到指定的位置,然后在修改指定节点的prev前驱指向新节点。当ArrayList容量超出范围,需要扩容,这里我们将原数组复制到新数组中,然后在执行添加元素的操作。头插: 只需要头节点的前驱指向新节点,就可以完成插入操作。尾插:只需要尾节点的next后继指向新节点。

2025-07-23 23:20:13 580 1

原创 java基础(the 15th day)

在集合类中,List是最基础的一种集合:它是一种有序列表。ListList内部按照放入元素的先后顺序存放,每个元素都可以通过索引确定自己的位置,List的索引和数组一样,从0开始。List和数组类似,也是有序结构。但是,如果我们使用数组,在添加和删除元素的时候,会非常不方便。因此,在实际应用中,需要增删元素的有序列表,我们使用最多的是ArrayList。实际上,ArrayList在内部使用了数组来存储所有元素。size=5然后,往内部指定索引的数组位置添加一个元素,然后把size加1size=6。

2025-07-23 18:34:29 956

原创 java基础(the 14th day)

在编写程序的过程中,发现程序运行结果与预期不符,怎么办?2001年以前,全凭System.out和System.err打印出执行过程中的某些变量,观察每一步的结果与代码逻辑是否符合,然后有针对性地修改代码。代码改好了怎么办?当然是删除没有用的System.out和System.err语句了。如果改代码又改出问题怎么办?再加上输出语句。反复这么搞几次,很快大家就发现这样非常麻烦。产生大量的IO操作 同时在生产环境中 无法合理的控制是否需要输出输出的内容不能保存到文件。

2025-07-22 18:22:17 726

原创 java基础(day13)

注意到Weekday定义的常量范围是0~6,并不包含7,编译器无法检查不在枚举中的int值;定义的常量仍可与其他变量比较,但其用途并非是枚举星期值。但是,无论是int常量还是String常量,使用这些常量来表示一组枚举值的时候,有一个严重的问题就是,编译器无法检查每个值的合理性。// TODO:注意到Weekday定义的常量范围是0~6,并不包含7,编译器无法检查不在枚举中的int值;定义的常量仍可与其他变量比较,但其用途并非是枚举星期值。

2025-07-22 00:21:29 548

原创 java12基础(day12)

首先来回顾下String类的特点: 任何的字符串常量都是String对象,而且String的常量一旦声明不可改变,如果改变对象内容,改变的是其引用的指 向而已。虽然可以直接拼接字符串,但是,在循环中,每次循环都会创建新的字符串对象,然后扔掉旧的字符串。的赋值写法,称为自动装箱(Auto Boxing),反过来,把Integer变为int的赋值写法,称为自动拆箱(Auto Unboxing)。等)都会创建新的字符串对象。,但实际上那只是Java编译器在编译期,会自动把所有相同的字符串当作一个对象放入常量池,

2025-07-20 15:53:52 578

原创 java基础(day11)

friendly(默认访问修饰符):在同一包内可见,不使用任何修饰符。使用位置:类、接口、变量、方法。private(私有访问修饰符): 在同一类的内部可见。使用位置:变量、方法。public(公共访问修饰符): 对所有类可见。使用位置:类、接口、变量、方法protected(保护访问修饰符): 对同一包内的类、或子类(子类可以不同包)可见。使用位置:变量、方法。修饰符当前类同一包内子类(同一包)子类(不同包)其他包publicYesYesYesYesYesprotected。

2025-07-19 13:28:43 555

原创 hashmap扩容机制

2025-07-17 20:54:31 190

原创 java基础(day10)

如果父类的方法本身不需要实现任何功能,仅仅是为了定义方法签名,目的是让子类去覆写它,那么,可以把父类的方法声明为抽象方法在定义一个方法时使用abstract关键字,表示它是一个抽象方法,本身没有实现任何方法语句。因为这个抽象方法本身是无法执行的,所以,Person类也无法被实例化。编译器会告诉我们,无法编译Person类,因为它包含抽象方法。/*当一个类中没有成员变量,且所有的方法为抽象方法时,可以定义为接口接口定义:修饰符 interface I接口名{1.常量2.抽象方法()

2025-07-17 19:39:27 1010

原创 spring容器的bean是单例还是多例的?线程安全吗?

spring容器的bean默认是单例的。默认是项目启动时实例化的,(如果想要延迟初始化,通过@lazy注解可以延迟初始化)。首先,bean的线程安全取决于bean的状态及bean的作用域。

2025-07-16 23:16:53 462

原创 hashMap原理(一)

默认负载因子是0.75,当HashMap的元素数量达到数组容量的75%时,HashMap会自动扩容,通常会将数组容量扩展为原来的2倍。扩容时,HashMap会重新分配一个更大的数组,并将原来的数组映射到新的数组中,这个过程叫做rehashing。当链表长度过长时候,时间复杂度变为O(n).当链表长度超过一定的阈值(默认是8)时,链表会转换为红黑树,从而将时间复杂度从O(n)降低到O(log n).如果发生哈希冲突,hashMap会将相同的哈希值的元素以链表的形式存储在一个桶中(数组的某个位置)。

2025-07-16 22:07:52 193

原创 java基础(day09)

术语中我们把Person称为 超类(super class),父类(parent class),基类(base class, Student称为子类(sub class).一般来说,java中,父类没有明确写继承的类,编译器会自动加上extends object,所有的类最终的都会指向。,不能把父类变为子类,因为子类功能比父类多,多出的功能无法凭空变出来。实际上判断一个变量所指向的实例是否是指定类型,或者这个类型的子类。和向上转型相反,如果把一个父类类型强制转型为子类类型,就是向下转型(

2025-07-16 20:18:41 1056

原创 java基础(day08)-面向对象

面向对象编程,是一种通过对象的方式,把现实世界映射到计算机模型的一种编程方法。class和instance所以,只要理解了class和instance的概念,基本上就明白了什么是面向对象编程。类class是一种对象模版,它定义了如何创建实例,因此,class本身就是一种数据类型.对象:而instance是对象实例,instance是根据class创建的实例,可以创建多个instance,每个instance类型相同,但各自属性可能不相同.注意:a.new关键字用于创建一个对象的实例.

2025-07-15 19:09:41 947

原创 0-1搭建springboot+vue的教务管理系统(核心源码)

需要源码的评论区扣666.

2025-07-14 23:44:14 413

原创 java基础(day07)

从jdk1.5开始,java支持传递同类型的一组值,作为参数,传递给方法中的一个参数,该参数为动态参数。(通常为例如int...a)在一个类中,我们可以定义多个方法。如果有一系列方法,它们的功能都是类似的,只有参数有所不同,概念:指为获得某种东西或达到某种目的而采取的手段与行为方式。有时候被称作“方法”,有时候。的语法允许把这一组方法名定义为同名方法。

2025-07-14 23:02:51 240

原创 java基础(day06)

因为越到后面随机到的数与前面选出的数重复的概率越大。这个时候,就需要用到数组乱序算法。的随机数,因为在这个过程中,产生重复数字的概率是非常大的。,不符合"不重复"的要求,所以需要重新生成随机数。,实现算法中有一个非常著名的洗牌算法。个不重复的数的话,随机次数远远大于。个不重复数(也可以理解为产生。的数组,里面的元素是从。实现过程中,不仅仅是用。,第二次如果再一次随机到。》中介绍,很多人直接称。

2025-07-13 20:45:49 478

原创 java基础(day05)

双指针遍历的方式进行查找:通过两个下标,分别从数组头部和尾部,同时对该无序数组进行遍历,将数组中的每个元素与指定元素进行比较,从而确定该数组中是否存在指定元素。注:二分查找的效率高效,是因为它在匹配不成功的时候,每次都能排除剩余元素中一半的元素。遍历的方式进行查找:可以通过对该无序数组进行遍历,将数组中的每个元素与。循环:因为数组的每个元素都可以通过索引来访问,因此,使用标准的。的查找,可以采用二分查找算法,提高查找元素的效率。循环无法拿到数组的索引,因此,到底用哪一种。数组的元素,而不是索引。

2025-07-11 20:00:24 504

原创 java基础(day04)-流程控制

通常不推荐这样写,但是,某些情况下,为了配合一些特殊的逻辑,语法规则上是允许省略。循环会先初始化计数器变量,然后,在每次循环前,通过计数器变量检测循环条件,在每次循环后更新计数器变量。由于浮点数在计算机中,无法精确表示,并且计算可能出现误差,因此,判断浮点数相等用。循环更适合不固定次数的循环,因为它们的语法结构中,更容易表达一个。类型有最大值,达到最大值后,再加1会变成负数,结果,意外退出了。类型,它们的内容是相同的,但是,分别指向不同的对象,循环的语法结构中,存在三个语法位置,可以分别去控制。

2025-07-10 22:31:00 547 2

原创 java基础(day03)

定义一个数组类型的变量,使用数组类型“数据类型 []”的语法,例如,int[]。和单个基本类型变量不同,数组变量初始化必须使用new int[5]或{... ...}表示创建一个可容纳5个int元素的数组内存空间。// 默认初始化// 整数类型:0// 浮点数默认:0.0// 布尔: false// 字符不可见// java中的数组必须先初始化,然后才可以使用注意:声明后必须先初始化;注意这种:静态省略初始化// 静态省略初始化// 声明和赋值同时操作。

2025-07-09 23:09:00 400

原创 java基础(day02)

在计算机中,浮点数虽然表示的范围大,但是,浮点数有个非常重要的特点,就是浮点数常常无法精确表示,会出现精度丢失问题。对于long类型,需要加上l或L后缀,由于l与数字1相近似,所以一般都采用L后缀同一个整数,使用不同进制表示,完全相同。在转型时,浮点数的小数部分会被丢掉。常量在定义时,必须进行初始化赋值,之后就不可再次赋值,再次赋值会导致编译错误。由于整数存在范围限制,如果计算结果超出了范围,就会产生溢出,而溢出不会出错,会得到一个奇怪的结果。由于,浮点数常常无法精确表示,因此,浮点数运算也会产生误差。

2025-07-08 21:40:53 918

原创 java基础(day01)

一天一更

2025-07-07 20:01:08 390

原创 数据库连接池

释放空闲时间超过最大空闲时间的连接,来避免因为没有释放而一起的数据库连接遗露。允许应用程序重复使用一个现有的数据库连接,而不是在重现建立一个。List<User>是用来存取select查询返回的结果。数据库连接池是个容器,负责分配,管理数据库连接。标准接口:DataSource。

2025-03-24 18:02:03 391

原创 三层架构(Service,Controller,Dao)

控制层,接收前端发送的请求,对请求进行处理,并响应数据。:业务逻辑层,处理具体的业务逻辑。:数据访问层(Data Access Object)(持久层),负责数据访问操作,包括数据的增删改查。

2025-03-19 15:38:51 412 1

原创 静态顺序表

【代码】静态顺序表。

2025-02-27 23:25:34 297

原创 java-多线程(一)

线程是操作体统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。并发:在同一时刻,有多个指令在单个CPU上交替执行。并行:在同一时刻,有多个指令在多个cpu上同时执行。

2025-01-10 22:55:55 507 1

原创 mysql-视图,索引

索引是帮助mysql高效获取数据的数据结构。在数据之外,数据库系统还维护这满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在这条SQL查询语句上。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图是动态生成的。索引只写了一小部分,可以去看下索引文章!视图(view)是一种虚拟存在的表。

2025-01-04 20:01:37 316

原创 mysql-触发器

触发器是与表有关的数据对象,指在insert/update/delete之前或之后,触发并开始执行触发器中定义的SQL语句集合,触发器 这种特性可以协助应用在数据库段确保数据的完整性,日志记录,数据校验等操作。

2025-01-04 15:23:29 798

原创 mysql-存储过程(案例版)

loop实现简单的循环,如果不在sql逻辑中增加退出循环的条件,可以用其来实现简单的死循环。while 循环是有条件的循环控制语句。满足条件后,在执行循环体中的SQL语句。# 先判断条件,如果条件为true,则执行逻辑,否则,不执行逻辑。loop可以配合以下两个语句使用。while 条件 do。

2025-01-02 21:26:37 909 2

原创 mysql-存储过程

是根据需要定义的在局部生效的变量,访问之前,需要declare声明。show [session|global] variables like '...' ---可以通过模糊匹配查找变量。是用户根据需要自己定义的变量,用户变量不用提前声明,在用的时候直接用“@变量名”使用就可以。变量类型就是数据库字段类型:INT,BIGINR,CHAR,VARCHAR,DATE,TIME等。---查看指定变量的值。--查看所有系统变量。变量:系统变量是mysql服务器提供,不是用户定义的,属于服务器层面。

2025-01-02 12:59:13 953

原创 时间复杂度(斐波那契)

#时间复杂度

2024-12-31 18:05:50 298

原创 二分查找的时间复杂度

可以理解为折纸条!​​​​​​二分查找一共折了 X次,得2^x=N => x = log2^N;

2024-12-28 23:19:19 241

原创 时间复杂度

时间复杂度(一)

2024-12-28 20:46:48 384

空空如也

空空如也

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

TA关注的人

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