java语言介绍
目前大系统开发中,很少使用单一语言进行开发,现有语言也十分发达,包含Java\C\C++\PHP\Python等等。通常情况下,一个大系统底层驱动部分都是使用C语言开发,而在上层用户交互层使用java语言开发。因此,最近10年以来,java和C语言都保持全球语言排行榜第一、第二的位置。可见java语言在目前各种语言的使用度中是非常高的。
java发展历程
- java语言的开创者:James Gosling(詹姆斯·高斯林);最初于贝尔实验室开发;
- java语言的前身是Oak语言,是基于C++语言改造出的一个轻量级的开发语言;
- java语言早起隶属于Sun(1982年成立);2009年4月20日,被Oracle公司(甲骨文)收购;
- java语言第一版(JDK1.0)是Sun公司在1996年发布的;
- 1999年6月,第二代Java发布3个版本:
- JavaSe(J2SE):Java标准版,
- 定位于个人计算机应用,允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE是基础包,但是也包含了支持 Java Web 服务开发的类;
- JavaEE(J2EE):Java企业版,定位于服务器端,主要用于企业级的应用开发;
- JavaME(J2ME):java移动版或者微型版,主要是嵌入式开发或者移动应用开发,比如手机端,目前基本已不再使用;
- java发展史上的又一是JDK1.5版本,增加了泛型、foreach循环、可变参数、自动拆装包、枚举、静态导入等新特性;至此之后,J2SE1.5变更名称为JavaSE5.0,通常为我们称呼JDK1.5或者JDK5.0都表示一个版本,后面JDK版本受此历史原因影响,均存在两个称呼;
序号 | java版本 | 发布日期 | 备注 |
---|---|---|---|
1 | JDK1.0 | 1996年1月23日 | |
2 | jdk1.1 | 1997年2月18日 | |
3 | JDK1.2 | 1998年12月8日 | |
4 | JDK1.3 | 2000年5月8日 | |
5 | JDK1.4 | 2002年5月29日 | |
6 | JDK1.5 | 2004年9月30 | 开始更名JavaSe5.0名称 |
7 | JDK1.6 | 2006年12月9日 | jdk6.0 |
8 | JDK1.7 | 2011年7月29日 | jdk7.0 |
9 | JDK1.8 | 2014年3月18日 | jdk8.0 , 目前较为常用版本 |
10 | JDK9.0 | 2017年9月22日 |
Java语言特点
- 简单性:
- Java发展是由C++衍生而来,许多语言与C和C++类似;
- Java删除了C++中如指针、头文件等不必要的东西,同时自身具备了丰富的类库;
- 强类型语言
- Java语言具有强制约束,保证开发语言的稳定性;
- 面向对象语言(OO)
- 面向对象是以对象作为基本程序结构单位的程序设计语言,程序运行以对象为基本单位,包括继承、封装、多态等特性;
OO:面向对象(Object Oriented)
OOP:面向对象编程(Object Oriented Programming)
OOA:面向对象分析(Object Oriented Analysis)
OOD:面向对象设计(Object Oriented Design)
- 面向对象是以对象作为基本程序结构单位的程序设计语言,程序运行以对象为基本单位,包括继承、封装、多态等特性;
- 一种于平台无关的语言
- Java源文件通过编译后的字节码文件(.class文件)能够跨平台使用;
- 通过不同平台版本的java虚拟机(JVM)来保证"一次编译,随处运行";
- 健壮性和安全性
- java删除了指针和释放内存等功能,避免非法内存操作;
- java语言强壮性体现在自身把很多的语法错误甚至警告抛出给程序员,让程序员开发时就快速定位语法错误,
- java是一种安全性强的语言,它基于一个动态、可扩展、基于标准、可互操作的安全架构;
- java的强类型机制、异常处理及垃圾自动回收,也保证语言的健壮性和安全性;
- java由于编译后执行字节码文件,在自身内核中与其余语言是隔离的,因此,不会受到病毒感染,这也是java安全性的体现;
- 多线程
- java语言原生支持多线程服务,相对于其他语言,具有独特的优势;
- 多线程特点是能够同时运行多项任务;
Java集成开发环境
- JDK:java开发环境+技术工具包;是java语言软件开发工具包,属于开发者必须安装的组件,主要用于java应用程序开发,包含java运行环境(JVM+JRE+java系统类库)以及java开发工具;
- JRE:java运行环境+基础类库;是java代码执行的必备条件,里面包含java虚拟机以及一些标准类库;
- JVM:java虚拟机,属于一个虚构的计算机,通过在实际计算机上仿真模拟各种计算机功能来实现。通过JVM,java语言实现在跨平台运行,也就是常说的"一次编译,随处运行";
JDK安装与环境变量配置
-
JDK 在oracle官网下载后,直接双击进行安装;安装过程中可以自己定义安装路径,一般默认安装与C盘下;
-
安装完成后需要配置Java运行环境,主要是为了实现我们在任意磁盘下创建的java文件都可以正常运行;
-
配置步骤包括:
-
右键我的电脑,点击【属性】 ,进入系统信息界面:
-
点击【高级系统设置】 ,进入系统属性界面,点击【环境变量】进入环境配置界面
-
在【系统变量】中寻找"Path"变量,点击编辑,然后将 第一步中java安装路径中bin文件夹额路径增加到里面,点击确认即可;:--
备注:此方法属于比较简单的配置,基本满足日常使用,网上还有另一种配置方法,使用增加classpath变量的方式,此处不再赘述 -
环境变量配置完成后,输入 windows + R 键,在弹出的运行窗口中输入”cmd" , 进入Dos窗口;
-
在Dos窗口输入java -version \ javac -version ,分别输出当前版本,要求两个版本信息一致如果不能输出,说明环境配置不正确,如果不一致,检查JDK 是否安装多个。
-
windows系统常用快捷键命令
-
Dos窗口相关命令
相关命令可以输入help进行查找;
序号 | 作用 | 命令 |
---|---|---|
1 | 进入Dos窗口 | windows + R 命令行输入:cmd; |
2 | 进入磁盘 | 盘符: 比如:D: |
3 | 进入某个目录 | cd + “目录” 比如:cd D:\ziliao |
4 | 返回当前的上一级 | cd… |
5 | 返回根目录 | cd \ |
6 | 清除屏幕 | cls |
7 | 浏览目录下的子文件和目录 | dir 注意:后面可以跟相关目录 |
8 | 获取帮助,输出所有的命令符 | help |
- 常用文本编辑快捷键
序号 | 作用 | 命令 |
---|---|---|
1 | 剪切 | ctrl + x |
2 | 粘贴 | crtl + v |
3 | 拷贝 | crtl + c |
4 | 全选 | ctrl + a |
5 | 保存 | ctrl + s |
6 | 撤销 | ctrl + z |
7 | 取消撤销 | ctrl + y |
8 | 查找 | ctrl + f |
9 | 替换 | ctrl + h |
10 | 加粗 | ctrl + b |
第一个程序 HelloWorld
HelloWorld程序编写几乎是每一中语言入门都会编写的一个程序,主要就是实现一个“HelloWorld"语句打印输出,java编程的步骤主要包括:
-
创建一个java 源文件;
-
在文件中创建一个类,以class定义;
-
在类里面创建以个主方法(main方法);
-
在main方法中书写执行内容,本例中打印输出”HelloWorld“
程序代码如下:
public class HelloWorld{
public static void main(String[] args){
System.out.println("HelloWorld!!");
}
}
- java代码注释:
- 代码中public属于修饰符,表示这个类是公共的,都可以访问;
- 注意public修饰的类(class),必须与Java源文件名称保持一致,所以一个java文件只能有一个public修饰的类;但java文件中可以有多个class类;
- static 表示该方法是静态的,不可被修改;
- System.out.println()表示打印输出语句,完成后换行;
- System.out.print()表示打印后不换行,下次打印时,在后面继续打印;
- 记事本直接javac编译java文件时,如果java代码中包括中文字符,则常出现"编码GBK的不可映射字符"问题,这是由于使用CMD运行java程序的时候,系统默认的编码格式是gbk。而包含中文字符的代码一般是UNICODE格式,所以直接运行含有中文字符的代码就很容易出现编码错误。
- 记事本编译时可使用-endcoding指定文件编码格式进行编译,比如:
javac -encoding UTF-8 HelloWorld.java
- 保存记事本时修改保存文件的编码格式,使用ANSI编码,这样保存后可以直接进行javac编译;
标识符以及java关键字
-
标识符:
在java中所有可以起的名字,例如:类名、包名、变量名、方法名、接口名…
- 标识符的规则:字母+数字+$+_ 组成;
- 不能以数字开头;
- 不能是关键字(关键字指java中有特殊含义的单词,或者是被保留的单词(const、goto));
- 没有字数限制
- 严格区分大小写
-
java关键字
abstract(抽象) | default(默认) | if(如果) | private(私有的) | this(当前对象) |
---|---|---|---|---|
boolean(布尔) | do(做) | implements(实现接口) | protected(受保护的) | throw(抛出异常) |
break(结束\中断) | double(双精度) | import(导入) | public(公共的) | throws(声明异常) |
byte(字节) | else(否则) | instanceof(比较类型) | return(返回) | transient(不在线程保护中(短暂的)) |
case(事件) | extends(继承) | int(整型) | short(短整型) | try(捕获) |
catch(捕获到处理) | final(常量) | interface(接口) | static(静态) | void(无返回值) |
char(字符) | finally(最终) | long(长整型) | strictfp(严格的) | volatile(指令,不稳定) |
class(类) | float(单精度) | native(原生) | super(当前对象的父类对象) | while(循环) |
const(保留字) | for(循环) | new(实例化) | switch(选择) | null(空) |
continue(略过) | goto(保留字) | package(包) | svnchronized(同步) |
-
java特殊符号
java中的"\"具有属于一个特殊字符,在后面跟部份字符表示特殊的意义:
- " \n ":换行符;
- " \t ":制表符;
-
java注释
- 单行注释: “//” 后面跟注释内容,只能有一行
- 多行注释:"/* */" 两个符号之间跟注释内容,可以多行;
- 文本注释:"/** */" 两个符号之间跟注释内容,可以多行;一般在类前和方法前注释,可以跟类或方法的说明、作者名称、版本、JDK使用版本的信息
// 单行注释内容;
/* 多行注释 */
/** * 文本注释 * @author ShuiRon * @version 1.0 */