学习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自增为26System.out.println("d++   = " +  (d++) );//首先将d自增为27,然后在控制台输出System.out.println("++d   = " +  (++d) );
}

运行结果:

    a + b = 30a - b = -10a * b = 200b / a = 2b % a = 0c % a = 5a++ = 10a-- = 11d++ = 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,否则为 30b = (a == 1) ? 20 : 30;System.out.println( "Value of b is : " +  b );// 如果 a 等于 10 成立,则设置 b 为 20,否则为 30b = (a == 10) ? 20 : 30;System.out.println( "Value of b is : " + b );
}

运行结果:

	输出结果:Value of b is : 30Value 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

四、运算符优先级

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

#微信小程序创建(获取onenet平台数据)

1.IDE&#xff1a;微信开发者工具 2.实验&#xff1a;创建一个小程序&#xff08;http get获取onenet平台数据&#xff09; 3.记录&#xff1a; 百度网盘链接&#xff1a;https://pan.baidu.com/s/1eOd-2EnilnhPWoGUMj0fzw 提取码: 2023 &#xff08;1&#xff09;新建一个工…

基于FPGA加速的bird-oid object算法实现

导语 今天继续康奈尔大学FPGA 课程ECE 5760的典型案例分享——基于FPGA加速的bird-oid object算法实现。 &#xff08;更多其他案例请参考网站&#xff1a; Final Projects ECE 5760&#xff09; 1. 项目概述 项目网址 ECE 5760 Final Project 模型说明 Bird-oid object …

Linux安全--为Nginx加上PHP解析功能

yum install php-fpm -y安装php进程管理器 找到Nginx安装的路径 编辑Nginx配置文件

短视频,文案素材哪里找?找短视频文案素材指南

有很多创业者&#xff0c;耗费了很长时间创作出了很多短视频&#xff0c;文案素材没写好&#xff0c;导致浏览量下降&#xff0c;或者写文案的同时就已经花费了很长时间&#xff0c;导致没有时间发布视频&#xff0c;从而影响了流量&#xff0c;导致流量下滑&#xff0c;其实我…

STM32CubeMX学习笔记18——FSMC(TFT-LCD屏触摸)

1.触摸屏简介 目前最常用的触摸屏有两种&#xff1a;电阻式触摸屏和电容式触摸屏 1.1 电阻式触摸屏 电阻式的触摸屏结构如下图示&#xff0c;它主要由表面硬涂层、两个ITO层、间隔点以及玻璃底层构成&#xff0c;这些结构层都是透明的&#xff0c;整个触摸屏覆盖在液晶面板上…

如何轻松打造属于自己的水印相机小程序?

水印相机小程序源码 描述&#xff1a;微信小程序。本文将为您详细介绍小程序水印相机源码的搭建过程&#xff0c;教您如何轻松打造属于自己的水印相机小程序。无论您是初学者还是有一定基础的开发者&#xff0c;都能轻松掌握这个教程。 一&#xff1a;水印相机搭建教程 1 隐…

Linux:kubernetes(k8s)Deployment的操作(12)

创建deployment 命令 kubectl create deploy nginx-deploy --imagenginx:1.7.9 再去使用以下命令分别查询 ubectl get deploy kubectl get replicaset kubectl get pod 他是一个层层嵌套的一个关系 首先是创建了一个 deploy 里面包含着replicaset replicaset里面含有…

ChatGPT等AI使用的过程苦笑不得瞬间

引言&#xff1a; 在人工智能的浪潮中&#xff0c;我们见证了技术的飞速发展和智能应用的广泛渗透。特别是随着语言模型的进步&#xff0c;AI如ChatGPT、文心一言、通义千问、讯飞星火等已经成为人们日常生活和工作中不可或缺的助手。然而&#xff0c;与任何新兴技术一样&#…

025—pandas 根多列判断不在其他列的数据

思路 是有两个相同结构的数据表&#xff0c;已知第二个表是第一个表的部分数据&#xff0c;需要以其中两列为单位&#xff0c;判断在第一个表中存在&#xff0c;在另外一个表中不存在的数据。 思路&#xff1a; 我们先将 df1 和 df2 的 x、y 列取出&#xff0c;组合为元组形成…

分享axios+signalr简单封装示例

Ajax Axios Axios 是一个基于 promise 网络请求库&#xff0c;作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。 从浏览器创建 XMLHttpReque…

C++容器适配器stack、queue、priority_queue

文章目录 C容器适配器stack、queue、priority_queue1、stack1.1、stack的介绍1.2、stack的使用1.3、stack的模拟实现 2、queue2.1、queue的介绍2.2、queue的使用2.3、queue的模拟实现 3、priority_queue3.1、priority_queue的介绍3.2、priority_queue的使用3.3、仿函数3.4、pri…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Navigation)

Navigation组件是路由导航的根视图容器&#xff0c;一般作为Page页面的根容器使用&#xff0c;其内部默认包含了标题栏、内容区和工具栏&#xff0c;其中内容区默认首页显示导航内容&#xff08;Navigation的子组件&#xff09;或非首页显示&#xff08;NavDestination的子组件…