《疯狂JAVA讲义》之十一——Java基本数据类型之二
来源:互联网 发布:天津青蛙网络 编辑:程序博客网 时间:2024/06/01 10:38
看代码,小例子更清晰。
package com.huateng.mjq.chapter3;/** * java 自动类型转换的路径如下:所有左侧的类型可以自动转换为右侧的类型而不需要强制显式类型转换也不会产生精度丢失 * char * | * | * \/ * byte ---> short ----> int ---->long ---->float ----> double * * 如果希望把右侧的类型转换为左侧的类型,则会发生精度丢失 * @author Administrator * */public class PrimitiveType_6 {public static void main(String [] args){test3();}public static void test1(){int a =6;float f = a;System.out.println(f);byte b =9;//byte 并不能自动转换为char类型//char c = b;double d = b;System.out.println(d);}/** * 字符串与任何基本类型做连接操作——+ 都会自动转换为字符串类型 */public static void test2(){System.out.println("Hello"+3+4);System.out.println(3+4+"Hello");}public static void test3(){int iValue = 233;//byte 表示范围-128---127,所以整型223强制转换为byte,肯定会发生精度丢失;//具体会怎样截断:整数在计算机中以补码形式存在,最左边一位(最高位)为符号位//截断时对补码保留低位,舍弃高位//233用补码表示为00000...00011101001(一共32位)//截断时保留低八位11101001,最高位为1(代表符号为负),所以该补码11101001表示的数的原码为:最低位-1,符号位不变,全部取反//10010111 -23byte bValue = (byte) iValue;double dValue = 3.98;//将一个浮点数强制转换为整数,将直接节点浮点数的小数部分,保留整数部分。结果为:3int tol = (int) dValue;System.out.println(tol);}}
package com.huateng.mjq.chapter3;/** * 在java的算术表达式中,当表达式中包含多个基本类型的值时,表达式的数据类型会自动提升,提升规则如下: * 1.所有的byte,short,char类型将会自动提升为int型,final变量除外。 * 2.整个算术表达式的类型自动提升到与表达式中最高等级操作数同样的类型;操作数的等级排列如上例中所示。 * @author Administrator * */public class PrimitiveType_7 {public static void main(String [] args){test1();}public static void test1(){byte a =12,b=13;final byte c = 14,d = 15;//如果不进行强制类型转换则无法通过编译,因为表达式类型自动提升,右侧 a + b 后的结果为int类型byte e = (byte) (a + b);System.out.println(e);//final类型除外,不会自动提升。byte f = c + d;//c + d 不会自动提升,但是h为int类型,整个表达式类型自动提升为int类型,所有g如果为byte类型,则需强制类型转换int h = 2;int g = c + d + h;System.out.println(g);}}
1 0
- 《疯狂JAVA讲义》之十一——Java基本数据类型之二
- 《疯狂JAVA讲义》之十二——Java基本数据类型之三
- 《疯狂JAVA讲义》之九——Java数据类型分类
- 《疯狂JAVA讲义》之十——Java基本数据类型之一
- 《疯狂JAVA讲义》之二——关于main方法
- 疯狂java讲义笔记——数据类型
- 《疯狂Java讲义》——数据类型
- 《疯狂JAVA讲义》之七——java源文件综述
- 《疯狂JAVA讲义》之三——环境配置
- 《疯狂JAVA讲义》之十三——流程控制
- 《疯狂Java讲义(第3版)》.(李刚)——基本数据类型
- 疯狂java讲义学习——数据类型与运算符
- 疯狂java讲义之泛型
- 《疯狂JAVA讲义》之四——编写并编译、运行第一个java程序
- 《疯狂JAVA讲义》之六——java源程序中的注释
- 《疯狂JAVA讲义》之八——java标识符规则和关键字
- 《疯狂JAVA讲义》之五——面向对象程序设计与结构化程序设计
- JAVA基础之UML(疯狂的JAVA讲义)
- spacemacs复制minibuffer的内容到buffer里
- CF
- 520. Detect Capital
- JAVAEE-文件下载
- 剑指offer 21---实现一个栈, 要求实现Push( 出栈) 、 Pop( 入栈) 、 Min( 返回最小值的操作) 的时间复杂度为O(1)
- 《疯狂JAVA讲义》之十一——Java基本数据类型之二
- NDK探究之旅《一》——对jni和NDK的认识
- 【HTML5入门】java获取util date类型当前系统前一天,当天,后天日期
- java内存
- 网页有frame 怎么获得里面的元素
- NYOJ-1237-最大岛屿
- 自定义异常
- 用Swift实现iOS相机及相册图片上传
- Java设计模式--单例类