Java零基础教程——数据类型
目录
- 数据类型
- 数据类型的分类
- 运算符
- 算术运算符
- +符号做连接符的识别
- 自增、自减运算符
- 赋值运算符
- 关系运算符
- 逻辑运算符
- 短路逻辑运算符
- 三元运算符
- 运算符优先级
数据类型

数据类型的分类
引用数据类型(除基本数据类型之外的,如String )
基本数据类型:4大类8种。
- 第 1 类:整数型(不带小数的数字):byte,short,int,long
- 第 2 类:浮点型(带小数的数字):float,double
- 第 3 类:字符型(文字,单个字符):char
- 第 4 类:布尔型(真和假):boolean
格式:数据类型 变量名称 = 初始值;
byte a = 1;short a =1;int a =1;char a ="a";float a =1.1;double a =1.1;long a =1;booleana =true;

注:1字节数(1B)=8比特(8bit)
byte 1B (8位) (8bit)
short 2B (16位)(16bit)
int 4B (32位)(32bit)
char 2B (16位)(16bit)
float 4B (32位)(32bit)
double 8B(64位)(64bit)
long 8B (64位)(64bit)
boolean 1B(8位)(8bit)
//char可以赋值给int,赋的是ASCII码
自动类型转换:
-
在表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算。
-
类型范围小的变量,可以直接赋值给类型范围大的变量
-
byte short char是直接转换成int类型参与运算的。
强制类型转换
可以强行将类型范围大的变量、数据赋值给类型范围小的变量。
数据类型 变量2 = (数据类型)变量1、数据
int a = 20;
byte b = (byte)a;
注意事项
- 强制类型转换可能造成数据(丢失)溢出;
- 浮点型强转成整型,直接丢掉小数部分,保留整数部分返回。
- 强制类型转换是可以强行将类型范围大的变量、数据赋值给类型范围小的变量。
强制类型转换有哪些需要注意的?
-
可能出现数据丢失。
-
小数强制转换成整数是直接截断小数保留整数
运算符
运算符:对字面量或者变量进行操作的符号。
算术运算符
| 符号 | 作用 | 说明 |
|---|---|---|
| + | 加 | |
| - | 减 | |
| * | 乘 | |
| / | 除 | 与“÷”相同,注意:在Java中两个整数相除结果还是整数。 |
| % | 取余 | 获取的是两个数据做除法的余数 |
注意:如果两个整数做除法,其结果一定是整数,因为最高类型是整数
+符号做连接符的识别
public static void main(String[] args) {int a = 5 ;System.out.println("abc" + 'a'); // abcaSystem.out.println("abc" + a); // abc5System.out.println(5 + a); // 10System.out.println("abc" + 5 + 'a'); // abc5aSystem.out.println(15 + "abc" + 15); // 15abc15System.out.println(a + 'a'); // 102System.out.println(a + "" +'a'); // 5aSystem.out.println(a + 'a'+" itheima "); // 102 itheimaSystem.out.println("itheima"+ a + 'a'); // itheima5aSystem.out.println("itheima"+ ( a + 'a' ));// itheima102
}

自增、自减运算符
| 符号 | 作用 | 说明 |
|---|---|---|
| ++ | 自增 | 变量自身的值加1 |
| – | 自减 | 变量自身的值减1 |
// 在表达式中或者不是单独操作的情况,++ -- 在变量前后存在区别
// ++ -- 在变量前面。先+1 -1 再使用。
int i = 10;
int j = ++i;
System.out.println(i); // 11
System.out.println(j); // 11// ++ -- 在变量的后面 先使用再+1 -1
int m = 10;
int n = m++;
System.out.println(m); // 11System.out.println(n); // 10

自增、自减运算符是什么,有什么作用,需要注意什么?
-
++、–。对当前变量值+1、-1
-
只能操作变量,不能操作字面量
自增、自减运算符在变量前后有区别吗?
- 如果单独使用放前后是没有区别的。
- 非单独使用:在变量前 ,先进行变量自增/自减,再使用变量。
- 非单独使用:在变量后 ,先使用变量,再进行变量自增/自减
赋值运算符
就是"="。
int a = 10; // 先看“=”右边,把数据10赋值给左边的变量a存储。
扩展赋值运算符
| 符号 | 作用 | 说明 |
|---|---|---|
| += | 加后赋值 | a+=b 等价于 a = (a的数据类型)(a+b); 将a + b的值给a |
| -= | 减后赋值 | a-=b 等价于 a = (a的数据类型)(a-b); 将a - b的值给a |
| *= | 乘后赋值 | a*=b 等价于 a = (a的数据类型)(a*b); 将a ***** b的值给a |
| /= | 除后赋值 | a/=b 等价于 a = (a的数据类型)(a/b); 将a / b的商给a |
| %= | 取余后赋值 | a%=b 等价于 a = (a的数据类型)(a%b); 将a % b的商给a |
注意:扩展的赋值运算符隐含了强制类型转换。
关系运算符
是对数据进行条件判断的符号,最终会返回一个比较的布尔结果(false,true)。
| 符号 | 说明 |
|---|---|
| == | a==b,判断a和b的值是否相等,成立为true,不成立为false |
| != | a!=b,判断a和b的值是否不相等,成立为true,不成立为false |
| > | a>b, 判断a是否大于b,成立为true,不成立为false |
| >= | a>=b,判断a是否大于等于b,成立为true,不成立为false |
| < | a<b, 判断a是否小于b,成立为true,不成立为false |
| <= | a<=b,判断a是否小于等于b,成立为true,不成立为false |
注意:在做相等判断是,千万不要把 == 误写成 =
逻辑运算符
可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果。
| 符号 | 介绍 | 说明 |
|---|---|---|
| & | 逻辑与 | 必须都是true,结果才是true; 只要有一个是false,结果一定是false。 |
| | | 逻辑或 | 只要有一个为true、结果就是true |
| ! | 逻辑非 | 你真我假、你假我真。 !true=false 、 !false= true |
| ^ | 逻辑异或 | 如果两个条件都是false或者都是true则结果是false。两个条件不同结果是true。 |
double A = 9;double B = 6;// 需求:A大于等于6.5 B要大于等于8// 注意:必须前后都是true结果才是trueSystem.out.println("------- 与:& --------");System.out.println(A >= 6.5 & B >=8);// 需求:要么A大于等于8 要么B大于等于6.5// 注意:只要有一个是true 结果就一定是trueSystem.out.println("------- 或:| --------");System.out.println(A >= 6.5 | B >=8);System.out.println("------- 非:! --------");System.out.println(!true);System.out.println(!false);// 逻辑异或:必须两个不同结果才是trueSystem.out.println("-------异或:^ --------");System.out.println(false ^ true); // trueSystem.out.println(true ^ false); // trueSystem.out.println(true ^ true); // falseSystem.out.println(false ^ false); // false

短路逻辑运算符
| 符号 | 介绍 | 说明 |
|---|---|---|
| && | 短路与 | 判断结果与“&”一样。过程是左边为 false**,右边则不执行。** |
| || | 短路或 | 判断结果与“|”一样。过程是左边为 true**, 右边则不执行。** |
注意:逻辑与 “&” 、逻辑或“|”: 无论左边是 false还是 true,右边都要执行。
System.out.println("-----------&& & || |的区别-------------------");int a = 10;int b = 20;// System.out.println(a > 100 && ++b > 10);System.out.println(a > 100 & ++b > 10);System.out.println(b);int i = 10;int j = 20;//System.out.println(i > 2 || ++j > 10);System.out.println(i > 2 | ++j > 10);System.out.println(j);

逻辑运算符有哪些,有什么特点?
- 逻辑与“&” :有一个为false、结果是false
- 短路与&&: 一个为false、结果是false。前一个为false,后一个条件不执行了
- 逻辑或“|”:有一个为true、结果是true
- 短路或||:一个为true、结果是true。前一个为true,后一个条件不执行了
- 逻辑非“!”:!false=true、 !true=false
- 逻辑异或“^” :相同是false、不同是true。
- 注意:实际开发中、常用的逻辑运算符还是:&& 、 || 、 !
三元运算符
格式:条件表达式 ? 值1 : 值2;
执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2。
案例-求三个整数的最大值
需求:定义三个整数,找出最大值并打印在控制台。
分析:
-
用三元运算符获取前两个整数的最大值,并用临时变量保存起来。
num1 > num2 ? num1 : num2;
-
用三元运算符,让临时最大值,和第三个整数,进行比较,并记录结果。
temp > num3 ? temp : num3;
-
输出结果
int num1 = 10;int num2 = 30;int num3 = 20;
int temp = (num1 > num2) ? num1 : num2;
max = (temp > num3) ? temp : num3;
或者
int max = ((num1 > num2 ? num1 : num2) > num3) ? (num1 > num2 ? num1 : num2) : num3;(建议不用这种)
System.out.println(max);
运算符优先级

相关文章:
Java零基础教程——数据类型
目录数据类型数据类型的分类运算符算术运算符符号做连接符的识别自增、自减运算符赋值运算符关系运算符逻辑运算符短路逻辑运算符三元运算符运算符优先级数据类型 数据类型的分类 引用数据类型(除基本数据类型之外的,如String ) 基本数据类…...
【Linux 信号】信号的产生方式、信号的捕捉的全过程
信号的处理方式是远远比信号的产生当闹钟响了就知道时间到了,说明对应信号处理方法比信号产生更早操作系统的信号处理方法在编写操作系统的时候就已经编写好了signal函数1.1所有的信号1.2 signal函数的概念和简单使用捕捉信号就是自定义对应的信号的处理方法9号信号…...
代码随想录第58天(动态规划):● 392.判断子序列 ● 115.不同的子序列
一、判断子序列 题目描述: 思路和想法: 这道题目还是最长公共子序列的拓展,只是这里进行删除的一定是t字符串,当不相等时,dp[i][j] dp[i][j - 1];其余基本一致。当最长公共子序列个数等s.size()时&#x…...
代码随想录第55天(动态规划):● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费
一、最佳买卖股票时机含冷冻期 题目描述: 思路和想法: 这道题相较于之前的题目,注重对状态的分析,这里分为四个状态。 (1)状态一,买入状态 dp[i][0] 操作一:前一天就是持有状态(状…...
字符串装换整数(atoi)-力扣8-java
一、题目描述请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未…...
毕业5年,从月薪3000到年薪40w,我掌握了那些核心技能?(建议收藏)
大家好,我是静静~~是一枚一线大厂的测试开发工程师很多读者私信问我,自己时间不短了,随着工作年限的不断增长,感觉自己的技术水平与自己的工作年限严重不符。想跳槽出去换个新环境吧,又感觉自己的能力达不到心仪公司的…...
C++中的并行与并发
1.1 并行基础std::thread 用于创建一个执行的线程实例,所以它是一切并发编程的基础,使用时需要包含 <thread> 头文件, 它提供了很多基本的线程操作,例如 get_id() 来获取所创建线程的线程 ID,使用 join() 来加入…...
h2database源码解析-如何更新一条行记录
这里的更新包括两种操作:删、改。更新操作涉及的内容在其他文章里面已经做过介绍了,本文主要是介绍更新的代码流程,以了解更新操作都做了哪些事情。如果有未介绍过的知识点会详细介绍。 目录改(update)如何判读是否加了行锁删(delete)改(upda…...
FyListen——生命周期监听器(设计原理之理解生命周期)
FyListen——生命周期监听器(设计原理之理解生命周期) FyListen 的核心原理有两个: 通过子Fragment对Activity、Fragment进行生命周期监听Java8 接口特性 default 1. 什么是上下文Context 这是一个装饰器模式, ContextImpl 是 …...
Element UI框架学习篇(六)
Element UI框架学习篇(六) 1 删除数据 1.1 前台核心函数 1.1.1 elementUI中的消息提示框语法 //①其中type类型和el-button中的type类型是一致的,有info灰色,success绿色,danger红色,warning黄色,primary蓝色 //②message是你所要填写的提示信息 //③建议都用,因为比双引号…...
Python如何安装模块,python模块安装失败的原因以及解决办法
前言 今天来给刚开始学习python的朋友讲解一下 如何安装python模块, python模块安装失败的原因以及解决办法 很多朋友拿到代码之后,就开始复制粘贴 --> 然后右键进行运行 结果就是报错说 没有这个模块 得安装啥的 Python模块安装 一. 打开命令提示符 win …...
《NFL橄榄球》:洛杉矶闪电·橄榄1号位
洛杉矶闪电(英语:Los Angeles Chargers),又译“洛杉磯衝鋒者”。是一支位于加利福尼亚州洛杉矶郡英格尔伍德的职业美式橄榄球球队,现为美国橄榄球联合会西区成员之一。该队曾于1961年搬迁到圣地亚哥而改叫圣地亚哥电光…...
4.7 Python设置代码格式
随着你编写的程序越来越长,有必要了解一些代码格式设置约定。请花时让你的代码尽可能易于阅读;让代码易于阅读有助于你掌握程序是做什么的,也可以帮助他人理解你编写的代码。为确保所有人编写的代码的结构都大致一致,Python程序员都遵循一些格…...
Zabbix 构建监控告警平台(五)
Zabbix 自动发现Zabbix 自动注册1.Zabbix 自动发现 1.1前言 为了满足监控企业成千上万台服务器,因此我们需要使用Zabbix批量监控来实现。自动发现和自动注册。 1.2zabbix-server (一)1、创建自动发现规则 在“配置”->“自动发现”->“…...
2023关键词:挑战
未失踪人口回归… 好久不见,不经意间拖更2个多月。今天周末,外面淅淅沥沥下着小雨,这种窝在床上的时刻最适合写点东西了。 但是建议大家在办公或者写博客的时候尽量还是端正坐姿,我就是因为喜欢这样靠在床背上,长时间…...
Wifi wpa_supplicant 到驱动的联系
同学,别退出呀,我可是全网最牛逼的 WIFI/BT/GPS/NFC分析博主,我写了上百篇文章,请点击下面了解本专栏,进入本博主主页看看再走呗,一定不会让你后悔的,记得一定要去看主页置顶文章哦。 从framework到wpa_supplicant的适配层,其中framework部分需要了注意的是wifiservic…...
【状态估计】基于二进制粒子群优化 (BPSO) 求解最佳 PMU优化配置研究【IEEE30、39、57、118节点】(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
python 将 .pdf 文件转为 .md
环境准备 pip install aspose-words 代码 doc aw.Document(r"pdf 文件路径\xxx.pdf") doc.save("Output.md") 来源:https://products.aspose.com/words/zh/python-net/conversion/...
【C语言】操作符详解
每天一篇博客,卷死各位。 文章目录前言1. 算术操作符2. 移位进制位的表示移位操作符1. 》--左移操作符2. 《--右移操作符3.位操作符4.赋值操作符5.单目操作符6.关系操作符7. 逻辑操作符8.条件操作符9.逗号操作符总结前言 在c语言学习中操作符尤为重要,而…...
微信小程序 学生选课系统--nodejs+vue
系统分为学生和管理员,教师三个角色 学生小程序端的主要功能有: 1.用户注册和登陆系统 2.查看选课介绍信息 3.查看查看课程分类 4.查看课程详情,在线选课,提交选课信息 5.在线搜索课程信息 6.用户个人中心修改个人资料 7.用户查看…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
