自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java String源码解析

String类概要所有的字符串字面量都属于String类,String对象创建后不可改变,因此可以缓存共享,StringBuilder,StringBuffer是可变的实现String类提供了操作字符序列中单个字符的方法,比如有比较字符串,搜索字符串等Java语言提供了对字符串连接运算符的特别支持(+),该符号也可用于将其他类型转换成字符串。字符串的连接实际上是通过StringBuffer或

2016-05-30 10:14:31 4652

原创 Linux命令解析过程

命令解析过程将命令行分成由固定元字符集分隔的记号:SPACE, TAB, NEWLINE, ; , (, ), <, >, |, &,记号类型包括单词,关键字,I/O重定向符和分号。检测每个命令的第一个记号,查看是否为不带引号或反斜线的关键字。如果是一个开放的关键字,如if和其他控制结构起始字符串,function,{或(,则命令实际上为一复合命令。shell在内部对复合命令进行处理,读取下一个

2016-05-27 16:26:38 1216

原创 Linux cut命令

用途文本文件按列提取。特点过于简单,只能处理固定格式的分隔符,分隔符不能使用正则表达式。用法命令基本格式-b、-c、-f分别表示字节、字符、字段(即byte、character、field);list表示-b、-c、-f操作范围,-n常常表示具体数字;file表示的自然是要操作的文本文件的名称;delim(英文全写:delimiter)表示分隔符,默认情况下为TAB;-s表示不包括那些不含

2016-05-27 10:06:22 593

原创 Java String不可变

String是否相等==判断的是对象的内存起始地址是否相同,equals判断自定义的语义是否相同JVM为了提高内存效率,将所有不可变的字符串缓存在常量池中,当有新的不可变的字符串需要创建时,如果常量池中存在相等的字符串就直接将引用指向已有的字符串常量,而不会创建新对象new创建的对象存储在堆内存,不可能与常量区的对象具有相同地址public class Demo { public st

2016-05-26 17:42:13 530

原创 Java基本类型数组转ArrayList

先来看源码当我们调用Arrays.asList(array) 时,实际是执行了包可见的ArrayList的构造函数(注意通常这个构造函数对用户是不可见的,所以不能通过List list = new ArrayList(array)来进行转换)由于a是一个E[]数组,E又是ArrayList的泛型,所以我们传入的实参array必须是对象数组,或者对象列表如果传入的是基本类型数组,整个数组会被当做

2016-05-26 10:29:26 2232

原创 java单例模式深度解析

应用场景由于单例模式只生成一个实例, 减少了系统性能开销(如: 当一个对象的产生需要比较多的资源时, 如读取配置, 产生其他依赖对象, 则可以通过在应用启动时直接产生一个单例对象, 然后永久驻留内存的方式来解决)Windows中的任务管理器;文件系统, 一个操作系统只能有一个文件系统;数据库连接池的设计与实现;Spring中, 一个Component就只有一个实例Java-Web中, 一个S

2016-05-23 16:11:29 3654 4

原创 java 枚举源码解析

应用场景枚举通常用来列举一个类型的有限实例集合,我们可以使用常量集来实现,jdk1.5添加了枚举(enum)支持,解决了常量集的一些缺陷 - 常量集中的变量不会必然在指定的范围内 - 常量能够提供的功能很少,难于使用 - 常量意义不明确,没有名字 - 修改或增加枚举值后需要修改的代码多,不便于维护 关键字enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的组

2016-05-23 12:23:12 1990

原创 最长公共子序列

问题描述子序列 X=(ABCBDAB) X的子序列是下标递增的X的字符组成的序列,但是不一定连续,如:ABCD,ACDAB等都是其子序列,而 ADC不是子序列最长公共子序列 如果Z既是X的子序列,又是Y的子序列,那么Z是X与Y的公共子序列,其中最长Z就是最长公共子序列序列相似度 该问题用来描述两个序列的相似度,当然相似度还有其他描述方法 X是Y的子串X转换为Y的操作最少X与Y

2016-05-19 12:15:13 515

原创 LinkedList源码解析

本解析源码来自JDK1.7 LinkedList许多方法是为了适配其实现的接口,本质上都是双向链表的操作LinkedList概要基于双向链表,主要实现了List和Deque接口,Deque接口继承自Queue,所以LinkedList同时实现了Queue接口由于其基于双向链表,操作需要操作连接指针数数较多,所以线性操作系数比ArrayList较大插入删除快,随机访问慢线程不安全,修改列表结

2016-05-17 17:41:24 3134

原创 ArrayList 源码解析

本解析源码来自JDK1.7ArrayList 概要继承Collection接口,实现了随机存取,自动扩容内部使用数组进行存储,size表示List中元素的个数 private transient Object[] elementData; private int size;允许null值与Vector基本相同,但是ArrayList是非同步的,

2016-05-17 11:14:52 2975

原创 HashMap源码解析

本解析源码来自JDK1.7HashMap概要HashMap是基于hash的map接口的非同步实现,允许使用null键和null值,不保证映射顺序HashMap类头部public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable设计初衷 Java中的

2016-05-13 16:28:41 4427 1

原创 字符串匹配算法

算法的改进主要是针对如果出现不匹配字符,应该怎样回退的问题定义在母字符串中找子字符串,如果找到返回字串在母字符串中的位置,如果没有找到,返回-1。 参见 leetcode 28. Implement strStr()朴素的匹配算法逐个跟字串匹配。失败则子串向前移动一位,继续比较顺序匹配字串与母串的每一个字符 - 如果达到子字符串末尾,就返回母串中子串首字符对应位置 - 如果遇到

2016-05-12 16:46:53 1392

原创 leetcode 19. Remove Nth Node From End of List

题目Given a linked list, remove the nth node from the end of list and return its head.For example,Given linked list: 1->2->3->4->5, and n = 2.After removing the second node from the end, the linked list

2016-05-10 16:05:22 342

原创 leetcode 205. Isomorphic Strings

题目Given two strings s and t, determine if they are isomorphic.Two strings are isomorphic if the characters in s can be replaced to get t.All occurrences of a character must be replaced with another cha

2016-05-10 15:36:35 677

原创 Hadoop Join

Hadoop 中的join分为三种Reduce端join,适合于两个大表Map端join,适合一个大表和一个小表,小表放到 Distribute Cache里面semi join 当join只用到其中一个表中的一小部分时Reduce端join读入两个大表,对value按文件进行标记在Reduce端收集属于不同文件的value到不同的list,对同一key的不同list中的value做笛卡

2016-05-10 11:56:47 2796

空空如也

空空如也

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

TA关注的人

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