java数据类型易错点简单总结,欢迎大神前辈补充!谢谢
数据类型那这边看似简单,花了我很长时间也就是才练到几成”功力“吧。还希望路过的大神在下面补充,菜鸟的我深受感谢!
首先看两个思考题
思考题1:请问下面这个有没有问题
double d = 12.345;
//有问题!!!因为double是8位,float是4位。定义一个double类型数据给float会提示损失精度!
float f = d;
思考题2:看看下面两个定义有没有区别呢?
float f1 = (float)12.345;
float f2 = 12.345f;
//f1其实是通过一个double类型转换过来的。而f2本身就是一个float类型。
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?
b = b1 + b2;是有问题的。
因为(变量相加,会首先看类型问题),最终把结果赋值的也会考虑类型问题,b1+b2先转为int类型,而赋值时给的是一个byte类型,会报错显示:损失精度问题。
然而常量相加,首先做加法,((然后看结果是否在赋值的数据类型范围内,如果不是,才报错))。.这里不超过byte(-128-127)的范围,所以没问题,不报错。
求输出结果:byte b = (byte) 130;
System.out.println(b);
分析;首先130超出了byte范围。
A:获取130这个数据的二进制。又知道计算机中数据的运算都是补码进行的。而要得到补码,首先要计算出数据的二进制。
00000000 00000000 00000000 10000010这是130的原码,也是反码,还是补码。
B:做截取操作,截成byte类型的了。
10000010
这个结果是补码。
C:已知补码求原码。(我们看到的是数据的原码形式)
符号位 数值位
补码: 1
0000010
反码: 1
0000001
原码: 1
1111110 输出结果-126
补充:”+“字符串拼接作用和加法运算容易混淆——
class DataTypeDemo8 {
public static void main(String[] args) {
//直接输出一个字符
System.out.println('a'); //a
//输出一个字符和一个整数做加法,先将字符型数据转换成int型数据,再做(加法运算)
System.out.println('a'+1); //98
}
}
class DataTypeDemo9 {
public static void main(String[] args) {
System.out.println("hello"+'a'+1); //helloa1
System.out.println('a'+1+"hello"); //字符类型先转换成整数类型98,98hello
System.out.println("5+5="+5+5); //5+5=55(注意这里)
System.out.println(5+5+"=5+5"); //10=5+5//注意在一个字符串的前面还是一个字符串的后面
System.out.println("hel"+"l"+"o");//做字符串链接作用
}
}应该可以这么记住:单引号引起来的是字符类型+int类型会发生转型;此时+号作用是数学运算。如果双引号引起来内容是字符串,+号作用是字符串拼接。
今天就到这里,谢谢前辈来评价,补充。谢谢!
java数据类型易错点简单总结,欢迎大神前辈补充!谢谢的更多相关文章
- Java字符串易错方法总结
Java字符串易错方法总结 public String[] split(String regex) 和 public String[] split(String regex,int limit) li ...
- C#回调函数的简单讲解与应用例子(最简单讲解,大神绕道)
本博客一直以来的宗旨就是:用最简单的方式讲清楚不复杂的问题. 因为本人也很菜所以也没法讲太复杂HHHHHH...... 所以如果哪天某个大神看到了觉得讲的有问题欢迎指出. 话不多说进入正题.. ——— ...
- java考试易错题大全
常见的Java问题 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Ja ...
- java初级易错问题总结
1.什么是变量?变量的定义格式?要使用变量需要注意什么?就是可变的量数据类型 变量名 = 数值;同一范围内不能重复定义不赋值不能使用 2.Java中的数据类型分几类?基本数据类型有哪些?两大类 ...
- java中易错点
1.A instanceof B{这是没有好好利用java多态的表现} java中的二元操作符,测试A对象是否是B类的实例: 返回值:boolean类型 2.“==”与 “equals”的区别: = ...
- java中易错点(二)
java,exe是java虚拟机 javadoc.exe用来制作java文档 jdb.exe是java的调试器 javaprof,exe是剖析工具 解析一: sleep是线程类(Thread)的方法, ...
- java中易错点(一)
由于replaceAll方法的第一个参数是一个正则表达式,而"."在正则表达式中表示任何字符,所以会把前面字符串的所有字符都替换成"/".如果想替换的只是&qu ...
- java基础易错点总结(一)
子类继承父类表示子类比他的父类包含更多的信息和方法 子类调用重载的构造方法时会调用父类的构造方法,super();一般如果不写的话会隐式的调用,而且每次调用都在所有语句之前. 在函数中,使用父类的地方 ...
- Java正则表达式易错题
以下代码将打印出 public static void main (String[] args) { String classFile = "com.jd.". replaceAl ...
随机推荐
- Java异常处理-----自定义异常
自定义异常 问题:现实中会出现新的病,就需要新的描述. 分析: java的面向对象思想将程序中出现的特有问题进行封装. 案例: 定义功能模拟凌波登录.(例如:lb(String ip))需要接收ip地 ...
- Hazelcast源码剖析之Eviction
v:* { } o:* { } w:* { } .shape { }p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-botto ...
- #pragma pack(x) CPU对齐
编译器会尽量把成员对齐以提高内存的命中率.对齐是可以更改的,使用"#pragma pack(x)" 可以改变编译器的对齐方式. C++固有类型的对界取编译器对齐方式与自身大小中较小 ...
- 生活沉思录 via 哲理小故事
本文转载:http://www.cnblogs.com/willick/p/3174803.html 1.小托蒂的悲剧 意大利小男孩托蒂,有一只十分奇怪的眼睛,因为从生理上看,这是一只完全正常的眼睛, ...
- [ExtJS5学习笔记]第二十七节 CMD打包错误 Error C2009: YUI Parse Error (identifier is a reserved word => debugger;)
本文地址:http://blog.csdn.net/sushengmiyan/article/details/41242993 本文作者:sushengmiyan ------------------ ...
- 看见的力量 – (I) 解题的思维
本文转自台湾李智桦老师的博客,原文地址 这篇文章:已经梗了我三个多星期了.这期间飞了二次大陆做演讲.往返几个大城市做教授敏捷开发运用在精实创业的课程.教材内容都是简体的,它们始终没有机会在国内用上,心 ...
- (一二三)基于GCD的dispatch_once实现单例设计
要实现单例,关键是要保证类的alloc和init只被调用一次,并且被自身强引用防止释放. 近日读唐巧先生的<iOS开发进阶>,受益匪浅,通过GCD实现单例就是收获之一,下面把这个方法与大家 ...
- 最简单的视频编码器:基于libx264(编码YUV为H.264)
===================================================== 最简单的视频编码器系列文章列表: 最简单的视频编码器:编译 最简单的视频编码器:基于libx ...
- JDK8帮助文档生成-笔记
JDK8 出来了,以前习惯了使用.CHM文件来查看API,现在想也这样,这里自己制作了一下,记录一下. 1.需要的工具: ①JD2CHM;②API文档③HTMLlHelper 遇到的问题主要是不知道去 ...
- Sharepoint Solution Gallery Active Solution时激活按钮灰色不可用的解决方法
在做CRM与sharepoint集成的时候,需要在sharepoint中上传crmlistcomponent组件,上传后需要激活,但会碰到激活按钮是灰色的无法点击的问题,如下图中这样,包括点击组件后面 ...