Java是一种编程语言,被特意设计用于互联网的分布式环境。
Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,
而且在编程时彻底采用了一种“以对象为导向”的方式。
Java是Sun微系统公司在1995年推出的,推出之后马上给互联网的交互式应用带来了新面貌。
最常用的两种互联网浏览器软件中都包括一个Java虚拟机。
几乎所有的操作系统中都增添了Java编译程序。
Java语言之父---詹姆斯高斯林
- 1995年5月23日,Java语言诞生
- 1996年1月,第一个JDK-JDK1.0诞生
- 1997年2月18日,JDK1.1发布
- 1997年4月2日,JavaOne会议召开
- 1998年12月8日,JAVA2企业平台J2EE发布
- 1999年6月,SUN公司发布Java的三个版本:
标准版(J2SE)、企业版(J2EE)和微型版(J2ME)
- 2000年5月8日,JDK1.3发布
- 2000年5月29日,JDK1.4发布
- 2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机
- 2001年9月24日,J2EE1.3发布
- 2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升
- 2004年9月30日,J2SE1.5发布
- 2005年6月,JavaOne大会召开,SUN公司公开Java SE 6
- 2006年12月,SUN公司发布JRE6.0
- 2009年12月,SUN公司发布Java EE 6
- 2010年11月,由于Oracle公司对于Java社区的不友善,因此Apache扬言 将退出JCP
- 2011年7月28日,Oracle公司发布Java SE 7
- 2014年3月18日,Oracle公司发表Java SE 8
- 2017年7月,Oracle 公司将发布 JDK 9
- 2018年,从 2018 年开始, 每6个月就会发布一个 Java 版本
- 2019 年,2019 年 2 月 Java 12 发布2019 年 9 月 Java 13 发布。
- 2020 年,2020 年 3 月 17 日,Java 14 发布。2020 年 9 月 15 日,Java 15 发布。
- 2021 年,2021 年 3 月 16 日,Java SE 16 发布。
- 2021 年 9 月 14 日,Java SE 17 LTS 发布。
1、企业级应用开发。
企业级应用开发大可以做全国联网的系统,小到中小企业的应用解决方案。
多数没有前端开发的通常是从一个服务器接收数据,处理后发给另一个处理系统。
2、网站开发。
比如说京东商城、淘宝。
3、软件开发。
例如Eclipse,MyEclipse,IneteliJIdea和Netbans IDE等知名Java开发工具。
4、嵌入式领域。
Java因其具有的诸多优点受到了嵌入式领域的青睐,并得到了大量的研究与开发应用。
5、大数据。
Java大数据的应用领域非常的广泛,可以简单分为几类:基础大数据服务平台,
大中型的商业应用包括我们常说的企业级应用、各种类型的网站等。
6、科学应用。
Java的安全性、便携性让Java在科学应用、金融服务、空间巨大。
- JDK (Java Development Kit)
是Java程序开发工具包,包含JRE和开发人员使用的工具
- JRE (Java Runtime Environment)
是Java程序的运行时环境,包含JVM和运行时所需要的核心类库
- JVM(Java Viritual Machines)
Java虚拟机,简称JVM,是运行所有Java程序的虚拟计算机
JVM(Java Viritual Machines)
Java虚拟机,简称JVM,是运行所有Java程序的虚拟计算机,我们编写的Java代码都运行在JVM上。
特点:
跨平台:任何软件的运行,都必须运行在操作系统上,而是用Java编写的代码可以运行在任何操作系统之上,
这个特性就是Java语言的跨平台性。这个特性是JVM实现的,我们编写的程序运行在JVM上,JVM运行在操作系统上。
Java的虚拟机本身不具备跨平台的功能,每个操作系统下都有不同版本的虚拟机
1、JVM不能单独搞定class的执行,解释class的时候,JVM需要调用JRE的类库lib。
在JRE目录里有两个文件夹bin和lib,可以认为bin里的就是jvm,
lib里的则是jvm工作所需要的类库,而jvm和 lib和起来就称为JRE。
2、利用JDK(调用JAVA API)开发了JAVA程序后,
通过JDK中的编译程序(javac)将java文件编译成JAVA字节码,
在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
官网:http://www.oracle.com (下载期间可以免费注册ORACLE账号)
注意:安装路径不建议出现空格以及中文路径
第一步:点击此电脑–右键–属性—系统高级设置
第四步:配置环境变量
变量名:JAVA_HOME
变量值:(自己电脑上的jdk路径)
变量名:CLASSPATH
变量值: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
选择变量:Path
添加变量值: %JAVA_HOME%\bin
第五步:测试环境变量是否生效
java:一般用于启动一个应用程序
javac:用于将java文件编译为class文件
java -version:查看当前jdk的版本
1、选中项目中的src
2、点右键,选择New,继续选择Java Class
3、创建类名,注意单词首字母大写
/**
* 第一个Java程序
*/
//public class后面代表定义一个类的名称,类是Java当中所有源代码的基本组织单位
public class HelloWorld {
//第二行的内容是亘古不变的写法,代码程序的入口函数,即main方法
public static void main(String[] args) {
System.out.println("Hello World!!!");
}
}
1、点击行号旁边的绿色三角箭头,选择Run 选项运行
2、或者在代码处点击右键,选择Run选项,也可以运行代码
3、运行结束,控制台会输出结果
javac:用于编译java源代码,生成class文件
Java 程序的运行必须经过编写、编译和运行 3 个步骤:
1、编写:是指在 Java 开发环境中进行程序代码的输入,
最终形成后缀名为 .java 的 Java 源文件。
2、编译:是指使用 Java 编译器对源文件进行错误排査的过程,
编译后将生成后缀名为 .class 的字节码文件,
3、运行:是指使用 Java 解释器将字节码文件翻译成机器代码,
执行并显示结果。
java注释是不会被编译器和解释器执行的语句。
注释可以用于提供关于变量,方法,类或任何语句的信息或解释。
它也可以用于在特定时间隐藏程序代码。
Java中有3种类型的注释:单行注释、多行注释、文档注释
1、单行注释
(1)符号: //
(2)注释范围:从符号 “ // ” 开始,到本行结束
(3)快捷键 “ Ctrl + / ” (Ctrl 和 / 的组合):
(4)选中要注释的内容,按 “ Ctrl + / ”,便可同时单行注释多行内容
若想多个同个取消,则选中“以及单行注释过的内容”,再次按Ctrl+/ 组合键即可同时取消多个单行注释)
(1)符号:/* */
(2)注释范围:从左边“ /* ” 开始,到右边 “ */ ”结束
(3)快捷键 “ Ctrl + shift + / ” (Ctrl 、Shift 和 / 的组合)
选中要注释的内容,按 “ Ctrl + shift + / ”,便可用多行注释的方法注释选中的内容。
(1)符号:/** */
(2)注释范围:一般用在函数前面,
Java编译器会自动读取邻近函数体中的关键变量等要素,辅助开发人员进行“函数”说明。
(3)使用方法:在要进行文档注释的函数前面一行输入“ /** ”),
之后按回车即可,Java编译器会自动提取。
1、Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,
还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,
2、他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、
方法名、类名、包名和参数。
Java中常用的关键字
Java关键字的含义
关键字 | 含义 |
---|---|
abstract | 表明类或者成员方法具有抽象属性 |
assert | 用来进行程序调试 |
boolean | 基本数据类型之一,布尔类型 |
break | 提前跳出一个块 |
byte | 基本数据类型之一,字节类型 |
case | 用在switch语句之中,表示其中的一个分支 |
catch | 用在异常处理中,用来捕捉异常 |
char | 基本数据类型之一,字符类型 |
class | 类 |
const | 保留关键字,没有具体含义 |
continue | 回到一个块的开始处 |
default | 默认,例如,用在switch语句中,表明一个默认的分支 |
do | 用在do-while循环结构中 |
double | 基本数据类型之一,双精度浮点数类型 |
else | 用在条件语句中,表明当条件不成立时的分支 |
enum | 枚举 |
extends | 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口 |
final | 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量 |
finally | 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块 |
float | 基本数据类型之一,单精度浮点数类型 |
for | 一种循环结构的引导词 |
goto | 保留关键字,没有具体含义 |
if | 条件语句的引导词 |
implements | 表明一个类实现了给定的接口 |
import | 表明要访问指定的类或包 |
instanceof | 用来测试一个对象是否是指定类型的实例对象 |
int | 基本数据类型之一,整数类型 |
interface | 接口 |
long | 基本数据类型之一,长整数类型 |
native | 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的 |
new | 用来创建新实例对象 |
package | 包 |
private | 一种访问控制方式:私用模式 |
protected | 一种访问控制方式:保护模式 |
public | 一种访问控制方式:共用模式 |
return | 从成员方法中返回数据 |
short | 基本数据类型之一,短整数类型 |
static | 表明具有静态属性 |
strictfp | 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范 |
super | 表明当前对象的父类型的引用或者父类型的构造方法 |
switch | 分支语句结构的引导词 |
synchronized | 表明一段代码需要同步执行 |
this | 指向当前实例对象的引用 |
throw | 抛出一个异常 |
throws | 声明在当前定义的成员方法中所有需要抛出的异常 |
transient | 声明不用序列化的成员域 |
try | 尝试一个可能抛出异常的程序块 |
void | 声明当前成员方法没有返回值 |
volatile | 表明两个或者多个变量必须同步地发生变化 |
while | 用在循环结构中 |
是指在程序中,我们自己定义的内容,如:类的名称,方法的名称,变量的名称
1、标识符可以包含26个英文字母,区分大小写,0-9数字,$美元符号,_下划线
2、标识符不能以数字开头
3、标识符不能是关键字
骆驼式命名法(Camel-Case)又称驼峰式命名法,是电脑程式编写时的一套命名规则(惯例)。
正如它的名称CamelCase所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。
程序员们为了自己的代码能更容易的在同行之间交流,所以多采取统一的可读性比较好的命名方式。
1、类名称:首字母必须大写,后面每个单词首字母必须大写---大驼峰格式
2、方法名称:首字母小写,后面的每个单词首字母大写---小驼峰格式
3、变量名称:同上方法名称一样
常量:是指在Java程序运行期间固定不变的数据
1、字符串常量:凡是用双引号引起来的部分,称为字符串常量
如:"abc"、"hello"、"ccc"**
2、整数常量:直接写上的数字,没有小数点。
如:20、100、0、-160**
3、浮点数常量:直接写上的数字,有小数点。
如:3.14 、1.5、 -2.1、0.0**
4、字符常量:凡是用单引号引起来的单个字符,称为字符常量。
如:'a'、'A'、'国'、'6'**
5、布尔常量:有两种取值,
即true和false**
6、空常量:null,表示没有任何数据**
public class ConstDemo {
public static void main(String[] args) {
//字符串常量:
System.out.println("abc");
System.out.println("");//字符串两个双引号中间的内容为空
System.out.println("QWE");
//整数常量
System.out.println(100);
System.out.println(-30);
//浮点数常量
System.out.println(3.14);
System.out.println(-2.0);
//字符常量
System.out.println('A');
System.out.println('1');
System.out.println('中');
//System.out.println('');//两个单引号中间有且只有一个字符,没有不可以
//System.out.println('中国');//两个单引号中间有且只有一个字符,不可以出现两个
//布尔常量
System.out.println(true);
System.out.println(false);
//空常量
//System.out.println(null);//空常量不能用来打印输出
}
}
变量:是指在Java程序运行期间可以改变的数据
Java中要求,每一个变量每次只能保存一个数据,
必须要明确保存的数据类型
Java的数据类型分为两大类:
- 基本数据类型:整数型、浮点型、字符型、布尔型
- 引用数据类型:类、数组、接口、字符串
格式一:分步骤
数据类型 变量名称; //创建一个变量
变量名称 = 数据值; //赋值。等号的作用:将右边的数据值赋值给左边的变量
格式二:一步到位
数据类型 变量名称 = 数据值; //创建一个变量的同时,立即放入指定的数据值
/**
* 变量的练习
*/
public class VariableDemo {
public static void main(String[] args) {
/*
变量:程序运行期间,内容发生改变的量,称之为变量
创建变量使用的格式:
格式一:
数据类型 变量名称; //创建一个变量
变量名称 = 数据值; //赋值。等号的作用:将右边的数据值赋值给左边的变量
格式二:创建一个变量的同时,立即放入指定的数据值
数据类型 变量名称 = 数据值;
*/
//格式一:分步骤
//创建一个变量
//格式:数据类型 变量名称;
int num1;
//向变量中存放一个数据值
//格式:变量名称 = 数据值;
num1 = 20;
//打印输出num1变量中存放的数据值,当打印输出变量的名字的时候,输出的是变量的内容
System.out.println(num1);//20
//修改变量中的值
num1 = 33;
System.out.println(num1);//33
//格式二:一步到位
//使用一步到位的格式来定义变量
//格式:数据类型 变量名称 = 数据值;
int num2 = 50;
System.out.println(num2);//50
//修改变量的值
num2 = 55;
System.out.println(num2);//55
//byte类型
byte num4 = 22;
System.out.println(num4);//22
//byte num5 = 156;报错,注意:等号右边的数据值,不能超过等号左边变量数据类型的取值范围
//short类型
short num6 = 33;
System.out.println(num6);//33
//long类型
long num7 = 100000000000L;//long类型的数据值后缀需要加大写L或者小写l。推荐使用大写L
System.out.println(num7);//100000000000
//浮点型
float num8 = 2.1F;//float类型的数据值后缀需要加大写F或者小写f,推荐使用大写F
System.out.println(num8);//2.1
double num9 = 3.14;//浮点型的默认类型是double类型
System.out.println(num9);//3.14
//char类型
char c1 = 'a';
System.out.println(c1);//a
//boolean类型
boolean b1 = true;
System.out.println(b1);//true
//修改变量b1的值
b1 = false;
System.out.println(b1);//false
//变量值的传递
boolean b2 = b1;
System.out.println(b2);//false
/*
注意事项:
1、等号右侧的数据值的范围不能超过等号左侧数据类型的取值范围
2、对于long和float类型。数据值的后缀需要添加L和F
3、变量名称不能重复
*/
}
}
- 1 字符串类型不是基本数据类型,是引用数据类型。
- 2 浮点型可能只是一个近似值,不是精确的值。
- 3 数据范围与字节数不一定相关,
如float类型比long类型的数据范围更大,
但float是4字节,long是8字节。
- 4 浮点数中默认类型是double,
如果一定要使用float,则需要在后缀加一个F,
(大写F和小写都可以,推荐使用大写F)。
- 5 整数中默认使用int类型,
如果一定要使用long类型,则需要加上一个后缀L.
(大写L和小写l都可以,推荐使用大写L)