Java概述
- Java历史
- 1991年,SUNMicroSystem公司的JameGosling、BillJoe等人为在电视、控制烤箱等家用消费类电子产品上进行交互式操作而开发了一个名为Oak的软件。
- Oak—>Java:互联网给Java带来新的生机
- 1995年Sun向公众推出Java并引起业界的轰动
- 2009年Oracle公司宣布正式以74亿美元的价格收购Sun公司,Java商标从此正式归Oracle所有;
- Java不仅仅是一门编程语言,同时也是一个技术平台;
- Java是当今最流行的软件开发语言之一,企业版本使Java具有更广泛的用途,适用于各种应用开发,尤其是网络应用,网络服务,嵌入式系统等。
- JAVA 1.2版本是里程碑版本,划分了三个技术方向:JAVASE、JAVAEE、JAVAME
JAVA SE:标准版,适合做桌面应用。是JAVAEE的基础。
JAVA EE:企业版,适合做企业级开发。
JAVA ME:微型版,适合嵌入式开发。 - Java 1.5版本,在语法易用性上有了很多改进。
- Java程序的运行
Java程序的运行一般经过五个步骤:编写源代码,编译源代码,装载,校验,运行。
- Java虚拟机
Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
不同的操作系统有不同的虚拟机 - Java语言特点
1)平台无关性:
即你可以在Windows, Linux, Solaris 或其他操作系统上使用完全一样的代码。也就是一次编写,随处运行。这对于在各种不同平台上运行从Internet上下载的程序来说,非常必要,而其他语言却难以做到这一点 。
2)面向对象
Java是一门面向对象的语言;面向对象(Object Oriented)简称OO;
面向对象与面向过程是两种有代表性的编程思想;
面向对象思想有三大特征:封装、继承、多态
3)健壮性
健壮性又称鲁棒性(robustness);
Java的强类型机制保证任何数据必须有明确的数据类型;
Java提供异常处理机制,能够统一处理异常事件;
Java不再使用指针,实现垃圾自动回收,程序员不需要手动回收内存;
4)分布式
提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket等;
Java的RMI(远程方法调用)机制是开发分布式应用的重要手段;
5)多线程
Java语言支持多线程编程;
提供多线程机制允许程序中有多个任务并发执行;
提供的同步机制允许共享数据;
6)动态性
允许程序动态地装人运行过程中所需要的类;也可以通过网络来载入所需要的类;
Java中能进行运行时的类型检查 - JVM(Java Virtual Machine)称为Java虚拟机,在Java平台中有着举足轻重的地位;
- JVM可以理解为Java编译器和操作系统间的虚拟处理器;
编译器编译出的字节码只要JVM认识即可;
JVM再将字节码解释成操作系统认识的机器码; - 只要需要运行Java程序的设备,都需要安装JVM;
- JDK和JRE和JVM
- JDK是Java开发工具包(Java Development Kit)的简称,是一个软件;
如果要用Java语言编写程序,就必须在计算机上安装JDK; - JRE是Java运行环境(Java Runtime Environment)的简称
如果要在机器上运行Java程序,就必须要有JRE;
- JDK是开发工具包,提供了一系列的工具,都存在bin目录下,是一系列的.exe文件,可以直接在DOS窗口调用使用;
- javac:编译器,将源程序转成字节码;
- java:运行编译后的java程序(.class后缀的);
- jar:打包工具,将相关的类文件打包成一个文件;
- javadoc:文档生成器,从源码注释中提取文档;
- jdb:debugger,查错工具;
- appletviewer:小程序浏览器,执行HTML文件上的Java小程序的Java浏览器;
- javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件;
- javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义;
- jconsole: Java进行系统调试和监控的工具;
- 编写第一个java程序
1)使用文本文档编写java程序
public class Test{public static void main(String[] args){System.out.println("hello world");}
}
2)将文件另存为Test.java
3)编译 javac Test.java
结果,会产生一个Test.class的字节码文件
4)运行java Test
13. 主方法
public static void main(String[] args){}整个结构中只有参数名字可以发生变化
14.
用public修饰的类所在源文件命名就有要求:.java文件的名字必须与源文件中的class名字完全一致,大小写也需要一致;
15.
在一个.java文件中可以有多个Java类;
最多只能有一个public类;
也可以没有public类;
实际编程中,尽量不要在一个文件中存在多个类,可读性比较差;
16.
以Test.java为例,编译到执行过程如下: