17.类型转换

自动类型转换

容量小的数据类型可以自动转换为容量大的数据类型

		byte b = 123;//byte b2 = 300;//报错,超过了byte最大值127//char c = -3;//报错,char范围是0~65536,不在范围char c2 = 'a';//a在ascii码里是98int i = c2;long d01 = 123213;float f = d01;

特例

可以将整型常量直接赋值给byte,short,char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围

public static void main(String[] args){char a=100;//整型常量可以直接赋值int i=100;char b=i;//整型int变量不能直接赋值。错误: 不兼容的类型: 从int转换到char可能会有损失。char c=(char)i;//正确}

强制类型转换

用于显示的转换一个数值的类型。可能造成精度降低和溢出。

int i=100;char c=(char)i;//正确

注意!

当将一种类型强制转换成另一种类型,而又超出了目标类型的表示范围,就会被截断成为一个完全不同的值。


int i=-100;
char b=(char)i;
System.out.println(b);



类型提升

做所有的二元运算符(+-/*%),都会有类型提升的问题!

	int a = 3;long b = 4;double d = 5.3;//int c = a+b;  //a+b 提升为了long类型,报错。int c = (int)(a+b); //float f = a + d; //a+d 提升为了double类型,报错。float f = (float)(a + d);

注意!

类型转换中,如果超过了类型的表数范围,则返回错误的值。如下例

		int money = 1000000000;  //10亿int years = 20;long total = money*years;   //返回的是负数 System.out.println(total);// -1474836480

正确的,提升类型

		int money = 1000000000;  //10亿int years = 20;long total = (long)money*years;  System.out.println(total);// 20000000000

上例是在运算前先把money的类型从int提升到long。


再来一例:

//一个人70年心跳多少次long times = 70*60*24*365*70;//返回负数System.out.println(times);//-1719527296

正确的方式,在第一个数转为long类型

long times = 70L*60*24*365*70;
System.out.println(times);//2575440000



-------------

更多的Java,Angular,Android,大数据,J2EE,Python,数据库,Linux,Java架构师,:

http://www.cnblogs.com/zengmiaogen/p/7083694.html



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538751.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker rabbitmq_一文看懂Rabbitmq,从安装到实战演练

Rabbitmq的初步使用随着微服务概念发展,大应用逐步拆分为小应用,提高开发效率,专门的人做专门的事情,逐渐的流行起来。在微服务上实现通信的方式大部分是采用rpc方式,也有升级版本的grpc。还有另外一种实现就是使用mq来…

Angular v6 正式发布

Angular 6 正式发布 Angular 6 已经正式发布了!这个主要版本并不关注于底层的框架,更多地关注于工具链,以及使 Angular 在未来更容易快速推进。 作为发布的一部分,我们同步了主要的框架包 (angular/core, angular/common, angula…

bootstrap五星评分_如何用纯代码实现评分星级显示?

showRatingStars/*** showRatingStars 显示评分星级* param {Object} myCanvas 画布对象* param {Number} rating 评分* param {Number} counts star个数* param {Number} size star大小* param {Object} style star样式* Example: style {* borderColor:"#21DEEF",…

18.变量

Java是一种强类型语言,每个变量都必须声明其类型。 Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。 变量在使用前必须对其声明,只有在变量声明以后,才能为其分配相应长度的存储单元。 注意事项…

alertdialog android api 11,android – 设备api级别11的DialogFragments

我设法在兼容包的DialogFragment.java中正确修复了这个问题:改变第74行:boolean mShowsDialog false;注释掉第232行:// mShowsDialog mContainerId 0;然后将两个show方法更改为:public void show(FragmentManager manager, Str…

py 字典添加多个value_# Python 3 # Python 3字典Dictionary(1)

Python3 字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:d {key1 : value1, key2 : value2 }键必须是唯…

饶军:Apache Kafka的过去,现在,和未来

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 本文首发在云社区,未经许可,不得转载。大家好,我大概简单的介绍一下,我叫饶军,我是硅谷的初创公司Confluent的联合创始人之一,我们公司…

机器人 树莓派 自闭症_用机器人孩子提高社交能力 让自闭儿童走出自闭

一项由耶鲁大学的研究团队研究发现,通过让患有自闭症谱系障碍(autism spectrum disorders,ASD)的孩童与机器人相处一个月,极大地提高了自闭症儿童的社交能力。耶鲁大学研究中的机器人可以通过眼神接触和模仿其它社交行为,通过讲故事和互动游戏…

19.常量-final

final 常量 final修饰,只能被初始化一次。 public static void main(String[] args){final int a3;a4;//报错/*TestVariable.java:7: 错误: 无法为最终变量a分配值a4;^ 1 个错误*/}常量一般用大写来修饰。 ------------- 更多的Java,Angular,…

Android手机avi转换为mp4手机,如何把avi转换为mp4

AVI是目前比较常见的一种音视频交错格式,这种格式的文件在多种地方是可以看到的,大多在游戏录制、光盘文件中可以见到此类文件。其画质不错,适合在电脑上观看,但是现在我们使用较多的是手机、iPad等设备。如果我们想要在这些设备上…

伪代码书写规范_C++代码书写规范(推荐新手程序员)

代码就是程序员的面子,无论是在工作中在电脑上写程序代码还是在面试时在纸上写演示代码我们都希望写出整洁,优雅的代码。特别在工作中当我们碰到需要维护别人的代码,或者是多人参与一个项目大家一起写代码的时候,如果碰到一些丑陋…

Java基础17:Java IO流总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/80201802 这位大侠,这是我的公众号:程序员江湖。 分享程序员面试与技术的那些事。 干货满满,关注就送。 本文介…

nuxt页面跳转_nuxt 项目如何解决组件复用时页面不刷新的问题

组件复用会在两种情况下发生:1、使用 keep-alive 时,页面再次跳转时,数据不更新每一次路由的切换都会导致页面被重新渲染,无论是各种钩子还是异步获取数据函数都会被执行,为了提高网站性能,可以使用 keep-a…

20.命名规范

所有变量,方法,类名:见名知意 变量,方法名 --首字母小写和驼峰原则。 如:run(),getName() 常量 ---大写字母和下划线:MAX_VALUE 类名 ---首字母大写和驼峰原则。 如:Man,HelloWorld ------…

k8s查看pod的yaml文件_K8s-yaml的使用及命令

YAML配置文件管理对象对象管理:# 创建deployment资源kubectl create-f nginx-deployment.yaml# 查看deploymentkubectl get deploy# 查看ReplicaSetkubectl get rs# 查看pods所有标签kubectl get pods--show-labels# 根据标签查看podskubectl get pods-l appnginx# …

Orange Business Services 全球发布 Easy Go Network,帮助企业加速实现“网络即服务”...

100% 数字化, 软件定义网络( SDN) 产品在 75 个国家上市 在云、移动化、大数据和物联网(IoT)趋势的推动下,企业不断寻求更加智能和更加灵活的网络,以支持他们的数字化转型方案。而网络只有演进至“网络即服务”(NaaS&a…

vue的html自动刷新,Vue页面刷新记住页面状态的实现

环境vue项目,页面有搜索、筛选项等。需求页面跳转,切换或者刷新,希望可以记住用户在页面的筛选状态方案v1vue有提供一种缓存组件的解决方案 — keep-alive。缓存不活动的组件实例,而不是销毁它们。我们可以使用keep-alive包括路由…

python 程序停止打印日志_Python日志打印

简单示例import sysimport ctypesimport loggingimport logging.handlersreload(sys)sys.setdefaultencoding(utf-8)LOG_FILE test_loglogging.basicConfig(filename LOG_FILE,format %(asctime)s - %(levelname)s -%(process)d- %(filename)s:%(funcName)s:%(lineno)d - %(…

21.和和instance of

>> 右移一位。相当于除2 << 左移一位。相当于乘2 public static void main(String[] args) {int a3<<2;int b12>>2;System.out.println("a"a);System.out.println("b"b);}解析&#xff1a; a3*2*212 b12/2/23 运行结果&#xf…