变量概述
变量:
它是在程序中最为基本的一
种单
一
数据的存储方式。顾名思义它代表的就是存储的数据可以改变
(可以改变的量、值)。
变量的组成
变量的数据类型 变量名= 变量值
数据类型
数值类型:
整数类型: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 = "xxx";
int age = 20;
char gender = '男';
double money = 0.01;
boolean isMarry = true;
System.out.println("我的年龄:" + age);
// 声明变量再赋值
String address;
address = "河北邯郸";
// 改变变量的值:对变量再次赋值
age = 19;
// 变量的使用:通过变量名来使用
// 字符串之间通过 + 号进行拼接
// 与字符串使用 + 号拼接的任何内容最终都变为了字符串
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:扫描器,实现在控制台上的输入功能。
1. 导入
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 = 10;
int num2 = 2;
System.out.println(num1 + num2);
System.out.println(num1 - num2);
System.out.println(num1 * num2);
System.out.println(num1 / num2);
System.out.println(num1 % num2);
System.out.println(++num1);
System.out.println(num1);
System.out.println(--num1);
【
前自增和自减或后自增和自减的区别
】
在使用变量时,进行了自增或自减:
++或--
在前,它就先进行自增或自减再使用变量。
++或--
在后,它就先使用变量原来的值然后再自增或自减。
int num1 = 5;
// 1、System.out.println(num1); // 5
// 2、num1 ++;
// System.out.println(num1 ++); // 5
// 1、++ num1;
// 2、System.out.println(num1);
System.out.println(++ num1); // 6
System.out.println(num1); // 6
System.out.println(num1); // 6
【
特殊的 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 num = 10;
num += 2;
System.out.println(num);
int num1 = 10;
num1 -= 2;
System.out.println(num1);
int num2 = 10;
num2 *= 2;
System.out.println(num2);
int num3 = 10;
num3 /= 2;
System.out.println(num3);
int num4 = 10;
num4 %= 2;
System.out.println(num4);
先将符号两侧的值进行相应的算术运算,计算之后再将结果赋值给变量。
关系运算符(比较运算符)
>
>=
<
<=
==
相等
!=
不相等
关系运算符的计算结果是 一 个 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);
有了逻辑运算符,就可以用来去做更为复杂的关系运算。
【
&& 和 &的区别
】
它们两者都可以进行逻辑与运算。
&& 被称为叫短路与,因为只要前面的条件能够得到最终结果(为假),后续的条件就不再执行。短路或也是同理(前面的条件为真)。
int num = 10;
// boolean result = num >= 20 && ++ num < 30;
boolean result = num >= 20 & ++ num < 30;
System.out.println(result);
System.out.println(num);
三元运算符
三元运算符/三目运算符。
三元运算符由三元素(三个部分)组成。
// 条件表达式成立(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