• 学习Java的第六天


    目录

    一、变量

    1、变量的定义

    2、变量的声明格式

    3、变量的注意事项

    4、变量的作用域

    二、常量

    三、命名规范

    Java 语言支持如下运算符:

    1、算术运算符

    解析图:

    示例:

    2、赋值运算符

    解析图:

    示例:

    3、关系运算符

    解析图:

    示例:

    4、逻辑运算符

    解析图:

    ​编辑 示例:

    5、位运算符

    解析图:

    示例:

    6、条件运算符

    语法结构:

    示例:

    7、instanceof 运算符

    语法结构:

    示例:

    四、运算符优先级


    一、变量

    1、变量的定义

    • 在程序执行的过程中变量的值会发生变化,直白来说就是用来存储可变化的数据。从本质上讲,变量其实指的是内存中的一小块存储空间,空间位置是确定的,但是里面放置的值不确定。
    • 比如屋子里有多个鞋柜,而你有很多双不同品牌的鞋,鞋柜里可以放A品牌的鞋,也可以放B品牌的鞋等等,你给每一个鞋柜设计个标签,至于这些鞋柜里放哪些品牌的鞋需要你自己去放。这些标签相当于我们定义的变量,至于变量里放什么,你可以自行决定。

    2、变量的声明格式

    [访问控制符]  [修饰符]  数据类型  变量名 [ = 初始值];

    3、变量的注意事项

    • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。

    • 变量名必须是合法的标识符。

    • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束

    • 逐一声明每一个变量可以提高程序可读性。

    4、变量的作用域

    • 类变量(静态变量: static variable):独立于方法之外的变量,用 static 修饰。

    从属于类,生命周期伴随类始终,从类加载到卸载。 如果不自行初始化,他会自动初始化成该类型的默认初始值。(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false)

    1. public class Employee {
    2. //salary是静态的私有变量
    3. private static double salary;
    4. // DEPARTMENT是一个常量
    5. public static final String DEPARTMENT = "开发人员";
    6. public static void main(String[] args){
    7. salary = 10000;
    8. System.out.println(DEPARTMENT+"平均工资:"+salary);
    9. }
    10. }
    • 局部变量(lacal variable):类的方法中的变量。

    在使用前必须先声明和初始化(赋初值)。局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

    1. public static void main(String[] args) {
    2. int i=10;
    3. int j = i+5 ;
    4. System.out.println(j);
    5. }
    • 实例变量(成员变量:member variable):独立于方法之外的变量,不过没有 static 修饰。

    从属于对象,生命周期伴随对象始终。如果不自行初始化,他会自动初始化成该类型的默认初始值(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false)。

    1. public class Test {
    2. // 这个实例变量对子类可见
    3. public String name;
    4. // 私有变量,仅在该类可见
    5. private double salary;
    6. ...
    7. }

    二、常量

    • 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
    • 常量名一般使用大写字符。程序中使用常量可以提高代码的可维护性。

    final 常量名=值;
    final double PI=3.14; final String LOVE="hello";

    三、命名规范

    有变量、方法、类名:见名知意。

    类变量、实例变量和局部变量首字母小写,并且遵循驼峰原则。比如:nextMonth。

    常量大写字母和下划线。比如:MIN_VALUE。

    类名首字母大写,并且遵循驼峰原则。比如:HelloWorld。

    方法名首字母小写,并且遵循驼峰原则。比如:twiceJump()。

    四、运算符(operator

    Java 语言支持如下运算符:

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

    1、算术运算符

    解析图:

    示例:

    1. public static void main(String[] args) {
    2. int a = 10;
    3. int b = 20;
    4. int c = 25;
    5. int d = 25;
    6. System.out.println("a + b = " + (a + b) );
    7. System.out.println("a - b = " + (a - b) );
    8. System.out.println("a * b = " + (a * b) );
    9. System.out.println("b / a = " + (b / a) );
    10. System.out.println("b % a = " + (b % a) );
    11. System.out.println("c % a = " + (c % a) );
    12. System.out.println("a++ = " + (a++) );
    13. System.out.println("a-- = " + (a--) );
    14. // 查看 d++++d 的不同
    15. //首先在控制台输出,然后d自增为26
    16. System.out.println("d++ = " + (d++) );
    17. //首先将d自增为27,然后在控制台输出
    18. System.out.println("++d = " + (++d) );
    19. }

    运行结果:

    1. a + b = 30
    2. a - b = -10
    3. a * b = 200
    4. b / a = 2
    5. b % a = 0
    6. c % a = 5
    7. a++ = 10
    8. a-- = 11
    9. d++ = 25
    10. ++d = 27

    注意:

    除法运算,两个操作数是整型的,结果也会是整型的,舍弃掉小数部分;如果有一个数是浮点数,结果将自动转型为浮点型
    取余运算,两个操作数是整型的,结果也会是整型的,如果有一个数是浮点数,结果将自动转型为浮点型
    自增自减运算,a++ 相当于 a = a + 1, a++ 是先运用在计算,++a 先计算在运用

    2、赋值运算符

    解析图:

    示例:

    1. public class Test {
    2. public static void main(String[] args) {
    3. int a = 10;
    4. int b = 20;
    5. int c = 0;
    6. c = a + b;
    7. System.out.println("c = a + b = " + c );
    8. c += a ;
    9. System.out.println("c += a  = " + c );
    10. c -= a ;
    11. System.out.println("c -= a = " + c );
    12. c *= a ;
    13. System.out.println("c *= a = " + c );
    14. a = 10;
    15. c = 15;
    16. c /= a ;
    17. System.out.println("c /= a = " + c );
    18. a = 10;
    19. c = 15;
    20. c %= a ;
    21. System.out.println("c %= a  = " + c );
    22. c <<= 2 ;
    23. System.out.println("c <<= 2 = " + c );
    24. c >>= 2 ;
    25. System.out.println("c >>= 2 = " + c );
    26. c >>= 2 ;
    27. System.out.println("c >>= 2 = " + c );
    28. c &= a ;
    29. System.out.println("c &= a  = " + c );
    30. c ^= a ;
    31. System.out.println("c ^= a   = " + c );
    32. c |= a ;
    33. System.out.println("c |= a   = " + c );
    34. }
    35. }

    运行结果:

    1. c = a + b = 30
    2. c +== 40
    3. c -= a = 30
    4. c *= a = 300
    5. c /= a = 1
    6. c %== 5
    7. c <<= 2 = 20
    8. c >>= 2 = 5
    9. c >>= 2 = 1
    10. c &== 0
    11. c ^= a   = 10
    12. c |= a   = 10

    3、关系运算符

    解析图:

    示例:

    1. public class Test {
    2. public static void main(String[] args) {
    3. int a = 10;
    4. int b = 20;
    5. System.out.println("a == b = " + (a == b) );
    6. System.out.println("a != b = " + (a != b) );
    7. System.out.println("a > b = " + (a > b) );
    8. System.out.println("a < b = " + (a < b) );
    9. System.out.println("b >= a = " + (b >= a) );
    10. System.out.println("b <= a = " + (b <= a) );
    11. }
    12. }

    运算结果:

    1. a == b = false
    2. a != b = true
    3. a > b = false
    4. a < b = true
    5. b >= a = true
    6. b <= a = false

    4、逻辑运算符

    解析图:

     示例:

    1. public class Test {
    2. public static void main(String[] args) {
    3. boolean a = true;
    4. boolean b = false;
    5. System.out.println("a && b = " + (a&&b));
    6. System.out.println("a || b = " + (a||b) );
    7. System.out.println("!(a && b) = " + !(a && b));
    8. }
    9. }

    运行结果:

    1. a && b = false
    2. a || b = true
    3. !(a && b) = true

    5、位运算符

    解析图:

    示例:

    1. public class Test {
    2.   public static void main(String[] args) {
    3.     int a = 60; /* 60 = 0011 1100 */ 
    4.      int b = 13; /* 13 = 0000 1101 */
    5.      int c = 0;
    6.      c = a & b;       /* 12 = 0000 1100 */
    7.      System.out.println("a & b = " + c );
    8.      c = a | b;       /* 61 = 0011 1101 */
    9.      System.out.println("a | b = " + c );
    10.      c = a ^ b;       /* 49 = 0011 0001 */
    11.      System.out.println("a ^ b = " + c );
    12.      c = ~a;          /*-61 = 1100 0011 */
    13.      System.out.println("~a = " + c );
    14.      c = a << 2;     /* 240 = 1111 0000 */
    15.      System.out.println("a << 2 = " + c );
    16.      c = a >> 2;     /* 15 = 1111 */
    17.      System.out.println("a >> 2  = " + c );
    18.   
    19.    c = a >>> 2;     /* 15 = 0000 1111 */
    20.      System.out.println("a >>> 2 = " + c );
    21.   }
    22. }

    运行结果:

    1. a & b = 12
    2. a | b = 61
    3. a ^ b = 49
    4. ~a = -61
    5. a << 2 = 240
    6. a >> 2 = 15
    7. a >>> 2 = 15

    6、条件运算符

    语法结构:

    variable x = (expression) ? value if true : value if false

    示例:

    1. //基本格式:variable x = (expression) ? value if true : value if false
    2. public static void main(String[] args){
    3. int a , b;
    4. a = 10;
    5. // 如果 a 等于 1 成立,则设置 b 为 20,否则为 30
    6. b = (a == 1) ? 20 : 30;
    7. System.out.println( "Value of b is : " + b );
    8. // 如果 a 等于 10 成立,则设置 b 为 20,否则为 30
    9. b = (a == 10) ? 20 : 30;
    10. System.out.println( "Value of b is : " + b );
    11. }

    运行结果:

    1. 输出结果:
    2. Value of b is : 30
    3. Value of b is : 20

    7、instanceof 运算符

    该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。

    语法结构:

    ( Object reference variable ) instanceof  (class/interface type)

    示例:

    1. class Vehicle {}
    2. public class Car extends Vehicle {
    3. public static void main(String[] args){
    4. Vehicle a = new Car();
    5. boolean result = a instanceof Car;
    6. System.out.println( result);
    7. }
    8. }

    运行结果:

    true

    四、运算符优先级

    我们小学都学过:先加减,后乘除,所以优先级我们并不陌生。

    当多个运算符出现在一个表达式中,谁先谁后呢?这就涉及到运算符的优先级别的问题。在一个多运算符的表达式中,运算符优先级不同会导致最后得出的结果差别甚大。

    下表中具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。

  • 相关阅读:
    缓存把我坑惨了..
    web前端期末大作业:基于HTML+CSS+JS外卖服务平台10页 带购物车 (web课程设计与实现)
    Git详解及 github使用
    浅谈顺序表基本操作
    C#使用OpenCv(OpenCVSharp)图像轮廓检测与绘制
    CompletableFuture 方法总结
    Linux权限详解.
    Ubuntu下apt install命令的软件安装位置
    真的卷不动了...
    zabbix自定义模板,邮件报警,代理服务器,自动发现与自动添加及snmp
  • 原文地址:https://blog.csdn.net/AE_BD/article/details/136584060