`
boy00fly
  • 浏览: 194707 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论
文章列表
从以下几个方面来讨论这个问题   1、序列化是用来干什么的?      序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容就行流化。简而言之就是为了保存内存中的各种实例对象的状态,并且可以通过反序列化将实例对象的状态再读出来。   2、为什么需要序列化? 为了将对象转换为更加容易传输的格式,减少网络流量的开销。例如,可以序列化一个实例对象,然后使用Http通过Internet在客户端和服务端之间传输该对象,在另外一段,反序列化将从该流中重新构造对象。   3、什么情况下需要序列化? 内存中的实例对象状态保存到存储介质时。 内存中的实例对象需要在网络 ...
1. There is no smoke without fire(无风不起浪)   2. An ounce of prevention is worth a pound of cure(预防为主,治疗为辅)   3. Don't put all your eggs in one basket(不要把所有的鸡蛋放在一个篮子里)   4. As you sow, so shall you reap(种瓜得瓜种豆得豆)   5. Great haste makes great waste(伟大的加速造就伟大的浪费)
为什么要使用垃圾收集器?   类似类型为什么要收集一样(参考http://boy00fly.iteye.com/blog/1108420)。java程序运行的过程中,越来越多的对象在堆中生成,占用的内存越来越大,如果不收集的话,到最后结果可想而知;即使堆内存足够,请求分配新对象时可能不得不增大堆空间的大小,虽然可以使用的总空闲空间是足够的,这是因为堆中没有连续的空闲空间放得下新的对象,在一个虚拟内存系统中,增长的堆所需的额外分页(或交换)空间会影响运行程序的性能。   使用垃圾收集器的优缺点   优点:1. 可以提高生产率。      程序员可以从复杂的释放内存空间的重担中解救出 ...
这里要讲的是类型(Class)的生命周期而不是对象的生命周期,后续文章将描述GC的相关内容。   1. 类型的生命周期的开始 装载(Load)----->连接(Link)------>初始化(Initialize),而连接阶段分为三个子步骤----------验证(Verifiy)---> ...
打开天窗说亮话。 首先:为啥想要了解了解Http协议呢? 本人目前从事web领域的开发,Http协议,必须的!!   其次:Http协议是用来干什么的?  在web应用领域,是客户端(浏览器也是一种客户端)与服务端通讯的一种协议。就这么简单!   接下来:Http协议的内容是什么?  这个内容实在太多了(具体的可以参考http://www.w3.org/Protocols/rfc2616/rfc2616.html)。  下面简介下"客户请求"与"服务器响应":  客户请求包括:1.请求方法 2.请求头 3.请求数据   ...
1. JMS架构   Java 消息服务(Java Message Service,简称JMS)是用于访问企业消息系统的开发商中立的API。企业消息系统可以协助应用软件通过网络进行消息交互。JMS 在其中扮演的角色与JDBC 很相似,正如JDBC 提供了一套用于访问各种不同关系数据库的公共API,JMS 也提供了独立于特定厂商的企业消息系统访问方式。 使用JMS 的应用程序被称为JMS 客户端,处理消息路由与传递的消息系统被称为JMS Provider,而JMS 应用则是由多个JMS 客户端和一个JMS Provider 构成的业务系统。发送消息的JMS 客户端被称为生产者(produ ...
之前对Java虚拟机作了概述,接下来来讲一讲Java class文件,主要涉及class文件的内容,包括常量池的结构及其格式等。   Java class文件是什么?   java class 文件是对Java程序二进制文件格式的精确定义。每一个Java class文件都对一个Java类或者Java接口做出了全面描述。一个class文件中只能包含一个类或者接口。无论Java class文件在何种系统上产生,无论虚拟机在何种操作系统上运行,对Java class文件的精确定义使得所有Java虚拟机都能够正确地读取和解释所有Java class文件。 尽管class文件与java语言结 ...
Java数据类型   Java虚拟机是通过某些数据类型来执行计算的,数据类型及其运算都是由Java虚拟机规范严格定义的。 数据类型分为两种:基本数据类型和引用数据类型。基本类型的变量持有原始值,而引用数据类型的变量持有 ...
  Java类装载器子系统            在Java虚拟机中,负责查找并装载类型的那部分被称为类装载子系统。上图描述了,类装载器在JVM组成中的位置。          Java虚拟机有两种类装载器:启动类装载器和用户自定义类装载器。前者是Java虚拟机实现的一部分,后者则是Java程序的一部分。由不同的类装载器装载的类将被放在虚拟机内部的不同命名空间中。            类装载器子系统涉及Java虚拟机的其他几个组成部分,以及几个来自java.lang库的类。比如,用户自定义的类装载器是普通的Java对象,他的类必须派生自java.lang.ClassLoader ...
上篇文章讲到了Heap(堆)相关的内容,下面紧接着讲讲Runtime Data Areas(运行数据区)中Java Stacks、PC Register、Native Method Stacks.   Java Stacks         每当启动一个新线程时,Java虚拟机都会为它分配一个Java栈。前面我们曾经提到 ...
上篇文章描述了Runtime Date Areas(运行时数据区)这一大块中的Method Area(方法区),此篇文章接着上一篇的内容往下讲。  Heap 堆       java程序在运行时创建的所有类实例或数组都放在同一个堆中。而一个Java虚拟机实例只存在一个 ...
Java虚拟机是什么             要理解java虚拟机,你首先必须意识到,当你说“Java虚拟机”时,可能指的是如下三个不同的东西: 1. 抽象规范 2. 一个具体的实现 3. 一个运行中的虚拟机实例              Java虚拟机抽象规范仅仅是一个概念,在Tim Lindholm和Frank Yellin编著的《The Java Virtual Machine Specification》一书中详细地描述了它。而该规范的具体实现,可能来自多个提供商,并存在于多个平台。他或者完全用软件实现,或者以硬件和软件结合的方式来实现。当运行一个Java程序的同时,也就是 ...
Template定义: 定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中. 其实Java的抽象类本来就是Template模式,因此使用很普遍.而且很容易理解和使用,我们直接以示例开始: public abstract class Benchmark { /** * 下面操作是 ...
  Java基础-关于session的详细解释 来源:不详 (2006-06-01 16:49:09) 一、术语session  在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的。  session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。有时候我们可以看到这样的话“在一个浏览器会话期间,...”,这里的会话一词用的就是其本义,是 ...
我简单说明一下我的看法  1 接口是核心,其定义了要做的事情,包含了许多的方法,但没有定义这些方法应该如何做。 2 如果许多类实现了某个接口,那么每个都要用代码实现那些方法 3 如果某一些类的实现有共通之处,则可以抽象出来一个抽象类,让抽象类实现接口的公用的代码,而那些个性化的方法则由各个子类去实现。 所以,抽象类是为了简化接口的实现,他不仅提供了公共方法的实现,让你可以快速开发,又允许你的类完全可以自己实现所有的方法,不会出现紧耦合的问题。 应用场合很简单了 1 优先定义接口 2 如果有多个接口实现有公用的部分,则使用抽象类,然后集成它。
Global site tag (gtag.js) - Google Analytics