tags :
- java基础
flag: blue
@toc
Java Day03 变量和运算符
一、命名规范 标识符
以下参考规范 AJCG (阿里巴巴技术团队规范)
- 标识符能够使用的字符范围要求:
- 标识符只能使用数字(0 ~ 9) 字母(A ~ Z a ~ z) 唯一可以使用的标点符号下划线(_)
- 要求标识符必须用字母开头
- 在标识符中严格区分大小写
- 标识符没有严格的长度限制
- 标识符要做到 见名知意 动宾结构
a b c d
imgTitle
imgbanner
imgGoods
imgLogo
studentInfo ageOfWorker getPingjiaByName
iPhone iPad iTouch iPod iWatch iTV iTunes - Java内部已经被征用的关键字不能用来做标识符
public static void
int long double
【规范】
-
a)小驼峰命名法
首字母小写,其他单词的首字母大写
iPhone iPad
使用范围:变量名 和 函数名 -
b) 大驼峰命名法
所有单词的首字母全部大写
Dog Cat ContactSystem
使用范围:class之后的名字要使用大驼峰命名法
c)**************************************
d)**************************************
变量【重点】
天气 气温 年龄 身高 体重 时间
未知数
方程
x + y = 10;
x + 2y = 30;
y = 5;
x = 20;
变量
-
变量的定义:
变量就是在Java程序中可以运行时可以发生改变的量
例如:二元一次方程,x 和 y 是未知数/变量 但是我们需要一个【容器】或者说【名字】来保存这个数据
这里 x 和 y 就起到这样的作用 -
容器具有的特征:
- 现实中容器 例如: 水杯,箱子,书包
在计算机当中,所谓的总容器就是硬盘,对于正在运行的程序,总容器是内存
变量会占用一定的【内存】空间,跟数据类型有关 - 存放的数据有一定的数据格式要求, Java的数据类型
10101010010101010101010010101
.exe .doc .txt .java - 这个【容器】会有一个特定的名字
- 现实中容器 例如: 水杯,箱子,书包
常量中存在的数据类型:整型, 小数, 真假关系,字符, 字符串(类型特殊,暂不考虑)
整型 | 占用空间大小 | 数据范围 |
---|---|---|
byte | 1字节(8bit) | -128 ~ 127 |
short | 2字节(16bit) | -32768 ~ 32767 |
int | 4字节(32bit) | 2^32 - 1 |
long | 8字节(64bit) | 2^64 - 1 |
浮点型 | 占用空间大小 | 数据范围 |
---|---|---|
float | 4字节(32bit) | -3.4 * 10^38 ~ 3.4 * 10^38 |
double | 8字节(64bit) | 10 ^ 308 |
字符型 | 占用空间大小 | 数据范围 |
---|---|---|
char | 2字节 | 在GBK编码中可以保存中文 |
布尔型 | 占用空间大小 | 数据范围 |
---|---|---|
boolean | 因环境而异 | true false |
- 任何定义(声明)一个变量方式:
数据类型 变量名 = 数据;
注意事项:
a)在Java当中一个变量在没有赋值的情况下,是不能被使用的
b)在计算机中,原则是保证数据的完整性,不考虑所占内存空间问题。那么浮点型(小数)系统默认为double类型,保证数据的精度,完整性。但是要给float类型赋值的时候,如果不加修饰,赋值会报错,所以要求给float类型赋值的浮点类型数据必须加上f或者F修饰
例如:
float floatNumber = 3.14f;
float floatNumber = 0.618F;
c)字符变量是可以赋值一个字母,一个转义字符甚至于一个数字但是数字范围要求在ASCII码范围以内
转义字符之后可以使用八进制数,一个特殊的字符\0 这是ASCII码表里面第一个字符,是字符的"0"值
d) = 赋值
算术运算符
+ - × ÷ ()
先乘除后加减
先算括号里面的后算括号外面的
除数不能为0
7 ÷ 3 = 2 …… 1
在代码中算术运算符是什么样子?
+ - * / () %
= 赋值 把赋值号右侧的数据赋值给左侧的【变量】
在操作算术运算的时候,如果一个变量或者一个数据,没有被赋值号赋值的情况下,是不会发生任何的改变
2。优先级问题:只要记住最高的优先级是() 简单粗暴加括号
+= -= /= *= %=
例如:
num1 = num1 + num2;
num1 += num2;
自增自减运算符
这些运算符是提供给【变量】使用
++:自增操作,相当于当前变量 += 1
优先级问题:如果++ 运算符在变量之后,先执行该行语句,再来执行++自增操作,如果在变量之前,先
执行自增操作,再来执行改行语句的运行
–:自减操作,性对于当前变量 -= 1
自减的优先级同上
-
[建议]
在代码中使用自增自减运算符,一般都是单独成行,避免没必要的歧义 -
示例:面试题: Java中不支持
int num = 5;
++(num++) 6 7
7 7
语法错误- 解释:
按照语法,首先执行num++ 结果是一个6,是一个常量,这个常量就是小括号表示的数值,也是一个常量。在这里括号里面的内容会被认为是一个常量6 来处理在++ 或者 – 中不能操作任何的【常量】
- 解释:
关系运算符
< > = ≥ ≤ ≠
手写的关系运算符
< > == <= >= !=
代码中支持关系运算符
关系运算符的结果是什么???
boolean true false
5 > 2 true
2 > 3 false
逻辑运算符
与:金库,需要两个人拿两把钥匙,同时在场才可以打开,缺一不可
&& 同真为真,有假为假
或:自个家,不管是谁带钥匙,都开打开门,但是如果都没有带,GG
|| 有真为真,同假为假
非:犟 取反
! 真变假来假变真
【拓展】
true 0000 0001 => 1
false 0000 0000 => 0
在计算机世界中,默认的真假关系是 1 和 0, 而Java不支持这样方式,采用的是true和false来代表
在计算机世界中,非0即真
while (true) 死循环 Java支持
while (1) 死循环 其他语言支持的 C/OC/C++/JavaScript
面试题: (不针对Java)
请解释以下内容的含义,用通俗的代码来表示
前提:n是一个int类型的变量
!n的含义
n = 1; !n = false;
n = 0; !n = true;
n = 2; !n = false; //非 0 即 真
!n的含义是 判断当前n的值是否等于0 ,换一种方式表示如下
n == 0;
分支结构
代码中有三大结构:
顺序结构,分支结构和循环结构
if (判断语句 true/false) {
//语句体
}
运行流程:
当程序运行到if语句,首先判断if 之后的括号里面的内容是否为true,如果为true执行语句体,如果为false,
直接执行大括号之后的语句
if (判断语句 true/false) {
//true 语句体
} else {
//false 语句体
}
运行流程:
当程序运行到if-else语句,首先判断if之后的括号里面的内容是否为true,如果为true执行true 语句体,
如果为false 执行false语句体
if () {
} else if () {
} else {
}
switch - case: