- 博客(92)
- 收藏
- 关注
原创 5大数据结构
解决思路:使用哈希思想,可以借助集合(Set)来模拟哈希表,遍历数组,将数字放入集合中,如果集合中已经存在该数字,则从集合中移除该数字,最后集合中剩余的两个数字就是只出现一次的数字。解决思路:使用哈希思想,可以借助数组来模拟哈希表,遍历字符串,统计每个字符出现的次数,然后再次遍历字符串,找到第一个出现次数为1的字符,返回其索引。解决思路:使用哈希思想,可以借助集合(Set)来模拟哈希表,遍历数组,将数字放入集合中,如果集合中已经存在该数字,则找到了重复的数字。
2023-11-18 21:53:59 571
原创 3大经典算法思想
问题描述:给定一个按照升序排列的整数数组nums,和一个目标值target。如果target在数组中存在,则返回它的第一个和最后一个位置,否则返回[-1, -1]。解决思路:使用分治算法,先使用二分查找找到target的位置,然后分别向左和向右进行扩展,直到找到target的第一个和最后一个位置。时间复杂度:O(logn),空间复杂度:O(1)。
2023-11-18 21:27:44 218
原创 图算法初级
接下来,使用一个循环来选择最小的边,并判断是否形成环,如果不形成环,则将该边加入到最小生成树中,并合并两个顶点的子集。它通过不断选择当前最短路径中距离起点最近的顶点,并更新其他顶点的距离,来找到起点到其他顶点的最短路径。它通过不断选择与当前生成树相连的最小权值的边,并将其添加到生成树中,来构建最小生成树。它通过不断更新每对顶点之间的最短路径长度来计算任意两个顶点之间的最短路径。一个经典的例子是求解从起点A到其他顶点的最短路径。一个经典的例子是求解任意两个顶点之间的最短路径。一个经典的例子是求解最小生成树。
2023-11-15 17:18:32 159
原创 初级查找算法
二分查找是一种针对已排序的数据结构的查找算法,通过将目标元素与中间元素进行比较,不断缩小查找范围,直到找到目标元素或查找范围为空。深度优先搜索是一种对于树或图等结构的查找算法,从根节点开始一直遍历到叶子节点,直到找到目标元素或遍历完所有节点。顺序查找是一种简单直接的查找算法,逐个元素依次查找,直到找到目标元素或遍历完整个数据结构。举例:假设有一个有序整数数组arr,我们要查找是否存在目标元素target。举例:假设有一个整数数组arr,我们要查找是否存在目标元素target。然后,我们定义了一个。
2023-11-15 16:31:08 195
原创 nginx反向代理、负载均衡
Nginx 是一个高性能的开源 Web 服务器软件,同时也可以作为反向代理和负载均衡器使用。下面我来分别介绍一下反向代理和负载均衡,并用代码举例说明流程。
2023-10-30 00:47:31 705
原创 Linux命令随笔
这将先使用grep命令搜索包含"error"的行,并将结果通过管道传递给wc命令,wc命令用于统计行数(-l选项表示只统计行数)。总之,grep命令在Linux中是一个非常强大和常用的文本搜索工具,可以帮助用户快速定位和筛选感兴趣的内容。将grep命令的输出作为其他命令的输入,实现更复杂的操作。
2023-10-29 20:36:50 167
原创 简历:了解常见的设计模式
这样,当一个部分发生变化时,可以最小化对其他部分的影响,从而降低系统的耦合度,增加系统的灵活性和可维护性。通过重用设计模式,可以减少代码的重复编写,提高开发效率,并且降低了出错的可能性。通过应用设计模式,可以在不影响系统原有结构的情况下,方便地添加新的功能或进行系统的改进。通过使用设计模式,开发人员可以遵循一致的设计原则和最佳实践,从而提高代码的可维护性。设计模式可以将系统的不同模块进行解耦,使得每个模块的功能可以独立测试。应该将大的接口拆分为多个专门的小接口,以避免客户端依赖于不相关的方法。
2023-10-29 10:46:10 225
原创 单例模式初级
假设我们有一个购物车类 ShoppingCart,它用于存放购物车中的商品信息。在上述例子中,ShoppingCart 类的构造函数被声明为私有的,使得外部无法直接实例化该类。通过使用静态变量 instance 和静态方法 getInstance(),我们可以在需要使用 ShoppingCart 对象时获取到全局唯一的实例。例如,在多个线程中调用 ShoppingCart.getInstance() 方法,都将返回同一个实例,保证了购物车对象的唯一性。可以通过调用 addItem()、removeItem
2023-10-29 10:34:25 365
原创 计算机网络常识
因此,为了满足更多的设备连接和互联网的需求,IPv6(Internet Protocol Version 6,互联网协议第六版)作为IPv4的升级版本被提出和使用。总结来说,HTTP是一种不安全的协议,适用于对数据安全性要求不高的场景,而HTTPS通过使用加密技术确保了数据传输的安全性,适用于对数据安全性要求较高的场景,如在线支付、网上购物等。网络接口层负责处理物理连接和数据链路层的功能,网络层负责数据包的路由和寻址,传输层负责提供可靠的数据传输服务,应用层负责处理特定应用程序的通信需求。
2023-10-27 11:22:19 1391 2
原创 Java面试记录
volatile关键字可以保证被修饰的变量在多线程环境下的可见性,即一个线程对volatile变量的修改对其他线程是可见的。对象的监视器锁:每个对象都有一个与之关联的监视器锁,当一个线程访问一个synchronized方法或代码块时,它会自动获得该对象的监视器锁;互斥性:synchronized保证了同一时间只有一个线程可以获得对象的监视器锁,其他线程必须等待,实现了互斥性,避免了多线程同时访问共享资源的问题。以上方法都可以实现线程同步,但根据具体的需求和场景选择合适的方法。它可以用来修饰类、方法和变量。
2023-10-24 08:24:27 460
原创 深入知识点
是一种常见的异步通信模型,用于解耦和提高系统之间的可靠性和可扩展性。它允许应用程序之间通过发送和接收消息来进行通信,而不需要直接依赖对方的可用性和性能。
2023-10-24 08:22:38 111
原创 二叉树代码
下面是用Java语言实现二叉树的代码,包括遍历(层序、前序、中序、后序)、插入、删除、查找,并加上了注释。类包括了层序遍历、前序遍历、中序遍历、后序遍历的方法实现,以及插入、删除、查找节点的方法实现。类中,我们创建了一个二叉树对象。这个示例代码中,我们定义了。,演示了如何使用这些方法。类表示二叉树的节点,
2023-10-23 11:32:12 91
原创 Java框架随笔
Mapper XML配置文件:Mapper XML配置文件是用于定义SQL语句的XML文件,通过在配置文件中定义SQL语句和参数映射关系,将SQL语句与Java代码解耦。动态SQL:MyBatis支持使用动态SQL语句,可以根据不同的条件动态生成SQL语句,使得我们可以灵活地构建SQL语句。条件查询:根据不同的查询条件来动态生成查询语句,例如根据用户输入的姓名、年龄、性别等条件来查询符合条件的数据。可以根据不同的条件来动态生成SQL语句,使得我们可以根据不同的需求来构建灵活的SQL语句。
2023-10-23 11:10:51 386
原创 Redis学习随笔
---直接操作缓存能够承受的数据库请求数量是远远大于直接访问数据库的,所以我们可以把数据库的部分数据转移缓存中去,这样用户的一部分请求会直接到缓存这里而不用经过数据库。但是,如果,用户访问的数据属于高频数据并且不会经常改变的话,那我们就可以把该用户访问的数据存在缓存中,保证用户下一个再访问这些数据的时候就可以直接从缓存中获取了。通过将常用的数据存储在Redis缓存中,可以大大提高应用程序的性能和响应速度。数据持久化:Redis提供了数据持久化的功能,可以将内存中的数据定期或根据配置写入磁盘。
2023-10-16 21:44:03 100
原创 Java内存空间(学习随笔)
总之,Java虚拟机中的堆是用于存储对象实例的内存区域,具有动态分配和自动回收的特性。它被分为年轻代和老年代,为Java应用程序提供了高效的内存管理机制。总之,Java虚拟机栈和本地方法栈在功能和作用上有所不同,但都是为了支持方法的调用和执行而存在的,并在运行时为每个线程分配独立的内存区域。在Java虚拟机中,堆是一块用于存储对象实例的内存区域。Java虚拟机栈和本地方法栈是Java虚拟机(JVM)为每个线程分配的内存区域,用于执行方法的调用和执行。
2023-10-11 16:13:07 205
原创 Java集合随笔
好文链接常见的方法Collections类Comparator接口HashMap 的长度为什么是 2 的幂次方?讲解链接Set部分:HashSet:底层数据结构是哈希表,线程不安全,无序,不可重复。LinkedHashSet:底层数据结构是哈希表和链表,线程不安全,有序,不可重复。SortedSet:底层数据结构可以是红黑树或跳表,线程不安全,有序,不可重复。TreeSet:底层数据结构是红黑树,线程不安全,有序,不可重复。
2023-09-28 16:06:49 154
原创 序列化与反序列化
以上是Kryo和Protobuf的简要介绍、应用场景、优缺点以及使用代码示例。可以根据具体需求选择合适的序列化/反序列化工具。在Java中,序列化(Serialization)是将对象转换为字节流的过程。反序列化(Deserialization)是将字节流转换为对象的过程。这些方式都可以实现对象的序列化和反序列化,选择适合场景的方式进行使用。通过序列化和反序列化可以实现对象的持久化存储和网络传输。
2023-09-28 10:05:14 126
原创 Java基础简单整理
覆盖是重写的一种特殊情况,当子类方法与父类方法具有相同的方法名、参数列表和返回类型,并且使用@Override注解来标注时,可以确保在编译时检查是否正确覆盖了父类方法。重写是实现多态的一种方式。因为 Java 程序要经过先编译,后解释两个步骤,由 Java 编写的程序需要先经过编译步骤,生成字节码(.class 文件),这种字节码必须由 Java 解释器来解释执行。简而言之,JVM是Java程序运行的环境,JDK是用于开发Java程序的工具包,而JRE是用于运行已编译好的Java程序的环境。
2023-09-27 19:28:40 547
原创 Java动态SQL、Mysql多表查询、索引、ASC和DESC
是指根据不同的条件或参数生成不同的SQL语句的技术。无论是使用JOIN语句还是子查询,多表查询都可以用来检索多个表中的数据,并根据需要进行条件过滤、排序等操作。在这个示例中,我们使用子查询在table2中选择id列,并在主查询中使用IN运算符来检索table1中id与子查询结果匹配的行。以上是一些关于MySQL索引的基本知识点,使用合适的索引可以显著提高查询性能,但也需要根据具体的业务需求和数据特点进行综合考虑。子查询是一个嵌套在主查询中的查询语句,可以在主查询中引用子查询的结果。
2023-09-26 19:57:01 469
原创 KMP算法
n),其中m为模式串的长度,n为文本串的长度。相比于朴素的字符串匹配算法,KMP算法通过利用已匹配的前缀信息,避免了一些不必要的比较,从而提高了匹配的效率。KMP算法的时间复杂度为O(m +
2023-09-22 10:57:37 187
原创 Java反射机制、枚举、迭代器、事务注解、HashMap浅讨
反射是Java语言中一种强大的机制,它允许程序在运行时动态地获取和操作类的信息、对象的字段和方法。通过反射,我们可以在运行时检查和修改类的结构,调用对象的方法,甚至可以创建新的对象。反射提供了一种灵活的方式来实现动态的功能和增强代码的复用性。反射的使用需要谨慎,因为它会牺牲一定的性能和安全性。在实际开发中,应该根据具体的需求来决定是否使用反射,避免滥用。同时,了解反射的原理和使用场景,可以帮助我们更好地理解和设计Java程序。
2023-09-22 09:27:08 130
原创 算法(三)
是Java中的一个表达式,用于获取Map中指定键的值,如果键不存在则返回默认值。在这个表达式中,sum是作为键,0是作为默认值。如果sum这个键存在于map中,则返回与该键对应的值加1;如果sum这个键不存在,则返回默认值0加1。以前觉得算法可无聊了,突然发现,这玩意挺上瘾啊,虽然很菜,但很解困啊🍚🍚🍚🍚🍚🍚🍚🍗🍗🍗🍗🍭🍭🍭🍭🍭🍭🍭🍭🧃🧃🧃🧃🧃🍵🍵🍵🍵🍵🍵💫💫💫💫😋😋😋😋😋😋。当我们需要存储一组元素,并且要求元素不重复时,可以使用Set集合。
2023-09-21 21:44:49 289
原创 算法----数组常见知识点
当遇到右括号时,检查栈顶元素是否为对应的左括号,如果是,则弹出栈顶元素,继续遍历;例如,三维数组由一系列二维数组组成,四维数组由一系列三维数组组成,以此类推。不规则数组:不规则数组是指每个一维数组的长度可以不同的二维数组。动态数组(ArrayList):动态数组是一种可以自动调整大小的数组,它可以根据需要动态添加或删除元素。动态初始化:动态初始化是在声明数组时只指定数组的类型和大小,并没有为数组元素赋初值。动态初始化后,数组的每个元素的初始值将根据数据类型的默认值进行赋值,如int类型默认为0。
2023-09-21 10:54:23 241
原创 常用注解梳理
将一个类标识为一个RESTful风格的控制器,用于处理HTTP请求和响应。:用于将一个HTTP请求映射到控制器的处理方法上,可以用于类级别和方法级别。:用于指示请求的参数将作为请求的主体部分,并将其反序列化为Java对象。:用于将HTTP POST请求映射到控制器的处理方法上。:用于将HTTP GET请求映射到控制器的处理方法上。:用于将URI路径中的变量绑定到方法的参数上。:用于将HTTP请求参数绑定到方法的参数上。
2023-09-21 10:10:50 88
原创 算法(二)——数组章节和链表章节
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
2023-09-19 11:40:28 154
原创 英文晨读记录(broken heart)
2023/8/28n. 主题;问题;学科;课程;科目;话题;题目;题材;表现对象;adj. 服从于;取决于;视…而定;易遭受…的;受…支配;可能受…影响的;受异族统治的vt. 使臣服;使顺从;(尤指)压服adj.中等的;中号的n.介质;方法;(传播信息的)媒介;(文艺创作中使用的)材料,形式;工具;手段;通灵的人n. 中等的;适度的;温和的;适中的;合理的;不偏激的;不激烈的v.缓和;使适中;审核评分(查看不同阅卷人所打分数是否公平一致);主持(讨论、辩论等)
2023-08-30 10:27:20 162
原创 好看的登录界面(2)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <style> body { background-color: #000000; min-height: 98vh; perspective: 1500px; } div#bgDIV
2023-07-07 00:00:00 505
原创 好看的登录页面login.html
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Login Page</title> <style> body { margin: 0;
2023-07-01 18:30:52 30366 12
旅游服务系统(学生自练)
2023-06-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人