1.Java历史
1991年,美国Sun公司成立了Green的项目组,研发消费类电子产品的软件,由于c++语言比较复杂,安全性差,于是开发一种新的语言,称为Oak,它保留了c++大部分语法规定,但是删去了头文件、预处理文件、指针运算、操作符重载、多重继承等功能。
1995年1月,Oak被更名为Java。这个名字的产生,既不是根据语言本身的特色来命名,也不是由几个英文单词的首字母拼成,更不是由人名或典故而来,而是来自于印度尼西亚有一个盛产咖啡的岛名,中文名叫爪哇,意为世人端上一杯热咖啡。许多程序设计师从所钟爱的热腾腾的香浓咖啡中得到灵感,因而热腾腾的香浓咖啡也就成为Java语言的标志。1995年5月23日Java正式公布,以后人们对Java的兴趣和重视证明了这项技术将是未来网络计算的主流技术。
1995年一些著名的公司,如:IBM,Microsoft,Netscape,Novell,Apple,DEC,SGI等都纷纷购买语言使用权。 1996年Java应用软件纷纷问世,赢得软件工业界的广泛支持。
1997年Java技术用于网络计算,从业界的事实标准走向法律标准。
有人预言:Java将是网络上的“世界语”。
2.Java的十大产品
WebLogic是美国bea公司出品的一个application server确切的说是一个基于Javaee架构的中间件,BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。
WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。
struts是开源软件。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用.
3.Java语言的特色
在Sun公司的白皮书中,对Java的定义是“Java:A Simple,object-oriented,distributed,robust,secure,architecture-neutral,portable,high-performance,multi-threaded,and dynamic language.”
即Java是一种简单的、面向对象的、分布式的、强壮的、安全的、体系结构中立的、可移植的、高性能的、多线程的和动态的语言。
4.Java虚拟机
不同的操作系统有不同的虚
拟机.
它类似一个小巧而高效的CPU.
byte-code代码是与平台无关的
是虚拟机的机器指令.
Java字节代码运行的两种方式:
interpreter(解释方式)
Just-in-time(即时编译): 代码生成器将字节代码转换成本机的机器代码, 就可以以较高速度执行.
5.Java优势
Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。
碎片回收
6.JDK环境工具简介
1. 编译器——javac
javac的作用是将源程序(.java文件)编译成字节码(.class文件)。Java源程序的后缀名必须是java。javac一次可以编译一个或多个源程序,对于源程序中定义的每个类,都会生成一个单独的类文件。例如,如果在A.java中定义了A、B、C三个类,则经过javac编译后要生成A.class,B.class,C.class三个类文件。
javac的调用格式为:
javac [选项] 源文件名表
其中源文件名表是多个带.java后缀的源文件名
java 命令解释执行Java字节码。其格式为:
java [选项] 类名〈参数表〉
这里的类名代表由编译器生成的带.class后缀的类文件名,但在上述命令不需要带后缀。这个类必须是一个独立程序(不能是Applet),程序中必须带有一个按如下格式声明的main方法。
public static void main(String [ ] args ) {…}
并且包含main方法的类的类名必须与类文件名相同,即与现在命令行中的“类名”相同。
在执行java命令时,若类名后带有参数表,则参数表中的参数依次直接传递给该类中的main方法的args数组,这样在main方法中就可以使用这些数组元素。
3. Java Applet观察器——appletviewer
appletviewer命令使用户不通过Web浏览器也可以观察Applet运行情况。其格式为:
appletviewer [-debug] HTML文件
appletviewer下载并运行HTML文件中包含的Applet,如果HTML文档中不包含任何Applet,appletviewer则不采取任何行为。如果上述命令中使用了-debug选项,则appletviewer将jdb从内部启动,这样就可以调试HTML文件所引用的Applet。
7.一个简单的独立应用程序APPLET
运行在Java虚拟机(JVM)上
必须有main函数
Java Applet程序:不是一个完整的应用程序,而是框架程序中的一个模块,所以只能在WWW浏览器环境下运行
必须由某个支持java的浏览器来运行
源文件名:主类名.java
利用编译器将源程序编译成字节码
字节码文件名:源文件名.class
利用虚拟机(解释器)运行
运行过程:解释执行
8.第一个Java Application程序的例子
<strong>/**一个简单的Application程序;
*/
public class HelloWorld {
public static void main(String args[]) {
String s="HelloWorld!"; //定义字符串s
System.out.println(s);
}
}</strong><span style="color:#ff0000;">
</span>
(1)Java 语言标识符的字母区分大小写;
(2)一个程序可以由一个或多个类组成,其中必须有也只能有一个主类。
(3)源文件名必须与程序的主类名一致,并且以 .java 为其后缀。
在该类中定义了一个main( )方法,其修饰符有:
public 表示访问权限,指明所有的类都可以使用这一方法;
static 指明该方法是一个类方法,它可以通过类名直接调用;
void 则指明main( )方法不返回任何值。
main( )是执行程序的入口;对于一个可执行的应用程序来说,main( )方法是必需的,而且必须按照如上的格式来定义。
main( )方法括号( )中的String args[]是传递给main( )方法的参数,参数可以没有或多个。
应用程序的编译执行过程
C:\>javac HelloWorld.java
编译成功的结果将生成一个或多个字节码文件,每个字节码文件对应源程序中定义的一个类,该文件的名字是它所对应的类的名字,并以.class 为统一的后缀名。
Java的源程序经过编译后,每个类都生成一个类文件
C:\>java HelloWorld
该命令调用 Java 的解释器软件 java.exe 运行编译好的 Java 字节码程序。程序执行结果显示:HelloWorld!
9.一个简单的Applet程序
/*这是一个Applet程序;
*/
import java.awt.*;
import java.applet.*;
public class HelloApp extends Applet {
public void paint( Graphics g ) { g.drawString(“HelloWorld!”,20,20); }
}
程序中,首先用import语句输入java.awt和java.applet包中所有的类,使得该程序可能使用这些包中所定义的类,它类似于C中的#include语句。
import java.awt.*;
import java.applet.*;
public class HelloApp extends Applet {
public void paint( Graphics g ) { g.drawString(“HelloWorld!”,
20,20); }
}
接着声明一个公共类HelloApp,用extends指明它是Applet的子类。在类中,我们重写父类Applet的paint( )方法,其中参数g为Graphics类,它表明当前画图的上下文。
在paint()方法中,调用图形对象g的方法drawString(),在坐标(20,20)处输出字符串“Hello World!” 。
JavaApplet工作原理
<HTML>
<HEAD>
<TITLE>AnApplet</TITLE>
</HEAD>
<BODY>
<APPLET Code=“HelloApp.class“
Width=200 Height=40>
</APPLET>
</BODY>
</HTML>
浏览效果