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 >>=,<<=,&=... 位赋值运算
  • 拓展

    Math:数学工具类

posted @ 2021-04-14 18:45  C_Long  阅读(100)  评论(0)    收藏  举报