Java中的基本数据与运算(关键字、标识符、运算符)

目录

一、关键字

二、标识符

三、注释

四、变量

五、数据类型

六、运算符

6.1 算术运算符

6.2 比较运算符

6.3 逻辑运算符

6.4 位移运算符


一、关键字

在 Java 中内置了很多有特殊意义的单词,这些单词不能做为类名、方法名、变量名来使用。关键字必须是小写的。

在我们的入门程序中已经接触到了以下几个:

  • public:它表示是公共的,是一个范围修饰符

  • class:它是用于定义类的关键字

  • static:它表示这个变量或方法是一个静态的,静态可以通过类名来访问,而且是放到内存的静态区域中。

  • void:它是用于修饰方法的,表示这个就去没有返回值。

二、标识符

对程序中出现的一些事物所起的名称,称之为标识符。

标识符必须遵守以下规则:

  • 标识符是由字母、数字、下划线_和美元符$构成的字符序列

  • 标识符必须以字母、下划线_或美元符$开头,不能以数字开头

  • 标识符不能是关键字

  • 标识符不能是Java内置关键字数据(thistruefalsenullsuper等)

  • 标识符不能是API里面的已知类的名称

  • 标识符可以为任意长度,但必须是一个连续的字符序列

  • 标识符严格区分大小写

三、注释

在java中有三种注释:

  • // 表示单行注释

  • /* */ 表示多行注释

  • /** */ 表示文档注释

四、变量

变量用于存放某个值的,而这个值可以在程序的运行过程中发生变化。它其实是在内存中开辟了一块区域来进行存放。便于程序在运行过程中使用。定义变量时,在遵守标识符的规则,同时我们尽量做到见名知意。

定义变量的格式:

变量类型 变量名称 = 值;

五、数据类型

在 Java 中数据类型分为如下两类:

  • 基本数据类型

    • 字节:byte

    • 字符:char

    • 短整型:short

    • 整型:int

    • 长整型:long

    • 浮点型:float

    • 双精度:double

    • 布尔类型:boolean

  • 引用数据类型

    • 数组

    • 接口

使用示例:

public class JavaType {   public static void main(String[] args) {      // 1. avaible      int age = 18;      System.out.println("age=" + age);      float money = 3.5F;      System.out.println("money=" + money);      boolean flag = true;      System.out.println("flag=" + flag);     char c = 'C';        System.out.println("c=" + c);  //char c = 'C1';   c = '1';   System.out.println("c=" + c);   }
}

注意:

  1. 变量需要先定义再使用

  2. 定义变量时需要指定它的类型

  3. 如果定义的是 float 类型,则它的值后在带上小 f 或 大 F ,这样才能明确指定它是 float 类型,否则它就是 double 类型

  4. 布尔类型在 java 中只有两个值:true 和 false

  5. 字符的值只能使用单引号,而且单引号中只能有一位

六、运算符

6.1 算术运算符

在 Java 中,算术运算符包含:+、-、*、/、%

public class ArithmeticOperator {
public static void main(String[] args) {
int a = 10; // 定义了一个整型类型的变量 a,它的值是 10
int b = 6;
// 1. + 加法运算符,它是用于两个数相加操作
int result = a + b;
//System.out.println(result);
System.out.println("result = " + result);
System.out.println("--------");
// 2. - 减法运算符
result = a - b;
System.out.println("result = " + result);
// 3. * 乘法运算符
result = a * b;
System.out.println("result = " + result);
// 4. / 除法运算符。注意在 Java中两个整数相除,结果为整数。
result = a / b; // 10 / 6 = 1
System.out.println("result = " + result);
// 类型自动提升:发生在小类型向大类型转换。如将 int 转换为 double
double r = a / b * 1.0;
System.out.println("r = " + r);
// 大类型向小类型转换,需要强制执行,格式是使用一对小圆括号来指定要转换了类型
int n = (int)r;
System.out.println("n = " + n);
// 5. % 取模运算符,它其实是得到两个数相除的余数。
result = a % b;
System.out.println("result = " + result);
}
}

在Java中除了算术运算符以外,还有++、--运算符

public class ArithmeticOperator02 {
public static void main(String[] args) {
// ++ 运算符,它是一种自增操作
通过加法和减法运算符,实现两个数的交换操作:
int a = 10;
int r = a++; // 如果++在变量之后,是先将变量的值赋值后,自己再加1操作
System.out.println("r = " + r + ", a = " + a); // r = 10, a = 11
int b = 5;
r = ++b; // 如果 ++ 在变量之前,是先将变量做加1操作后,再把结果赋值给变量
System.out.println("r = " + r + ", b = " + b); // r = 6, b = 6
int c = 6;
int s = ++c + c++ + c++ + ++c;
/**
* 7 + c++ + c++ + ++c; c = 7
* 7 + 7 + c++ + ++c; c = 8
* 7 + 7 + 8 + ++c; c = 9
* 7 + 7 + 8 + 10; c = 10
*/
System.out.println("s = " + s + ", c = " + c); // s = 32, c = 10
}
}
public class ArithmeticOperator03 {
public static void main(String[] args) {
int a = 5;
int r = a--; // 如果 -- 在变量之后,是先将变量的值赋值给别的变量后,自己再减1
System.out.println("r = " + r + ", a = " + a);
int b = 5;
r = --b; // 如果 -- 在变量之前,是先自己执行减1操作后,再将结果赋值给别的变
量。
System.out.println("r = " + r + ", b = " + b);
int c = 6;
int s = --c + c++ + c-- + ++c;
/**
* --c + c++ + c-- + ++c;
* 5 + c++ + c-- + ++c; c = 5
* 5 + 5 + c-- + ++c; c = 6
* 5 + 5 + 6 + ++c; c = 5
* 5 + 5 + 6 + 6; c = 6
*/
System.out.println("s = " + s + ", c = " + c); // s = 22, c = 6
}
}

通过加法和减法运算符,实现两个数的交换操作:

public class ArithmeticOperator04 {
public static void main(String[] args) {
// 需求:使用 + 和 - 运算符实现两个数的交换
int a = 3;
int b = 4;
System.out.println("a = " + a + ", b = " + b);
//int tmp = 0;
//tmp = a;
//a = b;
//b = tmp;
a = a + b;
b = a - b;
a = a - b;
System.out.println("a = " + a + ", b = " + b);
}
}

6.2 比较运算符

在 Java 中比较运算符包括 大于(>)、大于等于(>=)、等于(==)、小于(<)、小于等于(<=)、不等于(!=) 对比较运算符,运算后的结果是一个布尔类型的值。

public class ComparisonOperator01 {
public static void main(String[] args) {
int a = 6;
int b = 6;
System.out.println(a > b); //false
System.out.println(a >= b); // true
System.out.println(a < b); // false
System.out.println(a <= b); // true
System.out.println(a == b); // true
System.out.println(a != b); // false
}
}

6.3 逻辑运算符

逻辑运算符中包括与(&&)、或(||)、非(!),他们运算的结果也是布尔类型的值

public class LogicalOperator01 {
public static void main(String[] args) {
boolean f1 = true;
boolean f2 = false;
boolean f3 = false;
boolean f4 = true;
// 使用 && 操作时,在这个运算符的前后值都是 true 时,结果才为 true;否则结果为
false
System.out.println(f1 && f2); // true && false = false
System.out.println(f3 && f1); // false && true = false
System.out.println(f1 && f4); // true && true = true
System.out.println(f2 && f3); // false && false = false
System.out.println("-------------------");
// 当使用 || 操作时,在这个运算符前后的值只要有一个是 true 结果就为 true,否则
结果为 false
System.out.println(f1 || f2); // true || false = true
System.out.println(f3 || f1); // false || true = true
System.out.println(f1 || f4); // true || true = true
System.out.println(f2 || f3); // false || false = false
System.out.println("-------------------");
// 使用 ! 运算符,如果原来的值是 true 取反后值为 false;如果原来的值是 false,
取后结果为 true
System.out.println(!f1); // !true = false
System.out.println(!f2); // !false = true
}
}
当我们把比较运算符和逻辑运算符相结合使用时:public class LogicalOperator02 {
public static void main(String[] args) {
int a = 5;
int b = 6;
boolean c = true;
System.out.println(a > b && c); // false
System.out.println(a > b || c); // true
}
}
  • &&运算符的短路效果是:当表达中找到 false 后,后面的值就不计算了,直接返回 false 值。
  • ||运算符的短路效果是:当表达中找到 true 后,后面的值就不计算了,直接返回 true 值。
算术运算符与逻辑运算符也可以综合使用,演示短路效果:public class LogicalOperator03 {
public static void main(String[] args) {
int a = 5;
boolean f1 = true;
System.out.println(f1 || a/0 == 0);
boolean f2 = false;
System.out.println(f2 && a/0 == 0);;
}
}

6.4 位移运算符

位移运算包括左移 << 、右移 >> ,无符号左移 <<<,以及无符号右移 >>>

public class ShiftBitwiseOperators01 {
public static void main(String[] args) {
// 需求:计算 2 的 3 平方
int a = 2;
int r = a * a * a;
System.out.println(r);
r = a << 2;
System.out.println(r);
}
}

使用位移运算符来实现两个数据的交换:

public class ShiftBitwiseOperators02 {
public static void main(String[] args) {
int a = 3;
int b = 4;
System.out.println("a = " + a + ", b = " + b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println("a = " + a + ", b = " + b);
}
}

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

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

相关文章

Calendar日历类

Calendar 类是一个抽象类&#xff0c;为我们提供了关于日期计算的功能&#xff0c;比如&#xff1a;年、月、日、时、分、秒的展示和计算。 GregorianCalendar 是Canlendar 的子类&#xff0c;表示公历。 注&#xff1a;月份的表示&#xff0c;一月是0&#xff0c;二月是1&am…

【echart】数据可视化+vue+vite遇到问题

1、vue3使用echars图表报错&#xff1a;"Initialize failed:invalid dom" 原因是因为&#xff1a;Dom没有完成加载时&#xff0c;echarts.init() 就已经开始执行了&#xff0c;获取不到Dom&#xff0c;无法进行操作 解决&#xff1a;加个延时 onMounted(async () …

Elasticsearch相关问题

相关问题&#xff1a; 1、Elasticsearch.Net和NEST的区别&#xff1f; Elasticsearch 官方为 .NET 提供了 2 个官方客户端库&#xff1a;Elasticsearch.Net 和 NEST。 Elasticsearch.Net 和 NEST对比说明&#xff1a; 可以简单理解为 Elasticsearch.Net 是 NEST的一个子集。N…

MATLAB:优化与规划问题

一、线性规划 % 线性规划&#xff08;Linear programming, 简称LP&#xff09; fcoff -[75 120 90 105]; % 目标函数系数向量 A [9 4 7 54 5 6 105 10 8 53 8 9 77 6 4 8]; % 约束不等式系数矩阵 b [3600 2900 3000 2800 2200]; % 约束不等式右端向量 Aeq []; % 约束等式系…

实验2-spark编程

实验目的 &#xff08;1&#xff09;通过实验掌握Spark的基本编程方法&#xff1b; &#xff08;2&#xff09;熟悉RDD到DataFrame的转化方法&#xff1b; &#xff08;3&#xff09;熟悉利用Spark管理来自不同数据源的数据。 实验内容 1&#xff0e;Spark基本操作 请参照…

[TS面试]TS中如何设计Class声明

TS中如何设计Class声明 class Greeter{greeting: string;constructor(message:string){this.greeting message}getGreeting():string{return this.greeting}sayGreeting():string{return Say ${this.greeting}} } const greeter new Greeter(Hello)

ROUYI框架地址

1、原版系统地址与文档 https://gitee.com/dromara/RuoYi-Cloud-Plus?_fromgitee_search 源码地址 https://plus-doc.dromara.org/#/ruoyi-cloud-plus/home 后端地址 https://plus-doc.dromara.org/#/plus-ui/home 前端地址 前端代码地址&#xff1a; RuoYi-Vue-Plus: 多租户…

maven的依赖继承

先说一下创建子maven工程的步骤 继承 继承的作用&#xff1a;在父工程中&#xff0c;统一管理项目中的依赖信息&#xff0c;进行统一的版本控制 继承的背景是&#xff1a;对一个大型的项目进行了模块拆分&#xff0c;一个project下&#xff0c;创建了很多的module&#xff0c…

东特科技现已加入2024第13届国际生物发酵产品与技术装备展

参展企业介绍 温州东特科技有限公司是一家集设计、生产、销售及服务为一体的卫生级流体设备企业。专业从事各种乳食品、制药、化工、啤酒设备、不锈钢卫生级阀门&#xff0c;管件&#xff0c;视镜&#xff0c;及非标配件定制等产品的销售与服务。先进的设计理念专业的技术优势一…

为啥从我激情满满的要做前端开发,到现在不断的怀疑自己能不能学会?

一开始&#xff0c;我对前端开发充满了热情和期待&#xff0c;认为只要努力就能掌握那些看似复杂的技能&#xff0c;比如HTML、CSS和JavaScript等基础技能&#xff0c;就能够构建出功能丰富、交互性强的网页应用。 然而&#xff0c;随着学习的深入&#xff0c;我发现前端开发远…

matlab 复制点云

目录 一、概述1、算法概述2、主要函数3、参考文献二、代码实现三、结果展示四、参考链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述 1、算法概述

鸿蒙开发之AES加解密

密码学中的高级加密标准&#xff08;Advanced Encryption Standard&#xff0c;AES&#xff09;&#xff0c;又称Rijndael加密法&#xff0c;是美国联邦政府采用的一种区块加密标准。 简介 这个标准用来替代原先的DES&#xff08;Data Encryption Standard&#xff09;&#x…

docker部署ubuntu

仓库&#xff1a; https://hub.docker.com/search?qUbuntu 拉一个Ubuntu镜像 docker pull ubuntu:18.04 查看本地镜像&#xff1a; docker images 运行容器 docker run -itd --name ubuntu-18-001 ubuntu:18.04 通过ps命令可以查看正在运行的容器信息 docker ps 进入容器 最…

数据文件操作

一、什么是文件&#xff1f; 硬盘&#xff08;磁盘&#xff09;上的文件是文件。 在程序设计中&#xff0c;我们从文件功能的角度来分类的话&#xff0c;可以分为程序文件和数据文件。 1.1程序文件 程序文件包含源程序文件&#xff08;后缀为.c&#xff09;&#xff0c;目标文…

CAN总线系列一:初识CAN总线

CAN协议简介 CAN是控制器局域网络(Controller Area Network)的简称&#xff0c;它是由研发和生产汽车电子产品著称的德国BOSCH公司开发的&#xff0c;并最终成为国际标准&#xff08;ISO11519&#xff09;&#xff0c;是国际上应用最广泛的现场总线之一。 一、总线特点&#…

夜晚水闸3D可视化:科技魔法点亮水利新纪元

在宁静的夜晚&#xff0c;当城市的霓虹灯逐渐暗淡&#xff0c;你是否曾想过&#xff0c;那些默默守护着城市安全的水闸&#xff0c;在科技的魔力下&#xff0c;正焕发出别样的光彩&#xff1f;今天&#xff0c;就让我们一起走进夜晚水闸3D模型&#xff0c;感受科技为水利带来的…

物联网实战--入门篇之(一)物联网概述

目录 一、前言 二、知识梳理 三、项目体验 四、项目分解 一、前言 近几年很多学校开设了物联网专业&#xff0c;但是确却地讲&#xff0c;物联网属于一个领域&#xff0c;包含了很多的专业或者说技能树&#xff0c;例如计算机、电子设计、传感器、单片机、网…

uniapp框架中H5模式选择图片后Blob对象的使用

在uniapp框架中使用uni.chooseImage()时,发现在浏览器访问的情况下,res的数据结构如下,和在小程序访问下的结果不一样。 { "errMsg":"chooseImage:ok", "tempFilePaths":["blob:http://localhost:8080/53ff91e0-9730-4c89-95d7-1e29466…

C语言如何实现函数单个形参添加默认值

前言 &#xff08;1&#xff09;如果有嵌入式企业需要招聘湖南区域日常实习生&#xff0c;任何区域的暑假Linux驱动实习岗位&#xff0c;可C站直接私聊&#xff0c;或者邮件&#xff1a;zhangyixu02gmail.com&#xff0c;此消息至2025年1月1日前均有效 &#xff08;2&#xff0…

大话设计模式之简单工厂模式

简单工厂模式&#xff08;Simple Factory Pattern&#xff09;是一种创建型设计模式&#xff0c;属于工厂模式的一种。在简单工厂模式中&#xff0c;有一个工厂类负责根据输入参数的不同来创建不同类的实例。 简单工厂模式包含以下几个要素&#xff1a; 1. **工厂类&#xff0…