了解什么是变量 为什么需要它
计算机中的内存分类:
RAM:运行时存储 我们的计算机程序 在运行的时候 数据就会临时存储在RAM中。
如果不持久化,或者突然断电,它的数据就丢失了。
ROM:只读存储(持久化存储) 文件存储 如:磁盘
我们在说电脑多大内存的时候 指的是运行内存RAM
public static void main(String[] args){
System.out.println("姓名:张三")
} 这种的就属于临时存储 RAM
public static void main(String[] args){
String name="张三"
System.out.println("姓名:"+name)
} 这种的就属于ROM
变量(可以改变的量):Java程序在运行过程中,会将数据以圈占地盘的形式存储起来。
因为如果真正要寻找变量,如果依靠内存地址,非常的繁琐(0x1212x12),于是我们就将变量起了个名。(变量名)
类比:我们去酒店开房,酒店前台不会以“三楼左转走100米,再右转50米的尽头的房间的隔壁房间”,所以你看到酒店前台都是以客房号来称呼你,“302的客人”。
变量的三要素:
变量名 — 酒店的房间名
变量值 — 酒店房间入住的客人
变量的数据类型 — 酒店房间的类型
1. 掌握标识符和关键字
java不能以数字 关键字 ¥ %开头· const是(java中的保留字)关键字
变量三要素:变量名的命名规范:
-
Java中的变量名必须且只能是由
数字、字母、下划线和$组成,而且数字不能开头
。 -
见名知义(a=1000; money=1000; b=支付宝; name=支付宝;)
-
采用小驼峰命名法
thelengthofknife -> theLengthOfKnife
首字母小写,如果有多个单词,后面的每个单词,首字母都要大写。
-
或者可以采用连字符命名法
the_length_of_knife
-
不能使用关键字(Java语言中 为了表示特定的含义 而使用的单词 在IDE中会变色)
也最好不要使用保留字。 goto var … 保留字 指的就是在Java语言还没有指定含义的单词 但是这些单词未来可能有特殊的含义。
2. 掌握变量和常量的使用
变量的使用:
1.先声明再赋值
数据类型 变量名;
变量名 = 变量值;
2.声明的同时并赋值
数据类型 变量名 = 变量值;
**常量:**因为在程序运行中,有些内容不希望被重新赋值,它的值是固定的。
被final修饰的变量
常量的命名规范:
每个字母都大写 如果有多个单词 单词之间以_连接。
**举例:**PI 、 CURRENT_PAGE_NO
如在Java代码中:final double pi = 3.14;
3. 掌握Java中的数据类型
在 Java 中,如果定义一个变量,整数数据默认为 int 类型,小数数据默认为 double 类型。
变量三要素-数据类型:
数值:
整型:byte short int
long (取值范围越来越大)
非整型 :float double
(取值范围越来越大)
非数值:
字符:char 例如:‘男’ ‘f’
字符串:String
例如:“xxxxxx”
布尔类型:boolean 例如:true
真 false
假
大小
byte short int long float double
1字节 2字节 4字节 8字节 4字节 8字节
8位 16位 32位 64位 32位 64位
按照基本数据类型和引用数据类型划分:
**基本数据类型:**byte short int long float double char boolean
**引用数据类型(难点):**类(String是一个类)、数组、集合、接口、枚举
类型转换
4. 掌握数据类型转换
IDE使用技巧:
- 重命名:F2(可能还需要按住fn) / 右键你要更改的内容 -> refactor -> rename
5. 掌握Scanner的使用
Scanner类 Java提供给我们 用作于控制台输入内容的
-
导入Scanner 这个导包的代码放在类声明上包声明下。
import java.util.Scanner;
-
创建Scanner对象
Scanner input = new Scanner(System.in);
-
使用
输入字符串:
input.next();
输入整数:
input.nextInt();
输入小数:
input.nextDouble();
6. 运算符
赋值运算符
=号不再表示相等 表示赋值
Math.random会在下一节中讲到
算数运算符
+ - * /
% 取余
++ –
++表示自增
–表示自减
前++和后++的区别:
如果正常使用单独作为一条语句++num1;
,那么前++和后++都是一个意思。
但是如果是参与到与其他元素的使用,它是根据++的顺序有不同的变化。
这个时候的前++表示先自增再使用,后++表示先使用再自增。
char类型的数据注意:
如果执行++或-- 则是先将char类型转换为整数类型,然后计算完之后再将其转换为char类型
ASCII表 大写A 65 ;a 97
代码块1:
代码块2:
关系运算符
== 表示相等
!= 表示不相等
逻辑运算符
&&和单个&的区别:
短路与和单个&都表示并且,必须多个条件同时为true结果为true。
但是单个&,无论你是否能够通过第一个条件得到最终结果,都会计算后面的表达式。
而短路&它如果可以通过第一个条件得到最终结果的话,后面的就不需要计算了。
单个&还可以表示位与运算。
条件运算符(三元/三目运算符)
条件表达式 ? 为true时的结果 : 为false时的结果;
// 需求:如果你有钱就是大爷 没钱滚
int money = 1;
System.out.println(money > 0 ? "大爷欢迎来玩~" : "没钱还来潇洒!滚远远的~");
关于优先级:()提升优先级
复合赋值运算符
•+=
•-=
•*=
•/=
•%=
int num1 = 10;
num1 -= 2; // 等价于 num1 = num1 - 2;
System.out.println(num1); // 结果为8