发表时间:2022-03-25来源:网络
前言: 年轻是我们唯一拥有权力去编织梦想的时光
大家好我是擦擦屁屁闻闻手,一个有味道的公众号,最近突然很喜欢一句话莫等闲、白了少年头,空悲切,回想起我的大学时光,就是印证了这句话,做什么事总觉得以后还有时间可以先放放,等到快毕业的时候开始迷茫、恐慌,希望大家能够不虚度时光
Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换
自动转换
疑问:一个int类型的变量和一个byte类型变量进行加法计算,结果是什么类型呢?
案例:
public class Test { public static void main(String[] args) { int x = 1; byte y = 2; //byte result = x + y;//此处报错 int result = x + y; } }报错内容:
这句话的意思是我接收的变量的数据类型是byte 但是 x+y 的结果是一个int类型,
这就是出现了数据类型的自动类型转换现象
转换原理图:
同样道理,当一个int类型变量和一个double变量运算时,int类型将会自动提升为double 类型进行运算。
public class Test { public static void main(String[] args) { double d = 2.5; //int类型和double类型运算,结果是double类型 //int类型会提升为double类型 double e = d+i; System.out.println(e); } }转化规则:
范围小的类型向范围大的类型提升, byte、short、char 运算时直接提升为int
byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double
将1.5 赋值到int 类型变量会发生什么?产生编译失败,肯定无法赋值。
public class Test { public static void main(String[] args) { int i=1.5; } }报错内容:(解释同上)
举个例子解释吧
double类型内存8个字节, int类型内存4个字节。1.5是double类型,取值范围大于int 。可以理解为double是8升的水壶, int是4升的水壶,不能把大水壶中的水直接放进小水壶去,想要赋值成功,只有通过强制类型转换,将double 类型强制转换成int类型才能赋值
强制类型转换:将取值范围大的类型强制转换成取值范围小的类型自动转换是Java自动执行的,而强制转换需要我们自己手动执行
数据类型 变量名 = (数据类型)被转数据值;
代码修改为:
public class Test { public static void main(String[] args) { // double类型数据强制转成int类型,直接去掉小数点。 int i=(int)1.5; System.out.println(i); // 1 } }同样道理,当一个short类型与1相加,我们知道会类型提升,但是还想给结果赋值给short类型变量,就需要强制转换。
public class Test { public static void main(String[] args) { //short类型变量,内存中2个字节 short s = 1; /* 出现编译失败 s和1做运算的时候,1是int类型,s会被提升为int类型 s+1后的结果是int类型,将结果在赋值会short类型时发生错误 short内存2个字节,int类型4个字节 必须将int强制转成short才能完成赋值 */ s = s + 1;//编译失败 s = (short)(s+1);//编译成功 } }转换原理图解:
强烈建议:
浮点转成整数,直接取消小数点,可能造成数据损失精度。
int强制转成short 砍掉2个字节,可能造成数据丢失。
在计算机的内部都是二进制的0、1数据,如何让计算机可以直接识别人类文字的问题呢?就产生出了编码表的概念,编码表:就是将人类的文字和一个十进制数进行对应起来组成一张表格
字符数值048957A65Z90a97z122将所有的英文字母,数字,符号都和十进制进行了对应,因此产生了世界上第一张编码表ASCII(
American Standard Code for Information Interchange 美国标准信息交换码)
案例:
解析:在char类型和int类型计算的过程中,char类型的字符先查询编码表,得到97,再和1求和,结果为98。char类型提升为了int类型。char类型内存2个字节,int类型内存4个字节。
Java中,整数使用以上运算符,无论怎么计算,也不会得到小数。
案例:
逻辑运算符,是用来连接两个布尔类型结果的运算符,运算结果都是布尔值true 或者false
三元运算符三元运算符格式:数据类型 变量名 = 布尔类型表达式?结果1:结果2
三元运算符计算方式: 布尔类型表达式结果是true,三元运算符整体结果为结果1,赋值给变量。布尔类型表达式结果是false,三元运算符整体结果为结果2,赋值给变量。public class Test { public static void main(String[] args) { int i = (1==2 ? 100 : 200); System.out.println(i); //200 int j = (3 //调用定义的方法method method(); } //定义方法,被main方法调用 public static void method() { System.out.println("自己定义的方法,需要被main调用运行"); } } 调用练习将三元运算符代码抽取到自定义的方法中,并调用
public class Test { public static void main(String[] args) { //调用定义的方法operator operator(); } //定义方法,方法中定义三元运算符 public static void operator() { int i = 0; i = (1==2 ? 100:200); System.out.println(i); int j = 0 ; j = (3 } //正确写法,类中,main方法外面可以定义方法 public static void method(){} }错误写法:
public class Test { public static void main(String[] args){ //错误写法,一个方法不能定义在另一方法内部 public static void method(){} } }愿景:愿程序永无 Bug
个人公众号欢迎各位关注
本文使用mdnice排版
上一篇:Java基础之类型转换总结篇
下一篇:(数据类型转换,运算符,方法)
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务