- 博客(123)
- 收藏
- 关注
原创 spark源码编译(maven)
从Spark官网上下载编译好的安装包,并不一定能够满足需要,有时候希望通过阅读和调试Spark源码来深入理解其内部机制,这时候需要自己去手动编译Spark。Spark可以通过SBT和Maven两种方式进行编译,再通过make-distribution.sh脚本生成分布式的部署包。SBT编译需要安装git工具,而Maven安装则需要maven工具准备:JDK,maven(或sbt)1. 源码下载:
2017-05-16 15:29:31 1723
原创 ganglia的安装部署对spark集群监控
1.ganglia简介 Ganglia 是 UC Berkeley 发起的一个开源监视项目,可以对分布式集群的所有计算资源进行监控。 ganglia由三个组件构成gmond :(client)是一个守护进程,他运行在每一个需要监测的节点上,收集监测统计,发送和接受在同一个组播或单播通道上的统计信息 如果他是一个发送者(mute=no)他会收集基本指标,比如系统负载(load_one),CPU利
2017-05-15 15:54:14 3492 1
转载 JFreechart的Axis坐标设置的方法总结
转自http://blog.csdn.net/wwchu/article/details/6151872一些关于AXIS类的方法: Axis 类: void setVisible(boolean flag)坐标轴是否可见 void setAxisLinePaint(Paint paint)坐标轴线条颜色(3D轴无效) void setAxisLineStroke(Stroke stroke
2016-10-24 21:15:41 20681 2
转载 Linux内核Kprobes调试技术
内核开发者一直在试图寻找一种快捷高效的内核调试手段,用于内核开发之中。高效的调试技术有利于提高内核开发效率,缩短内核开发周期。 本文研究了一种新型的内核调试技术―Kprobes, Kprobes是一个轻量级的内核调试工具,利用Kprobes技术可以在运行的内核中动态的插入探测点,在探测点处执行用户预定义的操作。本文首先根据Kprobes在Linux内核中的源码实现,针对Linux CPU异常
2016-09-28 21:50:17 1295
转载 Tomcat的类加载
转自:http://www.tuicool.com/articles/NrI7NrN跟其他主流的Java Web服务器一样,Tomcat也拥有不同的自定义类加载器,达到对各种资源库的控制。一般来说,Java Web服务器需要解决以下四个问题:① 同一个Web服务器里,各个Web项目之间各自使用的Java类库要互相隔离。② 同一个Web服务器里,各个Web项目之间可以
2016-08-19 13:08:45 1014
转载 学习tomcat之servlet容器
转载:http://blog.csdn.net/chenleixing/article/details/48153235 其实我们开发中经常用tomcat应用服务器,tomcat就一个servlet容器,能够运行基于serlvlet的应用程序并响应相应的http请求,开发时间长了,还是想想具体知道它是怎么运行的,尤其是servlet容器的机理,所以有幸拜读了外国人的《
2016-08-18 22:46:40 1082
原创 Java并发编程-Lock和condition的原理及AQS的运用
AQS的全称为(AbstractQueuedSynchronizer),这个类也是在java.util.concurrent.locks下面。这个类似乎很不容易看懂,因为它仅仅是提供了一系列公共的方法,让子类来调用。那么要理解意思,就得从子类下手,反过来看才容易看懂。如下图所示:图 5-15 AQS的子类实现这么多类,我们看那一个?刚刚提到过锁(Lock),我们就从锁开
2016-08-16 19:33:00 5722
转载 Https协议连接过程
思考问题的顺序学技术时,总是会问什么?这里也不例外,https为什么会存在,它有什么优点,又有什么缺点?为什么网站有的用http,有的用https?如果不能很好的回答,就往下看吧。http通信存在的问题容易被监听 http通信都是明文,数据在客户端与服务器通信过程中,任何一点都可能被劫持。比如,发送了银行卡号和密码,hacker劫取到数据,就能看到卡号和密码,这是很
2016-08-15 20:53:20 1490
转载 Java IO底层原理
转自:http://www.importnew.com/14111.html本博文主要讨论I/O在底层是如何工作的。本文服务的读者,迫切希望了解Java I/O操作是在机器层面如何进行映射,以及应用运行时硬件都做了什么。假定你熟悉基本的I/O操作,比如通过Java I/O API读写文件。这些内容不在本文的讨论范围。目录缓存处理和内核vs用户空间虚拟内存内存分页面向文件
2016-08-11 19:50:07 11545
原创 【面试编程题】-10剑指offer之面试中的各项能力
下面的例题来自于剑指offer的第6章的内容,主要考察面试者在面试过程当中的沟通、学习等方面的能力1.数字在排序数组中出现的次数题目描述 统计一个数字在排序数组中出现的次数。思路: 在排序数组当中查找用二分法,分别查找到数的起始位置和结束位置。时间复杂度是(logn)。public class Solution { public int GetNumberOfK(int []
2016-08-05 15:42:05 1397
原创 Java中Comparable与Comparator的区别
在Java中Comparable和Comparator都是对集合进行排序的,都是通过返回-1、0、1来进行交换,但是两种方式有差别。Comparable:使用集合内部元素的排序方法(compareTo)进行排序,所以内部比较的元素要实现Comparable接口。Comparator:使用外部Comparator对象的(compare方法)排序方式,所以集合需要实现Comparator接口的对象。
2016-08-03 13:18:49 1721 1
转载 Hadoop2.0 Yarn框架原理及运作机制
1.1 YARN 基本架构YARN是Hadoop 2.0中的资源管理系统,它的基本设计思想是将MRv1中的JobTracker拆分成了两个独立的服务:一个全局的资源管理器ResourceManager和每个应用程序特有的ApplicationMaster。其中ResourceManager负责整个系统的资源管理和分配,而ApplicationMaster负责单个应用程序的管理。
2016-08-01 23:15:58 3224
原创 servlet是单例和struts2的action多例的理解
1.struts2中action是多例的,即一个session产生一个action 如果是单例的话,若出现两个用户都修改一个对象的属性值,则会因为用户修改时间不同,两个用户访问得到的属性不一样,操作得出的结果不一样. 举个例子:有一块布长度300cm,能做一件上衣(用掉100cm)和一件裤子(用掉200cm);甲和乙同时访问得到的长度都是300cm, 甲想做上衣和裤子,他先截取100cm去做上
2016-07-30 20:50:08 6255
转载 字典数Trie树详解及其应用
一、知识简介 最近在看字符串算法了,其中字典树、AC自动机和后缀树的应用是最广泛的了,下面将会重点介绍下这几个算法的应用。 字典树(Trie)可以保存一些字符串->值的对应关系。基本上,它跟 Java 的 HashMap 功能相同,都是 key-value 映射,只不过 Trie 的 key 只能是字符串。 Trie 的强大之处就在于它的时间复杂度。它的插入和
2016-07-30 14:06:35 1795
原创 【面试编程题】-9剑指offer之优化时间和空间效率
下面的例题来着剑指offer第5章的内容。很多公司的面试官都把代码的时间效率当做一个考叉重点。面试官除了考查应聘者的编程能力之外,还关注应聘者有没有不断优化效率、追求完美的态度和能力。1.数组中出现次数超过一半的数字题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半
2016-07-30 13:51:18 1326
转载 大数据处理常用的数据结构
随着互联网的兴起,越来越多的内容被放到互联网中,从而导致海量数据处理受到更多人的重视,尤其是在百度、腾讯等这些涉及海量数据的公司。下面我们简单谈一下关于海量数据处理的一些常用数据结构。包括哈希、bitmap、Bloom filter、堆、mapreduce、trie树。(1)哈希 对于哈希,相信大家都不会陌生。其基本原理不再说明,哈希的一个关键点是哈希函数的选择,如何使映射结果更加均衡及冲突
2016-07-30 00:13:10 11099 1
转载 Bloom Filter 布隆过滤算法学习
BloomFilter——大规模数据处理利器 Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。 一. 实例 为了说明Bloom Filter存在的重要意义,举一个实例: 假设要你写一个网络蜘蛛(web crawler
2016-07-29 23:53:40 1189
转载 JDK源码学习(1)-HashMap源码分析,HashMap与HashTable的差别
Hashtable是HashMap的线程安全版本,它的实现和HashMap实现基本一致,除了它不能包含null值的key和value,并且它在计算hash值和数组索引值的方式要稍微简单一些。 Hashtable线程安全实现方式是将所有方法都标记成synchronized,但这样加锁的粒度大,容易引起一些性能问题,所以目使用java.concurrent.ConcurrentHashMap类性能
2016-07-28 20:46:42 1608
原创 【面试编程题】-8剑指offer之解决面试题的思路
下面的例题来着剑指offer第4章的,主要是告诉大家,做面试题的时候,怎么找到思路。画图让抽象问题形象化 不少于数据结构相关的问题,如二叉树、二维数组、链表等问题,都可以采用画图的方式来分析,找到题目隐含的规律和特点。1.二叉树的镜像 题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \
2016-07-27 22:38:22 1648
转载 UML类图的几种关系及类图的代码体现
在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种.【箭头指向】
2016-07-25 15:22:18 2386
原创 Java 注解的作用与使用
java 注解,从名字上看是注释,解释。但功能却不仅仅是注释那么简单。注解(Annotation)为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据)。常见的作用有以下几种:1.生成文档。这是最常见的,也是java 最早提供的注解。常用的有@see @param @return 等;2.跟踪代码依赖性,实现替代配置文件功能
2016-07-23 22:21:25 17290
原创 TCP协议的流量控制和拥塞控制
流量控制与拥塞控制可是TCP协议的两大特点,这两者是有一定关联的。流量控制就是让发送方的发生速率不要太快,要让接收方来的及接收,不然会找出数据溢出丢失。流量控制是利用滑动窗口机制实现的。1.流量控制——滑动窗口TCP采用大小可变的滑动窗口进行流量控制,窗口大小的单位是字节。发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随时动态地调整对
2016-07-22 16:15:29 16341
原创 计算机网络面试总结
整理一下计算机网络部分的面试常考点,参考书籍:《计算机网络》第五版 谢希仁的那本,希望对大家有所帮助OSI,TCP/IP,五层协议的体系结构,以及各层协议OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用
2016-07-21 11:17:08 13211 2
原创 【面试编程题】7-剑指offer之高质量的代码
下面的题来着剑指offer第3章 高质量的代码。题目比较简单,主要考察的是代码的完整性,代码的鲁棒性。1、数值的整数次方,数值的幂题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。思路: 采用暴力算法,n次幂就乘以n次,时间复杂度太高; 应该采用分治的思想,但要注意负数次幂的情况。public class
2016-07-20 23:10:13 1014
转载 Java工程师面试题
本文转自http://blog.csdn.net/renfufei/article/details/510105171. 如何判断一个数是2的幂。个人认为,数字转化为二进制,符号位为0,余下部分有且只有最左边一位是1,其余位都是0,才是2的幂。 原理是 乘二则向左进一位。2. 陷阱面试题:在Java中,Throwable是一个接口还是抽象类?3. Javas
2016-07-20 15:25:53 1208
原创 【面试编程题】6-动态规划类题
下面的例题来自剑指offer,都是使用动态规划代替递归避免重复求解的例子。1.斐波那契数列题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39思路:斐波拉数列f(n)=f(n-1)+f(n-2);如果使用递归,会造成很多重复求解,所以使用使用动态规划,斐波拉数列是非常典型的使用动态规划求解的例子。public class Solution {
2016-07-19 20:24:52 2469
原创 【面试编程题】5-旋转数组的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路: 直接一次遍历找出最小值得时间复杂度是n,但是没有利用旋转数组是部分有序的性质; 在有序的
2016-07-19 16:26:11 845
原创 【面试编程题】4:从尾到头打印链表
题目描述输入一个链表,从尾到头打印链表每个节点的值。 输入描述: 输入为链表的表头 输出描述: 输出为需要打印的“新链表”的表头思路:如果反转链表,会破坏链表原来的结果。所以利用数据结果栈。import java.util.ArrayList;import java.util.Stack;public class Solution { public ArrayList
2016-07-19 14:25:04 685
原创 【面试编程题】3-二维数组中的查找
题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路 类似于从一维数组中查找利用二分法,根据题意此题的起始点应该是二位数组的右上角。如果该位置的数等于target,返回true;如果该位置的数大于target,只有左边的列有可能;如果该位置的数小于target,只
2016-07-19 13:35:35 835
原创 Linux下文件查找命令which、whereis、locate、find的区别
我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索。这些是从网上找到的资料(参考资料1),因为有时很长时间不会用到,当要用的时候经常弄混了,所以放到这里方便使用。which 查看可执行文件的位置whereis 查看文件的位置locate 配合数据库查看文件位置find 实际搜寻硬盘查询文件名称 (find也可以根
2016-07-13 21:24:46 943
原创 Java8初体验(二)Stream语法详解
转自:http://ifeve.com/stream/Java8初体验(二)Stream语法详解感谢同事【天锦】的投稿。投稿请联系 tengfei@ifeve.com上篇文章Java8初体验(一)lambda表达式语法比较详细的介绍了lambda表达式的方方面面,细心的读者会发现那篇文章的例子中有很多Stream的例子。这些Stream的例子可能让你产生疑惑,本文将会详细讲解Str
2016-07-13 15:38:28 3957
原创 Java8初体验(一)lambda表达式语法
转自http://ifeve.com/lambda/本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘。因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望大家帮忙指出,我会持续修改和优化。本文是该系列的第一篇,主要介绍Java8对屌丝码农最有吸引力的一个特性—lambda表达式。java8的安装工欲善其器必先利其器,首先安装JDK8。过
2016-07-13 15:19:50 1821
原创 命令式编程vs声明式编程
英文原文:Imperative vs Declarative 先统一一下概念,我们有两种编程方式:命令式和声明式。 我们可以像下面这样定义它们之间的不同:命令式编程:命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。声明式编程:告诉“机器”你想要的是什么(what),让机器想出如何去做(how)。声明式编程和命令式编程的代码例子举个简单
2016-07-13 15:08:32 4728 1
原创 JDK 1.8新特性Lambda入门
网上关于java lambda的例子很多,但是这些五花八门的例子很不常见不常用,最后导致初学者望而却步,其实我们抓住lambda的本质之后,会发现lambda还是很好理解的。毕竟,java8设计lambda的初衷是给开发者提供便利,而不是制造障碍。lambda表达式本质是匿名方法,下面是一些lambda表达式:(int x, int y) -> x + y() -> 42
2016-07-13 14:04:45 27468 5
转载 <a>标签跳转和执行js函数,href和onclick属性
链接的onclick 事件被先执行,其次是href属性下的动作(页面跳转,或 javascript 伪链接);假设链接中同时存在href 与onclick,如果想让href 属性下的动作不执行,onclick 必须得到一个false的返回值;如果页面过长有滚动条,且希望通过链接的 onclick 事件执行操作。应将它的 href 属性设为 javascript:void(0);,而不要是 #,
2016-07-12 16:49:05 22050
原创 前端开发之日期控件、HTML5日期输入类型(date)
在很多页面和web应用中都有输入日期和时间的地方,最典型的是订飞机票,火车票,酒店,批萨等网站。在HTML5之前,对于这样的页面需求,最常见的方案是用Javascript日期选择组件。这几乎是无可争议、别无选择的做法。你可以在搜寻一下“javascript 日期选择框”,会发现有无数的可选择的JavaScript组件。大部分这些日期选择组件都提供将日期填充到指定的输入框里的功能。日
2016-06-26 21:20:40 86705 5
原创 【每天一道leetcode】1:N-Queens
The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens attack each other.Given an integer n, return all distinct solutions to the n-queens puzzle.
2016-06-25 16:20:42 845
原创 前端控件之树型结构dTree.js使用
dTree.js和dTree.css下载地址:http://www.destroydrop.com/javascripts/tree/对于小型的树型应用来说,dtree是一个不错的选择。先看一眼dtree给的例子构造静态树首先引入css文件和js文件12<link
2016-06-25 14:59:34 10714 2
原创 J2EE开发:struts2 文件下载
Struts2文件上传:http://blog.csdn.net/chenchaofuck1/article/details/51758192文件下载是一个很常见的功能,用struts2实现文件下载的步骤:一)定义一个Action类,FileDownload.java[java] view plain copy
2016-06-25 13:49:10 680
原创 J2EE开发:struts2 文件上传(单个文件与多个文件)
简述:Struts2的文件上传其实也是通过拦截器来实现的,只是该拦截器定义为默认拦截器了,所以不用自己去手工配置,指定用户上传文件的大小,有两种方式:1)默认是在default.properties 文件的 struts.multipart.maxSize=2097152 键值指定为2097152 也就是2M,通过计算 2097152/(1024*1024)
2016-06-25 13:44:50 1970
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人