一、回答问题
float f1 = 6.66f;
float f2 = (float) 6.67;

f1==f2?

/**
*
* @author sun
*
*/
public class Demo {
public static void main(String[] args) {
float f1 = 6.67f;
float f2 = (float) 6.66;
System.out.println(f1-f2);
System.out.println(f1==f2);
}
}

输出:

0.010000229
false

为什么会出现这种情况呢?f1!=f2呢?这时我们要知道,在Java中,

整数默认是int类型,浮点数默认是double。
长整数要加L或者l。
单精度的浮点数要加F或者f。

默认转换
A:从小到大
B:byte,short,char -- int -- long -- float -- double

后者6.66是个double类型的,经过强制转换赋值给f2,会丢失精度,所以出现上述情况。

二、下面的程序有问题吗,如果有,在哪里呢?
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;
byte b4 = 3 + 4;

b1+b2java中是自动转换成int型在计算值的 结果是int型的数据,不能自动转成byte,所以报错,需要强制转化为byte。
三、下面的操作结果是什么呢?
byte b = (byte)130;

/**
*
* @author sun
*
*/
public class Demo {
public static void main(String[] args) {
// 因为byte的范围是:-128到127。(-2^7--2^7-1)
// 我们需要使用强制类型转换
byte b = (byte) 130;
System.out.println(b);
}
}

输出:

-126

分析过程: 我们要想知道结果是什么,就应该知道是如何进行计算的。 而我们又知道计算机中数据的运算都是补码进行的。 而要得到补码,首先要计算出数据的二进制。
 A:获取130这个数据的二进制。 00000000 00000000 00000000 10000010 这是130的原码,也是反码,还是补码。
 B:做截取操作,截成byte类型的了。 10000010 这个结果是补码。 C:已知补码求原码。 符号位 数值位 补码: 1 0000010
反码: 1 0000001
原码: 1 1111110
 
四、字符串参与运算

/**
*
* @author sun
*
*/
public class Demo {
public static void main(String[] args) {
System.out.println("hello"+'a'+1);
System.out.println('a'+1+"hello");
System.out.println("5+5="+5+5);
System.out.println(5+5+"=5+5");
}
}

输出:

helloa1
98hello
5+5=55
10=5+5

字符串的拼接

五、引用类型转换

        String name = "this is";
Object object = name;
name = object;//编译无法通过

为什么会出错呢?问题在于,String对象总是Object对象,但Object对象不一定是String对象。

通过强制转换,编译即可通过。

String name = "this is";
Object object = name;
name = (String) object;

java基础02 数据类型转的更多相关文章

  1. java基础-02数据类型

    基本类型 整数 byte byte 数据类型是8位.有符号的,以二进制补码表示的整数 最小值是 -128(-2^7) 最大值是 127(2^7-1) 默认值是 0 byte 类型用在大型数组中节约空间 ...

  2. java 基础 02 数据类型、运算符、分支结构

    内容: (1)数据类型 (2)运算符 (3)分支结构 1.数据类型 java语言中的基本数据类型:byte.short.int.long.float.double.boolean.char. 1.1布 ...

  3. java基础(数据类型,运算符)

    java基础之数据类型(变量) java中存在的数据有常量和变量 常量:在程序执行的过程中其值不可以发生改变 常量的分类 字面值常量 字面值常量的分类 常量 描述 字符串常量 用双引号括起来的内容 整 ...

  4. java基础-引用数据类型之二维数组(Array)

    java基础-引用数据类型之二维数组(Array) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我们学习过了Java的一维数组,所谓的二维数组就是元素是一堆一维数组的数组,换 ...

  5. java基础-引用数据类型之一维数组(Array)

    java基础-引用数据类型之一维数组(Array) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组的定义 1>.为什么需要数组 保存一个数据可以定义一个变量,如果要保 ...

  6. Java基础-引用数据类型之集合(Collection)

    Java基础-引用数据类型之集合(Collection) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么出现集合类 面向对象语言对事物的体现都是以对象的形式,所以为了方便 ...

  7. 小白——java基础之数据类型

    PS:此文章为小白提供,大佬请绕道!!!! 首先特别感谢大才哥给我提供这个平台,未来我希望把java这个版块的内容补全. 今天要讲的是数据类型,最最最基础的内容~ java标识符.数据类型.关键字 开 ...

  8. 【Spring学习】【Java基础回顾-数据类型】

    Java基础回顾过程中,之前对于Java相关基础知识都是从这个人的博客看一些,那边的内容看一下,觉得不够系统化,决定用xmind脑图的形式,将Java基础知识回顾的作为一个系列,当前正在做的会包含: ...

  9. java基础知识-数据类型及转换

    1.java中的常量大体分为两种: <1>字面量常量 <2>自定义常量 2.java中常量(字面量)的分类:<1>,整数常量:直接出现的整数<2>,小数 ...

随机推荐

  1. 如何使用kali的Searchsploit查找软件漏洞

    Searchsploit Searchsploit会通过本地的exploit-db, 查找软件漏洞信息 打开kali的命令行, 输入: searchsploit 查看系统帮助 查找mssql的漏洞 如 ...

  2. msseces.exe频繁出错的原因和解决方法?

    关机时会报错,什么内存为只读.. 以下是官方给的解决方案,相信对大部分用户都起作用,在这分享给大家. 对于当前遇到的问题,有可能是由于程序冲突导致.因此建议进入干净启动状态再确认问题是否发生: 1.如 ...

  3. hdu4638

    hdu4638 题意 给定一个序列,序列由1-N个元素全排列而成,求任意区间可组成的连续的段数,比如[1,2,4]两段{[1,2],[4]},[1,2,4,3]一段{[1,2,3,4]}. 对于查询的 ...

  4. Java常用类之String类、Stringbuffer和Random类练习

    定义一个StringBuffer类对象, 1)使用append方法向对象中添加26个字母,并倒序遍历输入 2)删除前五个字符 package 第十一章常用类; /** * 定义一个StringBuff ...

  5. HTML----网页基础和基本标签

    网页分类: 1.静态网页:所有内容全写死,都写在源代码中,若修改必须修改源代码,后缀为.html或htm 2.动态网页:内容大部分来自于数据库,可以修改,后缀为.aspx(c#).jsp(java). ...

  6. 禁止右键,禁止选中,禁止网页复制的Js代码

    document.oncontextmenu=new Function('event.returnValue=false;'); document.onselectstart=new Function ...

  7. nodejs零基础详细教程1:安装+基础概念

    第一章 建议学习时间2小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...

  8. 获取Skype用户IP地址

    #!/usr/bin/env bash ESC_SEQ="\x1b[" COL_RESET=$ESC_SEQ"39;49;00m" COL_RED=$ESC_S ...

  9. python编写知乎爬虫实践

    爬虫的基本流程 网络爬虫的基本工作流程如下: 首先选取一部分精心挑选的种子URL 将种子URL加入任务队列 从待抓取URL队列中取出待抓取的URL,解析DNS,并且得到主机的ip,并将URL对应的网页 ...

  10. linux 下用renameTo方法修改java web项目中文件夹名称问题

    经测试,在Linux环境中安装tomcat,然后启动其中的项目,在项目中使用java.io.File.renameTo(File dest)方法可行. 之前在本地运行代码可以修改,然后传到Linux服 ...