- 博客(92)
- 收藏
- 关注
原创 AI 辅助研发趋势
2024年,随着AI技术的进一步成熟,AI辅助研发的趋势将更加明显,其潜力也将得到更广泛的挖掘和应用。通过AI技术的应用,研发效率得到提升,成本得到降低,复杂问题得到解决,科技进步得到推动。未来,随着AI技术的进一步发展,AI辅助研发的潜力将得到更广泛的发掘和应用,为人类社会的发展带来新的机遇和挑战。在研发领域,AI技术的应用也日益广泛,其强大的数据处理和模式识别能力使其成为研发人员的得力助手。随着AI技术的进一步成熟,AI辅助研发的潜力将得到更广泛的挖掘和应用。
2024-03-11 00:52:45 382 1
原创 LeetCode 80.删除有序数组中的重复项 II
本题考察大家对于数据结构中的数组的知识,以及基本的双指针思想,如果对此类题目足够熟悉的话,手撕是不成问题的,关键在于要多写多练。大家在刷题的时候,也可以按照数据结构或者算法来分类刷题,逐个击破,再去做一些综合题会效果更佳。
2024-03-11 00:47:47 201
原创 程序员是如何看待“祖传代码”的?
"祖传代码"通常是程序员之间戏谈的一个术语,用来描述那些古老、复杂、难以理解,但又非常关键且经常被使用的代码。这些代码通常是由前辈程序员编写,随着时间的推移,原始开发者可能已经离开,留下的代码却因为其稳定性和核心功能而被保留下来。
2024-03-03 17:25:20 315
原创 数据结构与算法期末考试大题题库
将顺序表中所有非零元素依次移到表的前端。【输入形式】第一行输入整数N表示表长;第二行输入N个整数,可包含零。【输出形式】输出将非零元素移到前端的表中元素,以空格作为分隔。【样例输入】62 0 -1 0 5 8【样例输出】2 -1 5 8 0 03.2 顺序表-递增插入设有递增有序顺序表,实现其插入元素后依然有序。【输入形式】第一行输入一个N(N不大于100);第二行输入N个整数(假设输入序列按照递增顺序,以空格分隔);第三行输入一个整数M(欲插入数据);【输出形式】输出插入M后的顺序表。【样例输入】51
2024-03-03 17:12:03 936
原创 为什么要找实习以及如何更好地度过实习期
在职业发展的旅程中,实习是一个至关重要的阶段。不论是在大学生涯的尾声,还是在职场新人的起步阶段,寻找实习机会都是一项关键任务。然而,为什么要找实习?这个问题背后蕴含着更深层次的意义和价值。在这篇博客中,我们将深入探讨为何实习对个人和职业发展至关重要。在竞争激烈的职场中,找到一份理想的工作并不容易。而通过实习,我们不仅能够为自己积累宝贵的经验和技能,还能够在职场中站稳脚跟。实习是通向职业成功的桥梁,是迈向理想职业的必由之路。因此,让我们积极主动地去寻找实习机会,投身其中,开启属于自己的职业征程。
2024-01-15 22:02:36 1051
原创 企业级做项目的流程
我们平时在学校里做项目或者大作业的时候,基本上都是个人开发的,即使有小组一起开发,一般也不会遵守开发规范。最近入职一家企业开始实习,才发现开发规范竟然如此重要,因为与大家分享一下企业级做项目的流程,如果能严格按照这个流程执行,你已经从程序员摇身一变成工程师了!!企业级项目开发流程是一个系统化而严密的过程,旨在确保项目的成功交付、满足客户需求,并保证高质量的代码和可维护性。在整个流程中,良好的沟通、高效的团队协作以及持续的改进是至关重要的。
2024-01-15 18:24:50 428
原创 GitHub API使用--获取GitHub topic
GitHub API是一个功能强大的工具,为开发者提供了访问和操作GitHub平台上资源的途径。无论是构建个人工具,集成自动化流程,还是开发应用程序,GitHub API都提供了广泛的功能。本文将介绍如何使用GitHub API,以及一些常见的用例。GitHub API是基于RESTful风格的API,允许开发者通过HTTP请求访问GitHub上的资源。这些资源包括仓库(Repositories)、用户(Users)、问题(Issues)、分支(Branches)等。
2024-01-14 21:42:15 1420
原创 处理机调度与死锁
由于P2剩余进程时间是2个时间单位是要小于新来的P4进程4个时间单位的,因此先完成P2再去调度P4,而P1还剩5个时间单位,最后再调度。当 CPU 空闲时,操作系统就选择内存中的某个「就绪状态」的进程,并给其分配 CPU。优先选取运行时间最短的作业,如果时间一样则先来先服务。是「时间片轮转算法」和「最高优先级算法」的综合和发展。等待时间 = 周转时间(运行结束时间) - 运行时间。先算出周转时间 = 运行结束时间 - 到达时间。周转时间 = 运行结束时间 - 到达时间。先算出周转时间 = 运行结束时间。
2024-01-09 21:28:44 973
原创 Java网络爬虫--HttpClient
HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、功能丰富的、支持 HTTP 协议的客户端编程工具包。相比于java.net包中提供的 URLConnection 与HttpURLConnection,HttpClient 增加了易用性和灵活性。在 Java 网络爬虫实战中,经常使用 HttpClient 向服务器发送请求,获取响应资源。
2024-01-09 20:57:21 1888
原创 第一个Java网络爬虫程序
网络爬虫是一种获取互联网信息的技术,它可以模拟浏览器行为,访问网站并提取所需的数据。在这个小Demo中,我们使用Java语言结合HttpClient库实现了一个简单的爬虫程序,用于抓取汽车之家的车辆评测数据。在实际爬虫项目中,除了简单的HTTP请求,还需要处理页面解析、数据存储、反爬虫策略等问题。这个小Demo展示了如何使用Java进行基本的网络爬虫操作。值得注意的是,爬取网站数据需要遵循法律规定和网站的使用条款,以及尊重隐私权和知识产权。
2024-01-08 22:22:45 1239
原创 Java网络爬虫--概述与原理
和周期性爬行和刷新页面的网络爬虫相比,增量式爬虫只会在需要的时候爬行新产生或发生更新的页面 ,并不重新下载没有发生变化的页面,可有效减少数据下载量,及时更新已爬行的网页,减小时间和空间上的耗费,但是增加了爬行算法的复杂度和实现难度。这类网络爬虫的爬行范围和数量巨大,对于爬行速度和存储空间要求较高,对于爬行页面的顺序要求相对较低,同时由于待刷新的页面太多,通常采用并行工作方式,但需要较长时间才能刷新一次页面。这两种类型的消息由一个起始行,一个或者多个头域,一个指示头域结束的空行和可选的消息体组成。
2024-01-08 22:13:38 1614
原创 Spring事务与分布式事务
事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,只要其中任一操作执行失败(出现异常),都将导致整个事务的回滚。简单地说,事务提供一种“要么什么都不做,要么做全套(All or Nothing)”机制。一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚。一致性(Consistency)数据库总是从一个一致性的状态转换到另一个一致性的状态。
2023-11-13 17:48:50 573
原创 RESTful接口实现与测试
其实绝大多数的数据格式都不需要我们自定义HttpMessageConverter,都有第三方类库可以帮助我们实现(包括下文代码中的Excel格式)。但有的时候,有些数据的输出格式并没有类似于Jackson这种类库帮助我们处理,需要我们自定义数据格式。该怎么做?下面我们就以Excel数据格式为例,写一个自定义的HTTP类型转换器。实现的效果就是,当我们返回AjaxResponse这种数据类型的话,就自动将AjaxResponse转成Excel数据响应给客户端。引入依赖
2023-11-03 18:07:59 299 2
原创 分布式Session登录
想象一下你去一家咖啡店。你点了一杯咖啡,并且收银员给你一张小纸条,上面写着你的订单号码。你拿着这张小纸条,然后坐下来等待你的咖啡。当咖啡准备好后,服务员会根据你手上的订单号码找到你,并把咖啡送到你的桌子上。在这个例子中,订单号码就像是一个cookie。它是一个小的标识符,帮助咖啡店识别你的订单。当你拿着订单号码坐下时,咖啡店就知道你是谁,并准备好你的咖啡。这样,无论你是在咖啡店的哪个位置,他们都可以准确地为你提供服务。
2023-10-28 17:57:26 1014
原创 手写SDK的秘诀
SDK(Software Development Kit)即软件开发工具包,就是帮助我们开发出软件的工具集合,除了代码之外,一般还要搭配文档、示例等。一般 SDK 都是需要引入到项目中使用的。比如学 Java 的朋友最早接触的 JDK,就是用来开发 Java 软件的工具包,使用时需要编写 类似的语法来引入。此外,大部分的 SDK,都是需要通过人工或项目管理工具,将其文件下载到指定路径才能引入。好的 SDK 应该具有简单易用、通俗易懂、便于扩展、高效稳定等特点。
2023-10-24 17:46:02 215 2
原创 面向对象是一种艺术
本文详细地介绍了面向对象编程的基本概念和特性,以及类、对象、继承、封装和多态的具体定义和应用。通过这篇文章,读者可以深入了解面向对象编程的思想和方法,并能够运用它来解决实际问题。如果短时间内无法理解,真的没有关系,在写代码读优秀的代码的过程中慢慢理解这些概念,你一定会豁然开朗的!至于一些高级的面向对象的知识,比如设计原则、设计模式、抽象类等,这些在我们真正编程的时候很少会用到,等到你成为一名真正意义上的架构师,再去系统学习也不迟,作者水平有限,这里就不涉及了。
2023-10-17 19:45:36 101
原创 lambda表达式
/函数定义//通过创建对象调用函数大家应该对上面的代码的开发方式不感到陌生,这是经典OOP的实现样式。下面我们对上面的代码做一个修改,创建一个功能接口,并对该接口定义抽象方法。//抽象功能接口//通过参数传递功能接口在这篇文章中,我们详细介绍了Java中的Lambda表达式,并探讨了如何利用它们提高接口函数的实现效率和质量。Lambda表达式提供了一种简洁、灵活的语法形式,可以将代码块作为参数传递给方法,并以更简洁的方式编写函数式代码。
2023-10-01 00:41:56 160 1
原创 消息队列--必须掌握的两个基础模式
今天我们介绍了消息队列的两个消息模式,分别是:队列模式和发布-订阅模式。后续我们会介绍常见的MQ中间件的特性,现在打好基础即可。希望读者着重掌握发布-订阅模式,这对后续进阶的消息负载均衡,顺序消息等很关键。
2023-09-12 19:56:21 94
原创 消息队列--入门篇
生产者,就是消息的发送者。它会将消息发送给Broker。初始篇我们介绍了消息队列应该有的相关的组件和角色,当然还有很关键的队列,keys等概念,我们放到后面重点讲。通过本文的介绍,我们至少对其有了初步的印象,也清晰了各个组件大概的作用与消息的流转。后边我会带大家剖析消息队列的原理,清晰RocketMQ整体的运行流程。然后开始掌握基础和进阶的用法,怎么在项目中使用,以及面试常问的消息队列问题。
2023-09-10 16:37:53 78
原创 《消息队列》专栏介绍
简单来说,消息队列是一种允许应用程序之间异步通信的机制。它通过解耦生产者和消费者之间的直接依赖关系,实现了高度可扩展性和灵活性。消息队列的工作原理很简单:生产者将消息发送到队列中,然后消费者从队列中获取消息并进行处理。这种异步的方式允许生产者和消费者在不需要实时交互的情况下进行独立的操作。这种解耦能力使得消息队列在许多场景下非常有用,例如在分布式系统中进行任务处理、流量控制、日志收集和系统解耦等。未来详细讲解各种场景的使用。通俗易懂一些,消息队列就是存储消息的队列。
2023-09-08 22:02:16 315
原创 剑指Offer 18. 删除链表的节点
通过这种递归的方式,我们可以实现对链表的删除操作,每次处理一个节点,并连接剩余的链表。递归会不断地处理链表中的每个节点,直到链表末尾为止。在解决链表相关的问题时,递归是一种常见的解决方法。在本题中,通过观察题目要求,我们需要删除链表中与给定值相等的节点。删除链表中所有与该值相等的节点,并返回删除节点后的新链表。这段代码是一个删除链表节点的方法,根据给定的值。
2023-08-27 13:57:38 98
原创 《深入理解计算机操作系统》
本章详细介绍了虚拟化和云计算的概念、原理和关键技术。虚拟化技术通过创建虚拟的资源层,实现了资源的高效利用和灵活分配。虚拟机管理器是实现虚拟化技术的关键组件,负责对物理资源进行管理和分配。云计算则通过提供计算资源、存储资源和服务资源,实现了按需使用的方式。容器化技术和微服务架构则是云计算中的重要组成部分。虚拟化和云计算技术的发展为操作系统带来了新的机遇和挑战。操作系统通过实现虚拟化技术和应用云计算的关键技术,提供了更好的服务和性能,满足了用户对计算资源的需求。
2023-08-24 21:56:29 265
原创 剑指Offer 24. 反转链表
通过使用双指针方法,我们可以在不使用递归的情况下,通过修改指针的指向来实现链表的翻转。这种方法具有迭代的特点,适用于处理大型链表和节省内存的情况。
2023-08-08 10:33:30 138 10
原创 剑指Offer 67. 把字符串转换成整数
如果是数字,我们通过将字符减去字符’0’得到对应的数字值。接下来,我们进入转换数字部分的循环。如果有正负号,我们将。方法中,我们首先进行了一些初始化操作。然后,我们通过一个循环来去除字符串开头的空格,将。,则说明转换后的整数会超出范围,这时我们根据。位置上的字符是否为正号或负号,并根据情况将。然后,我们进行整数溢出的判断。变量以考虑正负号,并返回转换后的整数。如果转换的数字没有超出范围,我们将。变量来追踪当前处理的字符位置,或长度为0,我们直接返回0。最后,我们将最终的结果乘以。变量来累积转换的数字。
2023-08-06 10:23:11 168
原创 剑指Offer 20.表示数值的字符串
如果当前位置小于字符串长度且当前字符是小数点(‘.’),则将 currentIndex 增加1,并调用 scanUnsignedInteger(s) 方法判断小数部分。如果当前位置小于字符串长度且当前字符是指数符号(‘e’ 或 ‘E’),则将 currentIndex 增加1,并调用 scanInteger(s) 方法判断指数部分。该方法会检查当前位置是否为正号或负号,如果是则将 currentIndex 增加1,并调用 scanUnsignedInteger(s) 方法判断无符号整数部分。
2023-08-05 22:01:46 200
原创 剑指Offer 58.左旋转字符串
如果需要频繁修改字符串内容或进行大量字符串拼接操作,应该使用StringBuilder以获得更好的性能。StringBuilder和String是Java中用于处理字符串的两个不同的类。第二个循环从索引0到索引k-1遍历原始字符串s的字符。在每次迭代中,将当前索引i处的字符b追加到result中。在每次迭代中,将当前索引i处的字符c追加到result中。这里使用同余运算的原因是为了实现循环遍历字符串的效果,即当。超过字符串长度时,重新回到字符串的开头继续取字符。超过字符串长度时,会从字符串的开头重新开始。
2023-08-04 23:29:46 193
原创 走出焦虑,拥抱未来!
大三科班在读,我能够理解在看到他人完成自己做不出来的题目或写不出的代码时会感到焦虑的心情,因为我也常常会有这种焦虑。这种焦虑可能是因为觉得自己与他人存在差距或者担心自己的能力不足。同时,周围人的进步和成就也可能让自己感到压力和迷茫,不知道自己的发展方向以及如何与他人不断提高自己的能力。
2023-08-04 01:29:34 97 1
原创 剑指Offer 05.替换空格
由于 String 类型是不可变的,因此在对 String 对象进行拼接、截取、替换等操作时,会创建新的 String 对象,而原来的 String 对象不会被修改。在 Java 中,字符串常量池是一种字符串缓存机制,它可以缓存字符串常量,避免重复创建相同的字符串对象,从而减少内存的占用。在 Java 中,String 类型是不可变的,也就是说,一个 String 对象一旦被创建,它的值就不能被修改。其中,第一个参数是需要替换的子字符串的正则表达式,第二个参数是替换后的字符串。替换字符串的两种方法。
2023-08-03 17:00:04 146
原创 在Spring Boot框架中集成 Spring Security
Spring Security是一个基于Spring框架的安全性框架,它提供了一系列的安全性服务,包括认证、授权、攻击防护等等。Spring Boot是一个快速开发应用程序的框架,它提供了很多开箱即用的功能和约定,使得构建一个Spring应用程序变得更加简单。将Spring Security集成进Spring Boot应用程序中,可以为应用程序提供基于角色的访问控制、用户身份验证等安全性的功能。
2023-08-02 00:50:24 573
原创 基于YOLOv5的S弯识别
YOLOv5是一种基于深度学习的目标检测算法,它是YOLO(You Only Look Once)系列算法的最新版本。与之前的版本相比,YOLOv5采用了一些新的技术来提高检测精度和速度。YOLOv5算法的核心思想是将目标检测问题转化为一个回归问题。具体来说,它将输入图像划分为一个固定大小的网格,并在每个网格中预测多个目标的位置和类别。每个目标由一个边界框(bounding box)和一个置信度分数(confidence score)表示。
2023-07-31 16:12:52 291
原创 阿克曼转向模型介绍
阿克曼转向模型的基本原理是,前轮转向时,左右前轮的转向角度应该是不同的,这是为了确保车辆可以平稳地转弯,并且不会造成轮胎损耗。阿克曼转向模型可以用于设计和控制汽车的转向系统。根据阿克曼转向几何设计转向机构,在车辆沿着弯道转弯时,利用四连杆的相等曲柄,可以使内侧轮的转向角比外侧轮大大约 2~4 度,使四个轮子路径的圆心大致上交会于后轴的延长线上瞬时转向中心,从而让车辆可以顺畅的转弯。从公式中可以看出,当车辆转弯时,前轮的转向角度应该大于后轮的转向角度,这是为了确保车辆可以平稳地转弯,并且不会造成轮胎损耗。
2023-07-25 19:44:37 3060 2
原创 基于OpenCV的红绿灯识别
航天机器人的红绿灯识别主要基于传统计算机视觉技术,利用OpenCV算法对视频流进行处理,以获取红绿灯的状态信息。具体而言,该系统通过连接工控机摄像头读取视频流,将视频帧转换成HSV色彩空间的图像,以便更好地识别出图像中的红色像素。HSV是一种将RGB色彩空间中的点在倒圆锥体中的表示方法,其中色相、饱和度和亮度分别用于描述颜色的不同属性。
2023-07-23 20:51:29 3308 8
原创 基于Shiro框架的登录功能
Apache Shiro是一个Java安全框架,它提供了一套易于使用的API,用于身份验证、授权、加密和会话管理等安全操作。Shiro框架的主要目标是提供易于使用的安全功能,同时保持灵活性和可扩展性。
2023-07-21 10:01:25 567
原创 MQTT协议原理介绍及如何使用emqx
MQTT协议是一种轻量级的、基于发布/订阅模式的通信协议,适用于物联网领域。emqx是一个基于Erlang语言开发的开源MQTT代理程序,它可以提供可扩展的、高性能的MQTT消息传输服务。在本文中,我们介绍了MQTT协议的基本原理,并演示了如何使用emqx搭建MQTT服务端和客户端。我们还介绍了如何在emqx服务端上配置ACL以保证MQTT通信的安全性。
2023-07-06 20:20:35 3184
原创 Git入门级指南
Git是一种分布式版本控制系统,它可以跟踪和管理项目中的代码变更。与其他版本控制系统不同,Git具有强大的分支和合并功能,使得多人协作和并行开发更加容易。Git还具备高效的性能和出色的安全性,被广泛应用于各种规模的项目中。
2023-06-30 22:06:01 575
原创 Linux--shell学习笔记(下)
类似于**中的**语句命令格式:示例:单层 if-else命令格式:示例:多层 if-elif-elif-else命令格式:示例:case…esac 形式类似于**中的**语句命令格式:示例:循环语句for…in…do…done命令格式:示例1,输出a 2 cc,每个元素一行:示例2,输出当前路径下的所有文件名,每个文件名一行:示例3,输出1-10:示例4,使用**或者********:**for((…;…;…)) do…done命令格式:示例,输出1-10
2023-06-22 20:18:13 817
原创 Linux--shell学习笔记(上)
定义变量,不需要加****name1 = 'xhl' # 单引号定义字符串 name2 = "xhl" # 双引号定义字符串 name3 = xhl # 也可以不加引号, 同样表示字符串数组用小括号表示,元素之间用空格隔开。
2023-06-10 22:13:17 1029 1
原创 期末复习样卷
列名说明数据类型约束SNO供应商号CHAR(6)主码PNO零件号CHAR(6)主码JNO项目号CHAR(6)主码QTY供应数量SMALLINTDEFAULT 100,大于0。
2023-06-07 19:44:47 1727
mysql进阶知识以及面试常考知识
2023-08-27
使用java编程语言编写 基于SSM的图书管理系统
2023-08-27
使用java编程语言实现的基于SSM的会议预约系统
2023-08-27
yolov5 车道线识别 pt模型
2023-04-07
面试小抄第二版暗黑.rar
2023-04-07
chatgpt终极指南
2023-04-04
关于人工智能车道线识别的数据集,包含以及标注好的json文件
2023-03-19
图书管理系统,包含很多功能 ,sql语句,以及详细的文档设计分析
2023-03-19
python基础课件.pdf
2023-03-19
chatgpt调教身份指令
2023-03-18
数据库之必学Mysql知识点集合
2023-03-06
算法与数据结构入门的基础算法,必须熟练写出,是一些竞赛常考的模板
2023-02-18
html css js写一个元旦倒计时代码动态页面
2022-12-14
基础的html css js完成的期末大作业
2022-12-13
基础的html css js完成的期末大作业
2022-12-13
用python内置库绘制的圣诞树代码
2022-12-12
用java 完成的图书管理系统,可以作为大作业
2022-12-12
vue+vite+vant
2022-12-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人