尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

JAVA-02

JAVA-02 今日内容介绍数据类型转换运算符数据类型转换1.1 自动类型转换【从小到大自动】Java程序中要求参与的计算的数据必须要保证数据类型的一致性如果数据类型不一致将发生类型的转换。举例:int int -- int 两个int类型数据进行运算,数据类型一致可以直接进行运算,结果也是int类型int long -- long long -- long一个int和一个long进行运算,数据类型不一致,必须转换成一致的才可以运算解决方案: 把左侧的int类型转换成long类型,是从小到大,java自动完成(自动类型转换)int long -- int int -- int 一个int和一个long进行运算,数据类型不一致,必须转换成一致的才可以运算 解决方案: 把右侧的long类型转换成int类型,是从大到小,java不会自动完成(强制类型转换)1.自动类型转换概念:取值范围小的数据或者变量,可以直接赋值给取值范围大的变量2.特点:(1)是自动完成的,不需要代码进行特殊处理(2)byte/short/char,只要参加运算会自动转换成int类型(3)转换的方向:byte、short、char–int–long–float–double举例:00000000有一个byte类型(1个字节)的数字5: 00000101byte类型自动类型转换成short类型(2个字节):在左侧补充1个字节的0,因为补充的都是0,对原有数据大小没有影响,仍然是500000000 00000101byte类型自动类型转换成int类型(4个字节):在左侧补充3个字节的0,因为补充的都是0,对原有数据大小没有影响,仍然是500000000 00000000 00000000 00000101byte类型自动类型转换成long类型(8个字节):在左侧补充7个字节的0,因为补充的都是0,对原有数据大小没有影响,仍然是500000000 00000000 00000000 00000000 00000000 00000000 00000000 00000101总结:根据需求在数字的左侧补充若干个字节的0,因为补充的都是0,对原有数据大小没有影响1.2 强制类型转换【从大到小强制】1.强制类型转换概念:取值范围大的数据或者变量,不能直接赋值给取值范围小的变量,必须进行强制类型转换(大萝卜不能直接放入小坑当中)int数字571: 00000000 00000000 00000010 00111011强制类型转换成byte类型: 00111011 -- 59损失了原有数据的大小int num 571;byte a (byte)num;2.格式:转后类型 变量名称 (转后类型)转前数据或者变量3.问题:可能会损失精度举例:00000000有一个long类型(8个字节)的数字5:00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000010100000000 00000000 00000000 00000010 00000000 00000000 00000000 00000101long类型强制类型转换成int类型(4个字节):砍掉左侧的4个字节的0,因为砍掉的都是0,对于原有数据大小没有影响,仍然是500000000 00000000 00000000 00000101long类型强制类型转换成short类型(2个字节):砍掉左侧的6个字节的0,因为砍掉的都是0,对于原有数据大小没有影响,仍然是500000000 00000101long类型强制类型转换成byte类型(1个字节):砍掉左侧的7个字节的0,因为砍掉的都是0,对于原有数据大小没有影响,仍然是500000101总结:根据需求,砍掉左侧的若干字节的内容,如果砍掉的都是0,对原有数据没有影响只要砍掉的数据中包含1,将对原有数据产生影响1.3 ASCII码表计算机是一个二货,只能存储0和1,所以存储到计算机中的所有内容都会转换成0和1进行存储所以我们在计算机中存储的字符也不例外,也需要把字符转换成0和1进行存储问题: 如何把字符转换成对应的0和1进行存储呢?解决方案:编码表就是将人类的文字和一个十进制数进行对应起来组成一张表格。存储字符时需要查找ASC码表,找到字符对应的数字,将数字转换为二进制数存放到计算机中‘a’ -- 97 -- 1100001 26个小写字母的ASCII码值是连续滴‘A’ -- 65 -- 1000001 26个大写字母的ASCII码值是连续滴‘0’ -- 48 -- 110000 数字字符的ASCII码值是连续滴使用字符时将对应的二进制数转换为十进制 找到ASC表中对应的字符 显示出来1100001 -- 97 -- ‘a’1000001 -- 65 -- ‘A’110000 -- 48 -- ‘0’总结:大小写字母之间的ASCII码值相差32(char)(大写字母 32) -- 得到对应的小写字母(char)(小写字母 - 32) -- 得到对应的大写字母1.4 int类型和char类型的运算原理第三章 运算符2.1 算术运算符加减乘除1.运算符对常量或者变量进行操作/运算的符号2.表达式用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。3.数学运算符:(1): 加法运算(2)-: 减法运算(3)*: 乘法运算(4)/: 除法运算被除数 ÷ 除数 商(/: 获取除法运算中的商) … 余数(%: 获取除法运算中的余数)2.1.1 算术运算符%%运算符(取余数运算符)%的作用:1.判断数字的奇偶性偶数(可以被2整除): 数字%2 的 结果是0奇数(不可以被2整除): 数字%2 的 结果不是0 结果是12.判断一个数字能否被另外一个数字整除结果为0: 说明可以被整除结果不为0: 说明不可以被整除%运算符(取余数运算符)%的作用:1.判断数字的奇偶性偶数(可以被2整除): 数字%2 的 结果是0奇数(不可以被2整除): 数字%2 的 结果不是0 结果是12.判断一个数字能否被另外一个数字整除结果为0: 说明可以被整除结果不为0: 说明不可以被整除注意: /和%都是用来完成数学中的除法运算,只不过/获取的是除法运算中的商 %获取的是除法运算中的余数 扩展: 利用/和%获取一个int变量num中存储的四位数字(1234)的个位,十位,百位,千位 个位: 4 十位: 3 百位: 2 千位: 12.1.2 算术运算符的特殊用法的作用1.完成数学中的加法运算2.完成字符串的连接(拼接): 如果的左右两边出现字符串2.2 赋值运算符 赋值 a10将10赋值给变量a 加后赋值 ab将ab的值给a a a b- 减后赋值 a-b将a-b的值给a a a - b 乘后赋值 ab将a×b的值给a a a * b/ 除后赋值 a/b将a÷b的商给a a a / b% 取余后赋值 a%b将a÷b的余数给a a a % b注意:1.: 表示的是赋值运算2.: 表示的是判断是否相同2.2.1 赋值运算符的特点赋值运算符的特点1.,-,*,/,% 运算符,如果运算后的结果的类型和左侧变量的类型不一致,内部会进行隐藏的强制类型转换2.整数常量只要没有超出所赋值变量的范围,可以直接进行赋值, 内部会进行隐藏的强制类型转换2.3 自增自减运算符自增()自减(–)运算符1.作用: 就是让变量的值增加()1或者减少(–)12.使用格式:(1)可以写在变量的前面: a,–a(2)可以写在变量的后面: a,a–3.使用特点:(1)单独使用: /-- 自己成为一行,没有和额外的其它操作(赋值/打印…)一起运算前/后: 没有任何区别,都是让变量的值增加1前–/后–: 没有任何区别,都是让变量的值减少1(2)混合使用: /-- 和额外的其它操作(赋值/打印…)一起运算前/前–【先、–然后使用】:先把变量的值增加()或减少(–)1, 然后再使用变量增加/减少1之后的结果进行其它运算后/后–【先使用然后、–】:先使用变量增加()或减少(–)1之前的数据,然后再把变量的值增加()或减少(–)1以后最常用的:a: 表示a的值增加1a–: 表示a的值减少12.4 关系运算符1.作用:用来比较两个数据之间的大小关系,结果是boolean类型的数据2.特点:关系表达式不管写的多么复杂,或者多么简单,最终结果要么是true(成立),要么是false(不成立)3.分类: ab 判断a和b的值是否相等成立为true不成立为false ab 判断a是否大于b成立为true不成立为false ab 判断a是否大于或者等于b成立为true不成立为false ab 判断a是否小于b成立为true不成立为false ab 判断a是否小于或者等于b成立为true不成立为false a!b 判断a和b的值是否不相等成立为true不成立为false4.注意:1.: 表示的是赋值运算2.: 表示的是判断是否相同2.5 逻辑运算符1.作用:用来连接多个布尔表达式的,结果也是布尔类型2.分类:(1)逻辑与(:shift7)【有false则false】:表示并且的意思,同时成立的意思多个条件都为true,结果才为true多个条件只要有一个为false,结果就是false(2)逻辑或(|:shift)【有true则true】:表示或者的意思多个条件只要有一个为true,结果就是true多个条件都是false,结果就是false(3)逻辑异或(^:shift6):相同为false,不同为true(4)逻辑非(!:shift1):!true: 就是false!false: 就是true2.5.1 逻辑运算符的短路效果逻辑运算符的短路效果1.基本使用(1)短路逻辑与(): 左侧为false,右侧不进行计算(2)短路逻辑或(||): 左侧为true,右侧不进行计算2.使用区别):(1)和: 最终的结果是相同的,但是具有短路的效果,效率高(2)||和|: 最终的结果是相同的,但是||具有短路的效果,效率高3注意:以后实际学习/开发过程中,需要连接多个条件时,强烈建议使用 或者 ||2.6 三元运算符格式1.格式:数据类型 变量名称 布尔表达式1 表达式2 表达式3注意号前面的式子的结果必须是布尔类型2.执行流程:1计算布尔表达式1的结果看是true还是false2如果布尔表达式1的结果是true取表达式2的结果赋值给左侧的变量3如果布尔表达式1的结果是false取表达式3的结果赋值给左侧的变量
返回列表