当前位置: 首页 > news >正文

第2集丨Java中的数据类型汇总

目录

  • 一、数据类型分类
  • 二、基本数据类型
    • 取值范围
    • 数据类型的转换
    • byte和char的关系
  • 三、包装类

一、数据类型分类

在这里插入图片描述

二、基本数据类型

取值范围

  1. 比特(bit位) : 数据运算得最小存储单位
  2. 字节(byte) : 数据最小存储单位
  3. bit和byte可以互相转换得,1 byte = 8 bit位
  4. 默认情况下,小数点的数据会被识别位精度较高得双精度double类型
  5. float : 单精度浮点类型,数据需要使用F(f)结尾
  6. 首先是第一位是符号位,1bit标识,例如:long基本类型在Java中是带符号的,最高位是符号位,正数是0,负数是1,所以其实真正的数据只有63个bit,因此其取值范围位为:【-2^63 ~ 2^63 -1】,即:(-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)

在这里插入图片描述

// TODO 1. 整数类型
// byte : 8位
byte b = 10;
// short : 16位
short s = 10;
// int : 32位
int i = 10;
// long : 64位
long lon = 10;// TODO 2. 浮点类型:含有小数点得数据类型
// 根据计算精度分为
// 默认情况下,小数点得数据会被识别位精度较高得双精度double类型
// float : 单精度浮点类型,数据需要使用F(f)结尾
float f = 1.0F;
// double : 双精度浮点类型
double d = 2.0;// TODO 3. 字符类型
// 所谓得字符类型,其实就是使用符号标识文字内容
char c = '@';// TODO 4. 布尔类型
// true, false,标识判断条件是否成立,如果成立,取值位true,如果不成立,那么取值位false
boolean bln = true;

数据类型的转换

  1. Java中范围小的数据可以直接转换位范围大的数据,但是范围大的数据无法直接转换位范围小的数据(byte -> short -> int -> long -> float -> double )。
  2. 如果想要将范围大的数据转换位范围小的数据,那么需要使用小括号进行强制转换。
// byte -> short -> int -> long -> float -> double
byte b = 10;short s = b;int i = s;long lon = i;float f = lon;double d = f;// 如果想要将范围大的数据转换位范围小的数据,那么需要使用小括号进行强制转换。
int i1 = (int)d;

byte和char的关系

  1. asc码字符 : 一个字节就是一个字符
  2. 其他编码字符 : 3个字节是一个字符
char[] cs = {'a', '中', '国'};
//个字节表示一个字符
byte[] bs = {-28,-72,-83,-27,-101,-67};String s = new String(cs);
String s1 = new String(bs, "UTF-8");
// a中国
System.out.println(s);
// 中国
System.out.println(s1);

三、包装类

  1. java种有8种基本数据类型
  2. 所有继承了Object 类的类型的都称为引用类型,包括数组和字符串。
  3. 引用数据类型可以构建对象,通过调用对象的属性或方法来实现一些具体的操作,但是我们8种基本数据类型不是引用数据类型,所有就没有所谓的属性和对象,使用起来就显得特别的单一、功能简单;尤其是在和其他对象使用的时候会感觉很不方便,比如数字和字符串进行转换的时候是没有办法直接进行转换的,需要我们额外的类进行处理,Java为了对基本数据类型的优化,提供了特殊的类与之对应,我们称为包装类
  4. 这种包装类,就好比我们用箱子把基本数据类型包装起来,转换为对象的感觉。
  5. 自动装箱:jvm自动将基本数据类型转换为包装类型,也可以显示的使用Integer.valueOf(i)
  6. 自动拆箱:jvm自动将包装类型转换为基本数据类型,也可以显示的使用:i1.intValue();
  7. new Integer(i): Java已经不推荐这么使用了,但是你可以这么用
Byte b = null;
Short s = null;
Integer i = null;
Long lon = null;
Float f = null;
Double d = null;
Character c = null;
Boolean bln = null;int i = 10;
//Integer i1 = new Integer(i);  //Java已经不推荐这么使用了,但是可以这么用
//Integer i1 = Integer.valueOf(i);
// 由于使用这种方式特别多,jvm会自动完成调用的操作,即:自动装箱
Integer i1 = i;// 将包装类型转换为基本数据类型
//int i2 = i1.intValue();
// 自动拆箱
int i2 = i1;
http://www.lryc.cn/news/6774.html

相关文章:

  • 【基础篇】7 # 队列:队列在线程池等有限资源池中的应用
  • matlab进行双目标定获取双目参数并打印教程
  • JVM类加载机制
  • 8.1 优化概述
  • 从0到1一步一步玩转openEuler--14 openEuler DNF(YUM)配置管理
  • leetcode707 设计链表 带有输入和输出的
  • 100种思维模型之非sr思维模型-012
  • 绿竹生物再冲刺港交所上市:暂未商业化,孔健夫妇为实控人
  • 加拿大MSB金融牌照申请方案
  • javaEE 初阶 — 滑动窗口
  • 大咖说·图书分享|狼书(卷3):Node.js高级技术
  • 1.5配置NBMA和P2MP网络类型
  • Java面试题
  • opencv锁定鼠标定位
  • 机器连接和边缘计算
  • 利用NGROK将本地网站发布为一个公开网站
  • Vulnhub 渗透练习(一)—— Breach 1.0
  • 初探Spring采用Spring配置文件管理Bean
  • 【手写 Vuex 源码】第十二篇 - Vuex 插件机制的实现
  • 图像去噪技术简述
  • 数据迁移——技术选型
  • 第二十七章 java并发常见知识内容(CompletableFuture)
  • Qt扫盲-QMake 使用概述
  • Spring Cloud之Zuul
  • 为什么要有分布式锁?
  • 【Redis】Redis持久化之RDB详解(Redis专栏启动)
  • Retinanet网络与focal loss损失
  • Spring事务的失效场景
  • 芯动联科在科创板IPO过会:拟募资10亿元,金晓冬为实际控制人
  • 数据结构之单链表