java中的类型赋值常见错误

2023-11-17

Java中float、double、long类型变量赋值添加f、d、L尾缀问题

  1. 添加尾缀说明

      我们知道Java在变量赋值的时候,其中float、double、long数据类型变量,需要在赋值直接量后面分别添加f或F、d或D、l或L尾缀来说明。
      其中,long类型最好以大写L来添加尾缀,因为小写l容易和数字1混淆。
      例如:

long lNum = 1234L;
float fNum = 1.23f;
double dNum = 1.23d;

  这是Java语法规定,不添加尾缀很容易引起编译器报错,并且程序可读性也会变差。

  1. 不添加尾缀也不会报错的情况

      Java语言中,整数直接量(例如:1、2、10等),JVM虚拟机是默认为int类型数据的。所以,当整数直接量赋给long、float或者double,而不添加尾缀,虚拟机也会直接将int类型数据自动转换为对应类型然后赋值。因为数据长度短的转换为长的并不会造成数据丢失,所以默认可以自动转换。 
      例如:

long lNum = 5; //不报错,因为int自动转换为long类型,不会报错
float fNum = 7; //不报错,因为int自动转换为float类型,不会报错
double dNum = 10; //同上

  但是,当浮点直接量(例如:1.2等),JVM虚拟机默认为double类型,如果直接赋值给float就会引起编译器报错。

float fNum = 1.2; //报错,因为1.2虚拟机是默认为double类型,不能直接赋值给float类型变量
float fNew = 1.3f;//正确,因为尾缀添加了f,即告诉了虚拟机1.3属于float类型变量

  1. 总结

      所以,当Java中遇到这三种类型变量需要赋直接量时候,最好都添加上相应的尾缀。这样不仅会防止编译器报错,也会增加程序的可读性。
      但是下面这种情况就算添加尾缀也是错的,因为尾缀仅是为了告诉虚拟机该直接数属于什么数据类型,而不能实现数据类型强制转换。

long lNum = 1.2L; //错误,double类型数据不能直接赋值给long类型
long lNew = (long)1.2; //正确,double类型数据强制转换为long类型
一般这种题在笔试的时候容易作为java基础来出题,所以自己学习一下啦!!祝大家爱都能早日找到自己喜欢的工作!共勉

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

java中的类型赋值常见错误 的相关文章

随机推荐

  • Python+Selenium练习篇之18-自定义浏览器窗口大小

    本文来学习下如何通过Selenium方法 设置符合不同测试场景浏览器窗口大小 例如 你有一台机器 最大支持1366 768 你完全可以利用这个机器测试不同分辨率下的场景 相关测试脚本代码如下 coding utf 8 import time
  • 区块链技术的应用和数字资产,将会是未来不可阻挡的趋势和潮流

    前言 数字资产的发展 很可能是人类近千年金融史上又一次激动人心的变革 如果让你回到七年前重新选择一次投资机会的话 你可能会选择投资股票 然后坐等15年大牛市资产翻几倍 你也可能会投资房地产 然后坐等16年房地产爆发 资产翻番 但你万万想不到
  • javascript正则表达式学习

    REGEXP对象 javascript通过内置对象RegExp支持正则表达式 有两种方法实例化RegExp对象 1 字面量 var reg bis b var reg2 bis b g 正则规则放在 内 bv表示单词边界 g表示全文搜索 如
  • 树莓派作为客户端与WemosD1作为服务器的无线通信(局域网通信)

    参考 树莓派作为客户端与WemosD1作为服务器的无线通信 局域网通信 作者 图触靓 发布时间 2020 07 26 21 50 39 网址 https blog csdn net bhbhhyg article details 10759
  • 2023年“大湾区杯” AI for Science正式开赛!

    2023年 大湾区杯 粤港澳 AI for Science 科技竞赛 赛题发布 01 AI for Science 赛题设置 本次竞赛设置三大赛道 分别为常规赛道 题号CG2301 CG2312 百度赛道 题号BD2301 BD2308 华
  • SonarQube代码扫描

    一 代码质量测试 1 代码测试工具 SonarQube 官方网站 https www sonarqube org SonarQube 是一个用于代码质量管理的开放平台 通过插件机制 SonarQube 可以集成不同的测试工具 代码分析工具
  • 华为OD机试 C++ 整数编码

    描述 我们想要一种特殊的整数编码方式 让数字小的时候 编码占的空间也小 编码的方法如下 我们每7位组成一部分来编码 在每个字节里 用前7位来存数字 如果后面还有数据 最高的那一位就是1 否则就是0 数据要按小端序保存 也就是说 小的数据部分
  • HTML中所有基本标签

    1 h1 h6 为标题标签 h1 我是一个标题 h1 h2 我是一个标题 h2 h3 我是一个标题 h3 h4 我是一个标题 h4 h5 我是一个标题 h5 h6 我是一个标题 h6 网页显示效果 h1 h6 数字越大 字体越小 且独占一行
  • 无需GPU无需网络“本地部署chatGPT”(更新StableVicuna)

    想当初图像生成从DELL到stable diffusion再到苹果的移动部署过了两三年吧 聊天bot才发展几个月就可以边缘部署了 如果苹果更新silicon npu和运存翻倍 争取apple watch也能本地内置 最快ios18 mac
  • Apache网页优化压缩步骤

    Apache网页与安全优化 Apache网页优化 1 网页压缩 2 网页缓存 Apache安全优化 1 配置防盗链 2 隐藏版本信息 Apache 网页 优化概述 1 在企业中 部署Apache后只采用默认的配置参数 会引发网站很多问题 换
  • Python笔记:操作ndarray元素:访问、删除、插入

    引入 import numpy as np 在此引入一次 下面直接使用 np 访问ndarray元素 x np array 1 2 3 4 5 print print x x print print This is First Elemen
  • 《UnityAPI.Animation动画》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Animation+AddClip+CrossFade+立钻哥哥++OK++)

    UnityAPI Animation动画 版本 作者 参与者 完成日期 备注 UnityAPI Animation V01 1 0 严立钻 2020 06 23 UnityAPI Animation动画 发布说明 UnityAPI Anim
  • Android——单选多选按钮的使用详解

    button1 Button findViewById R id button1 button2 Button findViewById R id button2 button1 setOnClickListener this button
  • java学习总结——protobuf3的语法

    本文主要讨论protobuf3在编写proto接口描述文件时的语法 下面是一个proto文件的实例 syntax proto3 import address proto package com study blog protobuf opt
  • [激光原理与应用-40]:《光电检测技术-7》- 常见光干涉仪及其应用

    目录 第1章 干涉仪概述 1 1 什么是干涉仪 1 2 基本原理 1 3 分类 1 4 应用 1 5 干涉仪的类型 第2章 常见光干涉仪 2 1 迈克尔逊干涉仪 2 2 泰曼 格林干涉仪 2 3 移相干涉测量仪 2 4 菲索共路干涉仪 第1
  • vue+webpack5:If you want to include a polyfill, you need to

    升级 vue cli 5 0 1 发现 const path require path 异常 发现默认webpack 是 提示v5区别于v4不再自动引入Polyfills 需要手动添加 按照控制台提示 1 安装path browserify
  • mysql不包含模糊查询

    包含like 不包含not like select from 数据库表 where HouseName like 江门奥园项目 and HouseName like 幢 and HouseName not like 商 不包含not in
  • jupyter修改文件目录和虚拟环境

    在我们安装完jupyter的时候 他是默认为根目录的 我们想切换到我们自己创建的文件目录中该怎么做呢 请看下面步骤 一 切换文件目录 首先 先在我们要放的目录下创建一个文件夹 如 我的为 F Jupyter 在命令行窗口中输入 jupyte
  • cocos2dx 常见的49中动作详解

    bool HelloWorld init 1 super init first if CCLayer init return false CCSprite sp CCSprite create Icon png sp gt setPosit
  • java中的类型赋值常见错误

    Java中float double long类型变量赋值添加f d L尾缀问题 添加尾缀说明 我们知道Java在变量赋值的时候 其中float double long数据类型变量 需要在赋值直接量后面分别添加f或F d或D l或L尾缀来说明