当前位置:主页 > 查看内容

Java基础知识之数据类型和运算符详解

发布时间:2021-04-27 00:00| 位朋友查看

简介:目录 数据类型 运算符 写在最后的话 数据类型 基本数据类型 表示符号 所占大小byte 包装类 字节型 byte 1 Byte 字符型 char 2 Character 短整型 short 2 Short 整型 int 4 Integer 长整型 long 8 Long 单精度浮点型 float 4 Float 双精度浮点型 double 8 Dou……

数据类型

基本数据类型表示符号所占大小(byte)包装类
字节型byte1Byte
字符型char2Character
短整型short2Short
整型int4Integer
长整型long8Long
单精度浮点型float4Float
双精度浮点型double8Double
布尔类型boolean未规定具体大小Boolean

注意:1.浮点型数字是不稳定的或者说可能是不准确的,并且位数越长越有可能不准确看下图,1.1*1.1的输出结果的最后一位居然不为零,所以小伙伴可以理解浮点数不准确这个概念了吗?
在这里插入图片描述
2.布尔变量和其他变量是完全不同的变量,没有一点关系!就算是强制类型转换也不能让他们变成同一类型,看下图,布尔类型的变量只有true和false两种情况
在这里插入图片描述
3.Java中的数据类型的大小是标准规定死的,和平台无关,不管是32位平台还是64位平台,甚至是16位平台Java数据类型的大小都是一样的,而且Java是运行在JVM上的,也就是虚拟机上的程序,所以Java在任一操作系统上编写的程序可以在任意操作系统上,如Windows上编写的程序可以在Linux和苹果等等操作系统上运行都是没有问题的,这也是Java的一大优点。

4.boolean变量的大小Java标准并未严格规定所以其大小和其编译器环境有关,但是多为1bit和1byte

5.Java中直接书写的小数默认为double类型,而且Java是强类型的语言,也就是说对数据的类型非常的敏感,不相同的数据类型的进行赋值需要进行强制类型转换(布尔类型除外,见上文),如果没有强制类型转换就会报错,看下图
在这里插入图片描述
当我们加上f表示单精度浮点型后代码就没有报错了,强制类型转换当然也是可以的,只是这样写更简单
在这里插入图片描述
6.在Java中不仅不同类型的数据混合运算时会发现隐式提升为占空间较大的类型如int和long混合运算最后的结果为long类型,如果存在浮点数那么存在什么类型的浮点型整型就会自动转换为什么类型的浮点型,并且所有大小小于int类型的数据类型都会在运算时发现隐式类型提升变为int类型,看下图,所以如果我们要让代码正常运行就需要进行强制类型转换,其他提升情况同理
在这里插入图片描述
在这里插入图片描述

运算符

算数运算符+、–、*、/、%
关系运算符>、<、==、!=、>=、<=、
逻辑运算符&&、||、!、&、|
位运算符~、&、^、|
移位运算符>>、<<、>>>
条件运算符布尔表达式?表达式1:表达式2

注意:1.可以看到在逻辑运算符和位运算符中都有&和丨当这两个运算符两边为布尔表达式时则和是逻辑运算符,当为两个数的时候为位运算符,知道这两个运算符可以做逻辑表达式就行,不常用,因为他们并不能进行短路求值,所以这两个运算符只常用于位运算
在这里插入图片描述
2.Java中可以对浮点数进行求余
在这里插入图片描述
3.逻辑运算符&&当两边的布尔表达式全为true时整个表达式为true其余全为false,||两边表达式全为false时整个表达式的值为false其余全为true。
4.位运算符的操作对象是二进制的数,&当两个操作数相同权重的二进制位同为1是值为1,|则全为0才为0,^则是两个数相同权重的二进制位上的数不同是为1,相同时为0,~则是将一个数的二进制中的0变为1,1变为0看下图,以byte为例

在这里插入图片描述
如果对最后面两个取反之后的操作不理解的可以参阅博主的这篇博客戳我转到数据的存储形式或者自行百度了解一下即可。
5.移位运算符可以简单的理解为n<<1(n左移1位等于n乘二)和n>>1(n右移一位等于n除二),最重要的是>>>无符号右移最高位补0,而不是补符号位,就有可能会发生负数变成正数的情况,看下图,可以看到-10变成了一个非常大的正数,这里涉及的东西一下子解释不清,博主就不赘述了,小伙伴们可以参阅上面数据的存储形式,或许就能理解了。
在这里插入图片描述
6.条件运算符唯一需要注意的点就是?之前必须为布尔表达式,且表达式为true则执行表达式1,为false则执行表达式2.

写在最后的话

以上就是博主这段时间Java学习的内容了,C语言的话也还会更新一些内容,小伙伴们期待一下吧,由于博主水平有限,文中难免有说错或表达不清的地方,若个小伙伴们发现了,欢迎留言或私信博主指出,谢谢,最后本篇博客就到此结束了,希望对小伙伴们能有所帮助,咱们下篇博客见。

;原文链接:https://blog.csdn.net/JunFengYiHan/article/details/115428753
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐