第二章
变量
一个数据存储空间的表示
通过变量名可以简单快速地找到数据
- 变量命名规则
变量名首字母必须为字母(a-zA-Z),下划线(_),或者美元符号($)开始,并且之间不能包含空格
不能使用关键字,如public、class
另外,变量名不能使用编程语言的保留字 例:String、true,false,while,case,break等
Java常用数据类型
Java是一门强类型的编程语言,它对变量的数据类型有严格的限定。在定义变量时必须声明变量的类型,在为变量赋值时必须赋予和变量同一种类型的值,否则程序会报错。在Java中变量的数据类型分为两种,即基本数据类型和引用数据类型。
8种基本数据类型
- 整数类型变量 (整数类型变量用来存储整数数值,即没有小数部分的值。)
整数类型分为4种不同的类型:
1.字节型(byte)
2.短整型(short)
3.整型(int)
4.长整型(long)
类型名 | 占用空间 |
---|---|
byte | 8位(1个字节) |
short | 16位(2个字节) |
int | 32位(4个字节) |
long | 64位(8个字节) |
- 在为一个long类型的变量赋值时需要注意一点,所赋值的后面要加上一个字母L(或小写L),说明赋值为long类型。
如果赋的值未超出int型的取值范围,则可以省略字母L(或小写L)。
long num=2200000000L; //所赋的值超出了int型的取值范围,后面必须加上字母L
long num=198L; //所赋的值未超出int型的取值范围,后面可以加上字母L
long num=198; //所赋的值未超出int型的取值范围,后面可以省略字母 L
- 浮点数类型变量
浮点数类型变量用来存储小数数值。
在Java中,浮点数类型分为两种:
5.单精度浮点数( float)
6.双精度浮点数( double)
double型所表示的浮点数比 float型更精确
类型名 | 占用空间 |
---|---|
float | 32位(4个字节) |
double | 64位(8个字节) |
- 在Java中,一个小数会被默认为double类型的值
因此在为一个float类型的变量赋值时需要注意一点,所赋值的后面一定要加上字母F(或者小写f),而为 double类型的变量赋值时,可以在所赋值的后面加上字符D(或小写d),也可以不加。
float f=123.4f; //为一个float类型的变量赋值,后面必须加上字母f
double d1=100.1; //为一个doub1e类型的变量赋值,后面可以省略字母d
double d2=199.3d; //为一个doub1e类型的变量赋值,后面可以加上字母d- 字符类型变量
7.字符类型变量(char)
字符类型变量用于存储个单一字符,在java中用char表示。Java中每个char类型的字符变量都会占用2个字节。在给char类型的变量赋值时,需要用一对英文半角格式的单引’’号把字符括起来,如’a’,也可以将char类型的变量赋值为0~65535范围内的整数,计算机会自动将这些整数转化为所对应的字符,如数值97对应的字符为’a’。下面的两行代码可以实现同样的效果
char c=‘a’; //为一个char类型的变量赋值字符a
char ch=97; //为一个char类型的变量赋值整数97,相当于赋值字符a- 布尔类型变量
8.布尔类型变量(boolean)用来存储布尔值,在Java中用boolean表示,该类型的变量只有两个值,即true和 false
具体示例如下:
boolean flag=false; //声明一个boo1ean类型的变量,初始值为false- 引用数据类型
String
Scanner的使用
- 在程序运行中,如何接收用户键盘输入的值?
使用Scanner
第一步:导入Scanner类
import java.util.*;
第二步:创建Scanner对象
Scanner input = new Scanner(System.in);
第三步:获得键盘输入的数据
int now = input.nextInt();
###自动类型转换
- 规则1:如果一个操作数为double型,则整个表达式可提升为double型
- 规则2:满足自动类型转换的条件
两种类型要兼容
数值类型(整型和浮点型)互相兼容
目标类型大于源类型:
例如:double 型大于 int 型- 强制类型转换规则
int b = (int)10.2;
double a = 10;
int c = (int)a;
赋值运算符
变量名 = 表达式;
算数运算符
- 基本的算术运算
+、-、*、/、%、++、–- 复合算术运算符
+=、-=、*=、/=、%=
运算符 | 含义 | 范例 | 结果 |
---|---|---|---|
== | 等于 | 5==6 | false |
!= | 不等于 | 5!=6 | true |
> | 大于 | 5>6 | false |
< | 小于 | 5<6 | true |
<= | 小于等于 | 5<=6 | true |
>= | 大于等于 | 5>=6 | false |
- =为赋值运算符,==为等于运算符
- 关系表达式的结果为布尔值
>、<、>=、<= 运算符的优先级别高于==、!=
>、<、>=、<=运算符只支持数值类型的数据比较
逻辑运算符
运算符 | 含义 | 运算规则 |
---|---|---|
&& | 短路与 | 两个操作数都是true,结果才是true |
|| | 短路或 | 两个操作数一个是true,结果就是true |
! | 非 | 操作数为false,结果为true、操作数为true,结果为false |
- &&与& 的区别&&如果前一个表达式判断为false,将不再向后进行判断形成一个短路
- 如果第一个操作数已经能确定表达式的值,第二个操作数就不必计算了;
优先级别 ! > && > ||
条件运算符(也称为三目(三元)运算符)
- 条件 ? 表达式1 : 表达式2
如果条件判断为true则选择表达1,为false则选择表达式2