`
chenHZ123
  • 浏览: 4081 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
java设计模式23种,因工作需要,今天学习了一下门面模式。 看了许多博客,资料。 我个人总结的门面模式就是:给你我想给你看的,我还不是亲自给你看,我比较高大上,我有一个秘书,我想给你看的,你可以直接找我的秘书 ...

socket编程

在使用Socket来连接服务器时最简单的方式就是直接使用IP和端口, 但Socket类中的connect方法并未提供这种方式, 而是使用SocketAddress类来向connect方法传递服务器的IP和端口。 虽然这种方式从表面上看要麻烦一些,但它会给我们带来另外一个好处, 那就是网络地址的重用。 所谓网络地址的重用表现在两个方面: 1. 通过建立一个SocketAddress对象, 可以在多次连接同一个服务器时使用这个SocketAddress对象。 2. 在Socket类中提供了两个方法:getRemoteSocketAddress和getLocalSocketAddres ...

类加载器

一、概述: 1、定义:简单说,类加载器就是加载类的工具。 当出现一个类,用到此类的时候,Java虚拟机首先将类字节码加载进内存, 通常字节码的原始信息放在硬盘上的classpath指定的目录下。 2、类加载器作用:将.class文件中的内容加载进内存进行处理, 处理完后的结果就是字节码。 3、默认类加载器: 1)Java虚拟机中可安装多个类加载器,系统默认的有三个主要的, 每个类负责加载特定位置的类:BootStrap、ExtClassLoader、AppClassLoader 2)BootStrap--顶级类加载器: 类加载器本身也是Java类,因为它是 ...
1、进程和线程 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以有多个线程。比如在Windows系统中,一个运行的xx.exe就是一个进程。 Java程序的进程里有几个线程:主线程, 垃圾回收线 ...
最近由于工作关系要做一些Java方面的开发,其中最重要的一块就是Java NIO(New I/O),尽管很早以前了解过一些,但并没有认真去看过它的实现原理,也没有机会在工作中使用,这次也好重新研究一下,顺便写点东西,就当是自己学习 Java NIO的笔记了。本文为NIO使用及原理分析的第一篇,将会介绍NIO中几个重要的概念。 在Java1.4之前的I/O系统中,提供的都是面向流的I/O系统,系统一次一个字节地处理数据,一个输入流产生一个字节的数据,一个输出流消费一个字节的数据,面向流的I/O速度非常慢,而在Java 1.4中推出了NIO,这是一个面向块的I/O系统,系统以块的方式处理处理,每一个 ...
在第一篇中,我们介绍了NIO中的两个核心对象:缓冲区和通道,在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如果我 ...
在上一篇文章中介绍了缓冲区内部对于状态变化的跟踪机制,而对于NIO中缓冲区来说,还有很多的内容值的学习,如缓冲区的分片与数据共享,只读缓冲区等。在本文中我们来看一下缓冲区一些更细节的内容。 缓冲区的分配 在前面的几个例子中,我们已经看过了,在创建一个缓冲区对象时,会调用静态方法allocate()来指定缓冲区的容量,其实调用 allocate()相当于创建了一个指定大小的数组,并把它包装为缓冲区对象。或者我们也可以直接将一个现有的数组,包装为缓冲区对象,如下示例代码所示: [java] view plaincopyprint? public class BufferWrap {        ...
在上一篇文章中介绍了关于缓冲区的一些细节内容,现在终于可以进入NIO中最有意思的部分非阻塞I/O。通常在进行同步I/O操作时,如果读取数据,代码会阻塞直至有 可供读取的数据。同样,写入调用将会阻塞直至数据能够写入。传统的Server/Client模式会基于TPR(Thread per Request),服务器会为每个客户端请求建立一个线程,由该线程单独负责处理一个客户请求。这种模式带来的一个问题就是线程数量的剧增,大量的线程会增大服务器的开销。大多数的实现为了避免这个问题,都采用了线程池模型,并设置线程池线程的最大数量,这由带来了新的问题,如果线程池中有200个线程,而有200个用户都在进行 ...
Global site tag (gtag.js) - Google Analytics