Java语言概述
什么是Java语言
Java语言是美国Sun公司(Stanford University Network),在1995年推出的高级的编程语言。所谓编程语言,是计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。
Java语言发展历史
- 1995年Sun公司发布Java1.0版本
- 1997年发布Java 1.1版本
- 1998年发布Java 1.2版本
- 2000年发布Java 1.3版本
- 2002年发布Java 1.4版本
- 2004年发布Java 5版本
- 2006年发布Java 6版本
- 2009年Oracle甲骨文公司收购Sun公司,并于2011发布Java 7版本
- 2014年发布Java 8版本
- 2017年发布Java 9版本
Java语言能做什么
Java语言主要应用在互联网程序的开发领域。常见的互联网程序比如天猫、京东、物流系统、网银系统等,以及服务器后台处理大数据的存储、查询、数据挖掘等也有很多应用。
计算机基础知识
二进制
计算机中的数据不同于人们生活中的数据,人们生活采用十进制数,而计算机中全部采用二进制数表示,它只包含0、1两个数,逢二进一,1+1=10。每一个0或者每一个1,叫做一个bit(比特)。下面了解一下十进制和二进制数据之间的转换计算。
- 十进制数据转成二进制数据:使用除以2获取余数的方式
- 二进制数据转成十进制数据:使用8421编码的方式
字节
字节是我们常见的计算机中最小存储单元。计算机存储任何的数据,都是以字节的形式存储,右键点击文件属性,我们可以查看文件的字节大小。8个bit(二进制位) 0000-0000表示为1个字节,写成1 byte或者1 B,8 bit=1 B。计算机存储单位常见的换算关系如下:
- 1 KB = 1024 B
- 1 MB = 1024 KB
- 1 GB = 1024 MB
- 1 TB = 1024 GB
- 1 PB = 1024 TB
- 1 EB = 1024 PB
- 1 ZB = 1024 EB
键盘按键示意图
我们要开发Java程序,键盘按键也要了解一下。具体要注意的按键如下所示
DOS操作系统
Java语言的初学者,学习一些DOS命令,会非常有帮助。MS-DOS(Microsoft Disk Operating System)是一个早期的操作系统,现在已经被Windows系统取代,对于我们开发人员,目前需要在DOS中完成一些事情,因此就需要掌握一些必要的命令。
进入DOS操作窗口
- 按下Windows+R键盘,打开运行窗口,输入cmd回车,进入到DOS的操作窗口
- 打开DOS命令行后,看到一个路径 c:\user 就表示我们现在操作的磁盘是c盘。
DOS常用命令
Java语言开发环境搭建
在搭建开发环境之前,我们先了解一下Java语言中的一些专业词汇
- JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境,是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在 JVM 之上
- JRE (Java Runtime Environment) :是Java程序的运行时环境,包含 JVM 和运行时所需要的 核心类库 。我们想要运行一个已有的Java程序,那么只需安装 JRE 即可。
- JDK (Java Development Kit):是Java程序开发工具包,包含 JRE 和开发人员使用的工具。我们想要开发一个全新的Java程序,那么必须安装
三者关系: JDK >JRE >JVM 如下图所示
Java语言最重要的特性
跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系统上,这个特性称为Java语言的跨平台特性。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM运行在操作系统上。
JDK下载与安装
首先进入官网https://www.oracle.com/technetwork/java/javase/archive-139210.html 选择自己需要的版本进行下载。
下面我们以为例,进行安装
- 1:双击下载好的软件包,进入如下界面
- 2:点击下一步
注意:
- 安装的路径不要有中文和空格,我们可以点击更改,选择自己要安装的路
因为JDK包含了JRE,所以公共JRE可以不在安装
- 3:点击下一步
安装完成
JAVA_HOME环境变量的配置
配置环境变量作用
开发Java程序,需要使用JDK中提供的工具,工具在JDK9安装目录的 bin 目录下。
在DOS命令行下使用这些工具,就要先进入到JDK的bin目录下,这个过程就会非常的麻烦
不进入JDK的 bin 目录,这些工具就不能使用,会报错。
为了开发方便,我们想在任意的目录下都可以使用JDK的开发工具,则必须要配置环境变量,配置环境变量的意义在于告诉操作系统,我们使用的JDK开发工具在哪个目录下。
配置环境变量步骤
Windows 7,8版本
- 1.计算机鼠标右键,选择 属性
- 2.选择 高级系统设置
- 3.高级 选项卡,点击 环境变量
- 4.点击 新建 ,创建新的环境变量
- 5.变量名输入 JAVA_HOME ,变量值输入JDK9的安装目录 c:\Java9\jdk-9.0.1
- 6.选中 Path 环境变量, 双击 或者 点击编辑
- 7.在变量值的最前面,键入 %JAVA_HOME%\bin; 分号必须要写,必须是英文格式。
- 8.环境变量配置完成,重新开启DOS命令行,在任意目录下输入 javac 命令,运行成功。
Windows 10 版本
- 计算机电脑鼠标右键-> 选择 属性
- 选择 高级系统设置--> 选择 环境变量
- 点击下方系统变量的 新建 ,创建新的环境变量,变量名输入 JAVA_HOME ,变量值输入JDK9的安装目录D:\02_DevelopTools\Java\jdk-9.0.
- 选中 Path 环境变量, 双击 或者 点击编辑
- 点击 新建 ,键入 %JAVA_HOME%\bin ,必须是英文格式。选中该行,上移到最上方,点击确定。
- 环境变量配置完成,重新开启DOS命令行,在任意目录下输入 javac 命令。
HelloWorld入门程序
程序开发步骤说明
开发环境已经搭建完毕,可以开发我们第一个Java程序了。Java程序开发三步骤:编写、编译、运行。
编写Java源程序
- 首先:在 d:\day01 目录下新建文本文件,完整的文件名修改为 HelloWorld.java ,其中文件名为 HelloWorld ,后缀名必须为.java 。
- 其次:使用记事本打开刚才新建的文本文件,键入以下代码并保存,代码如下:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }
注意:
- 文件名必须是 HelloWorld ,保证文件名和类的名字是一致的,注意大小写。
第一个 HelloWord 源程序就编写完成了,但是这个文件是程序员编写的,JVM是看不懂的,也就不能运行,因此
我们必须将编写好的 Java源文件 编译成JVM可以看懂的 字节码文件 。
编译Java源文件
在DOS命令行中,进入Java源文件的目录,使用 javac 命令进行编译。
命令:
编译成功后,命令行没有任何提示。打开 d:\day01 目录,发现产生了一个新的文件 HelloWorld.class ,该文件就是编译后的文件,是Java的可运行文件,称为字节码文件,有了字节码文件,就可以运行程序了。Java源文件的编译工具 javac.exe ,在JDK安装目录的bin目录下。但是由于配置了环境变量,可以再任意目录下使用。
运行Java程序
在DOS命令行中,进入Java源文件的目录,使用 java 命令进行运行。
命令:
Java程序.class文件 的运行工具 java.exe ,在JDK安装目录的bin目录下。但是由于配置了环境变量,可以再任意目录下使用。
入门程序说明
编译和运行是两回事
- 编译:是指将我们编写的Java源文件翻译成JVM认识的class文件,在这个过程中, javac 编译器会检查我们所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功。
- 运行:是指将 class文件 交给JVM去运行,此时JVM就会去执行我们编写的程序了。
main方法
- main方法:称为主方法。写法是固定格式不可以更改。main方法是程序的入口点或起始点,无论我们编写多少程序,JVM在运行的时候,都会从main方法这里开始执行。
注释comment
注释:就是对代码的解释和说明。其目的是让人们能够更加轻松地了解代码。为代码添加注释,是十分必须要的,它不影响程序的编译和运行。
Java中有单行注释和多行注释
- 单行注释:以 //开头 换行结束
- 多行注释:以 /*开头 以*/结束
举例:
// 类是Java当中所有源代码的基本组织单位。HelloWorld就是类名 public class HelloWorld { /* main方法:称为主方法。写法是固定格式不可以更改。 main方法是程序的入口点或起始点,无论我们编写多少程序, JVM在运行的时候,都会从main方法这里开始执行。 */ public static void main(String[] args) { // 第三行代表打印输出语句(其实就是屏幕显示) System.out.println("Hello, World!!!"); } }
关键字
- 关键字:是指在程序中,Java已经定义好的单词,具有特殊含义。HelloWorld案例中,出现的关键字有 public 、 class 、 static 、 void 等,这些单词已经被Java定义好。
特点:
- 全部都是小写字母
- 在智能开发工具中,有特殊颜色显示
标识符
- 标识符:是指在程序中,我们自己定义内容。比如类的名字、方法的名字和变量的名字等等,都是标识符。HelloWorld案例中,出现的标识符有类名字 HelloWorld 。
命名规则: 硬性要求
- 标识符可以包含 英文字母26个(区分大小写) 、 0-9数字 、 $(美元符号) 和 _(下划线) 。
- 标识符不能以数字开头。
- 标识符不能是关键字。
命名规范: 软性建议
- 类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。
- 方法名规范: 首字母小写,后面每个单词首字母大写(小驼峰式)。
- 变量名规范:全部小写。
数据类型
数据类型分类
Java的数据类型分为两大类:
- 基本数据类型:包括 整数 、 浮点数 、 字符 、 布尔 。
- 引用数据类型:包括 类 、 数组 、 接口 等等..。
基本数据类型
四类八种基本数据类型:
注意事项:
- 字符串不是基本类型,而是引用类型。
- 浮点型可能只是一个近似值,并非精确的值。
- 数据范围与字节数不一定相关,例如float数据范围比long更加广泛,但是float是4字节,long是8字节。
- 浮点数当中默认类型是double。如果一定要使用float类型,需要加上一个后缀F。如果是整数,默认为int类型,如果一定要使用long类型,需要加上一个后缀L。推荐使用大写字母后缀。
常量
常量:是指在Java程序中固定不变的数据
常量的分类
举例:
/* 常量:在程序运行期间,固定不变的量。 常量的分类: 1. 字符串常量:凡是用双引号引起来的部分,叫做字符串常量。例如:"abc"、"Hello"、"123" 2. 整数常量:直接写上的数字,没有小数点。例如:100、200、0、-250 3. 浮点数常量:直接写上的数字,有小数点。例如:2.5、-3.14、0.0 4. 字符常量:凡是用单引号引起来的单个字符,就做字符常量。例如:'A'、'b'、'9'、'中' 5. 布尔常量:只有量中取值。true、false。 6. 空常量:null。代表没有任何数据。 */ public class Demo01Const { public static void main(String[] args) { // 字符串常量 System.out.println("ABC");//ABC // 字符串两个双引号中间的内容可以为空 System.out.println(""); System.out.println("XYZ");//XYZ // 整数常量 System.out.println(30);//30 System.out.println(-500);//-500 // 浮点数常量(小数) System.out.println(3.14);//3.14 System.out.println(-2.5);//-2.5 // 字符常量 System.out.println('A');//A System.out.println('6');//6 // System.out.println(''); 错误: 原因是 两个单引号中间必须有且仅有一个字符,没有不行。 // System.out.println('AB'); 错误: 原因是 两个单引号中间必须有且仅有一个字符,有两个不行。 // 布尔常量 System.out.println(true);//true System.out.println(false);//false // System.out.println(null); 错误,原因是 空常量不能直接用来打印输出。 } }
变量
变量:常量是固定不变的数据,那么在程序中可以变化的量称为变量。程序中,可以使用字母保存数字的方式进行运算,提高计算能力,可以解决更多的问题。比如x保存5,x也可以保存6,这样x保存的数据是可以改变的,也就是我们所讲解的变量。Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。
变量的定义
变量定义的格式包括三个要素: 数据类型 、 变量名 、 数据值 。
格式1
- 数据类型 变量名称;
- 变量名称 = 数据值;
举例:
// 格式:数据类型 变量名称; 含义:创建了一个变量,名称为age int age; // 格式:变量名称 = 数据值; 含义 向变量age当中存入一个数据18 age = 18;
格式2:
- 数据类型 变量名称 = 数据值;
举例:
//格式:数据类型 变量名称 = 数据值; 含义 在创建一个变量age的同时,立刻放入指定的数据值18 int age = 18;
练习
定义所有基本数据类型的变量并且打印输出,代码如下:
public class Demo02Variable { public static void main(String[] args) { // 创建一个变量 格式:数据类型 变量名称; int num1; // 向变量当中存入一个数据 格式:变量名称 = 数据值; num1 = 10; // 当打印输出变量名称的时候,显示出来的是变量的内容 System.out.println(num1); // 10 // 改变变量当中本来的数字,变成新的数字 num1 = 20; System.out.println(num1); // 20 // 使用一步到位的格式来定义变量 格式:数据类型 变量名称 = 数据值; int num2 = 25; System.out.println(num2); // 25 // 改变变量当中本来的数字,变成新的数字 num2 = 35; System.out.println(num2); // 35 //定义字节型变量 byte b = 100; System.out.println(b);//100 //定义短整型变量 short s = 1000; System.out.println(s);//1000 //定义整型变量 int i = 123456; System.out.println(i);//123456 //定义长整型变量 long l = 12345678900L; System.out.println(l);//12345678900 //定义单精度浮点型变量 float f = 5.5F; System.out.println(f);//5.5 //定义双精度浮点型变量 double d = 8.5; System.out.println(d);//8.5 //定义布尔型变量 boolean bool = false; System.out.println(bool);//false //定义字符型变量 char c = 'A'; System.out.println(c);//A } }
使用变量的时候,有一些注意事项:
- 如果创建多个变量,那么在同一个大括号范围内,变量的名字不可以相同。
- 对于float和long类型来说,字母后缀F和L不要丢掉。
- 右侧的数据值不能超过左侧数据类型的范围。
- 没有进行赋值的变量,不能直接使用;一定要赋值之后,才能使用。
- 变量使用不能超过作用域的范围。【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。
- 可以通过一个语句来创建多个变量,但是一般情况不推荐这么写。
举例
public class Demo03VariableNotice { public static void main(String[] args) { // 创建了一个新的变量,名叫num1 int num1 = 10; // int num1 = 20; 错误: 在同一个大括号范围内,变量的名字不可以相同。 // 定义了一个变量,但是没有进行赋值 int num2; // System.out.println(num2);错误:定义的变量,不赋值不能使用。打印是对变量的一种使用 // System.out.println(3); // 在创建变量之前,不能使用这个变量 int num3 = 500; { int num4 = 60; } // System.out.println(num4); 错误:已经超出了大括号的范围,超出了作用域,变量不能再使用了 //int num5= 656565656565656565; 错误:右侧的数据值不能超过左侧数据类型的范围。 // 同时创建了三个全都是int类型的变量 int a, b, c; // 各自分别赋值 a = 10; b = 20; c = 30; System.out.println(a); // 10 System.out.println(b); // 20 System.out.println(c); // 30 // 同时创建三个int变量,并且同时各自赋值 int x = 100, y = 200, z = 300; System.out.println(x); // 100 System.out.println(y); // 200 System.out.println(z); // 300 } }