自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 Hive浅析

概述Hive——Hadoop最常用的工具。对于Hadoop的出现,无论是业界还是学术界对其都给予了极高的关注度,Hadoop及其生态圈提供了一个成熟高校的处理海量数据集的解决方案。数据基础架构大都基于关系型数据库(RDBMS)和结构化查询语言(SQL)。这就是Hive出现的原因。Mapreduce需要几十行代码完成的工作,Hive区区几行HiveQL就能胜任。HiveQL是SQL语句的一种方言(di

2017-03-29 14:56:19 437 1

原创 算法数学基础

定理①如果存在正参数c和n0使得当N≥n0时T(N)≤cf(N),则记为T(N)=O(f(N))。如果存在正参数c和n_0使得当N≥n_0时T(N)≤cf(N),则记为T(N)=O(f(N))。②如果存在正参数c和n0使得当N≥n0时T(N)≥cg(N),则记为T(N)=Ω(g(N))。如果存在正参数c和n_0使得当N≥n_0时T(N)≥cg(N),则记为T(N)=\Omega(g(N))。③当且仅

2017-03-26 15:59:59 608 1

原创 Java线程状态转换

1、概述2、线程的优先级和线程让步yield()线程的让步是通过Thread.yield()来实现的。yield()方法的作用是:暂停当前正在执行的线程对象,并执行其他线程。要理解yield(),必须了解线程的优先级的概念。线程总是存在优先级,优先级范围在1~10之间。JVM线程调度程序是基于优先级的抢先调度机制。在大多数情况下,当前运行的线程优先级将大于或等于线程池中任何线程的优先级。但这仅仅是大

2017-03-24 21:16:54 318

转载 你真的了解try{ return }finally{}中的return吗?

谁能给我我解释一下这段程序的结果为什么是2而不是3?class Test { public int aaa() { int x = 1; try { return ++x; } catch (Exception e) { } finally { ++x; }

2017-03-24 20:47:25 300

原创 Java NIO之Buffer中flip()、rewind()、clear()方法解析

1、flip() public final Buffer flip() { limit = position;//将当前的position位置赋值给limit position = 0;//将position赋值为0,即归位 mark = -1; return this; }2、rewind() public fin

2017-03-18 14:52:23 1040

原创 final关键字解析

1、修饰类该类称为“final类”。该类不能被其他类继承。该类的成员变量可根据需要用final修饰。该类的成员方法默认被final修饰。2、修饰方法该方法不能被子类重写。注意:private方法会隐式将其指定为final方法。3、修饰变量修饰基本数据类型变量时(如int、float、double等),变量的值不能被修改;修饰引用数据类型变量时(如Integer等),引用不能被修改(不能将其他引用指向

2017-03-16 13:54:14 250

原创 Java 内存模型简介

Java 内存模型是通过各种操作来定义的,包括对变量的读 / 写操作,监视器的加锁和释放操作,以及线程的启动和合并操作。JVM 为程序中所有的操作定义了一个偏序关系,称为 Happens-Before。要想保证执行操作 B 的线程看到操作 A 的结果,在 A 和 B 中之间必须满足 Happens-Before 关系。如果两个操作之间缺乏 Happens-Before 关系,那么 JVM 可以对它们

2017-03-13 14:23:08 251

原创 AVL 平衡二叉树旋转方法

1、预备知识定义树(tree)的一种自然的方式是递归的方式。一棵树使一些节点的集合。这个集合可以是空集;若不是空集,则树由称作根(root)的节点 r 以及 0 个或多个非空的(子)树 T1,T2,T3,…,Tk 组成。这些子树每一颗的根都被来自根 r 的一条有向的边所连结。每一颗子树的根叫做根 r 的儿子(child),而根 r 是每一颗子树的根的父亲(parent)。没有儿子的根叫做树叶(lea

2017-03-10 21:05:10 10790 5

原创 设计模式六大原则

一、单一职责原则定义:一个类只负责一个功能领域中的相应职责。在开发中,一个类愈是集成多的功能,凝聚多的职责,这个类的复用性,可扩展性就愈弱。因此,我们在开发某个软件的各个功能模块时,尽量使一个类就负责履行具体某一类的职责,实现其应有的功能。单一职责原则是软件开发中高内聚,低耦合的指导方针。开发过程应紧紧围绕这一方针进行,这有利于软件的后期维护。二、开闭原则定义:一个软件实体应当对扩展开放,对修改关闭

2017-03-09 21:56:11 270

转载 Java 字节流和字符流的区别

转载自:http://blog.csdn.net/cynhafa/article/details/6882061 java 字节流和字符流的区别 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示。 下面以两个写文件的操作为主

2017-03-08 11:08:15 251

原创 “==”与 equals 方法的区别

“==”比较的是栈内存中两个引用(reference)在堆内存中的对象的内存地址值。equals 用于自定义比较法则,一般情况下,多用于比较两个对象值的大小。在 Object 类中,“==”与 equals 方法的作用完全相同,equals 方法体内就是“==”。这是 Object 中有关 equals 方法的源代码:public boolean equals(Object obj) {

2017-03-07 22:25:08 245

转载 Java并发编程:volatile关键字解析

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一

2017-03-06 14:42:00 310

原创 堆排序(Heap Sort)

1、算法原理堆是完全二叉树,堆分为小根堆和大根堆,这里主要讲大根堆,也就是堆的最顶部比其他任何一个子节点都要大(或者等于)。堆的排序复杂度为O(nlogn)。①时间复杂度它是不稳定的排序方法。(排序的稳定性是指如果在排序的序列中,存在前后相同的两个元素的话,排序前 和排序后他们的相对位置不发生变化)②算法稳定性堆排序的时间,主要由建立初始堆和反复重建堆这两部分的时间开销构成,它们均是通过调用Heap

2017-03-05 21:51:16 436

原创 Maven快速镜像(大幅提高下载速度)

<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>

2017-03-05 15:55:37 524

原创 JVM解析

1、JVM概述JVM(Java Virtual Machine)即 Java 虚拟机。虚拟机就是抽象计算机(虚拟计算机)。Java 虚拟机将 Java 、Scala、Kotlin、Groovy、JRuby、Jython、PHP8(IBM) 等基于 Java 虚拟机的高级语言所编写的程序代码转换为本地的机器指令,这些机器指令经过专用的编译器编译之后,交给 CPU(Central Processing

2017-03-05 14:02:05 253

原创 Java之transient关键字解析

1、概述transient 关键字只能修饰变量,不能修饰类、方法。被 transient 关键字修饰的变量不能被自动序列化(实现Serializable接口)。被 static 关键字修饰的变量,无论是否被 transient 关键字修饰,都不能被自动序列化。被 static 关键字修饰的变量,在反序列化时,看似被得到了之前序列化对象的值了,其实不然,是 JVM 方法区中的动态属性,非反序列

2017-03-02 20:06:28 316

原创 TreeSet源码分析

1、概述TreeSet 是 Set 接口的另一个实现类,它内部采用自平衡的排序二叉树来存储元素,这种结构保证 TreeSet 集合中没有重复的元素,并且对元素进行排序。TreeSet 集合存入一个元素时,都会将存入的元素与其他元素比较,这就要求 TreeSet 集合存入的元素必须是实现Comparable接口的compareTo方法的,否则运行时将报异常。附 Type hierarchy:①平衡二叉

2017-03-02 19:01:28 604

原创 Java IO流经典实例

IO流框架字节流1、FileInputStream&FileOutputStreamimport java.io.FileInputStream;import java.io.FileOutputStream;/** * @author Hanlin Wang */public class FileStream { public static void main(String[] ar

2017-03-01 21:38:27 2461 1

空空如也

空空如也

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

TA关注的人

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