自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(175)
  • 资源 (4)
  • 收藏
  • 关注

原创 浅析几种常见Web攻击-DoS攻击、CSRF、XSS

常见的Web安全问题有DoS攻击、CSRF攻击、XSS漏洞等。本文将简单介绍一下这几种常见的工具方式。DoS攻击 DoS(Denial of Service),拒绝服务,顾名思义这种攻击是为了让服务器无法提供正常服务,最常见的DoS攻击是网络带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求无法通过。连通...

2020-01-16 13:51:38 1190

转载 APP测试流程和要点

APP与Web测试的异同 1、相同点:流程方面相同,都要经过计划,方案,测试分析,用例,环境搭建,测试执行,报告,总结等都要进行功能测试,性能测试,兼容性测试,安全测试,安装/升级/卸载测试2、不同点1:兼容性方面WEB的兼容性主要关注:服务器的操作系统,数据库的类型,客户端的操作系统,客户端的浏览器APP的兼容性主要关注:不同品牌及型号,操作系统类...

2019-10-21 23:22:36 1631 1

转载 APP测试之环境相关的测试

在实际项目中,有一些缺陷我发现是和App所处的运行环境相关的,所以设计测试的时候,要多考虑这些场景,比如: 干扰测试   收到电话、收到短信、收到通知栏消息、无电提示框弹出、第三方安全软件告警弹出。 权限测试   一些用户在实际使用App的时候回有意识阻止某些功能。例如有的用户感觉让某个App访问电话本或者相册可能泄漏隐私,就在手机中设置了禁止了该App访问相册的权限,禁止使用...

2019-10-21 23:12:10 598

原创 unittest断言

unittest框架的TestCase类提供了一些常用方法用于测试结果的判断方法 检查 assertEqual(a, b) a ==b assertNotEqual(a, b) a !=b assertTrue(x) bool(x) is True assertFalse(x) Bool(x) is Fals...

2019-09-28 14:34:43 397

原创 JavaRandom函数介绍

Java中存在两种Random函数:一.java.lang.Math.RandomRandom()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。阅读Math类的源代码可以发现,Math类中的random方法就是直接调用Random类中的nextDouble方法实现的。...

2019-03-14 14:54:50 8944

转载 Java集合-fail-fast机制

fail-fast简介ail-fast 机制是java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了;那么线程A访问集合时,就会抛出ConcurrentModificationException异常,产生fail-fast事...

2019-03-04 23:10:51 344

转载 Java集合-Iterator和Enumeration比较

Iterator和Enumeration区别在Java集合中,我们通常都通过 “Iterator(迭代器)” 或 “Enumeration(枚举类)” 去遍历集合。今天,我们就一起学习一下它们之间到底有什么区别。我们先看看 Enumeration.java 和 Iterator.java的源码,再说它们的区别。Enumeration是一个接口,它的源码如下:package jav...

2019-03-04 22:56:34 127

转载 Java集合-TreeSet

TreeSet介绍TreeSet简介TreeSet 是一个有序的集合,它的作用是提供有序的Set集合。它继承于AbstractSet抽象类,实现了NavigableSet<E>, Cloneable, java.io.Serializable接口。TreeSet 继承于AbstractSet,所以它是一个Set集合,具有Set的属性和方法。TreeSet 实现了Naviga...

2019-03-04 22:52:53 269

转载 Java集合-HashSet

HashSet介绍HashSet 简介HashSet 是一个没有重复元素的集合。它是由HashMap实现的,不保证元素的顺序,而且HashSet允许使用 null 元素。HashSet是非同步的。如果多个线程同时访问一个哈希 set,而其中至少一个线程修改了该 set,那么它必须 保持外部同步。这通常是通过对自然封装该 set 的对象执行同步操作来完成的。如果不存在这样的对象,则应该使...

2019-03-04 22:45:34 139

转载 Java集合-Set架构

Set的实现类是基于Map来实现的(HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的)。首先,我们看看Set架构。(01) Set 是继承于Collection的接口。它是一个不允许有重复元素的集合。(02) AbstractSet 是一个抽象类,它继承于AbstractCollection,AbstractCollection实现了Set中的绝大部...

2019-03-04 22:37:38 166

转载 Java集合-Map总结

我们首先再看一下Map的框架图。Map概括(01) Map 是“键值对”映射的抽象接口。(02) AbstractMap 实现了Map中的绝大部分函数接口。它减少了“Map的实现类”的重复编码。(03) SortedMap 有序的“键值对”映射接口。(04) NavigableMap 是继承于SortedMap的,支持导航函数的接口。(05) HashMap, Hashtabl...

2019-03-04 22:32:02 169

转载 Java集合-WeakHashMap

WeakHashMap介绍WeakHashMap简介 WeakHashMap 继承于AbstractMap,实现了Map接口。 和HashMap一样,WeakHashMap 也是一个散列表,它存储的内容也是键值对(key-value)映射,而且键和值都可以是null。 不过WeakHashMap的键是“弱键”。在 WeakHashMap 中,当某个键不再正常使用时,会被...

2019-03-04 22:20:38 129

转载 Java集合-TreeMap

TreeMap介绍TreeMap 简介TreeMap 是一个有序的key-value集合,它是通过红黑树实现的。TreeMap继承于AbstractMap,所以它是一个Map,即一个key-value集合。TreeMap 实现了NavigableMap接口,意味着它支持一系列的导航方法。比如返回有序的key集合。TreeMap 实现了Cloneable接口,意味着它能被克隆。Tr...

2019-03-03 22:50:10 242

转载 Java集合-Hashtable

Hashtable介绍Hashtable 简介和HashMap一样,Hashtable 也是一个散列表,它存储的内容是键值对(key-value)映射。Hashtable继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。Hashtable 的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为null。此外...

2019-03-03 22:16:46 118

转载 Java集合-HashMap

HashMap介绍HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。HashMap 的实例有两...

2019-03-03 21:53:11 155

转载 Java集合-Map架构

首先,我们看看Map架构。如上图:(01) Map 是映射接口,Map中存储的内容是键值对(key-value)。(02) AbstractMap 是继承于Map的抽象类,它实现了Map中的大部分API。其它Map的实现类可以通过继承AbstractMap来减少重复编码。(03) SortedMap 是继承于Map的接口。SortedMap中的内容是排序的键值对,排序的方法是通过比较...

2019-03-02 18:34:02 195

转载 Java集合-List总结

List概括先回顾一下List的框架图(01)List 是一个接口,它继承于Collection的接口。它代表着有序的队列。(02) AbstractList 是一个抽象类,它继承于AbstractCollection。AbstractList实现List接口中除size()、get(int location)之外的函数。(03) AbstractSequentialList 是...

2019-03-02 17:29:08 149

转载 Java集合-Stack

Stack介绍Stack简介Stack是栈。它的特性是:先进后出(FILO, First In Last Out)。java工具包中的Stack是继承于Vector(矢量队列)的,由于Vector是通过数组实现的,这就意味着,Stack也是通过数组实现的,而非链表。当然,我们也可以将LinkedList当作栈来使用。java.lang.Object↳ java.util...

2019-03-02 16:47:39 226

转载 Java集合-Vector

Vector介绍Vector简介Vector 是矢量队列,它是JDK1.0版本添加的类。继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口。Vector 继承了AbstractList,实现了List;所以,它是一个队列,支持相关的添加、删除、修改、遍历等功能。Vector 实现了RandmoAccess接口,即提供了随机访问功能。...

2019-03-02 15:25:47 189

转载 Java集合-LinkedList

LinkedList介绍LinkedList简介LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList 实现 List 接口,能对它进行队列操作。LinkedList 实现 Deque 接口,即能将LinkedList当作双端队列使用。LinkedList 实现了Cloneable接口...

2019-03-02 14:55:43 143

原创 JVM调优监控常用工具

命令行工具jps(JVM Process Status Tool),类似于Linux的ps命令,用于列举正在运行的虚拟机进程,并显示虚拟机执行主类(main函数所在的类)名称以及这些进程的本地虚拟机唯一ID(LVMID local virtual machine Identifier)。jps [-q] [-mlvV] [<hostid>]-q:只输出LVMID,省略...

2019-02-28 22:46:44 1956

转载 Tumbling Windows和Sliding Windows区别与联系

在流系统中通常会经常使用到Windows来统计一定范围的数据,比如按照固定时间、按个数等统计。一般会存在两种类型的Windows:Tumbling Windows vs Sliding Windows,它们很容易被初学者混淆,那么Tumbling Windows vs Sliding Windows之间到底有啥区别与联系呢?这就是本文将要展开的。  Tumbling的中文意思是摔跤,翻跟头,翻...

2019-02-09 00:01:11 1718

转载 Storm,Spark和Flink三种流式大数据处理框架对比

storm、spark streaming、flink都是开源的分布式系统,具有低延迟、可扩展和容错性诸多优点,允许你在运行数据流代码时,将任务分配到一系列具有容错能力的计算机上并行运行,都提供了简单的API来简化底层实现的复杂程度。Apache Storm在Storm中,先要设计一个用于实时计算的图状结构,我们称之为拓扑(topology)。这个拓扑将会被提交给集群,由集群中的主控节点(...

2019-02-08 23:51:48 8654

转载 spark面试问题

1、spark中的RDD是什么,有哪些特性RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。  Dataset:就是一个集合,用于存放数据的 Distributed:分布式,可以并行在集群计算 Resilient:表示弹性的  弹性表示  1、RDD中的...

2019-02-08 23:19:45 241

转载 Hadoop/Spark的shuffle面试题

由于shuffle阶段涉及磁盘的读写和网络IO,因此shuffle性能的高低直接影响整个程序的性能和吞吐量。 1. spark的shuffle 是什么?过程? 怎么调优?在MapReduce过程中需要将各个节点上的同一类数据汇集到一个节点进行计算。把这些分布在不同节点的数据按照一定规则聚集到一起的过程,就称之为shuffle(Shuffle是Map和Reduce之间的操作,Shuffle 过...

2019-02-08 23:16:33 1713

转载 JVM性能调优总结

1.堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。典型设置:java-Xmx3550m -Xms3550m -Xmn2g-Xss128k -Xmx3550m:设置JVM最大可用内存为3550M。 -Xms355...

2019-02-08 22:53:16 97

原创 2018年4月份,阿里最新的java程序员面试题目

目录 技术一面(23问) 技术二面(3大块) 性能优化(21点) 项目实战(34块) JAVA方向技术考察点(15点) JAVA开发技术面试中可能问到的问题(17问)   阿里技术面试1 1.Java IO流的层次结构?2.请说出常用的异常类型?3.SKU的全称是什么,SKU与SPU的区别及关系?4.FileI...

2019-02-08 22:51:54 194

原创 Hadoop/Spark相关面试问题总结

面试回来之后把其中比较重要的问题记了下来写了个总结: (答案在后面)1、简答说一下hadoop的map-reduce编程模型2、hadoop的TextInputFormat作用是什么,如何自定义实现3、hadoop和spark的都是并行计算,那么他们有什么相同和区别4、为什么要用flume导入hdfs,hdfs的构架是怎样的5、map-reduce程序运行的时候会有什么比较...

2019-02-08 22:46:28 129

原创 spark面试题(一)

1、driver的功能是什么?1)一个Spark作业运行时包括一个Driver进程,也是作业的主进程,具有main函数,并且有SparkContext的实例,是程序的人口点;2)功能:负责向集群申请资源,向master注册信息,负责了作业的调度,,负责作业的解析、生成Stage并调度Task到Executor上。包括DAGScheduler,TaskScheduler。 2、spa...

2019-02-08 22:41:53 271

原创 Flink学习-分布式运行环境

目录任务和算子链Job Managers, Task Managers, ClientsTask Slots and ResourcesState BackendsSavepoints任务和算子链分布式计算中,Flink会将算子(operator) 的子task链式组成tasks,每个task由一个线程执行。把算子链化为tasks是一个非常好的优化:它减少了线程之间的通...

2019-02-07 15:37:02 266

原创 Flink学习-Flink编程模型

目录Flink技术栈编程模型抽象级别程序和数据流并行数据流窗口时间容错检查点流上的批处理Flink是一款分布式的计算引擎,它可以用来做批处理,即处理静态的数据集、历史的数据集;也可以用来做流处理,即实时地处理一些实时数据流,实时地产生数据的结果;也可以用来做一些基于事件的应用。总而言之,Flink是一个Stateful Computations Over S...

2019-02-06 10:30:27 301

转载 人工智能(AI)、机器学习(ML)和深度学习(DL)

三个概念的介绍和解释:1、人工智能(英语:Artificial Intelligence, AI):是指由人工制造出来的系统所表现出来的智能。通常人工智能是指通过普通电脑实现的智能。人工智能的研究可以分为几个技术问题。其分支领域主要集中在解决具体问题,其中之一是,如何使用各种不同的工具完成特定的应用程序。AI的核心问题包括推理、知识、规划、学习、交流、感知、移动和操作物体的能力等。目前有大...

2018-12-26 22:47:28 1018

转载 一篇文章讲清楚人工智能、机器学习和深度学习的区别和联系

人工智能:从概念提出到走向繁荣 1956年,几个计算机科学家相聚在达特茅斯会议,提出了“人工智能”的概念,梦想着用当时刚刚出现的计算机来构造复杂的、拥有与人类智慧同样本质特性的机器。其后,人工智能就一直萦绕于人们的脑海之中,并在科研实验室中慢慢孵化。之后的几十年,人工智能一直在两极反转,或被称作人类文明耀眼未来的预言,或被当成技术疯子的狂想扔到垃圾堆里。直到2012年之前,这两种声音还在同...

2018-12-26 22:47:15 227

转载 HBase笔记(五)-数据写入流程

HBase默认适用于写多读少的应用,正是依赖于它相当出色的写入性能:一个100台RS的集群可以轻松地支撑每天10T的写入量。当然,为了支持更高吞吐量的写入,HBase还在不断地进行优化和修正,这篇文章结合0.98版本的源码全面地分析HBase的写入流程,全文分为三个部分,第一部分介绍客户端的写入流程,第二部分介绍服务器端的写入流程,最后再重点分析WAL的工作原理。客户端流程解析(1)用户提...

2018-11-18 21:40:42 242

转载 HBase笔记(四)-数据读取过程(二)

简单地回顾一下scan的整个流程,如下图所示:上图是一个简单的示意图,本文将会关注于隐藏在这个示意图中的核心细节,这里笔者挑出了其中几个比较重要的问题来说明。1. 常说HBase数据读取要读Memstore、HFile和Blockcache,为什么上面Scanner只有StoreFileScanner和MemstoreScanner两种?没有BlockcacheScanner?HBas...

2018-11-18 21:39:40 1337

转载 HBase笔记(三)-数据读取过程(一)

HBase读数据是一个更加复杂的操作流程,这主要基于两个方面的原因:其一是因为整个HBase存储引擎基于LSM-Like树实现,因此一次范围查询可能会涉及多个分片、多块缓存甚至多个数据存储文件;其二是因为HBase中更新操作以及删除操作实现都很简单,更新操作并没有更新原有数据,而是使用时间戳属性实现了多版本。删除操作也并没有真正删除原有数据,只是插入了一条打上”deleted”标签的数据,而真正的...

2018-11-18 21:35:56 324

原创 HBase笔记(二)-系统架构

下面是HBase的系统架构从上图可以看出:Client访问hbase上的数据的过程并不需要Master参与(寻址访问Zookeeper和Region Server,数据读写访问Region Server)。HMaster仅仅维护Table和Region的元数据信息,Table的元数据信息保存在Zookeeper上,负载很低。HRegion Server存取一个子表时,会创建一个HRegio...

2018-11-14 21:47:04 166

原创 HBase笔记(一)-入门介绍

一、什么是HBaseHBase(Hadoop database)是一种构建在HDFS之上的分布式、面向列的和提供高可靠性、高性能、可伸缩、实时读写的开源数据库系统,在需要实时读写、随机访问超大规模数据集时,可以使用HBase。HBase的技术来源于Google论文”Bigtable:一个结构化数据的分布式存储系统”。HBase 是Bigtable 的开源实现,它利用Hadoop HDFS ...

2018-11-07 21:19:16 562

转载 字节与字符简介

(一)“字节”的定义字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位。(二)“字符”的定义字符是指计算机中使用的文字和符号,比如1、2、3、A、B、C、~!·#¥%……—*()——+、等等。(三)“字节”与“字符”它们完全不是一个位面的概念,所以两者之间没有“区别”这个说法。不同编码里,字符和字节的对应关系不同:①ASCII码...

2018-09-30 18:19:16 821

原创 用户线程和守护线程

在Java中线程分为两类:用户线程(User thread)和守护线程(Daemon thread)。守护进程(Daemon)是运行在后台的一种特殊进程。它的作用是为其他线程的运行提供便利服务,它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。也就是说守护线程不依赖于终端,但是依赖于系统,与系统“同生共死”。因此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护...

2018-07-01 21:19:48 927

Black hat Python 源码

Black hat Pyton 书对应的源代码,包括了所有的章节。

2018-10-09

Python 编程思维导图

Python 编程核心整理的思维导图,包含了python基本的知识。

2018-10-09

Python写爬虫思维导图

总结了利用Python 编写爬虫的常见方法,并整理成思维导图

2018-06-28

空空如也

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

TA关注的人

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