Java简介
Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。
2009年,SUN公司被甲骨文公司收购。
Java的三个体系(或版本):
- JavaSE(Java Platform Standard Edition,java平台标准版)
又称桌面应用平台,定位在个人计算机上的应用。 - JavaEE(Java Platform,Enterprise Edition,java平台企业版)
又称企业级平台,是定位在服务器端的应用。 - JavaME(Java Platform Micro Edition,java平台微型版)
又称企业级平台,定位在消费类电子产品上的应用,例如移动设备、可视电话、数字机顶盒、汽车导航系统等等。
Java的用途
从理论上来说,Java可以开发我们在计算机或移动设备上用到的所有软件,主要分为两类:
- 开发桌面应用程序
比如:银行软件、商场结算软件 - 开发面向Internet的应用程序
比如:网上数码商城、阿里巴巴、易趣网 - 开发移动应用(特别是 Android 应用)
Java的优势
- Java 适用于不同的平台(Windows、Mac、Linux、Raspberry Pi 等)
- 是世界上最流行的编程语言之一
- 易学易用
- 开源和免费的
- 安全、快速、功能强大
- 有一个巨大的社区支持(数以千万计的开发人员)
关于Java的几个名词
- JDK:Java Development Toolkit,Java开发工具包
JDK提供了Java的开发环境(如编译器,用于将java文件编译为class文件)和运行环境(包括JVM和Runtime辅助包,用于解析class文件使其得到运行)。安装JDK之后,既可以开发Java程序,也可以运行Java程序。
JDK是整个Java的核心,包含Java运行环境(JRE),大量Java工具(tools.jar)和Java标准类库 (rt.jar) - JRE:Java Runtime Environment,Java运行环境
面向Java程序的使用者,而不是开发者。安装JRE之后,系统只能运行Java程序。
JRE是运行Java程序所必须的环境的集合,包含JVM标准实现及 Java核心类库。 - JVM:Java Virtual Mechinal,Java虚拟机
JVM是JRE的一部分,它是一个虚拟出来的可运行Java字节码的虚拟计算机系统,通俗来说相当于世界翻译官。它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信。
- GC:Garbage Collection,Java的垃圾回收处理机制
注:JDK包含JRE,JRE包含JVM
Java语言的特点
一、 跨平台。所谓平台,就是操作系统
二、 垃圾自动回收GC(Garbage Collection)
三、 面向对象
具体特点:(可跳)
- 简单性
Java语言的语法与C语言和C++语言很接近,因而容易学习和使用。与此同时,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。此外,Java语言提供了自动的废料收集,方便了内存管理。 - 面向对象
Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯面向对象程序设计语言。 - 分布性
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 - 编译和解释性
Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。 - 稳健性
Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。 - 安全性
Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。 - 可移植性
这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。 - 高性能
与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。 - 多线索性
在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字synchronized)。 - 动态性
Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
Java开发环境配置
-
根据系统下载安装相应JDK1.8或更高级版本
http://www.oracle.com/technetwork/java/javase/downloads/index.html
https://blog.csdn.net/xiegongmiao/article/details/81206975 -
安装:将JDK和JRE安装到同一个目录下,可以自定义,但安装目录中不要有汉字和空格
(例如C:\Program Files\Java\jdk1.8.0_91) -
配置环境变量:
(计算机—属性—高级系统设置—环境变量—系统变量)- path :安装后,javac.exe等程序只能在当前目录中运行,要在任意途径下都能执行,需要将其目录设置到path中
- 标准设置: % JAVA_HOME %\bin;
- 或者:Java安装目录\bin
- JAVA_HOME :Java安装目录,主要为了避免频繁修改path,导致系统异常
- 注意:不要配置classpath
(使用1.5以上版本的JDK,不用设置CLASSPATH环境变量,也可以正常编译和运行Java程序)
- path :安装后,javac.exe等程序只能在当前目录中运行,要在任意途径下都能执行,需要将其目录设置到path中
变量设置参数如下:
- 变量名:JAVA_HOME
- 变量值:C:\Program Files\Java\jdk1.8.0_91(根据实际路径)
- 变量名:CLASSPATH
- 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; (记得前面有个".")
- 变量名:Path
- 变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
测试JDK是否安装成功
- “开始”->“运行”,键入"cmd";
- 分别键入命令 java -version、java、javac 测试变量配置
程序开发的步骤
- 编写源程序
- 编译源程序
- 运行
用txt编写第一个程序
- 新建一个“文本文档”,并将文件及拓展名名改为:HelloWorld.java
文档内容:
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
- 开始—cmd—dos命令窗口
- 使用javac命令编译.java文件,生成.class文件
(javac HelloWorld.java) - 使用java命令运行.class文件,输出程序结果
(java HelloWorld)
Java程序结构及编码规范
程序结构:如在上个程序中
外层框架:
- public:访问修饰符
- class:关键字
- HelloWorld:类名(必须与文件名完全一致)
内层框架:
- main():main方法,程序入口(每个项目有且仅有一个)
- 注意public static void main(String[] args),四要素缺一不可
编写代码:
- System.out.println(“Hello World!”);(每行语句必须以分号结尾)
编码规范:
- 括号必须成对出现,且左大括号放在前一条语句最后,不单独占一行,右侧的大括号单独占一行
- 使用正确的缩进(代码缩进一般规律是:左侧大括号之后的代码向右缩进一个Tab,右侧大括号开始向左缩进一个Tab)
- 一行只写一条代码(带分号的一句)
- 使用英文单词命名(驼峰命名法),尽量不使用拼音
- 文本注释:
- 单行注释
以“//”开始,本行内其后面的内容都是注释 - 多行注释;
以“/”开始,“/”结束,中间的内容是注释 - 文本注释(通过JavaDoc生成说明文档)
一种特殊的多行注释,以“/**”开始,“*/”结束,中间的内容是注释
- 单行注释
/**
* 实现自我介绍 //功能说明
* @author JinQiao //编写文件的程序员姓名,每个字的第一个字母大写
* @vertion V1.0 //版本号
*/
补充内容
常用dos命令:
- 更换盘符:D:
- 查看盘符内容:dir
- 进入文件夹:cd 文件夹名称
- 返回上一级目录:cd…
编译并运行HelloWorld.java文件:
- window+R 打开命令行
- D:(进入D盘)
- cd hello(切换到hello目录下)
- 使用javac编译HelloWorld.java:javac HelloWorld.java
- 使用java命令运行.class:java HelloWorld