java数据类型_JAVA的数据类型

  • 什么是数据类型:百度百科 数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作(简单来说就java对数据进行了分类,存在不同的类型)
  • 那么为什么需要数据分类呢?
因为在java中不同的数据类型占用不同的存储空间,为了更好的利用计算机的内存空间。
  • 下面我们用一张图来说明一下数据类型的分类

java数据类型_JAVA的数据类型_第1张图片
  • 上图中我们可以看到有8种基本数据类型,它存储的是数据值本身。
  • 而引用数据类型存储的是数据的内存空间地址
  1. 数据类型的基本数据类型认识
java中每个变量都有一种类型,而类型限制了可以存放的那些值得类型。
引用数据类型:类(class);一个类就是一个数据类型
  • 相信我们的小伙伴肯定知道计算机中存储的单位,而在计算机底层的本质存储数据的形式就是二进制数据。
1Byte=8bit(bit就是一个二进制位)
1KB=1024Byte
1M=1024KB
1G=1024M
  • 整数类型:byte short int long

java数据类型_JAVA的数据类型_第2张图片
看到这里就有个疑问了,如果我们的值比long还大,我们怎么办呢?
其实java提供了一个类:BigInteger.来用于处理较大的整数
值得注意的是因为整数类型默认的是int类型,在long类型赋值的时候,需要在后面加上L(l)。
在java7开始,已经支持数据之间用_(下划线)分隔,例如(12_34_56输出为123456)
  • 浮点型 float double
说白了,就是小数。

b49c187b99aa9a37c44a55033e4fb1d3.png
这两种有啥区别呢?
float表示单精度(32位),给变量赋值时需要加上F(f)
double表示双精度(64位)
对于单精度浮点数,运行速度相比double更快,占用内存更小,但是当数值非常大或者精确位数多会变的不准确
在浮点数中默认的类型是double
使用时需要注意:有时会精度丢失
例如double num=1.0(表示一个无限接近于1.0的值)
我们可以总结一个结论:浮点数运算很少是精确的,只要超过精度就会有误差,往往误差不是因为数的大小,而是因为数的精度,因此产生的结果接近但是不等于想要的结果,尤其使用float和double做精确运算时更要注意
那么需要运算更精确的值怎么办呢?java提供了BigDecimal来表示
  • 字符 char
什么是字符:单引号 引起来的一个符号就是字符数据 例如:’A’
存储单位16 位[0-65535] [2个字节,16位]。字符常量使用单引号 ‘ ’包裹起来
字符数据可以当成一个整数来使用
使用一个数字表示,对应有一个ASCII码表[ 字符编码 ]:百度了解
  • 布尔类型 boolean
值只有两个true false

2.引用数据类型

  • 引用类型String
String是 java中已经设计好的一个类,表示的值是字符串,是字符串数据类型
[注意:Java中设计的类和我们自己设计的类的性质是一样的]
当String 和 + 一起使用的时候,这时候+ 是拼接字符串的功能
一个类其实就是一种引用数据类型
自己写的一个类也是一种数据类型,类型为类名
误区 : 很多人一开始觉得 Java中提供的类才是一种类型,而我们自己写觉得不是!

数据类型的转换

java数据类型_JAVA的数据类型_第3张图片
  1. 为什么要进行数据类型的转换呢?
为了节省空间大转小
Web前台传的都是字符串数据,如果后台需要运算,得转换

2.转换类型

①自动类型转换:小数据类型转大数据类型【存储空间的大小】

②强制类型转换:

1)大数据类型转小数据类型[存储空间大小]

2)相同存储空间不同类型表达值范围不一样[例如:char及short]

3.注意说明

①char型具有两个字节,其数值范围是0 ~ 2^16-1

②short类型也具有两个字节,其值的范围是-2^15 ~ 2^15-1

这直接导致byte型不能自动类型提升到char,char和short直接也不会发生自动类型提升(因为值范围问题),同时,byte当然可以直接提升到short型。

所以,char 不能和byte short 相互自动转换

4.我们着重讲一下强制转换

①强制类型转换的语法

数据类型 变量名 = (数据类型)值;//值可能是更高的类型

②强制类型转换的注意事项

(1) 高转低会导致精度丢失,不同类型的强制转换,可能会导致精度的下降.

(2) 实际开发中:应该要知道被强制转换的数据,是在一个已知的范围;


有什么补充欢迎大家评论~来自新手小白的数据类型初体验

你可能感兴趣的:(java数据类型)