java包结构,打包,编译,运行彻底分析
说来痛苦,关于java包结构,打包,编译,运行的知识,我是学了忘,忘了学。虽然绝大部分开发基于对IDE的使用,并且很爽,但每次回归命令行模式时,由于缺乏对java包结构、打包、编译、运行相关的知识总结及熟练运用,可谓寸步难行
网上虽然散布很多关于这方面的论述,但总感觉不符合我的切身实际
看来,自己动手归纳总结,才是根本解决之道
出于学习归纳备忘目的,本总结按情景归类,具备手册可查阅的伸缩性特性
情景:
注意:以下用到的FileNamePath BuildPath PackagePath均应被对应到具体的文件路径、构建路径及包结构路径
这里需说明的是,构建路径是指在哪个路径基础上构建包结构
1.文件路径为FileNamePath,构建路径为BuildPath,包结构路径为PackagePath的filename.java文件编译及运行
filename.java文件存放路径为FileNamePath,在任何目录下对filename.java文件进行编译使用javac语句
javac -d BuildPath FileNamePath\filename.java (注:要在执行javac前构建BuildPath实体,因为BuildPath是构建
包结构路径PackagePath的基础,不是包结构的部分,BuildPath不会在执行javac时被构建)
这样便将FileNamePath下的filename.java编译得到的filenema.class文件放置到构建在BuildPath基础上的包
结构路径PackagePath下,这样filename.class文件就能被正确构建了
相对于编译,运行略现简单,只要遵循以下方式,可在任何目录下执行filenema.class文件
运行前先将filename.class文件包结构的构建路径BuildPath加入到classpath,使用set classpath=%CLASSPATH%;BuildPath
然后,在构建在BuildPath基础上的包结构路径PackagePath下得到filename.class文件,执行使用java PackagePath\filename
虚拟机会在classpath下寻找filename.class并执行,若不设置类路径,执行使用 java -cp BuildPath PackagePath\filename
(注意:这里不能用 java -cp BuildPath\PackagePath filename 因为包路径是文件名的一部分)
第二种方法通用于任何目录下执行 filename.class
可见,编译时要指定完整的filename.java文件路径,运行时要指定完整的filename.clas
相关文档:
1. 空白(White Space)
7.1 空行(Blank Lines)
空行将逻辑相关的代码段分隔开,以提高可读性。下列情况应该总是使用两个空行:
·一个源文件的两个片段(section)之间
·类声明和接口声明之间
下列情况应该总是使用一个空行:
·两个方法之间
·方 ......
运行时多态性是面向对象程序设计代码重用的一个最强大机制,动态性的概念也可以被说成“一个接口,多个方法”。Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制,下面就继承和接口实现两方面谈谈java运行时多态性的实现。
一、通过 ......
1、jsp和servlet的区别、共同点、各自应用的范围??
JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。J ......
Java线程是Java语言中一个非常重要的部分,Java5之前,多线程的语言支持还是比较弱的,内容也较少,写一个复杂的多线程程序是相当有挑战性的。
在Java5以后,Java对多线程做了很多扩展,扩展部分称之为并发包。这部分内容大大增强了Java多线程编程的能力,通过使用Java5线程新特征的API,可以很容易的做出复杂的 ......
1. 抽象
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
2. 继承
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确 ......