- 博客(138)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
原创 MySQL不同数据类型的最大长度与范围限制
这些就是MySQL不同数据类型的最大长度与范围限制。当存储的数据超出上述限制时,应选择更大的数据类型,以免造成数据溢出和损失。
2023-06-08 16:43:52
13059
原创 Java主流发布版本下载地址及各版本支持时间
主流版本下载地址Java SE 18Java SE 17.0.2 (LTS)Java SE 11.0.14 (LTS)Java SE 8u321Java SE 7Java SE 6各版本支持时间
2022-04-13 14:07:19
1547
转载 Mysql 各版本特性
前言MySQL领域存在着众多的衍生版数据库,主流的有官方Mysql,MariaDb,Percona Server。各个版本在主要功能的支持上大体相同,各自内部具体实现方式会有区别。本文记录的版本特性是基于官方Mysql,主要参考mysql官方文档手册,主要记录下与开发相关的特性,如果要查询完整特性,可以查看最后记录的官方说明文档版本特性5.6InnoDb 开始支持全文索引InnoDb 支持设置页面大小通过innodb_page_size 指定,默认是16KB,对于工作负载和存储设备(尤其是具
2022-03-17 16:50:35
608
翻译 PostgreSQL 与 MySQL:有什么区别?
PostgreSQL 和 MySQL 在用途、好处、特性和特点上的异同PostgreSQL 和 MySQL 是将数据组织成表的关系数据库。这些表可以根据每个表共有的数据链接或关联。关系数据库使您的企业能够更好地了解可用数据之间的关系,并帮助获得新的见解以做出更好的决策或发现新的机会。PostgreSQL 和 MySQL 有何相似之处?PostgreSQL 和 MySQL 都依赖于 SQL(结构化查询语言),这是与管理系统交互的标准语言。SQL 允许使用具有简单结构的几行源代码连接表,大多数非技术员工可
2022-02-13 20:43:33
19040
7
翻译 设计模式的5个常见问题及解决办法
文章目录介绍单一职责原则(SRP)问题解决方案开闭原则(OCP)问题解决方案里氏替换原则(LSP)问题解决方案接口隔离原则(ISP)问题解决方案依赖反转原则(DIP)问题解决方案结论原文在这篇文章里,我们将了解什么时候和为什么软件开发要使用SOLID原则。首先,我们会了解在软件设计中,为什么要考虑设计原则。然后,我们将列出使用每条设计原则随之而来的问题和解决办法。请注意文中的例子都是经过简化的。他们的作用只是简单示范当违反设计原则时相关的问题。介绍SOLID是马丁(Robert·Martin)提
2022-01-15 15:04:48
1157
原创 水滴石穿、坚持不懈,必能有所精进
在跟随这门课程学习的过程中,我增长了很多大数据相关的知识,对于大数据技术和相关开源组件,也有了更深的了解。今天正好可以借着这个机会,来记录下自己的一点心得体会,也跟你分享一下我的学习思路,咱们一起聊一聊。为什么我要来学这门课?大数据在最近十几年非常红火,大数据技术及组件层出不穷。对于新入门大数据行业的人来说,会有一种进入少林藏经阁,却不知从哪里学起的感觉。对于已经进入行业两三年的人来说,也会有一种技术不断更新迭代,何时是个尽头的苦恼。之前我在极客时间参加了《大数据训练营》的学习,课程结束,老师介绍了如
2022-01-15 14:59:30
205
原创 《2022,自我增值的7个好习惯》读书笔记
原文:刘润1、提高自己的基础体能2、思考10倍好的战略五三一法则:看5年,想3年,干1年未来5年,错过什么机会,你会拍断大腿?未来3年,你要积累什么样的资源和能力,能让目标实现?未来1年,扎下去具体干什么样的事情?5年和3年,是为了让你对时代保持思考,对变化保持敏感。但是认认真真的干1年,才是真正拉开差距的地方。把想法,变成现实。使用PACD方法,不断行动验证。3、提升认知最简单有效的办法,就是多看书。每本书都是一套模型和框架。看书,也是在锻炼我们的精神肌肉。4、找到趁手的工具君子善假
2022-01-15 14:45:14
213
转载 如何阅读源码
如何阅读源码在软件开发中遇到问题的时候,我倾向于在不需要阅读源码的情况下解决问题,我会优先去查官方文档、FAQ、google或stackoverflow等网站,去看下有没有前人已经遇到过同类问题。阅读源码来解决问题,算是终极大招。当然,还有另一种需求,就是希望通过阅读源码了解软件的设计细节,来达到学习的目的,例如,通过阅读Dubbo的源码,我可以了解一个RPC框架的设计细节。准备工作阅读源码之前要做一些准备工作。首先,确保自己掌握了相关的基础知识,例如,如果你要阅读Linux内核源码,要掌握C语言的
2021-11-17 21:38:16
309
原创 一文带你了解死锁
文章目录什么是死锁示例工具检测如何解决资源有序分配法什么是死锁死锁就是两个或多个线程并行执行时,彼此等待对方持有的资源,从而形成了一种僵持状态。死锁形成有4个条件:互斥持有资源并等待不可剥夺形成环路示例我们创建两个线程,分别为线程A和线程B。在线程A中,将获取资源A,睡眠一秒,然后获取资源B。在线程B中,将获取资源B,睡眠一秒,然后获取资源A。代码示例如下:public class DeadLockDemo { private static Object resourceA
2021-03-07 18:28:41
208
1
转载 一图看懂常用开源协议区别
首先借用有心人士的一张相当直观清晰的图来划分各种协议:开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别license.jpeg(42.87 KB)下载附件以下是上述协议的简单介绍:BSD开源协议BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条.
2021-01-19 12:43:35
715
原创 《大数据技术体系详解》笔记(一)
大数据技术体系文章目录大数据技术体系1、概述企业级大数据体系Google大数据技术栈Hadoop与Spark开源大数据技术栈大数据架构2、关系型数据库采集Sqoop1架构Sqoop2架构CDC(增量数据收集)应用场景开源实现Canal多机房同步系统Otter3、非关系型数据库采集Flume基本思想和特点基本架构Agent构造Flume高阶组件数据流构建方法如何构建数据流获取方式常见拓扑架构1、概述企业级大数据体系Google大数据技术栈Hadoop与Spark开源大数据技术栈大数据架构
2020-08-23 21:29:50
923
原创 IO模型图解
详情见图IO模型用户空间与内核空间 11.1. 运行用户程序和系统程序的地方,用户程序通过系统调用接口调用系统资源 11.2. top 11.2.1. CPU耗时 1PIO与DMA 12.1. PIO 12.1.1. 数据通过CPU存储转发,从磁盘读取到内存中 12.2. DMA 12.2.1. 不经过CPU直接进行磁盘和内存(内核空间)的数据交换 1缓存IO与直接IO 13.1. 缓存IO(标准IO) 13.1.1. 数据:磁盘->DMA copy到内核空间->C
2020-05-17 01:03:10
752
原创 一图横扫Redis要点
RedisRedis介绍 11.1. NoSql数据库 11.1.1. 键值存储 11.1.2. 列式存储 11.1.3. 文档型 11.1.4. 图形数据库 11.2. Redis应用场景 11.2.1. 内存数据库 11.2.2. 缓存数据库 11.2.3. 分布式集群的session分离问题 11.2.4. 任务队列 11.2.5. 分布式锁 11.2.6. 发布...
2020-04-30 23:29:47
212
原创 Guava学习笔记-Splitter
Guava文章目录Guava1、背景2、说明3、示例3.1 简单使用3.2 包含空字符3.3 跳过空字符3.4 结果去除首尾空格3.5 固定长度分割3.6 指定分割符并限制生成集合数目3.7 使用正则表达式分割3.8 使用正则表达式分割成map4、延伸参考链接1、背景对长字符串进行分割,生成一个集合。2、说明功能与string.split类似,但更加强大。3、示例3.1 简单使用p...
2020-04-05 22:23:07
370
原创 Guava学习笔记-Joiner
Joiner文章目录Joiner1、背景2、说明依赖3、示例3.1 普通连接3.2 跳过空元素3.3 默认值替换空元素3.4 结果放入stringbuilder3.5 写入文件3.6 使用stream3.7 使用stream并替换默认值3.8 连接map3.9 连接map输出到stringbuilder4、延伸参考链接1、背景需要连接字符串集合中的所有元素,形成一个长字符串。2、说明依赖...
2020-03-31 01:23:20
465
原创 ElasticSearch安装指南
1、下载安装包官网下载地址https://www.elastic.co/cn/downloads/past-releases#elasticsearch本文安装使用的是 elasticsearch-6.6.2.tar.gz2、安装创建新用户es, 并设置密码useradd esecho “es” | passwd es --stdio创建日志、数据存储目录mkdir -p ...
2019-10-23 14:52:44
170
原创 Nginx启动报错:nginx: [emerg] bind() to 0.0.0.0:8090 failed (13: Permission denied)
系统启动Nginx后,报 [emerg] bind() to 0.0.0.0:XXXX failed (13: Permission denied)错误的处理方式,分为两种:1、端口小于1024的情况[emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)原因是1024以下端口启动时需要root权限,所以sudo n...
2019-09-24 12:00:13
4107
原创 Linux修改时区方法
方法一:设置TZ在配置文件 如:.profile 添加配置行TZ='Asia/Shanghai'; export TZ然后执行命令即可。source .profile具体时区选择详情如下(可忽略):使用命令tzselect 选择时区,依次会弹出如下提示,输入数字选择即可。Please identify a location so that time zone rules can be...
2019-09-24 11:59:21
993
1
原创 jasypt库的使用
jasypt库的使用1.简介Jasypt是一个Java简易加密库,用于加密配置文件中的敏感信息,如数据库密码。jasypt库与springboot集成,在实际开发中非常方便。2.添加依赖jasypt开发者开发了starter,添加jasypt-spring-boot-starter依赖就可以了。该库中有使用到slf4j依赖,若单独测试,需添加相应依赖,或直接添加spring-boot-st...
2019-08-28 16:38:36
3528
原创 Netty入门——手写Dubbo框架
Dubbo框架本身就是一个RPC框架。RPC的服务提供者将自身的服务名、IP和端口存放在服务协调器ZK的某个节点下,服务消费者通过监听ZK的该节点,获取可调用的服务名,以及服务提供者的IP和端口信息。本文使用netty实现一个简单的Dubbo框架,使用zk作为注册服务器,完成RPC的整个过程。
2019-08-24 17:23:18
1149
原创 xsync同步脚本的使用
xsync同步脚本的使用1.简介在集群机器配置时,经常需要将一个文件或目录copy到同样的多台集群上,如果一个一个机器去复制,比较麻烦。如果有一个办法,通过一条命令就可以实现这个目的,就简单多了。xsync就是这样一个同步脚本。xsync其实是对rsync脚本的二次封装,脚本内容可以根据自己需要进行修改。2.配置集群hostname2.1 配置hostname文件在每台机器执行命令c...
2019-08-03 12:19:53
23667
7
原创 Easypoi使用简介
Easypoi使用简介在项目中,有时会出现需要将数据库数据导出报表等功能,这时一般会用到poi库。poi是一个专门给Java程序提供格式文档读写功能的API接口,包括各种微软的格式文档入excel、word等。最常用的还是Excel格式导入导出。Easypoi是在poi接口基础上进行了封装,简化了操作。使用Easypoi导出仅需以下几步:添加依赖项改造模型,添加注解从数据库查询数据...
2019-08-02 21:24:16
16233
11
翻译 三大构建工具比较——Ant vs Maven vs Gradle
1.简介在本文中,我们将探讨三个主要构建JVM生态系统的Java构建自动化工具–Ant,Maven和Gradle。我们将介绍它们中的每一个,并探讨Java构建自动化工具是如何演变的。2. Apache Ant最初,Make是除了自行开发的解决方案之外唯一的构建自动化工具。Make自1976年以来一直存在,因此,它在Java早期用于构建Java应用程序。但是,C程序中的许多约定都不适合Ja...
2019-06-19 00:15:45
5955
原创 Swagger使用指南
1、介绍Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。2、添加依赖<!--swagger--> <dependency> <gro...
2019-06-03 16:33:47
226
原创 MySQL笔记
一、MySQL基础1、Mysql架构MySQL服务器由连接器、服务器、存储引擎,文件系统四大部分组成。其中服务器按功能又分为分析器、查询缓存、优化器、执行器等。连接器处理客户端连接分析器词法分析、语法分析查找缓存根据之前的查询缓存,直接获取结果。表数据更改后,缓存会失效。不建议使用。8.0版本已删除该功能。优化器对SQL语句进行优化,选择合适的索引(不能过于依赖,编程时最好自...
2019-06-02 23:02:16
211
原创 Session与Token
Session和token是网络连接中常用到的两种机制,一般用来保持连接的客户端信息,但两种实现存在差异。sessionsession是由Web服务器维护的一种连接信息,可以用来存储当前连接的客户端相关信息。session默认超时时间为30分钟,可进行配置。使用postman进行接口测试时,每次连接使用一个新的session。如果两个连接想使用同一个session,可以在将第一个请求返回的JS...
2019-06-01 16:23:46
859
原创 Java基础之String对象
String是Java中很常见的一种存储类型,也是JVM中占有空间最大的一类对象。它的使用很常见,也很基础,但是,却也藏着一些不细心难以发现的知识点。如下代码 String str1 = "hello"; String str2 = new String("hello"); String str3 = new String("hello").intern(); System.ou...
2019-05-31 23:21:00
198
1
原创 提高执行力
一、制定有效目标有效目标的三要素:具体,有时间期限,可实现。二、制定行动路线制定行动路线的三个步骤:准备,拆解,统筹处理。准备资源,准备应急措施。过分准备反而让事情走向反面。把不能直接执行的目标拆解为能直接执行的任务。拆解到知道怎么做为止。时间统筹。利用等待某个任务的空档来做其他任务。空间统筹。把能在同一地点的任务一同完成。三、时间分配三部曲1.培养对时间的准确感知,避免任务时间...
2019-03-16 16:39:48
218
转载 AdaBoost、GBDT、RF、XGboost、lightGBM的对比分析
AdaBoost简单介绍AdaBoost是基于boosting的思想,通过多个弱分类器的线性组合来得到强分类器,训练时重点关注被错分的样本,准确率高的弱分类器权重大。更深一步的介绍在训练过程中,它不改变所给的训练数据,而是不断改变训练数据权值的分布,使得被误分类的数据再后一轮的分类中受到更大的关注。同时采用加权多数表决的方法,加大分类误差率小的弱分类器的权值,使其在最后的表决中起更大的作...
2019-03-08 10:04:32
1032
原创 自然语言处理学习笔记
1、主要处理问题:文本分析、机器翻译、关键词提取、语义消歧、主题模型、问题问答、对话机器人2、文本表示方法1)词袋模型(Bag of words,Bow):不考虑词语顺序,只基于词频的统计方法。2)向量空间模型:每个词对应空间中一个单位向量,文本表示为词语的归一化加权总和。3)TF-IDF:词频表示方法TF(Term Frequency):词频,在一篇文档d中词语t出现的次数个归一化,...
2019-02-27 21:46:28
196
原创 机器学习100问
1、什么是机器学习?机器学习就是研究如何使计算机能够模拟人的学习方式,从大量数据中不断提升处理某个具体问题的能力。2、机器学习的三要素是什么?数据、算法、模型。机器学习通过大量数据,使用某种算法,不断训练优化自己的模型。3、什么是目标函数?通过样本训练,得到一个具体模型,用来描述该模型的函数。4、什么是损失函数?用来衡量假设函数对样本的预测值与实际值差异差异的函数。5、机器学习的...
2019-02-24 17:38:00
775
1
转载 Kaggle入门
什么是Kaggle?Kaggle成立于2010年,是一个进行数据发掘和预测竞赛的在线平台。从公司的角度来讲,可以提供一些数据,进而提出一个实际需要解决的问题;从参赛者的角度来讲,他们将组队参与项目,针对其中一个问题提出解决方案,最终由公司选出的最佳方案可以获得5K-10K美金的奖金。除此之外,Kaggle官方每年还会举办一次大规模的竞赛,奖金高达一百万美金,吸引了广大的数据科学爱好者参与其中。...
2019-02-22 11:34:15
269
转载 Tensorflow学习笔记——Summary用法
最近在研究tensorflow自带的例程speech_command,顺便学习tensorflow的一些基本用法。其中tensorboard 作为一款可视化神器,可以说是学习tensorflow时模型训练以及参数可视化的法宝。而在训练过程中,主要用到了tf.summary()的各类方法,能够保存训练过程以及参数分布图并在tensorboard显示。tf.summary有诸多函数:1、tf....
2019-02-02 16:31:06
897
原创 卷积神经网络CNN学习笔记
CNN是一种前馈神经网络,常用来进行大型图像处理。本质是层级网络,只是层的功能和形式做了变化,对传统神经网络做了改进。具有局部感知、全局共享、平移不变三个优势。典型结构由五层组成:数据输入层(INPUT)卷积计算层(CONV)激活层(RELU)池化层(POLL)全连接层(FC)数据输入层常用处理方式去均值(将数据中心化为0)归一化(减少各维度差异带来的干扰)去相关(目的是消...
2019-01-31 22:19:05
388
原创 TensorFlow学习(二)——Graph可视化
TensorFlow使用数据流图实现计算任务,有的图比较简单,仅包含少量的节点和张量,但现实中的模型往往比较复杂,包含众多的节点和参数。这次,就需要创建多个数据流图,并使用名称作用域(name scope)来组织数据流图,同时,也方便使用TensorBoard对graph进行可视化。(1)创建Graph对象在一般的TensorFlow程序中,会使用默认的数据流图。当模型比较复杂时,就需要创建多...
2019-01-31 22:02:22
2539
原创 TensorFlow学习
TensorFlow 使用graph来表示计算任务. 图中的节点被称之为 op (operation 的缩写). 一个 op获得 0 个或多个 Tensor(类型化多维数组) , 执行计算, 产生 0 个或多个 Tensor .一个tensorflow的图描述了计算的过程,图必须在session里被启动,session将图的op分发到cpu或gpu之类的设备上,同时提供执行op的方法,被执行后将...
2019-01-08 23:29:08
470
原创 机器学习——线性回归算法
1、算法概述回归是处理两个或两个以上变量之间互相依赖的定量关系的一种统计方法和技术。根据自变量和因变量的线性关系,可以分为线性回归和非线性回归。线性回归中,自变量和因变量的关系可以使用一条直线表示,表达形式为y=ωx+ϵy=\omega x+ \epsilony=ωx+ϵ。2、算法实现class LinearRegression: """使用Python实现的线性回归。(最小二乘法)...
2018-12-31 21:41:32
562
原创 神经网络算法
前馈神经网络前馈神经网络(FeedForward NN ) :是一种最简单的神经网络,采用单向多层结构,各神经元分层排列,每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层,各层间没有反馈。前馈网络包括三类节点:■ 输入节点(Input Nodes ) : 外界信息输入,不进行任何 计 算 ,仅向下一层节点传递信息■曄截节点(Hidden Nodes) :接收上一 层节...
2018-12-31 15:34:28
51653
2
原创 numpy常用函数
1、数组属性ndim # 维度shape # 每个维度的大小size # 数组的总元素个数dtype # 数据类型itemsize # 每个元素大小nbytes # (数组总字节大小import numpy as npl=np.random.randint(5,10,size=(3,2,5))print(l.ndim)print(l.sh...
2018-12-28 16:51:37
1038
原创 机器学习-KNN算法
1、算法概述最简单最初级的分类器是将全部的训练数据所对应的类别都记录下来,当测试对象的属性和某个训练对象的属性完全匹配时,便可以对其进行分类。但是怎么可能所有测试对象都会找到与之完全匹配的训练对象呢,其次就是存在一个测试对象同时与多个训练对象匹配,导致一个训练对象被分到了多个类的问题,基于这些问题呢,就产生了KNN。KNN是通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空...
2018-12-25 16:20:44
271
国密SM4算法ECB CBC源码及demo(Linux C版 )
2017-04-19
Apktool反编译工具
2016-01-27
android 使用信鸽推送消息,出现消息丢失
2016-07-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人