Java数据类型

Java8大数据类型 byte 、short 、 int  、 long 、float 、 double 、 char 、boolean 对应的包装类分别为 Byte 、 Short  、 Integer 、 Long 、 Float 、 Double 、Boolean 

自动类型转换:也称隐式等待,JVM自动完成

转换规则:从小到大自动转换    byte → short(char)→  int → short → long → float → double

注:整数之间进行类型转换时数值不会发生变化,但当整数数值较大转换成小数类型时,可能会存在精度损失

强制类型转换:存储范围大的类型到存储类型小的类型进行转换

转换规则:double → float → long → int → short(char) → byte   

double d = 3.14
int  i = (int)d

注:强制类型转换通常存在存储精度的损失,慎用

同类型之间的运算,只需要考虑临界值的问题,非同类型的会用到上述两种类型转换

小知识点:

1、char类型变量是用来存储Unicode编码的字符,unicode字符集包含了汉字,所以char可以用来存储汉字,但是当Unicode中不包含某些生僻字时,char就不支持存储该生僻字。

2、Integer是int类型的包装类,int 默认值为0,Integer 默认值为null,由此说明Integer可以区分未赋值和0的区别

 

数据结构

数据结构的分类:数组 、 堆 、 栈 、 队列 、链表 、 树 、 散列表 、 图

数组:可在内存中连续存储多个元素的结构,内存费配种也是连续的,数组通过下标进行访问。

优点:按照索引查询元素速度快,遍历数组方便

缺点:数组大小固定无法扩容,一个数组只能存储一种类型,数组添加操作慢,因为操作时需要移动其他的元素

使用场景:查询频繁,对存储空间要求不高,很少进行增删的情况

栈:特殊的线性表,且仅能在一端操作,栈顶可以操作,栈底不可进行操作,特点是先进后入,从栈顶放入元素叫入栈,取出叫出栈,常用于递归。

java 按大小排序 java数据类型大小排序_数组

 

队列:线性表,可在一端添加元素,另一端取出元素,先进先出,添加元素称之为入队,反之称之为出队,多线程阻塞队列管理非常适用

链表:链表是物理存储单元上非连续的、非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针地址实现,每个元素包含两个结点,一个是存储元素的数据域 (内存空间),另一个是指向下一个结点地址的指针域。根据指针的指向,链表能形成不同的结构,例如单链表,双向链表,循环链表等。

树:树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合

散列表:也叫哈希表,是根据关键码和值 (key和value) 直接进行访问的数据结构,通过key和value来映射到集合中的一个位置,这样就可以很快找到集合中的对应元素

堆:堆是一种比较特殊的数据结构,可以被看做一棵树的数组对象

图:图是由结点的有穷集合V和边的集合E组成(无需了解)