工作前二刷Lambda表达式
待记录。。
# lambda
# Stream 流
优化前:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859package Stream;import java.util.ArrayList;/* * @Author: jun * @Date:2023/5/30 11:16 * @概述: */public class StreamDemo01 { /** * 创建集合 * 需求: * 输出a开头的长度为8的元素 */ public static void main(String[] args) { ArrayList<String> list1 = new ArrayList<>(); list1.add("caoidna"); list1.add("saoi ...
RabbitMQ
# 相关概念
MQ(message queue)
消息队列
# MQ 的优势
流量消峰
应用解耦
异步处理
# 安装环境
使用 docker 拉取镜像安装
1docker pull rabbitmq:3.7.7
访问端口 http://localhost:15672
输入 guest/guest
或者可能是 admin/admin
# 使用 allow praallel run
运行多个线程
# 消息队列持久化
1boolean durable = true;
2023.5.7 完成延迟消息队列的优化,插件由于是使用的 docker 就暂时不做了。实战有待完成。
深度学习
# 快速入门
学习基础数学知识,尤其是线性代数、微积分和概率论。这些知识是深度学习的基础,必须掌握。
学习 Python 编程语言,因为 Python 是深度学习领域最流行的编程语言之一。建议从 Python 基础语法开始学起,再逐步深入学习相关库,如 NumPy、Pandas 等。
了解机器学习的基本概念和原理,包括监督学习、无监督学习、回归、分类、聚类等。
学习深度学习的基本概念和原理,如神经网络、反向传播算法、卷积神经网络、循环神经网络等。
学习常用深度学习框架,如 TensorFlow、PyTorch 等。可以通过官方文档、教程、视频等方式进行学习。
实践项目。选择相对简单的深度学习项目,如手写数字识别、图像分类等,逐渐提高难度。在实践中遇到问题时可以查阅文档、寻求帮助。
# 方法与技巧
# 经典算法
# 线性回归
线性回归是一种机器学习中常用的技术,用于对一个变量与另一个或多个变量之间的线性关系进行建模和预测。它的基本思想是,假设输入变量 x 和输出变量 y 之间存在着一个线性的关系,可以用下面的公式来表示:
y = b_0 + b_1 * x_1 ...
算法
# 面试题一:找出数组中重复的数字
题目描述:
在一个长度为 n 的数组里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为 7 的数组 {2,3,1,0,2,5,3],那么对应的输出是重复的数字 2 或者 3。
解题思路:
通过参数 duplication 传给函数的调用者,而函数的返回值表示数组中是否有重复的数字。当输入的数组中存在重复的数字时,返回 true; 否则返回 false。
代码中尽管有一个两重循环,但每个数字最多只要交换两次就能找到属于它自己的位置,因此总的时间复杂度是 O (n)。另外,所有的操作步骤都是在输入数组上进行的,不需要额外分配内存,因此空间复杂度为 O (1)。
C++ 实现
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 ...
Java技术栈总结
# 大纲
基础 (大概学习 2-3 个月可以掌握)
工具 maven+git+idea
mysql (2 星期左右)
基础前端 (2 星期左右)
框架 SSM+Springboot (1 到 2 个月左右)
项目 电商项目已做过了,再找几个不同类别差不多的做做 (2 个月左右)
找工作面试阶段
一般来说:1 周至 1 个月,如果 3 个月都找不到工作简历有大问题了
# 2023.4.26 自我分析
Java 基础差不多了,需要结合面试题笔试题巩固
工具基本上全用过,也较为熟练了,不需要刻意再专研。
数据库已会,多看看 sql 文件,理解句子,时间充裕可以写写 SQL
三件套和前端 vue 基本会,可以再学点 react
框架会用但缺乏原理理解,需要结合面试题八股文学习。
项目:电商差不多就是要把做过的会说出来,再者就是再做个优质的,尽量是技术含量高一点的某一个模块,不需要完整的一个项目都做出来。
工作的话就主要是简历及时更新,暂定每个月的一号去写一下简历。
# 2023.5.7 自我分析
计划是面试算法:今天已经完成到了第十题 ...
git命令总结
# 快速开始
# git 的三种状态
已修改 modified:表示修改了文件,但还没将修改的结果放到暂存区
已暂存 staged:表示对已修改文件的当前版本做了标记,使之包含在下次提交的列表中
已提交 committed:表示文件已经安全地保存在本地的 Git 仓库中
注意:
工作区的文件被修改了,但还没有放到暂存区,就是已修改状态如果文件**已修改**状态。
如果文件已修改并放入暂存区,就属于**已暂存**状态。
如果 Git 仓库中保存着特定版本的文件,就属于**已提交**状态
# 配置用户信息
配置用户名
1git config --global user.name "用户名"
配置邮箱地址
1git config --global user.email "用户邮箱"
# git文件的4种状态
显示文件状态:
git status,输出详细的状态报告。
为了精简阅读报告,可以输入git status -s即git status --short
简短输出报告。
未被跟踪的文件会在提示文件前面出现两个"**??**"
## 如何跟踪 ...
开发笔记
# 莫名其妙的问题
首先出现的是
403 跨域访问。
办法就是修改路径,有些路径混乱了,注意可以使用测试工具测试。
这个 Data、time、timestamp 类型混乱了
AI 解决
添加 @JsonIgnore
# 统一异常处理
全局统一处理异常
特定异常处理
自定义异常处理
# 跨域的问题
跨域的三种情况:
访问协议:http https
访问 ip: 192 172
访问端口:8301 9528
这三个出现任何一个不同都会出现跨域访问的问题。
跨域的本质就是浏览器对 ajax 请求的一种限制
解决:
在后端接口 Controller 上添加注解 @CrossOrigin// 跨域
使用 httpClient
通过 gateway 网关
# EasyExcel
EasyExcel:一行一行进行加载解析,优点是查询方便
poi:一次性把所有的数据加载到内存中,进行解析。优点是添加、修改、删除方便
# excel 术语
整个 excel 称为 workbook
每个 workbook 里面有很多 sheet
在每个 sheet 有行 列 单元格
# ...
花卉种类识别日志
# 种类
1. 玫瑰花 Roses
2. 月季花 Monthly _Flowers
3. 莲花 Lotus
4. 茉莉花 Jasmine
5. 菊花 Chrysanthemum
6. 牡丹花 Peony_flowers
7. 郁金香 Tulips
8. 桂花 Osmanthus (难度较大,改为向日葵Sunflowers)
9. 梅花 Plum
10.茶花 Camellia
# 环境
环境搭建
conda install pytorch1.8.0 torchvision0.9.0 torchaudio==0.8.0 cpuonly -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
# 日志一
玫瑰花数据有问题,需要重新标注
月季花识别准确率很高,但还是需要注意添加其它品种的花朵后会不会降低其识别准确率
# 日志二
五个类别一起进行训练,基本上数据集没什么问题的识别率很好,但是对于玫瑰和月季花,由于两种类型的长相非常相似,导致最终的两种花的识别出现比较大的问题。需要优化数据集的挑选。
# 日 ...
正则表达式
# 快速入门
# 正则表达式的便利
123456789101112131415161718192021222324252627282930313233343536373839404142434445package com.jun.regexp;import java.util.regex.Matcher;import java.util.regex.Pattern;/* * @Author: jun * @Date:2023/4/12 21:15 * @概述:正则表达式的便利 */public class Regexp_ { public static void main(String[] args) { //假定,编写了爬虫,从百度页面获取了如下文本 String content = "项目经历\n" + "花朵分类识别项目(使用 YOLOv5)时间范围:2022 年 1 月 - 2022 年 3 月\n" + "概述:在 ...
C++的一些基础常识
# 文件扩展名与类型
在 C++ 中,文件扩展名表示代码的类型和性质,通常有四种扩展名:
.hpp:Header or C++ Header File,表示 C++ 头文件。这种文件通常包含类声明、函数原型和模板定义,不包含函数定义或变量定义。这些文件使用 #ifndef 和 #define 进行保护,以避免多次包含头文件而引起的编译错误。
.c:C Source File,表示 C 语言源文件。这种文件包含 C 语言代码和函数定义。通常不包含头文件,因为在 C 语言中使用.h 文件作为头文件,而不是.hpp 文件。
.cpp:C++ Source File,表示 C 源文件。这种文件包含 C 代码和函数定义。与.c 文件类似,通常不包含头文件,而使用.hpp 文件作为头文件。
.h:Header File,表示 C 头文件。这种文件包含函数原型、结构体声明、宏定义和其他常规声明。通常用于将代码模块化,以便在其他源文件中使用。
总的来说,.hpp 文件用于 C 类声明和模板定义,.c 文件用于 C 语言代码,.cpp 文件用于 C 代码,.h 文件用于 C 的头文件。它们的核心区别在于 ...