java入门 类型学习

文章目录

  • 一、比较float型与double型
  • 二、Java与C语言的不同
  • 三、float变量的声明
  • 四、字符串与字符类型
  • 五、算术混合运算的精度

一、比较float型与double型

float x = 0.4f;
double y = 0.4;

请问各位是不是感觉这两者好像是一样大的吧?

其实不然

因为:实际存储变量的时候,x中的数据是(保留16位小数)0.4000 0000 5960 4645,而此时y中的数据是(保留16位小数)0.4000 0000 0000 0000,y<x
为什么是16位小数呢?因为float与double进行比较会将float转换为double

而出现0.4000 0000 5960 4645,这是由于float的精度不够。
eg:

我们可以写出2.25的内存分布:
符号位为:0
指数为1,用补码表示 0000 0001,转为移码就是1000 0001。
尾数位为0010 0000 0000 0000 0000 000
2.25的双精度表示为:0 100 0000 0001 0010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000,这样2.25在进行强制转换的时候,数值是不会变的;
而我们再看看2.2呢,2.2用科学计数法表示应该为:将十进制的小数转换为二进制的小数的方法为将小数2,取整数部分,所以0.282=0.4,所以二进制小数第一位为0.4的整数部分0,0.4×2=0.8,第二位为0,0.82=1.6,第三位为1,0.6×2 = 1.2,第四位为1,0.2*2=0.4,第五位为0,这样永远也不可能乘到=1.0,得到的二进制是一个无限循环的排列 00110011001100110011… ,对于单精度数据来说,尾数只能表示24bit的精度,所以2.2的float存储会出现误差!

在此感谢 张小琦 见博客

10进制小数如何转换为2进制:

十进制的小数转换为二进制,主要是小数部分乘以2,取整数部分依次从左往右放在小数点后,直至小数点后为0。

综上,所以产生了奇葩答案!

二、Java与C语言的不同

1、Java中的 System.out.println( ) 是无法跟C语言一样,加入什么%d之类的东西的,如果想加的话,应该调用Java里面的 System.out.printf()

2、Java允许使用 int型变量 来指定数组元素的个数,(而且Java中数组的定义也与C语言不同,这太过简单,请自行搜索)Java可以通过 数组名.length 直接得到 数组长度

3、Java中的成员变量是有默认值的,不同类型默认值不同

eg:
int的默认值为0
布尔型默认值为false

4、char型的数组a,System.out.println(a)不会输出数组a的引用而是输出其全部元素的值。
想要输出char型数组的引用,必须让数组a和字符串做并置运算。
eg:

System.out.println(""+a);

三、float变量的声明

float变量的赋值不一定要加上 f/F 为后缀,当然,如果是用小数就必须得加后缀,如果不是小数其实是可以不用加的,因为没有小数点,那么其不会默认为double型。
eg:

float foo1 = -1;
float foo2 = 1;
float foo3 = 0x0123;

这些都是正确的声明方式。

四、字符串与字符类型

字符串用双引号,字符类型用单引号。

注意:在多个字符外使用单引号一定会报错!!!

在Java中,可以使用字符在Unicode表的排序位置的 16进制转义(需要用u做前缀),一般格式为 ‘\u****’

五、算术混合运算的精度

1、如果表达式中有double型数据,则按double精度进行运算。
2、如果表达式中最高为float型数据,则按float精度进行运算。
3、如果表达式中最高精度为long型整数,则按long精度运算。
4、如果表达式中最高精度小于等于int型整数,则按int精度运算。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/732402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用logrote和split分割nohup.out日志

背景&#xff1a;用nohup运行jar包时候&#xff0c;会产生大量的日志文件&#xff0c;影响磁盘存储&#xff0c;生产环境大概1天有30个g 解决方案&#xff1a; 1、用split分割日志&#xff0c;代码在下面&#xff08;可以先测试一下&#xff09;&#xff0c;然后加入到定时任务…

Java零基础-数组的访问和遍历

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一个人虽可以走的更快&#xff0c;但一群人可以走的更远。 我是一名后…

LeetCode2834. Find the Minimum Possible Sum of a Beautiful Array

文章目录 一、题目二、题解 一、题目 You are given positive integers n and target. An array nums is beautiful if it meets the following conditions: nums.length n. nums consists of pairwise distinct positive integers. There doesn’t exist two distinct ind…

使用CSS制作动态的环形图/饼图

使用纯 CSS Animation conic-gradient 实现一个环形图。 饼图的实现思路和环形图一样&#xff0c;去掉中间的圆形遮盖 after 伪类元素即可。 一、构建基础样式 构建圆形节点和中间的遮盖元素。 <style>body {background-color: rgb(130, 226, 255);}.circle {top: 16…

持续更新 | 与您分享 Flutter 2024 年路线图

作者 / Michael Thomsen Flutter 是一个拥有繁荣社区的开源项目&#xff0c;我们致力于确保我们的计划公开透明&#xff0c;并将毫无隐瞒地分享从问题到设计规范的所有内容。我们了解到许多开发者对 Flutter 的功能路线图很感兴趣。我们往往会在一年中不断更改并调整这些计划&a…

python3.9 处理excel来实现类似excel中的vlookup功能

#本次工作中需要处理两个excel中的数据&#xff0c;使用vlookup查询后显示N/A然后就选择了python# import openpyxl# excel表格的绝对路径 path r"C:\Users\Administrator\Desktop\device.xlsx"# 打开表格对象 workbook openpyxl.load_workbook(path) # 打印Excel表…

PHP语言常见面试题:什么是PHP中的函数?如何定义和调用一个函数?

在PHP中&#xff0c;函数是一组可以重复使用的代码块&#xff0c;用于执行特定的任务。函数可以接收输入&#xff08;参数&#xff09;&#xff0c;执行一系列操作&#xff0c;并可能返回输出结果。通过使用函数&#xff0c;你可以将代码组织成可重用的模块&#xff0c;提高代码…

Clock Verification IP

Clock Verification IP IP 参数及接口 IP 例化界面 相关函数 start_clock //产生时钟 <hierarchy_path>.IF.start_clockstop_clock //停止时钟 <hierarchy_path>.IF.stop_clockset_initial_value //设置时钟初始值为 0 <hierarchy_path>IF.set_initia…

LeetCode 2386.找出数组的第 K 大和:逆向思维(小根堆)

【LetMeFly】2386.找出数组的第 K 大和&#xff1a;逆向思维&#xff08;小根堆&#xff09; 力扣题目链接&#xff1a;https://leetcode.cn/problems/find-the-k-sum-of-an-array/ 给你一个整数数组 nums 和一个 正 整数 k 。你可以选择数组的任一 子序列 并且对其全部元素求…

Android性能优化 - ANR的分析和解决

一、ANR概念 1.定义 “Application Not Responding”的缩写&#xff0c;即“应用程序无响应”。如果你应用程序在UI线程被阻塞太长时间&#xff0c;就会出现ANR。 2.类型 ① KeyDispatchTimeout&#xff08;常见&#xff09; input事件在5S内没有处理完成发生了ANR。logca…

Python和Google Colab进行卫星图像二维小波变化和机器学习

2D 小波分解是图像处理中的一种流行技术,使用不同的滤波器将图像分解为不同的频率分量(“近似”和“细节”系数)。该技术对于各种图像处理任务特别有用,例如压缩、去噪、特征提取和边缘检测。 在本文中,我们将演示如何在 Google Colab 中使用 Python 下载高分辨率样本卫星…

划拳(c++题解)

题目描述 小王和小明在吃饭的时候玩起了划拳游戏。 游戏规则是&#xff0c;每一轮两个人同时说出一个数&#xff08;只能是 中的一个&#xff09;&#xff0c;若两人说出的数一样&#xff0c;则两人均不计分&#xff0c;否则说出数字更大的人获得两人说出的数差值这么多的分…

解决火狐浏览器访问地址受限制问题(This address is restricted)

问题如下图&#xff1a; This address is restrictedThis address uses a network port which is normally used for purposes other than Web browsing. Firefox has canceled the request for your protection. 此地址受到限制 此地址使用通常用于 Web 浏览以外的目的的网…

【Pytorch】进阶学习:基于矩阵乘法torch.matmul()实现全连接层

【Pytorch】进阶学习&#xff1a;基于矩阵乘法torch.matmul()实现全连接层 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448…

深入了解304缓存原理:提升网站性能与加载速度

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

微信小程序开发系列(十八)·wxml语法·声明和绑定数据

目录 1. 双大括号写法用法一&#xff1a;展示内容 步骤一&#xff1a;创建一个data对象 步骤二&#xff1a;双大括号写法的使用 步骤三&#xff1a;拓展 2. 双大括号写法用法二&#xff1a;绑定属性值 步骤一&#xff1a;给对象赋一个属性值 步骤二&#xff1a;双大括…

激光打标机红光与激光不重合:原因及解决方案

激光打标机红光和激光不在一个位置的问题可能由多种原因导致。以下是一些可能的原因和解决方法&#xff1a; 1. 激光器光路调整不当&#xff1a;激光器光路调整不当会导致激光束偏移&#xff0c;从而使红光与激光不重合。解决方法是重新调整激光器的光路&#xff0c;确保激光束…

【文档智能】再谈基于Transformer架构的文档智能理解方法论和相关数据集

前言 文档的智能解析与理解成为为知识管理的关键环节。特别是在处理扫描文档时&#xff0c;如何有效地理解和提取表单信息&#xff0c;成为了一个具有挑战性的问题。扫描文档的复杂性&#xff0c;包括其结构的多样性、非文本元素的融合以及手写与印刷内容的混合&#xff0c;都…

Java本地接口(Java Native Interface,JNI)讲解

Java本地接口&#xff08;Java Native Interface&#xff0c;JNI&#xff09;是一个编程框架&#xff0c;允许Java代码与其他语言写的代码&#xff0c;特别是C和C&#xff0c;进行交互。这个功能使得Java程序能够调用系统级别的库和那些已经用这些语言实现的库。JNI主要用于两个…

C# winform 重启电脑

一、重启电脑指令 windows7系统的启动文件夹为“开始菜单”——“所有程序”里面就有“启动”文件夹&#xff0c;其位置是 “C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup” 如果没有&#xff0c;则需要将其中的"administrator…