您好,欢迎访问三七文档
本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|《Java讲义》教师:王明军武汉大学资源与环境科学学院地理信息科学系本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|、Java历史及发展Java是一种解释型的、面向对象的编程语言。历史:1991年,SUNMicroSystem公司的JameGosling、BillJoe等人为在电视、控制烤箱等家用消费类电子产品上进行交互式操作而开发了一个名为Oak的软件。发展:面向网络应用,类库不断丰富,性能不断提高,应用领域不断拓展。(1994年以来)应用:适于开发各种应用,尤其是基于网络的应用、嵌入式应用等。2、Java语言特点Java=“C++”-“复杂性和奇异性”+“安全性和可移植性”(1)面向对象Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏;而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。(2)操作平台无关性严格的语言定义:没有“依据机器的不同而不同”或“由编译器决定”等字眼,最后的目标码都是一致的。Java解释器生成与体系结构无关的字节码指令,只要安装了Java运行时系统,Java程序就可在任意的处理器上运行。这些字节码指令对应于Java虚拟机中的表示,Java解释器得到字节码后,对它进行转换,使之能够在不同的平台运行。源程序Java编译器SPARCpentiumPowerpc中间码PowerpcpentiumSPARC二进制源程序SPARCPowerpcpentiumPowerpcpentiumSPARC编译器二进制Java解释器编译型和解释型语言的工作模式类、类库装载(库)链接本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|不同的操作系统有不同的虚拟机。它类似一个小巧而高效的CPU。Bytecode代码是与平台无关的是虚拟机的机器指令。Java字节代码运行的两种方式:interpreter(解释方式)Just-in-time(即时编译):有代码生成器将字节代码转换成本机的机器代码,然后可以以较高速度执行.(3)安全问题Java是在网络环境下使用的语言,一个安全的网络至少要防止以下几种破坏的可能性:毁灭系统资源消耗系统资源挖掘系统或个人机密编译,没有绝对地址调入包含、继承所用到的所有类,内存分配确定,变成真正可执行的机器码Java源程序(.java文件)Java编译器JavaBytecode(.class文件)系统执行平台Bytecode解释器Bytecode载入器字节码校验器不存在伪造的指针不违反访问权限不非法访问对象不导致操作栈溢出Java的编译与执行JavainterpreterJust-in-timecompilerRuntimeSystemOperatingSystemHardware本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|(Bytecode)loader完成。校验代码由Bytecodeverifier完成。执行代码由runtimeinterpreter完成。(4)多线程Java提供现成的类Thread,只要继承这个类就可以编写多线程的程序。多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。(5)可移植性(跨越多个平台)(6)分布性(克服空间上的障碍)(7)高性能(相对于其他解释型语言)(8)健壮性((9)Java与C及C++的区别Java源程序(.java文件)Java编译器JavaBytecode(.class文件)Bytecode载入器Bytecode解释器系统执行平台语言定义publicprotectedprivatefinal取消指针自动回收垃圾Bytecode检查限定对象的存取权限系统堆栈溢出参数类型一致程序执行系统的安全措施本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|不再有全局变量不再有#include和#define等预处理功能不再有structure、union及typedef等不再有函数、不再有指针、不再有多重继承不再有goto语句不再有操作符重载(OperatiorOverloading)取消自动类型转换,要求强制转换自动进行内存管理3.Java开发工具包括:Javac:Java编译器,用来将java程序编译成Bytecode。Java:Java解释器,执行已经转换成Bytecode的java应用程序。Jdb:Java调试器,用来调试java程序。Javap:反编译,将类文件还原回方法和变量。javadoc:文档生成器,创建HTML文件。Appletviwer:Applet解释器,用来解释已经转换成Bytecode的java小应用程序。1.Java程序结构:package语句:零个或多个,必须放在文件开始import语句:零个或多个,必须放在所有类定义之前publicClassDefinition:零个或一个ClassDefinition:零个或多个InterfaceDefinition:零个或多个类个数:至少一个类,最多只能有一个public类源文件命名:若有public类,源文件必须按该类命名标识符:区分大小写2.Java应用程序(JavaApplication)类库支持:引用其他类。类定义:定义程序所需的类及接口,包括其内部的变量、方法等。main()方法:应用程序的入口,与标准C中main()函数的地位是一样的。一个应用程序有且只有一个main()方法,main()方法必须包含在一个类中,该类即为应用程序的外部标志。程序注释:与C++类似,/*…*///…3.Java小程序(JavaApplet)类库支持:继承Applet类,引用其他类。类定义:定义程序所需的类及接口,包括其内部的变量、方法等。init()方法:初始化,自动调用,只执行一次。start()方法:初始化后,重入等都将自动调用。Applet的主体,在其中可以执行一些任务或启动相关的线程来执行任务,如paint()方法等。stop()方法:离开Applet所在页面时调用,以停止消耗系统资源。本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|{publicstaticvoidmain(Stringargs[]){System.out.println(“HelloWorld!”);}}编辑存盘:文件名和公共类名(用public声明)要一致HelloWorldApp.java编译程序:javacHelloWorldApp.java运行程序:javaHelloWorldApp运行结果:HelloWorld!publicclassHelloWorldApp{publicstaticvoidmain(Stringargs[]){System.out.println(“HelloWorld!”);}}声明一个类:publicclassHelloWorldApp{},类名第一个字母大写。一个类中可有很多方法,main方法是运行程序的第一个方法,方法名的第一个字母小写。System.out.println是向屏幕输出,相当于C中的printf()。classCommArg{publicstaticvoidmain(Stringargs[]){//Displaycommandargumentsinti;if(args.length0)//havesomecommandarguments{for(i=0;iargs.length;i++){System.out.println(arg[+i+]=+args[i]);}}else//nocommandargument{System.out.println(Noarguments!);}}}命令行参数:main(Stringargs[]),与标准C中main(intargc,char*argv[])相似。字符串的拼接:arg[+i+]=+args[i]。本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|编译程序:javacHelloWorldApp.java运行程序(命令行参数获取):javaCommArgfirstsecondthird运行结果:arg[0]=firstarg[1]=secondarg[2]=thirdimportjava.applet.*;importjava.awt.*;publicclassHelloAppletextendsApplet{publicStrings;publicvoidinit(){s=newString(“HelloWorld!”);}publicvoidpaint(Graphicsg){g.drawString(s,25,25);}}编辑存盘:文件名和主类名一致编译代码:javacHelloApplet.java编写HTML文件:HelloApplet.htmlHTMLHEADTITLEHelloWorld/TITLE/HEADappletcode=HelloApplet.classwidth=300height=300/applet/HTMLJava小应用程序不能直接执行和使用,必须要在浏览器中执行。运行applet程序:1.appletviewerMyTest.html2.在浏览器中运行运行结果:HelloWorld!理解程序:import语句相当于C语言中的include。每一个applet都是java.applet.Applet的子类,用extends继承。applet中没有main()方法。当applet被浏览器运行时,init()、start()方法等自动执行,再调用paint()方法。在applet中与屏幕输出有关的操作通过Graphi
本文标题:Java讲义+
链接地址:https://www.777doc.com/doc-4376475 .html