阅读更多 将JDK5.0开发的项目转为JDK1.4可运行的项目Retrotranslator、Retroweaver http://iamin.blogdriver.com/iamin/1177133
1 经典I/O模式 BIO (阻塞I/O) JDK1.4前 NIO (非阻塞 I/O) JDK1.4 (2002 年,java.nio 包) AIO(异步 I/O) JDK1.7 (2011 年) 1.2...Windows实现成熟,但其很少用做服务器 Linux常用做服务器,但其AlO实现不够成熟 Linux下AIO相比较NIO的性能提升不明显 所有 netty 也是联系实际情况才有选择地支持高性能的 IO...通用NIO实现(Common)在Linux下也是epoll,但Netty依旧选择自己实现,因为更好: Netty提供更多可控参数: JDK的NIO默认实现是水平触发 Netty 是边缘触发(默认)和水平触发
1 经典I/O模式 BIO (阻塞I/O) JDK1.4前 NIO (非阻塞 I/O) JDK1.4 (2002 年,java.nio 包) AIO(异步 I/O) JDK1.7 (2011 年)...Windows实现成熟,但其很少用做服务器 Linux常用做服务器,但其AlO实现不够成熟 Linux下AIO相比较NIO的性能提升不明显 所以 netty 也是联系实际情况才有选择地支持高性能的 IO...通用NIO实现(Common)在Linux下也是epoll,但Netty依旧选择自己实现,因为更好: Netty提供更多可控参数: JDK的NIO默认实现是水平触发 Netty 是边缘触发(默认)和水平触发
-groups 逗号分隔的组列表 要运行的组列表(例如 "windows,linux,regression")....如果你正在使用在xml文件里面的包标签并且在classpath路径中由很多类而大部分都不是测试类的时候比较方便 举例: java org.testng.TestNG -groups windows,linux...如果适用jkd5则默认为"JDK",如果适用jdk1.4则默认为"Javadoc" classfilesetref 要运行的测试类的FileSet结构的引用. ...skippedProperty 当发生测试被跳过时设置的property的名称.只有当haltonskipped没有设置时才使用 不是必须 sourcedir 用于jdk1.4...测试的PATH-like结构(使用JavaDoc形式的annotations) sourcedirref 用于jdk1.4测试的PATH-like结构的引用(使用JavaDoc
从JDK 7版本开始,Java新加入的文件和网络io特性称为nio2(new io 2, 因为jdk1.4中已经有过一个nio了),包含了众多性能和功能上的改进,其中最重要的部分,就是对异步io的支持,...BIO、NIO、AIO适用场景分析: BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序直观简单易理解。...NIO方式适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4开始支持。...Linux AIO 1Linux AIO 简介 Linux 异步 I/O 是 Linux 内核中提供的一个相当新的增强。...2Linux 的 I/O 模型 在深入介绍 AIO API 之前,让我们先来探索一下 Linux 上可以使用的不同 I/O 模型。
WebSphere5.1:JDK1.4,Servelet2.3、JSP1.2 WebSphere6.0:JDK1.4,Servelet2.4、JSP2.0 WebSphere6.1:JDK5.0,...Servelet2.4、JSP2.0 Tomcat4.1:JDK1.4,Servelet2.3、JSP1.2 Tomcat5.5:JDK5.0,Servelet2.4、JSP2.0 Tomcat5.5
Tomcat调优 内存优化 默认情况下Tomcat的相关内存配置较低,需要修改,否则并发上来可能会报OOM异常 Linux下修改TOMCAT_HOME/bin/catalina.sh,在其中加入如下 JAVA_OPTS...protocol="org.apache.coyote.http11.Http11Nio2Protocol" BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4...NIO方式适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4开始支持.
5. 4种IO比较 概念澄清 异步非阻塞IO 很多人习惯将JDK1.4提供的NIO称为异步非阻塞IO,其实严格按照UNIX网络编程模型和JDK实现区分,实际上它只能被称为非阻塞IO,不能叫做异步非阻塞...在早期JDK1.4和1.5 update10版本之前,JDK的Selector基于select/poll模型实现,它是基于IO复用技术的非阻塞IO,不是异步IO。...在JDK1.5 update10和Linux core2.6以上,Sun优化了Selector的实现,它在底层使用epoll替换了select/poll,上层的API没有变化,可以认为是JDK NIO的一次性能优化
Linux安装Tomcat最新版本 1. Tomcat各版本选择 2. 下载启动 1....JDK7) 2.5 2.1 2.1 N/A N/A 6.0.x (已停止维护) 6.0.53 大于等于JDK5 2.4 2.0 N/A N/A N/A 5.5.x (已停止维护) 5.5.36 大于等于JDK1.4
一、Tomcat内存优化,启动时告诉JVM需要多大内存(调优内存是最直接的方式) Windows 下的 catalina.bat Linux 下的 catalina.sh 在该文件中配置jvm的内存空间...BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序直观简单易理解....NIO方式适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4开始支持.
在上一篇推文中讲解了零拷贝思想在Linux系统中的实现,主要有mmap、sendfile、splice、tee等,但在Java中目前主要实现了mmap和sendfile。...在JDK1.4 的发布版中正式引入NIO,加入了缓冲区Buffer和通道Channel的概念,提供了非阻塞的方式。...然而JDK1.4主要是为Socket通讯进行的优化,随后在JDK1.7版本中的NIO2不仅增强了文件系统的处理能力,还做到了真正的异步I/O—AIO。...Linux的time命令 time是linux shell内置的命令,它用于统计/测量系统的资源使用情况,如CPU、内存、I/O等,用法如下 time [ -apqvV ] [ -f FORMAT ]...写在最后 虽然JDK没有实现所有的Linux零拷贝模式,但如果能把mmap和sendfile发挥到极致在性能上也能具有非常可观的提升,比如kafka、netty都是以零拷贝而业界瞩目。
jdk1.4前只有这一种模型。编程模型最简单 NIO 同步非阻塞IO:可靠性比较好,吞吐量比较高,适用于连接比较多且连接比较短(轻操作)。(例如聊天室,每人发一句话)jdk1.4后支持。...Selector对应一个或多个线程,线程数量由Server端控制 Buffer和Channel都是可读可写的 四、select,poll,epoll有什么区别 他们是NIO中多路复用的三种实现机制,是由Linux...通常只会在Unix,Linux系统。 select机制:会维护一个FD的集合 fd_set。...EPoll机制(Event Poll):Linux2.6提出来的,事件驱动,它不再扫描所有的FD,只将用户关心的FD的事件存放到内核的一个事件表。
生产环境JDK版本确认,直接在Linux下执行该命令就能看对应.class 16进制文件内容。 hexdump MiscUtil.class | less 3....: 34(对应十进制的50):JDK1.8 33(对应十进制的50):JDK1.7 32(对应十进制的50):JDK1.6 31(对应十进制的49):JDK1.5 30(对应十进制的48):JDK1.4
一:Tomcat内存优化,启动时告诉JVM我要一块大内存(调优内存是最直接的方式) Windows 下的catalina.bat Linux 下的catalina.sh 如: JAVA_OPTS='-Xms256m...BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序直观简单易理解....NIO方式适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4开始支持.
CentOS 6.5 配置 Tomcat 步骤: 一、安装Java 1、JDK下载 2-1、源码安装: #mkdir /usr/java #tar zxvf jdk-8u131-linux-x64.tar.gz...-C /usr/java/ 2-2、rpm包安装: #chmod +x jdk-7u79-linux-x64.rpm #rpm -ivh jdk-7u79-linux-x64.rpm 3、设置环境变量...TIME_STYLE='+%Y/%m/%d %H:%M:%S' # source /etc/profile 使环境变量生效 4、设置java和javac的符号连接: 这是把默认的jdk(本系统默认是JDK1.4
3.2 、BIO、NIO、AIO适用场景分析 BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序简单易理解。 ...编程比较复杂,JDK1.4开始支持。 AIO方式使用于连接数目多且连接比较长(重操作)的架构,比如相册服务器,充分调用OS参与并发操作,编程比较复杂,JDK7开始支持。...BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,程序简单易理解。...从 JDK1.4 开始,Java 提供了一系列改进的输入/输出的新特性,被统称为 NIO(即 New IO),是同步非阻塞的。 ...BIO , BIO 中要么是输入流,或者是输出流, 不能双向,但是NIO的Buffer 是可以读也可以写, 需要 flip 方法切换; (8)channel 是双向的, 可以返回底层操作系统的情况, 比如Linux
在运行的时候它会先在CLASSPATH找log4j,如果有,就使用log4j,如果没有,就找JDK1.4带的 java.util.logging,如果也找不到就用Simple Logger。...commons-logging.jar的出现是一个历史的的遗留的遗憾,当初Apache极力游说Sun把log4j加入JDK1.4, 然而JDK1.4项目小组已经接近发布JDK1.4产品的时间了,因此拒绝了...jaas.jar: JAAS是用来进行权限验证的,已经包含在JDK1.4里面了。所以实际上是多余的包。 jcs.jar: 如果你准备在Hibernate中使用JCS的话,那么必须包括它,否则就不用。...一般App Server都会带上,JDK1.4也包含了解析器,不过不是Xerces,是Crimson,效率比较差,不过Hibernate用XML只不过是读取 配置文件,性能没什么紧要的,所以也是多余的。
额外知识:直接内存 定义:NIO类(JDK1.4引入)中基于通道和缓冲区的I/O方式 通过使用Native函数库 直接分配 的堆外内存 特点:不受堆大小限制 不属于虚拟机运行时数据区的一部分 & 不在堆中分配...总结 本文全面讲解JVM中的内存模型 & 分区,总结如下 往期推荐 Upwork 发布最赚钱的编程语言 Top 15 一次微服务与IoT的深度探秘与实战 又有一个霸榜的 Linux 神器 来深入了解一下
三、三种 Java IO 模型 1、BIO BIO 全称是 Blocking IO,是 JDK1.4 之前的传统 IO 模型,本身是同步阻塞模式。...AIO 可以做到真正的异步的操作,但实现起来比较复杂,支持纯异步 IO 的操作系统非常少,目前也就 windows 是 IOCP 技术实现了,而在 Linux上,底层还是是使用的 epoll 实现的。...4、适用场景分析 BIO 方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4 以前的唯一选择,但程序直观简单易理解。...NIO 方式适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4 开始支持。
领取专属 10元无门槛券
手把手带您无忧上云