自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GeekDengshuo

学习记录

  • 博客(48)
  • 收藏
  • 关注

原创 linux基础知识

1.信号信号是软件中断,提供了一种处理异步事件的方法unix信号机制最简单的接口是signal函数/* * sign 信号整型 * func 函数指针 * return :函数指针(一个函数地址,函数有一个整型参数,无返回值) */void (* signal(int sign,void (*func)(int))) (int) // 其他的表达方式typedef void signfunc(int);signfunc *signal(int ,signfunc);type

2022-02-27 21:23:06 1012

原创 学习记录-随机算法

2022.01.06 - 20222.01.18 知识点1.Java数据结构ArrayDeque看一下数据类的描述Resizable-array implementation of the Deque interface. Array deques have no capacity restrictions; they grow as necessary to support usage. They are not thread-safe; in the absence of external sy

2022-01-23 21:09:19 835

原创 hexo 发布报错问题记录

hexo 执行generate 生成后进行deploy到远程github出现如下报错:INFO Deploying: gitINFO Clearing .deploy_git folder…INFO Copying files from public folder…INFO Copying files from extend dirs…[master c97ec3f] Site updated: 2022-01-08 20:48:45113 files changed, 3164 i

2022-01-08 21:03:43 1216

原创 快速幂的使用

快速幂1.快速幂定义wiki快速幂也称为平方求幂(exponentiating by squaring)快速幂时计算一个数的大正整数乘幂的一般方法(对多项式,矩阵也适用)xn={x(x2)n−12,if n is odd(x2)n2,if n is evenx^n = \begin{cases}x(x^2)^{\frac{n-1}{2}}, & \text {if $n$ is odd}\\(x^2)^{\frac{n}{

2022-01-08 20:41:03 377

原创 一文搞懂C语言中指针数组、数组指针、函数指针、指针函数

一文搞懂C语言中指针、数组、指针数组、数组指针、函数指针、指针函数1.背景阅读redis源码,初始化流程-创建并初始化服务器数据结构中(initServer)// 设置信号处理函数signal(SIGHUP, SIG_IGN);signal(SIGPIPE, SIG_IGN);signal函数#include<signal.h>// signal函数原型void (*signal (int sign,void (*)(int)))(int);// second vers

2021-10-03 01:05:58 214

原创 MySQL索引、锁和优化

MySQL1.索引定义: 索引是存储引擎用于快速找到记录的一种数据结构作用: 索引可快速访问数据库表中的特定信息,索引是对一列或多列值进行排序的数据结构实现: 索引是在存储引擎层实现,不是服务层,不同的存储引擎具有不同的索引类型和实现索引优化是对查询性能优化最有效的手段(索引能轻易将查询性能提高几个数量级)2.索引的类型B+Tree索引哈希索引全文索引空间数据索引2.1 B+Tree索引MySQL多数存储引擎的默认类型利用索引,不再需要建立全表扫描来获取需要的

2021-07-25 14:39:30 119

原创 Redis非阻塞IO复用模型

Redis线程模型(非阻塞IO复用模型)Redis优点基于内存,C语言编写-速度快非阻塞的IO复用模型机制单线程- 避免多线程的频繁上下文切换问题丰富的数据结构 - 字符串、链表、哈希、集合、有序集合文件事件处理器(file event handler)Redis服务器是一个事件驱动程序Redis基于Reactor模型开发了自己的网络事件处理器 - 文件事件处理器文件事件处理器使用I/O多路复用(multiplexing)同时监听多个套接字,并根据套接字目前执行的任务为套接字关联不

2021-06-27 16:25:41 635 2

原创 ThreadLocal本地线程变量

ThreadLocal文章目录ThreadLocal1.ThreadLocal的作用2.ThreadLocal的使用3.ThreadLocal的实现3.1ThreadLocal概览3.2ThreadLocalMap3.3ThreadLocal带来的问题-内存泄漏4.总结4.1应用场景4.2使用事项引用1.ThreadLocal的作用通常情况下,我们创建的变量可以被任何一个线程访问并修改,但是在多线程运行的环境下,我们希望每一个线程都有自己的本地专属变量,该怎么实现呐?(例如每个线程都保存该线程独有的

2021-06-20 17:28:43 729

原创 浮点数表示 & 缓存 & 布隆过滤器

浮点数表示 & 缓存 & 布隆过滤器1.计算机是如何表示小数2.缓存3.布隆过滤器1.浮点数的表示引子: 我们先看一个错误示例public static void main(String[] args) { System.out.println(1f == 0.999999f); // false System.out.println(1f == 0.9999999f); // false System.out.print

2021-06-12 10:28:19 207 1

原创 Reactor模式及NIO

文章目录Reactor模式及NIO1.引子2.Reactor模式2.1Reactor模式定义2.2网络编程模型2.3Reactor常用组件3.Reactor模式应用3.1多线程IO模型3.2单线程Reactor模型附录参考文章Reactor模式及NIO1.引子Redis服务器: Redis服务器是一个事件驱动程序,主要处理文件事件(file event)和时间事件(time event)Redis基于Reactor模式开发了网络事件处理器2.Reactor模式2.1Reactor模式定义The

2021-05-27 22:41:53 444

原创 SpringMVC基础知识(一)

SpringMVCSpringMVC是基于Web MVC设计模式的请求驱动类型的轻量级Web框架;SpringMVC在Web应用中充当控制层Controller的角色MVC模式:(Model-View-Controller):为了解决页面代码和后台代码的分离0x01.SpringMVC请求流程0x02.SpringMVC组件0x03.SpringMVC核心0x04.SpringMVC启动0x05.SpringMVC方法0x01.SpringMVC请求流程0x02.Sprin

2021-05-12 22:12:52 122 3

原创 Java对象内存布局

Java对象内存布局引子运行时数据区域虚拟机对象锁升级(Synchronized)1.引子Java与C++之间隔着一堵由内存分配和垃圾回收筑城围墙,墙外面的人想进去,墙里面的人想出来。正是因为Java虚拟机的内存分配和垃圾回收机制,减轻了程序员在编码时内存分配的负担,可以把更多精力放在实现上。任何事物都有利弊,享受Java虚拟机的便利,就要承担相应的风险。当Java程序内存出现泄漏的时候,如果没有搞懂虚拟机的内存分配及对象内存布局,就像隔靴搔痒,很难排查问题。2.运

2021-05-05 22:51:37 202

原创 位排序算法

位排序算法位排序算法,一种占用内存小、运行时间快应用于特殊情况的算法0x01.问题背景问题描述:需要对磁盘中的文件进行排序,对时间效率要求高,文件中包含千万条记录,每条记录都是7位整数(百万)号码整数记录数据不重复,每条记录都是单一数据。输入:一个包含N个整数的文件,每个数都小于N=10^7,整数无重复输出:将输入的整数进行升序排序,输出有序的列表约束条件:大约有1MB的内存空间可用,充足的磁盘空间,时间控制在10s-8min之间0x02.解决方法1.归并排序磁盘文件最常用的排序算法

2020-08-16 17:05:09 665

原创 MySQL的基础、开发、优化

数据库MySQL的基础、开发、优化笔记文章目录一、基础1.SQL基础查找操作语法,函数2.MySQL数据类型2.1数值类型2.2日期时间类型2.3字符串类型3.MySQL中运算符3.1算术运算符3.2比较运算符3.3 逻辑运算符4.常用函数4.1字符串函数4.2数值函数4.3流程函数4.4常用函数二、开发1.表类型(存储引擎)的选择1.1 InnoDB存储引擎1.2 MyISAM存储引擎2.数据类型选择2.1 CHAR、VARCHAR2.2 TEXT、BLOB2.3 浮点数和定点数3.字符集4.索引的设计

2020-06-28 15:56:22 198

原创 Java虚拟机

文章目录1.运行时数据区域2.GC垃圾回收3.内存分配与回收策略4.类加载机制1.加载2.验证3.准备4.解析5.初始化5.类与类加载器1.运行时数据区域1.程序计数器当前线程执行字节码的行号指示器记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法,则为空)2.虚拟机栈虚拟机栈描述的是java方法执行的内存模型:方法在执行的时候创建一个栈帧(Frame)栈帧中存储着(局部变量,操作数栈,常量池引用)3.本地方法栈为虚拟机使用Native方法服务4.Java堆所有对象都在堆

2020-05-19 22:02:06 310

原创 设计模式基础

文章目录设计模式设计模式的应用分布设计模式的七大原则单一职责原则(Single Responsibility Principle)接口隔离原则(Interface Segregation Principle)依赖倒置原则(Dependence Inversion Principle)里氏替换原则(Liskov Subsitution Principle)开闭原则(Open Closed Principle)迪米特法则(Demeter Principle)合成复用原则(Composite Reuse Prin

2020-05-13 21:00:51 475

原创 JUC并发基础

文章目录一.Volatile0.基础知识1. volatile的解释3.volatile的应用二.CAS0.CAS的定义1.CAS底层原理2.CAS的缺点3.ABA问题三.集合类并发安全0.问题描述1.故障现象2.导致原因3.解决方法四.Java锁0.公平锁、非公平锁1.可重入锁(递归锁)2.自旋锁3.读写锁/互斥锁五.J.U.C-AQS0.AQS- Abstract Queued Synchronizer1.Semaphore信号量六.阻塞队列0.BlockingQueue阻塞队列1.阻塞队列的方法2.S

2020-05-13 20:57:32 816

原创 Java并发基础

文章目录1.Volatile2.CAS3.锁4.AQS5.ThreadPool1.Volatilevolatile是一个关键字,用于在并发编程中修饰变量volatile:java提供的一种弱同步机制轻量的同步机制,用来确保将变量的更新通知到其他线程保证可见性(禁止指令重排)、不保证原子性如何保证可见性变量声明为volatile类型后,编译器与运行时都会注意到这个变量时共享的,不会将该变量上的操作和其他内存操作仪器重排序volatile变量不会被缓存在寄存器指令重排多线程环境中

2020-05-13 20:53:05 266

原创 Java数组

数组 及Arrays实用功能1.问题来源在学习容器的时候,对容器(集合)和数组在使用时如何选择有较大的问题?2.数组数组及其他类容器的区别效率类型保存基本类型的能力java中时内置数组Array,就是一个简单的线性序列对于简单的数组创建并组装他们通过index访问元素 ,[]尺寸不能改变只读成员length数组的标识符只是一个引用,指向堆中创建的真实对象,数组中...

2019-11-11 11:35:42 149

原创 类型信息(反射 及 RTTI)

类型信息1.java如何在运行时识别对象和类的信息"传统的"RTTI run-time type identification ,假设我们在编译时已经知道了所有类型,在编译的时候打开和检查.class文件反射机制,允许在运行时发现和使用类的信息,在运行的时候打开和检查.class文件运行时的类型信息使得你可以在程序运行时发现和使用类型信息2.Class对象Class对象这个...

2019-11-10 12:12:03 198

原创 并发知识

并发1.基础知识进程:进程有独立的代码和数据空间(进程上下文),进程间切换会有巨大的开销,进程是进行资源分配的最小单位线程:同一类线程共享代码及数据空间,线程有独立的运行栈和pc计数器,线程的切换开销小,线程是cpu进行调度的最小单位主线程:JVM调用程序main()所产生的程序当前线程:Thread.currentThread()获取当前线程后台线程(守护线程):为其他线程提供服务(...

2019-10-28 17:44:00 131

原创 比较接口及Lambda流的聚合方式

Comparable 及 Comparator 的区别Comparable一个内比较器,类可以和自己比较compareTo() 自然比较方法public interface Comparable<T>{ public int compareTo(T o);}public class Book implements Comparable<Book>{...

2019-10-25 08:36:41 179

原创 I/O学习

java I/Ojava的输入输出系统所有的数据都是通过流在各个设备上转运传输磁盘文件 File主要处理文件及文件系统(目录)这个比较特殊,不属于流式操作文件信息isFile(),listFiles(),getName(),exists()getPath(),getAbsolutePath(),getParent()目录信息isDirectory(),list()流式...

2019-10-23 16:33:37 141

原创 素数求解(埃氏筛法)

一千万以内的素数brute force 暴力解法埃拉托斯特尼筛法_埃氏筛法求素数 埃氏筛法-算法实现 参考链接素数:只能被自己和1整除的数brute force 暴力解法public class Prime{ // 判断一个数是不是质数 public boolean isPrime(int num){ for(int i=2;i<num;++i){...

2019-10-21 09:40:24 576 1

原创 TrainData2algorthms

1.先把数据集进行读取import pandas as pdimport matplotlib.pyplot as pltwith open('sourcedata2.csv')as f: df=pd.read_csv(f,header=0)df .dataframe thead tr:only-child th { text-align: ...

2018-07-09 19:33:33 415

原创 贝叶斯分类器

贝叶斯分类器1.基础知识概率论的基本知识先验概率:由以往的数据得到的后验概率:得到信息后再重新加以修正的概率 条件风险公式(期望损失):R(ci∣x)=∑j=1NλijP(cj∣x)R(ci∣x)=∑j=1NλijP(cj∣x)R(c_i\mid \textbf x)=\sum_{j=1}^N \lambda_{ij} P(c_j\mid \te...

2018-06-26 15:29:25 356

原创 第六章 支持向量机

支持向量机一.基础知识1 概念及定义支持向量机是一个二类分类模型,基本模型的定义为:是在特征空间上的间隔最大的线性分类器支持向量机学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面.二次规划是一类典型的优化问题,包括凸二次优化和非凸二次优化目标函数是变量的二次函数,约束条件是变量的线性不等式核技巧(kernel trick): 一般用来...

2018-06-22 11:57:38 402

原创 第五章 神经网络

神经网络1.基础知识神经网络是由具有适应性的简单单元组成的广泛并行互连的网络 Perceptron 感知机感知机只有两层神经元组成,而且只有输出层是M-P神经单元也就是功能神经元反向传播算法(Back propagation)可以应用于多层前馈神经网络,还可以应用于训练递归神经网络一般说 BP算法就是训练的多层前馈神经网络.深度学习的基本名词卷积神经网络(c...

2018-06-20 10:53:27 4969

原创 Matplotlib绘图库的使用 (更新中)

Matplotlib 的用法介绍Matplotlib 绘图库的使用matplotlib的定义:matplotlib 是一个Python下的2D绘图库,能够在跨平台的交互环境中产生各种硬拷贝格式的印刷级的图形1.在jupyter上输出matplotlib 矢量图.矢量图的好处是,放大后不会出现模糊,可以使用在论文中代替orange画图.#添加一段代码就行impo...

2018-06-01 10:19:06 1855

原创 第四章 决策树

决策树 Decision Tree一.基础知识树的基本类型: 结点(内部节点,叶结点)+有向边 决策树也叫判断树,树的结构是满足 if-then 条件规则的. 树的特点:可读性性高,分类速度快二.思想脉络决策树=从训练数据集中归纳出一组分类规则(模型)+以损失函数为目标函数的最小化(策略)+递归的选择最优特征(算法)三.算法推导决策树的生成特征选择(...

2018-05-30 15:05:28 234

原创 第三章 K 近邻法 (kNN 以及kd-tree)

k近邻法基础知识1 模型使用的模型实际上对应于特征空间的划分.模型的三个基本要素:距离度量 , k值的选择 , 分类决策规则决定.思想脉络1 方法的流程简述给定一个训练数据集,对于新的输入实例,在训练数据集中找到与之最临近的k个实例,这k个实例的多数属于某个类, 就把实例分为这个类.这个算法没有显示的训练过程,应用的过程就是训练的过程算法推...

2018-05-29 14:32:22 561

原创 第一章 机器学习方法概论

机器学习方法概论基础知识1 机器学习三要素构建一个机器学习方法就是确定具体机器学习三要素的过程机器学习方法=模型+策略+算法模型:就是所要学习的条件概率分布或决策函数策略:模型的假设空间包括所有可能的条件概率分布和决策函数,按照什么样的准则学习或选择最优模型. 也就是在假设空间中如何选择最优模型就是策略.算法:算法就是指学习模型的具体计算方法....

2018-05-22 10:38:31 244

原创 第九章 聚类 Clustering

第九章 聚类(Unsupervised Learning)无监督学习:     训练样本的标记信息是未知的,通过对无标记数据的训练来找出数据内部所存在的规律以及性质.为进一步的数据分析打下基础1.知识点聚类过程中会自动的形成簇结构,但是算法对簇(cluster)没有概念,这是在运算过程中自己出现的聚类现象,这个簇的名字需要自己来进行定义聚类可作为一个单独的过程来完成,用于去寻...

2018-05-16 16:12:27 297

原创 第八章 Ensemble_learning

Ensemble learning根据集成学习的生成方式,集成学习可分成两大类:Boosting:个体间存在强依赖关系,必须串行生成的序列化方法 Bagging&amp;Randon Forest: 个体间学习器不存在强依赖关系,可以同时生成的并行化方法loss function(损失函数) 以及 cost function(代价函数)的区别 定义# 如何使用集成学习fro...

2018-05-15 10:43:11 341

原创 第七章 贝叶斯分类器的推导及实现

贝叶斯分类器1.基本的概率论知识先验概率:由以往的数据得到的后验概率:得到信息后再重新加以修正的概率 R(ci∣x)=∑j=1NλijP(cj∣x)R(ci∣x)=∑j=1NλijP(cj∣x)R(c_i\mid \textbf x)=\sum_{j=1}^N \lambda_{ij} P(c_j\mid \textbf x)对于每个样本 xx\text...

2018-05-07 15:41:07 1208

原创 Linux学习(不定期更新~)

1.基本命令echo 显示一行文本   echo+要输出的文本, echo 有“显示,打印出”的意思 clear   清理显示器界面  history 显示之前敲的代码 tab     补全命令键,会检测到文件目录下的相匹配的文件名并自动补全。unbutu 的磁盘清理:sudo apt-get clean 清理apt下载安装软件是的缓存文件sudo apt-ge...

2018-05-04 20:23:37 177

原创 Gits学习(不定期更新~)

学习的时候要注意自己的学习目的是什么?不要想成为一个”软件工具”方面的专家,因为有的指令可能一辈子都用不到,既然是一个工具 那就没有必要把时间浪费在那些”高级”但几乎永远不会用上的指令上,就算可能会用到,自行google就行Git:世界上最先进的分布式版本控制系统1.创建版本库 :repositorymkdir 创建一个文件夹 cd到文件下 git init ...

2018-05-04 20:18:19 1633

原创 Python 学习笔记(不定期更新~)

Python基础知识python的优势Python中的for循环要高于C语言中的for循环,因为Python中的for循环不仅可以用在list或tuple上 还可以用在其他的可迭代对象上. python 实现下标循环,利用Python内置的enumerate函数可以把一个list变成索引-元素对.这样就可以在for循环中同时迭代索引和元素本身. such as : for ...

2018-05-04 20:09:51 342

原创 第一章 数据结构与算法

第一章 数据结构与算法常用的数据结构应该直接用另外有趣的一点是,collections模块中包含比较多针对数据结构的解决方案努力成为一名合格的调包侠1.1 可迭代对象的分解元素# 可迭代对象中分解元素(找到自己的需求元素)# 解决方案,利用"*表达式"def drop_first_last(grades): first,*middle,last=grades...

2018-05-01 18:05:14 198

转载 kaggle 入门

简介Kaggle 于 2010 年创立,专注数据科学,机器学习竞赛的举办,是全球最大的数据科学社区和数据竞赛平台。笔者从 2013 年开始,陆续参加了多场 Kaggle上面举办的比赛,相继获得了 CrowdFlower 搜索相关性比赛第一名(1326支队伍)和 HomeDepot 商品搜索相关性比赛第三名(2125支队伍),曾在 Kaggle 数据科学家排行榜排名全球第十,国内第一。笔者目前在...

2018-04-22 15:53:24 752

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除