自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 /usr/bin/python3: symbol lookup error: /usr/bin/python3: undefined symbol: XML_SetHashSalt

前因:我在ubuntu上装了matlab,设置了LD_LIBRARY_PATH。后来使用supervisor时发现老是报/usr/bin/python3: symbol lookup error: /usr/bin/python3: undefined symbol: XML_SetHashSalt问题排查:1、查看LD_LIBRARY_PATH的设置路径echo $LD_LIBRARY_PATH2、根据报错symbol lookup error: /usr/bin/pytho

2021-10-08 10:03:28 4835

原创 matlab文件导成jar注意事项

**matlab文件导成jar注意事项**getenv JAVA_HOME和version -java确保两者版本一致

2020-04-20 11:37:57 238 1

原创 Trie树----如何通过前缀查找字符串

什么是“Trie 树”?Trie 树,也叫“字典树”。顾名思义,它是一个树形结构。它是一种专门处理字符串匹配的数据结构,用来解决在一组字符串集合中快速查找某个字符串的问题。就像我们用搜索引擎搜索内容时,输入部分信息,搜索框会提示关键词,这就是Trie树的应用。我举个简单的例子来说明一下。我们有 6 个字符串,它们分别是:how,hi,her,hello,wei,wa我们希望在里面多...

2019-06-26 15:27:50 1134

原创 散列表设计思路,(可对照HashMap的源码)

https://blog.csdn.net/u010530712/article/details/93166430 这篇文章里初步介绍了散列表,及解决散列冲突的几种方案。目前来说,链表法是比较常用的方法,像我们熟悉的hashmap就是用的这个。查找时通过hash(key)找到某个bucket,然后遍历链表,使得整体的查找时间复杂度为O(k),k是链表的节点数。散列表碰撞攻击h...

2019-06-24 13:29:49 462

原创 散列表及散列冲突解决方案

1、散列表看过HashMap源码的同学应该知道,HashMap是基于哈希表(散列表)的 Map 接口的非同步实现。在我们put了一条key-value数据后,如下图,程序会先将key通过hash(key)这个函数转化成整形,这个整形做为数组的下标,插入数据或查找数据。我们发现,散列表用的是数组支持按照下标随机访问数据的特性(时间复杂度O(1)),所以散列表其实就是数组的一种扩展...

2019-06-21 12:42:06 9682 2

原创 TCP和UDP传输方式对比

UDP传输方式UDP (User Datagram Protocol )用户数据报协议,是一种面向无连接的传输方式,不提供复杂的控制机制, 如果传输过程中出现丢包, UDP 也不负责重发. 甚至当出现包到达顺序乱掉时候也没有纠正的功能. 由于 UDP 面向无连接, 它可以随时发送数据. 再加上 UDP 本身的处理既简单又高效, 因此常用于以下几个方面:1.包总量较少的通信(DNS)2.视频...

2019-05-09 10:57:45 5997

原创 给幼儿园小朋友看的网络安全扫盲篇

当通过互联网交换数据时,数据通过各种网络和设备到达另一方,因此,为了安全,安全技术时不可或缺的。如果没有安全技术,在互联网上交换数据时可能出现如下四个代表性问题1、窃听窃听发生在,当a向b发送消息时,在传输途中,内容有可能被x方窃听2、欺骗X可以欺骗消息的发送方或接收方,如欺骗A说我是B,把消息发给我吧,反之亦然。3、伪造伪造发生在当A发送给B时,X可以在消息传...

2019-03-18 10:46:15 4558 3

原创 【JAVA学习笔记】synchronized的实现,以及锁的升级、降级

首先,我们要知道一个知识点,就是synchronized的实现是通过monitorenter/monitorexit 指令实现的。每个对象都有Monitor(监视器锁),当monitor被占用的时候,对象进入锁定状态。monitorenter:线程通过monitorenter指令尝试获取monitor所有权,情况如下:1、如果monitor的进入数为0,则该线程进入,进入数设置为1,线...

2019-02-19 11:58:57 2612

原创 常用Git 命令高级篇

前奏:1、用过git的人都知道,通过git log查看的提交记录的哈希值是很长的,就像fed2da64c0efc5293610bdd892f82a58e8cbc5d8好消息是,git对哈希的处理很智能,你只需要提供能够唯一标识提交记录的前几个字符就可以了,因此上述的字符串,对于git来说fed2就可以定位到具体哪条提交记录。接下来的提交记录的hash值用c0-cxxx标识。2、HEAD...

2019-01-16 16:07:55 476

原创 常见的分布式事务解决方案

之前梳理了什么是事务;https://blog.csdn.net/u010530712/article/details/84949864现在来梳理下,分布式事务的解决方案首先对于分布式事务,一般来说要基于CAP(Consistency :一致性,Availability :可用性,Partition Tolerance:分区容错性)中的两个,要么CP(一致性 + 分区容忍性),要么AP (...

2019-01-11 17:02:40 1650 1

原创 【JAVA学习笔记】CountDownLatch、CyclicBarrier、Semaphore

这三个都是concurrent并发包下面的并发工具类,那么他们有什么区别呢,下面一个个通过比喻梳理1、Semaphore。semaphore的应用场景想象成:停车场如下代码  Semaphore semaphore = new Semaphore(2);也就是说停车场里有2个空位,for循环5次比作有5辆车来停车,开始时 ,最前面的2辆车通过semaphore.acquire();方法...

2018-12-29 10:32:46 129

原创 【JAVA学习笔记】对比ReentrantLock的lock和lockInterruptibly

lock 优先考虑获取锁(不获取到锁不罢休的那种),待获取锁成功后,才响应中断。lockInterruptibly 优先考虑响应中断,而不是响应锁的普通获取或重入获取。 public class ReentrantLockDemo { public static void main(String[] args)throws Exception { Reentr...

2018-12-14 16:39:12 163

原创 数据库事务隔离级别

什么是事务?事务提供一种机制,将某个业务逻辑涉及的所有操作纳入到一个不可分割的执行单元,事务只有在“组成事务的所有操作均正确执行的情况下”才能提交,也就是说明知要其中任一操作执行失败,都将导致整个事务的回滚。(要么什么都不做,要么做全套机制)事务的ACIDACID 指数据库事务正确执行的四个基本特性的缩写,A->   Atomicity 原子性 :整个事务中的所有操作,要...

2018-12-11 14:37:56 166

原创 微服务拆分

服务粒度——“三个火枪手”原则三个火枪手原则就是一个微服务由三个人负责开发。一般来说,在进行微服务架构时,根据团队规模来划分微服务数量是合理的。而为什么是3个人???? 从系统规模来讲,3 个人负责开发一个系统,系统的复杂度刚好达到每个人都能全面理解整个系统,又能够进行分工的粒度;如果2个人开发一个系统,系统复杂度不够;如果4个人甚至更多人开发一个系统,系统复杂度又会无法让开发人员对...

2018-12-05 16:15:56 1156

原创 Hashtable、HashMap、TreeMap

三者均实现了Map接口,存储的内容是基于key-value的键值对映射,一个映射不能有重复的键,一个键最多只能映射一个值。(1) 元素特性HashTable中的key、value都不能为null;HashMap中的key、value可以为null,很显然只能有一个key为null的键值对,但是允许有多个值为null的键值对;TreeMap中当未实现 Comparator 接口时,key 不...

2018-11-22 15:07:48 156

原创 【SPARK】Spark Streaming简介

Spark Streaming可以整合多种输入数据源,如Kafka、Flume、HDFS甚至是普通的TCP套接字。经处理后的数据可存储至文件系统、数据库、或显示在仪表盘。 Spark Streaming执行流程Spark Streaming的基本原理是将实时输入数据流以时间片(秒级)为单位进行拆分,然后经Spark引擎以类拟批处理的方式处理每个时间片数据DStream操作示...

2018-10-08 15:19:21 298

原创 Kafka 安装

Kafka 安装kafka 版本:2.11-2.0.0ubuntu 版本: 18.04LTSkafka官网下载地址1、解压tar -zvxf kafka_2.11-2.0.0.tgz -C /usr/localmv kafka_2.11-2.0.0 kafka2、配置打开kafka的config/server.properties 文件broker.id=1l...

2018-09-30 13:40:45 339

原创 【SPARK】流计算概述

流数据特征:数据快速持续到达、潜在大小不可预测 注重数据的整体价值,不过分关注个别数据 数据顺序颠倒,或者不完整,系统无法控制将要处理的新到达的数据元素的顺序 数据量大,但不十分关注存储,一旦经过处理,要么被丢弃,要么归档存储 数据来源多,个事复杂批量计算和实时计算流计算系统要求:高性能、海量式、实时性、分布式、易用性、可靠性传统的数据处理流程隐藏两个前提:1...

2018-09-26 14:51:00 722

原创 HBase

1、HBase是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、列限定符和时间戳2、每个值是一个未经解释的字符串,没有数据类型3、用户在表中存储数据,每一行都有一个可排序的行键和任意多的列 表:HBase采用表来组织数据,表由行和列组成,列划分为若干个列族行:每个HBase表都由若干行组成,每个行由行键(row key)来标识列族:一个HBase表备份组成许多"列...

2018-09-18 15:53:43 1739

原创 Navicat primium 英文字体出现框框

工具->选项->然后吧常规、编辑器、记录三个地方的字体换成   AR PL UMing CN 在之前的使用中,刚开始编辑start_navicat改成export LANG="zh_CN.UTF-8"出来结果是中文显示正常,而英文出现框框因为ubuntu里的navicat是基于wine运行的,而wine对中文的支持不友好然后在工具里把字体改成AR PL U...

2018-09-18 14:40:47 987 1

原创 【SPARK】- 共享变量

Spark 中的两个重要抽象是RDD和共享变量当Spark在集群的多个不同节点的多个任务上,并行运行一个函数时,他会把函数中涉及到的每个变量在每个任务上都生成一个副本。在做计算的时候,几个task任务需要公共数据,通过设置共享变量,减少开销---->设置几个共享变量(只读),将其发送至executor,所有task共享这些只读变量为了满足这种需求,Spark提供了两种类型的变量:...

2018-09-17 16:36:38 182

原创 【SPARK】- RDD分区

RDD是弹性分布式数据集,通常RDD很大,会被分成很多分区,分别保存在不同节点上分区原则RDD分区是使分区的个数尽量等于集群中的CPU核心数目默认分区数对于不同的Spark部署模式而言(本地模式、Standalone模式、YARN模式、Mesos模式),都可以通过设置spark.default.parallelism这个参数的值来配置默认分区数。本地模式:默认为本地机器的CPU...

2018-09-13 13:18:16 495

原创 【SPARK】- RDD持久化

因为RDD的惰性求值机制,每次遇到行动操作,都会触发一次从头开始的计算。这对于迭代计算而言,代价是很大的,迭代计算经常需要多次重复使用同一组数据。因此,可以通过持久化(缓存)机制避免这种重复计算的开销可以使用persist()方法对一个RDD标记为持久化(标记持久化:出现persist()语句的地方,并不会马上计算生成RDD并把它持久化,而是要等到遇到第一个行动操作触发真正计算以后,才会把...

2018-09-11 15:55:22 442

原创 【SPARK】- RDD操作

spark相关流程每个Spark应用都由一个驱动器程序(drive program)来发起集群上的各种并行操作。驱动器程序包含应用的main函数,驱动器负责创建SparkContext,SparkContext可以与不同种类的集群资源管理器(Cluster Manager),例如Hadoop YARN,Mesos进行通信,获取到集群进行所需的资源后,SparkContext将得到集群中工作...

2018-09-11 13:52:09 920

原创 MySQL存储引擎

学习至:https://yq.aliyun.com/articles/630494?spm=a2c4e.11153940.bloghomeflow.98.5d04291aClARW7一、InnoDBInnoDB提供了事物处理、回滚、崩溃修复能力、多版本并发控制的事物安全。从mysql3.23.34a版本开始包含InnoDB。是MySQL上第一个提供外检约束的表引擎。InnoDB...

2018-08-31 16:22:03 103

原创 零拷贝深入剖析及用户空间与内核空间切换方式

传统I/O操作整个过程,用户空间缓冲区只是临时存放数据的载体,不对数据操作。追求高性能、低延迟的瓶颈比较大。改进1:操作系统意义上的0拷贝相比上一个,减少了用户空间和内核空间间的数据拷贝改进2:真正意义上的0拷贝:实例:需求:实现文件读取发送,有C、S,C向S发送文件,S读取,用两种(传统io和零拷贝)方式,取中位数比较性能。https://gi...

2018-08-28 13:30:57 1731 1

原创 netty server端基本使用框架梳理

public static void main(String[] arg)throws Exception{ //NioEventLoopGroup 死循环 //netty的服务器会启动两个服务器,boss来接收连接,worker用来处理连接及响应。 //本质上都是nio的异步处理的事件循环对象 EventLoopGroup...

2018-08-27 10:01:10 369

原创 io与Nio知识梳理

##io体系架构回顾一、io的输入流和输出流是两种,不能同时是输入流和输出流。二、流的分类:1、节点流:从特定的地方读写的流类,和目标或目的地直接接触交互的,例如:磁盘或一块内存区域2、过滤流:使用节点流作为输出或输出,在节点流基础上的包装。过滤流是使用一个已经存在的输入或输出流连接创建的I/O流的连接input:文件-》从文件中取输入字节(FileInputStream)-》...

2018-08-24 16:48:42 212

原创 ISO-8899-1,GBK,UTF等字符编码的历史演进

ASCII(American Standard Code for Information Interchange)美国信息交换标准代码。 早期使用,7bit表示一个字符,还有1bit没用,共计可表示128种,表示英文足够。ISO-8859-1:早期是ascii码,但后来不够用了,于是在ascii码的基础上有了ISO-8859-1,iso8859-1是完全向下兼容ascii码。iso-8859-...

2018-08-24 16:26:33 512

原创 netty学习笔记【不断更新】

git 地址:https://github.com/chris1132/netty_lecture2018-7-20开始系统学习netty完成服务端部分 https://blog.csdn.net/u010530712/article/details/821071872018-7-22实现客户端和服务端基于tcp双向通信源码 https://github.com/chris1132...

2018-08-07 11:04:42 640

转载 【转】TCP的三次握手(建立连接)和四次挥手(关闭连接)

建立连接: 理解:窗口和滑动窗口TCP的流量控制TCP使用窗口机制进行流量控制什么是窗口?连接建立时,各端分配一块缓冲区用来存储接收的数据,并将缓冲区的尺寸发送给另一端接收方发送的确认信息中包含了自己剩余的缓冲区尺寸剩余缓冲区空间的数量叫做窗口2. TCP的流控过程(滑动窗口)TCP(Transmission Control Protocol) 传输控制协议三次握手TCP是主机对主机层的传输控...

2018-06-25 11:20:44 179

原创 Java 重写(Override)与重载(Overload)

方法重写规则:重写方法名和参数(个数、类型)必须和被重写的方法相同重写方法的返回类型必须和被重写方法相同方法的申明权限不能比被重写方法低,如父类是public,就不能是protectedfinal的方法不能被重写,static的方法不能被重写,但能被再次申明父类和子类在同一个包,子类能重写父类所有方法,除了final和private方法父类和子类不在同一个包,子类只能重写父类public和prot...

2018-06-22 10:37:02 167

原创 java高级特性【jvm-总】

在运行期间涉及到的数据区域有:程序计数器、虚拟机栈、本地方法栈、堆、方法区,如下图:线程私有、随线程结束而结束的部分1、程序计数器:占的内存很小,几乎可以忽略不计,每个线程都有一个程序计数器,随线程的结束而消亡。计数器里存的是下一条被执行指令的地址,这里的地址可以是一个本地指针,也可以是在方法区中相对应于该方法起始指令的偏移量。因为java文件在编译以后,java语言被编译成字节码,顺序并不是ja...

2018-03-30 14:50:34 156

原创 【神经网络入坑记】深度学习和神经网络的区别

入坑神经网络有一段时间,决定写写博客记录下学到的知识点,哪怕是一点点的内容,以后想看了也有个着落吧。。。这次梳理的内容是神经网络、深度学习的一个关系之前虽然看了一些算法,自己也尝试着画了一些葫芦,不过后来发现对于深度学习和神经网络有些混乱写个博客做下笔记:在人工智能领域,机器学习属于其中的一种方法,而神经网络是机器学习里的一种算法。神经网络一般有输入层->隐藏层->输出层,一般

2018-01-31 10:17:00 5236 1

原创 Python淘宝秒杀

昨天茅台在线上搞秒杀,本来想着靠我惊人的手速去秒一瓶,结果。。。。所以痛定思痛,想想还是用脚本更靠谱。就在网上搜啊搜,看到selenium这个,顿时眼睛一亮!整体流程是:上淘宝->找到登录按钮去登陆->在登录页选择密码登录->填入账号密码登录->跳到购物车页->点击全选按钮,等约定时间,时间到马上结算、下单 import osfrom sele...

2018-01-30 13:56:25 19124 9

原创 python3 爬虫学习日记【二】

二来了~继续记录学习历程。 真的对自己无语,这段时间虽然写了一些小脚本,就是偷懒好久没写博客,今天的内容来自于git上看到的大神写的冲顶大会的脚本,就照着他的思路先写个简易版本的:大神的git传送门,有兴趣可以学习下我是用BeautifulSoup写的爬虫,实现的主要功能就是把问题和答案做好一对一封装后,去百度查搜索结果条数,根据条数初步判断选项。初版很简单,先上传,继续研究怎么结合语

2018-01-16 16:52:39 259

原创 GitHub上文件夹灰色,不可点击

之前clone了git的一份代码,放在自己的git仓库里,今天提交后发现我的github上这份代码的文件夹是灰色的,无法点击。根据网友分享,做下总结:删除你clone的代码里的 .git .gitignore文件,然后重新add/commit/push如果没成功,就把文件名改下,应该是有缓存,改完名后再add/commit/push

2018-01-16 16:23:18 6560

原创 python3 爬虫学习日记【一】

python3 爬虫学习日记【一】前段时间学完了python3的基本语法,今天开始学习爬虫,慢慢记录下,也是为以后写神经网络做好准备,毕竟别人不会给你数据,只能自己去爬了 之前在看《遮天》,正好拿它来练练手。我用request和BeautifulSoup来写爬虫,优雅华丽~写个爬网页文章的爬虫,首先要封装一个header,因为现在的网站基本都有请求来源的判断,不做简单的伪装,一般

2017-09-27 13:26:39 568

Deep Learning with Python

包括两本书,书名都是Deep Learning with Python,一本作者:Nikhil Ketkar,2017版,带目录,另一本作者是一直在维护Keras的谷歌工程师:Francois Chollet

2018-02-27

数据结构与算法分析:C语言描述(中文版,案例源码,课后答案)

数据结构与算法分析:C语言描述 里面包含中文版书籍、案例源码、习题答案

2018-02-06

c语言 黑白棋

用c语言做的黑白棋 人机对战 还有具体的分步讲解

2013-05-12

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

TA关注的人

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