《JAVA语言程序设计》第1章.ppt
1,JAVA语言程序设计,课程提纲,语言语法基础-第2章语言面向对象的特征-第3章异常和异常处理-第6章线程-第7章输入和输出-第9章,2,3,什么是JAVA?,JAVA Technology编程语言(Programming Language)运行平台(Platform),4,JAVA编程语言的特点简单(Simple)面向对象(Object oriented)解释性(Interpreted)平台独立和可移植(Architecture neutral&Portable)鲁棒(健壮)和安全(Robust&Secure)多线程(Multithreaded)分布式(网络)(Distributed)高性能(High performance)动态(Dynamic),5,简单(Simple)快速学习,Java不存在指针面向对象(Object oriented)注重于数据和操作数据的方法,而不是流程类(class)是数据和操作数据的方法的集合层次化结构的类、对象、消息、继承等解释性(Interpreted)Java编译器生成字节码,Java解释器执行字节码链接过程简单,仅仅将新的类装载(load)入运行环境(Java解释器),6,平台独立(Architecture neutral)和可移植(Portable)Java编译器产生的字节码(bytecode)可运行在异种网络环境中(不同的硬件系统和不同的操作系统)Java程序在不同的平台中行为一致,不存在数据类型的不一致等现象,7,平台独立(Architecture neutral)和可移植(Portable),8,鲁棒/健壮(Robust)和安全(Secure)可靠的语言:compile-time checking和run-time checking内存管理简单,“new”构造对象,对象释放(automatic garbage collection)网络环境的应用不会被产生入侵行为,Java运行环境为Java程序构造一个个砂盒(Sandbox),9,多线程(Multithreaded)线程类等原语支持:synchronized、wait()、notify()分布式(Distributed)支持网络应用,.*URL类:获取WEB网页Socket类、ServerSocket类:实现客户/服务器(Client/Server)应用DatagramSocket类、DatagramPacket类:实现组播(Multicast)应用例:视频会议,10,高性能(High performance)解释性的语言,没有C语言快“Just-In-Time”JIT编译器,在运行时将Java字节码转变为机器码Java HotSpot Compilers动态(Dynamic)Java语言在执行的链接(link)阶段是动态的类(class)仅在需要时被链接被链接的代码模块可以有不同的来源,从本地或从网络,11,平台(Platform)程序运行的硬件和软件环境操作系统平台WindowsUNIX:Solaris、FreeBSD、LinuxMacOS操作系统与硬件的结合JAVA运行平台(Platform)JAVA虚拟机(Java Virtual Machine,Java VM)Java解释器Java开发工具或可运行applet的Web浏览器 JAVA应用编程接口(Java Application Programming Interface,Java API),12,J2SE Platform(Java 2 Standard Edition)Java Runtime Environment(JRE)Java虚拟机、库函数、运行Java应用程序和Applet所必须文件Java 2 SDK(Development Kit)JRE的超集,包含编译器和调试器等用于程序开发的文件JAVA虚拟机、JAVA应用编程接口和系统平台的关系,13,JAVA可以做什么?基本:Objects,strings,threads,numbers,input和 output,data structures,system properties,date和time等 网络应用:实现基于URL/TCP/UDP的网络应用国际化应用:实现程序的本地化,并以适当的语言显示安全应用:电子签名、公钥和私钥管理、访问控制和用户证书等软件构件对象串行化:实现远程方法执行(Remote Method Invocation,RMI)Java数据库连接(Java Database Connectivity,JDBC):提供统一的方式访问关系型数据库WEB应用:JSP(Java Server Page)和Servlet,14,为什么选择JAVA?快速上手(Get started quickly)写较少的代码(Write less code)写更好的代码(Write better code):garbage collection(防止内存泄漏),面向对象、JavaBeans构件机制、其他API复用代码,减少bugs开发程序更快(Develop programs more quickly)避免平台依赖性(Avoid platform dependencies with 100%Pure Java)编写一次,随处运行(Write once,run anywhere)machine-independent bytecodes发布软件更容易(Distribute software more easily):指对软件的更新,利用动态加载功能,一处改动,自动更新,不用重新编译整个程序,15,JAVA程序的种类,Java小应用程序(Java Applet)在Web浏览器(内嵌Java虚拟机)中运行特定的HTML文件HTML文件包含有特定标记 Java应用程序(Java Application)独立的Java程序,一般在DOS窗口中运行程序入口方法:public static void main(String args)Java Script嵌入在HTML文件中的脚本语言特定标记 Netscape引入javascript,16,简单的JAVA应用程序,Java源程序文件扩展名为“.java”Java字节码程序文件扩展名为“.class”/*HelloWorld1 class实现一个应用*将“Hello World!”显示到标准输出*/import java.lang.System;public class HelloWorld1 public static void main(String args)/Display Hello World!System.out.println(Hello World!);,17,定义类文件关键字class表示要定义一个类(模板),包含数据变量和方法关键字import表示引入程序外部定义的类/*HelloWorld1 class实现一个应用*将“Hello World!”显示到标准输出*/import java.lang.System;public class HelloWorld1 public static void main(String args)/Display Hello World!System.out.println(Hello World!);,18,类名称与Java源程序名一致 class MyClass.MyClass.java区分大小写,19,注解方式(Comments)/*/程序内的任意位置/对本行注解/*HelloWorld1 class实现一个应用*将“Hello World!”显示到标注输出*/import java.lang.System;public class HelloWorld1 public static void main(String args)/Display Hello World!System.out.println(Hello World!);,20,主方法(main Method)每个Java应用程序必须有且只能有的一个方法,程序执行的入口格式固定/*HelloWorld1 class实现一个应用*将“Hello World!”显示到标注输出*/import java.lang.System;public class HelloWorld1 public static void main(String args)/Display Hello World!System.out.println(Hello World!);,21,类和变量的引用类(java.lang.System),System类的一个变量out变量out是PrintStream类的一个实例,PrintStream类实现标准输出流引用实例out的方法println()变量和方法的引用通过“.”实现public class HelloWorld1 public static void main(String args)(Hello World!);所有的Java类默认都引入java.lang.*,22,书写规范花括号对“”类,方法语句分号“;”结尾对齐和缩进区分大小写/*HelloWorld1 class实现一个应用*将“Hello World!”显示到标准输出*/public class HelloWorld1 public static void main(String args)/Display Hello World!System.out.println(Hello World!);,23,JAVA运行体系源代码 Source code(.java file)javac:Lexical Analysis&Parsing+Type-checking Byte code(.class file)JAVA编译器对源代码进行词法分析和类型校验,生成字节码文件java(JVM):Verification(essentially repeating static checks)+(Interpretation OR Compilation+Loading+Executing)JAVA解释器执行字节码文件中的类,JAVA解释器在加载和执行类时验证类的完整性、正确操作和安全性,并与所在的操作系统、窗口环境和网络设备进行交互以产生所期望的程序行为,24,Java应用程序的编译和运行编写源文件HelloWorld1.java(内容如前)保存到D盘根目录编译:D:javac HelloWorld1.java生成HelloWorld1.class文件运行:D:java HelloWorld1Hello World!,