markdown学习Day5

变量

  • 内存位置是确定的,但是内容是不确定的。

  • 每个变量都必须声明其类型。

  • JAVA变量是程序中最基本的储存单元,包括变量名,变量类型,作用域。

【注意事项】

  1. 每个变量都有类型,可以是基本类型,可以是引用类型(String)。

  2. 变量名必须使合法的标识符。

  3. 每一个声明都必须以分号结束。

public class test1 {
  public static void main(String[] args) {
      //int a,b,c;   不建议这样做

      //尽量分开写
      int a = 1;
      int b = 2;     //基本类型
      int c = 3;

      String name = "subin"; //引用类型
      char x = 'x';   //用char的时候,是单引号!
      double pi = 3.14;


  }
}

变量作用域

  1. 类变量:需要加【static】关键词

  2. 实例变量:没有关键词

  3. 局部变量:在方法之中

public class test2 {
  //class下是“类”,类变量就是在类下,从属于类,同时存在,同时消失
  //类下可以定义【属性(变量)】【方法】

  //类变量:【static】

  static double salary = 2500;   //可以直接输出


  //实例变量:在方法之外,类之内,从属于对象(类)
          //如果不自行初始化,就会输出这个类型的默认值
          //数值(int之类)的默认值是0或0.0;字符串的默认值是ture;布               尔值默认值是false;除了基本类型其他都是null

  String name;
  int age;

  public static void main(String[] args) {   //main方法

      //局部变量 :在方法下 【使用时必须声明和初始化值】
      int i; //光是这样无法输出,必须为其附一个值。
      int q =10; //这样就可以输出
                  //而且这个q或者i,只限于在main方法的括号内使用


      //可以自定义一个变量
      //格式为:变量类型+变量名字=new 变量类型() 如下:
      test2 Test2 = new test2();
      System.out.println(Test2.age);
      System.out.println(Test2.name);



  }
}

常量

常量:初始化后不能再改变值,不会变动的值

可以理解为一种特殊的变量,当值被设定后,程序运行过程中不可以被更改。

final 常量名=值

常量名=变量类型+变量名

final double PI=3.14;

常量名一般使用大写字符

public class test3 {

  static final double PI =3.14;
  //static放到final的前后都可运行,修饰符不存在前后顺序

  public static void main(String[] args) {
      System.out.println(PI);

  }
}

变量的命名规范

  1. 所有变量,方法,类名:见名知意.

  2. 类成员变量,局部变量:首字母小写和驼峰规则,如lastName,除了第一个单词小写,其他单词首字母大写.

  3. 常量:大写字母,若名字里单词多可用下划线隔开,如“MAX_VALIE”.

  4. 类名:首字母大写和驼峰原则,如“GoodMan”.

  5. 方法名:首字母小写和驼峰原则

运算符

  1. 算术运算符

    +,-,*,/,%,++,--(取余,叫做“模”)

    package Operator;

    public class Test {
      public static void main(String[] args) {
          //将只有两个数相运算的叫做---二元运算符
          int a = 10;
          int b = 20;
          int c = 25;
          int d = 25;
          //ctrl+D 复制行到下一行
          System.out.println(a+b);
          System.out.println(a-b);
          System.out.println(a*b);
          System.out.println(a/b);//计算结果为0.5,是小数,需要强制转换
          System.out.println(a/(double)b);

      }
    }
       int a =10;
          int b =20;
          int c =21;

          System.out.println(c%a);
          //相当于c/a,即21/10=2余1
           
          //输出1
  2. 赋值运算符

    =

    int a =10; (叫做把10赋予a)

    public class Test1 {
      public static void main(String[] args) {
          long a = 123123123123L;
          int b = 123;
          short c = 10;
          byte d = 8;
          double e = 0.5;

          System.out.println(a+b+c+d);//long类型
          System.out.println(b+c+d);//int类型
          System.out.println(c+d);//int类型
          System.out.println(a+e);
          //只要运算中有一个是long类型,输出的就是long类型,同理若运           算中有double,则输出的就是double类型
          //其他类型进行运算都是int类型
      }
    }
  3. 关系运算符

    <,>,<=,>=,instanceof

    ==(java中的等于是两个等于号)

    !=(不等于)

    package Operator;

    public class Test2 {
      public static void main(String[] args) {
          //关系运算符返回的结果:ture false
          //会和if一起使用
          int a =10;
          int b =20;
         
          System.out.println(a>b);
          System.out.println(a<b);
          System.out.println(a==b);
          System.out.println(a!=b);

      }
    }
  4. 逻辑运算符

    汉语中的“与”,“或”,“非”

    &&:与,and

    ||:或,or

    :非,非黑既白

  5. 位运算符(了解)

    &,|,^,~,>>,<<,>>>

  6. 条件运算符

    ?:

  7. 扩展赋值运算符

    +=,-=,*=,/=

自增自减运算符*

++:自增

--:自减

public class Test3 {
    public static void main(String[] args) {
        //++.--  属于一元运算符

        //a++,++a都代表a=a+i;a--,--a都代表a=a-1

        //区别在于a++相当于
        int a =3;
        int b =a++;//执行完代码后,先给b赋值,后再自增
        //a=a+1  (这一行没有执行)
        System.out.println(a);
        //a=a+1
        int c =++a;//执行完代码前,先自增,后c赋值

        System.out.println(a);

        System.out.println(b);

        System.out.println(c);
       ;


    }

}
结果为
4
5
3
5

初识Math

幂运算

在JAVA中2的3次方并不表示为2^3.需要使用Math工具来计算

     //幂运算,很多运算我们会使用工具类来操作
public class Test4 {
    public static void main(String[] args) {
        double pow=Math.pow(2,3);//代表计算2^3=8
        System.out.println(pow);

    }
}

逻辑运算符

//逻辑运算符
public class Test5 {
    public static void main(String[] args) {
        //与(and)    或(or)    非(取反)
        boolean a =true;
        boolean b =false;

        //首先解释一下:+(a&&b)代表输出时的名字
        System.out.println("a&&b:"+(a&&b)); 
        //逻辑“与”运算:两个变量都为真,结果才为ture
        System.out.println("a||b:"+(a||b)); 
        //逻辑“或”运算:两个变量只要有一个为真,结果就为ture
        System.out.println("!(a&&b):"+!(a&&b)); 
        //逻辑“非”运算:如果为真,则变为加;如果是假,则变为真

//短路运算:“与”运算中,如果第一个就验证处是假,则就不再验证第二个

        int c =5;
        boolean d =(c<4)&&(c++<4);//因为如果c++执行过就会变成6,而                                     结果是5,说明没有被执行过
        System.out.println(d);
        System.out.println(c);


    }
}

位运算符

public class Test6 {
    public static void main(String[] args) {
        /*

        位运算:与二进制相关,效率高,和底层打交道

        A=0011 1100
        B=0000 1101


        1.A&B(与):0000 1100
               A和B上下进行比较,上下都为1,输出为1,上下都为0,输出为0
               上下不一样,输出为0

        2.A|B(或):0011 1101
                上下不一样,输出为1

        3.A^B(亦或):0011 0001
                 相同为0,不同为1

        4.~B(取反):1111 0010
                    相反数

        5.<<(左移)  >>(右移)

          <<(左移)相当于*2
          >>(右移)相当于/2

           若要求2*8=16
         */
        System.out.println(2<<3);

        /*在二进制中
          0000 0010   2
          0001 0000   16
          所以将2左移3位就可以等到16
         */
    }
}

扩展赋值运算符

public class Test7 {
    public static void main(String[] args) {
        int a =10;
        int b =20;

        a+=b;//a=a+b
        a-=b;//a=a-b

        System.out.println(a);
    }
}


结果为:
30
-10

字符串连接符

+

 //字符串连接符(+) : 在+号前添加【“”】空字符串,会将两个数连接
        System.out.println(a+b);
        System.out.println(""+a+b);
        System.out.println(a+b+""); //在+号后不会发生效果


10
30
1020

三元运算符(条件运算符)

public class Test8 {
    public static void main(String[] args) {
        // 【 ? 】 【 : 】 ------三元运算符

        //【 x ? y : z】的意思是:如果x==ture,则结果为y,否则结果为z

       int score =80;
       String type = score <60?"不及格":"及格";
        System.out.println(type);
        
        及格

优先级

括号具有最高优先级,在编码时要熟练使用括号

posted @ 2021-02-05 22:31  酥饼sama  阅读(70)  评论(0)    收藏  举报