• Java泛型总结

    Java泛型是JDK5引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter)。声明的类型参数在使用的时候使用具体的类型来替换。泛型最主要的应用是在JDK5中的新集合类框架中。对于泛型概念的引入,开发社区的观点是褒贬不一。从好的方面上说,泛型的引入可以解决之前的集合类框架在使用过程中通常会出现的运行时刻类型错误,因为编译器可以在编译时刻就发现很多明显的错误。从不好的方面说,为了保证与旧版本的兼容性,Java泛型的实现上还存在着不够优雅的地方。类型擦除正确理解泛...

  • I/O重定向和管道

    标准I/O与重定向的若干概念3个标准文件描述符所有的Unix工具都使用文件描述符0、1和2。如下图所示,标准输入文件的描述符是0,标准输出的文件描述符是1,标准错误输出的文件描述符则是2。Unix假设文件描述符0、1和2都已经被打开,可以分别进行读、写和写的操作。重定向I/O的是shell而不是程序通过使用输出重定向标志,命令cmd>filename告诉shell将文件描述符1定位到文件。于是shell就将文件描述符与指定的文件连接起来。程序持续不断地将数据写到文件描述符1中,根本没...

  • TCP拥塞控制

    TCP基础网络的传输层有两种方式——TCP和UDP,其中TCP是基于连接的,而UDP不需要连接。它们各自支持一些应用层协议,但也有些协议是两者都支持的,比如DNS,我们通过DNS来比较TCP和UDP的差别。当前我的计算机的ip为192.168.199.134,向DNS服务器发起一个DNS查询,以期获得tinylcy.me所对应的ip地址。DNS默认使用UDP的情况如下所示:通过Wireshark抓取这个过程的网络包,如下所示:使用set vc强制DNS使用TCP:这个过程所有的网络包如下所...

  • 目录与文件属性:编写ls

    问题ls命令可以列出目录中所有文件的名字,以及这些文件的其它信息。注意,ls对文件和目录所做的操作是不同的,ls能判定参数指定的是文件还是目录。如果要自己编写ls,需要掌握三点: 如何列出目录的内容。 如何读取并显示文件的属性。 给出一个名字,如何能够判断出它是目录还是文件。编写ls目录是一种特殊的文件,它的内容是文件和目录的名字。与普通文件不同的是,目录文件永远不会为空,每个目录至少包含两个特殊的项目:.和..,分别代表当前目录和上一级目录。什么函数可以读目录?在联机帮助中根据关键...

  • 用机器指令和汇编指令编程(三)

    程序执行过程的跟踪可以使用Debug来跟踪一个程序的执行过程,示例程序1.asm如下所示。assume cs:codesgcodesg segment mov ax,0123h mov bx,0456h add ax,bx add ax,ax mov ax,4c00h int 21hcodesg endsend使用masm编译1.asm,生成1.obj,然后将1.obj使用连接器Link.exe连接,生成1.exe。输入debug 1.exe,将程序载入...

  • Spring IoC Context启动过程解析

    ServletContextWeb容器在启动的过程中,会为每个Web应用程序创建一个对应的ServletContext对象,它代表了当前的Web应用,为Spring IoC容器提供宿主环境。在部署Web工程的时候,Web容器会读取web.xml,创建ServletContext,当前Web工程所有部分都共享这个Context。context-param为ServletContext提供键值对,即Servlet上下文的信息,这些信息Listener、Filter和Servlet都有可能使用到...

  • LinkedList源码分析

    本文涉及的JDK源码版本为1.7.0_79。LinkedList类定义LinkedList是基于双向链表实现的,LinkedList除了被当做数组来使用,还可以作为栈、队列来使用。由于LinkedList内部采用链表的形式存储元素,因此随机访问会比较慢,但是插入、删除元素比较快。和ArrayList一样,LinkedList也是非线程安全的,只有在单线程下才可以使用。为了防止非同步访问,可以采用如下方式创建LinkedList。List list= Collections.synchron...

  • 用机器指令和汇编指令编程(二)

    物理地址CPU访问内存空间时,要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间,每一个内存单元在这个空间中都有唯一的地址,将这个唯一的地址称为物理地址。CPU通过地址总线送入存储器的,必须是一个内存单元的物理地址。而在CPU向地址总线上发出物理地址之前,必须要在内部形成这个物理地址。不同的CPU有不同的形成物理地址的方式,此处依旧讨论8086CPU如何在内部形成内存单元的物理地址。16位结构的CPU8086CPU是16位机,也可以说8086CPU是16位结构的CPU。...