摘要:一:根据unix的网络编程对I/O模型的分类,UNIX提供了5种I/O模型 >阻塞I/O模型:最常用的I/O模型。所有文件操作都是阻塞的。我们以套接字接口为例讲解此模型:在进程空间中调用recvfrom,其系统调用直到数据包到达且被复制到应用程序的缓冲区中或者发生错误时才返回。在此期间一直会等待,进
阅读全文
摘要:同步I/O模型的弊端 >每一个线程的创建都会消耗服务端内存,当大量请求进来,会耗尽内存,导致服务宕机伪异步I/O的弊端分析 >当对Socket的输入流进行读取操作的时候,它会一直阻塞下去,知道发生如下三件事情(1)有数据可读(2)可用数据已经读取完毕(3)发生空指针或者I/O异常 >这意味着当对方发
阅读全文
摘要:工作中碰到过这个问题好几次了,觉得有必要总结一下,所以有了这篇文章,这篇文章分为三个部分:认识问题、分析问题、解决问题。 一、认识问题: 首先我们通过下面这个 测试程序 来认识这个问题:运行的环境 (有必要说明一下,不同环境会有不同的结果):32位 Windows XP,Sun JDK 1.6.0_
阅读全文
摘要:转载:http://weixiaolu.iteye.com/blog/1479656 Java NIO原理图文分析及代码实现 前言: 最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要
阅读全文
摘要:当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异、它们的使用场景,以及它们如何影响您的代码设计。 Java NIO和IO的主要区别 下表总结了Java NIO和IO之间的主要差别,我会更详
阅读全文
摘要:Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。 这里是Pipe原理的图示: 创建管道 通过Pipe.open()方法打开管道。例如: 1 Pipe pipe = Pipe.open(); 1 P
阅读全文
摘要:Java NIO中的DatagramChannel是一个能收发UDP包的通道。因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入。它发送和接收的是数据包。 打开 DatagramChannel 下面是 DatagramChannel 的打开方式: 1 DatagramChannel ch
阅读全文
摘要:Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样。ServerSocketChannel类在 java.nio.channels包中。 这里有个例子: 01 ServerSocketChannel s
阅读全文
摘要:Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道。可以通过以下2种方式创建SocketChannel: 打开 SocketChannel 下面是SocketChannel的打开方式: 1 SocketChannel socketChannel = SocketChan
阅读全文
摘要:一:Java NIO的FileChannel >Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。 >FileChannel无法设置为非阻塞模式,它总是运行在阻塞模式下。二:Java NIO的FileChannel的打开 >在使用FileChannel之前,
阅读全文
摘要:一:Java NIO的selector的概述 >Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。二:Java NIO的为什么要使用selector >仅用单
阅读全文
摘要:在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel。transferFrom()FileChannel的transferFrom()方法可以将数据从源通道传输到FileChan
阅读全文
摘要:一:Java NIO的scatter/gather应用概念 >Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作。 >分散(scatter)从Channel中读取
阅读全文
摘要:一:java的nio的buffer==>Java NIO中的Buffer用于和NIO通道Channel进行交互.==>数据是从通道channel读入缓冲区buffer,从缓冲区buffer写入到通道中channel的。==>缓冲区buffer本质上是一块可以写入数据,然后可以从中读取数据的内存。这块
阅读全文
摘要:一:java的nio的channelJava NIO的通道类似流,但又有些不同:==>既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。==>通道可以异步地读写。==>通道中的数据总是要先读到一个Buffer,或者总是要从一个Buffer中写入。正如上面所说,从通道读取数据到缓冲区
阅读全文
摘要:一:java的nio的核心组件?Java NIO 由以下几个核心部分组成:==>Channels==>Buffers==>Selectors虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其它组件,如Pipe和Fi
阅读全文
摘要:一:HashMap >底层存储的是Entry<K,V>[]数组 >Entry<K,V>的结构是一个单向的链表static class Entry<K,V> implements Map.Entry<K,V> { final K key; V value; Entry<K,V> next; int h
阅读全文
摘要:Unsafe类在jdk 源码的多个类中用到,这个类的提供了一些绕开JVM的更底层功能,基于它的实现可以提高效率。但是,它是一把双刃剑:正如它的名字所预示的那样,它是 Unsafe的,它所分配的内存需要手动free(不被GC回收)。Unsafe类,提供了JNI某些功能的简单替代:确保高效性的同时,使事
阅读全文
摘要:jsp-api javax.servlet-api jstl tomcat 提供了servlet-api和jsp-api
阅读全文
摘要:1 //读写锁 2 private ReentrantReadWriteLock lock=new ReentrantReadWriteLock(); 3 //读锁 4 private ReadLock readLock=lock.readLock(); 5 //写锁 6 private Write
阅读全文
摘要:一:读写锁解决的场景问题 >数据的读取频率远远大于写的频率的场景,就可以使用读写锁。二:读写锁的结构 >用state一个变量。将其转化成二进制,前16位为高位,标记读线程获取锁的次数。后16位为低位,标记写线程获取锁的次数。 >读写锁需要解决的冲突:读/写冲突,写/写冲突。读/读之间无冲突。 >当有
阅读全文
摘要:按位与运算符(&) 参加运算的两个数据,按二进制位进行“与”运算。 运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1; 即:两位同时为“1”,结果才为“1”,否则为0 例如:3&5 即 0000 0011 & 0000 0101 = 0000 0001 因此,3&5的值得1。 另,负数
阅读全文
摘要:转载地址:http://blog.csdn.net/yangbutao/article/details/8479520 1、java 高并发包所采用的几个机制(CAS,volatile,抽象队列同步) CAS(乐观操作),jdk5以前采用synchronized,对共享区域进行同步操作,synchr
阅读全文
摘要:首先是下载正确的安装包 WPS For Linux : 社区下载:http://community.wps.cn/download/ 社区最新包下载:http://wps-community.org/download.html 根据自己系统是32还是64位 正确选择安装包下载。 64位安装包下载:
阅读全文
摘要:使用rpm命令查询软件包: 1、查询系统中安装的所有RPM包 $ rpm -qa 查询当前linux系统中已经安装的软件包。 例:$ rpm -qa | grep -i x11 | head -3 察看系统中包含x11字符串的前3行软件包。 2、查询软件包是否安装 $ rpm –q rpm包名称 察
阅读全文
摘要:一:锁的原理结构 (1)锁对象内部维护了一个同步管理器的对象AbstractQueuedSynchronizer,AbstractOwnableSynchronizer (2)该对象其实是一个抽象类,具体的锁的管理器继承该抽象类 (3)该抽象类的关键属性有: >Thread exclusiveOwn
阅读全文
摘要:adobe flash player的官方下载页面为:https://get.adobe.com/cn/flashplayer/ 不过近期通过APT方式以及ubuntu的软件中心都安装不了flashplayer,不知道为啥,所以只能通过其他方式安装了。flashplayer提供了4种安装方式: YU
阅读全文
摘要:在win上面可以使用XSHELL来登录类似于亚马逊这样的安全服务器,在mac上面就可以使用系统自带的命令工具来连接 1、使用命令 Java代码 ssh -i key.pem [server] 如下: Java代码 ssh -i key.pem root@192.168.1.1 2、在执行上面的命令后
阅读全文
摘要:转载:http://blog.csdn.net/testcs_dn/article/details/39058959 eclipse加速之禁用JS、jsp等文件的语法验证 去除eclipse的JS验证:将windows->preference->Java Script->Validator->Err
阅读全文
摘要:在很多情况下,我们需要为系统提供可配置化支持,简单的做法可以直接基于Spring的标准Bean来配置,但配置较为复杂或者需要更多丰富控制的 时候,会显得非常笨拙。一般的做法会用原生态的方式去解析定义好的xml文件,然后转化为配置对象,这种方式当然可以解决所有问题,但实现起来比较繁琐, 特别是是在配置
阅读全文
摘要:Spring框架从2.0版本开始,提供了基于Schema风格的XML扩展机制,允许开发者扩展最基本的spring配置文件(一 般是classpath下的spring.xml)。试想一下,如果我们直接在spring.xml中加入一个自定义标签<mytag id="aty"></matag>,会发生什么
阅读全文
摘要:一:wait()方法,wait(long timeout) >锁对象调用wait()方法,让当前线程小a进入等待状态,阻塞住,并让出当前线程拥有的锁。 >直到其他线程用锁对象调用notifyAll(),notify()将小a从wait虚拟队列中将阻塞的线程唤醒。重新争锁。 >当别的线程对当前线程小a
阅读全文
摘要:原文:http://www.ibm.com/developerworks/cn/java/j-jtp10264/index.html 多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个 Th
阅读全文
摘要:前文(深入JVM锁机制-synchronized)分析了JVM中的synchronized实现,本文继续分析JVM中的另一种锁Lock的实现。与synchronized不同的是,Lock完全用Java写成,在java这个层面是无关JVM实现的。 在 java.util.concurrent.lock
阅读全文
摘要:内部类详解文章:https://www.cnblogs.com/dolphin0520/p/3811445.html 可以将一个类的定义放在另一个类的定义内部,这就是内部类。 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二)。 第一次见面
阅读全文
摘要:一:接口 1 package com.yeepay.sxf.testclassforinner; 2 3 /** 4 * 回调接口. 5 * @author shangxiaofei 6 * 7 */ 8 public interface CallBack { 9 10 public boolean
阅读全文
摘要:>关于时间,创建线程使用是直接向系统申请资源的,这里调用系统函数进行分配资源的话耗时不好说。 >关于资源,Java线程的线程栈所占用的内存是在Java堆外的,所以是不受java程序控制的,只受系统资源限制,默认一个线程的线程栈大小是1M(当让这个可以通过设置-Xss属性设置,但是要注意栈溢出问题),
阅读全文
摘要:一:区别: >JDK的动态代理依靠接口实现,如果有些类并没有实现接口,则不能使用JDK代理,这就要使用cglib动态代理了。 >JDK的动态代理机制只能代理实现了接口的类,而不能实现接口的类就不能实现JDK的动态代理,cglib是针对类来实现代理的,他的原理是对指定的目标类生成一个子类,并覆盖其中方
阅读全文
摘要:一:委托者 1 package com.yeepay.porxy.cglib.test; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 6 /** 7 * 目标类,(委托类) 8 * @author shangxiaofei 9 *
阅读全文
摘要:一:被代理的对象所要实现的接口 1 package com.yeepay.testpoxy; 2 3 import java.util.Map; 4 5 /** 6 * 被动态代理的接口 7 * @author shangxiaofei 8 * 9 */ 10 public interface My
阅读全文
摘要:系统运行在MAVEN中的jetty插件下,当在ECLIPSE运 clean jetty:run时系统提示 OutOfMemoryError: PermGen space。 解决办法:设置run as >run configuragtions >jre标签下的 属性VM arguments:-serv
阅读全文
摘要:spring mvc 支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void。 ModelAndView 通过ModelAndView构造方法可以指定返回的页面名称,也可以通过setViewName()方法跳转到指定的页面 Ma
阅读全文
摘要:今天研究了一下scope的作用域。默认是单例模式,即 scope="singleton"。另外scope还有prototype、request、session、global session作用域。scope="prototype"多例。再配置bean的作用域时,它的头文件形式如下: 如何使用spri
阅读全文