自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(185)
  • 资源 (11)
  • 收藏
  • 关注

原创 抽丝剥茧Reactor模式

今天在看书的时候看到了一个新的设计模式——Reactor模式,这个模式是出现在NIO中,至于这到底是个什么模式,今天我们来细说一下。 reactor模式是javaNIO非堵塞技术的实现原理,我们不仅要知道其原理流程,还要知道其代码实现,当然这个reactor模式不仅仅在NIO中实现,而且在redies等其他地方也出现过,说明这个模式还是比较实用的,尤其是在多线程高并发的情况下使用。

2016-11-03 10:31:53 42782 3

原创 从零开始学Hadoop——浅析MapReduce(一)

之前,我们说过Hadoop的两个核心为HDFS和MapReduce,既然我们已经学习了Hadoop的HDFS,那么我们就来看看MapReduce是什么。当然,我们学习的顺序还是先看看基本概念,再研究一下原理,最后做一些练习。 但是通过今天的学习,我们知道了两者是如何协同工作的,这样对我们以后的实战是非常有帮助的。下次我们将通过实例,来深层解析MapReduce的运行机制,请大家继续关注。

2016-05-18 09:06:26 18498 2

原创 阿里架构之旅(二)——Dubbo解析

上次我们简单介绍了一下Dubbo,知道了Dubbo是一个分布式服务框架,将复杂的调用关系简单的管理起来,不管是从设计思路,还是性能提升上,它都是一个优秀的产品。如果我们不知道它的工作原理,那么我就相当于没接触过Dubbo,而且我们可以发现它的原理会更有趣。既然是这样,那我们就赶紧开始吧。

2016-02-25 17:24:45 13418 7

原创 浅谈MVC架构—你到底有什么本事

MVC的处理过程:首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理。然后模型根据用户请求进行相应的业务逻辑处理,并返回数据。最后控制器调用相应的视图格式化模型返回的数据,并通过视图呈现给用户。 通过MVC的学习,我们要知道它是用来分割页面和数据库访问的框架,降低了两者的耦合度,同时通过Controller的控制,也使系统更加的灵活,使我们的代码更健壮,复用性更强,但是凡事都有他适用的范围,我们不能觉得它好,就不敢三七二十一的瞎用,有时可能会适得其反,因此MVC的学习还需要我们以后慢慢探讨

2015-01-27 07:58:52 72473 58

原创 【分布式】我们一起来分析——缓存和数据库一致性问题

问题:      你只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题?分析:      先做一个说明,从理论上来说,有两种处理思维,一种需保证数据强一致性,这样性能肯定大打折扣;另外我们可以采用最终一致性,保证性能的基础上,允许一定时间内的数据不一致,但最终数据是一致的。1 强一致性思想 &n

2020-08-18 09:50:37 450

原创 【jdk8源码】Arrays.sort插入排序,居然还可以成对插入

至此,我们学习完了传统插入排序和成对插入排序,可以看出成对插入排序的每次先插入较大的数,这样我们就可以确定另一个数肯定在插入位置的左侧,这种处理方式有点像TimSort排序中合并相邻部分的处理,先找到左边最大数在右边的位置,再找到右边最小数在左边的位置,然后只需合并这重合的部分就行了。因此它比传统的插入排序实现更快。 由于成对插入排序在循环寻找a1,a2位置的时候,没有对左边界做判断,因此这次要注意下标越界的问题。这次省去判断,对性能的提升也是有帮助的。

2020-08-13 14:32:12 1389

原创 【排序算法】十大经典大集合:简介-代码-动态图-时间复杂度

冒泡排序 public static void bubbleSort(int arr[]) { for(int i =0 ; i<arr.length-1 ; i++) { for(int j=0 ; j<arr.length-1-i ; j++) { if(arr[j]>arr[j+1]) { int temp = arr[j]; a

2020-08-07 10:38:59 465

原创 【jdk8源码】legacyMergeSort算法=插入排序+分治思想+归并优化,其实就这么简单

      jdk1.7之前的排序用的就是归并排序,legacyMergeSort此方法就是1.7为了兼容之前版本的归并排序。一、简介      归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间.

2020-07-29 10:03:11 2621

原创 【jdk8源码】TimSort算法——从头看到脚

TimSort算法主要进行了以下优化1、利用自然升序序列2、优化的二分插入排序,先利用二分查找找到位置,再进行移位,插入数据排序3、拆分为大小查不多的run分割槽。因为将一个长序列和一个短序列进行归并排序从效率和代价的角度来看是不划算的,而两个长度均衡的序列进行归并排序时才是比较合理的也比较高效的。4、优化的归并排序,4.1 找到在左边run1中找到右边run2中的最小元素的位置x1,这样x1之前的元素就不用处理了;4.2 找到在右边run2中找到左边run1中的最大元素的位置x2,这样x2之后

2020-07-28 10:35:22 1011

原创 JVM——深入解析原理和运行机制(一)类加载器

待定

2017-09-28 21:42:11 571 1

原创 JVM——深入解析原理和运行机制(一)类加载过程

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 隔了好久终于把这篇文章补上了,最近在看《深入理解Java虚拟机》,一本很不错的书,必须值得一看。 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 由于本人对Java类的加载过程一直是一知半解,所以优先看了一下

2017-09-28 21:41:46 888 1

原创 JVM——深入解析之初识

之前我们已经学习了多线程的相关概念原理以及线程池的管理等,但是要想明白线程的运行过程还需要了解jvm的知识,今天,我们就来介绍一下jvm。1、什么是JVM       JVM是Java Virtual Machine(Java虚拟机)的缩写,每个使用Java的开发~~~~~ 今天我们知道了什么是jvm,以及jvm的结构等,下一次我们将深入剖析一下jvm的原理和工作流程等。

2017-08-31 22:43:42 546

原创 多线程——并发锁的集结号

上次我们说了一下多线程的管理,今天我们来看一下多线程的锁。1、不同的加锁方式类锁:在代码中的方法上加了static和synchronized的锁,或者synchronized(xxx.class)的代码段对象锁:在代码中的方法上加了synchronized的锁,或者synchronized(this)的代码段···············今天我们总结了一下多线程中的锁,以后我们会继续分享关于锁的学习。

2017-08-27 22:28:42 781 2

原创 多线程——Java线程池原理深入

上次我们简单了解了一下什么是线程池以及Java中几种类型的线程池,今天我们来深入剖析一下线程池的原理。1、构造       1. 线程池管理器(ThreadPoolManager):用于创建并管理线程池 ············· 通过这次学习,我们不仅知道了线程池是如何管理线程,而且还了解了线程多种状态之间的转换,这样更加便于我们对线程池的理解。之后,我们还将继续学习关

2017-07-31 23:23:32 3215

原创 多线程——java线程池简介

上次我们回忆了多线程的基础概念,今天,我们来看看Java中对线程池的使用。一、线程池1、为什么需要       在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每 ········· 今天我们简单了解了一下为什么要用线程池,以及线程池的一些类型和使用,下次我们将继续深入学习线程池的原理。

2017-07-31 23:22:31 633

原创 多线程——临界区-锁

今天,我们接着上次说的,来继续回顾一下多线程的基础—临界区和锁····· 今天我们主要是通过临界区的说明,来引出锁的一些问题。我们要知道死锁的危险始终存在,但是我们应该尽量减少这种危害存在的范围,多线程是一把双刃剑,有了效率的提高当然就有死锁的危险。所以我们要尽量多了解这些方面的知识,让自己少在这些地方踩坑。

2017-06-30 22:02:04 1339

原创 多线程——同步-异步-阻塞-非阻塞

呵呵,好久没写博客了,今天让我们来回顾一下多线程的一些基础知识。一、同步和异步 1、同步(synchronous)所谓同步,就是············· 总之,我们只要知道阻塞和非阻塞是做事情时的状态,是针对请求者来说的,而同步和异步是消息通信的机制,是针对被请求者来说的···········未完待续

2017-06-30 22:01:28 913

原创 多线程为什么要用ConcurrentHashMap

上次我们说了一下项目中经常会出现的死锁问题,今天我们要说的是关于集合的问题,实际上跟锁也有一定的关系,让我们来一起看看吧。 这个类其实在我们项目中的缓存使用到了,利用ConcurrentHashMap来存放一些常用的信息,由于是在并发的情况下使用,考虑到性能的问题,优先选用ConcurrentHashMap类。不过我建议大家还是要多看看源码,从中会受益很多。

2016-10-25 18:45:59 2771 4

原创 死锁剖析

最近在项目中出现了很多问题,最为常见的就是死锁问题,今天我们来看看死锁究竟是怎么回事。 死锁在我们工作中是经常遇到的,所以我们不仅要学会怎么去处理,还要了解其中是为什么出的问题。这叫知其然还要知其所以然。

2016-10-20 22:03:11 743 5

原创 MySQL提升效率之limit

分页查询在我们的实际工作中经常会遇到,但是对于不同的数据库,分页查询的实现方式也不一样。而在MySQL中的分页就是靠limit实现的,可是limit的效率怎么样呢,我们来看看。 我们在写代码的过程中,不仅要关注功能的实现,还要考虑其性能的优化。如何写出高质量的代码,那需要我们多看源码,多思考自己代码。不管多大的成就,都是靠一点点努力积累起来的,just do it.

2016-09-26 11:42:17 3079 2

原创 如何使用才能让缓存更高效

在大数据下,我们在追求性能的时候往往离不开缓存的使用,可是怎么使用缓存才能更高效呢?这一直是我们在追求解决的一个问题,今天我们就来介绍一种比较高效的使用方法。 我们在性能优化的时候总是要考虑数据库的性能,因为在数据爆炸的这个年代,我们系统的瓶颈都在数据库。所以降低了数据库的损耗就会是性能得到很大提升。

2016-07-27 09:55:47 933 2

原创 String.format参加字符串拼接大比拼

最近在项目中见到一个比较特别的代码,因为之前没见过,可能是孤陋寡闻了。我们平时用的最简单的字符串拼接就是用“+”号连接起来,要么我们就实例化一个StringBuilder或StringBuffer,然后拼接字符串。可是我见到的居然是用String.format将字符串拼起来的。那么我们就来看看到底是怎么回事吧。

2016-07-25 10:58:10 16128 7

原创 MyBatis的优化注意点

我们在项目中经常会用到Mybatis,可是我们怎么才能灵活的应用mybatis,使我们的程序性能更好呢?接下来我们就来看看这几个点。1、批量操作       每个工具都有他试用的范围,需要根据我们的实际情况灵活应用。而且每个问题都有很多方法,我们要多思考那些简单、可用、高效的方法。不断思考,才能不断进步。

2016-07-13 21:26:51 7708

原创 大数据的仓库Hive原理(三)

上次我们简单说了一下Hive的工作原理,今天我们来深入看一下它是如何把Hql语句转换为m/r来运行的。 我们从认识Hive到理解它的运行原理,已经对其有了一定的了解。当然在实际应用中还会遇到各种问题,只要我们坚持去做,就没有什么做不到的。

2016-06-29 18:31:52 2313 1

原创 大数据的仓库Hive原理(二)

上次我们说到了大数据应用中的数据仓库hive,我们知道了利用hive可以更方便的处理数据,而且它的扩展性、延展性和容错性都比较好,但是它是如何利用Hql(类Sql语句)来实现数据处理的呢。 我们从hive的简单介绍到它优缺点的理解,以及它与传统关系型数据库的区别都做了一些学习,今天我们又对它的原理做了一些简单的认识,下次我们继续深入解析hive的工作原理。

2016-06-29 09:20:17 1661

原创 大数据的仓库Hive学习(一)

我们接着之前学习的大数据来学习。之前说到了NoSql的HBase数据库以及Hadoop中的HDFS存储系统,可是我们发现这跟我们平时常用的关系型数据库有很大区别,为了使用方便,产生了针对大数据存储的数据仓库Hive。 今天我们通过对Hive的学习,对大数据的处理又有了一定的认识。在以后的实际操作中,我们去慢慢掌握Hive的使用方法。通过不断学习,达到自己所追求的目标。

2016-06-20 14:58:25 4487

原创 用索引来实现幂等

随着大数据的到来,分布式处理变得越来越火,而且分布式中的一致性事务又是重中之重。当然我们今天的重点不在于介绍如何保证分布式事务中的一致性,而是在保证事务一致性的过程中会出现一系列的补偿机制,这就涉及到了幂等。接下来让我们一起去看一下吧。 我们了解了索引之后就能实现幂等了,从而可以避免重复插入。这在电商或者其他的项目中,处理重复的订单就简单多了。当然,这只是其中的一种方法,其他的方法以后遇到再与大家分享。

2016-06-17 11:25:37 1894 1

原创 NoSql之初识HBase

之前我们一直在介绍hadoop,学习了两个核心内容HDFS和MapReduce。虽然HDFS可以存储数据,但是我们无法快速的查看所需的数据,这就需要引入另一个非关系型数据库HBase。 由Hadoop的学习,我们引出了HBase的学习,知道了它是一种列式存储,在实际应用中需要结合zookeeper和hadoop一起使用。但是本文并没有介绍它的shell命令以及API接口等等,这些需要我们以后慢慢学习

2016-05-29 16:33:49 1453 2

原创 从零开始学Hadoop——浅析MapReduce(二)

上篇博客我们介绍了MapReduce的基本概念,并且对它的运行原理做了一些解析,今天我们来通过一个实际例子来深刻体会一下它的运行过程。 至此,我们将Hadoop的两大核心学习完了,但是对我们来说,这只是刚刚开始,不过我们要打好基础,在之后的学习过程中去更加深入的研究。让我们一起准备迎接明天的挑战吧。

2016-05-18 09:07:45 2626 1

原创 从零开始学Hadoop----浅析HDFS(三)

之前,我们简单介绍了一下Hadoop的核心之一HDFS,对其中的一些概念和他的原理做了一些解析。今天我们来看看HDFS的操作实例。 到此,我们学习了HDFS的一个大概,从概念到原理最后到实际操作,基本的一些知识已经掌握,剩下的就需要在项目中历练了。接下来我们会继续分享Hadoop的另外一个核心部分MapReduce,敬请关注。

2016-05-10 09:01:20 2889 1

原创 从零开始学Hadoop----浅析HDFS(二)

上一篇,我们简单介绍了一下Hadoop的核心之一HDFS,对其中的一些概念有了一定的了解。今天我们来看看HDFS的一些原理解析。 今天我们接着上次介绍了一下HDFS的概念之后,我们对HDFS的架构,内部构造以及运行原理做了一些解析,下次我们将在实战中熟练使用HDFS做一些例子。

2016-05-10 08:59:44 2790 2

原创 从零开始学Hadoop----浅析HDFS(一)

之前,我们简单介绍了一下Hadoop,知道他是一个处理大数据的框架。今天我们来看看Hadoop的核心构成之一—-HDFS. 这次我们知道了HDFS是一个分布式的文件存储系统,它的一些基本的概念和优缺点我们已经知道了,下次我们将给大家分享一下HDFS的运行原理。

2016-05-10 08:58:01 7659 1

原创 从零开始学Hadoop----初识

我们知道大数据的时代已经到来,之前就给大家分享了应对大数据的非关系型数据库redis。今天,我们再来看看处理和分析海量数据的神器——hadoop。 今天我们简单认识了一下Hadoop,知道了hadoop在大数据处理中的重要作用,以后我们将逐步学习hadoop,希望对喜欢hadoop的人有所帮助。

2016-05-04 15:34:22 2242 2

原创 NoSql之深入浅出redis

之前我们简单介绍了一下redis,知道了它的一些特性以及它的作用,今天我们来看看它在实际使用中的一些简单的命令,以及它的一些高级特性。 从redis的介绍到简单的操作命令,然后又了解了它的事务,持久化,主从复制等特性,希望在以后的项目中使用的时候会得心应手,至于redis其他的特性,如虚拟内存等,我们可以以后一点点深入。而且在实际应用过程中还会出现各种各样的问题,到时候再逐个解决。

2016-04-27 12:33:22 9198 10

原创 NoSql之相逢Redis

为了应对海量数据的到来,出现了非关系型数据库NoSql,为了在互联网中得以生存和发展,我们不得不去掌握一两个NoSql数据库的使用。当然我们不可能全部都掌握,只要掌握几个有代表性的就行。这里我们接触一下redis,希望以此来理解NoSql给我们带来的好处。 今天我们通过redis的学习,知道NoSql的重要性,而且在以后的学习中避免不了与大数据的接触,所以学会对数据的处理变得尤为重要,我们的奋斗历程也才刚刚开始。

2016-04-26 14:01:10 841 6

原创 大数据时代下的NoSql

随着大数据时代的到来,我们的问题也就来了。海量的数据如何去处理,如何存储,如何才能发挥出大数据的价值呢?在数据量越来越大的今天,传统的关系型数据存储已经满足不了我们的需求,于是就诞生了非关系型数据库NoSql。今天我们就来看看大数据的存储NoSql. 在大数据时代来临之季,我们了解一下非关系型数据库是非常有必要的,尤其是掌握一两个非关系型数据库的应用,如redis和mongolDB等。

2016-04-22 10:21:58 979 6

原创 大数据时代的到来

随着社会的发展、时代的进步,互联网发展已经到了一个鼎盛的时期。随着“互联网+”的提出,更加助长了互联网发展的趋势,而在互联网发展中又出现了许多热词,如云计算,大数据,人工智能等等,这之中大数据尤为突出,所以今天我们来介绍一下何为大数据。 在科技告诉发展的背景下,我们的世界变得越来复杂,相关关系显得越来越重要,这就需要我们去探索大数据,包括数据挖掘、数据传递、数据分析、数据保存等.

2016-04-21 17:10:55 9169 9

原创 Linux学习总结——实践

经过一段时间的学习,我们已经知道Linux是个什么东西。可是我们在实际工作中,到底有多少是有用的呢。今天我们就来总结一下。 我们学习的目的就是要让自己学到的东西发挥他的价值,所以最重要还是在实践中的应用。当然我们最常用的就是Linux命令,这是最基本的要求,如果我们要想让Linux发挥更大的作用,就要去了解Linux的原理,架构,以及思想,只有这样我们才能优化性能,提高质量。

2016-03-31 13:05:48 5479 3

原创 独具一格的Linux

最近在工作中接触到了Linux,因为之前没学过,所以用起来很费劲,所以就补补课,学习了一下Linux。今天我就跟大家一起分享一下我对Linux的认识和理解。 目前Linux服务器是当前最广泛的应用。所以在我们的工作中,经常要与Linux打交道,所以掌握Linux是我们的必经之路。今天我们简单介绍了一下Linux的特性,以及它的一些优缺点。下次我们将继续介绍它的一些使用方式,常用的命令等。

2016-03-21 12:38:08 897 3

原创 阿里架构之旅(四)——zookeeper的原理

前面我们介绍了一下zookeeper的一些基本的知识,知道了他是一个树形结构的文件系统,同时外加通知机制的这么一个东西。那么今天我们就来探究一下它的根源,一些内部的运行原理。 至此,我们知道了zookeeper一些运行时的流程,知道了它在集群中的工作方式,不过还有很多东西值得我们继续去探索,这里不再一一介绍,以后有机会我们继续分享。

2016-03-14 14:23:21 3858 3

阿里巴巴前端开发工程师笔试二.pdf

阿里前端开发工程师的面试题

2020-07-29

[免费]从Paxos到Zookeeper分布式一致性原理与实践.pdf

前一部分(第1章)主要介绍了计算机系统从集中式向分布式系统演变过程中面临的挑战,并简要介绍了ACID、CAP和BASE等经典分布式理论;第二部分(第2~4章)介绍了2PC、3PC和Paxos三种分布式一致性协议,并着重讲解了ZooKeeper中使用的一致性协议——ZAB协议;第三部分(第5~6章)介绍了ZooKeeper的使用方法,包括客户端API的使用以及对ZooKeeper服务的部署与运行,并结合真实的分布式应用场景,总结了ZooKeeper使用实践;第四部分(第7章)对ZooKeeper的架构设计和实现原理进行了深入分析,包含系统模型、Leader选举、客户端与服务端的工作原理、请求处理,以及服务器角色的工作流程和数据存储等;第五部分(第8章)介绍了ZooKeeper的运维实践,包括配置详解和监控管理等,重点讲解了如何构建一个高可用的ZooKeeper服务。

2017-09-04

xdoclet-plugins-1.0.3 下载

基于ant的javaEE开发工具,只要安装好了ant即可使用,自动生成Hibernate配置文件和映射文件,减少 手工输入导致的错误

2016-01-27

eyoumailserversetup.exe

使用javaMail完成邮件发送,需要的邮件服务器。

2015-10-30

java--mail.jar

使用javaMail完成邮件发送,替换javaee中相应的jar包。

2015-10-30

activation.jar

使用javaMail完成邮件发送,替换javaee中相应的jar包。

2015-10-30

java开发standard.jar

Java开发中jsp前端页面需要使用到的标签库jar包之一

2015-10-16

java开发jstl.jar

Java开发中jsp前端页面需要使用到的标签库jar包之一

2015-10-16

commons-io-1.2.jar

通过apache commons fileupload实现java上传的必须jar包之一

2015-10-12

commons-fileupload-1.1.1.jar

通过apache commons fileupload实现java上传的必备jar包之一

2015-10-12

仿真录音机

一个多功能录音机,可以录音可以播放MP3音乐,超炫

2013-04-23

空空如也

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

TA关注的人

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