- 博客(56)
- 收藏
- 关注

原创 CPU 工作原理(附详细图解)
🌸学习目标🌸本章我们将从软件工程师的角度去了解计算机是如何工作的,通过对计算机核心工作机制的学习,有利于理解我们平时编程时的一些行为,动作的历史渊源。在学习 CPU(中央处理器)之前,我们先来简单的了解一下计算机的发展历史。让我们一起出发吧!!!😀😀😀一. 计算机发展史计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。计算机的发展大体经历了.
2022-04-18 10:01:33
48948
14
原创 机器学习中的关键术语及其含义
本文概述了神经网络的基本概念及其在机器学习中的应用。首先介绍了神经元和神经网络的结构,包括激励函数和多层感知机的原理。其次阐述了神经网络构建的细节,讨论了模型抽象方法的两种实现方案。然后解释了机器学习中的关键术语:样本、标签、特征、损失函数等,并说明了回归问题和分类问题的区别。接着分析了激活函数的作用,比较了Sigmoid、Tanh、ReLU等常见函数的特性。最后描述了模型训练过程,重点讲解了反向传播机制及其计算原理,指出梯度传播的顺序性和参数更新的依赖关系。全文系统地呈现了神经网络从基本原理到实际应用的核
2025-05-27 20:57:14
848
原创 多模态技术概述(一)
多模态(Multimodal)涉及多种不同类型数据或信号的处理和融合,每种数据类型或信号被称为一种模态。常见的模态包括文本、图像、音频、视频等。多模态技术旨在同时利用这些不同模态的数据,以实现更全面、更准确的理解和决策。
2025-04-04 19:31:53
724
原创 API基础与通用API调用大模型
在中大型开发项目实践中,我们往往需要构建和串联多个不同的功能模块,但这些功能模块可能会使用不同的语言来进行实现,或是虽然使用了相同的语言来实现,但不归属于同一个环境,导致无法直接进行数据交换、功能调用。API(应用程序编程接口,Application Programming Interface)是不同软件组件之间进行交互和通信的接口,它允许不同的应用程序或服务相互调用和交换数据。可以把API看作是软件之间的桥梁,让它们能够“谈话”并共享功能。
2025-03-24 12:37:32
1165
原创 【JavaSearch/搜索引擎】项目测试
a. 从输入完成到敲击回车到页面正常返回所花费的时间,是否符合用户的预期(在一定的时间内返回)5:搜索结果数量庞大的时候,是否分页处理,分页是否和需求说明书的要求保持一致。c. 在不同的网络条件下能否正常的使用(在一定的时间内是否有数据返回)测试结果:英文特殊字符均可得到查询结果,中文符合无查询结果;测试结果:输入Java语言中非专有字符串,无查询结果;1:在网络情况良好的前提下,页面的跳转需要多少时间;2:在网络状况不好的情况下,页面的跳转需要多少时间;测试结果:均有查询结果,结果并不准确;
2022-09-14 17:17:33
696
原创 计算机网络常见面试题
什么是 Cookie?HTTP Cookie(也叫 Web Cookie或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie 使基于无状态的 HTTP 协议记录稳定的状态信息成为了可能。会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)个性化设置(如用户自定义设置、主题等)浏览器行为跟踪(如跟踪分析用户行为等)
2022-09-04 16:47:32
4805
5
原创 多线程常见面试题
死锁多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。互斥条件:该资源任意一个时刻只由一个线程占用。请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。不剥夺条件:线程已获得的资源在末使用完之前不能被其他线程强行剥夺,只有自己使用完毕后才释放资源。循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。如何避免死锁?只要破坏产生死锁的四个条件中的其中一个就可以了。
2022-08-23 20:22:53
3323
4
原创 JavaSearch搜索引擎
该项目只针对 JDK API 文档库中的 html 做搜索。文档下载主要实现以下两个模块:构建索引模块(不需要使用web功能)搜索模块(依赖构建索引完成之后才能进行,需要web功能)
2022-08-16 22:47:16
4381
原创 【软件测试】—— 自动化测试之unittest框架
unittest是一个Python版本的Junit,Junit是Java中的单元测试框架;本章我们学习单元测试框架unittest,这里的单元测试指的是对最小的软件设计单元(模块)进行验证,在UI自动化测试里面,我们的单元测试主要针对UI界面的功能进行自动化测试。所以这里大家要注意不要和Java的Junit单元测试框架搞混;......
2022-07-25 14:43:06
1323
4
原创 【软件测试】—— 测试分类
黑盒测试就是在完全不考虑程序逻辑和内部结构的情况下,检查系统功能是否按照需求规格说明书的规定正常使用、是否能适当的接收输入数据而输出正确的结果,满足规范需求。
2022-07-17 21:30:53
1684
原创 【软件测试】—— 测试用例篇
1.测试用例对应的功能已删除,不可操作了;微信刚出来时与QQ可互发消息,下一个版本后就不可以发消息;2.执行一条测试用例未发现BUG,实际该处有BUG苹果7手机微信添加了mobile单车小程序,扫码不能开锁,只能使用mobileAPP开锁,测试用例未涉及到苹果7微信小程序扫码开锁;3.执行一条测试用例发现了BUG苹果7手机微信添加了mobile单车小程序,用例已写到了苹果7微信添加mobile小程序扫码开锁,问题被发现;4.执行一条测试用例未发现BUG,实际该处BUG已修改。...
2022-07-14 22:25:44
808
8
原创 基于STM32的电梯智能控制系统(软件实现)
主函数:运行结果: IIC oled屏幕驱动原理处理器和芯片间的通信可以形象的比喻成两个人讲话:1、你说的别人得能听懂:双方约定信号的协议。2、你的语速别人得能接受:双方满足时序要求。一、IIC总线的信号类型1、开始信号:处理器让SCL时钟保持高电平,然后让SDA数据信号由高变低就表示一个开始信号。同时IIC总线上的设备检测到这个开始信号它就知道处理器要发送数据了。2、停止信号:处理器让SCL时钟保持高电平,然后让SDA数据信号由低变高就表示一个停止信号。同时IIC总线上的设备检测到这个停止信号它
2022-07-12 09:15:27
2870
2
原创 【软件测试】—— 基础知识总结
目录基础篇1. 什么是软件测试?2. 软件测试的目的3. 软件测试与软件开发的区别? 概念篇1. 什么是需求?2. 需求是软件测试的依据3. 测试用例4. 什么是BUG?5. 开发模型(5个模型)(1)瀑布模型(2) 螺旋模型 (3,4)增量模型,迭代模型(5)敏捷模型6. 测试模型(1)V模型(2)W模型——双V模型7. 软件测试的生命周期(软件测试流程)8. 如何描述一个BUG9. BUG的级别10. BUG的生命周期 11. 测试人员因为一个BUG和开发人员发生冲突,该怎么做?软件测试(Softwar
2022-07-10 16:55:44
2745
8
转载 回溯算法理论基础
目录回溯算法理论基础什么是回溯法?回溯法的效率回溯法解决的问题如何理解回溯法回溯法模板总结题目分类大纲如下:回溯法也可以叫做回溯搜索法,它是一种搜索的方式;回溯是递归的副产品,只要有递归就会有回溯。所以以下讲解中,回溯函数也就是递归函数,指的都是一个函数回溯法的性能如何呢,这里要和大家说清楚了,虽然回溯法很难,很不好理解,但是回溯法并不是什么高效的算法。因为回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如果想让回溯法高效一些,可以加一些剪枝的操作,但也改不了回溯法就是穷举的本质。那么既然回溯法并
2022-07-09 16:52:06
234
原创 Linux 基本使用
企业中最主要使用的发行版是 RedHat (红帽)。 但是 RedHat 是一个收费的系统,因此我们使用的是基于红帽系统的的社区免费版本 CentOS。CentOS 和 RedHat 的关系1) 基础命令Linux 虽然也有图形化界面, 但是在 服务器 / 嵌入式设备上往往都是通过命令行的方式操作的. 因此学习 Linux 命令就是使用 Linux 的重要基础.2) 系统编程 & 网络编程Linux 自身提供了一些 API, 供程序猿调用来完成一些更复杂的编程任务(比如文件操作, 多线程编程, socket
2022-07-06 16:33:51
1242
8
原创 【多线程】单例模式 & 阻塞队列
单例模式是一种设计模式,单例模式能保证某个类在程序中只存在唯一一份实例, 而不会创建出多个实例 ,就是保证类在内存中只有一个对象。举例饿汉模式:早上吃饭使用了三个碗,吃完后,马上把三个碗都洗了;上诉代码针对唯一的实例初始化,比较着急,在类加载阶段,就会直接创建实例(程序中用到这个类,就会立即加载)实例就行,如下面程序所示:饿汉模式中 getInstance,仅仅是读取了变量的内容,如果多个线程只是读取一个变量,不修改,此时任然是线程安全的。如下面程序所示:1.2 懒汉模式举例懒汉模式:
2022-07-05 17:05:09
377
原创 网络原理——为什么高手必知网络编程
为什么高手必知网络编程? 我们生活在网络时代。独立的计算机系统不可能使我们走向世界,在地球的任何地方进行信息交流。“秀才不出门,便知天下事。”网络通信和互联网的应用,不仅使我们全知天下事,而且能做天下事。 那么,联网的计算机系统如何实现网络通信呢?一. 网络互连随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成 业务,就有了网络互连。网络互连:将多台计算机连接在一起,完成数据共享。数据共享:本质是网络数据传...
2022-05-18 19:53:42
637
5
原创 多线程编程(下):线程同步&通信
在多线程的程序中,有多个线程并发运行,这多个并发执行的线程往往不是孤立的,它们之间可能会共享资源,也可能要相互合作完成某一项任务,如何使这多个并发执行的线程在执行的过程中不产生冲突,使多线程编程必须解决的问题。否则,可能导致线程运行的结果不正确,甚至造成死锁问题。一. 线程安全问题 在进行多线程的程序设计时,有时需要实现多个线程共享同一段代码,从而实现共享同一个私有成员或类的静态成员的目的。这时,由于线程和线程之间争抢CPU资源,线程无序地访问这些共享资源,最终可能导...
2022-05-09 21:32:05
362
11
原创 多线程编程(中):线程的生命周期&调度
本章概述 通过上一章的学习,我们已经对线程及其创建有了深入的了解;本章将继续学习线程的相关知识,深入学习线程的生命周期,多线程协调对CPU的使用。多线程编程(上):进程.线程概念&线程创建一. 线程的生命周期 创建线程对象时,线程的生命周期就已经开始了,直到线程对象被撤销为止。在这整个生命周期中,线程并不是一个创建就进入可运行状态,线程启动之后,也不是一直处于可运行状态。在这个生命周期中,线程含有多种状态,这些状态之间可以相互转化。Java的线程的生...
2022-04-27 21:41:09
859
9
原创 多线程编程(上):进程.线程概述&创建线程
本章概述 Java 中的多线程机制可以让一个程序中的多个程序段同时运行,同时运行的每一个程序段就是一个线程,这样多个同时运行的程序段既相互独立运行,又紧密相关。编程过程中采用多线程机制,可以使系统资源利用率更高,在一些情况下可以使程序设计更简单,程序中有耗时的程序段时,使用多线程可以使程序运行更加流畅。一. 进程.线程概述1.1进程和线程基本概念下面是程序,进程和线程这几个概念的区别和联系程序:是一段静态的代码,是人们解决问题的思维方式在计算机中的描述,是应用软件执行...
2022-04-23 14:52:10
1373
11
原创 【滑动窗口问题】详解
基本概念滑动窗口是一种基于双指针的一种思想,两个指针指向的元素之间形成一个窗口。应用:什么情况可以用滑动窗口来解决实际问题呢?一般给出的数据结构是数组或者字符串 求取某个子串或者子序列最长最短等最值问题或者求某个目标值时 该问题本身可以通过暴力求解滑动窗口详解 - 知乎 (zhihu.com)...
2022-04-19 09:48:58
1654
4
原创 《剑指Offer》--- 数据结构の链表篇
✨知识回顾✨小伙伴还记得 head,node,val,prev 和 next,以及链表的一些基础操作嘛?如果忘记了,那就一起来回顾一下吧🌞👉数据结构---链表面试题6:从尾到头打印链表题目:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)示例:输入:head = [2,5,7]输出:[7,5,2]链接:剑指 Offer 06方法一:题目要求用数组返回,我们只需要创建一个链表节点数大小的数组,然后在数组中从后往前输入链表的结点打印即可。.
2022-04-11 16:50:22
1456
11
原创 MySQL数据库基础
✨本节目标✨📖了解数据库及其相关概念 📔数据库的操作:创建和删除数据库 📃表的操作:创建和删除表,表的增删改查一. 📖数据库介绍1.1 什么是数据库数据库:DB(DataBase)就是按照数据结构来组织、存储和管理数据的仓库。1.2 数据库分类关系型数据库:SQL(Structured Query Language)👉通过表和表之间,行和列之间的关系进行数据的存储 👉通过外键关联来建立表和表之间的关系 👉MySQL,Oracle,SQLlite,Sql .
2022-04-04 10:35:20
3599
19
原创 《LeetCode》--- 杨辉三角Ⅰ,Ⅱ
杨辉三角Ⅰ:给定一个非负整数numRows,生成「杨辉三角」的前numRows行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。示例1:输入:numRows = 5输出: [ [ 1 ],[ 1,1 ],[ 1,2,1 ],[ 1,3,3,1 ],[ 1,4,6,4,1 ] ]示例2:输入:numRows = 1输出:[ [ 1 ] ]题目链接:LeetCode-Solution解题思路:由上图可以看出,每个数字等于上一行的左右两个数字之和,可用此性质...
2022-03-28 19:28:29
553
原创 《剑指Offer》--- 数据结构の数组篇Ⅱ
面试题21:调整数组顺序使奇数位于偶数前面题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。在不考虑时间复杂度的条件下,最简单的思路是遍历整个数组,每碰到一个偶数,拿出这个数,并把位于这个数字后面的所有数字往前挪一位。挪完之后在数组的末尾有一个空位,这时把该偶数放入这个空位。时间复杂度O(n^2)。新思路:由题目可知,最后所有得奇数都在偶数前面,也就是说,我们在扫描这个数组的时候,如果发现有偶数出现在奇数前面,则交换它
2022-03-27 15:11:57
854
11
原创 数据结构 --- 【Map 和 Set】详解
本章目标掌握 Map/Set 及实际实现类 HashMap/TreeMap/HashSet/TreeSet 的使用 掌握 TreeMap 和 TreeSet 背后的数据结构搜索树的原理和简单实现 掌握 HashMap 和 HashSet 背后的数据结构哈希表的原理和简单实现Map 和 Set 的概念Map 和 Set 是一种专门用来进行搜索的关联式容器或者数据结构;关联式容是用来存储数据的,与序列式容器不同的是,其里面存储的是<key, value>结构的键值对,在数.
2022-03-22 16:02:48
1818
9
原创 《LeetCode》--- 两数の和Ⅰ,Ⅱ,Ⅲ,Ⅳ
各位小伙伴,欢迎大家和我一同步入算法专栏;在接下来的篇章中,我会详细讲述,总结自己在刷算法题中的一些技巧和方法,提高自己的算法能力,希望感兴趣的小伙伴能和我一起学习,共同进步✌✌✌题目一:两数之和Ⅰ给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。题目链接:...
2022-03-20 20:18:31
1394
1
原创 《剑指Offer》--- 数据结构の数组篇Ⅰ
面试题1:数组中重复的数字题目一: 找出数组中重复的数字。 在一个长度为 n 的数组里的所有数字都在 0 ~ n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。...
2022-03-17 16:28:13
915
1
原创 数据结构——【排序】详解
一. 排序💨1.1 基本概念排序(sorting)又称分类,就是将一组任意序列得数据元素按一定得规律进行排列(按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作),使之成为有序序列。平时的上下文中,如果提到排序,通常指的是排升序(非降序)。通常意义上的排序,都是指的原地排序(in place sort)。1.2 稳定性定义:数组 arr 中有若干元素,其中 A元素和 B元素相等,并且 A元素在 B元素前面,如果使用某种排序算法排序后,能够保证 A元素依然在 B元素的前面,可
2022-03-14 10:42:37
9936
15
原创 数据结构——【优先级队列】详解
目录一. PriorityQueuePriorityQueue 简介继承关系PriorityQueue 示例二. Comparable 比较器Compara 接口三. Comparator 比较器Comparator 接口四. 底层原理一. PriorityQueuePriorityQueue 简介PriorityQueue,即优先级队列。优先级队列可以保证每次取出来的元素都是队列中的最小或最大的元素<Java优先级队列默认每次取出来的为最小元素>.
2022-03-09 17:12:56
1943
15
原创 数据结构——【堆】详解
一. 堆🌲1. 堆的概念堆(heap):一种有特殊用途的数据结构——用来在一组变化频繁(发生增删查改的频率较高)的数据集中查找最值。堆在物理层面上,表现为一组连续的数组区间:long[] array ;将整个数组看作是堆。堆在逻辑结构上,一般被视为是一颗完全二叉树。满足任意结点的值都大于其子树中结点的值,叫做大堆,或者大根堆,或者最大堆;反之,则是小堆,或者小根堆,或者最小堆。当一个堆为大堆时,它的每一棵子树都是大堆。2. 堆的存储方式从堆的概念可知,堆是一棵完全二叉树,
2022-03-08 16:03:00
7619
18
原创 数据结构——顺序表,链表
一. 数据结构概述数据结构(Data Structure)是一门研究数据的组织和管理的学科。往往从外在表现为一组数据的集合或者容器。概念解释:元素(Element):被管理的原子数据,元素类型不限。集合(Collection):存放元素的容器,需要利用一定的数据结构知识对元素进行组织。遍历(Traversal)/ 迭代(Iterate):在数据结构的语境下,往往表示对一个集合中的所有元素都按 照一定的顺序处理一次。数据逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑结构是
2022-03-06 17:30:41
495
1
原创 数据结构——树,二叉树详解
一. 树1.1 树的定义树是n个结点的有限集合,有且仅有一个根结点,其余结点可分为m个根结点的子树。1.2 树的概念树(tree)是包含 n(n≥0)个结点,当 n=0 时,称为空树,非空树中条边的有穷集,在非空树中:(1)每个元素称为结点(node)。(2)有一个特定的结点被称为根结点或树根(root)。结点的度: 一个结点拥有子树的个数称为度。比如A的度为3,B的度为2,C的度为0。度为0的结点称为叶子结点(C,E,G,H,I)。树的度是树中所有结点的度的最大值,此树..
2022-03-05 13:58:48
2349
7
原创 Iterable、Collection、List 的常见方法签名以及含义
1.Iterable---------------------------------------------------------------------------------------------------------------------------------average()元素平均值。元素类型必须为Integer、Float等数字类型fun main(args: Array<String>) { val iterable = listOf(1,
2022-02-27 19:53:50
160
原创 Java假期作业(Day05)
一.选择题1、【C语言】 include <x.h> 和 include "y.h" ,以下说法正确的是( A )A. “ ” 表示先到源文件所在目录下搜索头文件B. <> 表示先到源文件所在目录下搜索头文件C. 两者用法没有区别解析:< > 代表是从 C库中去查找。而" "指定的文件则先在当前路径寻找,找不到时再到系统include 路径中寻找。2、【C语言】 int i=10 ,j= 10 ,k= 3 ; k*=i+j k 最后的值是? ( A
2022-02-14 15:18:03
627
原创 静态方法和非静态方法区别(优/缺点)
静态方法static(类方法)和 非静态方法(实例方法)的区别:方法我们主要分为三种:1.构造方法2.非静态方法(普通方法/实例方法)3.静态方法(类方法)一、静态方法和非静态方法的区别(调用对象、引用变量不同)静态方法:是使用static关键字修饰的方法,又叫类方法.属于类的,不属于对象, 在实例化对象之前就可以通过类名.方法名调用静态方法。 (静态属性,静态方法都是属于类的,可以直接通过类名调用)。1.在静态方法中,可以调用静态方法。2.在静态方法中,不能调用非静态方法。3.在静态方法中
2022-02-12 13:35:46
2649
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人