自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (2)
  • 收藏
  • 关注

原创 hbase之布隆过滤器

一、布隆过滤器布隆过滤器(Bloom Filter)是1970由布隆提出的。通过一个很长的二进制向量于一系列随即哈希函数生成。下面我就将通过以下小节来介绍布隆过滤器:1、原因与结构解析2、数学公式1.1 原因与结构解析首先,我们应当知道,hash是内存中使用的经典数据结构。当我们需要判读一个元素是否在一个集合当中时,我们可以用哈希表来判断。在集合较小的情况下,hash是可行而且高效的。然而数据量以...

2018-07-05 09:46:12 9485 4

原创 哈希(哈希表与哈希函数)

一、哈希哈希函数是计算机领域特别是在密码学领域应用最广泛的算法之一,哈希表是数据结构中应用最广泛的结构之一,本博客将为大家介绍哈希函数,介绍哈希表。1、哈希函数2、哈希表3、哈希函数在大数据中应用1.1哈希函数哈希函数的性质哈希函数又名散列函数,对于经典哈希函数来说,它具有以下5点性质:1、输入域无穷大2、输出域有穷尽3、输入一样输出肯定一样4、当输入不一样输出也可能一样(哈希碰撞)5、不同输入会...

2018-07-04 14:32:43 7299 1

原创 HBase之rowkey设计原则和方法

rowkey设计原则和方法rowkey设计首先应当遵循三大原则:rowkey长度原则rowkey是一个二进制码流,可以为任意字符串,最大长度为64kb,实际应用中一般为10-100bytes,它以byte[]形式保存,一般设定成定长。一般越短越好,不要超过16个字节,注意原因如下:1、目前操作系统都是64位系统,内存8字节对齐,控制在16字节,8字节的整数倍利用了操作系统的最佳特性。2、hbase...

2018-06-30 10:53:20 30505 2

原创 golang源码解析之chan

golang源码解析之chan导语:在go语言中,chan 和 goroutine 是其并发模型CSP最重要体现,本文将基于1.14版本,深入源码,尽可能详细分析其内部实现原理。一、为什么要使用chan在并发线程中通信一般来说有两种模型:共享内存和消息传递。常见的共享内存方式涉及到数据竞争这些问题,引入到锁、原子操作来解决。而基于消息传递的方式保证了不会产生数据竞争状态。其中,实现消息传递有两种常见的类型:基于channel的消息传递和基于actor的消息传递。而golang,就是基于chan

2020-09-03 17:26:41 1014 1

原创 java虚拟机编译器(一)

java虚拟机编译器(一)java虚拟机是为支持java编程语言而设计的。Oracle的JDK软件包括两部分:一部分是将java源代码编译成java虚拟机的指令集的编译器,另一部分是用于实现java虚拟机的运行时环境。3.1、实例格式说明如果读者阅读过汇编代码,应该很熟悉实例的格式。所有指令的格式如下: <index><opcode><operand1&g...

2018-11-24 10:49:05 674

原创 java虚拟机结构(概览四)

java虚拟机结构(概览四)1、异常java虚拟机里面的异常使用throwable或其子类的实例来表示,抛异常的本质实际是程序控制权的一种即时的、非局部的装换——从异常抛出的的地方转换至处理异常的地方。 绝大数异常的产生都是由于当前线程执行某个操作所导致的,这种可以称为同步异常。与之相对,异步异常可以在程序执行过程中随时发生。java虚拟机中异常的出现总是由于下面三种原因之一导致的。...

2018-11-15 10:52:12 293

原创 java虚拟机结构(概览三)

java虚拟机结构(概览三)1、栈帧栈帧(frame)是用来存储数据和部分过程结果的数据结构,同时也用来处理动态链接、方法返回值和异常分派。 栈帧随着方法的调用而创建,随着方法结束而销毁——无论方法是正常完成还是异常完成(抛出了在方法内未被捕获的异常)都算作方法结束。栈帧的存储空间由创建它的线程分配在java虚拟机栈之中,每一个栈帧都有自己的本地变量表和指向当前方法所属的类的运行时常量池的...

2018-11-05 10:18:50 169

原创 java虚拟机结构(概览二)

java虚拟机结构(概览二)1、运行时数据区java虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机的启动而创建,随着虚拟机退出而销毁。另外一些则是与线程一一对应的,这些与线程对应的数据区域会随着线程开始和结束而创建和销毁。1.1、pc寄存器java虚拟机可以支持多条线程同时执行,每一条java虚拟机线程都有自己的pc(program counter)寄...

2018-11-04 11:10:50 151

原创 java虚拟机结构(概览一)

java虚拟机结构(概览一)1、 class文件格式编译后被java虚拟机所执行的代码使用了一种平台中立(不依赖于特定硬件及操作系统)的 二进制格式来表示,并且经常(但非绝对)以文件的形式存储,因此这种格式称为class文件格式。class文件格式中精确地定义了类和接口的表示形式,例如字节序(byte ordering)。 这种class文件格式是java能够跨平台的原因和保证2、 数...

2018-11-03 11:16:31 178

原创 华为优招面经(已拿offer)

华为优招面经(已拿offer)找工作那些事俗话说金九银十,然而在现在这句话往往有些落后了,国内一二线互联网公司,如阿里、腾讯、百度、网易、字节跳动、美团还有不是纯粹的互联网公司的华为这些,早在八月份乃至七月份就已经开始他们的秋招。也就是我们所说的提前批,内推,而其中的某些公司,在八月份就已经截止的网上投递。。。所以,到现在才后知后觉的同学们要开始着急了。诚然,现在正是校招旺季,很...

2018-09-17 19:47:17 20798 1

原创 morris遍历详解(实现树的前中后序遍历)

morris遍历详解(实现树的前中后序遍历)morris遍历介绍morris遍历是二叉树遍历算法的至强算法,不同于递归,非递归(栈实现)的空间复杂度,morris遍历可以将非递归遍历中的树的深度的空间开销,降为O(1)。从而实现时间复杂度为O(n),而空间复杂度为O(1)的精妙算法。morris遍历利用的是树的叶节点左右孩子为空,这一特性来实现空间开销的极度缩减。morris遍历的...

2018-08-15 08:18:01 2731

原创 java之动态代理

java之动态代理代理基础代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式,即通过代理对象访问目标对象。这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.。代理分为三种:静态代理、动态代理、Cglib代理本文将要介绍的就是动态代理。动态代理动态代理的特点1、代理对象:不需要实现接口2、代理对象的生成,是利用JD...

2018-08-12 20:28:01 135

原创 java之静态代理

java之静态代理代理基础代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式,即通过代理对象访问目标对象。这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.。代理分为三种:静态代理、动态代理、Cglib代理本文将要介绍的就是静态代理。静态代理静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或...

2018-08-12 20:26:57 177

原创 java之反射详解

java之反射详解反射概述所谓反射,就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能就叫做java的反射机制。反射的使用条件是必须先得到代表字节码的Class类。当我们new一个类时,java就会加载这个类的.class文件,也就是jvm会在本地磁盘中查找.class...

2018-08-10 15:54:36 232

原创 java之网络编程UDP篇

java之网络编程UDP篇UDP介绍UDP(user datagram protocol)用户数据报协议,传输层协议。tcp和udp的区别:Tcp是面向连接的,udp是无连接的;Tcp是可靠的,udp是不可靠的;Tcp只支持点对点通信,udp支持一对一,一对多,多对多的通信模式;Tcp是面向字节流的,udp是面向报文的;Tcp有拥塞控制机制;udp没有拥塞控制,适合媒体通...

2018-08-08 09:45:59 3753

原创 Java之网络编程TCP篇

Java之网络编程TCP篇TCP简介TCP(transmission control protocol)传输控制协议,属于传输层协议,是一种可靠的数据连接,面向连接,面向字节流,只支持点对点通信,拥有拥塞控制机制。TCP的三次握手与四次挥手三次握手,简单来说可以这样解释:我要和你建立连接,你真的要和我建立连接吗,我真的要和你建立连接,成功。具体而言:第一次握手:client将...

2018-08-07 11:43:42 249

原创 数据库之代数表达式

数据库之代数表达式基础知识介绍关系模型简述:形象的说,一个关系(relation)就是一张表(table),关系模型就是处理table的,它由三个部分组成:描述DB各种数据的基本结构形式(table/relation)描述table与table之间所可能发生的的各种操作(关系运算)描述这些操作所应遵循的约束条件(完整性约束)关系模型三要素基本结构:relation/ta...

2018-07-29 22:47:43 4269

原创 Manacher算法详解

Manacher算法详解Manacher算法是用来求最长回文长度的一个算法,不同于暴力方法的O(n*n)的时间复杂度,manacher算法可以达到O(n)是时间复杂度。对于暴力求解一个字符串中最长的回文长度,也是有着技巧的,因为要考虑字符串为奇数偶数两种情况,所以暴力求解一般需要对字符串做一个优化,即是给每个字符之间插入一个标志符。例如对于字符串str1 : abcdcbeee假如...

2018-07-27 10:47:54 1056

原创 KMP算法详解

KMP算法详解KMP算法就是一种字符串匹配算法,对于给定的两个字符串,str1与str2,查询str1中是否包含str2。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。在这个算法中,主要采用的一种思想是利用一个额外的next数组,来记录str2中每个字符的相同最长前缀和后缀,从而来利用优化匹配速度。例如对于str1:ababababab...

2018-07-26 18:00:08 362

原创 数据库基础知识(一)

数据库基础知识(一)表一张表(表又称为关系)的构成:表名、表标题(格式)、表内容表内容可分为行与列:行/元组/记录(row/tuple/record)列/字段/属性/数据项(column/field/attribute/data item)Table中描述了一批相互有关联关系的数据 -> 关系数据库系统数据库系统是一个工作环境,是一个集合,它的构成如下:1...

2018-07-25 22:51:35 320

原创 并查集(java)

并查集(java)给定两个元素,已知这个两个元素位于两个集合中,如何判断这两个元素是否处于同一集合中,如果不处于,则合并这两个元素位于的集合,要求时间复杂度尽可能小。如何解这个问题呢,根据合并和查找这两个特点,我们很好相处两种java的集合类,一种是list,一种是set如果采用list来做,如果想要查询这两个元素是否位于同一集合,则必须遍历这两个list中的一个,如果发现在元素a所集...

2018-07-21 15:33:33 1068

原创 java之多线程

java之多线程在前面的操作系统的进程和线程中,对线程已经做了一些详细的讲解,对于java中多线程实现,本文将再做一些介绍。线程的状态对于java中线程状态,我们可以用五状态模型来表示,分别为:创建,就绪,运行,阻塞,终止五态创建状态:JVM调用main()方法会创建一个主线程,主线程通过调用线程对象的start()方法启动一个子线程,新建的线程处于创建状态,当线程运行的各种条...

2018-07-20 10:17:53 145

原创 java之输入输出

java之输入输出介绍java的输入/输出,我们首先要了解流的基本概念,因为Java所有的I/O机制都是基于数据流进行输入/输出。输入/输出流流的基本概念流是一组有序的数据序列,java由数据流处理输入/输出。流的输入源可以是我们常见的键盘,也可以是文件,乃至网络,或者其他的数据源。流的分类所有的输入流类都是抽象类inputStream(字节输入流)或抽象类Reader...

2018-07-18 11:48:47 357

原创 java之异常

java之异常异常(exception)又称为例外、查错、为例对应着java运行错误处理机制,也就是说,我们把这种错误处理机制里面的对象就称为异常。1、基本写法Try{ 语句组}catch(Exception ex){ 异常处理语句组;}2、java中处理异常1、抛出(throws)异常2、运行时系统在调用栈中查找,从生成异常的的地方开始回溯,直至...

2018-07-17 15:46:39 146

原创 java之lambda表达式

lambda表达式lambda表达式是java 8中引入的一个新的特性, Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中。使用 Lambda 表达式可以使代码变的更加简洁紧凑。Lambda表达式(λexpression)的基本写法:(参数)->结果如(string s)-> s.length()如 x->x*x如 ()->{Syste...

2018-07-17 15:23:21 117

原创 java之内部类和匿名类

java之内部类和匿名类准确来说java的内部类具体可以细分成四大类:内部类、 static内部类、局部类、匿名类。由于其中最主要用到的是内部类和匿名类,所以标题就取这两个。当然,后文中四类都会有介绍。内部类内部类(inner class)是在其他类中的类。内部类的定义:将类的定义class xxxx{} 置入一个类的内部即可编译器生成xxxx$xxxx这样的class文件...

2018-07-16 19:33:08 251

原创 java之继承与多态

java之继承与多态1、继承子类继承父类的状态和行为可以修改父类的状态或重载父类的行为可以添加新的状态和行为Java支持单继承:一个类只能有父类。Java通过接口(interface)来间接实现多继承。 好处可以提高程序的抽象程度实现代码重用,可以提高开发效率和可维护性注意:所有的类都是通过直接或间接继承java.lang.Object得到的继承关系在UML图中,是用一种箭头来表示子类和父类的关系...

2018-07-15 15:43:08 587

原创 java之类与对象

java之类与对象前文我们简略介绍过类与对象的关系,对象是对客观事物的抽象,而类是对对象的抽象和归纳。对象是类的实例,类是对象的抽象(模板)一个类中包含两个要素:变量、方法1、java中变量的作用域有四个级别:类级、对象实例级、方法级和块级类级: 类级变量又称为全局变量或静态变量,需要使用static关键字修饰对象实例级:对象实例级变量就成员变量,实例化后才会分配内存空间,才能访问方法级:方...

2018-07-14 15:19:36 203

原创 java之语法基础

java语法基础1、java数据类型Java数据类型分为两大类1、基本数据类型(primitive types):数值型:整数类型(byte(1字节),short(2字节),int(4字节),long(8字节))、浮点类型(float、double)字符型(char(两个字节)采用unicode编码)布尔型(boolean)2、引用类型(reference types)类(class)、接...

2018-07-14 10:22:56 123

原创 分段分页

分段分页1、准备知识地址转换:又称为重定位,即是把逻辑地址转换成绝对地址。分为:静态重定位:在程序装入内存时进行地址转换(由装入程序执行,早期小型OS使用)动态重定位:才CPU执行程序时进行地址转换(从效率出发,依赖地址转换机构)存储保护:为避免主存中的多个进程相互干扰,必须对主存中的程序和数据进行保护。这一功能需软硬件协同完成,CPU检查是否允许访问,不允许则产生地址保护异常...

2018-07-13 20:06:44 1013

原创 java之基础概念

java复习之基础概念1、java的核心机制1、Java虚拟机JVM2、代码安全监测3、垃圾收集机制GCJava虚拟机JVM作用:读取并处理经过编译的字节码class文件注:这也是java能跨平台原因,java编译的class文件都相同,通过不同操作系统上的不同java虚拟机,再转换成适应平台的指令。java虚拟机规范定义了:指令集寄存器集类文件结构堆栈垃圾收集堆内存区域Java运行环...

2018-07-12 11:27:04 1097

原创 树的前中后序遍历(递归与非递归版)

树的前中后序遍历(递归与非递归版)对于二叉树而言,我们首先应当知晓的知识就是二叉树的遍历。首先,二叉树遍历有前中后三种遍历方法,在递归版中,前序遍历就是第一次遇到该节点就打印,中序遍历就是第二次遇到打印该节点,后续遍历就是第三次遇到该节点打印。递归实质是系统帮助我们压栈,保存现场信息,而非递归就需要我们自己来压栈。二叉树结构:   public static class Node{     ...

2018-07-11 21:22:35 206

原创 处理器调度

处理器调度处理器调度的目标是以满足系统目标(如响应时间、吞吐率、处理器效率)的方法,把进程分配到一个或多个处理器中执行。1、处理器调度的类型处理器调度有三个层次:长程调度:又称高级调度,作业调度,其决定是否能加入待执行的进程池中中程调度:又称中级调度,平衡负载调度,其决定加入部分或全部在内存中的进程集合中短程调度:又称低级调度,进程调度,其决定哪个可运行的进程将被处理器执行...

2018-07-11 11:34:59 1339

原创 进程和线程(二)

进程和线程(二)首先,线程的提出和实现是为了解决进程内部执行线索多样化的问题,也就是为了进一步提高并发度。对于进程而言,它是资源分配的基本单位,而线程是独立调度的基本单位。1、线程的分类线程分为两类,其一是内核级线程(kernel-level thread, kld),其二是用户级线程(user-level thread ult)。对于KLT,线程管理的所有工作都由OS来做;O...

2018-07-09 10:33:53 397

原创 进程和线程(一)

进程和线程(一)1、进程与进程状态进程,就是一个正在执行的程序,对于进程而言,它分为五个实体部分,分别是:1、(操作系统OS运行管理程序)数据结构P2、(运行程序的)内存代码C3、(运行程序的)内存数据D4、(运行程序的)通用寄存器R5、(OS控制程序执行的)程序状态字信息psw从概念上来说,进程可以基本分为7个状态:运行态:进程占有处理器运行就绪态:进程具...

2018-07-08 17:31:29 239

原创 数据结构之七大排序(代码)

数据结构之排序今天晚上复习数据结构的排序算法,花了一晚上手撸了七种排序算法:冒泡、选择、插入、shell、堆排序、归并排序、快速排序……现在已然是深夜十一点多,就姑且发个博客,贴上我所写的代码。对于每种排序的原理,由于实在想睡觉了,就不进行深入阐述,一切都在代码中。注意:本人代码都经过对数器验证,可以保证正确性~1、冒泡排序 /*   …………冒泡排序…………     ...

2018-07-04 23:22:22 507

原创 hbase之原理详解

1、hbase的架构首先我们介绍hbase的架构如图所示,hbase的最底层结构是基于hdfs的,它将自己的日志文件`hlog`,以及数据表`Region`存储在hdfs的datanode当中。而管理hbase的主要是zookeeper和master。其中,hbase主要依靠zookeeper管理,master仅仅负责当启动hbase时,分配区域到指定区域服务器。当hbase启动以后master几...

2018-07-01 10:05:08 367

实时日志采集处理系统

基于大数据,模拟web数据的产生,flume采集,将采集到的原始数据发送到kafka中,再通过spark Streaming传入hbase数据库中

2018-03-24

可戴便携式脑波采集成像专注度放松指数生成系统(脑波666)

本项目通过美国神念公司的一款能读取人体脑电波的蓝牙头带,通过蓝牙与手机连接,传输一系列的脑电波数据。在这基础上,我们将读取到的四种脑电波数据α脑波、β脑波、θ脑波以及δ脑波以实时动态折线图的形式展现出来,并且将使用者的专注度、放松指数通过不同的图片动态的展现出来。从而能让使用者直观的观测到自身的脑电波以及专注程度,放松程度。

2017-11-11

空空如也

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

TA关注的人

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