自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

数据创造价值

不断的用事实验证理论。

  • 博客(21)
  • 收藏
  • 关注

转载 HashSet和HashMap比较

HashMap和HashSet的区别是Java面试中最常被问到的问题。如果没有涉及到Collection框架以及多线程的面试,可以说是不完整。而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整。HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合。collection框架有自己的接口和实现,主要分为Set接口,Lis

2016-06-02 14:55:47 397

转载 ThreadLocal的使用

用法一:在关联数据类中创建private static ThreadLocalThreaLocal的JDK文档中说明:ThreadLocal instances are typically private static fields in classes that wish to associate state with a thread。如果我们希望通过某个类将状态(例如用户ID、事务ID)

2016-06-02 14:49:06 329

原创 常用算法的时间复杂度汇总

线性结构查询o(1)已排序二分法o(log2^n)未排序的二分法o(n^2)+o(log2^2)针对无序海量数据的定点查询推荐使用hashtable,dicinition,hashmaphashtable的稳定时间复杂度是o(1)

2016-06-02 14:48:36 1225

转载 一致性hash算法与java实现

一致性哈希算法是分布式系统中常用的算法。比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所有的数据映射都无效了,如果是持久化存储则要做数据迁移,如果是分布式缓存,则其他缓存就失效了。    因此,引入了一致性哈希算法: 

2016-06-02 13:31:48 205

转载 面试题汇总。

1、如何在一个单链表中快速找到中间点。

2016-06-02 11:27:18 209

原创 1、线性表

线性表:由0个或者多个数据元素组成的有限序列。属于1vs1的关系强调:1.首先是序列,元素之间有先后顺序。2.第一个元素无前驱,最后一个无后继。其它元素都有且一个前驱和后继。3.线性表是有限的,事实上,无论计算机发展到多强大,它处理的元素都是有限的。数据类型:指一组性质相同的值的集合以及定义在此集合上的一些操作的总称。例如:很多编程语言的整形,浮点型,字符型 这些就

2016-06-02 11:17:47 293

原创 22.使用MAT对Dump文件进行分析实战

下载mat http://www.eclipse.org/mat/downloads.php设置eclipse运行参数-server -Xms1024m -Xmx1024m -Xmn384m -XX:+UseParallelOldGC -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDateStamps -XX:+P

2016-06-01 16:47:06 1658

原创 21.JVM中G1收集器解密

可以想CMS一样,GC操作与应用的线程一起并发执行。紧凑的空闲内存区间且没有很长的GC停顿时间。需要可预测的gc暂停耗时,不牺牲太多的吞吐量性能,启动后不需要启动更大的java heap。G1 heap 空间分配:完全重新分配了原有的heap 区域。阶段:初始标记并发标记再次标记清理适用场景:full gc 次数太频繁或者时间太长。对象分配的频率

2016-06-01 15:13:00 477

原创 20.JVM中CMS收集器

CMS垃圾回收的作用XX:+UseConcMarkSweepGC 启动cms的垃圾回收机制CMS-initial-mark  初始标记阶段,此时会短暂的stop the world,标记出可到达的对象。CMS-concurrent-mark  并发标记阶段,主要是基于上一阶段的成功,找出不可到达的对象。CMS-remark  再次标记阶段。stop the world ,避免第二阶

2016-06-01 14:20:38 214

原创 19.JVM中Serial收集器、ParNew收集器、Parallel收集器解析

1.serial收集器单线程的方式,串行即程序停止。分为serial old(采用标记压缩算法,一般用于收集老年带)和serial.因为是单线程没有线程切换带来的资源开销2.parNew收集器多线程,并行。采用复制算法和stop the world 。单线程时用serial,如果是多cpu的机器可以用parNew方式。3.parallel收集器吞吐量优先的收集器,可以设置吞吐量

2016-06-01 14:06:27 591

原创 18.JVM垃圾回收器串行、并行、并发垃圾回收器概述

1.JVM的不同垃圾回收器2.串行,并行,并发垃圾回收器概述串行:jvm GC时存在一个线程并行:jvm gc时有多个线程,用多个cpu或者core同时执行垃圾回收,优点是提高了吞吐量。但是由于线程切换占用了时间,所有并行并不一定比串行好。两者都基于stop the world。并发:不用停止任务,可以在gc时,任务同时运行。由此提高了效率,增加了用户体验。

2016-06-01 13:28:35 499

原创 17.JVM垃圾回收分代收集算法

所谓分代算法其实都是基于3中基本gc算法的,只不过根据实际情况选用不同的算法1.分带GC在新生代的算法新生代是new出来或者gc次数没有达到阙值的对象,是瞬态的。且eden和fromto比例约为8:1。eden的对象到to中,to中的对象进入from中。from本身的进行+1,达到阙值进入old。 2.分带GC在老年代的算法

2016-06-01 11:17:53 325

原创 16.三种基本的GC算法基石

1.GC标记、清除算法由于内存中对象构成一个树,当内存耗尽时,程序停止(如果不停止新new对象时标记出错)。此时程序对对象进行标记和清除。缺点:停止程序运行,降低用户体验。且释放的内存空间不连续。2.GC的复制算法先找出活动对象存储到空白区域,然后把原来的对象空间清空。缺点:虽然活动空间连续,但是耗内存,且对象空间满的情况下,复制只是单纯的耗内存

2016-06-01 11:13:53 290

原创 15.GC时候的引用计数算法和根搜索算法(用于标示GC)

虽然GC有助于程序运行,但GC对程序本身而言是无用的,会消耗资源。1.GC时的计数引用对象一旦被使用或者引用,计数器会进行+1和-1操作,当为0时被标示为垃圾。此种标示方法的弊端在于已经死亡的对象如果存在相互引用,则会一直占用内存空间,不被回收。此时会导致内存泄漏。为了解决这个问题出现了根搜索算法。2.GC的根搜索算法所有的内存存活对象组成一个tree.包括stack中引用的对象,

2016-06-01 10:34:25 761

原创 14.Java对象内存逃逸技术

1.内存逃逸技术分析概念;指创建对象时,对象不存储在heap空间中,由此可以减少gc次数,减少gc压力。2.内存逃逸技术测试对象在方法中创建,并被外部对象引用,此时会发生内存逃逸,在大数据领域鼓励使用这种方式,可以减少oom的发生。

2016-06-01 10:32:24 692

原创 13.Java 8中JVM的MetaSpace

1.从permanent到metaspacejava8中采用metaspace可以避免permanent容易出现oom的问题。同时metaspace可以避免full gc。2.结构特点:1、使用C语言实现的native memory space 使用os的内存空间而不是jvm本身的内存空间;2、native memory space可以根据类加载的信息和情况在gc时

2016-06-01 10:07:27 340

原创 12.JVM的GC日志Full GC每个字段解释

2016-06-01 09:50:00 564

原创 4.spark hash shuffer 解析

第一:Hash shuffle第二:shuffle Pluggable第三:Sorted Shuffle第四:Shuffle 性能优化--------------------------------------------------------------------------------spark适合处理中小规模的数据?怎么理解?spark

2016-06-01 09:28:56 688

原创 3.RDD的创建

第一:RDD实战第二:RDD的transformation和Action-------------------------------------------RDD.scala(reduce(),map())sparkContext.scala(runJob())RDD的操作类型3种:transformation(获得算子),action(执行操作),controlle

2016-06-01 08:46:59 214

原创 2.Spark RDD相关知识介绍

第一:基于工作集合的应用抽象(中间的和曾经的)第二:RDD内幕解密第三:RDD思考-----------------------------------------基于工作集合的应用抽象特点:位置感知,容错,负载均衡基于数据集:从物理存储加载数据,操作数据,写入物理存储。缺点:不适合大量的迭代运算,交互查询,重点是基于数据流的方式,不能复用曾经的结果或者中间计算结果--

2016-06-01 08:40:45 214

原创 1.Spark内核执行流程

2016-06-01 08:29:25 214

空空如也

空空如也

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

TA关注的人

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