变量
概述:Java通过定义变量来申请数据存储空间,并通过变量名获取或改变存储的值。
变量命名规则:变量名必须遵循标识符命名规则;
首字母必须小写,如果由多个单词组成,从第二个单词开始首字母必须大写;
变量名一般由名词组成。
public static int student = 15 ; //全局变量 可以加 public 或者 static 修饰,但是下面的主函数必须有static
在Java中变量的声明尽可能地靠近变量第一次使用的地方。在Java中不区分变量的声明和定义
放在第一层大括号里,成员变量或者全局变量可以加 public 或static
修饰符或局部变量不能加 public或static
常量
常量有final关键字修饰
常量是值不可变的变量,即不能重新赋值(有别于“值不变”),即使第二次赋值跟第一次的值一样也不行。
常量在声明时必须进行初始化常量定义: [访问控制符] [修饰符] final 数据类型 常量名 = 初始值;
public static final double PI = 3.1415; //常量名大写,多个单词之间 用“_”间隔。
变量和常量的区别
标识符命名区别:
变量:在符合标识符的前提下,首字母小写,之后每个单词的首字母大写;
常量:在符合标识符的前提下,所有字母大写,多个单词之间用下划线间隔;
值是否可以重新改变:
变量:变量的值可以改变;
常量:常量的值初始化以后不允许再次改变,不能二次赋值,就算第二次赋的值跟开始一样也不行;
是否使用final关键字:
变量:一定没有final关键字;
常量:必须使用final关键字修饰;
是否需要初始化:
变量:只有局部变量在使用前必须赋值(不是初始化);
常量:必须在声明的时候初始化;
Java运算符:
赋值运算符: =、+=、-=、*=、/=等等
(声明变量时不允许直接+=、-=、*=、/= )
算术运算符:+、-、*、/、%、++、- -
自增、自减运算符(单目运算符): ++、--。
int abc = 10; int cba = 10; abc++; ++cba;
System.out.println("abc="+abc); 运行结果 abc=11
System.out.println("cba="+cba); cba=11运算符放在变量前面,则先计算再使用;否则先使用再计算 。
int abc = 10; int cba = 10; int edf = abc++; int fed = ++cba;
System.out.println("edf="+edf); 运算结果:edf=10 System.out.println("fed="+fed); fed=11错误程序:
short a=1;
a = a+1; // 1默认为int类型,不能放在short类型里,不兼容
三目运算符
语法如下:<逻辑表达式> ? <表达式1> : <表达式2>
当逻辑表达式为真时,表达式1有效;当逻辑表达式为假时,表达式2有效
不同的形式,越来越简洁:
位运算符:~、&、|、^
“按位与”运算符“&”,规则:全1则1,否则为0
按位或”运算符“|”,规则:全0则0,否则为1。
“按位非”运算符“~”,规则:遇1则0,遇0则1。“按位异或”运算符“^”,规则:相同为0,不同为1
注意:
按位异或运算是可逆的,即如果对某个数据a进行两次相同的异或运算,则结果会还原为a,如对数值3进行两次 和5的异或运算:
3 ^ 5 = 6;
6 ^ 5 = 3;
逻辑运算符:!、&&、||
逻辑运算符(&&、||)与位运算符(&、|)的区别:
逻辑运算符只能针对boolean类型进行逻辑运算,而位运算还可以对数值进行逻辑运算。
逻辑运算符有短路情况,即前面的表达式可以得到最终结果时,后面的表达式将不被执行
关系运算符:>、<、>=、<=、= = 、!=
关系运算符的结果为boolean类型,即返回关系表达式的真或假
移位运算符>>、<<、>>>(无符号右移)
>> 右移运算符:将二进制数据进行右移运算。考虑符号
<< 左移运算符:将二进制数据进行左移运算。考虑符号
>>> 无符号右移运算符:无论正负,都在高位插入0。 不考虑符号
int y=12;
System.out.println(y<<2); 运行结果: 48 System.out.println(y>>>2); 3 System.out.println(y>>2); 3 System.out.println(y>>3); 1
Java表达式
表达式是符合一定语法规则的运算符和操作数的序列。
运算符的优先级从高到低的顺序进行,优先级相同的运算符按照事先约定的结合方向进行,运算符优先级如下: