SPring AI
Spring AISpring AI简介Spring AI官方文档
Spring AI 是一个面向人工智能工程的应用框架,它类似于一个客户端,可以实现向不同厂商对应的AI模型服务发送请求获取响应
SpringAI目前能够支持的AI模型
Spring AI实践Open ai Api Key第三方平台
在该平台上注册可以免费获取一定的使用额度
参考SpringAI openAI官方文档,快速搭建一个应用
引入pom依赖1234dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-openai-spring-boot-starter</artifactId> </dependency>
进行相关配置12345678#服务地址spring.ai.openai.base-url=https://api.xty.app#openai keyspring.ai.openai.api-key=sk-yJ ...
git版本控制
VCS(版本控制系统)Git基础关于git的详细介绍,可以参考官网的Git Book
Git安装不同系统上git的安装流程 ,参照官方文档
Git配置Git 自带一个 git config 的工具来帮助设置控制 Git 外观和行为的配置变量
config作用域
12345678git config --local #只对某个仓库有效,该命令只能在某个git repository内部使用,在仓库内部--local的配置优先级会大于--global的配置git config --global #对当前用户的所有仓库都有效git config --system #对系统所有登录的用户都有效#显示指定作用域的config配置,只需加 --listgit config --list --local #只该命令只能在某个git repository内部使用,查看某个具体的仓库的配置git config --list --globalgit config --list --system
配置用户信息
安装完 Git 之后,要做的第一件事就是设置你的用户名和邮件地址。 这一点很重要,因为每一个 Gi ...
常见免费资源网站
常见免费资源网站聚合搜索平台虫部落 聚合搜索平台,涵盖论坛以及常见问题的问答,学术、教程等常见搜索网站的聚合
科研鱼导航 聚合搜索平台,主要是学术科研相关搜索资源的聚合,包含常见的科研工具、学术论文、期刊会议等
一个框导航网 各种资源网站大聚合
设计类码力全开 技术、设计、产品、运营,以及关于独立开发者常使用的设计资源类库
电子书类书享家 聚合各种电子书下载网站
PPT类HiPPTER 聚合各种PPT资源网站
教学资源类第一教程网_免费的综合知识学习网站 (diyijc.com) 涵盖小学、初中、高中、大学、研究生以及各种技能教学视频的网站
考试酷 涵盖各种学科考试的在线题库系统,比如计算机等级考试、软考、考公、英语等级考试等
中国高校外语慕课平台(UMOOCs) (unipus.cn) 汇聚中国各个高效优质的外语教学课程,包含英语、以及各种其他小语种
视频图片资源相关wallhaven 涵盖大量高清壁纸资源
Unsplash 各种设计师、摄影师制作的图片资源,可以免费下载
Videvo 视频和音视频资源网站,适用于视频剪辑制作者,需要的各种素材齐全
Pixa ...
实现带括号的四则运算表达式的计算
实现带括号的四则运算表达式的计算本题源于找暑期实习携程二面当时的手撕题目,当时比较懵逼,没有撕出来
123题目描述:利用栈或者队列求解: 1+((2+3)×4)-5
分析:我们以前做过如何用单个栈求解逆波兰表达式的值,本题给出的是一个中缀表达式,逆波兰表达式是后缀表达式的形式
比如:题目中的表达式对应的后缀表达形式为:123+4×+5-
所以本题首先需要解决的问题是:
如何将一个中缀表达式转换为后缀表达式
如何求解后缀表达式的值
中缀表达式转后缀表达式利用一个栈一个队列即可,定义一个栈stack和一个队列queue,然后遍历中缀表达式,碰到数字,直接将其加入队列queue,碰到非数字字符,则根据实际情况需要做如下操作:
如果当前栈stack为空或者stack栈顶元素为(,则直接将当前字符加入栈stack
如果当前字符的优先级大于栈stack栈顶字符的优先级,则也直接将当亲字符加入栈stack
否则,不断弹出栈statck栈顶的字符直到栈顶字符的优先级小于当前字符或者栈顶字符为’(‘
123456789101112131415161718192021222324252627282 ...
Dubbo简单使用
Dubbo分布式系统概述用户体验
美观
功能
速度
稳定性
其中美观由UI决定、功能由PM决定,而速度和稳定性则与开发人员息息相关
互联网项目特点
用户多
流量大、并发高
海量数据
易受攻击
功能繁琐
变更快
大型互联网项目架构目标衡量网站的性能指标响应时间指执行一个请求从开始到最后收到响应数据所花费的总体时间
并发数指系统同时能够处理的请求数量
并发连接数
指的是客户端向服务器发起请求,并建立了TCP连接,每秒钟服务器连接的总TCP数量
请求数(QPS)
每秒多少请求
并发用户数
单位时间内多少用户
吞吐量单位时间内系统能处理的请求数量
QPS(Query per second) 每秒查询数
TPS(Transactions per second)每秒事务数
一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
•一个页面的一次访问,只会形成一个TPS;但一次页面请求,可能产生多次对服务器的请求,就会有多个QPS
大型互联网项目目标
高性能:提供快速的访 ...
操作系统
操作系统主要是学习掌握:进程管理与内存管理这两部分;关于IO管理只需了解即可
CH1 操作系统概述操作系统的概念
操作系统向上层提供的简易服务:
图像化用户接口
命令接口
联机命令接口:类似于CMD,交互的方式,用户输入一个命令,操作系统执行对应的操作
脱机命令接口:批处理命令接口,比如Windows下执行.bat脚本或者Linux下执行.sh脚本
程序接口:在程序中通过系统调用来使用程序接口,执行相关的功能
比如执行print函数,将内容输出时,内部就进行了系统调用
操作系统的基本特征并发
共享
在一定程度上并发和共享是相互存在的前提条件
异步
虚拟
操作系统的运行机制
核心:内核态与用户态之间的切换
CPU如何实现内核态和用户态之间的切换?
中断和异常中断的作用
中断是让操作系统内核夺回CPU使用权的唯一途径
发生中断,CPU会暂停当前程序的执行,转而执行对应的中断处理程序
中断的类型
内中断的例子
外中断的例子
中断机制的原理
中断总结
系统调用
什么是系统调用
系统调用与库函数的区别
什么功能需要系统调用?
系统调用的过程
操作系统的体系结构计 ...
HTML 与 CSS
HTML 与 CSSHTML 是什么:即 HyperText Markup language 超文本标记语言,咱们熟知的网页就是用它编写的,HTML 的作用是定义网页的内容和结构。
HyperText 是指用超链接的方式组织网页,把网页联系起来
Markup 是指用 <标签> 的方式赋予内容不同的功能和含义
CSS 是什么:即 Cascading Style Sheets 级联(层叠)样式表,它描述了网页的表现与展示效果
HTML 元素HTML 由一系列元素 elements 组成,例如
1<p>Hello, world!</p>
整体称之为元素
<p> 和 </p> 分别称为起始和结束标签
标签包围起来的 Hello, world 称之为内容
p 是预先定义好的 html 标签,作用是将内容作为一个单独的段落
元素还可以有属性,如
1<p id="p1">Hello, world!</p>
属性一般是预先定义好的,这里的 id 属性是给元素一个唯一的标识
元素之 ...
Javascript
Javascript它是一种脚本语言,可以用来更改页面内容,控制多媒体,制作图像、动画等等
例子
修改页面内容
js 代码位置
123<script> // js 代码</script>
引入 js 脚本
1<script src="js脚本路径"></script>
注意,到了框架之后,引入方式会有不同
变量与数据类型声明变量1) let :star:1let 变量名 = 值;
let 声明的变量可以被多次赋值,例如
12let a = 100; // 初始值是 100a = 200; // ok, 被重新赋值为 200
2) const :star:
const 修饰的叫常量,只能赋值一次
12const b = 300; // 初始值是 300b = 400; // error, 不能再次赋值
const 并不意味着它引用的内容不可修改,例如
123const c = [1,2,3];c[2] = 4; // ok, 数组内容被修改成 [1,2,4]c = [5,6 ...
代码生成器
代码生成器代码生成器概述背景基于MVC架构的传统进行模块开发的步骤:
创建数据库表
根据表字段设计对应的实体类(PO)
编写增删改查持久层(dao)代码
根据业务逻辑编写service层代码
controller层代码和前端页面
通常只要知道了一个表的结构,增删改查的前后台代码格式基本上就是固定的,比如controller、service、dao、实体类Po、前端jsp等模块的代码在不同数据库表基础上都具有类似的结构,所以正对这部分代码,可以让计算机自动帮我们生成,让精力聚焦于更复杂业务代码的编写上
需求分析代码生成器依据公共的模板和数据库表中的信息自动生成代码
传统开发中,由于不同数据库基础增删改查代码结构相似,程序员通常都是将一份已经写好的代码进行复制和修改,再根据不同业务需求在此基础上进行代码的完善,可以将这份代码称之为代码模板
生成的基础代码与对应数据库密切相关,所以除代码模板之外还需要数据库表的信息来对模板相关内容进行填充
基本思路
代码生成自动生成代码的几个重点需要解决的问题
数据库以及表的解析,用于生成实体类以及其他代码
从数据库中解析出数据库中表的名称以及表 ...
Linux软件安装和部署
在Linux上部署各类软件注意下面全部的软件安装的相关流程,90%都是取自软件自身的官方网站。
一个合格的程序员应当要有良好的信息收集能力哦
MySQL数据库管理系统安装部署【简单】简介MySQL数据库管理系统(后续简称MySQL),是一款知名的数据库系统,其特点是:轻量、简单、功能丰富。
MySQL数据库可谓是软件行业的明星产品,无论是后端开发、大数据、AI、运维、测试等各类岗位,基本上都会和MySQL打交道。
让我们从MySQL开始,进行实战的Linux软件安装部署。
本次课程分为2个版本进行安装:
MySQL 5.7版本安装
MySQL 8.x版本安装
由于MySQL5.x和8.x各自有许多使用者,所以这两个版本我们都演示安装一遍
注意MySQL的安装过程中,除了会使用Linux命令外,还会使用到少量的数据库专用的:SQL语句
对于SQL语句我们并未涉及,所以可以跟随教程的内容,复制粘贴即可
如对MySQL感兴趣,可以学习BiliBili黑马程序员视频:2022新版黑马程序员MySQL知识精讲+mysql实战案例_零基础mysql数据库入门到高级全套教程
如有时间,建议 ...