2021-02-24

数据类型

一、基本数据类型

下面展示一些 例子

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
八种基本数据类型:byte,short,int,long,char,boolean,float,double
一、byte:

byte **数据类型是8**、有符号的,以二进制补码表示的整数;
**最小值是 -128-2^7);**
**最大值是 1272^7-1);**
默认值是 0;
byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
例子:byte a = 100,byte b = -50。

二、short:

**short 数据类型是 16**、有符号的以二进制补码表示的整数
**最小值是 -32768-2^15);**
**最大值是 327672^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 **(即为65535**;
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数据类型表示一位的信息;
**只有两个取值:truefalse****这种类型只作为一种标志来记录 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");
 **
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值