类型转换
Posted valder-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类型转换相关的知识,希望对你有一定的参考价值。
类型转换
运算中,不同类型的数据先转换为统一数据,然后运算
低-------------------------------------------------------------------------高
byte,short,char-->int-->long-->float-->double
public class vvvv {
public static void main(String[] args) {
int i=128;
byte b=(byte)i; //强制转换 在变量名(例如i)前加(),中间输入要转换的类型 从高到低
System.out.println(i); //输出128
System.out.println(b); //输出-128
//why? because byte最大值为127,称内存溢出
//自动转换 不用写 从低到高
double c=i;
System.out.println(c);
/**注意点
* 不能对布尔值进行转换
* 不能把对象类型转换为不相干的
*由高容量到底容量,强制转换
* 转换时会有内存溢出和精度问题
*/
//精度问题
System.out.println("=====================");
System.out.println((int)20.3);//20
System.out.println((int)-45.89f);//-45
System.out.println("=====================");
char d=\'a\';
int e=d+1;
System.out.println(e);//98
System.out.println((char) e);//b
System.out.println("=====================");
//注意
// 操作比较大的数,注意溢出问题
//JDK7新特性,数字之间用下划线_分割,_不会被输出
int money=10_0000_0000;
int years=20;
int total=money*years;
System.out.println(total);//输出-1474836480 ???计算时溢出
long total2=money*years;
System.out.println(total2);//还是-1474836480,默认时int,计算完就会转换为int,转换之前就已存在问题
//怎么做?
long total3=money*((long)years);//先把一个数转换为long
System.out.println(total3);//成功
//L要习惯用大写字母表示 l(小写L)常被看为1
}
}
以上是关于类型转换的主要内容,如果未能解决你的问题,请参考以下文章
HTML Bookmarklet模板:将任何JavaScript代码片段转换为Bookmarklet
结合两个代码片段?将用户输入的 Youtube url 转换为嵌入 url,然后将 iframe src 替换为转换后的 url