- 博客(106)
- 收藏
- 关注
原创 synchronized底层
Synchronized的底层实现依赖于JVM, 在 HotSpot JVM实现中,锁有个专门的名字:对象监视器。当多个线程同时请求某个对象监视器时,对象监视器会设置几种状态用来区分请求的线程:Contention List:一个虚拟的队列,所有请求锁的线程将被首先放置到该竞争队列Entry List:Contention List中那些有资格成为候选人的线程被移到Entr
2016-10-07 21:28:20 391
转载 集合问题汇总
1.Java集合框架是什么?说出一些集合框架的优点?每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及它们的实现。集合框架的部分优点如下:
2016-09-26 18:30:15 607
转载 计算机网络之面试常考
转载自:http://www.nowcoder.com/discuss/1937整理一下计算机网络部分的面试常考点,参考书籍:《计算机网络》第五版 谢希仁的那本,希望对大家有所帮助OSI,TCP/IP,五层协议的体系结构,以及各层协议OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP分层(4层):网络接口层、 网际层、运输层、
2016-09-01 23:36:44 547
转载 大数据相关岗位需了解信息
自己的专业方向是机器学习、数据挖掘,就业意向是互联网行业与本专业相关的工作岗位。各个企业对这类岗位的命名可能有所不同,比如数据挖掘/自然语言处理/机器学习算法工程师,或简称算法工程师,还有的称为搜索/推荐算法工程师,甚至有的并入后台工程师的范畴,视岗位具体要求而定。机器学习、大数据相关岗位的职责自己参与面试的提供算法岗位的公司有 BAT、小米、360、飞维美地、宜信、猿题库 等,根
2016-08-30 09:13:50 1238
转载 50个Java多线程面试题
本文装载自:http://www.nowcoder.com/discuss/334?type=2&order=0&pos=3&page=1不管你是新 程序员还是老手,你一定在面试中遇到过有关线程的问题。Java 语言一个重要的特点就是内置了对并发的支持,让 Java 大受企业和程序员的欢迎。大多数待遇丰厚的 Java 开发职位都要求开发者精通多线程技术并且有丰富的 Java 程序开发、调试
2016-08-21 16:18:21 346
原创 hdfs 文件提交与mr作业提交流程分析
看了不少东西,想把他们总结出来,若有错误还望不吝赐教在hdfs架构中可以吧Client认为是送货人,nn是仓库管理员,dn是一个个仓库。当客户端要送货(文件)的时候,进行如下步骤1.送货员通过rpc通信告知仓库管理员(nn)说我这里有货物,请告诉我放在哪里啊2.仓库管理员通过查询所维护的仓库信息查出哪个仓库有空余空间,将查询结构反馈给送货员3.送货员将货物放入管理员所说的仓库即可
2016-08-21 13:35:49 1652
转载 IO模型浅析
原文出处:http://www.cnblogs.com/fanzhidongyzby/p/4098546.html服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1) 同步阻塞IO(Blocking IO):即传统的IO模型。(2) 同步非阻塞 IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设
2016-08-21 11:21:17 228
转载 mysql之 触发器(trigger):监视某种情况,并触发某种操作。
原文链接:http://www.cnblogs.com/zzwlovegfj/archive/2012/07/04/2576989.html触发器(trigger):监视某种情况,并触发某种操作。触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/upd
2016-08-21 01:43:30 4909 1
转载 Mysql 存储过程基本语法
delimiter //一般情况下MYSQL以;结尾表示确认输入并执行语句,但在存储过程中;不是表示结束,因此可以用该命令将;号改为//表示确认输入并执行。一.创建存储过程1.基本语法:create procedure sp_name()begin.........end2.参数传递二.调用存储过程1.基本语法:call sp
2016-08-21 01:39:24 240
转载 mysql之视图
本文转载自:http://www.cnblogs.com/zzwlovegfj/archive/2012/06/23/2559596.html1.什么是视图?视图是由查询结果形成的一张虚拟表。2.什么时候要用到视图?如果某个查询结果出现的非常频繁,也就是,要经常拿这个查询结果来做子查询3.视图的创建语法:create view 视图名 as sele
2016-08-21 01:00:39 275
转载 MapReduce:详解Shuffle过程
/** * author : 冶秀刚 * mail : dennyy99@gmail.com */ Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job
2016-08-20 10:02:54 213
转载 hadoop性能调优之参数调优
本文转载自:http://blog.csdn.net/fp196391196391/article/details/8302121这里主要针对Mapreduce的性能调优。这一两个月在做mapreduce的性能调优,有些心得,还是要记下来的,以郷后人~这里主要涉及的参数包括:HDFS:dfs.block.sizeMapredure:io.
2016-08-20 10:00:38 315
转载 Spark分布式计算和RDD模型研究
本文转载自:http://blog.csdn.net/dc_726/article/details/413817911背景介绍现今分布式计算框架像MapReduce和Dryad都提供了高层次的原语,使用户不用操心任务分发和错误容忍,非常容易地编写出并行计算程序。然而这些框架都缺乏对分布式内存的抽象和支持,使其在某些应用场景下不够高效和强大。RDD(Resilient D
2016-08-19 21:31:02 288
转载 Hadoop/Spark相关面试问题总结
本文转载自:http://blog.csdn.net/qq1010885678/article/details/46916857Hadoop/Spark相关面试问题总结面试回来之后把其中比较重要的问题记了下来写了个总结: (答案在后面)1、简答说一下hadoop的map-reduce编程模型2、hadoop的TextInputFormat作用是什么,如何自定
2016-08-19 18:20:37 573
转载 Hadoop1.x与Hadoop2的区别
六、Hadoop1.x与Hadoop2的区别1、变更介绍Hadoop2相比较于Hadoop1.x来说,HDFS的架构与MapReduce的都有较大的变化,且速度上和可用性上都有了很大的提高,Hadoop2中有两个重要的变更:l HDFS的NameNodes可以以集群的方式布署,增强了NameNodes的水平扩展能力和可用性;l MapReduce将JobTracker中
2016-08-19 17:02:07 220
转载 Redis内部数据结构详解之字典(dict)
本文所引用的源码全部来自Redis2.8.2版本。Redis中字典dict数据结构与API相关文件是:dict.h, dict.c。本文讲解的不是很详细,可以同时参考Redis实现与设计一书中字典部分,本文关于字典的核心代码的注释可以参考。字典,简单说就是存储key-value键值数据,当然value=NULL那么就是集合了。字典通俗来说就是C++ STL中的m
2016-08-18 16:20:30 1831 1
转载 分析Redis架构设计
一、前言因为近期项目中开始使用Redis,为了更好的理解Redis并应用在适合的业务场景,需要对Redis设计与实现深入的理解。我分析流程是按照从main进入,逐步深入分析Redis的启动流程。同时根据Redis初始化的流程,理解Redis各个模块的功能及原理。二、redis启动流程1.初始化server变量,设置redis相关的默认
2016-08-18 15:51:23 187
转载 理解MySQL——架构与概念
本文转载自:http://www.cnblogs.com/hustcat/archive/2009/10/18/1585626.html写在前面:最早接触的MySQL是在三年前,那时候MySQL还是4.x版本,很多功能都不支持,比如,存储过程,视图,触发器,更别说分布式事务等复杂特性了。但从5.0(2005年10月)开始,MySQL渐渐步入企业级数据库的行列了;复制、集群、分区、分布式事务
2016-08-18 13:14:23 209
转载 理解MySQL——索引与优化
写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间),
2016-08-18 13:11:33 203
转载 MySQL存储引擎总结
本文转载自:http://www.jb51.net/article/55849.htm这篇文章主要介绍了MySQL存储引擎总结,本文讲解了什么是存储引擎、MyISAM、InnoDB、MEMORY、MERGE等内容,需要的朋友可以参考下前言在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库。而在设计表的时候,我们都会关注一个问题
2016-08-17 14:27:29 139
转载 Mysql查询优化器
本文转载自:http://blog.sina.com.cn/s/blog_78dab8d20100x973.html本文的目的主要是通过告诉大家,查询优化器为我们做了那些工作,我们怎么做,才能使查询优化器对我们的sql进行优化,以及启示我们sql语句怎么写,才能更有效率。那么到底mysql到底能进行哪些优化那,下面通过以下几个方面来探讨一下:1 常量转化
2016-08-17 14:09:54 166
转载 一致性hash算法
转载请说明出处:http://blog.csdn.net/cywosp/article/details/23397179 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正
2016-08-16 10:28:45 185
转载 Java泛型
一. 泛型概念的提出(为什么需要泛型)?首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(String[] args) { 4 List list = new ArrayList(); 5 list.add("qqyumidi")
2016-08-15 10:07:19 147
原创 B-、B+、B*树介绍
B-树是一种多路搜索树(并不是二叉的):1.定义任意非叶子结点最多只有M个儿子;且M>2;2.根结点的儿子数为[2, M];3.除根结点以外的非叶子结点的儿子数为[M/2, M];4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字)5.非叶子结点的关键字个数=指向儿子的指针个数-1;6.非叶子结点的关键字:K[1]
2016-08-11 16:56:36 378
转载 面试准备之--linux
1. 指令、选项或参数之间不论空几个格,shell都视为一个空格。2. 指令太长时,可以使用“\”(反斜杠)符号使指令连续到下一行。3. Linux环境下,字母区分大小写。4. shell就是用户接口,Linux下默认的用户接口就是bash shell。5. 如果想让当前程序终止,可以键入ctrl
2016-08-07 09:47:09 209
原创 数据库问题原因详解(脏读、不可重复读、幻读)
一、脏读、不可重复读、幻读1、脏读:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。例如:张三的工资为5000,事务A中把他的工资改为8000,但事务A尚未提交。与此同时,事务B正在读取张三的工资,读取到张三的工资为8000。随后,事务A发生异常,而回滚了事务。张三的工资又
2016-08-06 11:17:08 4027
转载 从关系型数据库到非关系型数据库
1. 关系型数据库关系型数据库,是指采用了关系模型来组织数据的数据库。关系模型是在1970年由IBM的研究员E.F.Codd博士首先提出的,在之后的几十年中,关系模型的概念得到了充分的发展并逐渐成为主流数据库结构的主流模型。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。关系模型中常用的概念:
2016-08-06 00:48:14 218
转载 基于字节的IO操作
包括:FileInputStreamByteArrayInputStreamObjectInputStreamBufferedInputStreamDataInputStream上面 5 个为常用的基于字节操作的 IO 操作类,其中前三个 相当于 装饰器模式的 ConcreteComponent,后两个是具体的装饰者类。传送门:装饰器模式
2016-08-05 17:27:47 303
原创 Collection,List,ArrayList,Vector,LinkedList(实现方式,对比)
Collection ListCollection 是 Java 集合的一个根接口,JDK 没有它的实现类。 内部仅仅做 add(),remove(),contains(),size() 等方法的声明。List 接口是Collection 接口的一个子类,在Collection 基础上扩充了方法。同时可以对每个元素插入的位置进行精确的控制,它的主要实现类有 ArrayList,
2016-08-05 17:26:14 630
转载 Java 集合:Collection 系列(HashSet)
包括一. HashSet 简介二. TreeSet 简介一. HashSet 简介HashSet 继承于 Set 集合,Set 集合 不允许有重复的值,并且最多只有一个空元素,而 Set 集合 又继承于 Collection 集合,所以说 HashSet 也是用于存储当个元素,不是像HashMap 的键值对的形式,但是HashSet 的实现利用了 H
2016-08-05 17:25:18 254
转载 Java 集合:Map 系列(WeakHashMap概念)
WeakHashMap 是一个实现了 Map 的哈希表,当它的 key 值不再被引用的时候,它的 entry 会自动被释放。所以说,当放入一个键值对的时候,过一段时间,该键值对可能不再存在。WeakHashMap 支持空值和空键。该 WeakHashMap 不是 synchronized 的,当然可以使用 Collectioins 的 synchronizedMap 方法来对 该 Map 进行
2016-08-05 17:24:31 178
转载 Java 集合:Map 系列(ConcurrentHashMap概念)
ConcurrentHashMap 是 JDK5 中支持高并发,高吞吐量的线程安全HashMap 的实现。它支持完全并发的读和一定程度的并发的写。 ConcurrentHashMap允许多个修改操作并发的进行,关键在于使用了锁分离的技术。它使用了多个锁来控制 hash 表不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每
2016-08-05 17:23:54 197
转载 Java 集合:Map 系列(HashMap,HashTable)
包括:一. Map 介绍二. HashMap 介绍三. HashTable 介绍一. Map Map 是把键映射到值,也就是以一个键值对的形式存储。一个映射不能包含重复的键,一个键只能有一个值。某些映射可以保证其顺序,如TreeMap,某些则不行,如HashMap。二. HashMap
2016-08-05 17:23:05 134
转载 Java 多线程:Lock 关键字
前言当我们了解了 多线程生成的原因 之后,会有相应的解决办法,最典型的就是 synchronized 和 lock。lock可以说是 synchronized 的一个替代品,synchronized 能做的事,lock 基本都可以做,而且能做得更好。他们的一些区别是:lock在获取锁的过程可以被中断。lock可以尝试获取锁,如果锁被其他线程持有,则返回 false,不会使当
2016-08-05 17:22:02 187
转载 Java 多线程:分析线程池的实现原理
我们都知道,所谓线程池,那么就是相当于有一个池子,线程就放在这个池子中进行重复利用,能够减去了线程的创建和销毁所带来的代价。但是这样并不能很好的解释线程池的原理,下面从代码的角度分析一下线程池的实现。线程池的相关类对于原理,在 Java 中,有几个接口,类 值得我们关注:ExecutorExecutorServiceAbstractExecutorServiceThre
2016-08-05 17:20:11 263
转载 Java 多线程:生产者消费者模型
概念生产者消费者问题描述了两个线程(即生产者线程和消费者线程),共享固定大小的缓冲区,在实际运行中可能出现的问题。 - 生成者:生成一定量的数据放到缓冲区中,然后重复此过程。 - 消费者:在缓冲区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区满时加入数据,消费者也不会在缓冲区中空时消耗数据。要解决该问题,就必须让生产者在缓冲区满时休眠(要么干脆就放弃数据
2016-08-05 17:19:18 137
转载 Java 多线程:synchronized 多线程同步关键字
前言在 多线程生成的原因(Java内存模型与i++操作解析) 中,介绍了Java的内存模型,从而可能导致的多线程问题。synchronized就是避免这个问题的解决方法之一。除了 synchronized 的方式,还有 lock,condition,volatile,threadlocal,atomicInteger,cas等方式。synchronized 用法它的
2016-08-05 17:17:49 216
转载 Java 多线程:AtomicInteger源码分析——基于CAS的乐观锁实现
AtomicInteger源码分析——基于CAS的乐观锁实现1. 悲观锁与乐观锁 我们都知道,cpu是时分复用的,也就是把cpu的时间片,分配给不同的thread/process轮流执行,时间片与时间片之间,需要进行cpu切换,也就是会发生进程的切换。切换涉及到清空寄存器,缓存数据。然后重新加载新的thread所需数据。当一个线程被挂起时,加入到阻塞队列,在一
2016-08-05 17:17:09 256
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人