自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

玉衡

The truth is what it is, not what you see.

  • 博客(37)
  • 收藏
  • 关注

原创 【MyBatis】mybatis执行流程与缓存机制分析

1. 编程式使用mybatis首先,我们直观地看一下怎样编程式(非配置式)使用mybatis作为ORM框架实现数据库的基本操作。 private static void testId() throws IOException { InputStream is = Resources.getResourceAsStream("mybatis-config.xml");

2016-08-29 11:23:42 1206

原创 【Spring】揭开Spring朦胧的面纱

使用Spring的IOC容器获取一个Bean的实质,其实可以简化成使用反射的一个过程。首先这是一个Bean的定义。Student beanpackage cn.edu.au.selection.service;public class Student { private String name; private int age; public Student() { }

2016-07-23 16:19:58 670

原创 【Hive】Hive编程指南(Part 2)

第五章 HiveQL:数据操作向管理表中装载数据LOAD DATA LOCAL INPATH '${env:HOME}/california-employees'OVERWRITE INTO TABLE employeesPARTITION (country = 'US', state = 'CA');如果分区目录不存在的话,这个命令会先创建分区目录,然后再将数据拷贝到该目录下。

2016-06-26 16:10:16 704

原创 【Hive】Hive编程指南

第一章 基础知识HiveHive不是一个完整的数据库。Hadoop以及HDFS的设计本身约束和局限性地限制了Hive所能胜任的工作。其中最大的限制就是Hive不支持记录级别的更新、插入或者删除操作。同时,因为Hadoop是一个面向批处理的系统,而MapReduce任务(job)的启动过程需要消耗较长的时间,所以Hive延时比较严重。Hive不支持事务。Hive是最适合数据仓库应用程序的。

2016-06-22 17:06:42 1015

原创 【java】关于interface成员变量的修饰符

同学说,interface只能被public static final修饰,但是我记得的看书说确实默认的修饰符是它们三个,也就是说你可以自己指定修饰符比如private什么的。现在就来做个实验看看到底什么情况。首先,来看看自己添加修饰符的情况:显然如同学所说,"only public, static & final are permitted".

2016-04-20 09:53:02 4404 1

原创 【java】foreach是如何实现的?

1.正文因为想要了解编译器是如何实现foreach功能的,就先写一个foreach循环,看看字节码长啥样。public class ForEach { List list; public void display1(){ for(String s : list){ System.out.println(s); } }}

2016-04-06 22:53:57 5177

原创 【jdk1.8】PriorityQueue源码分析

#优先级队列内部维护了一个堆的数据结构1. 成员变量 /** * 底层维护一个数组,其中queue[n]的左右两个孩子分别是 * queue[2*n+1]和queue[2*(n+1)](因为是从零开始的)。 * 最高优先级即比较后最小的元素在队首queue[0]。 */ transient Object[] queue;

2016-04-03 22:18:33 414

原创 【Java网络编程】Socket的使用

1. Server.javaimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public c

2016-04-03 16:32:53 338

原创 【jdk1.8】Integer源码分析

先看下Integer的类声明:public final class Integer extends Number implements Comparable<Integer>同样地,Integer是一个不变类,实现了Comparable接口,继承了Number类(见下图)。 除此之外,Integer类还有三点需要说的。1. 静态内部类IntegerCache private static

2016-03-24 10:34:43 1322

原创 【jdk1.8】String源码分析

String类的声明public final class String implements java.io.Serializable, Comparable<String>, CharSequence首先可以看到String类是一个不变类,被final修饰,所以是不可继承的。 它实现了Serializable接口,还有Comparable(主要就是compareTo方法)与CharSeq

2016-03-24 08:52:35 1458

原创 【jdk1.8】HashMap源码分析

类的继承关系public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable其中,Map接口中规定了map类的常用方法。比如get(Object): V,put(K, V): V,isEmpty(): boolean,size(): int,remove(Objec): V

2016-03-19 19:40:05 669 1

原创 【jvm】类加载的过程

1. 加载在加载阶段,虚拟机需要完成以下3件事情:通过一个类的全限定名来获取此类的二进制字节流。通过这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。数组本身不通过类加载器创建,它是由Java虚拟机直接创建的。 HotSpot虚拟机……

2016-03-13 16:08:40 412

原创 【ubuntu】error: [Errno 98] Address already in use

两种情况分两种情况,首先当你该端口被其他进程占用时,那就需要你修改为一个未使用的端口号重新运行。 另一种是运行程序没有通过<Ctrl> C正常结束而是直接关闭Terminal或者其他非正常途径退出的时候: 通过lsof -i:(port),查看占用该端口号的进程,一般就是刚未正常退出的进程。

2015-12-10 21:23:52 6036

原创 【Python】Java转Python的一些水土不服

regular expressionString text = "你好啊,我的名字叫Ethan Hunt";text = text.replaceAll("(.*?)([a-zA-Z]+)(.*?)", "$1<$2>$3");System.out.println(text);pythonimport re

2015-12-07 22:54:24 829

原创 [Java] Convert Between the Two, String[] and ArrayList<String>

How to convert String[] to ArrayList<String>? String[] arrayOfString = new String[] { "The", "Piano", "Guys", };

2015-11-27 16:21:55 372

原创 【Java相关】Java的Object类

OverviewObject类是Java类层次结构中的根节点。 1. private static native void registerNatives(); 2. public final native Class<?> getClass(); 3. public native int hashCode(); 4. public boolean equals(Object obj);

2015-11-14 15:52:29 498 1

原创 【Nutch】DbUpdaterJob

DbUpdaterJob是比较关键的一个任务,它负责将上一步由种子url解析出来的outlink urls更新到数据库中,以便于以后下一轮的抓取。相当于承担了一个开枝散叶的责任,所谓“不孝有三,无后为大”…… 首先:package org.apache.nutch.crawl;还是先从job开始看起。

2015-08-23 17:21:49 1069

原创 【Nutch】ParserJob

parse的主要工作是对抓取的网页进行解析,解析出其中的text,outlinks和metadata等信息。首先:package org.apache.nutch.parse;

2015-08-23 16:14:51 1310

原创 【Nutch】Nutch的抓取流程

Nutch的抓取流程。N.B. 本文最重要的部分在第三节对比部分!

2015-08-22 17:10:05 2959

原创 【Nutch】Nutch-2.3 + HBase-0.94.14 + Solr-4.10.4 集成配置与安装

Nutch 是一个开源Java 实现的分布式网络爬虫。现在Nutch分为两个版本:1.x和2.x,这两个版本的主要区别在于底层的存储不同。1.x版本是基于Hadoop架构的,底层存储使用的是HDFS,而2.x通过使用Apache Gora,使得Nutch可以访问HBase、Cassandra、MySQL、DataFileAvroStore、AvroStore等等。

2015-08-21 13:44:32 1476

原创 【MatLab】将矩阵写入到文件

%writeMatrix.mfunction writeMatrix(A, path)[row, col] = size(A);fid = fopen(path, 'w');for i=1:row for j=1:col-1 fprintf(fid, '%f\t', A(i,j)); end ...

2015-07-04 14:27:55 1920

原创 【C/C++相关】论程序员写技术博客的重要性

一些细节知识。比如C++动态分配空间、初始化已经释放空间等。

2015-07-04 14:21:20 362

原创 【Nutch】FetcherJob

FetcherJob: 对抓取队列中的网页进行抓取,在reducer中使用了生产/消费者模型

2015-06-05 19:54:19 1162

原创 【Nutch】GeneratorJob

GeneratorJob: 从抓取数据库中产生要抓取的页面放到抓取队列中去

2015-06-04 20:58:55 753

原创 【Nutch】InjectorJob

InjectorJob : 从文件中得到一批种子网页,把它们放到抓取数据库中去。

2015-06-03 16:54:30 734

原创 【the EM algorithm】自己动手,丰衣足食。

1. 首先,用MATLAB生成符合双峰正态分布的随机数r=0.5;mu1=50;sigma1=20;mu2=200;sigma2=20;x=zeros(10000,1);for i=1:10000r1=rand;x(i,1)=(mu2+sigma2*randn)*heaviside(r1-r)+(mu1+sigma1*randn)*heaviside(r-r1);end

2015-03-06 11:18:26 520

原创 【Java相关】Java中TreeSet和HashSet的排序和去重

首先,TreeSet依靠Comparable来排序和去重的。你可以implements Comparable来实现自己的比较函数。import java.util.Set;import java.util.TreeSet;public class OwnStruct { static class IntPair implements Comparable{ int left,rig

2015-01-29 10:38:32 531

原创 【the EM algorithm】期望最大化

EM算法首先来明确一下我们的目标:我们的目标是在观察变量X和给定观察样本的情况下,极大化对数似然函数:其中只包含观察变量(Observed Variable)的概率密度函数

2014-12-17 15:19:52 466

原创 【the EM algorithm】Jensen不等式

Jensen不等式

2014-12-17 10:01:09 3996

原创 【C++primer学习笔记】第11章 泛型算法

1.泛型算法(generic algorithm):因为它们实现共同的操作,所以称之为“算法”;而“泛型”指的是它们可以操作在多种容器类型上——不但可作用于vector或list这些标准库类型,还可用在内置数组类型、设置其他类型的序列上。2.使用find搜索数组

2014-12-11 15:44:44 359

原创 【Effective C++学习笔记】Item5-Item12

Effective C++ item5~item12

2014-09-29 22:09:18 397

原创 【Effective C++ 学习笔记】Item1-Item4

Effective C++ item1 ~ item4

2014-09-24 19:49:18 482

原创 【C++primer学习笔记】第10章 关联容器

1、创建pair的三种方法2、

2014-09-23 09:14:14 380

原创 【C++primer学习笔记】第9章 顺序容器

1、将一个容器复制给另一个容器的时候

2014-09-22 16:40:42 315

原创 【C/C++】细节决定成败

C/C++基本类型和长度1 byte = 8 bit

2014-09-21 15:48:24 398

原创 【ACM】数组的子数组之和的最大值(二维)

#include#define MAX 100using namespace std; int A[MAX][MAX];int PS[MAX][MAX];//method1/*最直接的方法,当然是枚举每一个矩形区域,然后再求这个矩形区域中元素的和。时间复杂度为O(N^2 * M^2 * Sum的时间复杂度)*/int max(int x,int y){ return (x>

2014-09-05 21:01:03 541

原创 【ACM】hdu1421 搬寝室 (简单DP)

http://acm.hdu.edu.cn/showproblem.php?pid=1421

2014-05-29 17:36:05 872 1

空空如也

空空如也

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

TA关注的人

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