Day03_2

Java基础02

变量

  1. 变量是什么:就是可以变化的量;
  2. Java是一种强类型语言,每个变量都必须声明其类型;
  3. Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
  • 注意事项:
    1. 每个变量都有类型,类型可以是基本类型,也可以是引用类型;
    2. 变量名必须是合法的标识;(例如不能是#、*)
    3. 变量声明是一条完整的语句,因此每个声明都必须以分号结束。

变量的作用域

  • 局部变量
public class Demo09 {
   //main 方法
   public static void main(String[] args) {
    //局部变量:使用之前必须声明和初始化值(局部变量是在方法里面的)
    int i;
    int a = 10;
    System.out.println(i);  //报错,因为i没有初始化值
    System.out.println(a);  //10
   }
}
  • 实例变量
public class Demo09 {
//实例变量:从属于对象;如果不进行初始化,就是这个类型的默认值
//整数的默认值是0;  浮点数默认值是0.0;  字符串的默认值是u0000(输出结果是空格、空白);   
//布尔值默认是false;
//除了基本类型,其他默认值都是null;
    String name;  //实例变量
    int age;      //实例变量
     public static void main(String[] args) {
        System.out.println(demo09.age);  // 0
        System.out.println(demo09.name); // null
     }
}
  • 类变量
public class Demo09 {
    //类变量  static
    static double salary = 2500; //类变量
    
    public static void main(String[] args) {
          System.out.println(salary); //2500.0
     }
}

常量(final)

  • 常量(Constant):初始化(initialize)后不能再改变值!不会变动的值
  • 所谓的常量可以理解为一种特殊的变量,它的值在被设定后,在程序运行过程中不允许被改变
 final 常量名 =;
 final double PI = 3.14;
  • 常量名一般使用大写字符
public class Demo10 {
    //修饰符,不存在先后顺序
    static final int P = 12;
    final static  int F = 13;
    public static void main(String[] args) {
        System.out.println(P); // 12
        System.out.println(F); // 13
    }
}

变量的命名规范

  • 所有的变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary(月工资)
    - 驼峰原则:除了第一个单词以外,后面的单词首字母大写。例如:lastName
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE (当单词较多时可以用下划线隔开)
  • 类名:首字母大写和驼峰原则 :Man , GoodMan
  • 方法名:首字母小写和驼峰原则:run () , runRun()

运算符

Java语言支持如下运算符

  • 运算符优先级,最高级:()

  • 算术运算符:+,-,*,/,%,++,-- (%表示取余,就是求余数,又叫模运算)

    public class Demo04 {
        public static void main(String[] args) {
            // ++自增   --自减       一元运算符
            int a = 5;
            int b = a++; //先给b赋值,再自增,即:先执行b=a=5;再执行a=a+1;
            System.out.println(a);//6
            int c = ++a; //先自增,再赋值,即:先执行a=a+1;再执行c=a=7;
            System.out.println(a);//7
            System.out.println(b);//5
            System.out.println(c);//7
    
            //幂运算 2^3  2*2*2 = 8   很多运算,我们会使用一些工具类来操作   
            // Math.pow(2,3);再按Ctrl+Alt+v生成返回值对象快捷键
            double pow = Math.pow(2, 3);
            System.out.println(pow);//8
    
        }
    }
    public class Demo01 {
        public static void main(String[] args) {
            //二元运算
            //Ctrl+D:复制当前行到下一行
            int a = 10;
            int b = 20;
            int c = 35;
            int d = 26;
            System.out.println(a+b);//30
            System.out.println(a-b);//-20
            System.out.println(a*b);//200
            System.out.println(b/a);//2
            System.out.println(c/a);//3  默认为int,所以取整数
            System.out.println((double)c/a);//3.5
            System.out.println(d%a);//6  取余,或者叫模运算
        }
    }
    
    public class Demo02 {
        public static void main(String[] args) {
            long a = 100000000000L;
            int b = 1;
            short c = 2;
            byte d = 3;
            System.out.println(a+b+c+d); //100000000006 long
            System.out.println(b+c+d); //6 int
            System.out.println(c+d); //5 int
           //byte  short char 在java里计算是没人权的,都默认直接转换为int
        }
    }
  • 赋值运算符:=

  • 关系运算符:>, <, <=,>=, , !=, instanceof (** 表示 等于**, != 表示 不等于)

    public class Demo03 {
        public static void main(String[] args) {
            //关系运算符返回的结果:正确(true)   错误(false)    就是布尔值
            // if
            int a = 10;
            int b = 10;
            System.out.println(a>b);//false
            System.out.println(a<b);//true
            System.out.println(a==b); //false        等于==
            System.out.println(a!=b); //false        不等于!=
        }
    }
  • 逻辑运算符:&&,||,!(与或非)

    public class Demo05 {
        public static void main(String[] args) {
            //&& 与(and)       || 或(or)      ! 非(取反)
            boolean a = true;
            boolean b = false;
            System.out.println("a&&b:"+(a&&b)); //a&&b:false  逻辑与运算:两个变量都为真,结果才为true;
            System.out.println("a||b:"+(a||b)); //a||b:true   逻辑或运算:两个变量中有一个为真,结果就为true;
            System.out.println("!a&&b:"+(!a&&b));//!a&&b:false  逻辑非运算:如果是真,则变假;如果是假,则变真;
            System.out.println("!a:"+(!a));//!a:false
    
            //短路运算(大致就之执行一部分后就输出结果), 逻辑与运算就存在短路运算,例如:
            System.out.println("===========================");
            int c = 5;
            boolean d = (c<4)&&(c++<4);
            System.out.println(c);//5  与运算时,c=5,c<4是假,这里就直接输出false,后面的c++<4没执行,所以c=5
            System.out.println(d);//false
            boolean f = (c<6)&&(++c<4);
            System.out.println(c);//6  与运算时,c=5,c<6是真,继续执行++c<4,所以c=6
            System.out.println(f);//false
    
        }
    }
  • 位运算符:&,|,^,~,>>,<<,>>>(没搞懂)

    public class Demo06 {
        public static void main(String[] args) {
            /*
              A = 0011 1100
              B = 0000 1101
            ----------------
            位运算是二进制对应位进行运算,1可以理解为true,0可以理解为false;
            ----------------
            A&B = 0000 1100  逻辑与运算
            A/B = 0011 1101  逻辑或运算
            A^B = 0011 0001   异或运算   如果对应位相同则为0,不相同就为1
             ~B = 1111 0010   取反     对应取反
             
            ----------------
             位运算特点:效率极高
             << 左移  左移1位就相当于*2
             >> 右移  右移1位就相当于/2
               2*8 = 16  2*2*2*2
              0000 0000          0
              0000 0010          2
              0000 0011          3
              0000 0100          4
              0000 1000          8
              0001 0000          16
             */
            System.out.println(2<<3);//16
            System.out.println(3<<2);//12
            System.out.println(12>>2);//3
        }
    }
  • 条件运算符:? :

     //三元运算符  ? :
    public class Demo08 {
        public static void main(String[] args) {
            /*
            x ? y : z
            意思就是:如果x==true,则结果为y,否则结果为z;
             */
            int score = 80;
            String type = score < 60 ?"不及格":"及格";
            // if
            System.out.println(type);//及格
        }
    }
  • 扩展赋值运算符:+=,-=,*=,/=

    public class Demo07 {
        public static void main(String[] args) {
            int a = 10;
            int b = 20;
            int c = 30;
            a+=b;//a=a+b
            c-=b;//c=c-b
            System.out.println(a);//30
            System.out.println(c);//10
    
            //字符串连接符  +  +两侧只要出现String类型,就会把两侧都转换为String类型,再进行连接
            System.out.println("==================");
            System.out.println(a+b);//50
            System.out.println(""+a+b);//3020
            System.out.println(a+b+"");//50
            System.out.println(a+b+"tmy");//50tmy
    
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值