【Java】详细讲解数据类型与运算符

ops/2025/2/21 16:35:38/

🏠大家好,我是Yui_💬
🍑如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🚀如有不懂,可以随时向我提问,我会全力讲解~
🔥如果感觉博主的文章还不错的话,希望大家关注、点赞、收藏三连支持一下博主哦~!
🔥你们的支持是我创作的动力!
🧸我相信现在的努力的艰辛,都是为以后的美好最好的见证!
🧸人的心态决定姿态!
💬欢迎讨论:如有疑问或见解,欢迎在评论区留言互动。
👍点赞、收藏与分享:如觉得这篇文章对您有帮助,请点赞、收藏并分享!
🚀分享给更多人:欢迎分享给更多对编程感兴趣的朋友,一起学习!

在这里插入图片描述

文章目录

  • 1.变量和类型
    • 1.1 整型变量
    • 1.2 长整形变量
    • 1.3 双精度浮点型变量
    • 1.4 单精度浮点数
    • 1.5字符类型变量
    • 1.6 字节类型变量
    • 1.7 短整型变量
    • 1.8 布尔类型变量
    • 1.9 字符串类型变量
      • 1.9.1 字符串拼接
    • 1.10 变量的作用域
    • 1.11 变量的命名规则
  • 2. 运算符
    • 2.1 算术运算符
    • 2.2 关系运算符
    • 2.3 逻辑运算符
    • 2.4 位运算符
  • 3. 总结

1.变量和类型

变量指的程序运行时可以改变的量,是在内存开辟的一段空间存储的一些数据。
类型则是对变量的种类进行了划分,不同的类型的变量具有不同的特性。

1.1 整型变量

语法:

java">int 变量名 = 初始值;
java">int a = 100;
System.out.print(a);

注意:

  • int表示变量的类型是一个整型。
  • 变量名是变量的标识,后续就是通过变量名来使用这个变量的。
  • java中的=是用来赋值的,数学中的相同用==来表示。
  • 定义变量时是否初始化是可选择的,不过建议赋一个值。
  • 记得加;,这不是python。
    java中,整型也是占4个字节。字节是什么东西就不需要我再科普了吧。
    4个字节可以表示的数据范围:-2^32 ~ 2^32-1
    打印整型的最大于最小数据:
java">public class Main {  public static void main(String[] args) {  System.out.println(Integer.MAX_VALUE);  System.out.println(Integer.MIN_VALUE);  }  
}
//打印结果:
/*
2147483647
-2147483648
*/

如果我们超出最大范围会怎么样呢?
数据会溢出!
为了避免数据溢出的情况,java也提供了具有更大数据范围的类型,long

1.2 长整形变量

语法格式:

java">long 变量名 = 初始值;

使用:

java">long a = 100L;
System.out.print(a);
  • 初始值设定为10L,表示的是一个长整形的数字,当然写成10l也可以。
  • 单纯使用10表示的整型,虽然会继续整型提升为long,但是直接使用10L初始化还是更好一点。
    java中long的数据范围-2^64 ~ 2^64-1
java">System.out.println(Long.MAX_VALUE);  
System.out.println(Long.MIN_VALUE);
//打印结果:
/*
9223372036854775807
-9223372036854775808
*/

这种数据范围,还是能够支持绝大多数的场景的。

1.3 双精度浮点型变量

语法格式:

java">double 变量名 = 初始值;
java">int a = 1;
int b = 2;
System.out.print(a/b);//打印结果:0

Java中也有与C语言相同的截断操作,整型运算的结果一定是整型,小数部分会直接截断。
为了计算小数部分,java也提供了浮点型。

java">double a = 1;
double b = 2;
System.out.print(a/b);
//打印结果:0.5

double的误差

java">double num = 1.1;
System.out.print(num*num);//打印结果:1.2100000000000002

java的double类型的内存布局遵循IEEE754标准,尝试使用有限的内存空间表示无限的小数,势必存在一定的误差。

1.4 单精度浮点数

格式:

java">float 变量名 = 初始值;

代码实例:

java">float num = 1.0f;
System.out.print(num);

float类型再java中占4个字节,同样遵循IEEEE754标准,由于表示的数据精度范围较小,一般在工程中优先考虑double,不太使用float。

1.5字符类型变量

格式:

java">char 变量名 = 初始值;

代码实例:

java">char ch = 'A';
  • java中使用单引号 + 单个字母的形式表示字符字面值。
  • 计算机中的字符本质是一个整型,在C语言中使用ASCII表示字符,但是在java中使用Unicode表示字符,因此一个字符会占两个字节,表示的字符种类更多,也能表示中文了。
java">char chinese = '我';
System.out.print(chinese);//打印结果:我

执行javac如果出现错误,加上以下内容:

java">javac -encoding UTF-8 Test.java

1.6 字节类型变量

语法:

java">byte 变量名 = 初始值;

代码实例:

java">byte value = 0;
System.out.print(value);
//0
  • 字节类型表示的也是整数,只占一个字节,表示的范围小。\[-128,+127]
  • 字节类型与字符类型不相干

1.7 短整型变量

语法:

java">short 变量名 = 初始值;

代码实例:

java">short value = 0;
System.out.print(value);
  • short占用2个字节,数据范围:\[-32768,+32767]。
  • 表示范围小,一般不用。

1.8 布尔类型变量

语法:

java">boolean 变量名 = 初始值;

代码实例:

java">boolean value = False;
System.out.print(value);
//False
  • boolean类型的变量只有两种取值,True表示真,False表示假。
  • java的boolean类型和int类型不能相互转换,不能和C/C++那样0表示假,非0表示真
  • boolean类型有些JVM的实现占一个字节,有些占一个比特位,没有明确规定。

1.9 字符串类型变量

字符串就是一些字符的集合。
语法:

java">String 变量名 = "初始化";

代码实例:

java">String name = "yui";
System.out.print(name);
//yui
  • java使用双引号和一些字符来表示字符串的字面值。
  • 与前面的类型不同,String不是基本类型,而是引用类型
  • 字符串中的一些特定的不太方便的直接表示的字符需要进行转义。
java">String name = "my name is \"yui\"";

大家可以去百度一些常见的转义字符。

1.9.1 字符串拼接

字符串与字符串拼接

java">String str = "hello ";
String str2 = "world";
String str3 = str + str2;
System.out.print(str3);
//hello world

字符串与整数拼接

java">String str = "hahaha";
int a = 100;
String mix = str+a;
System.out.print(mix);
//hahaha100

这段代码也就说明了,当+表达式中存在字串时,都是执行字符串拼接行为,这也就导致了我们在打印数据时,可以利用这一点。

java">int a = 100;
int b = 200;
System.out.print("a = "+a+",b = "+b);

1.10 变量的作用域

就是该变量能生效的范围,一般是变量定义所在的代码块(大括号)

java">class Test{public static void main(String[] args){{int x = 10;System.out.println(x);//编译通过}System.out.println(x);//编译不通过}
}

1.11 变量的命名规则

硬性指标:

  1. 一个变量名只能包含数字, 字母, 下划线
  2. 数字不能开头.
  3. 变量名是大小写敏感的. 即 num 和 Num 是两个不同的变量.
    注意: 虽然语法上也允许使用中文/美元符($)命名变量, 但是 强烈 不推荐这样做.
    软性指标:
  4. 变量命名要具有描述性, 见名知意.
  5. 变量名不宜使用拼音(但是不绝对).
  6. 变量名的词性推荐使用名词.
  7. 变量命名推荐 小驼峰命名法, 当一个变量名由多个单词构成的时候, 除了第一个单词之外, 其他单词首字母都大

2. 运算符

2.1 算术运算符

就是基本的四则运算+ - * /加上%(取模)

  • 增量赋值运算符+= -= *= /= %=
java">int a = 10;
a+=1; // a = a + 1
  • 自增/自减运算符++/--
java">int a = 10;
a++;
/*
a = a
a = a+1
*/++a;
/*
a = a+1;
a = a;
*/

2.2 关系运算符

java">== != < > <= >=

注意: 关系运算符的表达式返回值都是 boolean 类型

2.3 逻辑运算符

java">&& || !

注意: 逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是 boolean
你只要知道:

  • &&等同于
  • ||等同于
  • !等同于
    就可以了。

2.4 位运算符

Java 中对数据的操作的最小单位不是字节, 而是二进制位.
位运算符主要有四个:

java">& | ~ ^

位操作表示 按二进制位运算. 计算机中都是使用二进制来表示数据的(01构成的序列), 按位运算就是在按照二进制位的
每一位依次进行计算

3. 总结

Java 类型汇总. 以上的内容介绍的是基本数据类型,后续会给大家介绍引用数据类型。
由于 Java 是强类型语言, 因此对于类型检查较严格, 因此像 && 之类的运算操作数必须是 boolean,整体来看, Java 的运算符的基本规则和 C 语言基本一致。


http://www.ppmy.cn/ops/160285.html

相关文章

PHP+Apache+MySQL安装(Windows)

一、安装教程 参考链接1 参考链接2 二、问题描述 PHP安装目录下找不到php8apache2_4.dll PHP安装包下载错误 Apache Service Monitor: request operation has failed! 定位问题&#xff1a; 查看【事件查看器】 解决问题 安装或更新与PHP版本相对应的Visual C Redistribu…

分布式大语言模型服务引擎vLLM论文解读

论文地址&#xff1a;Efficient Memory Management for Large Language Model Serving with PagedAttention 摘要 大语言模型&#xff08;LLMs&#xff09;的高吞吐量服务需要一次对足够多的请求进行批处理。然而&#xff0c;现有系统面临困境&#xff0c;因为每个请求的键值…

Ubuntu安装PostgreSQL

安装 sudo apt update sudo apt install -y postgresql postgresql-client 启动服务 sudo systemctl start postgresqlsudo systemctl enable postgresql 配置文件目录 /etc/postgresql/{version}/main/ 配置新用户、新数据库 sudo -u postgres psql# 新建用户&#xf…

【蓝桥杯集训·每日一题2025】 AcWing 6122. 农夫约翰的奶酪块 python

Week 1 2月17日 农夫约翰的奶酪块 农夫约翰有一块立方体形状的奶酪&#xff0c;它位于三维坐标空间中&#xff0c;从 ( 0 , 0 , 0 ) (0,0,0) (0,0,0) 延伸至 ( N , N , N ) (N,N,N) (N,N,N)。 农夫约翰将对他的奶酪块执行一系列 Q Q Q 次更新操作。 对于每次更新操作&…

图解长短期记忆网络(LSTM)

目录 ​编辑 1.长短期记忆网络介绍 2.网络结构 3.模型工作示例 1.长短期记忆网络介绍 在传统的循环神经网络&#xff08;RNN&#xff09;中&#xff0c;神经网络通过循环结构处理序列数据&#xff0c;但存在一个严重的问题&#xff1a;梯度消失和梯度爆炸。这意味着网络很…

鸿道Intewell操作系统:赋能高端装备制造,引领国产数控系统迈向新高度

在当今全球制造业竞争日益激烈的时代&#xff0c;高端装备制造作为国家核心竞争力的重要组成部分&#xff0c;其发展水平直接影响着一个国家的综合实力。而CNC数控系统&#xff0c;作为高端装备制造的“大脑”&#xff0c;对于提升装备的精度、效率和智能化水平起着关键作用。鸿…

如何使用动画和日期差值来切换和展示任务-计划时钟(微信小程序)

微信小程序-计划时钟已上线&#xff0c;欢迎各位小伙伴的测试和使用~&#xff08;微信小程序搜计划时钟即可使用&#xff09; 在这篇博客中&#xff0c;我们将介绍如何使用 JavaScript 和微信小程序的 wx.createAnimation API 来实现基于日期差值的切换动画。我们还会展示如何…

物联网简介集合

物联网&#xff08;IoT&#xff09;指的是物理设备&#xff08;如电器和车辆&#xff09;之间的互联互通。这些设备嵌入了软件、传感器和连接功能&#xff0c;使其能够相互连接并交换数据。这项技术实现了从庞大的设备网络中收集和共享数据&#xff0c;为打造更高效、自动化的系…