数据类型(data type)

数据类型分为基本数据类型和引用数据类型。

1、基本数据类型

8种基本数据类型。各个基本类型之间是平等的,不存在大小和父子类的关系。它们之间的大小只是从存储数据所占用的空间来比较的。

1.数值型

​ 1.在Java种,整数默认是int类型,小数默认为bouble类型。

​ 2.如果一个整数超过了int的取值范围,需要加上L/l作为结尾标识,表示是一个long类型的数据。

​ 3.float类型的小数结尾必须以f作为标识。

​ 4.注意科学计数法。

整数型

​ 整数型有四种类型:byte、short、int、long。

byte

​ 字节型,占1个字节的空间,取值范围:-2^7^- 2^7^-1,即-128- 127。一共256个存储空间(要求记住)。

byte=127;
byte=-128;
short

​ 短整型,占2个字节的空间,取值范围:-2^15^ ~2^15^ -1,即-32768~32767,一共是65535个空间。

int

​ 整型:占4个字节的空间,取值范围:-2^31^ ~2^31^ -1,即: -2.1 * 10^10^ ~ 2.1 * 10^10^ 。

​ Java中,从JDK1.7开始,允许在数字之间插入“”作为间隔,在编译的时候会自动省略 “ ”。

int i = 0x23;
int i = 0b0011;
int i = 100_000_000;    //表示:100000000
long

​ 长整型:占8个字节的空间,取值范围:-2^63^ ~ 2^63^ -1,即:-9 * 10^18^ ~ 9 * 10^18^ 。要求以L、l作为结尾进行标识。

long l = 5L;    //(大写后缀)
long l = 5l;    //(小写后缀)

浮点型

float

​ 单精度:占4个字节的空间,取值范围:-2^127^ ~ 2^127^ ,即:-3.4 * 10^38^ ~ 3.4 * 10^38^ 。要求以F、f作为结尾进行标识。

float f = 3.2f;

double

​ 双精度:占8个字节的空间,取值范围:21023~21023,即:-10308~10308。Java中小数默认为double类型。

//正确写法
double d = 4.6;
double d2 = 6.3d;
double d3 = 3.8D;
double d =3e4;->double d = 30000.0;//十进制的科学计数法的表现形式。
double d=3p2;//十六进制的科学计数法的表示形式。

​ 注意:Java种的数值类型都是有符号的。

2.字符型

char

​ 字节型:占2个字节的空间,取值范围: 0 ~ 2^16^ -1 ,即:0 ~65535。不允许定义空字符。

char c = ‘a’;
char c = ‘中’;
char c = ‘’;    //不允许定义空字符
char c=’\t’;

​ 默认值:’ \ u0000 ’:表示’ ’。以 \u 开头表示这个字符是他对应的UTF-8的编码。

​ 可以按照码表对应成数字。

​ 编码有以下格式:

​ 阿斯科码表:ASCII,范围:0 ~ 127,只有英文字符。

​ 西欧码表:ISO8859-1,范围:0 ~ 255。也是只有英文字符。

​ GBK2312:向上兼容西欧码表,前256位都只占1个字节,2个字节表示一个汉字。

​ Unicode编码体系:

​ UTF-8,收录了常见语言的常见字符。3个字节表示一个字符。又叫万国码表。

​ Java的默认编码是UTF-8。

​ 所有的码表都是兼容西欧码表的,所以前256位全都只占1个字节。

转义字符

​ \’ 单引号 \ 反斜杠 \” 双引号 \t 制表符 \r-return回车符 \n—newLine 换行符。

​ 从JDK1.7开始,\r和\n的功能一致。

3.布尔型(boolean)

​ 取值只有true和false,大小没做限定,根据操作系统和JDK的版本不同而定。默认取值为false。

在老师讲课的过程种,只说了8种基本数据类型,但是我在网上看到好多题目问9种基本类型是什么。我查了一下,就是将void规划到了基本类型,void也有相对应的包装类。其他具体的信息就没有找到了,有的大神可以发给我,谢谢了!

2、引用数据类型

​ 引用数据类型中有类(class)、接口(interface)、数组、原生类Arrays,枚举(enum)。

​ 这些在以后都会细细讲到,在这里就不做赘述了。

3、数据类型的转换

1.隐式转换

​ 隐式转换也叫自动类型转换,故名思议,转换发生了,让你没有察觉,都是JVM在底层对数据做了转换。基本上是可以概括为6个字:整转小,小转大。

​ 规律一:小类型可以自动转化为大类型。

float f = 4.2f
double d = f;
int i = 10;
float f = i;

​ 规律二:整数可以自动的转化为小数,可能会出现精度损失问题。

long l = 9L;
float f = l;
float f = -25;//true
float f = 25.0; //false
char c = ‘大’;
int i = c;
double = i;

​ 规律三:char可以自动转化为int。

char c = ‘大’;
int i = c;
long l = c;
double = i;
char c = 98;//true
short s= ’b’;//true
char c=’b’;
short s= c;//false因为两句话是分开编译的,所以范围无法确定。
char c =-1;//编译报错
char c = 98;    //可以
short s = ‘g’;  //可以
char c = 98;
short s = c;//在代码编译期间,JVM会检查数据的类型和声明的类名是否一致或者兼容。如果在赋值的时候数据是一个变量,不会去检查这个变量的值而是检查变量的类型和声明的数据类型是否兼容。float f = 30;   //true
float f = 30.0f;
long l = ‘中’;   //true
long l = 100;   //true---如果一个整数在int的取值范围内,可以不用添加L作为结尾

2.显示转换

​ 显示转换又叫强制类型转换,就是数据转换的时候需要我们自己手动操作,JVM不会帮你操作。

​ 当把大类型的数据转换为小类型的数据的时候,需要强制转换。

​ 当把浮点型数据转换为整型变量的时候,需要强制类型的转换。小数转换成整数的时候,不是四舍五入,而是舍弃掉小数部分,因此,小数转换整数的时候,也会产生精度损失。

int i = 10;
byte b = (byte)i;
double d = 3.99;
int i = (int)d; // 3 -> 小数在强制转换为整数的时候会舍弃所有的小数位。
int i = 200;
byte b = (byte)i;   //可以

​ 注意:在计算机种,绝大部分小数是没有办法精确表示的。

​ 最后,是我自己根据老师讲课的内容画的一张进制转换图,仅供大家学习参考。

(二)数据类型(data type)相关推荐

  1. SAP UI5 应用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  2. 【译】Jep文档(4)——数据类型(Data Type)

    数据类型 在标准模式中,Jep支持许多不同的数据类型,包括数字.字符串.向量(数组)和复数.数字在默认情况下由double类型表示.当然,也可以像自定义类型描述的那样,改变内置表示. 字符串(Stri ...

  3. SAP UI5 数据类型(data type) 学习笔记

    SAPUI5 中的数据类型用作验证用户输入的机制(例如,"hello"不是订单数量的可接受值),并确保数据在 UI 上被正确格式化和显示(例如将 1234567 显示为 1,234 ...

  4. pandas使用select_dtypes函数移除dataframe中指定数据类型的数据列(exclude columns based on the data type in dataframe)

    pandas使用select_dtypes函数移除dataframe中指定数据类型的数据列(exclude columns based on the data type in dataframe) 目 ...

  5. JAVA 1.2(原生数据类型 Primitive Data Type)

    1. Java的数据类型分为2类 >> 原生数据类型(primitive data type) >> 引用数据类型(reference data type) 3. 常量和变量 ...

  6. matlab里数据类型转换,Matlab数据类型及转换(Matlab data type and conversion).doc

    Matlab数据类型及转换(Matlab data type and conversion) Matlab数据类型及转换(Matlab data type and conversion) Matlab ...

  7. java basic data type,java基本数据类型--Basic Datatypes

    Variables are nothing but reserved memory locations to store values. This means that when you create ...

  8. 【DaVinci Developer专题】-17-Array IDT中使用Type_Reference定义“二维数组”类型(Implementation Data Type)

    共5页 目录 1 创建一个Array IDT(Implementation Data Type) 2 创建了一个S/R Port Interface 3 导入CFG生成代码的总结 4 结尾

  9. 【DaVinci Developer专题】-13-Array IDT中使用Array定义“二维数组”类型(Implementation Data Type)

    共11页 目录 1 创建一个Array IDT(Implementation Data Type) 2 创建了一个S/R Port Interface 3 导入CFG生成代码的总结 4 结尾 < ...

最新文章

  1. LeetCode简单题之区域和检索 - 数组不可变
  2. SAP 如何得到交货单上的序列号清单?
  3. mysql修改主键为自增长碰到的错误
  4. 安装mamached数据库
  5. Java高级开发面试,java字符串拼接的方法
  6. C程序中如何获取shell命令执行结果和返回值
  7. 大数据_Flink_Java版_数据处理_流处理API_Transform(5)_union合流---Flink工作笔记0034
  8. 金蝶kis商贸采购单商品代码_金蝶KIS商贸高级版操作常见问题解答
  9. SqlServer查询表名的备注(查询表名描述 MS_Description)
  10. 联想教学用计算机,联想多媒体电子教室解决方案
  11. 不用任何插件:小白如何白嫖百度网盘下载速度(不好用来打我,嘿嘿)
  12. 图解PROFINET——PROFINET IO设备类型
  13. 如何在群晖系统中安装cpolar(群晖6.X版)
  14. clickhouse SSB 性能测试
  15. php 实现贪吃蛇游戏,php编写的贪吃蛇游戏
  16. c语言数组升序排列,数组输入各数之间用空格隔开,输出用空格隔开
  17. uClinux on Blackfin BF533 STAMP - A DSP Linux Port
  18. VUE中自定义步骤条
  19. 长期激励应占“一席之地” 穆穆-movno1
  20. elevation格式_Google Elevation的工作方式以及如何创建简单的C#应用​​程序?

热门文章

  1. 比较精短的显示时间的代码
  2. CSS制作各种形状(矩形、圆形、三角形、多边形、五角星星、太极阴阳图......)
  3. 方程检验格式图片_怎样分辨图片是否被修改过?
  4. ADCIRC模式与Python融合及案例分析
  5. 我现在想去深圳找份普通的工作,深圳那边现在工作好找吗?
  6. html出现Uncaught ReferenceError: $ is not defined错误
  7. esir openwrt x86_E-sir openwrt-X86固件overlay分区扩容教程
  8. Alienware外星人原装系统出厂系统原机开箱系统远程安装,带F12恢复功能SupportAssist OS Recovery
  9. 苹果电脑 剪切文件 文件夹 快捷键
  10. 拼图游戏--C++语言实现