变量概述
变量:
它是在程序中最为基本的一种单一数据的存储方式。顾名思义它代表的就是存储的数据可以改变 (可以改变的量、值)。
变量的组成
变量的数据类型 变量名 = 变量值;
数据类型
数值类型:
- 整数类型: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 + 1num1 ++ ;
【 前自增和自减或后自增和自减的区别 】
在使用变量时,进行了自增或自减:++或--在前,它就先进行自增或自减再使用变量。++或--在后,它就先使用变量原来的值然后再自增或自减。
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 :97A :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 + 2num1 += 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