ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

类型转换

2021-12-18 18:33:55  阅读:102  来源: 互联网

标签:类型转换 int System 128 println byte out


public class 类型转换 {
/*由于Java是强类型语言,所以进行某些运算时需要进行类型转换
类型转换以容量划分从低到高分别为(小数优先级大于整数,因此float与double在最后):
*byte,short,char,int,long,float,double*
本质都是数字,因此非数字会被转化为Unicode数字
在运算时,不同类型数据先转化为同一类型,再运算
*/
public static void main(String[] args) {
/*当输入
int a = 128;
byte b = a;
时会报错,因为byte的值为-128~127,因此byte后面的赋值会被检测为int类型,因此需要强制转换
*/
int a = 128;
byte b = (byte)a;
System.out.println(a);
System.out.println(b);
System.out.println("============================================");
//低转高自动转换,高转低需要强制转换,即要转换的变量名前面加(类型)
//此处可得int的a值为128,而byte的b输出值为-128,是因为内存溢出,应避免此情况
int c = 128;
double d = c;
System.out.println(c);
System.out.println(d);
System.out.println("============================================");
//注意精度问题
int e = 10;
double f = e;
float g = 1.001f;
int h = (int)g;
System.out.println(e);
System.out.println(f);
System.out.println(g);
System.out.println(h);
System.out.println("============================================");
/*注:
不能把对象类型转化为不相干的类型
大容量转低容量需要强制转换
转换时注意内存溢出,以及精度问题
*/
//一个特殊的输出
System.out.println((int)22.1f);
System.out.println("============================================");
//非数字计算会先转化成Unicode数字,再计算
char i = '中';//注意字符外应为'',而不是”“
int j = a;
float k =2.005f;
int l = (int) (i+j+k);//由于有float存在,所以需要先转化为int,否则报错
System.out.println(i);
System.out.println(j);
System.out.println(k);
System.out.println(l);
System.out.println((char)20143);//中文”中“后面”a“与”2“位是”亯(xiang3)“ 记住哦,划重点! Σ( ° △ °|||)︴ Unicode真牛x
System.out.println("============================================");
//溢出问题
int 一天摸鱼 = 10_0000_0000;//JKD7新特性,数字间可以用下划线分割
int 年份 = 20;
long 摸鱼总量 = 一天摸鱼*年份;
System.out.println(摸鱼总量);
System.out.println("============================================");
/*可得值-1474836480
很显然我是在摸鱼而不是生鱼,(更何况生不出那么多)
这是由于int的取值范围为-2147483648~2147483647,而二百亿超出了int范围,造成内存溢出
即使最后变量为long,但先计算了int变量形式,已经溢出,因此转化成long仍然错误
底层原因:此处为先计算,后赋值
*/
//解决方法,先赋值,后计算
long 只要摸不死就往死里摸 = 一天摸鱼*((long)年份);
System.out.println("先赋值,后计算");
System.out.println(只要摸不死就往死里摸);//注意命名给变量命名时中间不要加标点,除非你愿意看见一堆看不懂的红色字符刷屏
}
}

标签:类型转换,int,System,128,println,byte,out
来源: https://www.cnblogs.com/mycm/p/15705642.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有