Java变量 常量 以及运算符详细笔记2022.4.10

本文介绍了Java中的变量和常量,包括变量的声明、类型、作用域,以及常量的定义和使用。详细讲解了类变量、实例变量和局部变量的区别,并展示了它们在实际代码中的应用。此外,还探讨了运算符的用法,如算术、关系、逻辑和位运算符,并通过实例解释了自增自减运算符、Math类的使用以及逻辑运算符的短路效果。最后,简要提及了位运算符的左移和右移操作。
摘要由CSDN通过智能技术生成

二、变量、常量

1.变量:简而言之,就是可以变化的量!

在Java中每个变量都必须声明其类型,Java中的变量是程序中最基本的存储单元,其要素包括(变量名、变量类型、以及作用域)。

注意事项:

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
  • 变量名必须是合法的标识符。
  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束

变量作用域:分为三种类变量、实例变量、局部变量。如:

public class Demo4 {
  
    // 类变量也叫全局变量   // 在类型前面必须要加static关键字
    static int i1 = 100000;
    // 属性变量
    // 实例变量;从属于对象 如果不自行初始化,这个类型的默认值 0  null
    String name;
    int age;
    // main方法
    public static void main(String[] args) {
        // 局部变量,必须声明和初始化值  只能在此方法中使用
        int i = 100;
        System.out.println(i);
        Demo4 demo4 = new Demo4();     // 实例化对象
        System.out.println(demo4.age);
        System.out.println(demo4.name);
        System.out.println(i1);   // 这里的i1输出的是类变量
    }
  输出:
    	100
		0
		null
		100000

可以明显看出三中变量的用法,注意的是类变量在声明之前必须在数据类型前面加上static关键字,就可以使用。

2.常量:初始化后就不能再次修改,不会变动的值。

  • 所谓常量可以理解为一种特殊的变量,它的值设定后,在程序运行过程中不允许被修改。
    语法:final 常量名=值;final int PI = 312;
  • 常量名一般用大写字符
     // static为访问修饰符,不存在先后顺序
        static final int PI1 = 312;
        final static int PI2 = 312;
        public static void main(String[] args) {
            System.out.println(PI1);
            System.out.println(PI2);
        }
    输出:
    	312
    	312

变量的命名规范:

  • 所有变量、方法、类名等都要见名知意
  • 类成员变量:首字母小写和驼峰式命名原则:monthSalary 第二单词首字母往往大写会比较好如:lastName
  • 局部变量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰命名原则:Man,GoodMan
  • 方法名:首字母小写和驼峰命名原则:run(),runRun()

二、运算符

Java语言支持如下运算符:

  • 算术运算符:+,-,*,/,%,++,–
  • 赋值运算符:=
  • 关系运算符:>,<,<=,==,!=instanceof
  • 逻辑运算符:&&,||,!
  • 位运算符:&,|,^,~,>>,<<,>>>(了解!)
  • 条件运算符:?:
  • 扩展赋值运算符:+=,-=,*=,/=

1.关系运算符

关系运算符进行比较时返回只会有两种:正确/错误 所以它会自动使用boolean进行返回,以及“%”取余。如:

  public static void main(String[] args) {
        // 关系运算符返回的结果只有两个 要么是正确要么是错误  所以返回类型为 boolean 类型
        int a = 1;
        int b = 2;
        int c = 3;
        System.out.println(a>b);    // false
        System.out.println(a<b);    // true
        System.out.println(a<c);    // true
        System.out.println(c%b);    // 相当于 c / b = 3 / 2  余数为 1 所以会返回 1;%取余也叫模运算
    }
输出:
	false
	true
	true
	1

1.1 ++ – 分别为自增和自减(每次执行一次都会增加1或者减1),但是会有个++在前和++在后的问题.如

    public static void main(String[] args) {
        int a1 = 1;
        int a2 = a1++; 
    // 这个是它先把 a1++(也就是初始值1)赋值给a2然后在进行自增所以a2还是等于1;因为它是先赋值的再自增
        System.out.println("先赋值后自增的样子:"+a1);
        System.out.println("此时的a2就是刚才a++的初始值:"+a2);   // 所以此时 a2 还是等于 1
        int a3 = ++a1;    
    // 这个 ++a1 相当于先是把 a1+加上一个1 然后在进行赋值  所以此时 a1 就会等于 3
        System.out.println("先自增后赋值的样子:"+a3);
    }
输出:
	先赋值后自增的样子:2
	此时的a2就是刚才a++的初始值:1
	先自增后赋值的样子:3

代码就是说:++如果在前的话先自增后赋值,相反++要是在后的话就是先赋值后自增;–也同上述如此。

1.2 初识Math类:这个类是Java中自带的一个用于操作数字运算的一个工具类,从而让处理数字的操作变得简单易懂。如:

   public static void main(String[] args) {
    // 初识 Math 类
        double pow = Math.pow(2, 3);   // 属性 pow 是幂次方的计算 也就是说2的3次方是几?
        System.out.println(pow);    // 输出为8
    }
输出:
	8.0

2.逻辑运算符(或与非)

   public static void main(String[] args) {
        // 与(and)  或(or)   非(取反)
        boolean a = true;
        boolean b = false;
        System.out.println("a和b:"+(a&&b));   
     //(&&)与:比较的两个变量中其中一个为假,则结果全部为假,会存在短路问题;那么a与b肯定为false(假)
        System.out.println("a||b:"+(a||b));  
     //(||)或:比较的两个变量中其中一个为真,则结果全部为真,那么a或b应该输出为true(真)
        System.out.println("!(a&&b):"+!(a&&b));
     // 非:如果变量结果为真则变为假,如果是假,则变为真;结果本来为假的则变为真,所以会输出true(真)
    }
输出:
	a和b:false
	a||b:true
	!(a&&b):true

短路运算如:

   public static void main(String[] args) {
    // 短路运算
        int b = 5;
        boolean d = (b<4)&&(b++<6);   
     // 就是在比较的过程中这个b小于4肯定是不对的,所以他不会继续执行后面的b++,
     // 虽然b++小于6是正确的但是依然不会执行,这就是短路问题
        System.out.println(b);  // 结果肯定会输出之前没有做过处理的数值5
        System.out.println(d);  // 这个等式不能成立所以会输出false
    }
输出:
	5
	false

位运算符如下:

 public static void main(String[] args) {
        // 如果快速计算 2*8  << 左移相当与给数字*2   右移>>相当于给数字/2
        System.out.println(2<<3);  // 也就是等于3个2相乘
        System.out.println(2<<4);  // 相当于4个2相乘
        // 3*5
        System.out.println(30>>1);
        // 5*5
        System.out.println(50>>1);  // 相当于50/2
        // 7*7
        System.out.println(98>>1);
    }
输出:
	16
	32
	15
	25
	49

根据上述得知:<<左移是给当前的数字*2,右移是给当前的数字/2;据总结得知,左移的数字都是偶数,如2,4,6,8,10……;右移是奇数如:1,3,5,7,9……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值