自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Java 集合-Set接口和三个子类实现

Set一个不包含重复元素的 collection。无序且唯一。HashSetLinkedHashSetTreeSetHashSet是使用哈希表(hash table)实现的,其中的元素是无序的。HashSet的add、remove、contains方法 的时间复杂度为常量O(1)。TreeSet使用树形结构(算法书中的红黑树red-black tree)实现的。TreeSet中的元素是可排序的,但...

2018-05-29 18:01:56 261

转载 栈的java实现

昨天心血来潮用java实现了一下栈(Stack),在这分享一下。栈的概念栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈(push),它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈(pop),它是把栈顶元素删除掉,使其相邻的元素...

2018-05-29 14:54:06 3528

转载 类似队列的java实现

实现了栈后,索性又实现以下队列。本文主要介绍队列的定义、队列的java实现和队列的作用。队列的定义队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表,特点是“先进先出,后进后出”。队列的实现这里说一下,我这实现的和队列的定义其实不符合,只是遵从了先进先出的思想。为了防止出现“假溢出”的问题,...

2018-05-29 14:48:56 215

转载 java 队列实现

队列是一种重要的数据结构,在排队论和算法设计中有很重要的应用,其实队列也是一种链表,它只允许在表的始端出表(dequeue),在表的末端入表(enqueue),下边是队列的java实现。public class Queue { private int front; private int back; private int size; private Object[] data; public Q...

2018-05-29 14:43:26 279

转载 java stack实现

什么是堆栈,关于这个名词,我在百度,google搜索了半天,也没有发现一个比较权威的解释,还有许多资料语焉不详,就以维基百科的解释为准吧,和我记忆中的一致。堆栈(英文:stack),中国大陆作堆栈,台湾作堆叠,在计算机科學中,是一種特殊的串列形式的資料結構,它的特殊之處在於只能允許在鏈結串列或陣列的一端(稱為堆疊頂端指標,英文為top)進行加入資料(push)和輸出資料(pop)的運算。另外堆疊也...

2018-05-29 14:42:14 824

转载 简单了解Http协议

1. Http协议入门1.1 什么是Http协议http协议:对浏览器客户端和服务器端之间数据传输的格式规范2. Http请求Http请求内容如下所示:GET /text/hello HTTP/1.1 -请求行Host: localhost:8080 --请求头(包含该行和下面多个key-value对象)User-Agent: Mozilla/5.0 (Window...

2018-05-27 11:37:59 105

转载 Mysql索引详解及优化(key和index区别)

MySQL索引的概念    索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。    索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快    要注意的是,...

2018-05-22 00:20:42 606

转载 Java 类加载机制

 (1)阿里的面试官问我,可以不可以自己写个String类答案:不可以,因为 根据类加载的双亲委派机制,会去加载父类,父类发现冲突了String就不再加载了;(2)能否在加载类的时候,对类的字节码进行修改答案:可以,使用Java探针技术,可以参考:Java探针-Java Agent技术-阿里面试题阅读目录   什么是类加载器   类加载器与类的”相同“判断   类加载器种类  双亲委派模型  类加...

2018-05-21 22:51:28 120

转载 MySQL中的索引详讲

MySQL(五) MySQL中的索引详讲      序言         之前写到MySQL对表的增删改查(查询最为重要)后,就感觉MySQL就差不多学完了,没有想继续学下去的心态了,原因可能是由于别人的影响,觉得对于MySQL来说,知道了一些复杂的查询,就够了,但是我认为,不管有没有用,现在学着不懂的东西,说明就是自己薄弱的地方,多学才能比别人更强                        ...

2018-05-21 22:44:38 106

转载 MySQL高级-索引

1、索引是什么  索引(Index)是帮助MySQL高效获取数据的数据结构。可以得到索引的本质:索引是数据结构。  可以理解为“排好序的快速查找数据结构”  在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,  这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。2、优势  类似大学图书馆建书目索引,提高数据检索效率,降低数据库的IO成...

2018-05-21 22:37:54 86

转载 SparkStreaming与Kafka整合遇到的问题及解决方案

最近工作中是做日志分析的平台,采用了sparkstreaming+kafka,采用kafka主要是看中了它对大数据量处理的高性能,处理日志类应用再好不过了,采用了sparkstreaming的流处理框架 主要是考虑到它本身是基于spark核心的,以后的批处理可以一站式服务,并且可以提供准实时服务到elasticsearch中,可以实现准实时定位系统日志。作者:佚名来源:|2017-08-03 09...

2018-05-21 21:12:07 3261

转载 为什么要使用泛型

从开发第一个系统,一直在使用泛型。那么为什么要使用泛型呢?或者说泛型有什么好处。   先来看官方的的解释:    泛型类和泛型方法同时具备可重用性、类型安全和效率,这是非泛型类和非泛型方法无法具备的。 泛型通常用与集合以及作用于集合的方法一起使用。 .NET Framework 2.0 版类库提供一个新的命名空间 System.Collections.Generic,其中包含几个新的基于泛型的集合...

2018-05-21 19:07:25 670

转载 Storm介绍及与Spark Streaming对比

1 Storm介绍Storm是由Twitter开源的分布式、高容错的实时处理系统,它的出现令持续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时要求。Storm常用于在实时分析、在线机器学习、持续计算、分布式远程调用和ETL等领域。在Storm的集群里面有两种节点:控制节点(Master Node)和工作节点(Worker Node)。控制节点上面运行一个名为Nimbus的进程,它用...

2018-05-14 09:52:12 154

转载 Spark Streaming与Storm的对比分析

Spark Streaming与Storm的对比分析一、Spark Streaming与Storm的对比二、Spark Streaming与Storm的优劣分析事实上,Spark Streaming绝对谈不上比Storm优秀。这两个框架在实时计算领域中,都很优秀,只是擅长的细分场景并不相同。Spark Streaming仅仅在吞吐量上比Storm要优秀,而吞吐量这一点,也是历来挺Spark Str...

2018-05-14 09:45:14 764

转载 写第一个Storm应用

在全面介绍Storm之前,我们先通过一个简单的Demo让大家整体感受一下什么是Storm。Storm运行模式:本地模式(Local Mode): 即Topology(相当于一个任务,后续会详细讲解)  运行在本地机器的单一JVM上,这个模式主要用来开发、调试。远程模式(Remote Mode):在这个模式,我们把我们的Topology提交到集群,在这个模式中,Storm的所有组件都是线程安全的,因...

2018-05-14 08:15:23 188

转载 Storm入门Demo

 一、简介                                                        我们前面的文章对Apache Storm 是一个开源的分布式、实时、可扩展、容错的计算系统的基本知识进行熟悉之后,我们通过Storm简单的例子把应用跟基础知识结合起来。       Storm的Topology是一个分布式实时计算应用,它通过Stream groupings把s...

2018-05-14 08:08:11 184

转载 Win7 安装Storm

安装zookeeper下载:http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz安装: 解压到C:\tools\zookeeper-3.3.6 复制zoo_sample.cfg为zoo.cfg 内容修改:dataDir=C:\\tools\\zookeeper-3.3.6dataLogDir...

2018-05-14 07:03:07 725

转载 windows7搭建RabbitMQ

windows7搭建RabbitMQ1 安装Erlang安装RabbitMQ需要先安装Erlang语言开发包,下载地址 : http://www.erlang.org/download.html2 设置Erlang环境变量D:\rabbitmq\erl8.3 是我的otp_win32_19.3 安装路径ERLANG_HOME = D:\rabbitmq\erl8.3PATH 中加入 %ERLAN...

2018-05-13 23:28:15 256

转载 spark streaming 与 kafka 集成测试

kafka:2.11spark:2.0.2测试过程:1、开发spark streaming程序,读取kafka队列数据,并进行处理;2、启动spark、zookeeper及kafka;3、启动log4j输出到kafka的程序,先用kafka receive console程序验证其正确性;4、启动spark streaming程序,观察执行效果,启动命令如下:spark-submit --clas...

2018-05-13 22:54:13 341

转载 Windows7上简单安装运行Apache Kafka教程

软件下载地址: Zookeeper https://zookeeper.apache.org/ Kafka http://kafka.apache.org搭建步骤: 1、JDK安装  2、Zookeeper安装 ①、进入Zookeeper解压目录,E:\WindowsOS_ApacheKafka_20160126\Zookeeper\zookeeper-3.4.6\conf②、将“zoo_samp...

2018-05-13 18:53:02 648

转载 Intellij IDEA 添加jar包的三种方式

Intellij IDEA 添加jar包的三种方式博客分类: Intellig IDEAIntellij IDEAJarlib Intellij IDEA 添加jar包的三种方式 一.直接复制:(不推荐)方法:直接将硬盘上的jar包复制粘贴到项目的lib目录下即可。注意:1.对于导入的eclipse项目,该方式添加的jar包没有任何反应,用make编译项目会报错2.对于在idea中创建的项目,该方...

2018-05-12 11:48:19 641

转载 java 详解类加载器的双亲委派及打破双亲委派

http://www.jb51.net/article/102920.htmhttps://www.cnblogs.com/wxd0108/p/6681618.html其实,双亲委派模型并不复杂。自定义类加载器也不难!随便从网上搜一下就能搜出一大把结果,然后copy一下就能用。但是,如果每次想自定义类加载器就必须搜一遍别人的文章,然后复制,这样显然不行。可是自定义类加载器又不经常用,时间久了容易忘...

2018-05-10 08:18:24 4279 3

转载 java170道面试题汇总+详细解析

2013年年底的时候,我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对这个所谓的《Java面试大全》进行了全面的修订并重新发布在我的CSDN博客。在修订的过程中,参照了当时JDK最新版本(Java 7)给出了题目的答案和相关代码,去掉了EJB 2.x、JSF等无用内容或过时内容,补...

2018-05-10 08:09:22 3339

转载 面试必备:常用的设计模式总结

单例模式 简单点说,就是一个应用程序中,某个类的实例对象只有一个,你没有办法去new,因为构造器是被private修饰的,一般通过getInstance()的方法来获取它们的实例。getInstance()的返回值是一个对象的引用,并不是一个新的实例,所以不要错误的理解成多个对象。单例模式实现起来也很容易,直接看demo吧public class Singleton { private ...

2018-05-10 07:42:36 215

转载 mybatis中的#和$的区别

简介    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。     动态 sql 是 my...

2018-05-10 07:41:47 96

转载 类加载器的双亲委派及打破双亲委派

一般的场景中使用Java默认的类加载器即可,但有时为了达到某种目的又不得不实现自己的类加载器,例如为了达到类库的互相隔离,例如为了达到热部署重加载功能。这时就需要自己定义类加载器,每个类加载器加载各自的类库资源,以此达到资源隔离效果。在对资源的加载上可以沿用双亲委派机制,也可以打破双亲委派机制。一、沿用双亲委派机制自定义类加载器很简单,只需继承ClassLoader类并重写findClass方法即...

2018-05-09 19:49:42 388

转载 ConcurrentHashMap分析

本文转载自:http://www.infoq.com/cn/articles/ConcurrentHashMap为什么要用ConcurrentHashMap?HashMap线程不安全多线程环境下,使用hashmap进行put操作会引起死循环,CPU利用率高,如下代码:final HashMap<String, String> map = new HashMap<String, S...

2018-05-07 00:37:05 159

转载 集合各实现类的底层实现原理

ArrayList实现原理要点概括参考文献: http://zhangshixi.iteye.com/blog/674856l https://www.cnblogs.com/leesf456/p/5308358.htmlArrayList是List接口的可变数组非同步实现,并允许包括null在内的所有元素。底层使用数组实现该集合是可变长度数组,数组扩容时,会将老数组中的元素重新拷贝一份到新的数组...

2018-05-07 00:07:51 143

转载 Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析

今天发一篇”水文”,可能很多读者都会表示不理解,不过我想把它作为并发序列文章中不可缺少的一块来介绍。本来以为花不了多少时间的,不过最终还是投入了挺多时间来完成这篇文章的。网上关于 HashMap 和 ConcurrentHashMap 的文章确实不少,不过缺斤少两的文章比较多,所以才想自己也写一篇,把细节说清楚说透,尤其像 Java8 中的 ConcurrentHashMap,大部分文章都说不清楚...

2018-05-06 21:17:21 386

转载 多线程及GIL全局锁

1. GIL是什么?  首先需要明确的一点是GIL并不是python的特性, 它是在实现python解析器(Cpython)时所引入的一个概念。而Cpython是大部分环境下默认的python执行环境,要明确一点:GIL并不是python的特性,python完全可以不依赖于GIL。2. 为什么会有GIL?    为了更有效的利用多核处理器的性能,就出现了多线程的编程方式,而随之带来的就是线程间数据...

2018-05-06 20:28:26 250

转载 触摸java常量池

    java常量池是一个经久不衰的话题,也是面试官的最爱,题目花样百出,小菜早就对常量池有所耳闻,这次好好总结一下。 理论          小菜先拙劣的表达一下jvm虚拟内存分布:      程序计数器是jvm执行程序的流水线,存放一些跳转指令,这个太高深,小菜不懂。     本地方法栈是jvm调用操作系统方法所使用的栈。     虚拟机栈是jvm执行java代码所使用的栈。     方法区...

2018-05-04 08:36:43 70

转载 Java内存分配之堆、栈和常量池

Java内存分配主要包括以下几个区域:1. 寄存器:我们在程序中无法控制2. 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中3. 堆:存放用new产生的数据4. 静态域:存放在对象中用static定义的静态成员5. 常量池:存放常量6. 非RAM(随机存取存储器)存储:硬盘等永久存储空间******************************************...

2018-05-04 07:43:49 99

转载 【集合框架】JDK1.8源码分析之HashMap(一)

一、前言  在分析jdk1.8后的HashMap源码时,发现网上好多分析都是基于之前的jdk,而Java8的HashMap对之前做了较大的优化,其中最重要的一个优化就是桶中的元素不再唯一按照链表组合,也可以使用红黑树进行存储,总之,目标只有一个,那就是在安全和功能性完备的情况下让其速度更快,提升性能。好~下面就开始分析源码。二、HashMap数据结构                    说明:上...

2018-05-03 23:56:36 78

转载 JDK7与JDK8中HashMap的实现

JDK7中的HashMapHashMap底层维护一个数组,数组中的每一项都是一个Entrytransient Entry<K,V>[] table;我们向 HashMap 中所放置的对象实际上是存储在该数组当中; 而Map中的key,value则以Entry的形式存放在数组中static class Entry<K,V> implements Map.Entry<K,...

2018-05-03 23:49:27 97

转载 HashMap底层实现原理(下)

清浅池塘知乎专栏《Java那些事儿》唯一作者,努力打造最好的初学者专栏,关注我能收到专栏推送108 人赞了该文章公众号:saysayJava,敬请支持。上一篇文章我们介绍了HashMap的底层实现,但还遗留了一点内容,我们再回顾一下上一篇文章里说的内容执行完红框里的代码,personMap里放入了8个元素,放置完成后在堆内存表现如下图如果忽略底层实现细节,是这样的在Map中,一个key,对应了一个...

2018-05-03 23:34:51 156

转载 HashMap底层实现原理(上)

清浅池塘知乎专栏《Java那些事儿》唯一作者,努力打造最好的初学者专栏,关注我能收到专栏推送209 人赞了该文章修改记录:2017年8月17日 12:00 调整了本文顺序,新增小结。本来想先在专栏里简单的说一下二叉树,红黑树的内容后再说HashMap的,但看到评论区里不断的出现HashMap这个词,怕大家等得着急,本篇文章就先说说HashMap吧,前面讲ArrayList和LinkedList时把...

2018-05-03 23:34:15 515

空空如也

空空如也

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

TA关注的人

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