• 默认转换(从小到大 /*联想式理解:从弱变强 因为代码的世界是正能量的,所以可以默许蜕变得原来越好哇*/)

byte(1),short(2),char -> int(4) -> long(8) ->float(4) -> double(8)

问题来了,4个字节的float存8个字节的long???

这里就有个小知识点啦:

  1. 浮点型采用科学计数法,整型采用补码形式,两者的存储结构不同,所以直接比较是不对的哦。方法展开见下详述(选读即可):

float类型数字在计算机中的存储遵循IEEE—754格式标准:一个浮点数由底数m和指数e两部分组成。
①底数部分:使用二进制数来表示浮点数的实际值
而指数可正可负,Therefore,IEEE规定,此处算出的次方必须减去127才算真正的指数。
②指数部分:占用八个字节的二进制数,可表示0~255的数值范围
底数部分实际是占用24字节的一个值,但是最高位始终为1,因而最高位省去不存储,在存储中占23字节
格式:
    SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM
    PS:其中S表示浮点数正负
        E指数 加上 127后的 值 的 二进制数据
        M底数
eg:10.625在内存中的存储
首先要把10.625换算成二进制:1010.101
    ①整数部分:二进制
    ②指数部分:乘以2,直到乘位0,进位按顺序取

  1. 从第一点的知识基础上,我们可以明确float表示的数据范围比long的范围要大
  • ①boolean类型不能转换为其他的数据类型

②byte,short,char相互之间不转换,如果他们参与运算呀,就先转换为int

  • 字符串类型与其他类型进行字符串连接+时,结果是字符串类型

进行运算时,讲究个“先入为主”

eg:

System.out.println("aha"+'a'+1);
System.out.println(1+'a'+"aha"); System.out.println(5+5+"=5+5");
System.out.println("5+5="+5+5);

  • 数据溢出的情况下 进行强制类型转换

知识补充:原码补码反码之间的三角关系
    原码:对应数字的二进制
    反码:原码中的1变0,0变1,搞定
    补码:反码末尾加一
eg:(byte)129 ==?
     ①计算机中通过数据补码形式进行运算
     ②明确:byte只占一个字节,8位
            而int占四个字节,32位
     ③整形129的补码(当然啦,作为正数,原码补码反码都是一样的): 00000000 00000000 00000000 10000001
      做截取操作,截成byte类型,保留八位:10000001
      那么再通过已知补码还原出原码就是下一步的工作咯
      反码(把那个1再减回来):10000000
      原码(1变0,0变1):01111111
      其中,0位符号位(符号位上0代表负号,1代表正号)
      1+2+4+8+16+32+64=127
      锵锵锵,所以(byte)129为-127
      因为byte的范围是-128~127,,所以大家完全可以找个范围外的数练练手,小陌当了多年的理论党越来越菜,往往熟习理论只是真正学会的十分之三,会用才是王道,别堕落为小陌这般菜鸟呀!!!
     !!!不要随意的去使用强制转换,毕竟它隐含了精度损失的弊端

数据类型转换(java)的更多相关文章

  1. JavaSE学习(二):进制转换—数据类型转换—Java运算符

    一.进制转换 1.1 其他进制转十进制(以十六进制为例): 十六进制范围:0-9, A-F对应数字10-15 2A7E(16)  =  14*16(0) +7*16(1) + 10*16(2)  + ...

  2. java_数据类型转换、运算符

    数据类型转换 Java程序中要求参与计算的数据,必须要保证数据类型一致,如果数据类型不一致将发生类型的转换. 1.1 自动转换 一个 int 类型变量和一个 byte 类型变量进行加法运算,运算结果, ...

  3. java基础之数据类型转换

    在写java程序时,经常会遇到需要数据类型转换,下面我们来介绍一些一些基本数据类型之间的转换. 1.int,folat,double,boolean,long 转换成字符串,其实很简单只需使用一个函数 ...

  4. Java基础知识强化22:Java中数据类型转换

    数据类型转换: (1). 自动转换 低级变量可以直接转换为高级变量,这叫自动类型转换.比如: byte b: int b:  long b:  float b:   double  b: 上面的语句可 ...

  5. Java数据类型转换浅析

    Java数据类型转换分为两种:自动类型转换和强制类型转换. 数据类型转换的关键是数据类型相应的表数范围大小 1.自动类型转换: 概念:小范围数据类型会自动转化成大范围数据类型 实例: int a=10 ...

  6. Java基础语法(一)<注释,关键字,常量,变量,数据类型,标识符,数据类型转换>

    从今天开始,记录学习Java的过程.要学习Java首先得有环境,至于环境的安装我就不说了,百度有很多教程,比如:http://jingyan.baidu.com/article/20095761904 ...

  7. Java基础练习1(数据类型转换)

    1.下列代码的输出结果是:()(单选) public static void main(String[] args){ double money = 3.0; money -= 2.9; System ...

  8. Java知多少(11)数据类型转换

    数据类型的转换,分为自动转换和强制转换.自动转换是程序在执行过程中“悄然”进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换:强制类型转换则必须在代码中声明,转换顺序不受限制. 自 ...

  9. Java中数据类型转换大全(个人总结)

    一.字符串转换为其他类型 1.将字符串转化为int型 (1)方法一 int i = Integer.parseInt(String str); (2)方法二 int i = Integer.value ...

  10. Java将其他数据类型转换成JSON字符串格式

    Student.java package com.demo.servlet; import java.util.List; import java.util.Map; public class Stu ...

随机推荐

  1. 傻妞教程——对接QQ频道机器人

    安装插件 前往傻妞插件市场安装QQ频道机器人插件,基于Node开发. 申请机器人 使用前请先确保已在机器人平台创建机器人 (opens new window),具体创建教程在超链接里面有,根据教程图以 ...

  2. Docker - 在docker中部署Nginx

    1.docker search 查找ngix 2.docker pull下载镜像 3.查看镜像列表 4.docker run启动容器 5.测试nginx容器是否启动成功 1.docker search ...

  3. 大数据之路Week10_day07 (JavaAPI 操作Redis 与Hbase建立索引,通过查询redis中的索引查询Hbase数据)

    在这里是简单模拟将索引存到redis中,再通过先查询索引再将Hbase中的数据查询出来. 需要考虑的问题: 1.建立redis的连接,建立Hbase的连接 2.如何创建索引,即创建索引的key和val ...

  4. springboot2.1.6整合activiti6.0(一)

    一.pom <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3. ...

  5. FormCreate中在事件中获取api

    form-create中在事件中获取api FormCreate 是一个可以通过 JSON 生成具有动态渲染.数据收集.验证和提交功能的表单生成组件.支持5个UI框架,并且支持生成任何 Vue 组件. ...

  6. PHP中类和对象相关的函数

    1.class_exists 用于判断一个类是否存在,参数为类名: 2.interface_exists 判断一个接口是否存在,参数为接口名: 3.method_exists 判断一个方法是否存在,参 ...

  7. Avalanche公链深度解析:创新共识、亚秒级最终性与生态竞争力

    摘要:Avalanche定位为一个高性能.可扩展的Layer 1区块链平台,但它并不是一个新公链,其主网于2020年9月21日正式上线,有Ava Labs开发.Ava Labs成立于2018年,总部位 ...

  8. JMeter 线程编号 __threadNum 获取不到

    场景: 在 BeanShell PreProcessor 中,使用 vars.get("__threadNum") 获取不到当前线程数,如: import org.apache.j ...

  9. vue学习一(指令1.v-text,v-html,插值表达式{{msg}})

    一.1.v-text,v-html,插值表达式{{msg}} 注:v-text解决差值表达式闪烁问题,因为他是属性不是差值表达式 1.1.v-text: 是没有闪烁问题的,会覆盖标签的元素中原本的内容 ...

  10. Pydantic配置继承抽象基类模式

    title: Pydantic配置继承抽象基类模式 date: 2025/3/21 updated: 2025/3/21 author: cmdragon excerpt: Pydantic模型配置系 ...