变量概述
变量:
它是在程序中最为基本的一种单一数据的存储方式。顾名思义它代表的就是存储的数据可以改变 (可以改变的量、值)。
变量的组成
变量的数据类型 变量名 = 变量值;
数据类型
数值类型:
-
整数类型:1 、2 、3 、0 、-1 ...
- byte:1字节,-128 ~ 127
- short:2字节,...
-
int :4字节,... 在 Java 中定义一个整数,默认的数据类型就是 int
- long:8字节,...
-
浮点类型:3.14 、1.9 、0.01 ...
- float:4字节,...
-
double :8字节,... 在 Java 中定义一个整数,默认的数据类型就是 double
非数值类型:
-
布尔类型:
-
boolean :true(真)、false(假)
-
字符类型:
-
char, 'a' 、 '1' 、 '男' .... 使用单引号引起来的 1 个字符
-
字符串类型(字符串类型):(注: 这是一个特殊的类型,和其他类型不同!后期会介绍,先了 解,先会用)
-
String, "abc" 、 "小孙" 、 "男" .... 使用双引号引起来的字符
变量名(程序员最头疼的问题之一)
代码不仅仅是给机器看的,更应该是给人看的。
Java 中变量命名的规范:
1.(语法要求)可以使用数字、字母、下划线(
_
)、美元符号(
$
)组成,其中数字不能开头
2. (语法要求)不能使用关键字和保留字
例如:public、class、static、void、byte ...
- 关键字/词:在语言中已经被赋予了特殊含义的单词
-
保留字/词:在语言中目前还没被赋予特殊含义,但未来极大可能有特殊含义的单词
3. (规范要求)见名知义
- 正例:存储姓名:name、存储年龄:age、存储地址:address
- 反例:存储姓名:a、存储年龄:b ...
4. (规范要求)不要将拼音和英文混合(拼音和英文、汉字等...)
- 反例:存储我的姓名:myXingMing
- 也可以考虑使用拼音,但是不是太推荐。
5. (规范要求)多个单词的变量命名
stuname -> stuName
驼峰命名法(小驼峰命名法):首字母小写,多个单词的情况下,后面的每个单词首字母大
写。
例如:stuName
帕斯卡命名法(大驼峰命名法):每个单词的首字母大写,它适合用于类名。例如: HelloWorld
stuname -> stu_name
变量的定义(重点)
声明变量的同时并赋值
变量数据类型 变量名
=
变量值
;
// 先声明变量再进行赋值
变量数据类型 变量名
;
变量名
=
变量值
;
// ...其他了解,不推荐
// 声明变量并赋值
String
name
=
"小孙"
;
int
age
= 18
;
char
gender
=
'女'
;
double
money
= 0.01
;
boolean
isMarry
=
true
;
System
.
out
.
println
(
name
);
System
.
out
.
println
(
age
);
// 声明变量再赋值
String
address
;
address
=
"北礼士路100号"
;
// 改变变量的值:对变量再次赋值
name
=
"小李"
;
age
= 10
;
// 变量的使用:通过变量名来使用
// 字符串之间通过 + 号进行拼接
System
.
out
.
println
(
"我的名字: "
+
name
);
// 与字符串使用 + 号拼接的任何内容最终都变为了字符串
System
.
out
.
println
(
"我的年龄:"
+
age
+
"岁"
);
System
.
out
.
println
(
"我的性别:"
+
gender
);
System
.
out
.
println
(
money
);
System
.
out
.
println
(
isMarry
);
System
.
out
.
println
(
address
);
人机交互(键盘录入,输入语句)
Scanner:扫描器,实现在控制台上的输入功能。
- 导入
import java.util.Scanner;(在类声明的上方导入)
2.创建对象(创建实例)
Scanner input = new Scanner(System.in);
3.使用(使用Scanner提供的方法)
- 输入整数:nextInt()
- 输入浮点数:nextDouble()
- 输入字符串:next()
- ...
常量
在定义变量时,如果有一些数据不需要被二次更改,可以定义为常量。
final:最终的
final
常量数据类型 常量名
=
常量值
;
常量的命名规范:为了区分变量和常量,常量名要求所有字母都大写,多个单词的情况下使用下划线连接。
例如:MY_NAME
常见的运算符
赋值运算符
// 将 张三 赋值给了 name 变量
String
name
=
"张三"
;
name
=
"李四"
;
注意:在 Java 语言中, = 不再是数学中相等的概念而是赋值的概念。
算术运算符
- +
- -
- *
- /
-
% 取模,前期先理解为取余数
-
++ 自增1,可以理解为先做自增再做赋值
- 自减1
int
num1
= 2
;
// num1 = num1 + 1
num1
++
;
【 前自增和自减或后自增和自减的区别 】
在使用变量时,进行了自增或自减:
++或--在前,它就先进行自增或自减再使用变量。
++或--在后,它就先使用变量原来的值然后再自增或自减。
int num1 = 5;
System.out.println(num1); // 5
num1 ++;
System.out.println(num1 ++); // 6 输出完后,num1 = 7;
int num2 = 5;
++ num2;
System.out.println(num2); // 6
System.out.println(++ num2); // 7
System.out.println(num2); // 7
【 特殊的 char 】
ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码。
需要记住的两个标准是:
a :97
A :65
char alpha = 'a';
// 先将alpha转换为数值进行计算,然后再赋值给char类型的变量,98对应的是字符b
// alpha = alpha + 1 -> alpha = 97 + 1 -> alpha = 98
// alpha ++;
// System.out.println(alpha); // b
// 当char类型要进行算术计算,会先转换为相应的ASCII码表数值,然后再计算
// 97 + 1 System.out.println(alpha + 1); // 98
复合赋值运算符
int
num1
= 10
;
// num1 = num1 + 2
num1
+= 2
;
System
.
out
.
println
(
num1
);
// 12
先将符号两侧的值进行相应的算术运算,计算之后再将结果赋值给变量。
关系运算符(比较运算符)
关系运算符的计算结果是一个 boolean 值,只有 true 或 false。
逻辑运算符
-
&& 与,理解为 并且 ,所有参与逻辑运算的条件都为真,结果才为真(只要有一个为假,结果为假) 按住 shift + 7,单个 & 符号
- || 或,理解为 或者,所有参与逻辑运算的条件,只要有一个为真,结果为真 按住 shift + \,单个 | 符号
-
! 非,理解为 取反,真会变为假,假会变为真
// 5 <= a <= 10
int num = 6;
// boolean result = 5 <= num <= 10;
boolean result = (num >= 5 && num <= 10);
System.out.println(result);
有了逻辑运算符,就可以用来去做更为复杂的关系运算。
三元运算符
三元运算符/三目运算符。
三元运算符由三元素(三个部分)组成。
// 条件表达式成立(true)执行表达式1,不成立(false)执行表达式2
条件表达式
?
表达式1
:
表达式2
;
它的结果是由表达式决定的。例如:表达式1和表达式2是字符串,结果就是字符串类型;如果是int,结果就是int类型。
表达式1和表达式2它两个必须是相同数据类型的。
double bmi = 22;
String result = bmi > 25 ? "您已经超重" : "您没有超重";
System.out.println(result);
数据类型转换
自动类型转换:
在数值类型中,取值范围小的数据类型可以
自动
类型转换为取值范围大的数据类型。
强制类型转换:
在数值类型中,取值范围大的数据类型,如果要转换为取值范围小的数据类型,需要做强制类型转换。强制类型转换的时候会损失数据的精度。
// 自动类型转换
// 1:int a = 10;
// 2:double num = a;
double num = 10;
System.out.println(num); // 10.0
// 强制类型转换
int num2 = (int) 10.5;
System.out.println(num2); // 10 (取整,砍掉小数位)
// 自动类型转换
int num3 = 'a';
System.out.println(num3); // 97
int num4 = 99;
char alpha = (char) num4;
System.out.println(alpha); // c