java原始数据类型
数据类型 | 大小位 | 取值范围 | 默认值 | 说明 |
---|---|---|---|---|
boolean 布尔型 | 1 | true/false | false | 用于存储真、假值 |
byte 字节型 | 8 | -128~127 | 0 | 数据存储在内存中最原始的形态 |
char 字符型 | 16 | 0~65535 | 用于存储字符,用Unicode编码方式 | |
short 短整型 | 16 | -32768~32767 | 0 | 在内存中占两个字节 |
int 整型 | 32 | -2^31~2^31-1 | 0 | 数据在内存中占用4个字节 |
float 单精度浮点型 | 32 | -3.4e+038~3.4e+038 | 0.0 | 数据在内存中占用4个字节 |
long 长整型 | 64 | -2^63~2^63-1 | 0 | 数据在内存中占用8个字节 |
double 双精度浮点型 | 64 | -1.7e+308~1.7e+308 | 0.0 | 数据在内存中占用8个字节 |
Java中所有的基本数据类型都有固定的存储范围和所占内存空间的大小,而不受具体操作系统的影响,来保证Java程序的可移植性。整形数据默认为int数据类型,浮点型默认为double数据类型,如果要表示long型数据或float型数据,要在相应的数值后面加上l、L或f、F,否则会出现编译问题。
Java为了能将基本类型(primitive type)视为对象来处理,并能连接相关的方法,Java为每个节本类型都提供了相应的包装类,这样便能将基本类型转化为对象来处理。其对应关系表如下所示:
基本数据类型 | 包装类 |
---|---|
boolean | java.lang.Boolean |
byte | java.lang.Byte |
char | java.lang.Character |
short | java.lang.Short |
int | java.lang.Integer |
float | java.lang.Float |
long | java.lang.Long |
double | java.lang.Double |
包装器类的使用:
专门用来包裹(Wrap)基本类型的类叫包装类,也叫包装器,如Long,Integer等,其主要目的就是提供一个对象实例作为壳,将其基本类型包到这个对象之中,然后提供很多操作数据的方法,使面向对象的编程变得更加容易。
java引用数据类型
(1)类(class)
可以是我们创建的类,也可以是如上的包装类,下面讲解几个java库中的类 :
Object、Date、String
1.Object:
Object是一个很重要的类,Object是类层次结构的根类,每个类都使用Object作为超类,所有对象(包括数组)都实现这个类的方法。用Object可以定义所有的类
如:
//定义一个Interger类
Object object= new Integer(1);
//再把这个Object强制转换成Interger类
Integer i=(Integer) object;
2.Date:
Date表示特定的瞬间,精确到毫秒。Date的类一般现在都被Calendar 和GregorianCalendar所有代替
如:
//定义一个Date 类
Date date = new Date();
//得到日期(已过期)
System.out.println(date.getDate());
3.String:
String类代表字符串,Java 程序中的所有字符串字面值(如”abc”)都作为此类的实例来实现。检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本、在该副本中、所有的字符都被转换为大写或小写形式。
如:
//定义一个字符串
String aaa="fdfkdfjak";
//获取下标为4的字符
aaa.charAt(4);
//获取字符为j所在的索引位置
aaa.indexOf("j");
//以字符d为分隔符
aaa.split("d");
//获取字符串长度
aaa.length();
...
(2)接口(interface )
可以是我们创建的,这里主要是介绍几个java库中的接口:
List、Map
1.List
List:列表 ,此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。List 接口提供了两种搜索指定对象的方法。从性能的观点来看,应该小心使用这些方法。在很多实现中,它们将执行高开销的线性搜索。 List 接口提供了两种在列表的任意位置高效插入和移除多个元素的方法。
add() : 在列表的插入指定元素。
remove():移除列表中指定位置的元素。
get(int index):返回列表中指定位置的元素。
2.Map< K,V >
Map < K,V >:K - 此映射所维护的键的类型
V - 映射值的类型 将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
put(K key,V value):将指定的值与此映射中的指定键关联(可选操作)。如果此映射以前包含一个该键的映射关系,则用指定值替换旧值(当且仅当,返回 true 时,才能说映射 m 包含键 k 的映射关系)。
remove(Object key)如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。更确切地讲,如果此 映射包含从满足(key==null?k==null:key.equals(k))的键k到值v的映射关系,则移除该映射关系。(该映射最多只能包含一个这样的映射关系。)
get(Object key):返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回null。
(3)数组(array)
//仅声明数组的引用,但没有分配内存空间
float[] fAry;
//声明数组的同时,根据指定的长度分配内存,但数组中没有值
char[] acAry = new char[10];
//声明数组并分配内存,同时将其初始化
int[] ary1 = new int[]{1,2,3,5,6};