java date20150817(上午)
来源:互联网 发布:中国储运 网络刊 编辑:程序博客网 时间:2024/04/27 22:00
数据类型转化
数据类型转化前提:相互转化的数据类型是兼容的;
数据类型转化有两种:自动类型转化和强制类型转化
--------------------------------------------------
一、自动类型转化
自动类型转化前提:相互转化的数据类型是兼容的,转换前的数据类型是低于转化后的数据类型的;
例1:public class ZiDongLeiXingZhuangHua{
public static void main(String args[]){
short a = 12; //定义一个short类型变量
int b = a; //short自动类型转化为int类型,short是16位,int是32位的
float c = 1.2f; //定义一个float类型变量
double d = c; //float自动类型转化为double类型,float是32位,double是64位
long m = 2345678L; //定义一个long类型变量
double n = m; //long自动类型转化为double类型,其都是64位的,但double的数值范围更大,他两的数据类型表示的都是数值,
所以可以相互转化,只是整型转化成浮点型数值会存在一定的误差
int i = 13; //int自动类型转化为float类型,其都是32位的,但float的数值范围更大,他两的数据类型表示的都是数值,
所以可以相互转化,只是整型转化成浮点型数值会存在一定的误差
float j = i;
System.out.println("输出int数据类型:"+b);
System.out.println("输出double数据类型:"+d);
System.out.println("输出double数据类型:"+n);
System.out.println("输出float数据类型:"+j);
}
}
输出结果:
12
1.2000000476837158
2345678.0
13.0
因为字符类型是占16数据位,而且可以用Unicode码来表示,所以其可以自动转化成int、long整型数据类型,其也可以转化成float、double浮点型
例2:public class ZiDongLeiXingZhuangHua{
public static void main(String args[]){
char a = 'A'; //定义一个char类型变量
int b = a; //char自动类型转化为int类型,char是16位,int是32位的
long c = a; //char自动类型转化为long类型,long是64位
float f = a; //char自动类型转化为float类型,float是32位
double d = a; //char自动类型转化为double类型,double是64位
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(f);
System.out.println(d);
}
}
输出结果:
A
65
65
65.0
65.0
-----------------------------------------------------------------------------------------------------
二、强制类型转化
强制类型转化前提:相互转化的数据类型是兼容的,转换前的数据类型要比转化后的数据类型要大;
强制类型转化是由固定格式的,格式:type 变量名 = (type)value;
注:type表示的是要强制后的数据类型,value表示的是强转前的数据类型的变量名
例1:public class QiangZhiLeiXingZhuanHua {
public static void main(String[] args) {
double a = 12.3d; //定义一个double数据类型
byte b = (byte)a; //double强制类型转化为byte类型,double是64位,byte是8位的
short s =(short) a; //double强制类型转化为short类型,short是16位,byte是8位的
int i = (int)a; //double强制类型转化为int类型,int是32位,byte是8位的
long l =(long) a; //double强制类型转化为long类型,long是64位,byte是8位的
float f =(float) a; //double强制类型转化为float类型,float是32位,byte是8位的
System.out.println(a);
System.out.println(b);
System.out.println(s);
System.out.println(i);
System.out.println(l);
System.out.println(f);
}
}
输出结果:
12.3
12
12
12
12
12.3
注:强制类型转化因为是数值大的数据类型转化为数值小的数据类型,所以数值太大的时候,强转时可能会造成数据的丢失;
例2:public class QiangZhiLeiXingZhuanHua {
public static void main(String[] args) {
char a = 'A'; //定义一个char数据类型
int i = a + 32; //char自动类型转化为int类型,char是16位的,int是32位
char c1 = (char)i; //int强制类型转化为char类型
System.out.println(c1); //‘A’=65,‘a’=97;
int j = a+1; //定义一个int数据类型
char c2 = (char)j; //int强制类型转化为char类型
System.out.println(c2); //a(‘A’)+1=66;‘B’=66;由此可知,字符型A、B、C、、、等数值是有规律的,
} 字符型a、b、c、、、等数值也是有规律的
}
输出结果:
a
B
-----------------------------------------------------------------------------------------------------
<3>隐含强制类型转化
例:byte b=123;
注:系统默认的是int类型,123表示的是int类型,但b定义的是byte类型,那为什么程序没有报错呢,因为系统有自动隐含强制转化,
但这只针对整数型;像浮点型默认的是double类型,所以定义一个float类型的变量时,其后赋的值需加上F/f;
- java date20150817(上午)
- java date20150817(上午)
- java date20150817(下午)
- java date20150817(下午)
- java date20150817(下午)
- Java Date20150816(上午)
- Java Date20150816(上午)
- Java 回顾笔记5(上午)_static
- Java 回顾笔记6 (上午)_继承
- 4月6日上午“java技术讲座”不要错过
- JAVA判断当前时间是上午am还是下午pm
- Java中判断当前时间为上午,下午
- JAVA判断当前时间是上午am还是下午pm
- JAVA-day08 上午-集合零散知识、集合实现贪吃蛇
- 我的第一堂Java课 07/14 上午
- Java中判断当前时间为上午,下午
- day01 上午
- day3上午
- hdoj 1596 find the safest road
- 关于<signal.h>中SIG_ERR、SIG_DEL、SIG_IGN定义的问题
- 《Apple Watch 开发》WKInterfaceTable 列表控件小结
- java内存泄漏
- Git与Repo入门
- java date20150817(上午)
- java date20150817(下午)
- oracle创建一个带参数的存储过程:为指定的员工,涨100块钱的工资;并且打印涨前和涨后的薪水
- POJ-1789-Truck History(prim/kurscal)
- 匿名类对象及可变参数
- Web 开发中公共属性已配置方式设计
- 在linux下把Tomcat注册成service
- NDK 使用总结 一
- java date20150817(下午)