Java
第二章、数据类型与运算符
一、变量的命名
变量:一个数据存储空间的表示。
变量命名规则:字、下、美$、人¥、数、骆驼
规则
1、变量命名可以使用字母、下划线、美元符号、人民币符 号、数字中的一种或多种,不能使用其他符号。
2、数字不能作为命名的开头,但字母、下划线、美元符号 和人民币符号可以作为开头。
3、不能使用关键字作为变量命名,如public、class等带特 殊颜色的单词。
规范
1、驼峰命名法。变量命名由多个单词组成的,第一个单词 首字母小写,后面其他单词的首字母大写。
2、变量命名要有意义,让人容易辨别出变量的含义。
3、变量命名首字母不要大写。
二、Java中注释
用于在代码中进行说明,不会在程序中输出。
分为单行注释、多行注释、JavaDoc注释。
1、单行注释以"//"开始
如: //输出信息到控制台
2、多行注释以"/*“开头,以” */"结尾,通常写在方法上面
如: /*
HelloWorld.java
2021-4-16
第一个Java程序
*/
3、JavaDoc注释,以"/**“开头,以” */"结尾,通常写在类上 面,结构与多行注释类似。
三、变量声明及使用
Java中的变量就是在程序运行中,其值可以改变的量,它是一个数据存储空间的表示。
Java中变量声明及使用的步骤如下:
第一步:声明变量,根据数据类型在内存申请空间
格式:数据类型 变量名; eg:int money;
第二步:赋值,即“将数据存储至对应的内存空间”
格式:变量名 = 数值; eg: money =100;
第一步与第二步可以合并
格式: 数据类型 变量名 = 数值; eg: int money = 100;
第三步:使用变量,即“取出数据使用”
四、数据类型
Java是强类型语言,在定义变量钱需要声明数据类型。在Java中主要分为两种数据类型:基本数据类型和引用数据类型。
1)基本数据类型
基本类型 | 大小 | 取值 | 取值范围 |
---|---|---|---|
boolean | 1字节8位 | true | true、false |
byte | 1字节8位有符号整数 | -12 | -128~+127 |
short | 2字节16位有符号整数 | 100 | -2的15次方 ~ 2的15次方-1 |
int | 4字节32位有符号整数 | 12 | -2的31次方 ~ 2的31次方-1 |
long | 8字节64位有符号整数 | 10000 | -2的63次方 ~ 2的63次方-1 |
char | 2字节16位Unicode字符 | ‘a’ | 0~65535 |
float | 4字节32位浮点型 | 3.4f | -3.40E+38~+3.40E+38 |
double | 8字节64位浮点型 | -2.4e3D | -1.79E+308~+1.79E+308 |
2)常量
Java中的常量是指在程序运行中值不能改变的量。常量的声明与赋值过程和变量相似,只是在声明变量的前面加上了final关键字,并且常量只能赋值一次,之后不能再对其进行重新赋值。
例如:final double PI = 3.14;
常量命名的规则与变量相同,但是在规范上有些不同:
1、常量名通常大写,而变量名通常小写,用以方便区分。
2、常量名由多个单词组成的,不同字符使用下划线分隔。
如:MAX_NUM
五、数据类型转换
①自动类型转换
当表达式中有一个值为double时,整个结果提升为double
目标类型大于源类型 int==》double(低类型转高类型)
②强制类型转换
double ==》int报错
int num1=10; int x=(int)(2.3+3.1)=》x=5
六、Scanner类的使用
在程序运行中,如果想要在控制台接收用户键盘输入的数据,就可以用到Scanner类。在JDK1.5版本的时候引入了Scanner类,我们在代码中使用Scanner类,可以分为三个步骤:
1、导入Scanner类
import java.util.*;
2、创建Scanner对象
Scanner input = new Scanner(System.in);
3、获得键盘输入的数据
int now = input.nextInt();
根据获取的数据类型不同,Scanner获取数据的方法有以下几种常用方式(可在JAVA帮助文档中查阅Scanner的方法):
String name = input.next();
String sex = input.next();
int age = input.nextInt();
double score = input.nextDouble();
在获取的数据为字符串时,通常用input.next();在获取的数据为其他基本数据类型时,通常用input.next<基本数据类型>(),但Scanner不能获取char类型的数据。
七、常用运算符
1、赋值运算符
赋值运算符”=“用于给变量接收数值。
如:int a = 5;
赋值运算符”=“在表达式中的优先级最低。
2、算数运算符
包括 + 、- 、 * 、/ 、%、++、–
*运算符* | *含义* | *范例* | *结果* |
---|---|---|---|
+ | 加法运算符 | 5+3 | 8 |
- | 减法运算符 | 5-3 | 2 |
* | 乘法运算符 | 5*3 | 15 |
/ | 除法运算符 | 5/3 | 1 |
% | 取余运算符 | 5%3 | 2 |
++ | 自增运算符 | i=3, j = i++ | i=4; j=3 |
i=3, j = ++i | i=4; j=4 | ||
– | 自减运算符 | i=3, j = i– | i=2; j=3 |
i=3, j = --i | i=2; j=2 |
++和–在实际使用中,根据放在数值前面或者后面,结果会有所不同。++或 – 在数值前面时,先对数值进行自增或者自减,再与其他数值进行运算;++ 或 – 在数值后面时,先将数值与其他数值进行运算,再对数值进行自增或者自减。
3、复合算数运算符(复合赋值运算符)
赋值运算符与算术运算符相结合,组成复合赋值运算符。主要包括 += 、 -= 、 *= 、 /= 、%= 。
num1 +=2; 相当于 num1 = num1 + 2;
num1 *=2; 相当于 num1 = num1 * 2;
其他同理。
4、关系运算符
用来比较两个变量或者常量的大小,运算结果时布尔值true 或 false。主要包括 ==、!= 、>、<、>=、<=
*运算符* | *含义* | *范例* | *结果* |
---|---|---|---|
== | 等于 | 5==6 | false |
!= | 不等于 | 5!=6 | true |
> | 大于 | 5>6 | false |
< | 小于 | 5<6 | true |
>= | 大于等于 | 5>=6 | false |
<= | 小于等于 | 5<=6 | true |
要注意的是,”=“为赋值运算符,"=="才是等于关系运算符。
>、<、>=、<= 运算符的优先级别高于==、!=;
>、<、>=、<= 运算符只支持数值类型的数据比较,==、!=支持所有数据类型的比较,包括数值类型、布尔类型、引用类型。
5、逻辑运算符
逻辑运算符用于对两个布尔型操作数进行运算,其结果还是布尔值。主要包括&&、||、&、|、!
*运算符* | *含义* | *运算规则* |
---|---|---|
&& | 短路与 | 两个操作数都是true,结果才是true;左边操作数能确定结果时,不运算右边的操作数 |
|| | 短路或 | 两个操作数其中有一个是true,结果就是true;左边操作数能确定结果时,不运算右边的操作数 |
& | 逻辑与 | 两个操作数都是true,结果才是true;左边操作数能确定结果时,也会运算右边的操作数 |
| | 逻辑或 | 两个操作数其中有一个是true,结果就是true;左边操作数能确定结果时,也会运算右边的操作数 |
! | 非 | 操作数为true,结果为false;操作数为false,结果为true; |
1、&和&&;|和||之间的唯一区别就在于,左边操作数能确定表达式结果的情况下,&&和||不会运算右边的操作数,而&和|则会继续运算右边的操作数。
2、优先级别:! > && >||
6、条件运算符
也称三目(三元)运算符。
条件运算符的语法格式如下:
条件 ? 表达式1 : 表达式2
首先对条件进行判断,如果判断为true,则返回表达式1的值,如果判断为false,则返回表达式2的值。
例如: int min;
min = 5<7 ? 5 : 7; //此时min获得的值为5
min = 10<7 ? 10 : 7; //此时min获得的值为7
八、运算符的优先级
1、单目运算符包括 ! 、++、 – ,优先级别高。
2、优先级别最低的是赋值运算符,其次是条件运算符。
3、()的优先级别最高,可以通过()控制表达式的运算顺序。
4、从右向左结合性的只有赋值运算符、三目运算符和单目运算符。
5、总体而言,优先顺序为算数运算符 > 关系运算符 > 逻辑运算符。