java基础03-常量变量,运算符
1. 声明变量
变量饿使用是程序谁中一个十分重要的环;。定义变量就是要告诉编译器(compiler)这个变量的数据类型,这样编译器才知道需要配置多少空间给它,以及它能够存储怎样的数据。
int age;
char char1 = 'Y';
2. 声明常量
在程序运行过程中一直不会改变的量称为常量(constant),通常也称为 “final 变量”。常量在整个程序中通常只能被赋值一次。在为所有的对象共享值时,常量时非常有用的。
final 数据类型 常量名称[=值];
final double p1 = 3.1415926;
final boolean b1 = true;
3. 变量的有效范围
由于变量被定义出来后只是暂存在内存中,等到程序执行到某一个点,该变量会被释放掉,也就是说变量有它的生命周期。
按照变量的有效范围将变量分为成员变量和局部变量。
成员变量
在类体中定义的变量被称为成员变量,成员变量在整个类中都有效。类的成员变量又可以分为静态变量和实例变量。
class var {
int x = 45;
static int y = 90;
}
其中,x为实例变量,y为静态变量(也成类变量)。如果再成员变量的类型前面加上关键字static,这样的成员变量称为静态变量。静态变量的有效范围可以跨类,甚至可直达到整个应用程序之内。静态变量可以通过“类名.静态变量”的方式在其他类内使用。
局部变量
在类的方体中定义的变量称为局部变量(方法内部定义,"{" 与 "}"之间的代码中声明的变量)变量只在当前代码块中有效。
在类的方法中声明的变量,包括方法的参数,都属于局部变量。局部变量的生命周期取决于方法,当单发被调用时,Java 虚拟机为方法中的局部变量分配内存空间,当该方法的调用结束后,则会释放方法中局部变量占用的内存空间,局部变量也将会销毁。
public class val{
static int times = 3;//定义成员变量
public static void main(String[] args){
int times = 4;//定义局部变量
System.out.println("Times 的值为:"+times);
}
}
运算符
1.算数运算符
假设整数类型变量A的值为:10,变量B的值为:20,则
| 运算符 | 描述 | 示例 |
|---|---|---|
+ |
加 | A + B结果为:30 |
- |
减 | A - B结果为:-10 |
* |
乘 | A * B结果为:200 |
/ |
除 | B / A结果为:2 |
% |
求余 | B / A结果为:0 |
++ |
自增1 |
A++,则A的值为:11 |
-- |
自检1 |
A--,则A的值为:9 |
注:
int a =3;
int count = (a++)+(a++)+(a++);
System.out.println(a); // i=6
System.out.println(count); // count=3+4+5=12
int b =3;
int count1 = (++b)+(++b)+(++b);
System.out.println(b); // i=6
System.out.println(count1); // count1=4+5+6=15
前置++(++i):先给值自增1,然后再参与运算(先赋值再使用); 后置++(i++):先参与运算,然后再给值自增1(先使用再赋值)。
2. 关系运算符
假设变量
A的值是10,变量B的值是20,则
| 运算符 | 描述 | 结果 |
|---|---|---|
== |
比较左方是否等于右方 | false |
!= |
比较左方是否不等于右方 | true |
> |
比较左方是否大于右方 | false |
< |
比较左方是否小于右方 | true |
>= |
比较左方是否大于等于右方 | false |
<= |
比较左方是否小于等于右方 | true |
3. 逻辑运算符
假设布尔变量
A的值为:true,变量B的值为:false,则
| 运算符 | 描述 | 示例 |
|---|---|---|
&& |
两个操作数都为真,条件才为真 | (A && B)结果为:false |
| ΙΙ | 两个操作数任何一个为真,条件为真 | (A II B)结果为:true |
! |
翻转操作数逻辑状态,如果为真则返回假false。 |
!B结果为:true |
注: 逻辑运算符操作的必须是boolean型数据。 除了"!" 是一元运算符外,其他都是二元运算符
4. 按位运算符
下面的表中列出了按位运算符,假设整数变量
A=60,变量B=13,那么
| 运算符 | 描述 | 示例 |
|---|---|---|
& |
二进制AND运算符,如果存在于两个操作数中,则它会将结果复制到结果中。 | A & B的结果为:12,也就是:0000 1100 |
| Ι | 二进制OR运算符,如果存在于任一操作数中,则复制一位。 | A Ι B 的结果为:61,也就是:0011 1101 |
^ |
二进制异或运算符,如果在一个操作数中设置但不在两个操作数中设置,则复制该位。 | A ^ B的结果为:49,也就是:0011 0001 |
~ |
二元一元补充运算符是一元的,具有“翻转”位的效果。 | ~A的结果为:-61,也就是:1100 0011 |
<< |
二进制左移运算符,左操作数值向左移动右操作数指定的位数。 | A << 2的结果为:240,也就是:1111 0000 |
>> |
二进制右移运算符,左操作数值向右移动右操作数指定的位数。 | A >> 2的结果为:15,也就是:1111 |
>>> |
右移零填充运算符。 左操作数值向右移动右操作数指定的位数,移位值用零填充。 | A >>>2的结果为:15,也就是:0000 1111 |
5. 三元运算符
格式:表达式 ? 值1 : 值2 (如果表达式==true,则结果为值1,否则结果为值2)
int score = 70;
String type = score < 60 ? "不及格":"及格";
System.out.println(type); // 及格
6. 运算符优先级
| 级别 | 运算符 | 描述 |
|---|---|---|
| 最高级 | () | 有括号先算括号,括号里有括号先算里面的括号 |
| 1 | ++,-- | 自增,自减 |
| 2 | *,/,% | 乘除,取余 |
| 3 | +,- | 加减 |
| 4 | <<,>>,>>> | 位运算 |
| 5 | <,>,<=,>= | 大小判断 |
| 6 | ==,!= | 是否相等 |
| 7 | & | 按位与 |
| 8 | ^ | 按位异或 |
| 9 | | | 按位或 |
| 10 | && | 逻辑与 |
| 11 | || | 逻辑或 |
| 12 | bool? true:false | 三元运算符,条件判断 |
| 13 | =,+=,-+,*=... | 赋值运算 |
| 14 | >>=,<<=,&=... | 位赋值运算 |
-
拓展

浙公网安备 33010602011771号