自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

转载 二叉树的算法时间复杂度

二叉搜索树,平衡二叉树,红黑树的算法效率操作二叉查找树平衡二叉树红黑树查找O(n)O(logn)Olog(n)插入O(n)O(logn)Olog(n)删除O(n)O(logn)Olog(n)Olog(n)怎么算出来的在一个树中查找一个数字,第一次在根节点判断,第二次在第二层节点...

2019-09-16 13:44:00 9595

转载 关于红黑树旋转的理解

概述红黑树的左旋和右旋比较费解,网上很多资料说的很复杂,这里我用望文生义的思维来解释左旋和右旋。可能对搜索资料的网友有帮助。二叉查找树的定义二叉查找树是一棵空树,或者是具有下列性质的二叉树:1、若左子树不空,则左子树上所有节点的值均小于它的根节点的值;2、若右子树不空,则右子树上所有节点的值均大于它的根节点的值;3、左、右子树也分别为二叉排序树;4、没有键值相等的节点。红...

2019-09-14 20:05:00 478

转载 拉链法的理解

原理把具有相同散列地址的关键字(同义词)值放在同一个单链表中,称为同义词链表。有m个散列地址就有m个链表,同时用指针数组T[0..m-1]存放各个链表的头指针,凡是散列地址为i的记录都以结点方式插入到以T[i]为指针的单链表中。T中各分量的初值应为空指针。用途主要用于解决key值冲突的问题场景HashMap就用了拉链法 HashMap的key是转化成了hash...

2019-09-14 10:10:00 1216

转载 什么是发展空间?

IT人: 问下你自己,当你有一天做技术开发的职业做累了,做烦了。 问问自己: 什么才是发展空间? 什么才是技术?转载于:https://www.cnblogs.com/geektcp/p/11470697.html...

2019-09-06 01:07:00 1717

转载 PriorityBlockingQueue深度解析(好文)

本文引自:https://www.cnblogs.com/Elliott-Su-Faith-change-our-life/p/7472265.htmlJava中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示。本文从Queue接口函数出发,结合生动的图解,深入浅出地分析PriorityQueue每个操作的具体过程和时间复杂度,将让读者建立对Priorit...

2019-08-25 23:59:00 262

转载 深入CAS原理

JDK中所有的CAS到最后都要用到这个方法:public final native boolean compareAndSwapObject(Object var1, long var2, Object var4, Object var5);这个方法有4个参数,奇怪的是序号不是1234,而是1245,没有javadoc和任何注释,是个native方法,代码实现是用C++写...

2019-08-19 16:19:00 122

转载 common-lang3工具类-使用手册

apache的common包列表BeanUtilsCommons-BeanUtils 提供对 Java 反射和自省API的包装BetwixtBetwixt提供将 JavaBean 映射至 XML 文档,以及相反映射的服务.ChainChain 提供实现组织复杂的处理流程的“责任链模式”.CLICLI 提供针对命令行参数,选项,选项组,强制选项等的简单API.C...

2019-07-13 14:09:00 933

转载 gitlab搭建

概述gitlab是完全私有的git项目,github是公共的git项目。服务器环境centos6部署命令yum install curl policycoreutils-python openssh-server yum -y install postfixsystemctl start postfixsystemctl enable postfixsys...

2019-05-02 14:36:00 164

转载 RestTemplate转码bug

发现一个关于HTTP的Get请求的罕见bug。转码问题的背景需要向tigergraph服务端发送一个复杂的get请求,参数只有一个,但是参数的值是一个复杂json服务端收到的值始终是不正常的值。观察发现,不正常地方在于服务端本应解析为空格的地方都变成了加号(+)。以为是代码写得有问题,然后使用HTTPclient的原生的方式发起请求:public stati...

2019-03-29 19:20:00 495

转载 论tigergraph边的方向性

tiger边分类tiger的边分为有向边,无向边。有向边和无相边的区别是:界面上有向边有明显箭头,无向边就是直线。注意: 有向边又有单向边,双向边。无向边由于指定了边的起点类型和终点类型,而任何顶点的类型只能有一个,无所无向边其实还是有方向的。只有起点和终点类型都是*的时候,才是真正的无向边。单向边无法反向遍历。无相边和双向边都可以反向遍历。无...

2019-03-24 19:07:00 327

转载 关于java的wait方法的深入分析

本文出自: https://blog.youkuaiyun.com/qq_26222859/article/details/53930941wait() 的jvm实现先查看jdk\src\share\native\java\lang\Object.c#include <stdio.h>#include <signal.h>#include ...

2019-03-24 18:47:00 437

转载 openjdk的源码下载方式

官方地址是:http://hg.openjdk.java.net/jdk8的下载地址:http://hg.openjdk.java.net/jdk8/jdk8/hotspot/点击zip即可开始下载,实际下载地址(以jdk8为例):http://hg.openjdk.java.net/jdk8/jdk8/hotspot/archive/tip.zip...

2019-03-24 18:33:00 197

转载 一个奇怪的urlencode转码问题

问题现象问题源自于使用tiger进行图查询时,要用到一个get请求,参数是复杂的json字符串,含有空格,逻辑运算符等若干字符。当服务器端接收时,总是无法正常解析。神奇的是使用httpclient原生的方式没有这个问题,使用postman也没问题。但是使用spring的restTemplate就偏偏有这问题。反复调试也没有完全搞清楚。困扰了两三天。具体问题下...

2019-03-24 18:02:00 333

转载 iphone的抹除流程

手机丢失后,开启抹除模式,如果成功抹掉,会有如下截图。这时,手机的操作系统会重置,里面照片,备忘录,通讯录什么的都没了。有点像刚买的时候的初始状态,不同的是,设置好语言,连接好wifi后,多了一步:必须先输入apple id和密码,验证通过后,才能登录新的apple id和密码。否则永远无法进入下一步。转载于:https://www.cnblogs...

2019-02-02 17:42:00 517

转载 关于iphone的双重验证的虚伪本质

双重验证就是鸡肋如果手机丢了,双重验证时如果绑定的手机号正是丢失手机对应的手机号,那么就会阻碍你抹除数据。因为双重验证必须要iphone手机上的验证码或者手机短信的验证码或者是其他苹果手机设备(不能是iphone设备,可以是ipad,mac设备上的appleid账号),这个策略不支持邮箱验证。当手机丢失后,如果你要立即抹除数据,防止数据泄漏时,你会发现原来苹果...

2019-02-02 16:24:00 573

转载 新买的iphone如何保证安全

事件背景最近丢了一个iphone7plus,非常遗憾,是坐滴滴网约车时忘车上了,虽然知道大概是后面上车的乘客捡到的,但是滴滴客服联系对方,对方死都不肯承认。己所不欲,勿施于人。下面我来分享一下这次的心路历程。由于调查成本高,金额不算特别高,不会立案,找警察也没有用。鉴于这次教训,我第二天上午就补卡了,由于开启了二重验证,绑定的手机是我丢失手机上的卡号,抹除设置只能补...

2019-02-02 10:02:00 161

转载 tigergraph图计算

tigergraph是什么它是一个目前业界最先进的图数据库。系统完全闭源。部分查询算法开源。分为开发版和企业版。开发版免费,但功能受限,比如单点,只能构建一个图企业面收费,支持大规模集群,顶点表数量不受限制。tigergraph系统架构术语顶点,边的概念是一致的。也是json形式存放数据。概念解释:DDL: 数据定义语言(通用概念)DML:数...

2019-01-18 19:35:00 401

转载 构建一颗普通树

场景:权限管理资源分级别:一级资源(部门管理,项目管理)二级资源(列表,详情,编辑,删除,增加)三级资源(过滤条件,展示范围,深度)也可能有更多级别的资源,现在需要构建一个普通树来存放。node类package com.haizhi.gap.sys.auth.model.vo;import com.haizhi.gap.sys.auth....

2019-01-08 18:52:00 226

转载 注解大全

开始逐个累积所有spring和非spring的各种注解。序号:1注解:@Component作用:表示一个带注释的类是一个“组件”,成为Spring管理的Bean。当使用基于注解的配置和类路径扫描时,这些类被视为自动检测的候选对象。同时@Component还是一个元注解。说明:Controll,Service,Reponsitory和Componet效果都完全一样,只是...

2018-12-13 19:12:00 170

转载 ExceptionHandler运行机制分析

ExceptionHandler是如何触发的ExceptionHandler是spring里面的一个注解,非常方便去掉try...catch这类冗余难看的代码,有利于代码的整洁和优美。还能统一处理异常,是个非常好的技巧。下面以我写的一个最简单的工程来说明ExceptionHandle是如何工作的。一共4个类:1、springboot的启动类DemoApplication2、一个控...

2018-12-13 00:16:00 258

转载 neo4j初探

概述neo4j是业内出现较早的图数据库,部署方式类似mysql,存在通用版本community和企业版edition通用版不支持分布式集群部署,只支持高可用部署下载neo4j-enterprise-3.5.0-unix.tar.gz解压后启动:tar -zxvf neo4j-enterprise-3.5.0-unix.tar.gz -d/home/graph/s...

2018-12-06 11:07:00 88

转载 javaWeb开发之拦截器和过滤器的区别

拦截器和过滤的关系图拦截器和过滤器简要区别1、拦截器是基于java的反射机制的,而过滤器是基于函数回调。2、拦截器不依赖与servlet容器,过滤器依赖与servlet容器。3、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。4、拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。5、在action的生命周期中,拦截器可以多次被调...

2018-12-04 00:36:00 149

转载 idea自动检查失效-目录中类名下的红色波浪线没有自动消除问题

自动检查失效-工程类名红色波浪线没有错误也不消除最近打开一个新工程,遇到一个问题,当修改类里面的代码时,中间有语法不正确的情况,这时左边目录结构会有红色下划线,这是正常情况。问题是:当我把代码语法改正确后,左边的目录结构中的红色波浪线还是存在,正常情况下是会自动去掉红色波浪下划线的,这个问题让我很恼火。如下图:查个底朝天查了两小时,起初怀疑是idea设置问题...

2018-12-02 13:06:00 936

转载 高并发编程thirft源码解析之Selector

Selector作用关于套接字编程,有一套经典的IO模型需要提前介绍一下:.同步IO模型:阻塞式IO模型非阻塞式IO模型IO复用模型 使用selector信号驱动式IO模型异步IO模型使用aio_readthrift里面用到IO模型就是IO复用模型,《Unix网络编程》一书中说它是同步IO模型,selector用法是阻塞的。实际上s...

2018-11-25 19:59:00 125

转载 高并发编程thirft源码解析之多线程

我用的thrift模式:网络编程模式arg.selectorThreads(Integer.parseInt(mProp.get("LogServerSelectorThread").toString()));这步骤是启动了多个线程,每个线程里面有个bocking queue队列,队列元素是socketchannel,线程启动后就不断消费这个队列并不是select使用了多线程,而...

2018-11-25 14:30:00 83

转载 hive工作原理之SQL源码解析

hive自带的sql查询最终是转化成mapreduce任务进行。如何转换的呢?分为如下几步:1、antlr词法解析器解析SQL成Abstract Syntax Tree即AST树2、基于AST树解析成若干query block即QB,QB和QBParseInfo其实是hive源码里面的Bean,是SQL解析的关键类下边是QB的关键几个成员如下:public c...

2018-11-23 11:14:00 276

转载 Hadoop mapreduce和Spark mapreduce的区别

总结一下第一代大数据计算Hadoop的mapreduce和第三代大数据计算Spark mapreduce具体对比如下表:转载于:https://www.cnblogs.com/geektcp/p/10006261.html

2018-11-23 11:06:00 115

转载 假如重新设计一套大数据系统架构

如何设计大数据架构最近在反思最近两年来做了什么。突然想到一个问题: 如果由我重新设计一套大数据系统的架构,我该如何设计呢?具体如何设计估计3天都讲不完。架构设计对一套系统会产生深远影响,有些影响甚至是不可逆,或者重构成本很高。今天就重点讲讲需要考量的方方面面吧,具体如何设计日后再谈。采集系统的设计采集系统做了两年多,实际经验发现数据丢失问题很严重。字段扩...

2018-11-22 23:40:00 94

转载 浅谈长连接keepalive和套接字重用reuse对高并发的影响

做采集系统有两年了,第一年主要的设计和代码逻辑是别人写的。但是问题很多。第二年真正由我接手后,修复了大量的业务逻辑。遇到的一个核心问题就是数据丢失。最近客户也在问我采集上报的机制,是否使用长连接?我自己联想到套接字的reuse问题。由于所作的这个项目有两千万的用户量,高峰期tcp连接达到15000到30000并发是每天都会发生的事情。开始怀疑是这个机制设...

2018-11-21 23:11:00 195

转载 二叉树、二叉搜索树、平衡二叉树、B树、B+树的精确定义和区别探究

概述关于树的概念很多,B树,B+树,红黑树等等。但是你去翻翻百度百科,或者用百度或者谷歌搜索一下中文的树结构的介绍,全都是狗屁。没有哪个中文网站是真正精确解释树的定义的,尤其是百度百科。下面我要根据我自己的学习和理解。给出一些中文的定义。什么是二叉树(Binary Tree)二叉树是每个节点最多有两个子节点的树。二叉树的叶子节点有0个字节点,二叉树的根节点或...

2018-11-20 22:30:00 181

转载 图解namenode同步机制

hadoop分布式文件系统HDFS文件系统发展到现在已经是3.0以上版本了,目前我常用的版本还是2.6.4,由于非常稳定,从来没有崩溃过。中间还迁移过一次。这篇主要介绍namenode同步机制,主要分为6大步骤,如下图:转载于:https://www.cnblogs.com/geektcp/p/9991717.html...

2018-11-20 21:24:00 181

转载 抽象类和接口的使用场景的根本差别

抽象类和接口的使用就是is和has的区别。比如男人,小孩,女人相对于人,就是is关系,除了说话,走路,体型之外有很多相似之处,共性较多,这个时候使用abstract class就可以简化代码逻辑。再比如人,汽车,飞机相对于移动这个动作,就是has关系,接口强调的是个别的某种行为,共性较少,这个时候使用intervce class也可以简化代码逻辑。转载于:https:/...

2018-11-19 22:13:00 108

转载 JVM参数调优

通用参数优化-Xms35g            堆的最大内存-Xmx35g            堆的最小内存-Xss1024            线程栈内存大小,默认是1024单位是KB-Xmn10g            新生代内存大小-XX:NewRatio=4         新生代(Eden和两个Survivor)和老年代内存大小比例-XX:Sur...

2018-11-15 17:24:00 126

转载 JVM参数默认值列表

[dig@dm5 ~]$ java -XX:+PrintFlagsFinal [Global flags] uintx AdaptiveSizeDecrementScaleFactor = 4 {product} uintx AdaptiveSizeMajorGCDecayT...

2018-11-13 14:57:00 185

转载 垃圾回收G1日志解析

G1垃圾回收器介绍首先要搞清楚G1垃圾回收的过程主要分为下面4个步骤:初始标记(Initial Marking) 由于常规标记对象是否直接关联到GC roots,过程简单,停顿时间短并发标记(Concurrent Marking) 由于可达性性分析,存在较长停顿最终标记(Final Marking) 由于把并发标记时漏掉的那部分...

2018-11-13 12:29:00 590

转载 《深入理解JAVA虚拟机》垃圾回收时为什么会停顿

停顿现象很多网上资料都会说到JAVA语言的一个劣势就是垃圾搜集时,整个进程会停顿。到底是不是呢?答案是确实存在。为什么会停顿垃圾收集的一个前提是要判断进程中的对象哪些是垃圾内存,哪些不是。怎么判断呢,JVM里面使用了一种叫可达性分析的技术来枚举根节点。一言以蔽之,JVM的内存空间里的若干对象都会有联系,形成树结构,如果一个对象通过寻路,能够找到根节点,那...

2018-11-11 12:19:00 213

转载 《深入理解JAVA虚拟机》JDK的垃圾收集算法

概念垃圾收集是很多使用JAVA语言的IT从业者了解得比较少的地方。但是涉及性能时非常重要。大公司面试除了算法,这部分也是会经常考察的地方。《深入理解JAVA虚拟机》一书中讲到JVM的垃圾收集算法和垃圾收集器。垃圾收集算法分为:1、标记清除算法通常用在回收老年代内存。最早的搜集算法就是标记清除(Mark-Sweep)算法了。其原理是分为标记和清除两个阶...

2018-11-11 12:11:00 125

转载 什么才是技术?

关于技术的反思自以为搞技术多年,究竟什么才是技术?掌握一种或者多种编程语言?熟练Linux各类神操作?深入研究某几种开源软件源码?或者是根据业务诉求进行组件拼装,定义各种规范协议,美其名曰架构设计?这些东西其实如果你会,别人迟早都可以做,只是时间问题,这还叫技术吗?什么才是真正的技术呢?我觉得至少有两样东西算技术。其一是算法要想在软件开发中巧妙运用...

2018-11-10 12:08:00 461

转载 java内存总结

一、java内存分区一共分为6个区域:1、方法区(也叫非堆区)和堆区,另外还有直接内存即堆外内存,这三个区域都是线程共享的内存区域。2、虚拟机栈,本地方法栈,程序计数器。这6个区域,出了程序计数器区域不可能发生内存问题,其他5个区域都可能发生内存问题。这里指的内存问题包括内存泄漏和内存溢出。内存溢出 out of memory,是指程序在申请内存时,没...

2018-11-08 18:37:00 95

转载 《算法设计与应用》数据结构回顾-树

概念回顾昨晚看到数据结构中的树部分,现在回顾一下。树是数据结构里面比较复杂,也比较有趣的一种。对应的名称很多,比如二叉树,红黑树,B树,B+树等等对应排序也挺多,前序,中序等等。排序回顾最近看到《算法设计与应用》书里面提到书的排序方式印象较深。分为前序,中序,后序,欧拉环游排序等等,他们时间复杂度都是O(n)。让我感觉树是一种精巧的数据结构,尤其是...

2018-11-08 17:56:00 87

空空如也

空空如也

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

TA关注的人

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