变量和常量
1. 程序从安装到运行的原理
1.1 计算机核心硬件介绍
- CPU
- 中央处理器,计算机的核心。
- 用来处理/计算数据。
- RAM(内存)
- 用来临时存储数据的
- 程序在运行的时候,就是内存中进行数据处理
- 速度快,空间小,价格高
- ROM(硬盘/磁盘…)
- 用来持久性存储数据的
- 程序在安装完成后,或者运行结束后应该将数据持久化到ROM
- 速度慢(IO),空间大,价格低
1.2 程序安装的原理
将程序文件存储到 ROM 上。
1.3 程序运行的原理
CPU 将 ROM 上的 QQ的程序数据复制到 RAM 中, QQ 在RAM中会占据一块属于它的内存空间。
有一些数据为了能够在程序内存中方便使用,会将它们定义为变量。
变量就是某些数据在对应程序内存中的一块空间表示。
2. 变量
2.1 概述
变量是能表示可变状态、并且具有存储空间的抽象概念。
2.2 变量组成
- 变量的数据类型
- 变量名
- 变量值
2.2.1 数据类型
按照数值和非数值划分:(8种基本数据类型)
- 数值
- 整数:byte、short、int、long
- 10、20、1、 -5
- 浮点数:float、double
- 10.5、3.14
- 整数:byte、short、int、long
- 非数值
- 布尔型:boolean
- true(真)、false(假)
- 字符型:char(只要被单引号包裹,里面只能出现一个内容)
'a'
、'你'
、'1'
、'男'
- 一种特殊的类型,字符串类型 String(被双引号包裹,里面可以出现任何值)
"查老师真好"
、"邢老师真好"
、"查老师的学生真好"
、"1"
- 它是引用数据类型的一种,不是基本数据类型,比较特别!!!
- 布尔型:boolean
Java中将int和double分别作为整数和小数的默认类型,意味着你在Java中写了一个10,Java会将它存储为int类型。
主要原因是,这两个类型的取值范围,已经能够满足我们绝大多数的使用场景。
2.2.2 变量名
变量名可以说是未来使用变量的关键,所以它也有一定命名规范。
-
变量名可以由字母、数字、下划线、美元符号组成,但是数字不能开头。
- 正例:name、name1
- 反例:1name、xx%x
-
变量名不能使用关键字、保留字
- 关键字:它们是Java中赋予了特殊含义的单词,例如:public、class
- 保留字:它们是目前Java还没用,但是未来很有可能应用的,例如:goto、var(已经变为关键字)
- 建议:命名时建议不要采用单个词汇,或者使用敏感词汇。 stuName
-
变量名应该见名知意(为了能够区分对应变量存储数据的含义)
- 正例:存储名字,则命名为 name、mingZi
- 反例:存储名字,命名为了 a
-
变量名应该遵循驼峰命名法(为了区分多个单词)
- 小驼峰:首字母小写,如果有多个单词,后面的每个单词首字母大写
- 正例:存储用户密码,userPassword
- 反例:userpassword
- 大驼峰(帕斯卡命名法):每个单词的首字母都大写
- 它用于类名 HelloWorld
- 小驼峰:首字母小写,如果有多个单词,后面的每个单词首字母大写
-
变量名可以遵循下划线连接法(蛇形命名法)
单词都小写,多个单词之间使用下划线连接。
- 正例:存储用户密码,user_password
-
不要将拼音和英文混合
- 反例:学生姓名,xueshengName
2.3 变量的使用
常见的定义方式,有两种:
-
先声明变量,再赋值
// 数据类型 变量名; String name; // 赋值 // 变量名 = 变量值; name = "小明";
-
声明变量的同时,赋值
// 数据类型 变量名 = 变量值; String name = "小红";
其实还有别的定义方式,例如:String name1,name2,name3 = “小明”;
在定义完变量之后,可以用于输出、计算等行为。
// 将数据存储到变量中
// 存储姓名
String name;
name = "野猪佩奇";
// 存储年龄
int age = 2;
// System.out.println(name);
// System.out.println(age);
// System.out.println("我的名字是:name");
// System.out.println("我的年龄是:age");
// 拼接
// 拼接为什么使用 + 号?
// println是在输出一个字符串内容,但是现在我们想输出的内容不仅仅是字符串,还需要加上一个不确定类型的变量。
// 其他类型数据(包含字符串类型)如果要和字符串拼接在一起,需要 + 号,拼接完的结果会变为一个整体字符串
System.out.println("我的名字是:" + name);
System.out.println("我的年龄是:" + age);
System.out.println("我的名字是:" + name + ",我的年龄是:" + age);
3. 常量
在Java中,其值不能改变的变量被称为常量。常量被final修饰,被final修饰则无法二次修改值。
π:3.14 pi
final:最终
// 计算圆的面积 π * r * r
// 圆的半径为 2
// 定义变量存储半径
double r = 2;
// 定义变量存储π
final double pi = 3.14;
// 不小心改动了该值(重新赋值)
// pi = 3;
// 计算结果并存储到变量
double area = pi * r * r;
System.out.println("圆的面积为:" + area);
常量的命名规范:
- 所有单词的字母都大写,如果有多个单词,用下划线连接
- 正例:PI、USER_PASSWORD
4. 程序交互
Scanner 使用。
Scanner 是Java中提供的一个扫描器,它可以帮助我们扫描控制台输入的内容,并将其转换为你想要的类型值。
-
导入Scanner
在你想使用Scanner的类中,添加一行导入代码
import java.util.Scanner;
package demo4; import java.util.Scanner; // 加在类声明和包声明之间 public class Demo1 { public static void main(String[] args) { } }
-
创建Scanner对象
// 创建对象,名字是自定义的,常见名:scan、input Scanner scan = new Scanner(System.in);
-
使用它的API(功能)
// 想输入年龄 int age = scan.nextInt(); // 想输入余额 double money = scan.nextDouble(); // 想输入姓名 String name = scan.next();
可以添加一些输出语句来辅助输入。
// 想输入年龄 System.out.print("请输入您的年龄:"); int age = scan.nextInt(); // 想输入余额 System.out.print("请输入您的余额:"); double money = scan.nextDouble(); // 想输入姓名 System.out.print("请输入您的姓名:"); String name = scan.next();