- 博客(37)
- 收藏
- 关注
原创 在 Centos 7 上编译 OpenJDK 23 及错误处理
希望在 JDK 源码中添加自己的中文注释,方便对学习过程进行记录。其中遇到的错误主要有和,没有去调查哪些版本是兼容的,本文主要处理字符编码问题。
2024-03-05 16:04:29 914
原创 Shell 脚本基础
定义一个变量username, 注意不能有多余的空格 username = ROOT# bash中变量默认类型都是字符串x=1+1echo $x# 将变量提升为全局变量, 使得其他的shell程序可以使用export <变量名>函数不可以写形参, 只能通过$1$2这种形式来获取传入函数的值/bin/bash# 注意: 函数不能写形参列表, 因此()内部必须是空, 甚至也可以不写()function <函数名>()# 函数主体, 可以有返回值案例应用:计算两个输入值的和。
2023-12-26 00:31:42 1066
原创 图解AnnotationConfigApplicationContext容器的创建流程(源码)
对 Spring 经典容器(AnnotationConfigApplicationContext)的创建流程进行图解梳理
2023-12-26 00:12:06 476
原创 CAS为什么还存在线程安全问题(从所谓的ABA问题再学CAS)
compareAndSet 是 compre(比较)和 set(赋值)是原子性操作,但实际涉及到。
2023-12-20 23:03:41 943
原创 基于Spring的枚举类+策略模式设计(以实现多种第三方支付功能为例)
最近阅读《贯彻设计模式》这本书,里面使用一个更真实的项目来介绍设计模式的使用,相较于其它那些只会以披萨、厨师为例的设计模式书籍是有些进步。但这书有时候为了使用设计模式而强行朝着对应的 UML 图来设计类结构,并且对设计理念缺少讲解,所以也不能说有多优秀,79分的水平。书中就这部分内容设计,提到使用了:策略模式、门面模式、策略工厂模式、享元模式。但可能真正称得上是设计的内容就两个部分,策略模式和策略工厂模式。但是就书中所写的策略工厂,个人认为有些啰嗦,并且指定全类名,通过反射来获取对象,这种实现不够优雅。
2023-12-20 00:51:01 1257
原创 JavaWeb项目中已经导入依赖却报错依赖不存在
在使用 Maven + Servlet + Tomcat 来搭建 JavaWeb 项目时,在 pom.xml 中正确引入了依赖,编码过程中也能够正常使用。但是在启动 Tomcat 之后(启动时或启动后),却报错显示该依赖不存在。
2023-12-15 02:03:24 519
原创 Cglib动态代理从入门到掌握
本文的写作目的是为了探究 Spring 框架中在使用@Transactional标注的方法中使用 this 进行自调用时事务失效的原因,各种视频教程中只是简单指出 this 指向的不是代理类对象,而是目标类对象,但是并没有解释为什么 this 不是代理类对象?在学习完 JDK 动态代理之后,我认为是动态代理的原因。虽然之后 Cglib Proxy 和 JDK Proxy 的实现原理不同,,而传递给 invoke 方法的对象就是目标类对象,因此 this 指向的就是传递过来的目标类对象。
2023-12-10 16:09:28 931
原创 JDK 动态代理从入门到掌握
JDK 动态代理的核心是对代理类的增强方法和目标类的原始方法对象的进行动态绑定(这部分是 JDK 源码做的事情);而作为 JDK Proxy 的使用者,我们使用动态代理的核心就是正确地设计自定义的 InvocationHandler 类,也就是传入目标类对象从调用过程中来看,JDK 完成前半部分的绑定工作,使用者完成后半部分 Target 对象的注入和方法调用工作。拦截接口数组中的所有方法,创建代理类。
2023-11-30 21:01:03 939
原创 简单模拟 Spring 创建的动态代理类(解释一种@Transactional事务失效的场景)
本文主要目的是从父类和子类继承的角度去分析为什么在 @Service 标注的业务类中使用 this 调用方法会造成事务失效。解释在这种情况下 this 为什么是原始类对象而不是代理类对象。
2023-11-20 18:53:24 233
原创 IDAE中文乱码的问题处理及分析
问题描述IDEA中出现中文乱码原因分析windows 10中文系统的字符编码集默认为gbk错误处理修改windows 10系统的控制台的字符编码集区域与语言设置–>管理语言设置–>更改系统区域设置–>勾选utf-8缺点: 仅仅修改上面的配置后, tomcat在控制台输出中文还是乱码在tomcat服务器的配置选项, 即Edit Configurations中的VM options设置-Dfile.encoding=UTF-8缺点: 控制台中文输出乱码的问...
2022-05-10 13:09:04 529
原创 第四章: 多表的合并(merge, append的使用)
第四章: 多表的合并(merge, append的使用)Python数据处理入门第四章: 多表的合并(merge, append的使用)字段方向上的拓展(更多列) --- merge元组方向的拓展(更多行) --- append字段方向上的拓展(更多列) — mergeimport pandas as pdfilepath_01 = r"file01.xlsx"filepath_02 = r"file02.xlsx"df_table_01 = pd.read_excel(filepath_01)
2022-05-03 16:44:26 1109
原创 第六章 数据库完整性和触发器
数据库完整性数据库完整性概述数据完整性是DBMS应保证的DB的一种特性在任何情况下的正确性, 有效性和一致性广义完整性语义完整性狭义完整性并发控制安全控制DB故障恢复狭义完整性实体完整性主键不能取NULL参照完整性外键只能取NULL或对应表的主键中的值用户自定义完整性为什么会引发数据库完整性的问题不正当的数据库操作, 如:输入错误操作失误程序处理失误数据库完整性管理的作用防止和避免数据库中不合理数据的出现DBMS应尽可能自动防止DB中语义不合理现象
2022-05-03 16:06:51 1019
原创 第五章 SQL实现关系代数运算
SQL实现关系代数运算并-交-差的处理不带ALL表示去重, 而带有ALL表示保留冗余运算SQL语法并运算UNION [ALL]交运算INTERSECT [ALL] (mysql中未实现)差运算EXCEPT [ALL] (mysql中未实现)#学过002号课程的同学 或 学过003号课程的同学select Snofrom sct.scwhere Cno = '002'unionselect Snofrom sct.scwhere Cno = '0
2022-05-03 16:03:11 1074
原创 第四章 SQL子查询
文章目录子查询子查询概述子查询功能子查询分类编写子查询的技巧单行子查询和多行子查询单行子查询多行子查询不相关子查询和相关子查询不相关子查询相关子查询EXISTS和NOT EXISTSIN子查询some/all子查询(NOT) EXISTS子查询重点理解: NOT EXISTS全称命题与存在命题的转化分组计算和聚集计算子查询子查询概述出现在某一子句中的select语句称为子查询子查询功能判断某一元素是否是某一个集合的成员判断某一个集合是否包含另一个集合测试集合是否存在重复元素, 集合是否为空等
2022-05-03 15:58:04 570
原创 第三章 SQL增删改
文章目录SQL增删改插入单个元组插入批量元组插入更新SQL增删改插入单个元组插入语法: insert into <表名>[(列名 [, 列名] ...)] values (值 [,值] ...)#插入student表数据insert into studentvalues ('98030101', '张三', '男', 20, '03', '980301');insert into studentvalues ('98030102', '张四', '女', 20, '03', '
2022-05-03 15:50:14 170
原创 第二章 SQL简单查询
文章目录SQL简单查询基础查询去重模糊查询多表联合查询SQL简单查询基础查询#查询student表中的所有学生信息select *from student;#查询student表中所有学生的姓名以及年龄select Sname, Sagefrom student;#查询学生表中所有年龄大于等于19岁的学生年龄和姓名select Sage,Snamefrom studentwhere Sage >= 19;#查询教师表中所有工资少于1500元或者工资大于2000元, 并且
2022-05-03 15:47:37 147
原创 第一章 创建数据库和表
冲突可串行化判别算法数据库是共享资源, 多个事务对共享资源的并发访问可能会造成数据不一致问题, 因此需要并发控制。并发控制的目的是解决数据不一致问题, 即得到一个正确的调度序列,而封锁则是产生正确调度序列的方法. 封锁是指一个事务在对某个数据库对象操作之前先向系统发出请求,对其加锁. 根据锁的类型, 在事务释放该对象的锁之前, 其它事务不能更新或读取该对象.封锁是产生正确调度序列的方法, 而可串行化则是判断一个给定的调度序列是否正确. 由于没有高效判别一个序列是否可串行化的算法, 通过附加一些额外条件
2022-05-03 15:29:06 576
原创 第三章: 批量处理多张sheet表的excel文件
第三章: 批量处理多张sheet表的excel文件Python数据处理入门第三章: 批量处理多张sheet表的excel文件良好习惯(十分重要)代码处理良好习惯(十分重要)在正式处理数据之前, 请保证你数据和文件名的规范性, 否则报错是你活该, 至少满足以下要求:不要在原始的数据文件中添加你的处理结果保留原始数据文件作为副本, 你的处理结果大多数情况下只会给专业的人添加麻烦不要使用合并单元格你做的是数据处理工作, 不是数据展示工作, 此外合并单元格也并没有让表格显得高级
2022-04-20 15:40:48 623
原创 第二章: PyCharm相关配置(可跳过)
第二章: PyCharm相关配置Python数据处理入门第二章: PyCharm相关配置配置忽略大小写无限试用配置忽略大小写依次选择File-->Settings进入如下界面, 搜索框中输入case无限试用依次选择File-->Settings-->Plugins进入到插件页面选择中间的小齿轮⚙, 选择Manage Plugin Repositories, 再选择+, 添加如下地址后点击OK在插件商店Marketplace中下载如下插件, 点击Apply和
2022-04-20 14:56:38 726
原创 第一章: 从零开始搭建Anaconda + PyCharm环境
第一章: 从零开始搭建Anaconda + PyCharm环境Python数据处理入门第一章: 从零开始搭建Anaconda + PyCharm环境前言一、Anaconda下载和配置下载Anaconda安装Anaconda二、PyCharm下载和配置下载PyCharm安装PyCharm配置PyCharm(重点)三、配置阿里源镜像前言首先简单类比下Anaconda和PyCharm的作用如果将写代码的过程比作用画笔绘制画作, 则Anaconda相当于颜料盒, 里面存放着各种库, 这些库的作用就相当于颜
2022-04-20 14:26:56 790
原创 模拟Leetcode通过字符串生成二叉树
二叉树的反序列化通过一个字符串来实现构造一棵二叉树, 方便在leetcode刷题时进行本地调试例题297. 二叉树的序列化与反序列化实现方案代码逻辑:将字符串中的数据提取出来, 存放到vector容器中使用索引i来控制遍历容器中的数据使用queue来辅助层次遍历, 每次在加入队列的时候创建节点, 在弹出队列的时候为该节点的left指针和right指针赋值注意事项:vector中会保存**“null”**字符串, 但是queue中只保存非"null"对应的节点在queue每次弹出节
2022-04-20 13:02:32 1124
原创 一步完美解决VSCode下LaTeX编译文件的问题
网上给出很多设置LaTex Workshop插件的配置参数来实现, 理解过程繁琐且效果不好, 总是出现各种奇奇怪怪的问题. 看到最接近解决这个问题的一篇文章是https://blog.csdn.net/xls0123456789/article/details/111994704#comments_16189335. 但该设置在使用xe->bib->xe->xe这条编译链的时候会导致bib找不到编译文件而报错. 之前学习 Git 的时候有看到可以设置.gitignore文件, 然后在VSC
2021-05-12 18:56:33 15125 1
原创 有关三角函数的定积分的计算
在介绍三角函数定积分计算之前,,, 首先介绍一些有关函数对称性的基础知识结论一:对于复合函数f[u(x)],如果内层函数u(x)关于区间[a,b]对称,则f[u(x)]关于[a,b]对称结论一: 对于复合函数f[u(x)], 如果内层函数u(x)关于区间[a,b]对称, 则f[u(x)]关于[a,b]对称结论一:对于复合函数f[u(x)],如果内层函数u(x)关于区间[a,b]对称,则f[u(x)]关于[a,b]对称证明:因为u(x)u(x)u(x)关于[a,b][a,b][a,b]对称,,,
2021-04-15 23:26:17 9414
原创 第三章 存储系统 科普性知识
存储器的分类存储器常见的按层次分类为: Cache高速缓冲存储器, 主存/内存, 外存/辅存以手机为例,运行内存RAM:8GB指手机的主存;而存储容量ROM:256GB则是手机的外存RAM(Random Access Memory)是易失性存储器,就是断电后数据不会保存;ROM(Read-Only Memory)是非易失性存储器,就是断电后数据仍然保存。这里容易被名称诱导的是,RAM和ROM都是可以随机存取的,但是并不是所有ROM后缀的都属于手机在开机的时候,有一段加载动画,就是因为关
2021-04-14 00:45:43 275
原创 模板题
模板题1: 判断绝对值函数是否可导f(x)在x=a处连续,F(x)=f(x)∗∣x−a∣,则f(a)=0是F(x)在x=a处可导的充要条件f(x)在x=a处连续, F(x)=f(x)*|x-a|, 则f(a)=0是F(x)在x=a处可导的充要条件f(x)在x=a处连续,F(x)=f(x)∗∣x−a∣,则f(a)=0是F(x)在x=a处可导的充要条件结论:F(x)在满足f(x0)=0的点x0处必定可导F(x)在满足g(x0)=0的点x0处为可疑不可导点可疑不可导点−必定可导点=不可导点F(x)在满足f
2021-04-13 16:39:26 90
原创 微分方程算子法(计算特解的利器)
微分方程需要学会求解的类型直接套公式法的一阶非齐次线性微分方程特解十分难算的高阶常系数线性微分方程可化简的其它类型概念齐次方程与非齐次方程(1). 齐次方程:a1∗y(n)+a2∗y(n−1)+...+an−1∗y′+an∗y=0 齐次方程 :a_1*y^{(n)}+a_2*y^{(n-1)}+...+a_{n-1}*y'+a_n*y= 0 \\\space齐次方程:a1∗y(n)+a2∗y(n−1)+...+an−1∗y′+an∗y=0 (2)
2021-04-13 14:47:03 2705 4
原创 好题荟萃
好题荟萃例题1已知f(xy)=yf(x)+xf(y)对于任意的正数x,y均成立,且f′(1)=e,则f(xy)的极小值为()已知f(xy) = yf(x)+xf(y)对于任意的正数x,y均成立, 且f'(1)=e, 则f(xy)的极小值为()已知f(xy)=yf(x)+xf(y)对于任意的正数x,y均成立,且f′(1)=e,则f(xy)的极小值为()解析11.求f(xy)的极小值,实际上就是求f(x)的极小值,故意使用f(xy)来忽悠人 2.要求极小值,必然使用求极值的工具−导数&n
2021-04-12 22:19:01 922
原创 一元函数微分学
一元函数微分学概念1: 连续是针对邻域的概念f′′(x0)=A<=>f(x)在x0处二阶可导<=>f′(x)在x=x0处可导 =>f′(x)在x0处连续<=>f(x)的导函数在x0处连续<=>在x0邻域内,均有f′(x)=f′(x0)=B =>在x=0处,可以通过f(x)的表达式得到f′(x)的表达式 f''(x_0)=A<=>f(x)在x_0处二阶可导<=>f'(x)在x=x_0处可导\\\ \\=
2021-04-12 21:20:07 342
原创 Docker从入门到复制粘贴
文章目录Docker介绍查看版本Docker在Centos7上的安装用阿里云镜像加速器Docker命令Docker进程相关的命令Docker镜像相关命令Docker容器相关命令Docker容器的数据卷配置数据卷(相当于共享文件夹)配置数据卷容器Docker应用部署部署mysql部署tomcatDockerfileDocker镜像原理镜像制作DockerfileDocker介绍以前是搬家,现在...
2020-04-12 01:50:33 308 1
原创 tensorflow学习记录
文章目录Tensorflow学习笔记张量的创建与输出结果介绍创建一个张量创建特殊张量数据的格式将numpy的数据类型转换成Tensor常用函数的使用生成正态分布的随机数, 默认均值为0, 标准差为1生成截断式正态分布的随机数生成均匀分布的随机数强制类型转换计算张量维度上元素的最小值计算张量维度上元素的最大值计算张量沿着指定维度的平均值计算张量沿着指定维度的和标记变量为可训练tensorflow中的...
2020-04-08 11:18:03 341 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人