自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (2)
  • 收藏
  • 关注

转载 Nio

基础概念缓冲区操作  缓冲区及操作是所有I/O的基础,进程执行I/O操作,归结起来就是向操作系统发出请求,让它要么把缓冲区里的数据排干(写),要么把缓冲区填满(读)。如下图内核空间、用户空间 上图简单描述了数据从磁盘到用户进程的内存区域移动的过程,其间涉及到了内核空间与用户空间。这两个空间有什么区别呢? 用户空间就是常规进程(如JVM)所在区域,用户空间是非特权区域,如不能直接

2016-04-27 11:11:16 413

转载 原理分析之三:初始化(配置文件读取和解析)

1. 准备工作  编写测试代码(具体请参考《Mybatis入门示例》),设置断点,以Debug模式运行,具体代码如下: Java代码  String resource = "mybatis.cfg.xml";    Reader reader = Resources.getResourceAsReader(resource);    SqlSessionFactory 

2016-04-24 15:28:40 250

转载 原理分析之二:框架整体设计

1.引言本文主要讲解Mybatis的整体程序设计,理清楚框架的主要脉络。后面文章我们再详细讲解各个组件。 2.整体设计2.1 总体流程(1)加载配置并初始化      触发条件:加载配置文件      配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句

2016-04-24 15:27:27 350

转载 原理分析之一:从JDBC到Mybatis

1.引言本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架。再而论述Mybatis作为一个数据持久层框架本身有待改进之处。  2.JDBC实现查询分析我们先看看我们最熟悉也是最基础的通过JDBC查询数据库数据,一般需要以下七个步骤:(1)  加载JDBC驱动(2)  建立并获取数据库连接(3)

2016-04-24 15:23:04 222

转载 Java中String的设计原理

首先,必须强调一点:String Pool不是在堆区,也不是在栈区,而是存在于方法区(Method Area)解析:String Pool是常量池(Constant  Pool)中的一块。我们知道,常量就是不可以再改变的值,给它建一个池子很明显是为了加快程序运行的速度;在一个程序中,常量和变量是相对存在的;变量因为可变性所以一般存在于栈中,而常量去作为一个特殊群体被存在在常

2016-04-20 12:04:25 710

转载 Spring源码(一)——Bean加载过程

之前的学习,一直在强调实践的过程,讲究开发的速度,未曾去深究底层实现的原理。昨天就遇到了一个天大的教训,也使自己得以警醒,面撒的大可以,但是必须要做到精,不然好像什么都知道,但是什么都说的不是很透彻,这点很不好!!以下文为引用某大牛的实践过程。==========================================================================

2016-04-20 11:58:52 1281

转载 Spring事务详解

附一、Spring事务类型详解PROPAGATION_REQUIRED,readOnlyPROPAGATION_REQUIRED估计有好多朋友还没有弄清楚里面的值的意思,仔细看完下面应该知道自己什么情况下面应该使用什么样的声明。^_^Spring中常用事务类型:PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选

2016-04-15 11:26:45 404

原创 Spring事务嵌套

最近做的项目中遇到事务嵌套的问题,被坑了一把。原因出在没有能够深刻理解事务声明中不同事务传播属性配置的的含义。原来想象是serviceA的方法调用ServiceB(级别次要)的方法用同一个事务来执行,serviceB在执行报异常时,tryCatch住B的异常然后serviceA继续执行,我便"顺理成章"的认为methodA和methodB都各自有自己的事务,结果确实serviceA也同时抛异常

2016-04-15 11:13:44 4638

原创 Sqool和Hive、HBase简介

Sqool和Hive、HBase简介SqoopSqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的开源工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。Hive不想用程序语言开发MapReduce的朋友比如DB们,熟悉SQL的

2016-04-13 17:54:56 2155

转载 hadoop、storm和spark的区别、比较

一、hadoop、Storm该选哪一个?为了区别hadoop和Storm,该部分将回答如下问题:1.hadoop、Storm各是什么运算2.Storm为什么被称之为流式计算系统3.hadoop适合什么场景,什么情况下使用hadoop4.什么是吞吐量首先整体认识:Hadoop是磁盘级计算,进行计算时,数据在磁盘上,需要读写磁盘;Storm是内存级计算,数据直接通过

2016-04-11 11:19:59 14240

原创 为什么是0不是1

int i = 0;i = i++;System.out.println(i);代码如上,为什么输出的i是0而不是1呢?来一起看一下上面那段代码都做了什么:int oldValue = i; i = i + 1;i = oldValue;换句话说,这是一个普遍的误解,增量是最后发生的,表达式赋值之后自增才会立即执行。

2016-04-11 11:08:48 734

原创 Java线程池的使用

JAVA 线程池 API

2016-04-11 10:25:06 283

翻译 MyBatis Generator中文文档

MyBatis Generator中文文档MyBatis Generator中文文档地址:http://mbg.cndocs.tk/该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的也会有一定的障碍,所以本章根据该中文文档以及实际应用,使用通俗的语言来讲解详细的配置。本文中所有节点的链接都是对应的中文文档地址,可以点击查看详细信

2016-04-11 10:10:33 10608 1

《go入门指南》

用更少的代码,更短的编译时间,创建 行更快的程序,享受更多的乐趣 对于 习 Go 编程语言的爱好者 说,这本书无疑是最适合 的一本书籍,这里包含了 前最全面的 习资源。本书通 过对官方的在线文 、名人博客、书籍、相关文章以及演讲的资料收集和整理, 结合我自身在软件工程、编程语言和 据库开发的授课经验, 这些零碎的知识点组织成系统化的 念和技术分类 进行讲解。 着软件规模的不 扩大,诸多的 者和谷歌的开发者们在公司 部的软件开发过程中开始经历大量的挫折,在诸多问 题上都不能给出令人满意的解 方案,尤其是在使用 C++ 开发大型的服务端软件时,情 更是不容乐观。由于二进 制文件一般都是非常巨大的,因此需要耗费大量的时间在编译这些文件上,同时编程语言的设计思想也已经非常陈 , 这些情 都充分证明了现有的编程语言已不符合时下的生产环境。 管硬件在过去的 十年中有了飞速的发展,但人们 依 有 到机 去改变 C++ 在软件开发的重要地位, 在实际开发过程中忍受着 所带 的令人头疼的一些问题。 因此 者们坐下 总结出了现在生产环境 软件开发之间的主要矛盾, 尝试设计一门全新的编程语言 解 这些问 题。

2019-03-19

空空如也

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

TA关注的人

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