自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hive的udf函数使用

(注:hive的相关学习视频慕课网https://www.imooc.com/learn/387 和https://www.imooc.com/video/8030,hadoop的相关学习视频https://www.imooc.com/learn/391和 https://www.imooc.com/learn/8901.编写类继承UDF类(需要导入hive的相关jar包)2.重写evalua...

2019-06-14 15:16:08 695

原创 Windows 64位系统上搭建Hadoop伪分布式环境

1.安装jdk,设置环境变量2.下载hadoop2.7.7http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz3.解压hadoop2.7.7到文件夹下(用好压软件解压)4.下载hadooponwindows-master(已经上传至百度网盘)使用hadooponwindows-mast...

2019-06-10 16:35:08 1952 3

原创 hadoop idea本地开发环境搭建

1.新建java工程用于开发Mapper和Reducer2.导入hadoop的依赖包,依赖包在hadoop解压目录下的share/hadoop可以找到,添加成功如图所示:3.添加Artifacts-》添加一个空的JAR包添加Module Output选择当前目录3.新建ApplicationMain class中输入org.apache.hadoop.util.RunJarW...

2019-06-10 15:40:21 5319 2

翻译 分布式Raft协议

http://thesecretlivesofdata.com/raft/对于一个节点,就一个值达成一致意见很容易,那如果我们有多个节点,该如何达成共识呢?这就是分布式共识的问题。Raft是实现分布式共识的协议。protocal overview节点可以出现以下三种状态之一,the Follower State,the Candidate State,the Leader State。所有...

2019-04-08 20:26:13 655

原创 常见排序算法实现

冒泡排序package sort;/** * 冒泡排序: * * 1.比较相邻的元素。如果第一个比第二个大,就交换它们两个; * 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数; * 3.针对所有的元素重复以上的步骤,除了最后一个; * 4.重复步骤1~3,直到排序完成。 * * 最佳情况:T(n) = O(n) 最差...

2019-03-20 15:55:25 133

原创 Java并发编程的艺术——并发编程的挑战

并发编程的目的是为了让程序运行的更快。在进行并发编程时,如果希望通过多线程执行任务让程序运行的更快,会面临非常多的挑战,比如上下文切换的问题、死锁的问题,以及受限于硬件和软件的资源限制问题。上下文切换单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务,在切换前会保存上一个任务的...

2019-03-20 10:37:15 131

原创 多线程相关面试题理解

什么是线程?它与进程有什么区别?为什么要使用多线程1.线程是指程序在执行过程中,能够执行程序代码的一个执行单元。2.进程是指一段正在执行的程序。3.线程是程序执行的最小单元。4.一个进程可以拥有多个线程,各个线程之间共享程序的内存空间(代码段,数据段和堆空间)及一些进程级的资源,但是各个线程拥有自己的栈空间。使用多线程的好处:1)使用多线程可以减少程序的响应时间。单线程不同操作之间都有...

2019-03-12 14:50:09 240

转载 计算机网络常考面试题

1.OSI,TCP/IP,五层协议的体系结构,以及各层协议1)OSI分层:应用层,表示层,会话层,运输层,网络层,数据链路层,物理层2)五层协议:应用层,运输层,网络层,数据联络层,物理层3)TCP/IP分层(四层):应用层,运输层,网际层,网络接口层每一层的作用如下:七层协议其中表示层和会话层用途如下:表示层:信息的语法、语义以及它们的关联,如加密解密、转换翻译、压缩解压缩;会...

2019-03-07 22:18:34 283

原创 关于volatile的理解

http://www.importnew.com/24082.html 这篇文章介绍的很详细,可以参考

2019-02-27 16:33:23 137

原创 jvm之java内存模型

Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。主内存和工作内存Java内存模型的主要目的是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。注意一下,此处的变量并不包括局部变量与方法参数,因为它们是线程私有的...

2019-02-27 15:25:27 159

原创 jvm之内存分配策略

对象内存主要分配在新生代Eden区,如果启用了本地线程分配缓冲, 则优先在TLAB上分配,少数情况能会直接分配在老年代,或被拆分成标量类型在栈上分配(JIT优化)。分配的规则并不是百分百固定,细节主要取决于垃圾收集器组合,以及JVM内存相关的参数对象优先在Eden分配大多数情况下,对象在新生代Eden区中分配。当Eden区没有足够空间进行分配时,虚拟机将发起一次Minor GC。将Eden区和...

2019-02-22 15:56:06 127

原创 jvm之垃圾收集算法

概述jvm中。程序计数器、虚拟机栈、本地方法栈3个区域随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理。因此,内存垃圾回收主要集中于Java堆和方法区中,在程序运行期间,这部分内存的分配和使用都是动态的。对象存活判断1.引用计数法:给对象添加一个引用计数器,每当有一个地方引用他时,计数器值加1;当引用失效时,计数器减1;任何时刻计数器为0的对象就是不可能再...

2019-02-22 15:02:25 97

原创 jvm之对象的创建过程

下图是java对象的创建过程1)类加载检查虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否已被加载过、解析和初始化过。如果没有,那必须先执行相应的类加载过程。2)分配内存在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需的内存大小在类加载完成后便可确定,为对象分配空间的任务等同于把一块确定大小的...

2019-02-20 16:44:07 219

原创 HashCode()与equals()

https://blog.csdn.net/lijiecao0226/article/details/24609559写的很好,必看!

2018-09-12 16:11:25 135

原创 HashMap的工作原理

HashMap的工作原理简单总结: HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,然后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。HashMap是在bucket中储存键对象和值对象,...

2018-09-11 14:36:41 155

转载 HashMap和Hashtable的区别

HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java...

2018-09-11 14:19:50 231

原创 spring boot设置定时任务

使用定时任务完成一些业务逻辑,比如天气接口的数据获取,定时发送短信,邮件。以及商城中每天用户的限额,定时自动收货等等。定时器在项目中是常常会使用到的一个手段。定时任务在Spring Boot中的集成在启动类中加入开启定时任务的注解: 在SpringBoot中使用定时任务相当的简单。首先,我们在启动类中加入@EnableScheduling来开启定时任务。 之后我们直接创建实现定...

2018-09-11 10:59:28 33901 4

原创 git使用总结

1、创建版本库 初始化一个Git仓库,使用git init命令。 添加文件到Git仓库,分两步: 使用命令git add ,注意,可反复多次使用,添加多个文件; 使用命令git commit -m ,完成。2、版本回退 Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向append GPL: 改为指向ad...

2018-09-11 10:27:29 117

翻译 堆和栈

在Java中,数组存储对象的原始值(int,char,…)或引用(也称为指针)。使用“new”创建对象时,会在堆中分配一个内存空间并返回一个引用。对于数组也是如此,因为数组是Java中的对象。1.单维数组int arr[] = new int [3];int[] arr 只是对三个整数数组的引用。如果创建一个包含10个整数的数组,则他是相同的 - 分配一个数组并返回一个引用。 ...

2018-09-11 10:13:02 141

翻译 字符串不变性及字符串的一些面试题

1.声明一个字符串String s = "abcd";变量s存储字符串对象的引用,如下所示。 2.将一个字符串变量分配给另一个字符串变量String s2 = s;3.Concat字符串当我们将字符串“ef”连接到s时s = s.concat("ef");s存储新创建的字符串对象的引用,如下所示。 总之,一旦在内存(堆)中创建了一个字符串,就...

2018-09-11 09:09:03 305

空空如也

空空如也

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

TA关注的人

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