Java讲义12李铁英.docx
- 文档编号:30392958
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:14
- 大小:546.60KB
Java讲义12李铁英.docx
《Java讲义12李铁英.docx》由会员分享,可在线阅读,更多相关《Java讲义12李铁英.docx(14页珍藏版)》请在冰豆网上搜索。
Java讲义12李铁英
Java是什么?
(记住)
Java是什么?
Java——是一种程序设计语言,主要用于网络上的各种应用程序。
什么是跨平台?
跨平台就是编译好的程序可以在各种操作系统上运行。
Java真正的内涵就是“海纳百川,有容乃大”:
海——就是Java资源平台,含有大量的资源;
百川——就是有广大的开发者使用Java技术;
容——就是Java技术的开放性,即开源、跨平台、跨网络。
Java技术的独特魅力就是——开放性!
Java语言特点(了解)
Java语言是SUN公司推出的面向对象程序设计语言,特别适合于Internet应用程序开放,Java语言最大的特点就是:
“一次编写,到处运行”!
Java语言的11特性(了解)
在1995年sun公司推出的Java白皮书中,是这样定义的,Java是:
⒈一种简单的语言(SimpleLanguage)——风格类似于C++,语法与C基本相同,提供了丰富的类库。
⒉面向对象的语言(ObjectOriented)——支持静态和动态风格的代码继承和重用,是完全面向对象的,不支持面向过程(检查)。
⒊分布式的(Distributed)——Java技术包括一个支持http和ftp等基于TCP/IP协议的子库。
因此,应用程序可以凭借URL打开访问网络上的对象,其访问发送与访问本机文件系统几乎完全相同。
⒋解释性的(Interpreted)——Java解释器(运行系统)能够直接运行目标代码指令。
⒌健壮的(Robust)——Java致力于检查程序在编译和运行时的错误;类型检查帮助查出许多早期出现的错误;Java自己管理和操作内存,这就减少了内存出现错误的可能性;Java还实现了真数组,避免了覆盖数据的可能性。
注:
所谓真数组就是,在程序设计语言中,数组元素在内存中是一个接着一个线性存放的,通过第一个元素就能访问随后的元素,这样的数组称之为“真数组”。
实现了真数组为Java语言特点之一。
⒍安全的(Secure)——Java语言没有指针和释放内存等C++功能被删除,故避免了非负内存操作;另一方面,当java用来创建浏览器时,Java语言功能和一些浏览器本身提供的功能结合起来,使它更安全。
⒎结构中立的(Architechtureneutral)——Java源程序被编译成一种与机器无关的的byte-code格式语言,被设计在Java虚拟机上运行(记住)。
⒏可移植性(Portable)——Java程序可以在配置了Java解释器和运行环境的任何计算机系统上运行,所以Java数据可以在计算机系统硬件平台上保持一致(记住)。
⒐高性能的(HighPerformance)——Java可以在运行时直接将目标代码翻译成机器指令,代码执行的速度与C/C++基本相同。
⒑多线程(Multi-Threaded)——Java提供了多线程机制,使得在一个程序中可以同时执行多个小任务。
多线程带来的好处是,有更好地交互性和实时控制性(记住)。
⒒动态的Dynamic——Java的使它特性是面向对象设计方法的拓展,它允许程序动态地装入运行过程中所需要的类(记住)。
Java语言的构成(理解和记住)
构成Java语言开放、编译、加载、解释和运行构成是:
JIT→JVM→JRE→JDK
Java构成图:
JDK主要功能
JDK(JavaDevelopToolKit)是Java开发工具包。
主要包括:
⒈Java编写的各种开发工具,如Javac.exe、java.exe等;
⒉含有两套JRE,一套位于\jre目录下,另一条位于C:
\ProgramFile\java目录下。
前者jre主要用于开放和调试Java程序使用,后者比前者jre缺少Server端的Java虚拟机,主要提供Java程序的运行环境,如果将前套的Server的Java虚拟机仿真到后套,则两套相同。
⒊Java用于开放和运行时需要的系统类库和开放类库等,即API。
JRE
JRE(JavaRunningEnvironment)功能是:
⒈是java运行基础;
⒉提供了java运行时的API;
注:
API(ApplicationProgramInterface):
应用程序接口,提供很了多类和接口以来帮助编程;里面包括关于java语言的各种语法,方法,类,接口,异常等。
⒊Java程序必须有JRE才能运行。
JVM
JVM(JavaVirtualMachine)功能是:
⒈Java程序运行虚拟机环境;
⒉在JRE/Bin中有两个目录,即server与client,这就是真正的jvm.dll所在。
注:
jvm.dll不能单独工作,当jvm.dll启动后,会使用显示方法(explicit),而需要的辅助动态库(.dll)都必须位于jvm.dll所在的目录的父目录之中。
因此,想使用那个JVM,只需要设置PATH,指向JRE所在目录下的jvm.dll。
JIT
JIT(JavaInTime)功能是:
⒈JIT是既时编译器,是JVM的一部分;
⒉是JVM的内核部分;
⒊是解释Java字节文件执行工具,JIT将字节文件解释为机器码文件。
Java虚拟机(理解)
JavaVM虚拟机是一个虚构出来的计算机,是实现在实际的计算机上仿真各种计算机功能来的虚拟计算机。
JVM有自己完善的架构,具体如下:
⒈JVM指令系统;
⒉JVM寄存器;
⒊JVM栈结构;
⒋JVM碎片回收。
⒌JVM存储器。
JVM就是为了支持Java跨平台而出现的。
JVM具体实现跨平台的方法是:
JVM屏蔽了与具体操作系统平台相关的信息,使用Java语言编译的程序,只需要在JVM上运行目标代码(字节代码),就可以实现跨平台运行不需要修改的Java程序。
JVM是Java语言的基础,是Java技术实现的根基。
下图说明了JVM在Java类文件(即字节文件)和操作系统中间的作用(JVM模拟图)。
JDK(理解)
Java源代码文件的编译,即形成类文件和在JVM里的运行,都是通过JDK开发工具来执行的,JDK提供了一系列开发运行命令。
⒈JDK是开源免费的,可以下载。
⒉安装JDK后首先进行环境变量设置,即:
path=X:
\Java\bin;X:
\Java\jre;
classpath=x:
\Java\lib\dt.jar;X:
\java\lib\tools.jar
测试方法:
设置path的目的就是,可以在任意地位址下执行JDK的相关命令,如编译javac、运行java等。
用“cmd”打开DOS窗口,送入“java-version”显示如下信息,则安装成功。
输入“java-help”出现下图安装成功:
JavaAPI文档
在Oracle官方网站提高了一系列帮助文档,包括核心与非核心API文档和开发手册等。
使用JDK开发Java应用程序时,必须要引用一下核心API类,因此必须要掌握使用API帮助。
API共分为3部分:
1左上角是类包列表;
2左下角对应所选类包的类列表;
3右侧是对应在类列表所选的函数列表。
JavaAPI文档相当于vc的MSDN,是Java程序员必备手册。
因此,必须掌握使用方法。
实例一
程序代码如下:
packagecom.lty.test1;
/**
*@authorlty
*
*/
publicclassHelloWorld
{
privateStringworld="World";
/**
*函数
*/
publicvoidsay()
{
System.out.println("Hello"+world+"!
");
}
/**
*执行入口函数
*@paramargs
*/
publicstaticvoidmain(String[]args)
{
//创建类实例
HelloWorldinst=newHelloWorld();
//调用函数
inst.say();
}}
1为了提高代码的可读性,在编程程序代码时必须添加必要的注释。
一般注释占编写代码量的20%以上。
2Package:
包元素是指该类包为com.lty.test1,该类存放在当前目录的test1报名中;
3当前目录是Java中运行程序的根目录,任何一个程序都应该有一个根目录。
相对该根目录可以存放多个包,包内还可以包含子包,即包的继承。
例如,com(当前目录根包).lty(com第二层子包).test1(com的第三层,lty第二层子包)。
4class:
类元素,这里定义了一个共用的(public)类(class)HelloWorld类,一个Java应用程序项目中,只能有一个共用的public类,文件名应该与该类名相同。
5variable:
变量privateStringworld=”World”定义了一个私有的(private)字符串(String)变量world。
6function:
函数,定义了一个共用的(public)、无返回值的(void)、函数名为say的函数。
该函数调用了系统类System的、输出类out的、输出函数println。
7main函数:
该函数的程序执行入口函数,一个程序只能有一个main函数,在Java在入口函数必须是“publicstaticvoid”。
8在main函数中定义了一个HelloWorld类的实例inst,用该实例调用该实例的函数say()类执行输出。
javac命令
我们说过,Java实现跨平台就是通过JVM来运行二进制代码文件,即Java的类文件.class。
一个类能够运行之前必须进行编译,编译完成的文件就是Java类文件.class。
将Java代码文件编译成类文件和命名都是由javac编译器自动完成的。
javac的语法结构
1javac命令结构如下:
javac[options][sourcefiles][@files]
其中的参数可以安任意次数排列。
Øoptions:
命令行选项。
Øsourcefiles:
一个或多个需要编译的文件(如HelloWorld.java)。
Ø@files:
一个或多个对源文件进行列表的文件。
2传递源文件名的两种方法
Øsourcefiles和@files参数分别对应了两种使用方法,用于将源文件名传递给javac。
Ø使用sourcefiles参数:
如果源文件数量少,在命令上列出文件名即可。
例如:
对于MyClass1.java、MyClass2.java,可以使用如下方法进行编译:
javacMyClass1.javaMyClass2.java
或使用通配符编译:
javacMyClass*.java
Ø使用@files:
如果源文件数量多,则将源文件名列表在一个文件中,源文件名称可以用空格或回车进行分隔。
然后在javac命令中使用该列表文件名,文件名前面冠以@字符。
例如可以使用一个命名为@list.txt,然后执行
javac@list.txt
完成编译。
list.txt文件列表内容是:
MyClass1.java
MyClass2.java
MyClass3.java
MyClass4.java
传送带包文件方法:
javacmypackagename(包名)\Class1(类名).java
3命令选项options
三个设置路径选项:
Ø-classpath类路径:
设置用户类路径,它将覆盖CLASSPATH环境变量中的的用户路径。
如果未指定CLASSPATH又未指定-classpath,则用户类路径有当前目录构成。
Ø-d目录:
设置类文件的目标目录。
如果某个类是一个包的组成部分,则javac将把该类文件放入包名子目录中,必要时创建目录。
例如,如果指定-dcdemo并且该类名是mypackage.MyClass1,则类文件称为:
D:
\demo\mypackage\MyClass.class
若未指定-d选项,则javac将把类文件放到与源文件相同的目录中。
-d选项指定的目录不会被自动添加到用户类路径中。
其它见javac–help
Java命令
java命令是运行类文件。
使用java命令运行某一个类的条件是,该类必须包含有一个main()函数,如HelloClass.java中的入口函数。
java命令一次可以执行一个类文件,找到该类文件的main()入口函数后,立即会开始执行代码。
java命令的语法结构:
1java[options]classname[argument(变元)]
2java[options]–jar_file[argument]
其参数意义如下:
options:
命令行选项;
classname:
需要调用的类名;
files.jar:
需要调用的Jar文件名,只与-jar一起使用;
argument:
传给main方法的参数。
执行一个类文件:
执行类文件时,只需要指定类文件的全名即可,全名中包含包名、包路径,使用点号“.”表示包路径。
如已编译完成的类,执行:
X:
\>javamypackage.HelloWorld
执行一个jar包:
执行jar包时,该包中的MENIFEST.MF文件中必须指定当前包中哪个类是主类,也就是执行入口类,使用属性为Main-Class。
例如,运行jar包如下:
X:
\>java–jarHelloWorld.jar
命令选项(options):
-classpath:
类路径,指定类的环境变量,同javac中的0classpath相同。
-cp:
类路径,指定一个用于查找类文件的列表,它由目录、jar归档文件和zip归档文件组成。
类路径项用分号“;”分隔。
指定-classpath或-cp将覆盖CLASSPATH环境变量的所有设置。
如果不使用-classpath和-cp,且没有设定CLASSPATH,则用户类路径由当前目录“.”构成。
-D属性=值:
设置系统属性。
-jar:
执行封装在Jar归档文件中的的程序。
给类传递参数
在Java命令中变量“argument”,该变量用于向目标类main()传递输入参数,多个参数使用空格分隔。
例如,可以执行如下的传递参数命令:
javamypackgae.HelloWorldAAABBB
则在入口函数中,就可以通过args变量来取得该参数:
publicstaticvoidmain(Stringargs[])
{
Stringstr1=args[0];
Stringstr2=args[1];
System.out.println(str1+str2);
}
在DOS窗体输入argument变量数组参数,即可在class文件执行。
如:
X:
\>javaarg1aaabbb
输出结构是:
aaabbb。
jar命令
jar命令是类文件打包,即生成jar文件。
JAR包可以将jar命令创建。
jar可以将多个文件合并为单个JAR归档文件。
JAR是一个多用途的归档及压缩工具,是基于ZIP和ZLIB压缩格式。
jar命令的使用:
1jar命令的语法格式:
jar命令的语法结构如下:
jar{ctxu}[vfm0m][jar-files][manifest-files][-C目录]文件名
Øctxu:
为属性,是jar命令的子命令,每次jar命令只能包含ctxu中的一个,其分别表示如下:
-c:
创建新的JAR文件包;
-t:
列出JAR文件包的内容列表;
-x:
展开JAR文件包的指定文件或所有文件;
-u:
更新已经存在的JAR文件包(添加文件到JAR文件包中)。
Ø[vfim0M]:
是jar命令选项的参数。
-v:
生成详细报告并打印标准输出;
-f:
指定JAR文件名,一般这个参数是必要的;
-m:
指定需要包的MANIFEST清单文件;
-0:
只存储,不压缩,虽然比压缩的归档文件体积大,但执行速度快。
-M:
不产生所有清单(MANIFEST)文件,此参数会忽略-m参数。
Ø参数:
[JARfile]:
是生成、查看、更新或解开JAR文件包,它是-f参数的附属参数;
[manifestfile]既是MANIFEST清单文件,它是-m的附属参数。
[-C目录]:
表示转到指定目录下去执行jar命令的操作。
它相当于使用cd命令转到该目录下再执行不带-C参数的jar命令,它只能在创建和更新JAR文件包时使用。
Ø文件名:
指定一个文件/目录列表,该文件/目录就是要添加到JAR文件包中的的文件/目录。
如果指定了目录,则使用jar命令打包时会自动将该目录中的所有文件和子目录打入包中。
例:
jarcfMyClass1.jarmypackage
-cf:
创建一个新的JAR并指定文件名。
该命令是将包mypackage包的MyClass1.jar文件打包,没有执行过程显示。
执行结果是在当前目录生成MyClass1.jar文件。
如果当前目录已经存在MyClass1文件,则被覆盖。
Eclipse
Eclipse的最大特点就是即插即用,既可以是更多的功能组建。
例如,安装一个Java反编译Jad插件。
1下载Jad反编译器;
2在Eclipse→Help→SoftwareUpdate;
3
Eclipse插件安装
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 讲义 12 李铁英
![提示](https://static.bdocx.com/images/bang_tan.gif)