细说Java IO相关

细说Java IO相关
概述 在大部分的行业系统或者功能性需求中,对于程序员来说,接触到io的机会还是比较少的,其中大多也是简单的上传下载、读写文件等简单运用。最近工作中都是网络通信相关的应用,接触io、nio等比较多,所以尝试着深入学习并且描述下来。 io往往是我们忽略但是却又非常重要的部分,在这个讲究人机交互体验的年代,io问题渐渐成了核心问题。Java传统的io是基于流的io,从jdk1.4开始提供基于块的io,即nio,...

大话Future模式

大话Future模式
说在前面的话 什么是Future 模式呢?对于多线程,如果线程A要等待线程B的结果,那么线程A没必要等待B,直到B有结果,可以先拿到一个未来的Future,等B有结果是再取真实的结果。其实这个模式用的很多,比如浏览器下载图片的时候,刚开始是不是通过模糊的图片来代替最后的图片,等下载图片的线程下载完图片后在替换。 思想 实例 Main:系统启动,调用Client发出请求 package com.ifcoding.future; pub...

从零学习Hadoop之HDFS的Federation机制

从零学习Hadoop之HDFS的Federation机制
上一篇介绍了Hadoop2中的新特性HA机制,是由于单节点故障而开发的,并且提到随着集群规模的变大,NameNode成为性能的瓶颈,而这次介绍一下HDFS的Federation机制就是为了解决这两个问题而开发的。 在Hadoop1的HDFS架构中,HDFS集群只有一个名字空间,并且只有单独的一个NameNode,这个NameNode负责对这单独的一个名字空间进行管理。这也正是单点失效(Single Point Failure)的隐患所在。 可得:HDFS Federa...

Java并发包之线程池

Java并发包之线程池
在之前的所有案例中,我们总是通过启动一个新的线程来执行新的任务。对于一些小的应用来说, 这是OK的,但是对于一些大型的应用来说,这是不太合适的。例如对于一个高并发的web服务器,如果每一个HTTP请求,我们都使用一个新的线程来处理, 那么内存中必然会存在大量的线程,线程的上下文切换以及线程的创建与销毁,都会消耗大量的资源。 因此我们最好将线程的管理、创建、销毁等操作与线程需要执行的任务...

Spring整合MyBatis配置中的问题

Spring整合MyBatis配置中的问题
最近在学习Java高并发秒杀API,项目使用SpringMVC、Spring和MyBatis框架来实现,其中必然要学习Spring与MyBatis的整合。 在spring整合mybatis单元测试中碰到如下问题: org.springframework.beans.factory.BeanCreationException:   Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring/spring-dao.xml]:   Cannot resolve reference to bean 'classpath...

常用经典算法之分治法

常用经典算法之分治法
基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。...

初识Java虚拟机的基本结构

初识Java虚拟机的基本结构
Java虚拟机是什么?是做什么的?可能这些问题在我们学习Java之初就伴随这我们。 一般来说我们使用IDE将我们编写好的Java程序,点击运行,在不出错的情况下,就会得到我们想要的结果。那么这期间到底发生了什么?先看下图: 知道的是Java程序通过编译器编译成class文件,那么后面到底发生了什么,就是Java虚拟机的工作。现在我们先要认识Java虚拟机的基本结构。 类加载子系统 类加载子系统负责从文件系统...

图解字符串匹配之Horspool算法和Boyer-Moore算法

图解字符串匹配之Horspool算法和Boyer-Moore算法
说在前面的话 字符串匹配问题要求在一个较长的称为文本的n个字符的串中,寻找一个称为模式的给定的m个字符的串。 Horspool算法是Boyer-Moore算法的一个简化版本,都是从右到左进行比较。 Horspool算法 horspool算法将主串中匹配窗口的最后一个字符跟模式串中的最后一个字符比较。如果相等,继续从后向前对主串和模式串进行比较,直到完全相等 或者在某个字符处不匹配为止(如下图中的α与σ失配)。如果不匹...

学习Hadoop-说在前面的话

学习Hadoop-说在前面的话
关于Hadoop,大学期间对这个词汇都是闻所未闻,更别说是做什么的了,最初最初接触到这个词是考研复试前,大海跟我提到google的MapReduce,根本无法想象这是什么。无独有偶选得导师在复试后让我回去学习一下Hadoop和Yarn,带着好奇和疑问买了《Hadoop权威指南》,书到手,感觉是完全是天书啊,完全看不懂啊。只有慢慢啃和从网上查相关资料,完全是盲人摸象,既然如此就一边实践一边了解。于是就搭建Hadoop伪...

从零学习Hadoop之文件在HDFS中的读取和写入

从零学习Hadoop之文件在HDFS中的读取和写入
在《从零学习Hadoop之Hadoop的RPC机制》中介绍了Hadoop的RPC机制,本文接着讲述文件是如何在HDFS中进行读取和写入的,注意其中使用到RPC的地方。 文件的读取 客户端以及与之交互的HDFS、NameNode、DataNode的读取数据流如下图所示:     文件读取的过程如下: 使用HDFS提供的客户端开发库Client,向远程的NameNode发起RPC请求。 NameNode会视情况返回文件的部分或者全部Block列表,对于每个Blo...
Copyright © If Coding 保留所有权利.   Theme  Ality   

用户登录