Java核心技术(第8版) – 读书笔记 – 第10章

 

1、JAR包:实际是zip文件,里面可以包含.class文件(字节码),也可以包含其他图像、声音文件。

2、JDK5之后支持pack200格式,号称比传统的jar包压缩率更高。

3、创建jar包命令:

4、JAR包还应当包含一个清单文件(manifest.mf)。它位于JAR包/META-INF/MANIFEST.MF

5、如果想指定自己定义的manifest文件,可以在jar命令中加上-m选项:

6、运行jar包,通常还要指定运行的Main类,复杂的打包还是交给Eclipse吧……

7、资源:jar包(实际是Java源代码路径下)可以包含的一系列需要使用的数据文件,如:
(1)图像、声音
(2)i18n的文本信息
(3)二进制数据文件等

8、操作资源文件的步骤:
(1)获取Class对象
(2)调用Class.getresource(filename)获得URL位置,URL对象
(3)Toolkit.getDefaultToolkit()然后getImage或者getAudioClip。
其他文件:
(1)获取Class
(2)Class.getResourceAsStream(filename) -> InputStream
(3)用Scanner等读取

9、关于资源文件的路径:
(1)/相对于java源代码根目录或者jar包根
(2)非/开头:相对于当前Class文件。

10、一个读取当前目录下文本资源文件的:

11、Java的包密封(Seal),我觉得叫包封印更好……就是保证不会再有其他的类加入到其中。方法是在mainfest文件最后一行加入:Sealed:true

Java Applet的部分跳过,这个JNLP……已经过气很久了吧。

12、属性配置文件:java.util.Properties。实际上,这是Windows的ini的简化版本,没有section的概念,代码如下:

生成的配置文件如下:

settings2.getProperty(key, default_value) ,提供了当key不存在时,返回的默认值。

13、属性配置文件命名一般习惯用:.xxx.properties,并放置在用户家目录下(对于类Unix系统)

14、从JDK 1.4开始,提供了一个平台无关的java.util.prefs.Preferences类,用于简化并提供功能较强的配置操作。

15、Preferences提供的实际上是一个“知识库”,树状结构,类似windows的注册表。

16、系统中有多颗树,每个进程自己一颗:

另外还有系统树,所有进程共用:

访问结点:

这个路径path可以偷懒,如果注册树和类的包名路径相同的话:

提供了直接转化到类型的方法:

get(key, defStr)
getInt(key, defInt)
getFloat(key, defFloat)
getBoolean(key, defBool)
…………

不像Properties,这里必须指定默认值。

17、为了方便迁移配置,可以将整颗树导出成xml:

18、一个Preferences的例子:

本章结束。

Leave a Reply

Your email address will not be published.