- 博客(46)
- 资源 (2)
- 收藏
- 关注
原创 spring源码解析(二)
IOC容器的初始化包括BeanDefinition的Resource定位载入注册我们可以看到定位和载入过程中接口调用。 Spring在实现中是把三个过程分开并使用不同的模块来完成,这样方便用户剪裁和扩展。 1: BeanDefinition的资源定位由ResourceLoader通过Resource接口完成。 比如文件系统中定义信息可以用:FileSystemResource,Clas
2017-04-26 09:21:56
463
原创 Exchanger线程拷贝
import java.util.ArrayList;import java.util.List;import java.util.Random;import java.util.concurrent.Exchanger;/** * Created by yuanyong on 17/2/8. */public class ThreadLocalTest { public
2017-02-10 11:11:51
276
原创 RecursiveTask
多线程并行计算/** * Created by yuanyong on 17/2/8. */import java.util.concurrent.ForkJoinPool;import java.util.concurrent.Future;import java.util.concurrent.RecursiveTask;public class CountTask ext
2017-02-10 11:08:35
3644
1
原创 生产者消费者模式
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.LinkedBlockingDeque;import java.util.concurrent.locks.Condition;import java.util.concu
2017-02-10 10:52:22
292
转载 模板方法模式
1. 概述 定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。2. 模式中的角色 2.1 抽象类(AbstractClass):实现了模板方法,定义了算法的骨架。 2.2 具体类(ConcreteClass):实现抽象类中的抽象方法,已完成完整的算法。3. 模式解读 3.1
2016-11-29 14:41:15
270
转载 java代理机制
Table of Contents1 引言2 常见的代理3 代理模式UML图4 代理模式实例5 java动态代理5.1 java动态代理UML图6 代理模式与装饰者模式的区别6.1 装饰者模式UML图6.2 形象说明1 引言我们书写执行一个功能的函数时,经常需要在其中写入与功能不是直接相关但很有必要的代 码,如日志记录,信息发送,安全
2016-11-29 14:18:47
259
原创 tomcat解析(二)
Tomcat启动废话不多说先上图:类图如下:时序图如下:Catalina是整个Tomcat的管理类,它里面的三个方法load,start,stop分别管理整个服务器的生命周期。代码如下:(1)验证是否初始化:通过反射实例化Catalina,初始化资源,装入load。org.apache.catalina.startup.Bootstrap pub
2016-11-10 16:30:15
316
原创 tomcat解析(一)
Tomcat中最顶层的容器叫Server,代表整个服务器,Server中包含至少一个Service,用于具体提供服务。Service主要包含两部分:Connector和Container。Connector用于处理连接相关的事情,并提供Socket与request、response的转换,Container用于封装和管理Servlet,以及具体处理request请求。一个Tomcat中只有一个Se
2016-11-08 14:40:44
339
转载 join方法的理解
thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。t.join(); //使调用线程 t 在此之前执行完毕。t.join(1000); //等待 t 线程,等待时间是1000毫秒 先上一段JDK中代码:Java代码
2016-09-19 14:06:27
5201
2
原创 存数海量数据时的一个途径
import java.util.BitSet;/** * java.util.BitSet 研究(存数海量数据时的一个途径) * java.util.BitSet可以按位存储。 计算机中一个字节(byte)占8位(bit),我们java中数据至少按字节存储的, * 比如一个int占4个字节。 如果遇到大的数据量,这样必然会需要很大存储空间和内存。 如何减少数据占用存储空间
2014-11-21 16:06:22
481
原创 不同的寻址方式灵活运用(di,si)
si和di是8086cpu中和必须功能最相近的寄存器,si和di不能给凤城二个8位寄存器来使用。下面3组指令实现了相同的功能。1: mov bx,0mov ax,[bx] ;ax=16*ds+bx2:mov si,0mov ax,[si] ;ax=16*ds+si3:mov di,0mov ax,[di] ;ax=16*ds+di4:mov b
2014-07-15 10:33:56
1236
原创 包含多个段的程序
assume cs:abcabc segmentdw 0123H,0456H,0789H,0ABCH,0DEFH,0FEDH,0CBAH,0987Hdw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0start:mov ax,csmov ss,axmov sp,30hs:add ax,cs:[bx]add bx,2loop s
2014-07-15 09:33:49
417
原创 使用[bx+idata]的方式进行数组处理
使用[bx+idata]的方式进行数组处理在cidesg中写代码,将datasg中定义的第一个字符串转化为大写,第二个字符串转化为小写。assume cs:codesg,ds:datasgdatasg segment db:'Baic' db:'MinIx'datasg endscodesg segmentstart: *****code endsend start
2014-07-14 17:00:11
596
原创 [bx]和loop指令
assume cs:abcabc segmentmov ax,2mov cx,11s:add ax,axloop smov ax,4c00Hint 21Habc endsend
2014-07-10 17:28:00
500
转载 我不问+你不说=误解
王子出去打猎,留狗在家看护婴儿。王子回来后,看见血染被毯,却不见婴儿。而狗呢,一边舔着嘴边的鲜血,一边高兴地望着他。王子大怒,抽刀刺入狗腹。狗惨叫一声,惊醒了睡熟在血迹斑斑的毯子下面的婴儿。这时,王子才发现屋角躺着一条死去的恶狼。很多事情你看到的、
2014-07-10 17:11:26
490
转载 如何学习?
如何学习?文章作者:小虫 最近看到一些报名汇编语言学习的人抱怨汇编难学和题太难,有的则退出了。下面发表一些本人对学习的看法供正在学习汇编语言的朋友们借鉴和讨论。 1、学习首先要选择正确的,否则就会变得徒劳和有害。 2、选择了就要坚持下去,不达目标绝不罢休。 学习过程中不可能永远那么顺利,大多时间是在与困难和问题周旋,在不断的努力和拼搏中度过的。不要
2014-07-10 17:02:47
333
转载 汇编揭秘C中的参数传递
汇编揭秘C中的参数传递文章作者:怕冷的北极熊 很多学习汇编的朋友想必对C也比较了解,因为在当前大学的课程体系里,它很有可能就是你接触到的第一门编程语言。由于对计算机的理解不够,学习时必定会遇到各种问题。有些问题是你通过思考就可以解决的,而更多的问题则是你无从思考,就好像它天生就是这样,你只要记住就OK了。然而这样的学习方式是机械的,更是没有创造力的。只有真正理解了C语言,你才有能
2014-07-10 16:59:07
650
原创 8086cup给出物理地址
运算器一次最多可以处理16位的数据寄存器最大宽度为16位寄存器和运算器的通路为16位8086是16位结构的cpu,也就是说8086内部,能一次性处理传输,占时储存的信息最大长度是16位,内存单元的地址在送上地址总线之前,必须在cpu中处理,传输,占时存放,对于16位cpu,能一次性处理,传输。占时存放16位的地址。8086cuo有20位地址总线,cup采用一种用内部2个16位地址合
2014-07-09 10:30:30
932
原创 寄存器
寄存器对于汇编程序员来说,cpu中的主要部件是寄存器,寄存器是cpu中程序员可以用指令读写的部件,程序员可以通过改变各种寄存器内容实现cpu控制。不同的cpu,寄存器的个数,结构是不相同的,8086cup有14个寄存器。AX,BX,CX,DX,SI,DI,SP,BP,CS,SS,DS,ES,PSW8086cup所有寄存器都是16位,可以存放2个字节。AX,BX.CX,DX这4个寄存器通
2014-07-08 17:52:43
734
原创 java 线程超时时间
public static void main(String[] args) { String failReason = null; Future f=new FutureTask(new Callable() { @Override public Object call() throws Exception { // TODO Auto-generated met
2014-07-07 13:54:34
647
原创 各类储存芯片基础
主板每台pc都有主板,主板有核心器件和一些主要的器件,这些器件通过总线相连。接口卡计算机系统中,所有程序可以控制的设备,必须受到cpu的控制,cup对他们不可以直接控制,这些设备进行工作是插在扩展插槽的接口卡上,扩展槽通过总线和cpu相连,接口卡可以通过总线通cpu相连。cpu可以直接控制接口卡,实现了cpu对外围设备的间接控制。各类储存芯片1台pc机中,装有多个储存芯片,这些
2014-07-04 10:39:32
1058
原创 总线逻辑基础
cup是计算机的核心,它控制整个计算机的运作并计算。想让cpu工作,就必须向它提供指令和数据,数据和指令在存储器存放。类似大脑的记忆。指令和数据是应用上的概念,在内存或磁盘没有任何区别都是二进制信息。储存单元存储器划分若干个储存单元,每个储存单元都是0开始序号。假如一个存储器有128个储存单元编号从0-127、一个存储器有128个储存单元,那么它可以储存128位(128
2014-07-03 17:54:54
1088
原创 Semaphore
一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。操作系统的信号量是个很重要的概念,在进程控制方面都有应用。Java 并发库 的Semaphore 可
2014-06-24 10:15:42
383
原创 使用CountDownLatch启动和停止线程
package File;import java.util.concurrent.CountDownLatch;public class Indexer { Indexer(){}; public long timeTasks(int nThreads,final Runnable stak) throws InterruptedException{ final CountDow
2014-06-20 17:40:37
1710
转载 java创建哈夫曼树和实现哈夫曼编码
import java.util.*;public class HuffmanTree{ public static class Node { E data; double weight; Node leftChild; Node rightChild; public Node(E data , double weight) { this.data = dat
2014-05-05 14:43:54
6125
原创 java数据结构 七 栈(链式储存结构)
package com;/** 栈(链式储存结构) */public class LinearlinkStack { Entry linkStack; public LinearlinkStack(){ linkStack =new Entry(); } class Entry{ Object date; Entry next; } public
2014-05-04 16:41:01
589
原创 java数据结构 六 栈共享(顺序储存结构)
package com;/** 栈共享(顺序储存结构) */public class LinearTable { static int MAXSIZE=11; int top; int top2=MAXSIZE; Object[] objArray=new Object[MAXSIZE]; /** * * @param stackNumber 辨别栈1,栈2
2014-05-04 15:28:24
406
原创 java数据结构 五(栈)
package com;/** 栈 */public class LinearTable { static int MAXSIZE=5; int top; Object[] objArray=new Object[MAXSIZE]; public void push(Object ob){ if(top==(MAXSIZE-1)){ throw new Ind
2014-05-04 15:06:35
367
原创 java数据结构 四(双向链表)
package com;/** 双向链表 * 插入删除快,读取慢, * 让每个元素知道下个元素位置(内存地址) */public class LinearTable { Entry table; public LinearTable(){ table =new Entry(); } class Entry{ Object date; Entry nex
2014-05-04 14:35:30
436
原创 java数据结构 三(静态链表-游标实现)
package com;/** 静态链表-游标实现 * 数组操作代替指针 * 让每个元素知道下个元素位置(内存地址) */public class LinearTable { static int MAXSIZE=1000; table[] tableList=new table[MAXSIZE]; class table{ Object date; int
2014-05-04 13:38:24
772
原创 java数据结构 二(单链表)
package com;import java.util.HashMap;/** 单链表 * 插入删除快,读取慢, * 让每个元素知道下个元素位置(内存地址) */public class LinearTable { Entry table; public LinearTable(){ table =new Entry(); } class Entry{
2014-04-30 16:58:27
595
原创 mac Cannot Update Macports Port Tree
---> Updating MacPorts base sources using rsyncrsync: failed to connect to rsync.macports.org: Operation timed out (60)rsync error: error in socket IO (code 10) at /SourceCache/rsync/rsync42/rsync/
2014-04-21 16:14:30
800
原创 java数据结构 一(线性表循序储存结构)
package com;import java.util.ArrayList;/** * 线性表循序储存结构 * @author Hadoop * */public class LinearTable { Object data[]; int length; LinearTable(int size){ data=new Object[size]; } pu
2014-04-17 16:08:00
506
原创 简单链表操作
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include#include#define TSIZE 50#define FMAX 2struct film{ char title[TSIZE]; int ranting; struct film * next;}*
2014-04-11 16:24:46
385
wineBotter mfc42
2016-07-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人