摘要: 1 Java技术与Java虚拟机说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成: Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示:图1 Java四个方面的关系运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件)。最后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码执行。从上图也可以看出Java平台由Java虚拟机和Java应用程序接口搭建,Java语言则是进入 阅读全文
posted @ 2011-05-29 20:43 ajian005 阅读(213) 评论(0) 推荐(0)
摘要: 【一】基于字节的输入流 值得注意的地方有: ①Level 2的输入流,大多数都会指明数据源的形式:例如ByteArray,File,Piped②Level 3的输入流,则不会出现具体的数据源名字,而是以功能取代:例如Buffered,LineNumber所以说Level 3的输入流是对Level 2输入流的“封装和过滤”。实际上Level 2的输入流,都继承于一个叫做:FilterInputStream的输入流。下面是对各个input stream的简介:①ByteArrayInputStream从内存中每次读取一个字节的数据,然后保存到内置的缓冲区中。维持一个计数器用来记录从数据源中读入的字 阅读全文
posted @ 2011-05-18 17:05 ajian005 阅读(230) 评论(0) 推荐(0)
摘要: 性能调优1 被动的性能调优 自下而上: 计算机及网络(cpu,内存,文件,I/O,网络,), 操作系统(线程,内存,I/O,网络), 应用服务器和数据库(cpu,内存,文件,I/O,网络,),应用程序 在设计,开发,测试阶段进行。2 主动的性能调优 自上而下:应用程序,应用服务器和数据库(cpu,内存,文件,I/O,网络,), 操作系统(线程,内存,I/O,网络),计算机及网络(cpu,内存,文件,I/O,网络,) 在测试结束,时间紧迫不能修改代码时,实施,上线,升级时。被动的性能调优步骤: (1)计算机及网络,操作系统 1) cpu的监控: Unix/Linux 用 top , vmst.. 阅读全文
posted @ 2011-05-15 13:39 ajian005 阅读(176) 评论(0) 推荐(0)
摘要: 最常被程序员们谎称读过的计算机书籍中文翻译:http://www.billthelizard.com/2008/12/books-programmers-dont-really-read.html马克·吐温曾经说过,所谓经典小说,就是指很多人希望读过,但很少人真正花时间去读的小说。这种说法同样适用于“经典”的计算机书籍。在Stack Overflow(以及其它很多软件论坛)上,诸如”程序员最应该读的计算机书籍有哪些?“这样的问题会周期性的出现。这样的问题不断的被提出、被回答,只是形式不同罢了。相同的几本书总是会出现在清单的前几名内,所以,如果想知道人们谈论的都是些什么,你有必要去读一 阅读全文
posted @ 2011-05-15 13:37 ajian005 阅读(207) 评论(0) 推荐(0)
摘要: 草稿: 1建筑行业 (1)why? 建筑的意义是什么?有没有必要区建筑?建筑的意义?可行性分析?(技术、经济、社会因素、。) (2)what? 都有什么要求? 有什么功能? 功能方面、性能方面、UI、环境因素。。。 (3)macro How? 整体架构图、选择 地址、选择位置、布局、布局图(架构图)、楼建多高?地基多深? meso How? 选择建材 钢筋型号(小的、中粗的、粗的)、地基(大理石、混净土石头、人造地基石。) 砖选什么型号的?瓦选什么型号的?水泥选什么样的? 即 建筑需要的各种材料中:都存在多种型号,需要根据需求挑选最适合,不一定是最好的 选择大于努力 基础决定上层高度 (经济基 阅读全文
posted @ 2011-05-15 12:51 ajian005 阅读(259) 评论(0) 推荐(0)
摘要: 一、从J2SE开始(对J2SE及JVM有一个很深入的研究)推出整个Java企业级世界: 1 Socket协议(TCP/IP)及服务器:现在Java开发对网络协议处理不需要关注底层(如物理层、数据链路层),从IP层和TCP/UDP层开始关注如,自己编写TCP/UDP的SocketServer/SocketClient。 如:聊天室、即时通信工具、QQ、Mina等 从谁编写角度可以分两类: 一类自己按着自己业务需求编写TCP/UDP的SocketServer/SocketClient,当然自己要处理所有相关协议栈细节。 另一类找第三方或开源的别人已经做好拿过来用就可以,如Mina,对于这种自己.. 阅读全文
posted @ 2011-05-15 12:39 ajian005 阅读(299) 评论(0) 推荐(0)
摘要: 程序员都了解初始化的重要性,但常常会忘记同样重要的清除工作。毕竟,谁需要清除一个int 呢?但在使用程序库时,把一个对象用完后就“弃之不顾”的做法并非总是安全的。当然,Java有垃圾回收器来回收无用对象占据的内存资源。但也有特殊情况:假定你的对象(并非使用 new)获得了一块“特殊”的内存区域,由于垃圾回收器只知道释放那些经由 new分配的内存,所以它不知道该如何释放该对象的这块 “特殊”内存。为了应对这种情况,Java允许你在类中定义一个名为finalize( )的方法。它的工作原理“应该”是这样的:一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其 finalize( )方法,并且在 阅读全文
posted @ 2011-05-12 11:10 ajian005 阅读(345) 评论(0) 推荐(0)
摘要: 众所周知,Java源代码被编译器编译成class文件。而并不是底层操作系统可以直接执行的二进制指令(比如Windows OS的.exe文件)。因此,我们需要有一种平台可以解释class文件并运行它。而做到这一点的正是Java 虚拟机(JVM)。实际上,JVM是一种解释执行class文件的规范技术。各个提供商都可以根据规范,在不同的底层平台上实现不同的JVM。下面是JVM实现的基本结构框图。其中类装载子系统、运行时数据区、执行引擎等是JVM的必须要解决的几大问题。★ 类装载器子系统在JVM中,类装载器子系统负责查找并装载Class文件。关于这部分的装载细节详见《JVM加载class文件的原理》★ 阅读全文
posted @ 2011-05-02 13:03 ajian005 阅读(185) 评论(0) 推荐(0)
摘要: Session 是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户端,用Cookie保存的,用户提交页面时,会将这一 SessionID提交到服务器端,来存取Session数据。这一过程,是不用开发人员干预的。所以一旦客户端禁用Cookie,那么Session也会失效。服务器也可以通过URL重写的方式来传递SessionID的值,因此不是完全依赖Cookie。如果客户端Cookie禁用,则服务器可以自动通过重写URL的方式来 阅读全文
posted @ 2011-04-26 16:36 ajian005 阅读(237) 评论(0) 推荐(0)
摘要: 看这个之前,可以先大致看一下我以前的一篇总结(HTTP请求模型和头信息):http://www.51testing.com/index.php?uid-225738-action-viewspace-itemid-216200做Web测试相关工作,了解一下HTTP协议规定的8中请求方式中最常用的GET和POST是很有必要的,现简单总结一下吧,也当是自己做个笔记。1.HTTP协议的格式:为了理解两者在传输过程中的不同,我们先看一下HTTP协议的格式: HTTP请求:<request line><headers><blank line>[<request- 阅读全文
posted @ 2011-04-26 16:16 ajian005 阅读(388) 评论(0) 推荐(0)