黑马程序员——java的简介

来源:互联网 发布:余华兄弟读后感知乎 编辑:程序博客网 时间:2024/06/08 02:23
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

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优势

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。 
Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。 

碎片回收

Java类的实例所需的存储空间是在堆上分配的。解释器具体承担为类实例分配空间的工作。解释器在为一个实例分配完存储空间后,便开始记录对该实例所占用的内存区域的使用。一旦对象使用完毕,便将其回收到堆中。在Java语言中,除了new语句外没有其他方法为一对象申请和释放内存。对内存进行释放和回收的工作是由Java运行系统承担的。这允许Java运行系统的设计者自己决定碎片回收的方法。

6.JDK环境工具简介 

JDK环境工具包括Java编译器,Java虚拟机,Applet程序观察器,Java文档生成器,Java调试器等。
1. 编译器——javac
javac的作用是将源程序(.java文件)编译成字节码(.class文件)。Java源程序的后缀名必须是java。javac一次可以编译一个或多个源程序,对于源程序中定义的每个类,都会生成一个单独的类文件。例如,如果在A.java中定义了A、B、C三个类,则经过javac编译后要生成A.class,B.class,C.class三个类文件。
javac的调用格式为:
        javac [选项]  源文件名表
其中源文件名表是多个带.java后缀的源文件名
2. Java的语言解释器——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程序分两种:
Java 独立应用程序:是一个完整的应用程序,可以独立地运行 
运行在Java虚拟机(JVM)上 
必须有main函数
Java Applet程序:不是一个完整的应用程序,而是框架程序中的一个模块,所以只能在WWW浏览器环境下运行
必须由某个支持java的浏览器来运行

从编辑程序到执行程序的完整过程 
利用编辑器编写Java源程序
源文件名:主类名.java
利用编译器将源程序编译成字节码
字节码文件名:源文件名.class
利用虚拟机(解释器)运行
运行过程:解释执行


8.第一个Java Application程序的例子

<strong>/**一个简单的Application程序;*/public class HelloWorld {    public static void main(String args[]) {        String s="HelloWorld!";                //定义字符串sSystem.out.println(s);}}</strong><span style="color:#ff0000;"></span>
(1)Java 语言标识符的字母区分大小写;
(2)一个程序可以由一个或多个类组成,其中必须有也只能有一个主类。
(3)源文件名必须与程序的主类名一致,并且以 .java 为其后缀。


用保留字class来声明一个新的类,其类名为HelloWorld,它是一个公共类(public)。 一个Java程序中可以定义多个类,但只有一个类可以定义为public类;
在该类中定义了一个main( )方法,其修饰符有:
    public 表示访问权限,指明所有的类都可以使用这一方法;
    static 指明该方法是一个类方法,它可以通过类名直接调用;
    void 则指明main( )方法不返回任何值。
 main( )是执行程序的入口;对于一个可执行的应用程序来说,main( )方法是必需的,而且必须按照如上的格式来定义。
main( )方法括号( )中的String args[]是传递给main( )方法的参数,参数可以没有或多个。

应用程序的编译执行过程

编译一个源程序的命令为:
          C:\>javac  HelloWorld.java
        编译成功的结果将生成一个或多个字节码文件,每个字节码文件对应源程序中定义的一个类,该文件的名字是它所对应的类的名字,并以.class 为统一的后缀名。
Java的源程序经过编译后,每个类都生成一个类文件

执行一个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文件中
<HTML><HEAD><TITLE>AnApplet</TITLE></HEAD><BODY>   <APPLET     Code=“HelloApp.class“                         Width=200    Height=40>  </APPLET></BODY></HTML>

浏览效果


0 0
原创粉丝点击