Java 入门
目录
Java简介
Java JDK开发环境配置
第一个Java程序
Java标识符与关键字
Java注释
Java常量
Java变量的定义和使用
Java简介
Java简介:
Java是由Sun Microsystems公司于1995年推出的一门面向对象的高级程序设计语言,可以运行于多个平台,其创始人为James Gosling。而后于2010年Oracle(甲骨文)公司收购Sun Microsystems,之后就由Oracle公司负责Java的维护和版本升级。毫无疑问,Java语言可以说是最近十余年发展最迅速、影响也越大的一门编程语言,与C语言、C++常年位列“兵器榜”前三,且时不时的冲上榜一,或许是时代的需要,无论是Web应用开发还是移动端安卓生态,大家听到最多的莫过于Java了,这就是Java的影响力。
Java的分类,总体来说Java分为三类,分别是:
JavaSE(J2SE)(Java 2 Platform Standard Edition,Java平台标准版)
JavaEE(J2EE)(Java 2 Platform Enterprise Edition,Java平台企业版)
JavaME(J2ME)(Java 2 Platform Micro Edition,Java平台微型版)。
Java语言特点:
作为主流开发语言,之所以这么长久不衰,一定有自己的独特之处,除了C、C++等语言的都有的特性之外,罗列几项Java特有的特性如下:
-
跨平台特性
所谓的跨平台,是因为Java的代码只需一次编写、处处执行,即不关心什么平台,只要有JVM虚拟机即可运行,真正做到跨平台。
-
简单性
所谓的简单,并非单纯的语法简单,如舍弃了C++中继承复杂的一些问题,舍弃了C中的指针,自动垃圾回收机制使得动态内存管理也不用担心内存泄露,除此之外,由于和C/C++常规语法非常相似,因此有C/C++基础的同学学起来会非常顺利。
-
解释性
Java语言首先是需要编译的,但编译之后的代码并非像C/C++一样的机器码,而是字节码,只要是Java的虚拟机都可以解释执行,这种特性使得编译之后的Java语言既能跨平台又可以执行速度很快。
-
健壮性
强类型机制、垃圾回收、异常处理使得Java开发出来的程序更有安全的保证。
Java JDK开发环境配置
与其他语言一样,学习和使用Java语言需要提前准备下载和安装编译器,即JDK,JDK是英文Java Development Kit的缩写,即Java开发工具,它包含了支持Java编译运行的一切环境,下面我们开始到官方下载,地址是:Java Downloads | Oracle
打开的滚动找到如下位置:
大家根据自己的系统是windows还是linux选择对应的下载。
PS:因为官方可能会更新,因此大家打开的链接可能与本教程的图片不一致,不影响配置思路。
以windows平台为例,大家可以选择第二个exe文件下载并安装,安装完成之后进行最重要的环境变量的配置,配置窗口位于:右键我的电脑-属性-高级系统设置,在高级的选项卡中点击环境配置。
以JDK1.8版本为例,分别添加以下三个环境变量:
变量名:JAVA_HOME
变量值:C:\Program Files (x86)\Java\jdk1.8.0_91 // 要根据自己的实际路径配置
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; //记得前面有个"."
变量名:Path
变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
配置完成之后,可以用过以下方式验证是否安装和配置成功,打开命令提示符(开始-运行-cmd)输入javac以及java vesion
若显示java的版本信息而没有显示“该命令不是内部或外部命令”就成功了!
第一个Java程序
下面我们来认个眼熟,看看最简单的Java程序长什么样子!
/*
*第一个Java程序
*/
public class Main{public static void main(String[] args) {System.out.println("Hi www.csdn.com");}
}
首先我们看到输出这个字符串的语句是一个System.out.println的语句,其实我们可以修改这个语句中双引号里的内容,修改什么就会输出什么,也就是说这个是个输出语句,我们只要把想输出的信息放到这个语句后面的双引号里就可以输出,大家可以多多尝试。
其次,我们看到println这个语句又在一个public static void main的小括号括着,这个是个叫main的方法,它是程序的入口点,也就是说全部的代码从这里开始执行,pirntln则是这个方法中的唯一一条语句,而main方法前面的public static表示这个main方法是一个公开访问的静态方法。
然后接着再往外层看,public static void main这个函数又在public class Main这个小括号的里面,public class Main则是一个类,同样public表示这个类的访问权限是公开的,class是一个关键字表示类,后面Main是类名。
Java标识符与关键字
与其他语言类似,Java语言也需要标识符和关键字作为Java语法的支撑。
标识符
Java中标识符是为方法、变量或其他用户定义项所定义的名称。在 Java 语言中,标识符的组成规则如下:
标识符由数字(0~9)和字母(A~Z和a~z)、美元符号($)、下划线(_)以及Unicode字符集中符号大于0xC0的所有符号组合构成(各符号之间没有空格)。并且标识符的第一个符号只能为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线。
此外,Java严格区分大小写,比如DOTcpp和dotcpp是两个不同的标识符。
标识符分为两类,分别为关键字和用户自定义标识符。
关键字是有特殊含义的标识符,例如true、false表示逻辑的真假。
用户自定义标识符是由用户按标识符构成规则生成的非保留字的标识符,比如定义变量时候dotcpp就是一个标识符。
提示:使用标识符时一定要注意,或者使用关键字,或者使用自定义的非关键字标识符。此外,标识符可以包含关键字,但不能与关键字重名。
例如以下合法与不合法标识符。
合法标识符:date、$2011、_date、D_$date等。
不合法的标识符:123.com、9com、for、if等。
标识符用来命名常量、变量、类和类的对象等。因此,一个良好的编程习惯要求命名标识符时,应赋予它一个有意义或有用途的名字。
关键字
关键字(或者保留字)是对编译器有特殊意义的固定单词,不能在程序中做其他目的使用。关键字具有专门的意义和用途,和自定义的标识符不同,不能当作一般的标识符来使用。
Java的关键字对Java编译器有特殊的意义,它们用来表示一种数据类型,或者表示程序的结构等。保留字是为Java预留的关键字,它们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。
Java语言目前定义了51个关键字,这些关键字不能作为变量名、类名和方法名来使用,以下对这些关键字进行了分类。
数据类型:boolean、int、long、short、byte、float、double、char、class、interface。
流程控制:if、else、do、while、for、switch、case、default、break、continue、return、try、catch、finally。
修饰符:public、protected、private、final、void、static、strict、abstract、transient、synchronized、volatile、native。
动作:package、import、throw、throws、extends、implements、this、supper、instanceof、new。
保留字:true、false、null、goto、const。
需要注意的是,由于Java区分大小写,因此public是关键字,而Public则不是关键字。但是为了程序的清晰及可读性,要尽量避免使用关键字的其他形式来命名,防止代码出现意外,也提高代码的可读性。
Java注释
所谓注释,就是对代码的说明和解释,是给人看的,并不会被编译器按照Java语法处理,因此是可以写汉语可以随意写的,但是需要格式约束,那么它支持以下三种:
1. 行注释
以//开头,表示这一行全部为注释,如:
//今天天气很好
public class Main{
public static void main(String[] args) {System.out.println("Hi www.csdn.com");}
}
2. 段注释
以/*开头,以*/结束,在这之间的都会当做注释看待,适合内容较多、多行显示的注释信息,如:
/*
今天天气很好
太阳当空照
花儿对我笑
*/
public class Main{
public static void main(String[] args) {System.out.println("Hi www.csdn.com");}
}
3. 文档注释
以/**打头,以*/结束,不同于段注释,文档注释会将/**和*/之间的内容归档与javadoc中,在生成Html报告中被识别显示出来,用于记录程序信息,通常对类、方法、模块的开头往往使用文档注释,这其中还支持用@标识出各种标签。
/**
Author:Huang
Data:2021/9/25
*/
public class Main{
public static void main(String[] args) {System.out.println("Hi www.csdn.com");}
}
Java常量
与其他语言一样,Java中也有常量的概念,常量顾名思义是恒定不变的值,他不可以被修改。下面我们来了解一下Java中的各种常量。
常量分类
1. 整型
Java的整型常量值主要有如下 3 种形式。
十进制数形式:如156、-32、0。
八进制数形式:Java中的八进制常数的表示以0开头,如015表示十进制数13,-013表示十进制数-11。
十六进制数形式:Java中的十六进制常数的表示以0x或0X开头,如0x100表示十进制数256,-0x16表示十进制数-22。
整型(int)常量默认在内存中占32位,是具有整数类型的值,当运算过程中所需值超过32位长度时,可以把它表示为长整型(long)数值。在一些教材或题目中,有时长整型类型则要在数字后面加L,如235L,表示一个长整型数,它在内存中占64位。
2. 实数
Java的实型常量值主要有如下两种形式。
十进制数形式:由数字和小数点组成,且必须有小数点,如23.4、-110.0。
科学记数法形式:如1.68e10或3&E5,其中e或E之前必须有数字,且e或E之后的数字必须为整数。Java实型常量默认在内存中占64位,是具有双精度型(double)的值。如果考虑需要节省运行的系统资源,而运算时的数据值取值范围并不大且运算精度要求不高的情况,可以把它表示为单精度型(float)的数值。单精度型数值一般要在该常数后面加F或f,如69.7f,表示一个float型实数,它在内存中占32位(取决于系统的版本高低)。
3. 布尔类型
Java中的布尔型常量只有两个值,即true(真)和false(假)。
4. 字符型和字符串常量值
Java的字符型常量值是用单引号引起来的一个字符,如'a'、'A'。需要注意的是,Java字符串常量值中的单引号和双引号不可混用。双引号用来表示字符串,像"123"、"dotcpp"等都是表示单个字符的字符串。
5. 转义字符
除了以上所述形式的字符常量值之外,Java还使用一种特殊形式的字符常量值来表示一些难以用字符显示的字符,这种特殊形式的字符是以\开头的字符序列,称为转义字符。
常见转义字符表如下:
转义字符 | 说明 |
\uxxxx | 1~4 位十六进制数所表示的字 |
\' | 单引号字符 |
\" | 双引号字符 |
\\ | 双斜杠字符 |
\r | 回车 |
\n | 换行 |
\b | 退格 |
\t | 缩进、制表符 |
本节内容理解即可,无需死记硬背,常量的概念理解之后,在后续的编码过程中如赋值、加减乘除计算时候的数值都是常量,随着我们编码量的增大,自然就会对常量有更深的了解,因此大家不必过度担忧。
Java变量的定义和使用
Java语言中的变量必须先定义再使用,定义变量的一般方式为:
类型 变量名;
类型包括int、short、char等等很多,都是固定的(我们将会在下一节进行详细介绍),我们根据实际情况需要选择什么类型,不同的类型表示了变量的占位大小,并且有对应的数据范围。而变量名则是我们用户自己起的名字,可以由我们程序员命名,但为了不引起冲突,这个名字遵循标识符的要求,即:
1)首字符必须是字母、下划线(_)、美元符号($)或者人民币符号(¥)。
2)标识符由数字(0~9)、大写字母(A~Z)、小写字母(a~z)、下划线(_)、美元符号($)、人民币符号(¥)以及所有在十六进制0xc0前的ASCII码组成。
3)不能与关键字、保留字重名。
4)标识符的长度没有限制。
5)标识符区分大小写。
下面我们可以尝试定义一个如整型的变量,如下:
int number;
即整型的变量关键字int空格number,其中number为我们自己起的名字,注意后面要英文分号结束,大家可以亲自上机尝试定义其他变量。
很明显的,如果我们起的变量名叫char,如:
int char;
很明显,这是错误的,因为它与标识符重名了。
变量的赋值与初始化
在Java中,变量的赋值有两种,第一种是在变量定义的时候进行赋值,这种也叫做初始化,第二种是单独一条赋值语句进行赋值,赋值使用赋值运算符(=)进行。
如上面的变量number我们可以如下进行赋值:
int number=2020; //定义的同时进行初始化为2020
也可以:
int number; //仅定义number变量,未赋值,默认为0
number=2021; //单独一条语句进行赋值为2021
请大家分别尝试这两种方式。
另外,Java允许同时定义多个同类型的变量并进行多个变量的初始化操作,如:
int number1=1999,number2=2000,number3=2049;
这种方式也是可以的,大家根据实际情况使用,需要注意变量一定赋值了再使用,不然变量本身的数没有意义,会得不到想要的结果。
希望大家理解的基础上多多练习。