Java数据类型

什么是数据类型

数据类型是一个值的集合和定义在此集合上一组操作(通常是增删改查或者操作读写的方法)的总称。
其中数据类型,总的来说又分:
原子类型:比如编程语言的int,double,char,byte,boolean。
复合类型:又称结构类型,通过原子类型封装的更复杂的类型,比如面向对象语言里面的类。
另外还有一种更高层级的类型称为抽象数据类型:是指抽象数据组织和与之相关的操作。 抽象数据类型(ADT)是指一个数学模型以及定义在该模型上的一组操作。抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关。即无论其内部结构如何变化,只要它的数学特性不变,都不影响其外部的使用。”抽象“的意义在于数据类型的数学抽象特性。
即无论其内部结构如何变化,只要它的数学特性不变,都不影响其外部的使用。”抽象“的意义在于数据类型的数学抽象特性

Java的数据类型

数据类型分为基本数据类型与引用数据类型

java基本数据类型

java基本数据类型可以用四类八种来概括,四类是整型,浮点型,字符型,布尔类型。
八种:byte,short,int,long,float,double,char,boolean

java引用数据类型

引用数据类型有三种:类,接口,数组;引用数据类型在堆中存储。

数据类型的取值范围

1.int取值范围

// int型变量所能表示的范围:
System.Out.println(Integer.MIN_VALUE);
System.Out.println(Integer.MAX_VALUE);

2.long的取值范围

System.Out.println(Long.MIN_VALUE);
System.Out.println(Long.MAX_VALUE);

3.short的取值范围

short a = 10;
System.Out.println(a);
// short型变量所能表示的范围:
System.Out.println(Short.MIN_VALUE);
System.Out.println(Short.MAX_VALUE);

4.byte的取值范围

System.Out.println(Byte.MIN_VALUE);
System.Out.println(Byte.MAX_VALUE);

5.float 类型在 Java 中占四个字节, 遵守 IEEE 754 标准.
6. double在任何系统下都占8个字节,double 类型的内存布局遵守 IEEE 754 标准(和C语言一样)。尝试使用有限的内存空间表示可能无限的小数, 势必会存在一定的精度误差,因此浮点数是个近似值,并不是精确值。

类型转换

在Java中,当参与运算数据类型不一致时,就会进行类型转换。Java中类型转换主要分为两类:自动类型转换(隐 式) 和 强制类型转换(显式)。

隐式类型转换

自动类型转换即:代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。特点:数据范围小的转为数
据范围大的时会自动进行。

        int a=100;
        long b=10L;
        float c=3.9f;
        double d=2.35;
        d=c;
        b=a;//小范围转大范围,系统自动进行
        a=b;//报错,大范围转小范围,数据可能丢失```

强制类型转换(显式类型转换)

强制类型转换:当进行操作时,代码需要经过一定的格式处理,不能自动完成。
特点:数据范围大的到数据范围小的。

        byte a=123;//未超过byte范围,隐式将100(整数默认为int)转为byte
        byte b=(byte) 257;//超过了byte的取值范围,需要强转
        float b1=(float)3.13//小数默认为double类型,需要强制转换
        float c=3.9f;
        double d=2.35;
        c=(float) d;//超过了float的取值范围,需要强转

类型提升

不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的。

  1. int与long之间:int会被提升为long
int a = 10;
long b = 20;
int c = a + b; // 编译出错: a + b==》int + long--> long + long 赋值给int时会丢失数据
long d = a + b; // 编译成功:a + b==>int + long--->long + long 赋值给long
  1. byte与byte的运算
byte a = 10;
byte b = 20;
byte c = a + b;
System.out.println(c);

编译报错,虽然 a 和 b 都是 byte, 但是计算 a + b 会先将 a和 b 都提升成 int, 再进行计算, 得到的结果也是 int, 这时赋给 c, 就会出现上述错误。

字符集与字符编码

字符集顾名思义是“许多字符的集合”,这些字符组成一套符号系统,能够组合起来形象的表达各类含义。
对字符编码的最大目的仍是为了传输、储存信息(其实储存也是为了传输,是为了能传给之后的人看。
字符集与字符编码原理简介

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值