数据类型
一、基本数据类型
下面展示一些 例子
。
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
八种基本数据类型:byte,short,int,long,char,boolean,float,double
一、byte:
byte **数据类型是8位**、有符号的,以二进制补码表示的整数;
**最小值是 -128(-2^7);**
**最大值是 127(2^7-1);**
默认值是 0;
byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
例子:byte a = 100,byte b = -50。
二、short:
**short 数据类型是 16 位**、有符号的以二进制补码表示的整数
**最小值是 -32768(-2^15);**
**最大值是 32767(2^15 - 1);**
Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
默认值是 0;
例子:short s = 1000,short r = -20000。
三、int:
**int 数据类型是32位**、有符号的以二进制补码表示的整数;
最小值是 -2,147,483,648**(-2^31)**;
最大值是 2,147,483,647**(2^31 - 1)**;
一般地整型变量默认为 int 类型;
默认值是 0 ;
例子:int a = 100000, int b = -200000。
四、long:
**long 数据类型是 64 位**、有符号的以二进制补码表示的整数;
最小值是 -9,223,372,036,854,775,808 **(-2^63)**;
最大值是 9,223,372,036,854,775,807 **(2^63 -1)**;
这种类型主要使用在需要比较大整数的系统上;
默认值是 0L;
例子: long a = 100000L,Long b = -200000L。
"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
五、char:
**char类型是一个单一的 16 位** Unicode 字符;
最小值是 \u0000 **(即为 0)**;
最大值是 \uffff **(即为65、535)**;
char 数据类型可以储存任何字符;
例子:char letter = 'A';。
六、float:
**float 数据类型是单精度、32位**、符合IEEE 754标准的浮点数;
float 在储存大型浮点数组的时候可节省内存空间;
默认值是 0.0f;
浮点数不能用来表示精确的值,如货币;
例子:float f1 = **234.5f**。
七、double:
**double 数据类型是双精度、64 位**、符合IEEE 754标准的浮点数;
浮点数的默认类型为double类型;
double类型同样不能表示精确的值,如货币;
默认值是 0.0d;
例子:double d1 = **123.4**。
八、boolean:
boolean数据类型表示一位的信息;
**只有两个取值:true 和 false**;
**这种类型只作为一种标志来记录 true/false 情况**;
**默认值是 false;**
例子:boolean one = true。
int num = (int)1.1; //num = 1;
int 会把小数自动转化为整数
String a = num+"123"; //a = 1123
String加其他类型,转换为String
引用: 菜鸟教程.
二、集合
Collection 接口的接口 对象的集合(单列集合)
├——-List 接口:元素按进入先后有序保存,可重复
│—————-├ LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全
│—————-├ ArrayList 接口实现类, 数组, 随机访问, 没有同步, 线程不安全
│—————-└ Vector 接口实现类 数组, 同步, 线程安全
│ ———————-└ Stack 是Vector类的实现类
└——-Set 接口: 仅接收一次,不可重复,并做内部排序
├—————-└HashSet 使用hash表(数组)存储元素
│————————└ LinkedHashSet 链表维护元素的插入次序
└ —————-TreeSet 底层实现为二叉树,元素排好序
Map 接口 键值对的集合 (双列集合)
├———Hashtable 接口实现类, 同步, 线程安全
├———HashMap 接口实现类 ,没有同步, 线程不安全-
│—————–├ LinkedHashMap 双向链表和哈希表实现
│—————–└ WeakHashMap
├ ——–TreeMap 红黑树对所有的key进行排序
└———IdentifyHashMap
**
ArrayList 底层为数组 默认长度为 10 ,数组下标为 0-9
每次扩容下标右移一位,相当于当前长度*1.5
查询快,增删慢,线程不安全,效率高,可以存储重复元素
List list = new ArrayList();
//添加
list.add("对象");
list.add(1);
//取值,只能根据下标取
list.get(0);
//删除,一般根据下标删除
list.remove(1);
LinkedList 底层为链表 默认长度为0
查询慢,增删快,线程不安全,效率高,可以存储重复元素
List list = new LinkedList();
//添加
list.add("对象");
list.add(1);
//取值,只能根据下标取
list.get(0);
//删除,一般根据下标删除
list.remove(1);
Vector 底层数据结构是数组,查询快,增删慢,线程安全,效率低,可以存储重复元素
HashMap 底层数组加链表,key,value键值对存储
Map map = new HashMap();
//添加
map.put("key","value");
//获取
map.get("key");
//删除
map.remove("key");
**