学习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)

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

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

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

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

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

二、常量

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

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

三、命名规范

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

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

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

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

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

四、运算符(operator

Java 语言支持如下运算符:

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

1、算术运算符

解析图:

示例:

public static void main(String[] args) {
    int a = 10;
    int b = 20;
    int c = 25;
    int d = 25;
    System.out.println("a + b = " + (a + b) );
    System.out.println("a - b = " + (a - b) );
    System.out.println("a * b = " + (a * b) );
    System.out.println("b / a = " + (b / a) );
    System.out.println("b % a = " + (b % a) );
    System.out.println("c % a = " + (c % a) );
    System.out.println("a++   = " +  (a++) );
    System.out.println("a--   = " +  (a--) );
    // 查看  d++ 与 ++d 的不同
    //首先在控制台输出,然后d自增为26
    System.out.println("d++   = " +  (d++) );
    //首先将d自增为27,然后在控制台输出
    System.out.println("++d   = " +  (++d) );
}

运行结果:

    a + b = 30
    a - b = -10
    a * b = 200
    b / a = 2
    b % a = 0
    c % a = 5
    a++ = 10
    a-- = 11
    d++ = 25
    ++d = 27

注意:

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

2、赋值运算符

解析图:

示例:

public class Test {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 0;
        c = a + b;
        System.out.println("c = a + b = " + c );
        c += a ;
        System.out.println("c += a  = " + c );
        c -= a ;
        System.out.println("c -= a = " + c );
        c *= a ;
        System.out.println("c *= a = " + c );
        a = 10;
        c = 15;
        c /= a ;
        System.out.println("c /= a = " + c );
        a = 10;
        c = 15;
        c %= a ;
        System.out.println("c %= a  = " + c );
        c <<= 2 ;
        System.out.println("c <<= 2 = " + c );
        c >>= 2 ;
        System.out.println("c >>= 2 = " + c );
        c >>= 2 ;
        System.out.println("c >>= 2 = " + c );
        c &= a ;
        System.out.println("c &= a  = " + c );
        c ^= a ;
        System.out.println("c ^= a   = " + c );
        c |= a ;
        System.out.println("c |= a   = " + c );
    }
}

运行结果:

c = a + b = 30
c += a  = 40
c -= a = 30
c *= a = 300
c /= a = 1
c %= a  = 5
c <<= 2 = 20
c >>= 2 = 5
c >>= 2 = 1
c &= a  = 0
c ^= a   = 10
c |= a   = 10

3、关系运算符

解析图:

示例:

public class Test {
 
  public static void main(String[] args) {
     int a = 10;
     int b = 20;
     System.out.println("a == b = " + (a == b) );
     System.out.println("a != b = " + (a != b) );
     System.out.println("a > b = " + (a > b) );
     System.out.println("a < b = " + (a < b) );
     System.out.println("b >= a = " + (b >= a) );
     System.out.println("b <= a = " + (b <= a) );
  }
}

运算结果:

a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false

4、逻辑运算符

解析图:

 示例:

public class Test {
  public static void main(String[] args) {
     boolean a = true;
     boolean b = false;
     System.out.println("a && b = " + (a&&b));
     System.out.println("a || b = " + (a||b) );
     System.out.println("!(a && b) = " + !(a && b));
  }
}

运行结果:

a && b = false
a || b = true
!(a && b) = true

5、位运算符

解析图:

示例:

public class Test {
  public static void main(String[] args) {
     int a = 60; /* 60 = 0011 1100 */ 
     int b = 13; /* 13 = 0000 1101 */
     int c = 0;
     c = a & b;       /* 12 = 0000 1100 */
     System.out.println("a & b = " + c );
 
     c = a | b;       /* 61 = 0011 1101 */
     System.out.println("a | b = " + c );
 
     c = a ^ b;       /* 49 = 0011 0001 */
     System.out.println("a ^ b = " + c );
 
     c = ~a;          /*-61 = 1100 0011 */
     System.out.println("~a = " + c );
 
     c = a << 2;     /* 240 = 1111 0000 */
     System.out.println("a << 2 = " + c );
 
     c = a >> 2;     /* 15 = 1111 */
     System.out.println("a >> 2  = " + c );
  
     c = a >>> 2;     /* 15 = 0000 1111 */
     System.out.println("a >>> 2 = " + c );
  }
}

运行结果:

a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 2  = 15
a >>> 2 = 15

6、条件运算符

语法结构:

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

示例:

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

    // 如果 a 等于 10 成立,则设置 b 为 20,否则为 30
    b = (a == 10) ? 20 : 30;
    System.out.println( "Value of b is : " + b );
}

运行结果:

	输出结果:
	Value of b is : 30
	Value of b is : 20

7、instanceof 运算符

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

语法结构:

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

示例:

class Vehicle {}
 
public class Car extends Vehicle {
   public static void main(String[] args){
      Vehicle a = new Car();
      boolean result =  a instanceof Car;
      System.out.println( result);
   }
}

运行结果:

true

四、运算符优先级

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/448105.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何使用Everything+cpolar实现公网远程搜索下载内网储存文件资料

文章目录 前言1.软件安装完成后&#xff0c;打开Everything2.登录cpolar官网 设置空白数据隧道3.将空白数据隧道与本地Everything软件结合起来总结 前言 要搭建一个在线资料库&#xff0c;我们需要两个软件的支持&#xff0c;分别是cpolar&#xff08;用于搭建内网穿透数据隧道…

鸿蒙报错:Hhvigor Update the SDKs by going to Tools > SDK Manager....

鸿蒙报错&#xff1a;Hhvigor Update the SDKs by going to Tools > SDK Manager… 打开setting里面的sdk&#xff0c;将API9工程下的全部勾上&#xff0c;应用下载 刚打开 js 和 Native 是没勾上的

黑苹果RX590驱动解决方案

遇到的问题: 1.手头上的显卡是 华硕RX590 GAME,MacOS运行查看到显存为7m,使用起来非常卡顿。 2.免驱后,屏幕紫色。 使用的工具如下: 工具包下载地址:https://download.csdn.net/download/qq_33544860/88944761 解压密码:20240311 流程如下: 解决无法免驱问题:刷入5…

力扣:链表篇章

1、链表 链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域一个是指针域&#xff08;存放指向下一个节点的指针&#xff09;&#xff0c;最后一个节点的指针域指向null&#xff08;空指针的意思&#xff09;。 ​

IP形象设计是什么设计?如何做?

随着市场竞争的激烈&#xff0c;越来越多的企业开始关注品牌形象的塑造和推广。在品牌形象中&#xff0c;知识产权形象设计是一个非常重要的方面。在智能和互联网的趋势下&#xff0c;未来的知识产权形象设计可能更加关注数字和社交网络。通过数字技术和社交媒体平台&#xff0…

npm install报错,error <https://npm.community>解决方法

报错信息如下&#xff1a; 分析原因&#xff1a; 1.可能是由于node版本过低&#xff0c;或者过高,解决方法看我另一文章&#xff1a;npm install报错&#xff0c;npm版本过高&#xff0c;需要切换低版本node&#xff0c;过程记录 2.网络问题导致 3.切换node版本后&#xff0…

Jmeter测试关联接口

Jmeter用于接口测试时&#xff0c;后一个接口经常需要用到前一次接口返回的结果&#xff0c;本文主要介绍jmeter通过正则表达式提取器来实现接口关联的方式&#xff0c;可供参考。 一、实例场景&#xff1a; 有如下两个接口&#xff0c;通过正则表达式提取器&#xff0c;将第…

【保姆级】Protobuf详解及入门指南

目录 Protobuf概述 什么是Protobuf 为什么要使用Protobuf Protobuf实战 环境配置 创建文件 解析/封装数据 附录 AQin.proto 完整代码 Protobuf概述 什么是Protobuf Protobuf&#xff08;Protocol Buffers&#xff09;协议&#x1f609; Protobuf 是一种由 Google 开…

Mysql8的优化(DBA)

Mysql8的优化 1、Mysql的安装优化1.1 修改配置参数&#xff08;命令行、配件文件&#xff09;1.1.1 命令行修改配置参数1.1.2 参数持久化1.1.3 Mysql多实例启动&#xff0c;以及配置密码文件 1.2 查询表的相关参数&#xff0c;以及表空间管理 2、Mysql高级优化&#xff08;SQL&…

编译支持国密的抓包工具 WireShark

目录 前言WireShark支持国密的 WireShark小结前言 在上一篇文章支持国密的 Web 服务器中,我们搭建了支持国密的 Web 服务器,但是,我们使用 360 安全浏览器去访问,却出现了错误: 是我们的 Web 服务器没有配置好?在这里插入图片描述还是 360 安全浏览器不支持国密?还是两…

SSL证书:构建网络安全的基石

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Linux学习——线程的控制

目录 ​编辑 一&#xff0c;线程的创建 二&#xff0c;线程的退出 1&#xff0c;在子线程内return 2,使用pthread_exit(void*) 三&#xff0c;线程等待 四&#xff0c;线程获取自己的id值 五&#xff0c;线程取消 六&#xff0c;线程分离 一&#xff0c;线程的创建 在对…

全面的 DevSecOps 指南:有效保护 CI/CD 管道的关键注意事项

数字化转型时代带来了对更快、更高效、更安全的软件开发流程的需求。DevSecOps&#xff1a;一种将安全实践集成到 DevOps 流程中的理念&#xff0c;旨在将安全性嵌入到开发生命周期的每个阶段 - 从代码编写到生产中的应用程序部署。DevSecOps 的结合可以带来许多好处&#xff0…

抖音视频提取gif怎么做?分分钟帮你生成gif

通过将视频转换成gif动图的方式能够方便的在各种平台上分享、传播。相较于视频文件&#xff0c;gif动图的体积更小&#xff0c;传播起来更方便&#xff0c;能够吸引大众的注意力。下面&#xff0c;就来给大家分享一个gif图片制作&#xff08;https://www.gif.cn/&#xff09;的…

mybatisplus的条件构造器

条件构造器wrapper&#xff0c;主要用于构造sql语句的where条件&#xff0c;他更擅长这个&#xff0c;但也可以用于构造其他类型的条件&#xff0c;比如order by、group by等。 条件构造器的使用经验&#xff1a; 基于QueryWrapper的查询 练习1. void testQueryWrapper(){Q…

服务器集群 -- nginx配置tcp负载均衡

当面临高流量、高可用性、水平扩展、会话保持或跨地域流量分发等需求时&#xff0c;单台服务器受限于硬件资源、性能有限不能满足应用场景的并发需求量时&#xff0c;引入负载均衡器部署多个服务器共同处理客户端的并发请求&#xff0c;可以帮助优化系统架构&#xff0c;提高系…

猫咪挑食怎么治?排行榜靠前适口性好的主食冻干推荐

在如今&#xff0c;养猫人士几乎都将自己的小猫咪视作珍宝&#xff0c;宠溺有加。但宠爱过度有时也会导致猫咪养成挑食的坏习惯。猫咪挑食怎么治呢&#xff1f;今天&#xff0c;我要分享一个既能让猫咪不受苦&#xff0c;又能纠正挑食问题的方法。 一、为什么猫会挑食呢&#x…

Linux调试器--gdb的介绍以及使用

文章目录 1.前言 ✒️2.介绍gdb✒️3.Debug模式和Release模式的区别✒️4.如何使用gdb✒️1️⃣.在debug模式下编译2️⃣.进入调试3️⃣ .调试命令集合⭐️⭐️ 1.前言 ✒️ &#x1f557;在我们之前的学习中已经学会了使用vim编译器编写c/c代码&#xff0c;但是对于一个程序员…

ThreadLocal出现内存泄露原因分析

ThreadLocal 导致内存泄漏的主要原因是它的工作方式。在 Java 中&#xff0c;ThreadLocal 通过维护一个以 Thread 为键&#xff0c;以用户设置的值为值的映射来工作。每个线程都拥有其自身的线程局部变量副本&#xff0c;不同线程间的这些变量互不干扰。这个映射是存储在每个 T…

sql-mysql可视化工具Workbench导入sql文件

mysql可视化工具Workbench导入sql文件 1、打开workbench2、导入sql文件3、第一行加上库名4、开始运行 1、打开workbench 2、导入sql文件 3、第一行加上库名 4、开始运行