自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 哲学家就餐问题

本文对多线程中经典问题-哲学家就餐问题用Java语言描述,给出了三种常见的解决方法,实现了其中的两种。一、问题描述:在一个圆桌上,有n个哲学家,n只筷子,每个哲学家左右两边各返一只筷子。哲学家可以进行思考和吃饭,思考时,不获取筷子。吃饭时,必须同时获得左右两只筷子才能吃饭(先获取左边的再获取右边的)。二、Java实现哲学家就餐问题 实现Chopstick

2017-09-18 18:39:22 1128

原创 Linux命令提示符太长

在Linux环境下使用终端,命令前会有命令提示符,一般包括用户名、主机名、还有目录名。如果命令提示符占据绝大部分,留给我们输入命令的空间就有限,当然也可以换行,但是这不够直观。问题在我的终端里,我实际的命令是cat spark-defaults.conf.template | grep "spark",但是因为用户名、主机名和目录名占据了40%左右的空间,导致我的命令不能在一行完全输入,当...

2018-08-13 23:16:54 7867

原创 Java内部类

内部类可以分为三种,成员内部类、静态内部类、局部内部类成员内部类成员内部类是外部类的一个成员,成员内部类可以调用外部类的所有成员。举例 内部类的test方法,可以调用访问外部类的所有成员,包括成员变量、静态变量、成员方法、静态方法。因为成员内部类是外部类的一个成员,可以认为是把一些成员变量和成员方法提出来整合为一个类。内部类调用外部类的成员变量和方法,其实就是成员间互相访问,当然是可...

2018-07-08 17:27:52 369

原创 Java-Map用法简介

本文将对Map接口进行一些简单介绍,包括继承关系、常用方法,还有遍历,主要参考JavaAPI: http://docs.oracle.com/javase/8/docs/api/java/util/Map.html。如果想知道HashMap的原理、源码分析,请看我这篇博客https://blog.csdn.net/Bloddy/article/details/80501917〇、Java...

2018-05-29 20:54:02 367

原创 HashMap原理和源码分析

HashMap是Java Map子类中最常用的,接下来我将讲解HashMap的底层原理(建议先复习《数据结构》的散列表),会涉及到源码分析。一、数据保存HashMap是一个用于存储键值对的集合,每一个键值对也叫做Entry(在Map接口中定义)。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干,这个数组就是数据结构中的散列表,并且HashMap采用拉链法来...

2018-05-29 20:49:53 369

原创 Secondary NameNode作用

在讲解Secondary NameNode作用之前,先看下没有Secondary NameNode存在的问题。没有Secondary NameNode存在的问题NameNode主要是用来保存HDFS的元数据信息,比如命名空间信息,块信息等。主要通过以下两种文件来管理。fsimage - 它是在NameNode启动时对整个文件系统的快照 edit logs - 它是在NameNode启...

2018-05-29 15:50:37 2464

原创 Java对象初始化顺序

静态成员变量和静态代码块在构造函数前、父类初始化在子类前1.首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化 2.然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化 3.其次,初始化父类的普通成员变量和代码块,再执行父类的构造方法 4.最后,初始化子类的普通成员变量和代码块,再执行子类的构造方法 ...

2018-05-29 15:43:47 730

原创 单例模式

在项目开发过程中,有些类我们只需要一个对象,比如配置文件类,工具类,线程池,缓存池和日志对象等。使用单例模式就是我为了保证应用中某一个对象的实例有且只有一个。先放一个总结,后面一个个解释总结: 单例模式实现 是否线程安全 是否懒加载 是否防止反射构建 饿汉模式 是 否 否 懒汉模式(双重检测) 是 是 否 静态内部类...

2018-05-25 14:32:45 182

原创 布隆过滤器

Bloom Filter是HBASE用来优化读性能的手段,在讲解Hbase中Bloom Filter的应用前,我们先理解下Bloom Filter的原理。我们经常会去判断一个元素是否在一个集合中,当数据量比较小的时候,我们可以用Java的HashSet,Java的HashSet是创建一个散列数组,把原来的元素以某种规则映射到散列数组中特定的位置。但如果我们需要判断的元素个数非常大,会导致散列数...

2018-05-24 16:14:16 750

原创 常见算法

排序算法package DataStructureAndAlgorithm;import java.util.Arrays;public class SortTest { public static void main(String[] args) { int[] a = {1,2,3,4,5,6,7,8,9,0}; quickSort(a,...

2018-03-05 16:50:52 210

原创 Spark源码分析-3.依赖分析

上篇文章中,我们讲完了job层面的代码,最后引出了stage。再讲stage划分源码前,我们先看下stage划分原理和Dependency类。 stage的划分是根据宽窄依赖来的,遇到了宽依赖需要进行shuffle,各节点不能并行运行,而窄依赖的每个分区的计算可以并行。我们从两个角度解释下宽窄依赖。 1. 从子RDD来分析 (1)窄依赖:子RDD的每个分区依赖于常数个父分区(即与数据规模...

2018-02-12 11:29:53 299

原创 Spark源码分析-2.Job提交

在第一篇文章中提到了一次action操作会触发RDD的延迟计算,我们把这样的一次计算称作一个Job。我们看下一个job的提交过程。我们用最常见的collect举例。调用栈: 1. RDD.collect() 2. SparkContext.runJob() 3. DAGScheduler.runJob() 4. DAGScheduler.submitJob 5. DAGSchedul...

2018-02-11 21:12:16 247

原创 Spark源码分析-1.集群架构介绍和SparkContext源码分析

Spark源码分析-1.集群架构介绍和SparkContext源码分析在分析Spark源码之前,有必要把Spark的集群架构和SparkContext复习下,有助于后面对源码的理解。Spark集群架构本文的集群架构是建立在Standalone模式的,Yarn和Mesos类似Spark架构: 名词解释:Client:客户端进程,负责提交作业到Master。Client进...

2018-02-09 21:21:10 375

原创 Java自定义排序

本文主要介绍Java常用的排序方法:Arrays.sort()、Collections.sort()这两种方法的使用方法基本相同,不同的是Collections.sort()只能对对象容器排序,而Arrays.sort()只能对数组进行排序,数组可以是基本类型数组和对象数组。下面用Collection.sort()举例,Arrays.sort()类似。Collections.sort()有如下两种...

2017-09-03 11:23:41 1091

原创 Java进制转换

Java 十进制和N进制互相转换

2017-09-01 20:58:19 494

原创 Java Arrays用法简介

Java Arrays常用方法

2017-09-01 17:25:15 458

空空如也

空空如也

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

TA关注的人

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