自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Get busy living, or get busy dying.

这段旅途,没有终点

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

原创 Netty -- 内存管理

JVM在常规IO时,需要将堆内存中的Buffer复制一份到直接内存中,操作系统内核才能接管进行接下来的通信,Netty为了降低这个复制的开销,设计实现了一种IO时zero-copy内存的机制。对于一个Buffer来说,Netty从复用方式以及申请方式两个角度进行分类复用方式:采用了Pool机制(申请直接内存比申请堆内存开销要大),根据内存空间在使用结束以后是否立即归还给操作系统或者JVM分为Poo

2015-10-07 20:57:28 1567

原创 Netty -- Discard Server

ChannelHandlerAdapter provides various event handler methods that you can override. For now, it is just enough to extend ChannelHandlerAdapter rather than to implement the handler interface by yoursel

2015-10-07 17:24:46 633

原创 Netty -- Background

Netty

2015-10-07 15:56:24 279

原创 阻塞与非阻塞,同步与异步I/O

阻塞:

2015-04-21 22:49:30 342

原创 错误修改~/.bashrc文件导致不能进入系统

* 今天配置JDK和Maven环境时, 修改了~/.bashrc, ~/.bash

2014-06-27 19:42:15 3094

原创 Ubuntu

System Setting sudo apt-get install --reinstall unity-control-center

2014-06-27 10:07:14 343

原创 2014.06.17

map按照value值排序;

2014-06-17 15:39:13 275

原创 2014.6.2 Git

* 让用户向服务器提供公钥,以实现授权

2014-06-02 20:36:39 488

原创 2014.05.28 GitHub

Github有本地仓库以及远程仓库之分。

2014-05-28 18:45:12 488

原创 2014.05.25 Java 对象导论

设计目标专注于克服开发与维护程序的复杂性

2014-05-25 15:58:32 391

原创 Linux Ubuntu 14.04升级之旅

这两天手头没有太多任务了,心想shi

2014-05-17 23:39:34 1411

原创 HTTP 2014.4.15

* 计划在命令行测试telnet,输入telnet www.baidu.com 80后提示无效

2014-04-15 20:48:38 538

原创 毕业论文排版心得 Word 2010 (未完待续)

写了一个月,今天终于弄出了篇成型的硕士毕业论文,在这期间从网络上学习了很多关于Word排版的小技巧,顺利的按学校的要求把格式弄正确了。非常有可能以后再用不会用到这些技巧,在这里记录下,算是自己一个阶段性的留念。致,终将远离的word排版准备:* 以下的各条排版技巧均以Word 2010为例操作,个人认为Word 2010是本人用过的最为均衡的一个word版本。相比于WPS和Word

2014-04-02 19:29:54 3021

原创 2014.3.6 Java 枚举

java.lang.Enum* 创建enum时,编译器会自动生成一个从java.lang.Enum类继承的类;关键字enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用。* enum的values方法返回enum实例的数组,是由编译器添加的static方法;Enum类中,没有values()方法;* enum实例的ordinal()方法,

2014-03-06 23:24:41 446

原创 2014.3.4 Java I/O

如果缺乏历史的眼光,很快我们就会对什么时候该使用哪些类,以及什么时候不该使用它们而感到困惑。File,java.io;* java.util.Arrays.sort();* FilenameFilter接口,File.list(FilenameFilter):public interface FilenameFilter{// list()方法会为此目录对象下的每个文件名调用ac

2014-03-04 19:37:59 406

原创 2014.2.22 Java 容器

完整的容器分类填充容器:* 使用Generator填充public class CollectionData extends ArrayList{ public CollectionData(Generator gen, int q){ for(int i=0; i<q; i++){ add(gen.next()); } }}public static

2014-02-22 23:10:08 311

原创 2014.2.12 Java 泛型

* 泛型实现了参数化类型的概念,类型参数;* 只有知道了某个技术不能做到涩会那么,你才能更好的做到所能做的;元组:将一组对象直接打包存储于其中的一个单一对象,数据传送对象/信使;public class TwoTuple { public final A first; public final B second; public TwoTuple(A a, B b) { fi

2014-02-12 10:30:50 436

原创 2014.1.27 Java RTTI && 反射

RTTI: * 类加载器, 类加载器链,只有一个原生类加载器加载可信类(本地);* 所有的类都是在对其第一次使用时,动态加载到JVM中;Java程序在运行之前并非完全加载,各个部分在必需时才加载;* 构造器也是类的静态方法;* static 子句是在类首次加载时进行的,应放置类加载时就需要执行的语句;* Class.forName()会导致类的加载,而类字面常量不会,编译期常量

2014-01-27 10:14:40 498

原创 Java Class && Method

Class, java.lang;* public static Class  forName(String className) throws ClassNotFoundException == Class.forName(className, true, currentLoader);* public T newInstance() throws InstantiationExcept

2014-01-26 20:56:33 495

原创 2014.1.15 Java String && RegEx

* String对象是不可变的,指向String的任何引用都不可能改变它的值;* javap -c 反编译工具;* StringBuilder,java.lang:   StringBuilder append(CharSequence s);   StringBuilder vs StringBuffer:后者是线程安全的,开销也会大些;* 若希望在toString()中使用

2014-01-15 20:26:40 685

转载 Java正则入门

// 反斜杠/t 间隔 ('/u0009')/n 换行 ('/u000A')/r 回车 ('/u000D')/d 数字等价于[0-9]/D 非数字等价于[^0-9]/s 空白符号 [/t/n/x0B/f/r]/S 非空白符号 [^/t/n/x0B/f/r]/w 单独字符 [a-zA-Z_0-9]/W 非单独字符 [^a-zA-Z_0-9]/f 换页符/e

2014-01-14 10:32:13 476

原创 2014.1.8

* 识别异常的方法:   1. 重写异常的super(String)方法,将异常信息传入异常对象,然后使用getMessage()方法调出;   2. 设置id,通过id判断异常;   3. 选择合适的异常名称,直观的判断;* 在定义抽象基类和接口时,声明方法将抛出异常,派生类或接口实现就能抛出这些预先声明的异常;StackTrace:* StackTraceElement

2014-01-08 23:58:26 359

转载 Java中的StringBuilder类功能详解

字符串是Java程序中最常用的一种数据结构之一。在Java中的String类已经重载的"+"。也就是说,字符串可以直接使用"+"进行连接,如下面代码所示:String s = "abc" + "ddd"; 但这样做真的好吗?当然,这个问题不能简单地回答yes or no。要根据具体情况来定。在Java中提供了一个StringBuilder类(这个类只在J2SE5及以上版本提供,以前的版

2014-01-08 21:15:36 381

转载 java.util.logging.Logger

java.util.logging.Logger使用详解  java.util.logging.Logger不是什么新鲜东西了,1.4就有了,可是因为log4j的存在,这个logger一直沉默着,其实在一些测试性的代码中,jdk自带的logger比log4j更方便。 一、创建Logger对象 static Logger getLogger(S

2014-01-08 19:54:25 402

原创 2014.1.6

* 对于大型的稀疏图,使用邻接链表,相对于用邻接矩阵表示,可以提高算法效率;* 通用数据结构:数组,链表,树,哈希表;  专用数据结构:栈,队列,优先级队列;  排序:插入排序,希尔排序,快速排序,归并排序,堆排序;  图:邻接矩阵,邻接表;  外部存储:顺序存储,索引文件,B-树,哈希方法;* 请从简单数据结构入手考虑:除非他们明显是太慢了,否则就用数组或链表编写程序,看

2014-01-06 19:48:15 513

原创 2013.1.5

* Dijkstra Done, All clear;* 个人想法:    对于Dijkstra算法,不应该通过(已探测集合S==全部顶点集合V) && (已探测之后的顶点不再设为目的地)作为控制条件,这样会导致如下图情况,得不到最优解;    应该尽可能的遍历所有的边,因此以(边优先级队列!为空) 为控制条件,使用优先级队列来选择路线,尽快的出现最优解;* 基于优

2014-01-05 10:13:23 361

原创 2014.1.4

* 最小生成树(带权无向图)* 最短路径(带权有向图)

2014-01-04 16:04:19 362

原创 2013.12.29

* 如果使用开放地址法,对于小型的哈希表,再哈希法比二次探测的效果好。但是如果内存充足,并且装填因子低于0.5,就几乎没有什么性能下降;* 如果哈希表创建时,要填入的项数未知,链地址法要好过开放地址法;* 开放地址法随着装填因子变大,性能会下降很快;链地址法,性能只能线性的下降;* 当两者都可选的时候使用链地址法;* 使用哈希表做外部存储;

2013-12-29 19:44:11 416

原创 2013.12.28

* 条件语句中的判断部分,要把判断对象是否为null的表达式 写在 && 的最前面,这样保证&&的语句不会访问空引用;

2013-12-28 10:04:01 294

原创 2013.12.27

* 哈希表查找,插入和删除操作都非常快,为O(1);但是不能有序遍历,并且难于扩展。* 高级语言的编译器通常用哈希表保留符号表。* 方法:数字相加;幂的连乘;求余;* 哈希表在几乎填满的数组中添加数据项效率很低;* 开放地址法:      1. 线性探测;原始聚集;      2. 二次探测;二次聚集;      3. 再哈希法;两个哈希函数,其中一个计算步长;

2013-12-28 10:02:43 425

原创 2013.12.25

Merry>* 2-3-4树,2-3树,B树,新数据都是插入到叶节点中,并且所有的叶节点在同一层;只有分裂根时,高度才会增长;* 2-3-4树的分裂节点与红-黑树中颜色变换的功能相同;* 2-3-4树的查找过程也应该进行分裂;* 2-3树下行过程中不理会遇到的满节点;* 分裂过程自下而上递归调用自身,直到父节点非满节点或者到根节点;* 父节点的分裂会产生2个父节点,需要对子节点

2013-12-25 20:41:29 341

原创 2013.12.24

* 实现2-3-4树  终于体会到了测试用例在程序中的重要性!* 2-3-4树class Tree234{ public Node root; public Tree234(){ root=new Node(); } public Tree234(Node root){ this.root=root; } public DataItem find(DataIt

2013-12-24 20:47:30 333

原创 2013.12.21

* 二叉树tips  1. 二叉树执行查找,删除,插入操作的效率都是O(logN);      有序数组执行查找操作的效率是O(logN),插入,删除操作的效率很低为O(N);      链表执行插入,删除操作的效率是O(1),查找的效率是O(N);  2. 可以用数组形式表示树,也可以用引用形式表示;

2013-12-21 10:01:09 480

原创 2013.12.20

* 对字符串进行操作的时候,要考虑大小写;

2013-12-20 22:22:07 387

原创 2013.12.19

* 变量声明的位置…

2013-12-19 23:52:18 344

原创 2013.12.18

* 用数组表示树,结点的左子结点为2*index+1,右子结点为2*index+2,父结点为(index-1)/2;* 树的任何操作都需要考虑到根结点;

2013-12-18 16:19:44 330

原创 2013.12.16

* 实现了二叉搜索树,具有find,insert,delete,inOrderTransverse功能* 二叉搜索树中序遍历按序输出;* 可以通过中序遍历输出中缀表达式,不过需要自己加上小括号;父节点保存符号,字节点保存变量;* 通过前序/后序遍历二叉树,可以输出前缀/后缀表达式;

2013-12-16 21:17:19 386

转载 vim配置

1、安装vim    sudo apt-get install vim-full2、配置文件的位置    在目录 /etc/vim下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。3、设置语法高亮显示    1) 打开vimrc,添加以下语句来使得语法高亮显示:         syntax on    2) 如果此时语法还是没有高亮显示

2013-12-15 18:14:14 396

原创 2013.12.15

* 实现了基于插入排序&“三项取中”划分的快速排序;* “三项取中”划分带来的好处:    1:一定程度上避免了基本有序源数组导致的快速排序性能劣化的情况;    2: low,center,high三个元素已经有序,故不用将low,high加入循环,一定程度上减少了比较次数;    3: 消除了循环内l* 使用“三项取中”划分的快速排序不能处理只有2/3个元素的数组,并且对多

2013-12-15 10:37:28 459

原创 2013.12.14

import java.util.*;public class TestQuickSort{ public static void main(String [] args){ Random rand=new Random(47); int [] iArr=new int [10];

2013-12-14 20:23:00 335

空空如也

空空如也

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

TA关注的人

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