- 博客(45)
- 收藏
- 关注
原创 代码随想录算法训练营第十一天| 150. 逆波兰表达式求值、239. 滑动窗口最大值、347.前 K 个高频元素
思路:遇到数字入栈,遇到字符,出栈中的两个数字,然后计算,得到的结果再入栈。
2025-06-09 18:35:11
215
原创 代码随想录算法训练营第十天| 232.用栈实现队列、225. 用队列实现栈、20. 有效的括号、1047. 删除字符串中的所有相邻重复项
比较简单,熟悉相应类和方法即可。思路:关键在于出队时的操作,每次出队时都先判断s2中有没有元素,若有,则出s2的元素,若没有则把s1中的元素都出栈放到s2中。
2025-06-06 21:53:30
172
原创 代码随想录算法训练营第九天| 151.翻转字符串里的单词、55.右旋转字符串 、字符串总结
面试的时候可能分析时间复杂度,这时候需要属性常见库函数的时间复杂度;写代码的时候,一些常见的方法和常用类要熟记。鉴于作者水平有限,文章可能存在错误。
2025-06-05 23:24:07
322
原创 代码随想录算法训练营第八天| 344.反转字符串 、 541. 反转字符串II、 卡码网:54.替换数字
思路:双指针,一前一后交换对应位置的字母。
2025-06-04 12:04:25
134
原创 代码随想录算法训练营第七天| 454.四数相加II 、383. 赎金信 、 15. 三数之和 、 18. 四数之和
判断是否存在某数,可以用hashset。判断某数存在的同时需要获取其下标,用hashmap。涉及到去重,用双指针法,去重是难点。多数之和,双指针法的双指针只能确定两个数,其他数都需要for循环。鉴于作者水平有限,文章可能存在错误。
2025-06-03 18:07:37
177
原创 代码随想录算法训练营第六天| 242.有效的字母异位词 、 349. 两个数组的交集 、 202. 快乐数 、1. 两数之和
思路:设立一个数组(int(26)),每个位置存放26个英文字母的数量,然后遍历统计第一个字符串中的字母出现的数量,遍历第二个字符串时,让对应的字母位置的数字-1,最后看是否数组中的数字都为0。
2025-06-02 23:35:36
509
原创 代码随想录算法训练营第四天| 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II
题目总结:虚拟头节点的作用比较大,可以让每一次交换的操作都一致。然后交换指针的顺序也很重要。
2025-05-31 18:37:32
212
原创 Java八股-数据类型转换有哪些?类型互转会有什么问题?为什么用bigDecimal 不用double ?自动装箱和拆箱?包装类?
显示类型转换:在前面一个括号,里面写上要转换的类型隐式类型转换:小范围的数据类型转大范围的,int到long,float到double字符串转整形或浮点:整形:Integer.parseInt();浮点:Double.parseDouble()
2025-05-30 22:11:21
653
原创 代码随想录算法训练营第三天| 链表理论基础、203.移除链表元素、707.设计链表、206.反转链表
链表由一堆结点组成单链表的结点由数值部分(val)和指向下一个结点的指针部分组成。
2025-05-30 21:34:44
238
原创 Java八股-Java优缺点,跨平台,jdk、jre、jvm关系,解释和编译
劣势:运行速度慢(相比于c++和rust这样的原生编译语言会比较慢),语法繁琐(相比于python),内存占用大(jvm本身占内存)编译是指:字节码中的频繁执行的热点内容会被虚拟机中的即时编译器(JIT)编译和优化,可以提高执行效率。jre是java运行环境,是给使用者用的,包含jvm和一些Java类库。优势:面向对象,平台无关,垃圾回收,强大的生态系统。因为jvm是跨平台的,Java的跨平台依托于jvm。jvm是Java虚拟机,是用来实现java跨平台的。jdk是开发者用的,包含jre和一些开发工具。
2025-05-29 21:26:55
719
原创 代码随想录算法训练营第二天| 209.长度最小的子数组、59.螺旋矩阵II
看到题目后第一想法:暴力遍历所有看完代码随想录后的想法:滑动窗口题目总结:一个for循环,递增变量j为窗口的右边位置(该窗口是一个闭区间),i在for循环外边初始化为0,然后循环中sum累加j位置的值(表示当前窗口中所有元素的和),然后当sum大于等于目标值时就进入while循环,循环条件为sum大于等于目标值,循环内部判断当前长度和保存的最小长度res的大小,小的话就更新res,然后更新sum、右移i(窗口左边的位置),再次while循环直到退出。
2025-05-29 19:10:08
213
原创 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素、977.有序数组的平方
看到题目后第一想法:正常二分看完代码随想录后的想法:居然有两个二分两个二分的区别就是区间的选取不同当选取左闭右闭区间时,循环判断条件为while (left <= right),目标在左区间时if (nums[middle] > target) right = middle - 1;当选取左闭右开区间时,循环判断条件为while (left < right),目标在左区间时if (nums[middle] > target) right = middle;
2025-05-28 19:06:27
295
原创 MySQL中MVCC指什么?
而A事务在这之后对同一条数据进行读操作,读到的若是未提交的修改后的数据,就产生了脏读问题。对于已提交读和可重复读隔离级别的事务来说,MVCC是通过undo log和ReadView来实现的,区别在于创建Read View的时机不同。不可重复读:有AB两个事务,A在多次执行一条查询的SQL语句,在A执行的过程中B修改了某条数据,导致A多次读出来的结果不一样。幻读:有AB两个事务,A在多次执行一条查询的SQL语句,在A执行的过程中B插入了了某条数据,导致A多次读出来的结果不一样。
2025-05-06 15:54:54
589
原创 Java八股-什么是自动装箱和拆箱?
自动装箱:指的是Java编译器自动将基本数据类型转换为它们对应的包装类型。比如,将int转换为Integer。自动拆箱:指的是Java编译器自动将包装类型转换为基本数据类型。比如,将Integer转换为int。
2025-01-19 11:59:25
220
原创 Java八股-Java的I/O流是什么?
定义:Java的I/O流是一套用于处理输入输出操作的API。分类:I/O流主要分为字节流和字符流两大类。字节流以字节为单位进行数据传输,适用于处理二进制数据,其基类分别是InputStream和OutputStream;字符流以字符为单位进行数据传输,适用于处理文本数据,其基类分别是Reader和Writer。作用:通过I/O流程序可以从各种数据源(如文件、网络连接、内存等)中读取数据,同时也可以将数据写入到不同的目的地(如文件、网络连接、内存等),实现数据的存储和传输。
2025-01-19 11:43:17
421
原创 Java的Optional类是什么?它有什么用?
作用:可以处理null值的问题,避NullPointerException的产生,使代码更加简洁和安全。是什么:Optional 类是Java 8引入的一个容器类,用于表示一个值可能存在或不存在。这些方法可以帮助我们更安全、更简洁地处理可能为。鉴于作者水平有限,文章可能存在错误。类提供了多种方法来处理可能为。的值,避免空指针异常。
2025-01-17 11:50:47
480
原创 一个线程在Java中被两次调用start()方法,会发生什么?
在Java中,一个线程的 start() 方法只能被调用一次。如果试图对一个线程对象调用两次 start() 方法,将会抛出 IllegalThreadStateException 异常。当一个线程对象被创建后,它处于新建状态(New)。调用 start() 方法后,线程开始执行,进入就绪状态(Runnable),然后可能会继续进入后续状态。一旦线程已经开始执行,它的状态不能再回到初始状态。鉴于作者水平有限,文章可能存在错误。
2025-01-17 11:38:29
365
原创 Java八股-Java反射机制
Java 反射机制是一种强大的特性,它允许在运行时获取类的信息并操作对象。通过反射,程序可以动态调用对象的方法、获取和修改字段的值,甚至可以创建新的实例。
2025-01-15 21:01:01
342
原创 Java八股-JDK和JRE的区别?
JDK 是 Java 的开发工具包,包含开发和编译 Java 应用程序所需的工具,比如编译器(javac)、调试工具等。简单来说,JDK 是开发者用来编写和编译代码的。JDK(Java Development Kit)和 JRE(Java Runtime Environment)是 Java 开发和运行环境的两个重要部分。JRE 是 Java 的运行环境,提供运行业务所需的核心类库和 Java 虚拟机(JVM)。主要区别在于:JDK 用于开发和编译 Java 应用程序,而 JRE 仅用于运行这些应用程序。
2025-01-15 12:26:45
316
原创 Java八股-接口和抽象类有什么区别?
从编码的角度看:接口通常代表某种规范,先有接口后有类;抽象类常用于减少代码冗余,即如果我们写了很多类,发现这些类有很多一样的方法,这时我们就可以把这些方法提取出来放到一个抽象方法中。从内部包含的方法来看:接口中只有抽象方法,而抽象类中可以有具体方法还可以有构造方法。Java8之后接口中也可以有默认方法(包含具体实现的方法)。从继承和实现的角度:一个类可以实现多个接口,但只能继承一个抽象类。鉴于作者水平有限,文章可能存在错误。
2025-01-05 15:39:55
138
原创 Java八股-方法重写和方法重载的区别
细节:重写的返回值要与父类相同或是其子类;访问修饰符要相同或更宽泛;抛出的异常要相同或更少。已有的方法,子类与父类方法的函数名、参数、返回值。的方法,返回值也可以不同,但不能只有返回值不同。中有多个函数名相同但参数个数、类型、顺序。鉴于作者水平有限,文章可能存在错误。
2025-01-05 15:22:00
175
原创 Java八股-为什么Java不支持多继承?
主要是因为多继承会产生菱形继承(也叫钻石继承)问题。例如:A继承B和C,B和C中有相同的方法,此时因为B和C对该方法有不同的实现,所有就不知道A继承的到底是哪个方法。
2025-01-04 11:42:28
555
原创 Java八股-Java的优势
Java 采用写可以运行在不同的操作系统上,利用 Java 虚拟机(JVM)实现跨平台兼容性。:Java 支持面向对象编程;具有清晰的类、对象、继承、接口等概念;支持封装、继承、多态等OOP特性;有助于代码的可维护性和可扩展性。:Java 拥有强大的标准库和众多开源框架(如 Spring、Hibernate)可供使用,加快开发速度。:自动内存管理,通过垃圾回收机制减轻开发者的负担,避免内存泄漏。
2025-01-04 11:24:06
328
原创 Java八股-序列化与反序列化
将对象的状态转换为一种可存储或传输的格式,常见的格式有 JSON、XML、二进制等。这一过程使得数据可以方便地存储在文件中、数据库中,或者通过网络传输。serialVersionUlD:用于在反序列化时验证版本一致性。如果没有明确指定,Java会根据类的定义自动生成一个。transient关键字:在序列化过程中,有些字段不需要被序列化,可以使用该关键字标记。序列化的作用范围是对象,所以一个静态变量(与类同级)不会被序列化。序列化具有继承性:若一个类可以序列化则其子类也可序列化。将字节流转化成对象的过程。
2024-12-31 21:44:58
389
原创 JavaWeb-02:XML的学习
XML:XML:学习地址:https://www.w3school.com.cn/xml/index.aspXML的用处?XML(可扩展标记语言)是一种标记语言,用于标记文档的结构以及存储和传输数据。:XML被用于在应用程序之间交换数据。它提供了一种统一的格式,使不同系统之间能够轻松地交换信息。:许多软件和系统使用XML作为配置文件的格式,因为它可以以易读的方式存储结构化数据,便于管理和修改。:许多Web服务使用XML作为数据交换的格式,比如SOAP(简易对象接入协议)等。
2024-05-18 21:51:04
414
1
原创 常见 HTTP 状态码及其含义
2xx 成功类状态码200 OK: 请求成功。服务器成功返回页面内容。 201 Created: 请求已成功,并且服务器创建了新资源。 202 Accepted: 请求已被接受,但处理未完成。 204 No Content: 服务器成功处理请求,但未返回任何内容。3xx 重定向类状态码301 Moved Permanently: 请求的网页已永久移动到新位置。 302 Found 或者 303 See Other 或者 307 Temporary Redirect: 请求的网页暂时重定向到
2024-05-18 20:37:37
487
原创 MyBatis-Plus中QueryWrapper类
是MyBatis-Plus中提供的一个查询构造器,用于简化数据库查询操作。MyBatis-Plus是MyBatis的增强工具包,提供了许多便利功能来简化数据访问层的开发。
2024-05-05 23:20:16
641
1
原创 使用IDEA中自带的接口测试工具的使用
进入测试文件,在1处回车可以出现下面内容,在请求体中输入所需数据。背景:正在开发一个用户管理项目,需要测试登录是否正常。在controller层的要进行测试的方法左边点击。然后点击测试文件左上角的三角,发送请求。然后项目就可以听到断点处等待调试。将项目以debug的方式启动。
2024-05-05 23:19:19
1853
1
原创 Spring Boot中MyBatisX插件
在使用mybatis以及mybatis-plus开始时简化繁琐的重复操作,提高开发速率。自动根据数据库生成domain实体对象、mapper(操作数据库的对象)、mapper.xml(定义了mapper对象和数据库的关联,可以在里面写SQL语句)、service(包含常用的增删改查的接口)、servicelmpl(实现service接口的类)。
2024-05-01 23:12:26
66
1
原创 nvm的安装
我们可能会遇到需要切换node版本的情况,卸载node再安装另一个显然效率不高。然后重新打开cmd,执行nvm list available(列出可用的版本)左下角开始-》设置-》应用-》搜索node然后卸载即可。因此使用nvm可以极大提高我们切换node的效率。会出现exe文件,然后双击出现如下图所示界面。cmd中执行命令(后面的淘宝镜像可能会改变)打开cmd运行命令node。我的这个安装目录选择默认。cmd中执行nvm命令。nvm use 版本号。
2024-04-28 21:23:04
337
1
原创 Node.js v16 版本安装
(如果输入变量值之后没有自动创建【node_modules】文件夹,就在【node_global】下手动创建一个【node_modules】文件夹)1、找到安装的目录,在安装目录下新建两个文件夹【node_global】和【node_cache】然后你就会发现【node_global】里多出了一个【node_modules】文件夹。在【系统变量】中选择【Path】点击【编辑】添加【NODE_PATH】,点击【确定】【此电脑】-单击右键-【属性】-【高级系统设置】-【环境变量】
2024-04-27 22:56:04
6421
3
原创 EditStarters插件使用
可以方便的设置 Springboot 和 Spring Cloud 的依赖。点击Edit Starters(因为我的项目是用aliyun的镜像生成的)在pom.xml中使用快捷键alt+insert。使用场景:在创建好项目之后又想添加新的依赖。直接在idea插件中下载即可。
2024-04-27 09:52:09
361
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人