java中引⽤数据类型有哪些?
Java中有俩种数据类型,其中主要有8中基本数据类型和引⽤数据类型,除了8中基本数据类型以外都是引⽤数据类型,8中基本数据类型分别是byte,short,int,long,char,boolean,float,double,具体如下:
1、boolean:数据值只有true或false,适⽤于逻辑计算。
2、char:char型(字符型)数据在内存中占⽤2个字节。char型数据⽤来表⽰通常意义上的字符,每个字符占2个字节,Java字符采⽤Unicode编码,它的前128字节编码与ASCII兼容字符的存储范围在\u0000~\uFFFF,在定义字符型的数据时候要注意加' ',⽐如 '1'表⽰字符'1'⽽不是数值1,
3、byte:byte型(字节型)数据在内存中占⽤1个字节,表⽰的存储数据范围为:-128~127。
4、short:short型(短整型)数据在内存中占⽤2个字节。
5、int:int型(整型)数据在内存中占⽤4个字节。
6、long:long型(长整型)数据在内存中占⽤8个字节。
7、float:float型(单精度浮点型)数据在内存中占⽤4个字节。(float精度为7-8位)
8、double:double型(双精度浮点型)数据在内存中占⽤8个字节。
下⾯说说java中引⽤数据类型:
引⽤数据类型分3种:类,接⼝,数组;
⼀、类Class引⽤
可以是我们创建的,这⾥我不多讲,主要是讲解⼏个java库中的类
Object :Object是⼀个很重要的类,Object是类层次结构的根类,每个类都使⽤Object作为超类,所有对象(包括数组)都实现这个类的⽅法。⽤Object可以定义所有的类
如:
Object object= new Integer(1); 来定义⼀个Interger类
Integer i=(Integer) object;    在来把这个Object强制转换成Interger类
String :String类代表字符串,Java 程序中的所有字符串字⾯值(如"abc")都作为此类的实例来实现。检查序列的单个字符、⽐较字符串、搜索字符串、提取⼦字符串、创建字符串副本、在该副本中
、所有的字符都被转换为⼤写或⼩写形式。
Date :Date表⽰特定的瞬间,精确到毫秒。Date的类⼀般现在都被Calendar 和GregorianCalendar所有代替
Void :Void 类是⼀个不可实例化的占位符类,它保持⼀个对代表 Java 关键字 void 的 Class 对象的引⽤。
同时也有对应的Class如:Integer  Long  Boolean  Byte  Character  Double  Float  Short
⼆、接⼝interface引⽤
可以是我们创建的,这⾥我不多讲,主要是讲解⼏个java库中的接⼝interface
List<E>:列表 ,此接⼝的⽤户可以对列表中每个元素的插⼊位置进⾏精确地控制。⽤户可以根据元素的整数索引 (在列表中的位置)访问元素,并搜索列表中的元素。List 接⼝提供了两种搜索指定对象的⽅法。从性能的观点来看,应该⼩⼼使⽤这些⽅法。在很多实现中,它们将执⾏⾼开销的线性搜索。 List 接⼝提供了两  种在列表的任意位置⾼效插⼊和移除多个元素的⽅法。
add() : 在列表的插⼊指定元素。
remove():移除列表中指定位置的元素。
get(int index):返回列表中指定位置的元素。
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。
这⾥我们主要是⽤String List Map Object 是最常⽤Number ArrayList<E> Arrays等
三、数组引⽤
数组:存储在⼀个连续的内存块中的相同数据类型(引⽤数据类型)的元素集合。
数组中的每⼀个数据称之为数组元素,数组中的元素以索引来表⽰其存放的位置,索引(下标)从0开始。
数组的定义
第⼀种⽅式:类型[] 数组名; 如 int[] nums;
第⼆种⽅式:类型数组名[]; 如 int nums[];
⼤多数Java程序员喜欢使⽤第⼀种风格,因为它把数据类型int[],和变量名num分开了.java核心技术有哪些
数组的初始化
Java中数组必先初始化后才能使⽤.
初始化就是给数组元素分配内存,并为每个元素赋初始值。
初始化数组的两种⽅式:
- 静态初始化:
语法格式:类型[] 数组名 = new 数组类型[]{元素1,元素2,元素3,...元素n};
简化语法:类型[] 数组名 = {元素1,元素2,元素3...元素n};
- 动态初始化:
如果我们事先不知道数组⾥存储哪些数据,只知道需要存储数据的个数,此时可以使⽤动态初始化⽅式。
动态初始化:初始化时由我们指定数组的长度,系统⾃动为数组元素分配初始值。
格式:类型[] 数组名 = new 数组类型[数组长度];
注意:⽆论,以哪种⽅式初始化数组,⼀旦初始化完成,数组的长度就固定了,不能改变,除⾮重新初始化。也就是说数组是定长的。为什么Java⾥有基本数据类型和引⽤数据类型?
引⽤类型在堆⾥,基本类型在栈⾥。
栈空间⼩且连续,往往会被放在缓存。引⽤类型cache miss率⾼且要多⼀次解引⽤。
对象还要再多储存⼀个对象头,对基本数据类型来说空间浪费率太⾼

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。