整型:整数类型int    一般的数据。

long    极大的数据。

short   用于特定的场合,比如底层的文件处理或者需要控制占用存储单元空间量的大数组。

byte   用于特定的场合,比如底层的文件处理或者需要控制占用存储单元空间量的大数组。

byte、short、int、long都是整数类型,并且是有符号整数 分别占用1、2、4、8个字节。

取值范围分别是-128—127、-2的15次方到2的15次方减一、-2的31次方到2的31次方减一、-2的63次方到2的63次方减一 byte在内存中占用一个字节 取值范围是 -128—127。在定义一个变量时。比如月份的取值是1到12。因此把代表月份的month变量定义为byte类型会节省内存空间。

在实际应用中 通常把month定义为int类型,因为这样可以简化数据运算时强制类型转换操作。

byte month = 1;

month = month+2;//编译错误 需要强转

month = (byte) (month+2); //编译正确

浮点数float    有效数字最长是7位。

double    有效数字最长是15位。

float:占四个字节,共32位,称为单精度浮点数

double:占八个字节,共64位,称为双精度浮点数

Java中的浮点型常量数值默认是double类型

注意: java提供的浮点类型不适合进行精确的运算

public static void main(String[] args) throws Exception {

double money = 1;

double price = 0.1;

System.out.println(money-price*9);//打印出来0.09999999999999998(本应该是0.1)

}

解决办法: java.math.BigDecimal类可以满足用户的精度 注意 构造BigDecimal类时 构造方法中的参数 不建议是浮点类型 需要转成String类型

booleanBoolean在内存中占用一个字节。

当java编译器把java源代码编译为字节码时,会用int或byte来表示boolean。在java虚拟机中,用整数零来表示false,用任意一个非零整数表示true。 java虚拟机这种底层处理方式对java虚拟机是透明的,在java源程序中boolean类型的变量取值只能是true或false

char

char是字符类型 占用两个字节,java语言对字符采用Unicode字符编码。由于计算机内存只能存储二进制数据。因此必须对各个字符进行编码。

所谓字符编码是指用一串二进制数据来表示特定的字符。常见的字符编码包括,ASCII编码(1Byte=8bit 一共能表示2的7次方 128个字符) 是单字节编码系统,ISO-8859-1编码(也是单字节编码系统) GB2312编码 GBK编码 Unicode编码。

Unicode编码由国际Unicode协会编制,收录了全世界所有语言文字中的字符,是一种跨平台的字符编码USC(Universal Character Set)是指采用Unicode编码的通用字符集。

如果实际上要存储的字节都是ASCII字符(只占7位),采用Unicode编码及其浪费存储空间。UTF-8编码能够更加有效的利用存储空间,它对ASCII字符采用一个字节形式的编码,对非ASCII字符则采用两个或两个以上字节形式的编码。

Unicode有两种编码方案。

用两个字节(16位)编码,采用这个编码方案的字符集称为UCS-2。java语言采用的就是两个字节的编码方案

用四个字节(32位)编码(实际上只用了31位,最高位必须为0),采用这个编码的字符集被称为UCS-4。

1994年公布的Unicode,为每种语音中的每个字符都设定了唯一编码,以满足跨语言的交流,分为编码方式和实现方式。

实现Unicode的编码格式 有UTF编码。可以理解为对Unicode的压缩方式,常见的UTF编码有 utf-8,utf-7,utf-16

有些操作系统不完全支持16位或32位的Unicode编码,UTF(UnicodeTransformation Format) 编码能够把Unicode编码转换为操作系统支持的编码。

ASCII编码,ISO-8859-1编码 GB2312编码 GBK编码 Unicode编码 都属于编码方式,UTF属于实现方式(实现Unicode编码)。

基本数据类型转换

上面四类八种基本数据类型。除了boolean类型。整型 浮点型和字符型数据可以进行混合转换。

从低位到高位会自动进行类型转换,即int类型的数和Long类型的数一起运算时 结果会自动转成Long类型(向上转型)

从高位到低位需要进行强制类型转换。(向下转型)

从低位到高位 byte、char、short、int、long、float、double

float f = 3.14; //编译错误,不能把double类型直接赋值给float类型变量 需要强制类型转换

应用中,强制类型转换有可能会导致数据溢出或者精度下降,应该避免使用强制类型转换。

下面代码中 把int强制转换为byte类型,会导致数据溢出。

int a = 256;

byte aa = (byte) a;

int b = 222;

byte bb = (byte) b;

System.out.println(aa); // 打印结果0System.out.println(bb); //打印结果-34

对于基本类型的变量,java虚拟机会为其分配数据类型实际占用内存的大。

最后

如果觉得文章不错,对你帮助,记得给我点个赞~另外需要Java入门全套视频,可以关注我然后私我~

java 数据类型转换的一场_Java基础 — 四类八种基本数据类型相关推荐

  1. java四类八种_java四类八种基本数据类型

    Java基本数据类型就8种,记住就好了.除了这些都是引用型的了. java四类八种基本数据类型 第一类:整型 byte short int long 第二类:浮点型 float double 第三类: ...

  2. java四类八种基本数据类型

    java基本数据类型就8种,除了这些都是引用型的了.  一.java四类八种基本数据类型 第一类:整型 byte short int long 第二类:浮点型 float double 第三类:逻辑型 ...

  3. JAVA的四类八种基本数据类型

    先说明两个词汇的基本概念: bit (位):位是计算机中存储数据的最小单位,指二进制数中的一个位数,其值为"0"或"1". byte (字节):字节是计算机存储 ...

  4. java 数据类型转换的一场_Java数据类型之间的转换

    java数据类型的转换一般分三种,分别是: (1). 简单数据类型之间的转换,在Java中整型.实型.字符型被视为简单数据类型,这些类型由低级到高级分别为(byte,short,char)--int- ...

  5. Java基本数据类型(四类八种)

    Java基本数据类型(四类八种) 基本数据类型--四类八种:整数类(byte.short.int.long).浮点类(float.double).字符类(char).布尔型(boolean): 除此之 ...

  6. Java 基本数据类型 - 四类八种

    整理一下脑子里的知识,也算温故知新吧. 一.Java四大数据类型分类 1.整型 byte .short .int .long 2.浮点型 float . double 3.字符型 char 4.布尔型 ...

  7. java中的基本数据类型(四类八种)

    Java语言提供了八种基本类型,可以分为四类: 整数型: byte short int long. 浮点型: float double. 字符型: char. 布尔型: boolean. byte: ...

  8. java调用自己写的类型_Java基础——自定义类的使用

    自定义类 我们可以把类分为两种: 1.一种是java中已经定义好的类,如之前用过的Scanner类.Random类,这些我们直接拿过来用就可以了. 2.另一种是需要我们自己去定义的类,我们可以在类中定 ...

  9. java 八种基本数据类型

    四类八种基本数据类型 1. 整型 byte(1字节) short (2个字节) int(4个字节) long (8个字节) 2.浮点型 float(4个字节) double(8个字节) 3.逻辑性 b ...

最新文章

  1. OpenCV 图像采样 插值 几何变换
  2. 一网打尽数据结构中线性表链表的相关算法
  3. pyodbc psutil wmi paramiko
  4. Dubbo注册中心宕机
  5. Android AIDL使用介绍(3) 浅说AIDL背后的Binder
  6. 全景图像拼接——图像融合
  7. 更快的Maven来了,我的天,速度提升了8倍!
  8. 放心了!邮政、顺丰和京东基本全部复工
  9. c语言qsort函数源码,qsort源代码分析
  10. 发展型机器人:由人类婴儿启发的机器人. 2.6 本章总结
  11. 他说,我可能以后不干安全了
  12. arm nodejs_nodejs是如何和libuv以及v8一起合作的?(文末有彩蛋哦)
  13. 魔窗使用笔记(穿透微信)
  14. 广告行业中静态创意和动态创意区别
  15. M2M技术的基本框架
  16. L W V th t发音
  17. jQuery基础入门
  18. 火狐插件restclient发送post请求
  19. Ubuntu systemd配置文件/etc/systemd/system被删解决方案
  20. solaris 9 一般安全设置

热门文章

  1. 经济独立,是你最大的底气
  2. 不要纠结于过去发生的事
  3. 时间统计%time和%timeit_python
  4. MegEngine亚线性显存优化
  5. 3层-CNN卷积神经网络预测MNIST数字
  6. 为什么您应该使用基于标准的开发实践
  7. 视频系列:RTX实时射线追踪(下)
  8. 多尺度注意力机制的语义分割
  9. 道路场景语义分割算法
  10. 计算机应用专业能评自动化工程师吗,报考自动化控制工程师中级职称需要哪些条件?...