Java小知识(十四)

本文深入探讨了JDK1.9引入的模块化设计,如何通过模块化加速Java虚拟机启动,以及public class与class定义的区别。此外,还介绍了jar文件的创建与使用,以及Java支持类库中的关键包。

JDK1.9之后出现的模块化操作:
①在JDK1.9以前所有的历史版本之中实际上提供的是一个类所有的*.jar文件(rt.jar,tools.jar),在传统的开发之中只要启动了Java虚拟机,那么就需要加载这几十兆的类文件。

②在JDK1.9之后提供了一个模块化的设计,将本来很大的要加载的一个*.jar文件变成了若干个模块文件,这样在启动的时候可以根据程序加载指定的模块(模块中有包),就可以实现启动速度变快的效果。

 

关于public class和class定义类的区别:

①public class:文件名称和类名称保持一致,在一个*.java文件中只能存在一个public class定义,如果一个类要想被外部的包所访问必须定义为public。

②class:文件名称可以与类名称不一致,在一个*.java中可以同时存在多个class定义,并且编译完成之后会形成多个*.class文件,使用class定义的类只能够在一个包中访问,不同包无法访问。

 

jar(Java Archive,Java归档文件)是一个Java给出的压缩格式文件,即可以将*.class文件以*.jar压缩包的方式给用户,这样方便程序的维护。如果要使用jar的话,可以直接利用JDK给出的jar命令完成,如果要确定使用参数则可以输入命令:jar--help,查看相关参数。Jar最常用的三个参数:

-c:创建一个新的文件

-v:生成标准的压缩信息

-f:由用户自己指定一个*.jar的文件名称

①在引用*.jar文件的过程中,CLASSPATH环境属性是一个重要选项,如果没有正确的配置,则在程序使用时会出现Exception inthread "main" java.lang.NoClassDefFoundError:cn/mldn/util/Message异常信息。

②源代码需要首先编译为*.class文件后才可以打包为*.jar文件,可以按照以下步骤进行:

-->对程序打包编译:javac -d.Message.java

-->此时会形成cn的包,包里有相应的子包与*.class文件,将其打包为mldn.jar:jar -cvf mldn.jar cn。

-->每一个*.jar文件都是一个独立的程序路径,如果要想在Java程序中使用此路径,则必须通过CLASSPATH进行配置。

 

Java的支持类库:

①Java自身提供的(处理JDK提供的类库之外还会有一些标准)。

②由第三方厂商提供的Java支持类库,可以完成各种你所需要的功能,并且支持的厂商很多。

Java SE提供的一些常见的系统包:

java,lang:基本包,像String,Number,Object这样的类就都保存在此包中。在JDK1.0的时候如果想编写程序,则必须手动导入此包,但是之后的JDK解决了此问题,所以此包现在为自动导入。

java.lang.reflext:反射机制的包,是java.lang的子包。

java.util:工具包,一些常用的类库、日期操作等都在此包中。

java.text:提供了一些文本的处理类库。

java.sql:数据库操作包,提供了各种数据库操作的类和接口。

java.net:完成网络编程。

java.io:输入、输出处理。

java.awt:包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。

javax.swing:此包用于建立图形用户界面,此包中的组件相对于java.awt包而言是轻量级组件。
java.applet:小应用程序开发包。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值