java中的数据类型转换,常量类型

2023-11-06

文章目录

  • 一:隐式转换
  • 二:强制转换
  • 三:java中常量优化机制
  • 四:常量类型


一、隐式转换

所谓隐式转换,就是将数据类型中,取值范围小的数据,给取值范围大的类型数据赋值,可以直接赋值。

        首先,看一段代码:

int a = 10;
double b = a;

 int 类型占的是4个字节,而double类型占8个字节,所以a赋值给b就可以直接赋值。

但是,如果这里要输出这个变量b时,输出值是10.0,而不是10。当a赋值给b时,系统会自动进行转换,这里的转换我们看不到,所以为隐式转换。

可以简记为:小的赋值给大的,可以直接给。

 以上是小的给大的,反过来,那么大的赋值给小的如何做呢?

这样做:小的数据类型会提升为大的之后,再进行运算。

例如:

int a = 10;
double b = 10.9;
double c = a + b;

 这里a是int 类型,b是double类型,a + b ,首先将a 的int类型提升为double类型,再进行运算,结果为double类型,所以结果用一个doubel类型接收。

最后,特别注意一点,byte,short,char这三数据在运算时,不管是否有更高的数据类型,都会提升为int类型,然后再进行运算。

如果是两个byte类型的数据相加,可以先让其相加,再对相加的结果整体进行强转。

例如:

byte a = 3;
byte b = 4;
byte c = (byte)(a + b);

二、强制转换

所谓强制转换,表示把一个数据范围大的数值或者变量赋值给另一个表示数值范围小的变量。但是会有精度损失问题。

格式:        目标数据类型  变量名  =  (目标数据类型)值或者变量

例如:

int a = 10;
byte b = (byte)a;
System.out.println(b);

如果不进行强制转换,会出现不兼容的类型错误。

再如:

int a = 10.9;
byte b = a;
System.out.println(b);

这里得到的结果是10,因为发生了精度损失问题,使得10后面的小数丢失。

三、java中常量优化机制

先看一段代码:

public class a{
    public static void mian(String[] args){
        byte d = 3 + 4;
    }

}

由于java中的常量优化机制,再编译时,就会将3+4计算出的结果7,自动判断7是否在byte取值范围内:

如果在的话:编译通过

如果不在的话:编译失败

四:常量类型

1.字符串常量:    用双引号括起来的内容,例:“Hello World”

2.整数常量:        所有整数

3.小数常量:        所有小数

4.字符常量:        用单引号括起来的内容,但是只能有一个内容。例:‘A’

5.布尔常量:        表示真假,只有两个值:true,false

6.空常量:           一个特殊的值,空值,值为null


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java中的数据类型转换,常量类型 的相关文章

随机推荐

  • C/C++堆溢出(stack overflow)的解决

    问题 堆溢出 stack overflow 解决 1 在VS里面设置 属性 链接器 系统 堆栈保留大小 2 通过代码 第一个值是堆栈的保留空间 第二个值是堆栈开始时提交的物理内存大小 堆栈改变为100M pragma comment lin
  • 用Arduino和蓝牙模块做一个开门装置

    用Arduino和蓝牙模块做一个开门装置 闲来无事 给门上装一个不用钥匙开门的装置 如图 学校很老的锁也搞不出什么花样了 就拿个舵机拉根杜邦线拽着锁 很简单的东西 做着玩玩 好吧 我承认看着有点 低电平 用的好像是HC04蓝牙模块吧 就网上
  • C++中函数对象(仿函数)的基本使用

    什么是函数对象 重载函数调用操作符的类 称其为函数对象 函数对象使用重载的 行为类似函数调用 也叫仿函数 1 函数对象在使用的时候 可以像普通函数那样调用 可以有参数 有可以有返回值 但本质上并不是一个函数 而是一个对象 类名 class
  • xxl-job的使用

    1 下载xxl job调度中心代码 可从这两个地址下载 https github com xuxueli xxl job https gitee com xuxueli0323 xxl job 2 下载后解压用idea打开 目录 doc d
  • 在浏览器中输入网址后回车发生了哪些事情

    最近在和许多同学交流面经的时候 发现有一个问题 无论你是前端开发 还是后端开发 被问到的概率很高 在此 我想把这个问题记录一下 总体来说 在浏览器的地址栏中输入网址后 发生了如下的事情 DNS解析 TCP连接 发送HTTP请求 服务器处理请
  • jenkins生成html测试报告和新增用户

    这里仅记录一下踩过的坑 1 新增用户 2 html报告的生成 构建报错1 jenkinsModuleNotFoundError No module named pytest html 或者报错 jenkins 执行提示 pytest err
  • 程序员就业和发展前景,一文带你了解

    程序员 英文是 code worker 顾名思义就是计算机程序的作者 它通常指从事计算机软件开发的人员 当然也包括用计算机语言编写程序来进行各种信息处理的人 现在软件行业中 程序员属于技术含量较高的一个群体 程序员就业和发展前景也是在众多行
  • 微信小程序-伸缩性最强的table组件

    微信小程序 伸缩性最强的table组件 微信小程序很大的一个诟病之一就是没有table组件 小程序中正常显示表格依然是令人头痛的问题 下面使用flex布局模拟现实一个小程序的table组件 支持内容过多滑动 设置单元格宽度等 1 效果图 微
  • Java---System类,RunTime类,Random类

    System类 系统类 主要获取系统的属性数据 还有标准的输入 输出及错误输出流 主要介绍一些常用的方法 1 数组拷贝 arraycopy Object src int srcPos Object dest int destPos int
  • open3d显示rope3d标注内容

    open3d是我发现比较好用且功能全面的3D库 下面演示显示rope3d的标注内容 其他调用的库有pandaset geometry等 usr bin env python3 coding utf 8 import pcl import o
  • 关于联想G480BIOS中的设置

    由于一段时间对笔记本电脑中的BIOS设置很感兴趣 故在网上搜索一下 找到这篇博客 为了以后那天能用上就先转载一下 以备后用 地址为 关于G480BIOS设置
  • 微信小程序登录问题--第一次登录失败刷新再次登录成功问题

    出现这样问题都是先获取用户信息wx getUserInfo encryptedData与iv 再进行登录wx login 获取code code是用来生成session key用来解密encryptedData与iv的 所以等你先获取用户e
  • Java实现二阶魔方旋转

    魔方可以对它的6个面自由旋转 我们来操作一个2阶魔方 如图1所示 为了描述方便 我们为它建立了坐标系 各个面的初始状态如下 x轴正向 绿 x轴反向 蓝 y轴正向 红 y轴反向 橙 z轴正向 白 z轴反向 黄 假设我们规定 只能对该魔方进行3
  • linux延迟函数sleep

    include
  • 不用密码卸载symantec

    之前在某公司实习的时候 需要安装这个软件 后面尝试了很多网上的方法 都无法卸载掉 最后还是使用了杀手锏 官方的卸载软件cleanwipe 按照步骤 很简单的就卸载掉了 这里附上链接 最后面的附件可以下载 Download the Clean
  • 滑动拼图和文字点选两种类型的验证码

    前言 行为验证码通过用户的操作来完成验证 常见的行为验证码有拖动式和点触式 拖动式验证就是根据图片显示 将指定的图形拖动到指定位置完成验证 而点触式验证码就是通过鼠标点击出示例中出现的图形完成验证 行为验证码应用 今天推荐一款非常优秀的行为
  • DOM操作-上移下移

    HTML ul li span 啦啦啦啦 span i 1 i li ul
  • anaconda prompt 常用命令

    1 查看已安装的包 conda list 2 更新所有包 conda upgrade all 3 安装包 conda install package name 4 删除包 conda remove package name 5 更新包 co
  • 以太坊学习

    ubuntu 安装go 自行百度 下载ethererum客户端 github 将ethererum 解压放在GOPATH下 进入 ethererum文件夹 执行 make geth 或者make all 可能会报错 原因 所下载的库依赖有官
  • java中的数据类型转换,常量类型

    文章目录 一 隐式转换 二 强制转换 三 java中常量优化机制 四 常量类型 一 隐式转换 所谓隐式转换 就是将数据类型中 取值范围小的数据 给取值范围大的类型数据赋值 可以直接赋值 首先 看一段代码 int a 10 double b