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.用户查看…...
leaflet 加载geojson文件并显示图形(示例代码051)
第051个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中加载geojson文件,将图形显示在地图上。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果OpenStreetMap无法加载,请加载其他来练习 文章目录 示例效果配置方式示例源代码(…...
【Kafka】ZK和Kafka集群的安装和配置
一、集群环境说明1. 虚拟机:192.168.223.101/103/1052. 系统版本:CentOS 7.93. JDK版本:11.0.18.0.14. Zookeeper版本:3.7.15. Kafka版本:2.13-2.8.2备注:无论是ZK,还是Kafka,都需要…...
并发编程出现的问题以及解决方式
解决并发编程出现的问题基于java内存模式的设计出现的问题基于java内存模式的设计,多线程操作一些共享的数据时,出现以下三个问题:1.不可见性问题:多个线程同时在各自的工作内存对共享数据进行操作,彼此之间不可见。操…...
[ linux ] linux 命令英文全称及解释
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】🎉点赞➕评论➕收藏 养成习…...
C++11新特性
文章目录说在前面花括号{}初始化new的列表初始化STL相关容器的列表初始化相关语法格式容器列表初始化的底层原理forward_list和array与类型相关的新特性decltype左值引用和右值引用什么是左值,什么是右值左值和右值的本质区别右值引用如何理解右值引用std::move移动…...
【宝塔部署SpringBoot前后端不分离项目】含域名访问部署、数据库、反向代理、Nginx等配置
一定要弄懂项目部署的方方面面。当服务器上部署的项目过多时,端口号什么时候该放行、什么时候才会发生冲突?多个项目使用redis怎么防止覆盖?Nginx的配置会不会产生站点冲突?二级域名如何合理配置?空闲的时候要自己用服…...
从0到1一步一步玩转openEuler--11 openEuler基础配置-设置磁盘调度算法
11 openEuler基础配置-设置磁盘调度算法 文章目录11 openEuler基础配置-设置磁盘调度算法11.1 设置磁盘调度算法11.1.1 临时修改调度策略11.1.2 永久设置调度策略11.1 设置磁盘调度算法 本节介绍如何设置磁盘调度算法。 11.1.1 临时修改调度策略 例如将所有IO调度算法修改为…...
河道治理漂浮物识别监测系统 yolov7
河道治理漂浮物识别监测系统通过yolov7网络模型深度视觉分析技术,河道治理漂浮物识别监测算法模型实时检测着河道水面是否存在漂浮物、水浮莲以及生活垃圾等,识别到河道水面存在水藻垃圾等漂浮物,立即抓拍存档预警。You Only Look Once说的是…...
微信小程序 java ssm Springboot学生作业提交管理系统
系统具有良好的集成性,提供标准接口,以实现与其他相关系统的功能和数据集成。开放性好,便于系统的升级维护、以及与各种信息系统进行集成。功能定位充分考虑平台服务对象的需求。 一个微信小程序由.js、.json、.wxml、.wxss四种文件构成&…...
实战项目-课程潜在会员用户预测(朴素贝叶斯&神经网络)
目录1、背景介绍2、朴素贝叶斯2.1 模型介绍2.2 模型实现3、人工神经网络1、背景介绍 目标:将根据用户产生的数据对课程潜在的会员用户(可能产生购买会员的行为)进行预测。 平台的一位注册用户是否购买会员的行为应该是建立在一定背景条件下…...
网站建设经验总结/营销策划经典案例
普通的查询,通过concat函数,可以将多个值连接起来返回。而想要将分组后产生的同一组的值连接起来就需要另一个函数group_concat。 group_concat([distinct] field1,field2,field3... [order by field [asc/desc]][separator separator]&…...
上海史特做网站多少钱/全网seo
需要用到的API action:服务器上传地址 max-count:最大选择图片的数量 form-data:上传额外携带的参数 name:上传文件的字段名,供后端获取使用第一种:选择图片后,直接上传 <template><vi…...
vue做网站前台/地推拉新app推广接单平台免费
你对师生关系的理解,希望是哪种关系? 处于研究生的我们,自学体系应该相比本科生更加完备。如果到现在获取知识的方式仍是以老师讲为主渠道,那基本上就已经废了。那么老师在我们自学过程中应该扮演什么角色?——引导者、督促者。人…...
列车营销网站怎么做/外包公司和劳务派遣
开发环境:IntelliJ IDEA 2019.2.2 Spring Boot版本:2.1.8 新建一个名称为demo的Spring Boot项目。 一、使用Servlet配置 1、修改启动类 DemoApplication.cs 代码,加入注解ServletComponentScan,它用于扫描Servlet组件ÿ…...
白水网站建设/老铁外链
进程是什么以及 Linux 如何创建、管理和删除系统中的进程。 进程执行操作系统中的任务。程序是存放在磁盘上的包括一系列机器代码指令和数据的可执行的映像,因此,是一个被动的实体。进程可以看作是一个执行中的计算机程序。它是动态的实体,在…...
ps毕业设计做网站界面/seo站长网怎么下载
uac 和 uas 都加上 -deadcall_wait 0 转载于:https://www.cnblogs.com/luoyinjie/p/7219367.html...