- 博客(165)
- 资源 (11)
- 收藏
- 关注
原创 多线程任务监视器
1. ExecutorService 调用 submit() , 执行 AbstractExecutorService 重写的 submit() 方法。我们可以看到 worker-pool-0 执行的 13 秒睡眠被中断, "任务已被中断, 开始处理后续操作........." 顺利打印。这些阻塞操作我们可以打断, 那么一些正常的非阻塞式的任务呢, 毕竟我们不会经常在工作中让线程自己去睡眠...测试一下。五. Thread 的 interrupt() 方法。7.3 isCancelled() 方法。
2024-04-03 16:49:40 581
原创 mysql binlog常用操作
一.查看 binlog 基本信息binlog文件的位置配置可在 /etc/my.cnf 配置和查看0. 登录 mysqlmysql -h localhost -u root -p1.查看binlog文件列表进入mysql命令行:show binary logs;2.查看当前正在写入的binlog文件show master status;3. 查看binlog事件信息show binlog events in 'bin-log.000004';4.查看 binlog 文件单个
2022-04-27 11:26:13 3174
原创 JVM垃圾收集器
一.概述GC需要完成的三件事:1.哪些内存需要回收? 2.什么时候回收? 3.如何回收Java内存运行时区域的各个部分:a. 其中程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作,每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的(在运行期会由JIT编译器进行一些优化,本章默认是编译器可知的),因此这几个区域的内存分配和回收都具备确定性,在这几个区域内就不需要过多考虑回收的问题,因为方法结束或者线程结束时,内
2022-04-22 15:48:54 2174
原创 JDK内置命令行工具
java命令行序号接口javaJava 应用的启动程序javacJDK 内置的编译工具javap反编译 class 文件的工具javadoc根据 Java 代码和标准注释,自动生成相关的 API 说明文档javahJNI 开发时, 根据 java 代码生成需要的 .h文件extcheck检查某个 jar 文件和运行时扩展 jar 有没有版本冲突,很少使用jdbJava Debugger ; 可以调试本地和远端程序,属于 JPDA 中的一
2022-03-16 14:49:54 11243
原创 JVM 启动参数
JVM 启动参数一.几类不同开头的参数1. 以 - 开头为标准参数,所有的 JVM 都要实现这些参数,并且向后兼容,如 -server。2. -D 设置系统属性,如 -Dfile.encoding=UTF-8。3. 以 -X 开头为非标准参数,基本都是传给 JVM 的,默认 JVM 实现这些参数的功能,但是并不保证所有 JVM 实现都满足,且不保证向后兼容。 可以使用 java -X 命令来查看当前 JVM 支持的非标准参数,如 -Xmx8g。4. 以 –XX:开头为非稳定参数, 专门用于控制
2022-03-11 10:16:47 5990 3
原创 Java类加载器
一.类的生命周期1. 加载(Loading):找 Class 文件1. 通过一个类的全限定名来获取定义此类的二进制字节流。2.将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。3.在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。这里既可以从 ZIP 包中读取(比如从 jar 包和 war 包中读取),也可以在运行时计算生成(动态代理),也可以由其它文件生成(比如将 JSP 文件转换成对应的 Class 类)。2. 验证(
2022-01-19 10:59:32 2359 1
原创 JVM字节码
一.概述计算机只认识 0 和 1,但是由于虚拟机以及大量建立在虚拟机之上的程序语言的发展,将程序编译成二进制本地机器码(Native Code)已不再是唯一的选择,越来越多的程序语言选择了与操作系统和机器指令集无关的,平台中立的格式作为程序编译后的存储格式。二. 平台无关性的基石1. 字节码是构成平台无关性的基石。2. 语言无关性的基础仍然是虚拟机和字节码存储格式。Java 虚拟机不和包括 Java 在内的任何语言绑定,它只和 Class 文件这种二进制文件格式所关联,Class 文件中包含了
2022-01-17 15:57:21 1142
原创 Java双检锁模式
一.双检锁单例模式package thread.lock.double_check;/** * 双检锁单例模式 */public class Singleton { /** * 该类实例, volatile主要防止第29行指令重排序 */ private volatile static Singleton instance; /** * 获取实例的方法 * @return */ public stati
2021-11-09 15:03:43 1729 3
原创 人工智能-机器学习-KMeans聚类
一.概述k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,属于无监督学习的一种,其步骤是,预先将数据分为K组,则随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以分为3中:1. 没有(或最小数目)对象被重新分配给不同的聚类2
2021-10-15 23:46:36 3045 2
原创 人工智能-深度学习-yolov3口罩佩戴识别
一.基础环境windows 10cuda 10.0python3.7.4tensorflow-gpu 1.14.0keras2.24numpy==1.16.5二.下载keras-yolo3代码从github上下载:https://github.com/qqwweee/keras-yolo3代码解构如下:三.下载权重并测试本项目所用权重文件:权重文件官方提供的地址:yolov3.weightsyolov3-tiny.weights共有两个权重文件 yolov3.weig
2021-08-27 00:44:19 12716 383
原创 人工智能-机器学习-支持向量机
一.概述支持向量机即SVM(Support Vector Machine),主要用于解决模式识别领域中的数据分类问题,属于有监督学习算法的一种。是一类按监督学习方式对数据进行二元分类的广义线性分类器。如图所示, 红色和蓝色的点是可以被一条直线分开的, 在模式识别领域称为线性可分问题, 然而将两类数据点分开的直线显然不止一条, b图和c图分别给出了A, B两种不同的分类方案, 其中黑色实线为分类线, 术语称为"决策面"。每个决策面对应了一个线性分类器。虽然在目前的数据上看, 这两个分类器的分类结果是一
2021-07-14 01:55:37 1371 1
原创 人工智能-机器学习-决策树与随机森林
一.数据集的纯度决策树的关键在于当前状态下选择哪个属性作为分支条件。最佳分类属性这种“最佳性”可以用非纯度(impurity)进行衡量。如果一个数据集合中只有一种分类结果,则该集合最纯,即一致性好;如果有许多分类,则不纯,即一致性不好。有很多指标定义不纯度,根据不同判定不纯度的目标函数:1.ID3 算法ID3算法的核心是“信息熵”:1. 熵作为衡量样本纯度的标准,熵越大,越不纯。2. 希望在分类以后能够降低熵的大小,变纯一些。3. 分类后熵变小可以用信息增益(Information Ga
2021-07-01 01:50:35 526 5
原创 人工智能-机器学习-特征工程
我们用泰坦尼克号事件生还者信息举例, 采用KNN算法预测某个人的生还率, 采用KNN临近算法一.利用pandas观察数据情况我们先看下数据:各列对应字端的含义为:passengerId: 表示乘船编号surverved: 表示是否存活, 0为死亡, 1为生存(此列为标签)pclass: 客舱等级name: 名字sex: 性别age: 年龄sibsp: 兄弟姐妹数和配偶数parch: 船上父母数和子女数ticket: 船票编号fare: 船票价格cabin:客舱号embarke
2021-06-19 10:57:44 529
原创 人工智能-深度学习-手写数字识别
1.准备数据手写数字识别的特征集是一组数值为0-9,大小为 28 * 28 矩阵的图片, 标签为与之对应的数字:数据位置在: 手写数字识别数据集2.将数据格式化为 npz 文件"""将图片和标签整理为 npz 文件"""import numpy as npimport osfrom PIL import Imageimport json# 读取图片# 存到 npz 文件中的为 28 *28 的矩阵列表train_file_path = "nums/train_x/"
2021-06-16 00:27:13 7244 14
原创 人工智能-深度学习-Pytorch与神经网络
一.Pytorch基础操作1.numpy建立矩阵import numpy as np# numpy中建立4 * 4的 全为1的矩阵a_numpy = np.ones([4, 4])b_numpy = np.ones([4, 4])# 矩阵的点乘c_numpy = a_numpy @ b_numpy# 使用 numpy 建立矩阵的类型是 numpy.ndarrayprint("c_numpy的数据类型: %s, 值: %s" % (c_numpy.dtype, c_numpy))c
2021-06-03 02:03:36 821 1
原创 人工智能-算法模型-线性回归
一.概述 回归分析是研究统计规律的方法之一。在回归分析中我们把所关心的一些指标称为因变量,通常用Y来表示;影响因变量的变量称为自变量,用X1、X2、…XP来表示。回归分析研究的主要问题是:确定Y与X1、X2、…XP间的定量关系表达式,这种表达式称为回归方程;对求得的回归方程的可信度进行检验,判断自变量对Y有无影响;利用所求得的回归方程进行预测和控制。 &nbs
2021-05-14 01:17:16 4145 3
原创 人工智能-编程-Fizz Buzz
题目描述:写个程序来玩Fizz Buzz. 这是一个游戏。玩家从1数到100,如果数字被3整除,那么喊’fizz’,如果被5整除就喊’buzz’,如果两个都满足就喊’fizzbuzz’,不然就直接说数字。这个游戏玩起来就像是:1 2 fizz 4 buzz fizz 7 8 fizz buzz 11 fizz 13 14 fizzbuzz 16 …一.传统方法编程def fizz_buzz(num): if num % 3 == 0 and num % 5 == 0: r
2021-05-07 00:53:48 9988 2
原创 人工智能-数据分析-鸢尾花
此篇文章需要一些线性代数、矩阵分块和Numpy的基础,在文中对这些基础不再赘述一.鸢尾花数据在机器学习中,大部分数据均是矩阵类型的:我们先看一下鸢尾花数据:鸢尾花有四个属性:花瓣长度、宽度、花萼长度、花萼宽度,每一组属性成为一个样本,属性称为样本的特征,四个属性确定了鸢尾花的类别,也称为标签,由此形成了数据集{(x, d)}。此数据可以用于分析鸢尾花的类别。对于非数字的数据,我们要将他们映射为数字。如果类别数量较多,比如0,1,2等整形数字可以映射为 0->[1.0,0.0,0.0],1-.
2021-05-06 23:31:26 8256 2
原创 人工智能-数学基础-线性代数与仿射变换
一.鸢尾花数据在机器学习中,大部分数据均是矩阵类型的:我们先看一下鸢尾花数据:鸢尾花有四个属性:花瓣长度、宽度、花萼长度、花萼宽度,每一组属性成为一个样本,属性称为样本的特征,四个属性确定了鸢尾花的类别,也称为标签,由此形成了数据集{(x, d)}。此数据可以用于分析鸢尾花的类别。对于非数字的数据,我们要将他们映射为数字。如果类别数量较多,比如0,1,2等整形数字可以映射为 0->[1.0,0.0,0.0],1->[0.0,1.0,0.0],称为OneHot(独热编码)。import s
2021-04-23 13:12:47 800 1
原创 人工智能-数学基础-傅里叶变换与卷积
X(ω)=F(x(t))=∫−∞+∞x(t)e−iωtdt X(\omega) = F(x(t)) = \int_{-\infty}^{+\infty}x(t)e^{-i \omega t}dt X(ω)=F(x(t))=∫−∞+∞x(t)e−iωtdtx(t)=F−1(X(ω))=12π∫−∞+∞X(ω)eiωtdω x(t)=F^{-1}(X(\omega)) = \frac{1}{2\pi} \int_{-\infty}^{+\infty}X(\omega)e^{i \omega t...
2021-04-21 23:15:26 6518 32
原创 人工智能-数学基础-函数与优化
一.最优化问题1.一元方程最优化问题求解函数极小值 f(x)=x2+x−1 f(x) = x^2 + x -1 f(x)=x2+x−11.1 传统求解先求导,使导数为0: f′(x)=2x+1=0 f\prime(x) = 2x+ 1=0 f′(x)=2x+1=0x=−0.5x = -0.5 x=−0.5但是大多数情况下,函数很难直接计算导数为0,并且计算机无法跟人脑似的解方程,所以大多数情况下需要依靠数值求解。1.2 随机过程求解,类似“模拟退火”依靠不断地尝试求解:"""一元二次方程
2021-04-20 02:02:11 953
原创 Java线程池和阻塞队列
一.Java线程池的优点1.降低资源消耗:通过重复利用线程池中已创建好的线程来降低线程创建和销毁造成的消耗。2.提高响应速度:当任务到达时,任务可以直接拿到线程池中已创建好的线程立即执行。3.提高线程的可管理性:线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。二.ThreadPoolExecutor1. ThreadPoolExecutor类中共提供四种构造方法:a.拥有五个参数:int corePo..
2020-08-17 01:16:24 3599 4
原创 java中的Lock锁
一. 概述Lock 是 java.util.concurrent.locks 包 下的接口,Lock 实现提供了比 synchronized 关键字 更广泛的锁操作,它能以更优雅的方式处理线程同步问题。Lock提供了比synchronized更多的功能。 1.Lock和ReadWriteLock是两大锁的根接口,Lock代表实现类是ReentrantLock(可重入锁),ReadWriteLock(读写锁)的代表实现类是ReentrantReadWriteLock。 2.Lock 接口支...
2020-07-15 02:42:43 15291 5
原创 JMM内存模型
一.硬件的效率与一致性 在现代计算机系统中,CUP,内存和IO的处理速度是 CUP > 内存 > IO,由于计算机的存储设备与CPU的运算速度有几个数量级的差距,所以现代计算机系统都会引入一层读写速度尽可能接近处理器运算速度的高速缓存来作为内存与处理器之间的缓冲:将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。 基于高速缓存的存储交互很好地解决了处理器与内存的速度矛盾,但是它引入...
2020-07-08 02:26:22 505
原创 MySQL中Innodb的索引
如果想在一本书中找到某个特定主题,一般会先看输的"索引",找到对应的页码。在MySQL中,存储引擎用类似的方法使用索引,其先在索引中找到对应值,然后根据匹配的索引记录找到对应的数据行。一.索引索引是存储引擎用于快速找到记录的一种数据结构,索引往往以索引文件的形式存储的磁盘上。索引总结下来有如下几个优点:1.索引大大减少了服务器需要扫描的数据量,提高查询性能。2.素引可以帮助服务器避免排序和临时表。3.索引可以将随机IO变为顺序IO4.建立主键索引或者唯一索引...
2020-06-08 03:17:18 4337
原创 MySql事务隔离机制
一.事务(Transaction)事务是一个最小的不可再分的工作单元,事务只和DML语句有关,用来管理insert,update和delete语句,在 MySql 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。事务是必须满足4个条件(ACID):原子性(Atomicity): 一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。一致性(Consistency).
2020-05-20 02:12:26 1615
原创 synchronized原理
一.synchronized简介1.java中的关键字,在JVM层面,Java利用锁机制实现线程同步的一种方式。2.synchronized属于隐式锁,相比于显示锁如ReentrantLock不需要自己写代码去获取锁和释放锁。3.synchronized属于可重入锁,当一个线程得到一个对象锁后,再次请求此对象锁时是可以再次得到该对象的锁的。即 synchronized块中的synchronized还是能马上获得该锁。4.synchronized为非公平锁,即多个线程去获取锁...
2020-05-11 00:21:39 4129
原创 Java虚拟机类加载机制
一.概述虚拟机把描述类的数据从Class文件加载到内存、并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。与那些在编译时需要进行连接工作的语言不同,在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Java里面天生可以动态扩展...
2019-07-29 23:04:31 519
原创 JVM 垃圾收集与内存分配
3.1 概述GC需要完成的三件事:1.哪些内存需要回收? 2.什么时候回收? 3.如何回收Java内存运行时区域的各个部分,其中程序计数器,虚拟机栈,本地方法栈三个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作,每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的(尽管在运行期会由JIT编译器进行一些优化,但在本章基于概念模型的讨论中,大...
2019-05-29 00:29:12 484
原创 深入理解java虚拟机(第一章:走进Java)(读书笔记)
1.1 概述Java优点:1.结构严谨,面向对象2.拜托了硬件平台的束缚,实现了"一次编写,导出运行"的理想3.提供了一个相对安全的内存管理和访问机制,避免了绝大部分的内存泄漏和指针越界问题4.实现了热点代码检测和运行时编译及优化,这使得Java应用能随着运行时间的增加而获得更高的性能5.拥有一套完善的应用程序接口,还有无数的第三方类库1.2 Java技术体系Sun公司...
2019-05-17 00:22:36 355
原创 核密度分析
核密度估计(Kernel Density Estimation)是一种用于估计数据分布的非参数统计方法。数据可视化:核密度估计可以用来绘制平滑的密度曲线或热力图,从而直观地表示数据的分布情况。它可以帮助我们观察数据集中的高密度区域、低密度区域以及变化趋势。异常检测:通过核密度估计,我们可以识别数据中的异常点或离群值。异常点通常表现为低密度区域或与其他数据点明显不同的区域。概率密度计算:核密度估计可以用于计算给定数值的概率密度。通过将新数据点带入核密度估计函数,可以估计出该点在数据分布中的密度。
2024-02-22 17:17:16 2645
原创 python对图片或文件的操作
跟计算本地文件的md5差不多, 只不过传入的是二进制数据而已, 二进制数据除了是从文件中直接读取的, 也有可能是从数据库中获取, 比如 mongo, 所以也要注意一下编码问题。直接建立多层文件夹, 如果已经存在的话, 则忽视。jpg 一般为3通道, png 一般为 4通道。常用的一种爬虫方法, 任何类型的文件都可以。
2024-01-29 18:15:02 232
原创 Spring总结
Spring Boot 的核心设计思想是“约定优于配置”。基于这一设计原则,Spring Boot 极大地简化了项目和框架的配置。它采用了大量的默认配置来简化这些文件的配置过程,只需引入对应的 Starters(启动器)。设计它就是为了使用最少的配置,以最快的速度来启动和运行 Spring 项目。Spring 框架的核心是 Spring 容器。容器创建对象,将它们装配在一起,配置它们并管理它们的完整生命周期。Spring 容器使用依赖注入来管理组成应用程序的组件。
2023-09-20 09:40:21 223
原创 Spring 依赖注入和循环依赖
依赖注入(Dependency Injection,简称DI)是一种软件设计模式和编程技术,用于实现类之间的解耦和依赖关系的管理。它的核心思想是:在对象创建时,由外部容器负责将该对象所依赖的其他对象(依赖)传递进来,而不是由对象自己去创建或查找这些依赖对象。 依赖注入的主要目的是降低类之间的耦合度,使得代码更加灵活、可维护和可测试。通过依赖注入,一个类不需要关心它所依赖的对象是如何创建和获取的,而只需定义需要哪些依赖,并由外部容器负责提供这些依赖。这样可以减少代码中的硬编码
2023-09-19 12:57:51 615 2
原创 Spring 事务
读未提交, 表示最低的事务隔离级别。1.2 方法 A 有注解, 方法 B 无注解, A 调用 B 时, B 中抛异常。1.3 方法 A 无注解, 方法 B 有注解, A 调用 B 时, B 中抛异常。1.5 方法 A 有注解, 方法 B 无注解, A 调用 B 时, A 中抛异常。1.6 方法 A 无注解, 方法 B 有注解, A 调用 B 时, A 中抛异常。1.1 方法 A B 均有注解, A 调用 B 时, B 中抛异常。1.4 方法 A B 均有注解, A 调用 B 时, A 中抛异常。
2023-07-20 19:00:41 206
原创 Springboot自动装配
自动装配是springboot的核心,一般提到自动装配就会和springboot联系在一起。实际上 Spring Framework 早就实现了这个功能。Spring Boot 只是在其基础上,通过 SPI 的方式,做了进一步优化。
2023-05-31 14:24:39 4139
原创 windows 安装 Elasticsearch
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎, 本文主要介绍了在 windows 10上 安装 Elasticsearch,Elasticsearch-head,kibana等软件, 方便自己学习使用,
2022-09-20 10:58:37 20229 14
原创 mybatis 父子级树形结构查询
针对父子级数据目录查询, 以前都是逐级的去根据父级id查询子集目录, 查出后最后再在代码中拼成树形结构, 相当复杂,我们可以利用 mybatis 提供的 collection 标签自动组织树形结构, 接下来我们一步一步看该如何建立。
2022-09-13 16:31:07 2080
原创 jasypt 配置文件加解密
Spring boot配置文件中的用户名密码等配置文件一般情况下是明文保存的,这样就隐藏了密码泄露的安全隐患,所以一般都要求将密码加密后保存配置的,我们可以使用 jasypt 对 Springboot 应用中的密码进行加密。
2022-09-08 16:26:42 3454 2
yolov3口罩佩戴识别代码与训练数据
2024-03-08
核密度分析算法java实现
2024-02-29
Centos离线安装zip和unzip
2024-02-28
Centos离线安装mongodb
2024-02-28
Centos7重新安装 python2.7 和 yum
2024-02-23
redis-4.0.11离线安装软件与教程
2024-02-23
Centos离线安装zip和unzip软件
2024-02-22
centos7升级openssh软件和教程
2024-02-22
sqllite数据库和数据文件
2024-02-22
mybatis 父子级树形结构查询
2022-09-13
springboot使用jasypt示例代码
2022-09-08
random_point.zip
2021-05-21
springboot上传excel导入到数据库完整demo(后端代码)
2018-06-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人