`
solleoit
  • 浏览: 35875 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多
----------------------------------------------------------------------------------------------------------
  获取本机地址

 

InetAddress addr =InetAddress.getByName(null);
InetAddress.getByName("localhost");
InetAddress.getByName("127.0.0.1");
这三种方法得到的结果是一样的。
创建InetAddress的唯一途径就是那个类的static(静态)成员方法getByName()(这是最常用的)、getAllByName()或者getLocalHost()。
 
----------------------------------------------------------------------------------------------------------          
制作jar包
jar命令格式:jar {c t x u f }[ v m e 0 M i ][-C 目录]文件名... 
  
其中{ctxu}这四个参数必须选选其一。[v f m e 0 M i ]是可选参数,文件名也是必须的。 
  
-c  创建一个jar包 
-t 显示jar中的内容列表 
-x 解压jar包 
-u 添加文件到jar包中 
-f 指定jar包的文件名 
  
-v  生成详细的报造,并输出至标准设备 
-m 指定manifest.mf文件.(manifest.mf文件中可以对jar包及其中的内容作一些一设置) 
-0 产生jar包时不对其中的内容进行压缩处理 
-M 不产生所有文件的清单文件(Manifest.mf)。这个参数与忽略掉-m参数的设置 
-i    为指定的jar文件创建索引文件 
-C 表示转到相应的目录下执行jar命令,相当于cd到那个目录,然后不带-C执行jar命令 
 
二.jar使用范例: 
  
(1)创建jar包 
   jar cf hello.jar hello   利用test目录生成hello.jar包,如hello.jar存在,则覆盖 
  
(2)创建并显示打包过程 
jar cvf hello.jar hello     利用hello目录创建hello.jar包,并显示创建过程 
例:E:\>jar cvf hello.jar hello 
标明清单(manifest) 
增加:hello/(读入= 0) (写出= 0)(存储了 0%) 
增加:hello/TestServlet2.class(读入= 1497) (写出= 818)(压缩了 45%) 
增加:hello/HelloServlet.class(读入= 1344) (写出= 736)(压缩了 45%) 
增加:hello/TestServlet1.class(读入= 2037) (写出= 1118)(压缩了 45%) 
  
 ----------------------------------------------------------------------------------------------------------
序列化(Serializable)是什么: 
  序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得。 
  序列化分为两大部分:序列化和反序列化。序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络上传输。反序列化就是打开字节流并重构对象。对象序列化不仅要将基本数据类型转换成字节表示,有时还要恢复数据。恢复数据要求有恢复数据的对象实例 
  序列化的什么特点: 
  如果某个类能够被序列化,其子类也可以被序列化。声明为static和transient类型的成员数据不能被序列化。因为static代表类的状态, transient代表对象的临时数据。 
  什么时候使用序列化: 
  一:对象序列化可以实现分布式对象。主要应用例如:RMI要利用对象序列化运行远程主机上的服务,就像在本地机上运行对象时一样。 
  二:java对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中,可以保存在文件中或在网络连接上传递。利用对象序列化可以进行对象的"深复制",即复制对象本身及引用的对象本身。序列化一个对象可能得到整个对象序列。
 ----------------------------------------------------------------------------------------------------------
序列化和外部化(Externalizable)的主要区别 
下面是序列化和外部化在代码级的关联方式: 

 

  publicinterfaceSerializable{} 
  publicinterfaceExternalizableextendsSerializable{ 
  void readExternal(ObjectInputin); 
  void writeExternal(ObjectOutputout); 
  } 
序列化会自动存储必要的信息,用以反序列化被存储的实例,而外部化则只保存被存储的类的标识。
Serializable接口 
  · 优点:内建支持 
  · 优点:易于实现 
  · 缺点:占用空间过大 
  · 缺点:由于额外的开销导致速度变比较慢 
Externalizable接口 
  · 优点:开销较少(程序员决定存储什么) 
  · 优点:可能的速度提升 
  · 缺点:虚拟机不提供任何帮助,也就是说所有的工作都落到了开发人员的肩上。 
在两者之间如何选择要根据应用程序的需求来定。Serializable通常是最简单的解决方案,但是它可能会导致出现不可接受的性能问题或空间问题;在出现这些问题的情况下,Externalizable可能是一条可行之路。 
  要记住一点,如果一个类是可外部化的(Externalizable),那么Externalizable方法将被用于序列化类的实例,即使这个类型提供了Serializable方法: 

 

  privatevoid writeObject() 
  privatevoid readObject()
----------------------------------------------------------------------------------------------------------
(全文完)
 
(转载本博文章请注明作者和出处 http://solleoit.iteye.com,请勿用于任何商业用途)
分享到:
评论

相关推荐

    李兴华J2SE笔记(完整版)

    《李兴华J2SE笔记(完整版)》是一份专为Java初学者及开发者编写的详尽教程,旨在帮助读者快速掌握Java编程基础,并深入理解J2SE(Java Standard Edition)的核心概念。这份笔记由李兴华先生精心编写,以其丰富的...

    J2se笔记本程序源码

    【标题】"J2se笔记本程序源码"揭示了这个项目是基于Java 2 Standard Edition (J2SE) 平台开发的一个简单的文本编辑器应用。J2SE是Java编程语言的核心部分,提供了构建桌面应用程序所需的类库和API。这个程序源码可以...

    李兴华j2se不分的所有笔记

    李兴华的J2SE笔记集合了魔乐科技的丰富教学资源,覆盖了Java学习的关键知识点,对于Java初学者或进阶者来说,是不可多得的学习资料。 一、Java基础篇 1. 第3章:Java基础程序设计 - 运算符、表达式与语句笔记:...

    j2se学习笔记——课堂笔记

    **J2SE学习笔记——接口与相关程序** Java 2 Platform, Standard Edition(J2SE)是Java平台的核心部分,提供了开发和运行桌面应用程序、Web应用程序和服务的基础。本笔记主要聚焦于J2SE中的接口(Interface)概念...

    Java-J2SE学习笔记

    Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记

    java j2se笔记

    ### Java J2SE 基础知识总结 #### 一、使用 `System.in` 进行输入 在Java中,`System.in` 是一个标准的输入流,它通常用于读取控制台输入的数据。从Java SE 5 开始,引入了一个更加方便的方式来处理这种输入,即使...

    MLDN 李兴华 魔乐科技网上最全笔记

    《MLDN 李兴华 魔乐科技网上最全笔记》是一份集大成的Java学习资源,由知名IT教育机构魔乐科技的李兴华老师精心编撰。这份笔记覆盖了Java技术的三大核心领域:JavaSE(标准版)、Oracle数据库管理和JavaEE(企业版)...

    J2SE全套笔记(非常经典)

    这份“J2SE全套笔记”涵盖了从基础到高级的广泛主题,旨在帮助学习者全面理解Java编程语言。 笔记内容可能包括以下几个主要部分: 1. **Java基础**:这部分会介绍Java的基本语法,如变量、数据类型、运算符、流程...

    J2SE,J2EE学习笔记

    在描述中提到,这份笔记特别注重J2SE的基础知识,这对于初学者来说尤其有价值。基础部分可能涵盖以下内容: - **基本语法**:包括变量、数据类型、运算符、控制结构(如if-else、switch、循环)、异常处理等。 - *...

    李兴华老师.rar

    他的Java笔记涵盖了Java学习的重要领域,包括基础的JavaSE、数据库管理的Oracle以及企业级应用开发的JavaEE框架部分。尽管这些资料可能年代稍显久远,但其核心的思想和原理仍然具有极高的学习价值,对于初学者来说,...

    J2SE学习笔记(学习源码)

    J2SE学习实例 1、Java的基础知识 2、Java面向对象 3、集合Collection的使用 4、IO使用 5、Socket编程 6、Thread线程技术 7、Subject反射技术 8、GUI图形编程

    J2SE基础学习笔记

    【J2SE基础学习笔记】 Java 作为一门高级编程语言,源自Sun公司的Green项目,原本设计用于家用电子产品,但由于C++的复杂性和安全性问题,Sun公司基于C++开发出了Oak,即Java的前身。1995年Java正式发布,随后迅速...

    j2se学习笔记

    【J2SE学习笔记】 Java 2 Standard Edition (J2SE)是Java平台的一个核心组件,主要用于桌面应用程序的开发。J2SE包含了运行和开发Java应用程序所需的全部工具和API。这个学习笔记涵盖了J2SE的基础知识,包括编程...

    J2SE学习笔记(思维导图版本)

    马士兵老师讲解J2SE视频的相关笔记内容,通过思维导图的形式对主要内容进行整理.方面对相关知识的回顾和查找.文档需要通过专门的思维导图软件(Mindmanager)打开.

    j2se学习笔记和java学习笔记

    本学习笔记旨在深入理解J2SE的基础概念、核心特性以及实际应用。 一、Java基础 Java是一种面向对象的编程语言,由Sun Microsystems(现已被Oracle收购)于1995年发布。它的主要特点包括跨平台性(Write Once, Run ...

    J2se学习笔记

    以下是对 J2SE 学习笔记中的关键知识点的详细解释: **第二课时** 1. **Java 注释**: 注释是用于提高代码可读性的非执行文本。在Java中,有三种类型的注释: - 单行注释:`// 这是单行注释` - 多行注释:`/* 这是...

    j2se学习笔记.doc

    本篇学习笔记将深入探讨J2SE中的面向对象特性、关键字、访问控制以及多态等核心概念。 **面向对象**: 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它以对象为中心,强调数据和操作数据的...

    Java Web ppt 开发 J2SE 学习笔记

    Java Web ppt 开发和J2SE学习笔记涵盖了Java编程的基础以及如何将其应用于Web应用程序的开发。J2SE,即Java 2 Platform, Standard Edition,是Java平台的核心部分,提供了用于开发和运行桌面应用、服务器端应用和...

Global site tag (gtag.js) - Google Analytics