自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员

先死后活,死去活来

  • 博客(17)
  • 资源 (22)
  • 收藏
  • 关注

原创 UML边看边记 之 类与类之间的关系(三)

上一篇介绍了下类与类之间的关联关系。关联关系的种类比较多,所以单独写了一篇。这篇文章主要介绍:依赖关系、泛化关系、接口与实现类关系。1.依赖关系依赖关系值一个类的实现依赖另一个类。如,Driver类的drive方法依赖于Car类中的move()方法。 注意依赖关系与关联关系的区别:关联关系中一个类作为另一个类的属性存在,而依赖关系的属性中不存在另一个类。 依赖关系的UML图用带箭头的虚线表示。

2016-05-26 22:41:04 788

原创 UML边看边记 之 类与类之间的关系(二)

类和类之间的关系是多样的,在UML中使用不同的形式来表示。常见的类与类之间的关系包括:关联关系、依赖关系、泛化关系(即继承关系)、接口与实现关系。1.关联关系关联关系通常用来表示一种包含(contains)或者有(has)的关系。contains与has的区别,我的理解是一种表达关联强弱的一种区别。contains表示两个类可以独立存在,也可以某一个类包含(使用)另一个类(的功能);而has表示一个

2016-05-26 22:32:21 732

原创 UML边看边记 之 类(一)

MD,使用万恶的为知笔记,写好的东西都没有了!!又要重写!!最近在看Thrift源码,看到了TNonblockingServer,类与类之间的关系有点乱,打算使用UML类图来画一画,于是找了些资料,并记录下来,手打一遍,加深下印象。托为知笔记的褔,可以多加深一些印象了!主要的参考资料是:深入浅出UML类图系列UML不仅仅可以用来表示类以及类与类之间的关系。但是就像一个老外说的,你所看到的UML图,

2016-05-26 21:57:30 1049

原创 Markdown使用说明

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-05-26 21:50:14 329

原创 子list中的顺序会影响list的顺序问题(二)

之前写的这篇文章 子list中的顺序会影响list的顺序问题 ,时隔两个多月的今天再去看发现有很多问题都没有阐述清楚,今天对其做一个补充说明。 存在的问题: (1)没有从JDK源码层面说明问题 (2)Arrays.asList(T… args)是一个变长参数方法,为什么传递数组会影响顺序,而传递多个离散的参数却会影响顺序呢?详见上一篇博文中 子list中的顺序会影响list的顺序问题 示例代

2016-05-24 22:17:10 2511

原创 Markdown的一些技法

这篇文章居中显示图片、连接图片居中 改变图片大小 连接居中 子list中的顺序会影响list的顺序问题 预留多行空白 改变字体颜色大小 红色的15号字体

2016-05-24 12:03:04 425

原创 NIO边看边记 之 管道Pipe(十一)

NIO支持管道操作。管道模型如下所示: 管道通常用来两个线程来传输数据。 其中SinkChannel用于往Pipe中写数据,SourceChannel用于从Pipe中读数据。 1.创建管道Pipe pipe = Pipe.open();2.写管道Pipe.SinkChannel sinkChannel = pipe.sink(); String newData = "New String

2016-05-04 21:34:14 1407

原创 NIO边看边记 之 DatagramChannel(十)

DatagramChannel是用于UDP网络的通道。 其打开、绑定、关闭操作跟SocketChannel一样。 由于使用的时UDP因此在读写数据时未必能保证可靠。 1.接收数据 通过receive()方法从DatagramChannel接收数据,如:ByteBuffer buf = ByteBuffer.allocate(48); buf.clear(); channel.receive(

2016-05-04 21:32:17 883

原创 NIO边看边记 之 ServerSocketChannel(九)

ServerSocketChannel是一个监听新进来TCP连接的通道。 1.打开ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();2.绑定serverSocketChannel.socket().bind(new InetSocketAddress(9999));3.关闭serverSocketChannel

2016-05-04 21:27:31 541

原创 NIO边看边记 之 SocketChannel(八)

SocketChannel是一个连接到TCP的网络套接字通道。创建SocketChannel有两种方式: a.打开一个SocketChannel并连接到一台网络服务器 b.一个新连接到达ServerSocketChannel时,会创建一个SocketChannel1.打开SocketChannel socketChannel = SocketChannel.open(); socketChan

2016-05-04 21:25:42 473

原创 NIO边看边记 之 FileChannel(七)

FileChannel不可工作在非阻塞模式,不可以将FileChannel注册到Selector上。1.打开FileChannel不能直接打开,需要通过一个与之关联的FileInputStream、FileOutputStream或者RandomAccessFile来获得FilChannel。 如:RandomAccessFile randomAccessFile = new RandomAcce

2016-05-04 21:23:24 2029

原创 NIO边看边记 之 selector选择器(六)

Selector(选择器)可同时监听多个通道上感兴趣的事件(如accept事件、read就绪事件、write就绪事件)。使用Selector可以实现一个线程管理多个通道,进而可以管理多个连接。1.为什么要使用Selector如果不使用Selector要监听多个channel上感兴趣的事件,则需要多线程操作,一个线程监听一个通道的事件。这样导致线程上下文切换的开销(内存)、增加了编程的复杂度。2.Se

2016-05-04 21:20:41 4826

原创 NIO边看边记 之 通道之间的数据传输(五)

两个通道之间可以相互传输数据,但是至少一个通道得是文件channel。1.transferFrom()从一个channel中传输到另一个channel,目的channel作为调用方。 实例代码如下:RandomAccessFile fromFile = new RandomAccessFile("fromFile.txt", "rw"); FileChannel fromChannel

2016-05-04 21:10:28 659

原创 NIO边看边记 之 Scatter/Gather(四)

1.ScatterScatter(分散)操作是指可以将从channel中读取的内容分散的写到不同的buffer中。注意必须要先将前面的buffer写满之后才能写后面的buffer。因此,Scatter操作不支持动态消息(即不确定大小的消息) 实例代码如下:ByteBuffer header = ByteBuffer.allocate(128); ByteBuffer body = Byte

2016-05-04 21:07:33 704

原创 NIO边看边记 之 Buffer(三)

缓冲区Buffer其实就是一块内存区域。用于和channel来进行数据交互。从channel中读取数据到buffer,将buffer中的数据写到channel中。这块内存区域在java NIO中被封装成Buffer对象。Buffer的基本用法使用buffer进行读写数据一般会经过如下4个步骤: (1)从channel中读取数据写到buffer中 (2)调用buffer的flip()方法切换buf

2016-05-04 21:02:09 649

原创 NIO边看边记 之 channel(二)

通道channel就像流。通道中的数据总是先读到到buffer中(对于buffer来说是一个写操作),再从buffer中写到另一个通道总(相对于buffer来说是一个读操作)。 Channel主要分为两类:文件channel和网络channel,细分为4种。 FileChanel:从普通文件中读写数据 DatagramChannel:通过UDP读写网络中的数据 SocketChannel

2016-05-04 20:57:33 612 1

原创 NIO边看边记 之 概述(一)

声明:《NIO边看边记》系列的文章在学习NIO时,看到了并发编程网上有一个NIO系列教程。感觉写的不错,挺系统,于是边看边记了下来,相当于笔记吧。不是故意侵权。并发编程网 NIO教程系列 JDK1.4之后,java推出了NIO(New IO)。JDK1.4之前的IO只能基于流(stream)的方式逐个字节逐个字节的读取和写入。流处理方式性能比较低;NIO采用块的方式(Buffer)处理数据,性能大

2016-05-04 20:53:31 640

java反编译工具jd-gui

jd-gui java 反编译工具 将class文件反编译成java文件

2016-04-25

HexEditor插件

HexEditor插件 notePad++

2016-03-15

HexEditor.dll

notepad++查看二进制文件的插件

2016-03-15

junit-4.12.jar

用于写java测试单元的必须的jar包,从官网下的,肯定可用。

2015-07-13

junit-4.12

用于写java测试单元必要的jar包,这个是从官网下的,保证可用哦

2015-07-13

单链表 环 入口点 环长

求单链表是否有环,如果有环求出环的入口点及环长

2014-04-24

C51实现LCD1602

keil C51 实现LCD1602 保证能用 可以写字符串 可以写小数 main函数中有实例

2013-04-03

c51实现lcd1602四线驱动

51单片机 c51实现lcd1602四线驱动

2013-04-01

PL-2303 win7 驱动 usb RS232

PL-2303 win7 驱动 usb RS232 保证可以使用

2013-03-22

VC6.0 工具

VC6.0 工具 显示行号 智能提示 有使用说明及visual active 安装文件和破解文件

2013-01-27

keil uvision 3 注册机 带CID的

keil uvision 3 注册机 带CID的 CID=CSXRK-XZD85 LIC0=RC9U8-3AX1C-ZNSAE-CU1JS-SW7YD-VJD6F

2013-01-23

hex转coe工具

hex coe 51hex_bin corGenerator 在研究MC8051对ROM进行配置时需要coe文件,这里给出了使用keil写的流水灯的hex文件,并将其转换成了coe文件,此coe可以正常使用,并且给出了51hex_bin.exe和CoeGenerator.exe

2013-01-17

数据结构 严蔚敏 C语言版 链队列表示与实现

数据结构 严蔚敏 C语言版 链队列表示与实现 很给劲哦 绝对不会令您失望的。

2013-01-16

数据结构 严蔚敏 C语言版 行编辑程序

数据结构 严蔚敏 C语言版 行编辑程序 很给劲哦 绝对不会令您失望的。

2013-01-16

数据结构 严蔚敏 C语言版 汉诺塔

数据结构 严蔚敏 C语言版 汉诺塔 很给劲哦 绝对不会令您失望的。

2013-01-16

数据结构 严蔚敏 C语言版 数制转换

数据结构 严蔚敏 C语言版 数制转换 很给劲哦 绝对不会令您失望的。

2013-01-16

数据结构 严蔚敏 C语言版 循环队列

数据结构 严蔚敏 C语言版 循环队列 很给劲哦 绝对不会令您失望的。

2013-01-16

数据结构 严蔚敏 C语言版 顺序栈

数据结构 严蔚敏 C语言版 顺序栈 顺序栈的实现 很给劲哦 绝对不会令您失望的。

2013-01-16

数据结构 严蔚敏 C语言版 括号匹配

数据结构 严蔚敏 C语言版 括号匹配 while((c = getchar()) != EOF) { switch(c) { case '[': push(&sqSta;, c); break; case '(': push(&sqSta;, c); break; case ']': if(getTop(&sqSta;, &e)) { if(e == '[') { pop(&sqSta;, &temp;); } if(e == '(') { printf("\nnot match\n"); return ERROR; } } break; case ')': if(getTop(&sqSta;, &e)) { if(e == '(') { pop(&sqSta;, &temp;); } if(e == '[') { printf("\nnot match\n"); return ERROR; } } break; default : printf("\nerror\n"); return ERROR; break; } } if(stackEmpty(sqSta)) { printf("\nmatched\n"); } else { printf("\nnot matched\n"); }

2013-01-16

数据结构严蔚敏C语言版 迷宫

数据结构 严蔚敏 C语言版 迷宫 status mazePath(seqStack *S, posType start, posType end) { posType curPos; //current positon int curStep; //the ordinary number sElemType e; curPos = start; curStep = 1; do { if(pass(curPos)) //the current position is "accessed" { footPrint(curPos); e.ord = curStep; e.seat = curPos; e.di = 1; push(S, e); if(curPos.xPos == end.xPos && curPos.yPos == end.yPos) { return OK; //arrive at the final } curPos = nextPos(curPos, 1); curStep++; }//end of if(pass(curPos)) else //the current position is not "accessed" { if(!stackEmpty(*S)) //the stack is not empty { pop(S,&e); while(e.di == 4 && !stackEmpty(*S)) { markPrint(e.seat); //the current position must be marked by '#' pop(S,&e); }//end while if(e.di < 4) { e.di++; push(S,e); curPos = nextPos(e.seat, e.di); } }//end of if(!stackEmpty(*S)) }//end of else }while(!stackEmpty(*S)); }

2013-01-16

液晶显示12864驱动

液晶显示12864驱动适用于EasyArm1138

2012-12-04

空空如也

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

TA关注的人

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