----------------------------------------------------------------------------------------------------------
获取本机地址
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()
----------------------------------------------------------------------------------------------------------
(全文完)
相关推荐
《李兴华J2SE笔记(完整版)》是一份专为Java初学者及开发者编写的详尽教程,旨在帮助读者快速掌握Java编程基础,并深入理解J2SE(Java Standard Edition)的核心概念。这份笔记由李兴华先生精心编写,以其丰富的...
【标题】"J2se笔记本程序源码"揭示了这个项目是基于Java 2 Standard Edition (J2SE) 平台开发的一个简单的文本编辑器应用。J2SE是Java编程语言的核心部分,提供了构建桌面应用程序所需的类库和API。这个程序源码可以...
李兴华的J2SE笔记集合了魔乐科技的丰富教学资源,覆盖了Java学习的关键知识点,对于Java初学者或进阶者来说,是不可多得的学习资料。 一、Java基础篇 1. 第3章:Java基础程序设计 - 运算符、表达式与语句笔记:...
**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 基础知识总结 #### 一、使用 `System.in` 进行输入 在Java中,`System.in` 是一个标准的输入流,它通常用于读取控制台输入的数据。从Java SE 5 开始,引入了一个更加方便的方式来处理这种输入,即使...
《MLDN 李兴华 魔乐科技网上最全笔记》是一份集大成的Java学习资源,由知名IT教育机构魔乐科技的李兴华老师精心编撰。这份笔记覆盖了Java技术的三大核心领域:JavaSE(标准版)、Oracle数据库管理和JavaEE(企业版)...
这份“J2SE全套笔记”涵盖了从基础到高级的广泛主题,旨在帮助学习者全面理解Java编程语言。 笔记内容可能包括以下几个主要部分: 1. **Java基础**:这部分会介绍Java的基本语法,如变量、数据类型、运算符、流程...
在描述中提到,这份笔记特别注重J2SE的基础知识,这对于初学者来说尤其有价值。基础部分可能涵盖以下内容: - **基本语法**:包括变量、数据类型、运算符、控制结构(如if-else、switch、循环)、异常处理等。 - *...
他的Java笔记涵盖了Java学习的重要领域,包括基础的JavaSE、数据库管理的Oracle以及企业级应用开发的JavaEE框架部分。尽管这些资料可能年代稍显久远,但其核心的思想和原理仍然具有极高的学习价值,对于初学者来说,...
J2SE学习实例 1、Java的基础知识 2、Java面向对象 3、集合Collection的使用 4、IO使用 5、Socket编程 6、Thread线程技术 7、Subject反射技术 8、GUI图形编程
【J2SE学习笔记】 Java 2 Standard Edition (J2SE)是Java平台的一个核心组件,主要用于桌面应用程序的开发。J2SE包含了运行和开发Java应用程序所需的全部工具和API。这个学习笔记涵盖了J2SE的基础知识,包括编程...
马士兵老师讲解J2SE视频的相关笔记内容,通过思维导图的形式对主要内容进行整理.方面对相关知识的回顾和查找.文档需要通过专门的思维导图软件(Mindmanager)打开.
本学习笔记旨在深入理解J2SE的基础概念、核心特性以及实际应用。 一、Java基础 Java是一种面向对象的编程语言,由Sun Microsystems(现已被Oracle收购)于1995年发布。它的主要特点包括跨平台性(Write Once, Run ...
本篇学习笔记将深入探讨J2SE中的面向对象特性、关键字、访问控制以及多态等核心概念。 **面向对象**: 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它以对象为中心,强调数据和操作数据的...
以下是对 J2SE 学习笔记中的关键知识点的详细解释: **第二课时** 1. **Java 注释**: 注释是用于提高代码可读性的非执行文本。在Java中,有三种类型的注释: - 单行注释:`// 这是单行注释` - 多行注释:`/* 这是...
Java Web ppt 开发和J2SE学习笔记涵盖了Java编程的基础以及如何将其应用于Web应用程序的开发。J2SE,即Java 2 Platform, Standard Edition,是Java平台的核心部分,提供了用于开发和运行桌面应用、服务器端应用和...