当前位置: 首页 > news >正文

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);

运算符优先级

在这里插入图片描述

http://www.lryc.cn/news/3403.html

相关文章:

  • 【Linux 信号】信号的产生方式、信号的捕捉的全过程
  • 代码随想录第58天(动态规划):● 392.判断子序列 ● 115.不同的子序列
  • 代码随想录第55天(动态规划):● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费
  • 字符串装换整数(atoi)-力扣8-java
  • 毕业5年,从月薪3000到年薪40w,我掌握了那些核心技能?(建议收藏)
  • C++中的并行与并发
  • h2database源码解析-如何更新一条行记录
  • FyListen——生命周期监听器(设计原理之理解生命周期)
  • Element UI框架学习篇(六)
  • Python如何安装模块,python模块安装失败的原因以及解决办法
  • 《NFL橄榄球》:洛杉矶闪电·橄榄1号位
  • 4.7 Python设置代码格式
  • Zabbix 构建监控告警平台(五)
  • 2023关键词:挑战
  • Wifi wpa_supplicant 到驱动的联系
  • 【状态估计】基于二进制粒子群优化 (BPSO) 求解最佳 PMU优化配置研究【IEEE30、39、57、118节点】(Matlab代码实现)
  • python 将 .pdf 文件转为 .md
  • 【C语言】操作符详解
  • 微信小程序 学生选课系统--nodejs+vue
  • leaflet 加载geojson文件并显示图形(示例代码051)
  • 【Kafka】ZK和Kafka集群的安装和配置
  • 并发编程出现的问题以及解决方式
  • [ linux ] linux 命令英文全称及解释
  • C++11新特性
  • 【宝塔部署SpringBoot前后端不分离项目】含域名访问部署、数据库、反向代理、Nginx等配置
  • 从0到1一步一步玩转openEuler--11 openEuler基础配置-设置磁盘调度算法
  • 河道治理漂浮物识别监测系统 yolov7
  • 微信小程序 java ssm Springboot学生作业提交管理系统
  • 实战项目-课程潜在会员用户预测(朴素贝叶斯&神经网络)
  • ESP32设备驱动-定时器与定时器中断