背景
过去学习 Java 就是在架子上抓鸭子。在学习了基本语法之后,我直接做了课程作业。很多概念性的问题还不清楚,这里就梳理一下,主要参考廖雪峰和网络资料。
Java运行模式和JVM
Java 介于编译语言 (C++) 和解释语言 () 之间。所有 Java 代码首先编译成 .class 文件,然后在 Java 虚拟机 (JVM) 中跨系统运行(开发一次,即可使用)。
JDK、JRE、JVM的联系与区别
JRE(Java):Java 运行时环境
JVM(Java):Java 虚拟机
几个可执行文件jar包相关概念的含义
本帖参考知乎网友:慕课的文章《关于jar包的一些事》
什么是jar包
我想在这里重复这个概念。 jar 包是一个 Java 文件。顾名思义,它的应用与Java密切相关。它是Java的一种文档格式,是一种独立于平台的文件格式,可以组合多个文件。一份文件。 jar包和zip包很相似——准确的说是zip包,所以叫文件包。 jar 和 zip 的唯一区别是 jar 文件的内容包含一个 META-INF/.MF 文件,该文件是在生成 jar 文件时自动创建的。作为jar中的“详情列表”,它包含了Jar包的版本、创建者和类搜索路径Class-Path,当然如果是可执行的Jar包,它会包含Main-Class属性,表示Main方法入口,尤其是比较重要的Class-Path和Main-Class,我们会在后面的内容中详细讲解。
另外值得注意的是,由于jar包主要是打包class文件,而java编译生成的class文件是平台无关的,也就是说jar包是跨平台的,所以不用得关心具体涉及的平台问题。
为什么要jar包
大致了解了jar包是什么之后,再来说说为什么需要jar包。主要从我们自己的许需求出发,不难发现,我们在开发程序的时候,程序里面的类很多。如果我们需要提供给别人,给对方发很多源文件是很不好的。因此,通常需要将这些类和相关资源文件打包成一个jar包,提供给其他人,并为用户提供清晰的文档。这样别人拿到我们提供的jar后就可以轻松调用了。怎么调用会在后面解释。
因此,建议大家在写代码搬砖的时候,注意把代码的通用部分分离出来,在主键中积累一些常用的util类,逐步模块化,最后打包成jar 包供您在其他地方使用。在jar的项目或模块中使用,同时对jar中的内容进行不断的打磨,使其更易于理解和通用。这样做的好处是不仅对你的代码重构能力和模块抽象能力有帮助,而且是一种解放你长时间重复工作量的方法,让你有更多的精力去做其他事情,即使当你足够抽象业界常见的jar包,jar包能给你带来意想不到的惊喜(当然,公司里该保密的东西也得保密)。这也是java发展如此之好的原因。无论是营利还是非营利,把自己的通用工具或者框架提取成jar包供别人调用,让整个java生态越来越强大——几乎很多业务场景都可以找到对应的jar包。
原文提到了关于jar包的其他几点。目前接触的不多,所以没仔细看。有兴趣的可以自己去看看
暂时关闭
本帖以概念为主,写到这里就暂时告一段落。以后如果有收获,我会考虑按分类补充或转贴。
暂无评论内容