java中package, import, jar的作用

1. package

1.1

package名称就像是现实中的的姓,而class名就像是现实中的名字 。package和package的附属关系用"."来连接,这就像是复姓。比如说 java.lang.String就是复姓 java.lang,名字為 String 的类别;java.io.InputStream 则是复姓 java.io,名字為 InputStream的类别。
package这种方式让极大降低了同名不同包的类之间的命名冲突。

2. import

2.1

import就是在java文件开头的地方,先说明会用到那些类别。
接着我们就能在代码中只用类名指定某个类,也就是只称呼名字,不称呼他的姓。
单类型导入(single-type-import)
(例:import java.util.ArrayList; )
按需类型导入(type-import-on-demand)
(例:import java.util.*;)
有如下属性:

java以这样两种方式导入包中的任何一个public的类和接口(只有public类和接口才能被导入)

上面说到导入声明仅导入声明目录下面的类而不导入子包,这也是为什么称它们为类型导入声明的原因。

导入的类或接口的简名(simple name)具有编译单元作用域。这表示该类型简名可以在导入语句所在的编译单元的任何地方使用.这并不意味着你可以使用该类型所有成员的简名,而只能使用类型自身的简名。
例如: java.lang包中的public类都是自动导入的,包括Math和System类.但是,你不能使用它们的成员的简名PI()和gc(),而必须使用Math.PI()和System.gc().你不需要键入的是java.lang.Math.PI()和java.lang.System.gc()。

程序员有时会导入当前包或java.lang包,这是不需要的,因为当前包的成员本身就在作用域内,而java.lang包是自动导入的。java编译器会忽略这些冗余导入声明(redundant import declarations)。即使像这样
import java.util.ArrayList;
import java.util.*;
多次导入,也可编译通过。编译器会将冗余导入声明忽略.

3. jar

3.1general

jar包是对写好的类进行打包。我们可以通过将jar包放到lib目录下来使用这些jar包中的类、属性和方法。

3.2profession

JAR文件是Java Archive File-java档案文件的简称,是与平台无关的文件格式,基于zip文件格式将许多文件合成一个压缩文件.jar,区别是比zip多了一个包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的。

3.3 function

JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。
涉及因特网应用时,JAR文件显得特别有用。在JAR文件之前,Web浏览器必须重复多次请求Web服务器,以便下载完构成一个“程序片”(Applet)的所有文件;但在将所有这些文件合并到一个JAR文件里以后,只需向远程服务器发出一次请求即可。除此以外,每个文件都是未经压缩的,由于采用了压缩技术,所以可在更短的时间里获得全部数据。

参考https://blog.csdn.net/qq_25665807/article/details/74747868

3.4项目中使用jar包中的类

1.jar包先导入到工程中,放在lib文件下,设置路径.
2.使用时,用import 对应的jar包

假设我们需要使用test.jar文件中包含的类org.demo.jar,
类的来源在文件中是Myjar.java


import org.demo.*;

public class Myjar {

    public static void main(String[] args) {

    ......

   }
}

1.首先,在您的代码中,您必须导入类。要做到这一点,你需要import org.example.Classname;
2.在编译源代码时,必须引用jar文件。请注意使用:和;编译时的区别
在windows下:javac -cp .;org.demo.jar myjar.java
在此之后,您将获得字节码文件 myjar.class现在你可以运行这个:
在windows下:java -cp .;org.demo.jar myjar

猜你喜欢

转载自blog.csdn.net/weixin_44313315/article/details/126888228
今日推荐